Annotation of OpenXM_contrib/gnuplot/term/tgif.trm, Revision 1.1.1.1
1.1 maekawa 1: /*{{{}}}*/
2: /***************************************************************************/
3: /* */
4: /* $Id: tgif.trm,v 1.66 1998/04/14 00:18:10 drd Exp $ */
5: /* */
6: /***************************************************************************/
7: /* GNUPLOT - tgif.trm */
8:
9:
10: /*[
11: * Copyright 1990 - 1993, 1998
12: *
13: * Permission to use, copy, and distribute this software and its
14: * documentation for any purpose with or without fee is hereby granted,
15: * provided that the above copyright notice appear in all copies and
16: * that both that copyright notice and this permission notice appear
17: * in supporting documentation.
18: *
19: * Permission to modify the software is granted, but not the right to
20: * distribute the complete modified source code. Modifications are to
21: * be distributed as patches to the released version. Permission to
22: * distribute binaries produced by compiling modified sources is granted,
23: * provided you
24: * 1. distribute the corresponding source modifications from the
25: * released version in the form of a patch file along with the binaries,
26: * 2. add special version identification to distinguish your version
27: * in addition to the base release version number,
28: * 3. provide your name and address as the primary contact for the
29: * support of your modified version, and
30: * 4. retain our contact information in regard to use of the base
31: * software.
32: * Permission to distribute the released version of the source code along
33: * with corresponding source modifications in the form of a patch file is
34: * granted with same provisions 2 through 4 for binary distributions.
35: *
36: * This software is provided "as is" without express or implied warranty
37: * to the extent permitted by applicable law.
38: ]*/
39:
40: /* */
41: /* This file is included by ../term.c. */
42: /* */
43: /* This terminal driver supports: */
44: /* TGIF */
45: /* */
46: /* AUTHORS: */
47: /* Werner Geppert and Andreas Kuhlewind */
48: /* March, 21st 1995 */
49: /* */
50: /* send your comments or suggestions to werner@mez.ruhr-uni-bochum.de */
51: /* */
52: /* */
53: /* MODIFIED May, 11st 1997 by NOVÁK Levente (novakl@tigris.klte.hu): */
54: /* */
55: /* - Modified the default linewidth for borders from 3 to 2 */
56: /* - Modified the default size of markers' bounding box */
57: /* to allow nicer shapes */
58: /* - Slightly modified the markers and added several new ones, */
59: /* now we have 64 different pointtypes, the same as for the */
60: /* PostScript terminal */
61: /* - I left the %.1f format for pixel positions, but I think */
62: /* Tgif does only calculate with integer positions */
63:
64:
65: /***************************************************************************/
66:
67: /*}}} */
68: /***************************************************************************/
69: #include "driver.h"
70:
71: #ifdef TERM_REGISTER
72: register_term(tgif)
73: #endif
74:
75: #ifdef TERM_PROTO
76: TERM_PUBLIC void TGIF_options __PROTO((void));
77: TERM_PUBLIC void TGIF_init __PROTO((void));
78: TERM_PUBLIC void TGIF_reset __PROTO((void));
79: TERM_PUBLIC void TGIF_text __PROTO((void));
80: TERM_PUBLIC void TGIF_graphics __PROTO((void));
81: TERM_PUBLIC void TGIF_move __PROTO((unsigned int ux, unsigned int uy));
82: TERM_PUBLIC void TGIF_vector __PROTO((unsigned int ux, unsigned int uy));
83: TERM_PUBLIC void TGIF_linetype __PROTO((int linetype));
84: TERM_PUBLIC void TGIF_put_text __PROTO((unsigned int ux, unsigned int uy, char *str)); /* ref point and text */
85: TERM_PUBLIC int TGIF_text_angle __PROTO((int ang));
86: TERM_PUBLIC int TGIF_justify_text __PROTO((enum JUSTIFY mode));
87: TERM_PUBLIC void TGIF_point __PROTO((unsigned int ux, unsigned int uy, int number));
88: TERM_PUBLIC void TGIF_arrow __PROTO((unsigned int sx, unsigned int sy, unsigned int ex, unsigned int ey, TBOOLEAN head));
89: TERM_PUBLIC int TGIF_set_font __PROTO((char *font));
90: TERM_PUBLIC void TGIF_set_pointsize __PROTO((double size));
91: /*}}} */
92: /* default length for static strings */
93: #define TGIF_STRLEN_MAX 255
94:
95: /* standard x/y plot size in portrait mode */
96: #define TGIF_XMAX 950
97: #define TGIF_YMAX 634
98:
99: /* total available plotting area */
100: #define TGIF_XTOT 950
101: #define TGIF_YTOT 1400
102:
103: /* Offset */
104: #define TGIF_XOFF 50
105: #define TGIF_YOFF 50
106:
107: #define TGIF_XSHIFT 1030 /* 80 points skip */
108: #define TGIF_YSHIFT 714
109:
110: #define TGIF_VCHAR 18 /* default is 18 pt */
111: #define TGIF_HCHAR (18*6/10)
112:
113: #define TGIF_VTIC (TGIF_YMAX/80)
114: #define TGIF_HTIC (TGIF_YMAX/80)
115:
116:
117: #define TGIF_MAXPOLY 100
118: /*}}} */
119: #define GOT_TGIF_PROTO
120: #endif
121:
122: #ifndef TERM_PROTO_ONLY
123:
124: #ifdef TERM_BODY
125: /* tgif driver by Werner Geppert, werner@mez.ruhr-uni-bochum.de */
126: /***************************************************************************/
127: /* Variables: */
128: static unsigned int uLastTgifX, uLastTgifY; /* last Coordinate */
129:
130: static unsigned int uActNr; /* current elementnumber */
131: static unsigned int uActPage; /* current pagenumber */
132: static unsigned int uActResolution; /* resolution in percent */
133: static unsigned int uActZoom; /* zoom factor */
134: static unsigned int uActAngle; /* current textangle */
135: static unsigned int uActThick; /* actual linethickness */
136: static unsigned int uActPointSize; /* point size */
137: static unsigned int uActStyle; /* actual linestyle */
138: static unsigned int uActJust; /* actual textjustification */
139: static unsigned int uXshift; /* actual shift x */
140: static unsigned int uYshift; /* actual shift y */
141: static unsigned int uTgifPlotCount; /* counts number of plots */
142: static unsigned int uTgifPlotRow, uTgifPlotCol; /* actual plot row and col */
143: static unsigned int uTgif_win_horiz, /* number of plots in x and */ uTgif_win_verti; /* y direction [x,y] */
144:
145:
146:
147: static char sActColor[TGIF_STRLEN_MAX]; /* current color */
148: static unsigned int uDefaultFontSize; /* default font size */
149: static unsigned int uActFontSize; /* current font size */
150: static char sDefaultFont[TGIF_STRLEN_MAX]; /* default font */
151: static char sActFont[TGIF_STRLEN_MAX]; /* current font */
152: /* static char sActPointString[TGIF_STRLEN_MAX]; HBB: unused */
153:
154: static TBOOLEAN TgifSolid = FALSE;
155: static TBOOLEAN TgifPortrait = TRUE;
156:
157: static unsigned int uTgifPlotsPerPage = 1;
158: static unsigned int uTextAngle[] =
159: {0, 3};
160:
161: /*
162: * 10 different pointtypes need 10 different linetypes
163: */
164:
165: /* NL: Modified first value to 2 from 3 */
166: static unsigned int uLineThick[] = { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
167: static unsigned int uLineStyle[] = { 0, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0 };
168: static char *psColors[] =
169: {
170: "black", "black", /* border and x/y-zero-axes */
171: "red", "green", "blue", "magenta", "cyan", "yellow",
172: "DarkSeaGreen", "HotPink", "black", "coral"};
173:
174: #if 0 /* HBB: unused */
175: static char *psFonts[] =
176: {"Times-Roman", "Courier", "Helvetica", "NewCenturySchlbk-Roman", "Symbol", NULL};
177:
178: static unsigned int psFontSizes[] =
179: { 8, 10, 11, 12, 14, 17, 18, 20, 24, 25, 34, 40, 45, 50 };
180: #endif
181:
182: static int iTgifPolyCount;
183: static unsigned int uBuffX[TGIF_MAXPOLY], uBuffY[TGIF_MAXPOLY];
184:
185: enum eState {
186: NEWPOLY = 100, INPOLY
187: };
188: static enum eState eTgifState = NEWPOLY;
189:
190: static void TGIF_flush_poly __PROTO((void));
191:
192:
193:
194: /*}}} */
195: /***************************************************************************/
196: static void TGIF_flush_poly()
197: {
198: int i;
199:
200:
201: if (eTgifState == INPOLY) {
202: fprintf(gpoutfile, "poly('%s',%d,[\n\t", sActColor, iTgifPolyCount);
203:
204: for (i = 0; i < iTgifPolyCount - 1; i++) {
205: fprintf(gpoutfile, "%u,%u,", uBuffX[i], uBuffY[i]);
206: if ((i + 1) % 8 == 0)
207: fputs("\n\t", gpoutfile);
208: }
209:
210: fprintf(gpoutfile, "%u,%u],0,%u,1,%u,0,0,%u,0,8,3,0,[\n]).\n",
211: uBuffX[iTgifPolyCount - 1], uBuffY[iTgifPolyCount - 1],
212: uActThick, uActNr, uActStyle);
213:
214: uActNr++;
215:
216: eTgifState = NEWPOLY;
217: iTgifPolyCount = 0;
218: if (gpoutfile != (FILE *) NULL)
219: fflush(gpoutfile);
220: }
221: } /* TGIF_flush_poly */
222: /*}}} */
223: /***************************************************************************/
224: TERM_PUBLIC void TGIF_options()
225: {
226:
227: struct value a, b;
228: double dscaleH, dscaleV;
229:
230:
231: strcpy(sActFont, "Helvetica");
232: strcpy(sDefaultFont, "Helvetica");
233: uActFontSize = 18;
234: uDefaultFontSize = 18;
235: term->v_char = (unsigned int) (uActFontSize);
236: term->h_char = (unsigned int) (uActFontSize * 6 / 10);
237:
238: TgifPortrait = TRUE;
239: uTgifPlotsPerPage = 1;
240: uTgifPlotRow = 1;
241: uTgifPlotCol = 1;
242: uTgif_win_horiz = 1;
243: uTgif_win_verti = 1;
244: uActResolution = 100;
245:
246:
247: /*}}} */
248:
249: if (!END_OF_COMMAND) {
250: if (almost_equals(c_token, "p$ortrait")) {
251: TgifPortrait = TRUE;
252: c_token++;
253: } else if (almost_equals(c_token, "l$andscape")) {
254: TgifPortrait = FALSE;
255: uActResolution = 140;
256: c_token++;
257: }
258: }
259: /*}}} */
260:
261: if (!END_OF_COMMAND) {
262: if (equals(c_token, "[")) { /* windows specified */
263: c_token++;
264: if (END_OF_COMMAND) {
265: int_error("no. windows: [horizontal,vertical] expected", c_token);
266: } else if (!equals(c_token, ",")) {
267: uTgif_win_horiz = (int) real(const_express(&a));
268: }
269: if (!equals(c_token, ","))
270: int_error("',' expected", c_token);
271: c_token++;
272: if (!equals(c_token, "]")) {
273: uTgif_win_verti = (int) real(const_express(&a));
274: }
275: if (!equals(c_token, "]"))
276: int_error("expecting ']'", c_token);
277: c_token++;
278:
279: uTgifPlotsPerPage = uTgif_win_verti * uTgif_win_horiz;
280:
281:
282: }
283: }
284: /*}}} */
285:
286: if (!END_OF_COMMAND) {
287: if (almost_equals(c_token, "s$olid")) {
288: TgifSolid = TRUE;
289: c_token++;
290: } else if (almost_equals(c_token, "d$ashed")) {
291: TgifSolid = FALSE;
292: c_token++;
293: }
294: }
295: /*}}} */
296:
297: if (!END_OF_COMMAND && isstring(c_token)) {
298: quote_str(sActFont, c_token, MAX_LINE_LEN);
299: strcpy(sDefaultFont, sActFont);
300: c_token++;
301: }
302: if (!END_OF_COMMAND) {
303: /* We have font size specified */
304: uActFontSize = (unsigned int) real(const_express(&b));
305: uDefaultFontSize = uActFontSize;
306: term->v_char = (unsigned int) (uActFontSize);
307: term->h_char = (unsigned int) (uActFontSize * 6 / 10);
308: }
309: /*}}} */
310:
311: if (TgifPortrait) {
312: dscaleH = (double) 100.0 *(TGIF_XTOT) / (xsize * (TGIF_XMAX + (uTgif_win_horiz - 1) * TGIF_XSHIFT));
313: dscaleV = (double) 100.0 *(TGIF_YTOT) / (ysize * (TGIF_YMAX + (uTgif_win_verti - 1) * TGIF_YSHIFT));
314: uActResolution = (int) GPMIN(dscaleH, dscaleV);
315: switch (uTgif_win_verti) {
316: case 1:
317: uActZoom = 0;
318: break;
319:
320: case 2:
321: uActZoom = 1;
322: break;
323: default:
324: uActZoom = 2;
325: break;
326:
327: }
328: } else {
329: dscaleH = (double) 100.0 *(TGIF_YTOT) / (xsize * (TGIF_XMAX + (uTgif_win_horiz - 1) * TGIF_XSHIFT));
330: dscaleV = (double) 100.0 *(TGIF_XTOT) / (ysize * (TGIF_YMAX + (uTgif_win_verti - 1) * TGIF_YSHIFT));
331: uActResolution = (unsigned int) GPMIN(dscaleH, dscaleV);
332:
333: switch (uTgif_win_verti) {
334: case 1:
335: uActZoom = 0;
336: break;
337:
338: case 2:
339: uActZoom = 1;
340: break;
341: default:
342: uActZoom = 2;
343: break;
344:
345: }
346: }
347:
348: /*}}} */
349:
350: sprintf(term_options, "%s [%u,%u] %s \"%s\" %u",
351: TgifPortrait ? "portrait" : "landscape",
352: uTgif_win_horiz, uTgif_win_verti,
353: TgifSolid ? "solid" : "dashed",
354: sActFont, uActFontSize);
355: }
356: /*}}} */
357: /***************************************************************************/
358: TERM_PUBLIC void TGIF_init()
359: {
360:
361: if (multiplot) {
362: /* uActResolution= TgifPortrait ? (unsigned int)100 : (unsigned int)145 ; */
363: uActResolution = (unsigned int) 100;
364:
365: if (uTgifPlotsPerPage > 1) {
366: fputs("warning: using standard multiplot\n", stderr);
367: uTgifPlotsPerPage = 1;
368: }
369: uActZoom = 1;
370: }
371: fprintf(gpoutfile, "\
372: %%TGIF 2.15-p7\n\
373: state(%d,30,%u,0,0,%u,16,1,9,1,1,0,0,0,0,1,0,'%s',0,%u,0,0,1,10,0,0,1,1,0,16,0,0,1,1,1).\n\
374: %%\n%% @(#)$Header: /export/home/cheetah/ddenholm/cvsroot/gnuplot/term/tgif.trm,v 1.66 1998/04/14 00:18:10 drd Exp $\n%% %%W%%\n%%\n\
375: page(1,\"\").\n",
376: TgifPortrait ? 0 : 1, uActResolution, uActZoom, sActFont, uActFontSize);
377: eTgifState = NEWPOLY;
378: iTgifPolyCount = 0;
379: uTgifPlotCount = 0;
380: uActPage = 1;
381:
382: } /* TGIF_init */
383: /*}}} */
384: /***************************************************************************/
385: TERM_PUBLIC void TGIF_graphics()
386: {
387:
388: TGIF_flush_poly();
389:
390: if (multiplot) {
391:
392: term->xmax = (TgifPortrait) ? TGIF_XTOT : TGIF_YTOT;
393: term->ymax = (TgifPortrait) ? TGIF_YTOT : TGIF_XTOT;
394: uLastTgifX = (TgifPortrait) ? TGIF_XOFF : TGIF_YOFF;
395: uLastTgifY = (TgifPortrait) ? TGIF_YTOT + TGIF_YOFF : TGIF_XTOT + TGIF_XOFF;
396:
397: uYshift = uLastTgifY;
398: uXshift = uLastTgifX;
399:
400: } else {
401: if (uTgifPlotCount < uTgifPlotsPerPage)
402: uTgifPlotCount++;
403: else {
404: fprintf(stderr, "error: number of plots > plots per page\n");
405: return;
406: }
407:
408: uXshift = (unsigned int) TGIF_XOFF *100 / uActResolution + (xsize * (uTgifPlotCol - 1) * TGIF_XSHIFT);
409: uYshift = (unsigned int) TGIF_YOFF *100 / uActResolution + (ysize * (TGIF_YMAX +
410: (uTgifPlotRow - 1) * TGIF_YSHIFT));
411:
412: if (uTgifPlotCount % uTgif_win_horiz == 0) {
413: uTgifPlotCol = 1;
414: uTgifPlotRow++;
415: } else {
416: uTgifPlotCol++;
417: }
418:
419: uLastTgifX = uXshift;
420: uLastTgifY = uYshift;
421:
422: }
423:
424:
425:
426:
427:
428: /* default settings for each plot */
429: iTgifPolyCount = 0;
430: uActNr = 0;
431: uActAngle = 0;
432: uActThick = 1;
433: uActStyle = 0;
434: uActJust = LEFT;
435: strcpy(sActColor, psColors[0]);
436:
437:
438: } /* TGIF_graphics */
439: /*}}} */
440: /***************************************************************************/
441: TERM_PUBLIC void TGIF_text()
442: {
443: TGIF_flush_poly();
444:
445:
446: } /* TGIF_text */
447:
448: /*}}} */
449: /***************************************************************************/
450: TERM_PUBLIC void TGIF_reset()
451: {
452: TGIF_flush_poly();
453: iTgifPolyCount = 0;
454: uTgifPlotCount = 0;
455: uTgifPlotRow = 1;
456: uTgifPlotCol = 1;
457:
458:
459: if (gpoutfile != (FILE *) NULL)
460: fflush(gpoutfile);
461:
462: } /* TGIF_reset */
463: /*}}} */
464: /***************************************************************************/
465: TERM_PUBLIC void TGIF_linetype(linetype)
466: int linetype;
467: {
468: unsigned int ult;
469:
470:
471: TGIF_flush_poly();
472:
473:
474: if (linetype >= 0)
475: ult = 2 + linetype % 10;
476: else
477: ult = linetype + 2;
478:
479: strcpy(sActColor, psColors[ult]);
480: uActThick = uLineThick[ult];
481: if (!TgifSolid)
482: uActStyle = uLineStyle[ult];
483: else {
484: if (ult == 1) /* grid */
485: uActStyle = uLineStyle[ult];
486: else
487: uActStyle = uLineStyle[2];
488:
489: }
490:
491: } /* TGIF_linetype */
492: /*}}} */
493: /***************************************************************************/
494: TERM_PUBLIC void TGIF_move(ux, uy)
495: unsigned int ux, uy;
496: {
497:
498: uLastTgifX = ux + uXshift;
499: uLastTgifY = uYshift - uy;
500:
501: if (eTgifState == INPOLY)
502: TGIF_flush_poly();
503:
504:
505:
506: } /* TGIF_move */
507: /*}}} */
508: /***************************************************************************/
509: TERM_PUBLIC void TGIF_vector(ux, uy)
510: unsigned int ux, uy;
511: {
512:
513: ux = ux + uXshift;
514: uy = uYshift - uy;
515:
516:
517:
518: if (eTgifState == NEWPOLY) {
519: uBuffX[0] = uLastTgifX;
520: uBuffY[0] = uLastTgifY;
521: iTgifPolyCount = 1;
522: eTgifState = INPOLY;
523: }
524: uBuffX[iTgifPolyCount] = ux;
525: uBuffY[iTgifPolyCount] = uy;
526: uLastTgifX = ux;
527: uLastTgifY = uy;
528: iTgifPolyCount++;
529: eTgifState = INPOLY;
530:
531: if (iTgifPolyCount == TGIF_MAXPOLY) {
532: TGIF_flush_poly();
533:
534: }
535: } /* TGIF_vector */
536: /*}}} */
537: /***************************************************************************/
538: TERM_PUBLIC void TGIF_arrow(sx, sy, ex, ey, head)
539: unsigned int sx, sy, ex, ey;
540: TBOOLEAN head;
541: {
542:
543: TGIF_flush_poly();
544:
545: sx = sx + uXshift;
546: ex = ex + uXshift;
547: sy = uYshift - sy;
548: ey = uYshift - ey;
549:
550:
551: if (head) {
552: fprintf(gpoutfile, "poly('%s',%d,[\n\t%u,%u,%u,%u],1,%u,1,%u,0,0,%u,0,8,3,0,[\n]).\n",
553: sActColor, 2, sx, sy, ex, ey, uActThick, uActNr, uActStyle);
554: } else {
555: fprintf(gpoutfile, "poly('%s',%d,[\n\t%u,%u,%u,%u],1,%u,1,%u,0,0,%u,0,8,3,0,[\n]).\n",
556: sActColor, 2, sx, sy, ex, ey, uActThick, uActNr, uActStyle);
557: }
558:
559: uActNr++;
560:
561:
562:
563: uLastTgifX = ex;
564: uLastTgifY = ey;
565:
566: } /* TGIF_arrow */
567: /*}}} */
568: /***************************************************************************/
569: TERM_PUBLIC void TGIF_put_text(ux, uy, str)
570: unsigned int ux, uy;
571: char *str;
572: {
573:
574: unsigned int x, y;
575: struct termentry *t = term;
576:
577: TGIF_flush_poly();
578:
579: x = ux + uXshift;
580: y = uYshift - uy - t->v_char / 2;
581:
582:
583:
584: if (strlen(str) == 0)
585: return;
586:
587:
588: fprintf(gpoutfile,
589: "text('%s',%u,%u,'%s',0,%u,1,%u,%u,1,55,119,%u,0,15,4,0,0,0,0,[\n\t\"%s\"]).\n",
590: sActColor, x, y, sActFont, uActFontSize, uActJust, uActAngle, uActNr, str);
591:
592: uActNr += 2;
593:
594: /* reset font size and font, they might have been changed */
595: uActFontSize = uDefaultFontSize;
596: strcpy(sActFont, sDefaultFont);
597:
598: } /* TGIF_put_text */
599: /*}}} */
600: /***************************************************************************/
601: TERM_PUBLIC int TGIF_text_angle(ang)
602: int ang;
603: {
604: uActAngle = uTextAngle[ang]; /* 0=waag. 1=senkrecht */
605: return (TRUE);
606: } /* TGIF_text_angle */
607:
608: /*}}} */
609: /***************************************************************************/
610: TERM_PUBLIC int TGIF_justify_text(mode)
611: enum JUSTIFY mode;
612: {
613: uActJust = mode;
614: return (TRUE);
615: } /* TGIF_justify_text */
616:
617: /*}}} */
618: /***************************************************************************/
619: TERM_PUBLIC void TGIF_point(ux, uy, number)
620: unsigned int ux, uy;
621: int number;
622: {
623: double p; /* all pointtypes fit in a (x +/-p)x(y +/-p) box */
624:
625: double x, y;
626:
627:
628:
629: x = (double) (ux + uXshift);
630: y = (double) (uYshift - uy);
631:
632: p = pointsize * 8.0; /* NL: Increased the bounding box (p value) from 4.0 to 8.0 */
633: if (p == (double) 0.0)
634: p = 0.1;
635:
636: TGIF_flush_poly();
637:
638: if (number != -1)
639: number = number % 63;
640: switch (number) {
641: case -1:
642: /* HBB: corrected format string, shuts up gcc -Wall */
643: fprintf(gpoutfile, "poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,1,1,%u,0,0,0,0,8,3,0,[\n]).\n",
644: sActColor, x, y, x + 1, y + 1, uActNr++);
645: break;
646: case 0:
647: /* cross */
648: /* taking thickness 2 for cross & plus & star */
649: fprintf(gpoutfile, "\
650: group([\n\
651: poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]).\n\
652: poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]).\n",
653: sActColor, x - p, y - p, x + p, y + p, uActNr+1,
654: sActColor, x - p, y + p, x + p, y - p, uActNr+2);
655: uActNr += 4;
656: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
657: break;
658: /*}}} */
659: case 1:
660: /* plus */
661: /* taking thickness 2 for cross & plus & star */
662: fprintf(gpoutfile, "\
663: group([\n\
664: poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]),\n\
665: poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n])\n",
666: sActColor, x, y - p - 1, x, y + p + 1, uActNr+1,
667: sActColor, x - p - 1, y, x + p + 1, y, uActNr+2);
668: uActNr += 4;
669: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
670: break;
671: /*}}} */
672: case 2:
673: /* star */
674: /* taking thickness 2 for cross & plus & star */
675: fprintf(gpoutfile, "group([\n");
676: fprintf(gpoutfile, "poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]),\n",
677: sActColor, x, y - p - 1, x, y + p + 1, uActNr++);
678: fprintf(gpoutfile, "poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n])\n",
679: sActColor, x - p - 1, y, x + p + 1, y, uActNr++);
680: fprintf(gpoutfile, "poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]).\n",
681: sActColor, x - p, y - p, x + p, y + p, uActNr++);
682: fprintf(gpoutfile, "poly('%s',2,[\n\t%.1f,%.1f,%.1f,%.1f],0,2,1,%u,0,0,0,0,8,3,0,[\n]).\n",
683: sActColor, x - p, y + p, x + p, y - p, uActNr++);
684: uActNr += 4;
685: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
686: break;
687: /*}}} */
688: case 3:
689: /* box */
690: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
691: sActColor, x - p, y - p, x + p, y + p, uActNr);
692: uActNr++;
693: break;
694: /*}}} */
695: case 4:
696: /* filled box */
697: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
698: sActColor, x - p, y - p, x + p, y + p, uActNr);
699: uActNr++;
700: break;
701: /*}}} */
702: case 5:
703: /* circle */
704: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
705: sActColor, x - p, y - p, x + p, y + p, uActNr);
706: uActNr++;
707: break;
708: /*}}} */
709: case 6:
710: /* filled circle */
711: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
712: sActColor, x - p, y - p, x + p, y + p, uActNr);
713: uActNr++;
714: break;
715: /*}}} */
716: case 7:
717: /* triangle up */
718: fprintf(gpoutfile,
719: "polygon('%s',4,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
720: sActColor, x, y - p, x + p, y + 0.75 * p, x - p, y + 0.75 * p, x, y - p, uActNr);
721: uActNr++;
722: break;
723: /*}}} */
724: case 8:
725: /* filled triangle up */
726: fprintf(gpoutfile,
727: "polygon('%s',4,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
728: sActColor, x, y - p, x + p, y + 0.75 * p, x - p, y + 0.75 * p, x, y - p, uActNr);
729: uActNr++;
730: break;
731: /*}}} */
732: case 9:
733: /* triangle down */
734: fprintf(gpoutfile,
735: "polygon('%s',4,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
736: sActColor, x, y + p, x - p, y - 0.75 * p, x + p, y - 0.75 * p, x, y + p, uActNr);
737: uActNr++;
738: break;
739: /*}}} */
740: case 10:
741: /* filled triangle down */
742: fprintf(gpoutfile,
743: "polygon('%s',4,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
744: sActColor, x, y + p, x - p, y - 0.75 * p, x + p, y - 0.75 * p, x, y + p, uActNr);
745: uActNr++;
746: break;
747: /*}}} */
748: case 11:
749: /* diamond */
750: fprintf(gpoutfile,
751: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
752: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
753: uActNr++;
754: break;
755: /*}}} */
756: case 12:
757: /* filled diamond */
758: fprintf(gpoutfile,
759: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
760: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
761: uActNr++;
762: break;
763: /*}}} */
764: case 13:
765: /* pentagon */
766: fprintf(gpoutfile,
767: "polygon('%s',6,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
768: sActColor, x, y - p, x + p, y - p / 4, x + 0.625 * p, y + p, x - 0.625 * p, y + p,
769: x - p, y - p / 4, x, y - p, uActNr);
770: uActNr++;
771: break;
772: /*}}} */
773: case 14:
774: /* filled pentagon */
775: fprintf(gpoutfile,
776: "polygon('%s',6,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
777: sActColor, x, y - p, x + p, y - p / 4, x + 0.625 * p, y + p, x - 0.625 * p, y + p,
778: x - p, y - p / 4, x, y - p, uActNr);
779: uActNr++;
780: break;
781: /*}}} */
782: case 15:
783: /* circle1 */
784: fprintf(gpoutfile, "group([\n");
785: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
786: sActColor, x - p, y - p, x + p, y + p, uActNr++);
787: fprintf(gpoutfile,
788: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,4480,2560,%u,0,0,8,3,0,[\n]).\n",
789: sActColor, x - p, y - p, x, y, x + p * 0.342, y - p * 0.94, x - p * 0.342, y - p *
790: 0.94, 2 * p, 2 * p, uActNr++);
791: uActNr += 2;
792: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
793: break;
794: /*}}} */
795: case 16:
796: /* circle2 */
797: fprintf(gpoutfile, "group([\n");
798: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
799: sActColor, x - p, y - p, x + p, y + p, uActNr++);
800: fprintf(gpoutfile,
801: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,0,5760,%u,0,0,8,3,0,[\n]).\n",
802: sActColor, x - p, y - p, x, y, x + p, y, x, y - p, 2 * p, 2 * p, uActNr++);
803: uActNr += 2;
804: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
805: break;
806: /*}}} */
807: case 17:
808: /* circle3 */
809: fprintf(gpoutfile, "group([\n");
810: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
811: sActColor, x - p, y - p, x + p, y + p, uActNr++);
812: fprintf(gpoutfile,
813: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,5760,5760,%u,0,0,8,3,0,[\n]).\n",
814: sActColor, x - p, y - p, x, y, x, y - p, x - p, y, 2 * p, 2 * p, uActNr++);
815: uActNr += 2;
816: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
817: break;
818: /*}}} */
819: case 18:
820: /* circle4 */
821: fprintf(gpoutfile, "group([\n");
822: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
823: sActColor, x - p, y - p, x + p, y + p, uActNr++);
824: fprintf(gpoutfile,
825: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,0,11520,%u,0,0,8,3,0,[\n]).\n",
826: sActColor, x - p, y - p, x, y, x + p, y, x - p, y, 2 * p, 2 * p, uActNr++);
827: uActNr += 2;
828: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
829: break;
830: /*}}} */
831: case 19:
832: /* circle5 */
833: fprintf(gpoutfile, "group([\n");
834: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
835: sActColor, x - p, y - p, x + p, y + p, uActNr++);
836: fprintf(gpoutfile,
837: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,11520,5760,%u,0,0,8,3,0,[\n]).\n",
838: sActColor, x - p, y - p, x, y, x - p, y, x, y + p, 2 * p, 2 * p, uActNr++);
839: uActNr += 2;
840: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
841: break;
842: /*}}} */
843: case 20:
844: /* circle6 */
845: fprintf(gpoutfile, "group([\n");
846: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
847: sActColor, x - p, y - p, x + p, y + p, uActNr++);
848: fprintf(gpoutfile,
849: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,0,5760,%u,0,0,8,3,0,[\n]).\n",
850: sActColor, x - p, y - p, x, y, x + p, y, x, y - p, 2 * p, 2 * p, uActNr++);
851: fprintf(gpoutfile,
852: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,11520,5760,%u,0,0,8,3,0,[\n]).\n",
853: sActColor, x - p, y - p, x, y, x - p, y, x, y + p, 2 * p, 2 * p, uActNr++);
854: uActNr += 3;
855: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
856: break;
857: /*}}} */
858: case 21:
859: /* circle7 */
860: fprintf(gpoutfile, "group([\n");
861: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
862: sActColor, x - p, y - p, x + p, y + p, uActNr++);
863: fprintf(gpoutfile,
864: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,5760,11520,%u,0,0,8,3,0,[\n]).\n",
865: sActColor, x - p, y - p, x, y, x, y - p, x, y + p, 2 * p, 2 * p, uActNr++);
866: uActNr += 2;
867: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
868: break;
869: /*}}} */
870: case 22:
871: /* circle8 */
872: fprintf(gpoutfile, "group([\n");
873: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
874: sActColor, x - p, y - p, x + p, y + p, uActNr++);
875: fprintf(gpoutfile,
876: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,0,17280,%u,0,0,8,3,0,[\n]).\n",
877: sActColor, x - p, y - p, x, y, x + p, y, x, y + p, 2 * p, 2 * p, uActNr++);
878: uActNr += 2;
879: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
880: break;
881: /*}}} */
882: case 23:
883: /* circle9 */
884: fprintf(gpoutfile, "group([\n");
885: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
886: sActColor, x - p, y - p, x + p, y + p, uActNr++);
887: fprintf(gpoutfile,
888: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,17280,5760,%u,0,0,8,3,0,[\n]).\n",
889: sActColor, x - p, y - p, x, y, x, y + p, x + p, y, 2 * p, 2 * p, uActNr++);
890: uActNr += 2;
891: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
892: break;
893: /*}}} */
894: case 24:
895: /* circle10 */
896: fprintf(gpoutfile, "group([\n");
897: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
898: sActColor, x - p, y - p, x + p, y + p, uActNr++);
899: fprintf(gpoutfile,
900: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,17280,11520,%u,0,0,8,3,0,[\n]).\n",
901: sActColor, x - p, y - p, x, y, x, y + p, x, y - p, 2 * p, 2 * p, uActNr++);
902: uActNr += 2;
903: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
904: break;
905: /*}}} */
906: case 25:
907: /* circle11 */
908: fprintf(gpoutfile, "group([\n");
909: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
910: sActColor, x - p, y - p, x + p, y + p, uActNr++);
911: fprintf(gpoutfile,
912: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,5760,5760,%u,0,0,8,3,0,[\n]).\n",
913: sActColor, x - p, y - p, x, y, x, y - p, x - p, y, 2 * p, 2 * p, uActNr++);
914: fprintf(gpoutfile,
915: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,17280,5760,%u,0,0,8,3,0,[\n]).\n",
916: sActColor, x - p, y - p, x, y, x, y + p, x + p, y, 2 * p, 2 * p, uActNr++);
917: uActNr += 3;
918: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
919: break;
920: /*}}} */
921: case 26:
922: /* circle12 */
923: fprintf(gpoutfile, "group([\n");
924: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
925: sActColor, x - p, y - p, x + p, y + p, uActNr++);
926: fprintf(gpoutfile,
927: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,17280,17280,%u,0,0,8,3,0,[\n]).\n",
928: sActColor, x - p, y - p, x, y, x, y + p, x - p, y, 2 * p, 2 * p, uActNr++);
929: uActNr += 2;
930: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
931: break;
932: /*}}} */
933: case 27:
934: /* circle13 */
935: fprintf(gpoutfile, "group([\n");
936: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
937: sActColor, x - p, y - p, x + p, y + p, uActNr++);
938: fprintf(gpoutfile,
939: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,11520,11520,%u,0,0,8,3,0,[\n]).\n",
940: sActColor, x - p, y - p, x, y, x - p, y, x + p, y, 2 * p, 2 * p, uActNr++);
941: uActNr += 2;
942: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
943: break;
944: /*}}} */
945: case 28:
946: /* circle14 */
947: fprintf(gpoutfile, "group([\n");
948: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
949: sActColor, x - p, y - p, x + p, y + p, uActNr++);
950: fprintf(gpoutfile,
951: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,11520,17280,%u,0,0,8,3,0,[\n]).\n",
952: sActColor, x - p, y - p, x, y, x - p, y, x, y - p, 2 * p, 2 * p, uActNr++);
953: uActNr += 2;
954: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
955: break;
956: /*}}} */
957: case 29:
958: /* circle15 */
959: fprintf(gpoutfile, "group([\n");
960: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
961: sActColor, x - p, y - p, x + p, y + p, uActNr++);
962: fprintf(gpoutfile,
963: "arc('%s',1,1,1,0,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,0,%.1f,%.1f,5760,17280,%u,0,0,8,3,0,[\n]).\n",
964: sActColor, x - p, y - p, x, y, x, y - p, x + p, y, 2 * p, 2 * p, uActNr++);
965: uActNr += 2;
966: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
967: break;
968: /*}}} */
969: case 30:
970: /* circle16 */
971: fprintf(gpoutfile, "oval('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
972: sActColor, x - p, y - p, x + p, y + p, uActNr);
973: uActNr++;
974: break;
975: /*}}} */
976: case 31:
977: /* box1 */
978: fprintf(gpoutfile, "group([\n");
979: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
980: sActColor, x - p, y - p, x + p, y + p, uActNr++);
981: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
982: sActColor, x - p / 4, y - p, x + p / 4, y, uActNr++);
983: uActNr += 2;
984: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
985: break;
986: /*}}} */
987: case 32:
988: /* box2 */
989: fprintf(gpoutfile, "group([\n");
990: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
991: sActColor, x - p, y - p, x + p, y + p, uActNr++);
992: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
993: sActColor, x, y - p, x + p, y, uActNr++);
994: uActNr += 2;
995: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
996: break;
997: /*}}} */
998: case 33:
999: /* box3 */
1000: fprintf(gpoutfile, "group([\n");
1001: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1002: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1003: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1004: sActColor, x - p, y - p, x, y, uActNr++);
1005: uActNr += 2;
1006: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1007: break;
1008: /*}}} */
1009: case 34:
1010: /* box4 */
1011: fprintf(gpoutfile, "group([\n");
1012: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1013: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1014: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1015: sActColor, x - p, y - p, x + p, y, uActNr++);
1016: uActNr += 2;
1017: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1018: break;
1019: /*}}} */
1020: case 35:
1021: /* box5 */
1022: fprintf(gpoutfile, "group([\n");
1023: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1024: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1025: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1026: sActColor, x - p, y, x, y + p, uActNr++);
1027: uActNr += 2;
1028: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1029: break;
1030: /*}}} */
1031: case 36:
1032: /* box6 */
1033: fprintf(gpoutfile, "group([\n");
1034: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1035: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1036: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1037: sActColor, x, y - p, x + p, y, uActNr++);
1038: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1039: sActColor, x - p, y, x, y + p, uActNr++);
1040: uActNr += 3;
1041: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1042: break;
1043: /*}}} */
1044: case 37:
1045: /* box7 */
1046: fprintf(gpoutfile, "group([\n");
1047: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1048: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1049: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1050: sActColor, x - p, y - p, x, y + p, uActNr++);
1051: uActNr += 2;
1052: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1053: break;
1054: /*}}} */
1055: case 38:
1056: /* box8 */
1057: fprintf(gpoutfile, "group([\n");
1058: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1059: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1060: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1061: sActColor, x - p, y - p, x + p, y, uActNr++);
1062: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1063: sActColor, x - p, y, x, y + p, uActNr++);
1064: uActNr += 3;
1065: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1066: break;
1067: /*}}} */
1068: case 39:
1069: /* box9 */
1070: fprintf(gpoutfile, "group([\n");
1071: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1072: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1073: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1074: sActColor, x, y, x + p, y + p, uActNr++);
1075: uActNr += 2;
1076: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1077: break;
1078: /*}}} */
1079: case 40:
1080: /* box10 */
1081: fprintf(gpoutfile, "group([\n");
1082: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1083: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1084: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1085: sActColor, x, y - p, x + p, y + p, uActNr++);
1086: uActNr += 2;
1087: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1088: break;
1089: /*}}} */
1090: case 41:
1091: /* box11 */
1092: fprintf(gpoutfile, "group([\n");
1093: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1094: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1095: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1096: sActColor, x - p, y - p, x, y, uActNr++);
1097: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1098: sActColor, x, y, x + p, y + p, uActNr++);
1099: uActNr += 3;
1100: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1101: break;
1102: /*}}} */
1103: case 42:
1104: /* box12 */
1105: fprintf(gpoutfile, "group([\n");
1106: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1107: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1108: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1109: sActColor, x - p, y - p, x + p, y, uActNr++);
1110: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1111: sActColor, x, y, x + p, y + p, uActNr++);
1112: uActNr += 3;
1113: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1114: break;
1115: /*}}} */
1116: case 43:
1117: /* box13 */
1118: fprintf(gpoutfile, "group([\n");
1119: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1120: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1121: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1122: sActColor, x - p, y, x + p, y + p, uActNr++);
1123: uActNr += 2;
1124: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1125: break;
1126: /*}}} */
1127: case 44:
1128: /* box14 */
1129: fprintf(gpoutfile, "group([\n");
1130: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1131: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1132: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1133: sActColor, x, y - p, x + p, y, uActNr++);
1134: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1135: sActColor, x - p, y, x + p, y + p, uActNr++);
1136: uActNr += 3;
1137: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1138: break;
1139: /*}}} */
1140: case 45:
1141: /* box15 */
1142: fprintf(gpoutfile, "group([\n");
1143: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,2,1,1,%u,0,0,0,[\n]).\n",
1144: sActColor, x - p, y - p, x + p, y + p, uActNr++);
1145: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1146: sActColor, x - p, y - p, x, y, uActNr++);
1147: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1148: sActColor, x - p, y, x + p, y + p, uActNr++);
1149: uActNr += 3;
1150: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1151: break;
1152: /*}}} */
1153: case 46:
1154: /* box16 */
1155: fprintf(gpoutfile, "box('%s',%.1f,%.1f,%.1f,%.1f,1,1,1,%u,0,0,0,[\n]).\n",
1156: sActColor, x - p, y - p, x + p, y + p, uActNr);
1157: uActNr++;
1158: break;
1159: /*}}} */
1160: case 47:
1161: /* diamond1 */
1162: fprintf(gpoutfile, "group([\n");
1163: fprintf(gpoutfile,
1164: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1165: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1166: fprintf(gpoutfile,
1167: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1168: sActColor, x - 0.625 * p, y - 0.375 * p, x - 0.375 * p, y - 0.625 * p, x + p / 8,
1169: y - p / 8, x - p / 8, y + p / 8, x - 0.625 * p, y - 0.375 * p, uActNr);
1170: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1171: uActNr += 2;
1172: break;
1173: /*}}} */
1174: case 48:
1175: /* diamond2 */
1176: fprintf(gpoutfile, "group([\n");
1177: fprintf(gpoutfile,
1178: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1179: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1180: fprintf(gpoutfile,
1181: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1182: sActColor, x - p / 2, y - p / 2, x, y - p, x + p / 2, y - p / 2, x, y, x - p / 2,
1183: y - p / 2, uActNr);
1184: uActNr += 2;
1185: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1186: break;
1187: /*}}} */
1188: case 49:
1189: /* diamond3 */
1190: fprintf(gpoutfile, "group([\n");
1191: fprintf(gpoutfile,
1192: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1193: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1194: fprintf(gpoutfile,
1195: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1196: sActColor, x - p, y, x - p / 2, y - p / 2, x, y, x - p / 2, y + p / 2, x - p, y, uActNr);
1197: uActNr += 2;
1198: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1199: break;
1200: /*}}} */
1201: case 50:
1202: /* diamond4 */
1203: fprintf(gpoutfile, "group([\n");
1204: fprintf(gpoutfile,
1205: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1206: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1207: fprintf(gpoutfile,
1208: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1209: sActColor, x - p, y, x, y - p, x + p / 2, y - p / 2, x - p / 2, y + p / 2, x - p,
1210: y, uActNr);
1211: uActNr += 2;
1212: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1213: break;
1214: /*}}} */
1215: case 51:
1216: /* diamond5 */
1217: fprintf(gpoutfile, "group([\n");
1218: fprintf(gpoutfile,
1219: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1220: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1221: fprintf(gpoutfile,
1222: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1223: sActColor, x - p / 2, y + p / 2, x, y, x + p / 2, y + p / 2, x, y + p, x - p / 2,
1224: y + p / 2, uActNr);
1225: uActNr += 2;
1226: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1227: break;
1228: /*}}} */
1229: case 52:
1230: /* diamond6 */
1231: fprintf(gpoutfile, "group([\n");
1232: fprintf(gpoutfile,
1233: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1234: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1235: fprintf(gpoutfile,
1236: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1237: sActColor, x - p / 2, y - p / 2, x, y - p, x + p / 2, y - p / 2, x, y, x - p / 2,
1238: y - p / 2, uActNr);
1239: fprintf(gpoutfile,
1240: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1241: sActColor, x - p / 2, y + p / 2, x, y, x + p / 2, y + p / 2, x, y + p, x - p / 2,
1242: y + p / 2, uActNr);
1243: uActNr += 3;
1244: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1245: break;
1246: /*}}} */
1247: case 53:
1248: /* diamond7 */
1249: fprintf(gpoutfile, "group([\n");
1250: fprintf(gpoutfile,
1251: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1252: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1253: fprintf(gpoutfile,
1254: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1255: sActColor, x - p, y, x - p / 2, y - p / 2, x + p / 2, y + p / 2, x, y + p, x - p,
1256: y, uActNr);
1257: uActNr += 2;
1258: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1259: break;
1260: /*}}} */
1261: case 54:
1262: /* diamond8 */
1263: fprintf(gpoutfile, "group([\n");
1264: fprintf(gpoutfile,
1265: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1266: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1267: fprintf(gpoutfile,
1268: "polygon('%s',7,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1269: sActColor, x - p, y, x, y - p, x + p / 2, y - p / 2, x, y, x + p / 2, y + p / 2,
1270: x, y + p, x - p, y, uActNr);
1271: uActNr += 2;
1272: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1273: break;
1274: /*}}} */
1275: case 55:
1276: /* diamond9 */
1277: fprintf(gpoutfile, "group([\n");
1278: fprintf(gpoutfile,
1279: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1280: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1281: fprintf(gpoutfile,
1282: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1283: sActColor, x, y, x + p / 2, y - p / 2, x + p, y, x + p / 2, y + p / 2, x, y, uActNr);
1284: uActNr += 2;
1285: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1286: break;
1287: /*}}} */
1288: case 56:
1289: /* diamond10 */
1290: fprintf(gpoutfile, "group([\n");
1291: fprintf(gpoutfile,
1292: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1293: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1294: fprintf(gpoutfile,
1295: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1296: sActColor, x - p / 2, y - p / 2, x, y - p, x + p, y, x + p / 2, y + p / 2, x - p /
1297: 2, y - p / 2, uActNr);
1298: uActNr += 2;
1299: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1300: break;
1301: /*}}} */
1302: case 57:
1303: /* diamond11 */
1304: fprintf(gpoutfile, "group([\n");
1305: fprintf(gpoutfile,
1306: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1307: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1308: fprintf(gpoutfile,
1309: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1310: sActColor, x - p, y, x - p / 2, y - p / 2, x, y, x - p / 2, y + p / 2, x - p, y, uActNr);
1311: fprintf(gpoutfile,
1312: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1313: sActColor, x, y, x + p / 2, y - p / 2, x + p, y, x + p / 2, y + p / 2, x, y, uActNr);
1314: uActNr += 3;
1315: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1316: break;
1317: /*}}} */
1318: case 58:
1319: /* diamond12 */
1320: fprintf(gpoutfile, "group([\n");
1321: fprintf(gpoutfile,
1322: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1323: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1324: fprintf(gpoutfile,
1325: "polygon('%s',7,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1326: sActColor, x - p, y, x, y - p, x + p, y, x + p / 2, y + p / 2, x, y, x - p / 2, y
1327: + p / 2, x - p, y, uActNr);
1328: uActNr += 2;
1329: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1330: break;
1331: /*}}} */
1332: case 59:
1333: /* diamond13 */
1334: fprintf(gpoutfile, "group([\n");
1335: fprintf(gpoutfile,
1336: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1337: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1338: fprintf(gpoutfile,
1339: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1340: sActColor, x - p / 2, y + p / 2, x + p / 2, y - p / 2, x + p, y, x, y + p, x - p /
1341: 2, y + p / 2, uActNr);
1342: uActNr += 2;
1343: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1344: break;
1345: /*}}} */
1346: case 60:
1347: /* diamond14 */
1348: fprintf(gpoutfile, "group([\n");
1349: fprintf(gpoutfile,
1350: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1351: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1352: fprintf(gpoutfile,
1353: "polygon('%s',7,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1354: sActColor, x - p / 2, y - p / 2, x, y - p, x + p, y, x, y + p, x - p / 2, y + p /
1355: 2, x, y, x - p / 2, y - p / 2, uActNr);
1356: uActNr += 2;
1357: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1358: break;
1359: /*}}} */
1360: case 61:
1361: /* diamond15 */
1362: fprintf(gpoutfile, "group([\n");
1363: fprintf(gpoutfile,
1364: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],0,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1365: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1366: fprintf(gpoutfile,
1367: "polygon('%s',7,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1368: sActColor, x - p, y, x - p / 2, y - p / 2, x, y, x + p / 2, y - p / 2, x + p, y,
1369: x, y + p, x - p, y, uActNr);
1370: uActNr += 2;
1371: fprintf(gpoutfile, "],\n%u,0,[\n]).\n", uActNr++);
1372: break;
1373: /*}}} */
1374: case 62:
1375: /* diamond16 */
1376: fprintf(gpoutfile,
1377: "polygon('%s',5,[\n%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f,%.1f],1,1,1,0,%u,0,0,0,0,0,[\n]).\n",
1378: sActColor, x, y + p, x + p, y, x, y - p, x - p, y, x, y + p, uActNr);
1379: uActNr++;
1380: break;
1381: /*}}} */
1382:
1383: } /* switch */
1384: } /* TGIF_point */
1385:
1386: /*}}} */
1387: /***************************************************************************/
1388: TERM_PUBLIC void TGIF_set_pointsize(size)
1389: double size;
1390: {
1391: uActPointSize = size;
1392: }
1393:
1394: /*}}} */
1395: /***************************************************************************/
1396: TERM_PUBLIC int TGIF_set_font(font) /* Entry font as added by DJL in post.trm */
1397: char *font;
1398: {
1399: char name[32];
1400: int size, sep;
1401:
1402: sep = strcspn(font, ",");
1403: strncpy(name, font, sep);
1404: name[sep] = NUL;
1405: size = uActFontSize;
1406: sscanf(&(font[sep + 1]), "%d", &size);
1407: uActFontSize = size;
1408: return TRUE;
1409: }
1410:
1411: /*}}} */
1412: /***************************************************************************/
1413:
1414: #endif /* TERM_BODY */
1415:
1416: #ifdef TERM_TABLE
1417:
1418: TERM_TABLE_START(tgif_driver)
1419: "tgif",
1420: "TGIF X11 [mode] [x,y] [dashed] [\042font\042 [fontsize]]",
1421: TGIF_XMAX, TGIF_YMAX, TGIF_VCHAR, TGIF_HCHAR,
1422: TGIF_VTIC, TGIF_HTIC, TGIF_options, TGIF_init, TGIF_reset,
1423: TGIF_text, null_scale, TGIF_graphics, TGIF_move, TGIF_vector,
1424: TGIF_linetype, TGIF_put_text, TGIF_text_angle,
1425: TGIF_justify_text, TGIF_point, TGIF_arrow, TGIF_set_font,
1426: TGIF_set_pointsize, TERM_CAN_MULTIPLOT
1427:
1428: TERM_TABLE_END(tgif_driver)
1429: #undef LAST_TERM
1430:
1431: #define LAST_TERM tgif_driver
1432:
1433: #endif /* TERM_TABLE */
1434:
1435: #endif /* TERM_PROTO_ONLY */
1436:
1437: #ifdef TERM_HELP
1438: START_HELP(tgif)
1439: "1 tgif",
1440: "?commands set terminal tgif",
1441: "?set terminal tgif",
1442: "?set term tgif",
1443: "?terminal tgif",
1444: "?term tgif",
1445: "?tgif",
1446: " Tgif is an X11-based drawing tool---it has nothing to do with GIF.",
1447: "",
1448: " The `tgif` driver supports different pointsizes (with `set pointsize`),",
1449: " different label fonts and font sizes (e.g. `set label \"Hallo\" at x,y font",
1450: " \"Helvetica,34\"`) and multiple graphs on the page. The proportions of the",
1451: " axes are not changed.",
1452: "",
1453: " Syntax:",
1454: " set terminal tgif {portrait | landscape} {<[x,y]>}",
1455: " {solid | dashed}",
1456: " {\"<fontname>\"} {<fontsize>}",
1457: "",
1458: " where <[x,y]> specifies the number of graphs in the x and y directions on the",
1459: " page, \"<fontname>\" is the name of a valid PostScript font, and <fontsize>",
1460: " specifies the size of the PostScript font. Defaults are `portrait`, `[1,1]`,",
1461: " `dashed`, `\"Helvetica\"`, and `18`.",
1462: "",
1463: " The `solid` option is usually prefered if lines are colored, as they often",
1464: " are in the editor. Hardcopy will be black-and-white, so `dashed` should be",
1465: " chosen for that.",
1466: "",
1467: " Multiplot is implemented in two different ways.",
1468: "",
1469: " The first multiplot implementation is the standard gnuplot multiplot feature:",
1470: "",
1471: " set terminal tgif",
1472: " set output \"file.obj\"",
1473: " set multiplot",
1474: " set origin x01,y01",
1475: " set size xs,ys",
1476: " plot ...",
1477: " ...",
1478: " set origin x02,y02",
1479: " plot ...",
1480: " set nomultiplot",
1481: "",
1482: " See `set multiplot` for further information.",
1483: "",
1484: " The second version is the [x,y] option for the driver itself. The advantage",
1485: " of this implementation is that everything is scaled and placed automatically",
1486: " without the need for setting origins and sizes; the graphs keep their natural",
1487: " x/y proportions of 3/2 (or whatever is fixed by `set size`).",
1488: "",
1489: " If both multiplot methods are selected, the standard method is chosen and a",
1490: " warning message is given.",
1491: "",
1492: " Examples of single plots (or standard multiplot):",
1493: " set terminal tgif # defaults",
1494: " set terminal tgif \"Times-Roman\" 24",
1495: " set terminal tgif landscape",
1496: " set terminal tgif landscape solid",
1497: "",
1498: " Examples using the built-in multiplot mechanism:",
1499: " set terminal tgif portrait [2,4] # portrait; 2 plots in the x-",
1500: " # and 4 in the y-direction",
1501: " set terminal tgif [1,2] # portrait; 1 plot in the x-",
1502: " # and 2 in the y-direction",
1503: " set terminal tgif landscape [3,3] # landscape; 3 plots in both",
1504: " # directions"
1505: END_HELP(tgif)
1506: #endif
1507: /*{{{}}}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>