Annotation of OpenXM_contrib/gnuplot/term/tgif.trm, Revision 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>