1*3e12c5d1SDavid du Colombier #include <u.h> 2*3e12c5d1SDavid du Colombier #include <libc.h> 3*3e12c5d1SDavid du Colombier #include <stdio.h> 4*3e12c5d1SDavid du Colombier #include <libg.h> 5*3e12c5d1SDavid du Colombier #define SCX(A) ((((A) - e1->xmin)*e1->scalex + e1->left)+.5) 6*3e12c5d1SDavid du Colombier #define SCY(A) ((((A) - e1->ymin)*e1->scaley + e1->bottom)+.5) 7*3e12c5d1SDavid du Colombier #define SCR(A) ((A)*e1->scalex+.5) 8*3e12c5d1SDavid du Colombier #define unorm(y) (double)(e1->sidey - y) 9*3e12c5d1SDavid du Colombier #define BIGINT 0x3FFFFFFF /* a large, but valid, int */ 10*3e12c5d1SDavid du Colombier extern struct penvir { 11*3e12c5d1SDavid du Colombier double left, bottom; 12*3e12c5d1SDavid du Colombier double xmin, ymin; 13*3e12c5d1SDavid du Colombier double scalex, scaley; 14*3e12c5d1SDavid du Colombier double sidex, sidey; 15*3e12c5d1SDavid du Colombier double copyx, copyy; 16*3e12c5d1SDavid du Colombier double quantum; 17*3e12c5d1SDavid du Colombier double grade; 18*3e12c5d1SDavid du Colombier int pgap; 19*3e12c5d1SDavid du Colombier double pslant; 20*3e12c5d1SDavid du Colombier int pmode, foregr, backgr; 21*3e12c5d1SDavid du Colombier } *e0, *e1, *esave; 22*3e12c5d1SDavid du Colombier #define RADIAN 57.3 /* radians per degree */ 23*3e12c5d1SDavid du Colombier struct seg { 24*3e12c5d1SDavid du Colombier int x, y, X, Y; 25*3e12c5d1SDavid du Colombier char stat; 26*3e12c5d1SDavid du Colombier }; 27*3e12c5d1SDavid du Colombier /* 28*3e12c5d1SDavid du Colombier * Color values 29*3e12c5d1SDavid du Colombier */ 30*3e12c5d1SDavid du Colombier #define ZERO 3 31*3e12c5d1SDavid du Colombier #define RED 2 32*3e12c5d1SDavid du Colombier #define GREEN 2 33*3e12c5d1SDavid du Colombier #define YELLOW 1 34*3e12c5d1SDavid du Colombier #define BLUE 2 35*3e12c5d1SDavid du Colombier #define MAGENTA 1 36*3e12c5d1SDavid du Colombier #define CYAN 1 37*3e12c5d1SDavid du Colombier #define WHITE 0 38*3e12c5d1SDavid du Colombier /* 39*3e12c5d1SDavid du Colombier * display parameters 40*3e12c5d1SDavid du Colombier */ 41*3e12c5d1SDavid du Colombier int clipminx, clipminy, clipmaxx, clipmaxy; /* clipping rectangle */ 42*3e12c5d1SDavid du Colombier int mapminx, mapminy, mapmaxx, mapmaxy; /* centered square */ 43*3e12c5d1SDavid du Colombier /* 44*3e12c5d1SDavid du Colombier * Prototypes 45*3e12c5d1SDavid du Colombier */ 46*3e12c5d1SDavid du Colombier #include "../plot.h" 47*3e12c5d1SDavid du Colombier void m_clrwin(int, int, int, int, int); 48*3e12c5d1SDavid du Colombier void m_finish(void); 49*3e12c5d1SDavid du Colombier void m_initialize(char *); 50*3e12c5d1SDavid du Colombier int m_text(int, int, char *, char *, int, int, int); 51*3e12c5d1SDavid du Colombier void m_vector(int, int, int, int, int); 52*3e12c5d1SDavid du Colombier void m_swapbuf(void); 53*3e12c5d1SDavid du Colombier void m_dblbuf(void); 54*3e12c5d1SDavid du Colombier int bcolor(char *); 55*3e12c5d1SDavid du Colombier void sscpy(struct penvir *, struct penvir *); 56