13e12c5d1SDavid du Colombier #include "mplot.h" 23e12c5d1SDavid du Colombier #define pSMALL 0.5 33e12c5d1SDavid du Colombier struct penvir E[9] = { 4*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 5*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 6*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 7*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 8*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 9*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 10*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite}, 11*7dd7cddfSDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, DBlack, DWhite} 123e12c5d1SDavid du Colombier }; 133e12c5d1SDavid du Colombier struct penvir *e0 = E, *e1 = &E[1], *esave; 143e12c5d1SDavid du Colombier bcolor(char *s){ 153e12c5d1SDavid du Colombier int c; 163e12c5d1SDavid du Colombier while (*s != NULL) { 173e12c5d1SDavid du Colombier switch (*s) { 183e12c5d1SDavid du Colombier case '0': case '1': case '2': case '3': case '4': 193e12c5d1SDavid du Colombier case '5': case '6': case '7': case '8': case '9': 203e12c5d1SDavid du Colombier c=0; 213e12c5d1SDavid du Colombier while('0'<=*s && *s<='9') 223e12c5d1SDavid du Colombier c=c*10+*s++-'0'; 23*7dd7cddfSDavid du Colombier if(c < 0) 24*7dd7cddfSDavid du Colombier return DBlack; 25*7dd7cddfSDavid du Colombier return cmap2rgba(c); 26*7dd7cddfSDavid du Colombier case 'k': case 'z': /* zero was old name for kblack */ 27*7dd7cddfSDavid du Colombier return(DBlack); 283e12c5d1SDavid du Colombier case 'r': 29*7dd7cddfSDavid du Colombier print("RED"); 30*7dd7cddfSDavid du Colombier return(DRed); 313e12c5d1SDavid du Colombier case 'g': 32*7dd7cddfSDavid du Colombier return(DGreen); 333e12c5d1SDavid du Colombier case 'b': 34*7dd7cddfSDavid du Colombier return(DBlue); 353e12c5d1SDavid du Colombier case 'm': 36*7dd7cddfSDavid du Colombier return(DMagenta); 373e12c5d1SDavid du Colombier case 'y': 38*7dd7cddfSDavid du Colombier return(DYellow); 393e12c5d1SDavid du Colombier case 'c': 40*7dd7cddfSDavid du Colombier return(DCyan); 413e12c5d1SDavid du Colombier case 'w': 42*7dd7cddfSDavid du Colombier return(DWhite); 433e12c5d1SDavid du Colombier case 'R': 443e12c5d1SDavid du Colombier return(atoi(s + 1)); 453e12c5d1SDavid du Colombier case 'G': 463e12c5d1SDavid du Colombier e1->pgap = atof(s + 1); 473e12c5d1SDavid du Colombier return(-1); 483e12c5d1SDavid du Colombier case 'A': 493e12c5d1SDavid du Colombier e1->pslant = (180. - atof(s + 1)) / RADIAN; 503e12c5d1SDavid du Colombier return(-1); 513e12c5d1SDavid du Colombier } 523e12c5d1SDavid du Colombier while (*++s != NULL) 533e12c5d1SDavid du Colombier if (*s == '/') { 543e12c5d1SDavid du Colombier s++; 553e12c5d1SDavid du Colombier break; 563e12c5d1SDavid du Colombier } 573e12c5d1SDavid du Colombier } 58*7dd7cddfSDavid du Colombier return DBlack; 593e12c5d1SDavid du Colombier } 603e12c5d1SDavid du Colombier void sscpy(struct penvir *a, struct penvir *b){ /* copy 'a' onto 'b' */ 613e12c5d1SDavid du Colombier b->left = a->left; 623e12c5d1SDavid du Colombier b->bottom = a->bottom; 633e12c5d1SDavid du Colombier b->xmin = a->xmin; 643e12c5d1SDavid du Colombier b->ymin = a->ymin; 653e12c5d1SDavid du Colombier b->scalex = a->scalex; 663e12c5d1SDavid du Colombier b->scaley = a->scaley; 673e12c5d1SDavid du Colombier b->sidex = a->sidex; 683e12c5d1SDavid du Colombier b->sidey = a->sidey; 693e12c5d1SDavid du Colombier b->copyx = a->copyx; 703e12c5d1SDavid du Colombier b->copyy = a->copyy; 713e12c5d1SDavid du Colombier b->quantum = a->quantum; 723e12c5d1SDavid du Colombier b->grade = a->grade; 733e12c5d1SDavid du Colombier b->pmode = a->pmode; 743e12c5d1SDavid du Colombier b->foregr = a->foregr; 753e12c5d1SDavid du Colombier b->backgr = a->backgr; 763e12c5d1SDavid du Colombier } 773e12c5d1SDavid du Colombier void idle(void){} 783e12c5d1SDavid du Colombier 793e12c5d1SDavid du Colombier void ptype(char *s){USED(s);} 80