1*3e12c5d1SDavid du Colombier #include "mplot.h" 2*3e12c5d1SDavid du Colombier #define pSMALL 0.5 3*3e12c5d1SDavid du Colombier struct penvir E[9] = { 4*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 5*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 6*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 7*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 8*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 9*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 10*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE}, 11*3e12c5d1SDavid du Colombier { 0., 1024., 0., 0., 1., -1.,1024., -1024., 0., 0., pSMALL, 1., 1, 0.,1, ZERO, WHITE} 12*3e12c5d1SDavid du Colombier }; 13*3e12c5d1SDavid du Colombier struct penvir *e0 = E, *e1 = &E[1], *esave; 14*3e12c5d1SDavid du Colombier bcolor(char *s){ 15*3e12c5d1SDavid du Colombier int c; 16*3e12c5d1SDavid du Colombier while (*s != NULL) { 17*3e12c5d1SDavid du Colombier switch (*s) { 18*3e12c5d1SDavid du Colombier case '0': case '1': case '2': case '3': case '4': 19*3e12c5d1SDavid du Colombier case '5': case '6': case '7': case '8': case '9': 20*3e12c5d1SDavid du Colombier c=0; 21*3e12c5d1SDavid du Colombier while('0'<=*s && *s<='9') 22*3e12c5d1SDavid du Colombier c=c*10+*s++-'0'; 23*3e12c5d1SDavid du Colombier return c<0?0:c; 24*3e12c5d1SDavid du Colombier case 'z': 25*3e12c5d1SDavid du Colombier return(ZERO); 26*3e12c5d1SDavid du Colombier case 'r': 27*3e12c5d1SDavid du Colombier return(RED); 28*3e12c5d1SDavid du Colombier case 'g': 29*3e12c5d1SDavid du Colombier return(GREEN); 30*3e12c5d1SDavid du Colombier case 'b': 31*3e12c5d1SDavid du Colombier return(BLUE); 32*3e12c5d1SDavid du Colombier case 'm': 33*3e12c5d1SDavid du Colombier return(MAGENTA); 34*3e12c5d1SDavid du Colombier case 'y': 35*3e12c5d1SDavid du Colombier return(YELLOW); 36*3e12c5d1SDavid du Colombier case 'c': 37*3e12c5d1SDavid du Colombier return(CYAN); 38*3e12c5d1SDavid du Colombier case 'w': 39*3e12c5d1SDavid du Colombier return(WHITE); 40*3e12c5d1SDavid du Colombier case 'R': 41*3e12c5d1SDavid du Colombier return(atoi(s + 1)); 42*3e12c5d1SDavid du Colombier case 'G': 43*3e12c5d1SDavid du Colombier e1->pgap = atof(s + 1); 44*3e12c5d1SDavid du Colombier return(-1); 45*3e12c5d1SDavid du Colombier case 'A': 46*3e12c5d1SDavid du Colombier e1->pslant = (180. - atof(s + 1)) / RADIAN; 47*3e12c5d1SDavid du Colombier return(-1); 48*3e12c5d1SDavid du Colombier } 49*3e12c5d1SDavid du Colombier while (*++s != NULL) 50*3e12c5d1SDavid du Colombier if (*s == '/') { 51*3e12c5d1SDavid du Colombier s++; 52*3e12c5d1SDavid du Colombier break; 53*3e12c5d1SDavid du Colombier } 54*3e12c5d1SDavid du Colombier } 55*3e12c5d1SDavid du Colombier return(-1); 56*3e12c5d1SDavid du Colombier } 57*3e12c5d1SDavid du Colombier void sscpy(struct penvir *a, struct penvir *b){ /* copy 'a' onto 'b' */ 58*3e12c5d1SDavid du Colombier b->left = a->left; 59*3e12c5d1SDavid du Colombier b->bottom = a->bottom; 60*3e12c5d1SDavid du Colombier b->xmin = a->xmin; 61*3e12c5d1SDavid du Colombier b->ymin = a->ymin; 62*3e12c5d1SDavid du Colombier b->scalex = a->scalex; 63*3e12c5d1SDavid du Colombier b->scaley = a->scaley; 64*3e12c5d1SDavid du Colombier b->sidex = a->sidex; 65*3e12c5d1SDavid du Colombier b->sidey = a->sidey; 66*3e12c5d1SDavid du Colombier b->copyx = a->copyx; 67*3e12c5d1SDavid du Colombier b->copyy = a->copyy; 68*3e12c5d1SDavid du Colombier b->quantum = a->quantum; 69*3e12c5d1SDavid du Colombier b->grade = a->grade; 70*3e12c5d1SDavid du Colombier b->pmode = a->pmode; 71*3e12c5d1SDavid du Colombier b->foregr = a->foregr; 72*3e12c5d1SDavid du Colombier b->backgr = a->backgr; 73*3e12c5d1SDavid du Colombier } 74*3e12c5d1SDavid du Colombier void idle(void){} 75*3e12c5d1SDavid du Colombier 76*3e12c5d1SDavid du Colombier void ptype(char *s){USED(s);} 77