xref: /plan9/sys/src/cmd/plot/libplot/subr.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
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