1 #ifndef lint
2 static char *sccsid = "pout.c (CWI) 1.1 85/03/01";
3 #endif
4 #include "idfilt.h"
5
6 float xscale, yscale;
7
8 boolean wanterase = TRUE;
9
idjusttext(str)10 void idjusttext (str)
11 char *str;
12 {
13 }
14
idstart()15 void idstart ()
16 {
17 openpl ();
18 if (wanterase)
19 erase ();
20 }
21
idendbound()22 void idendbound ()
23 {
24 if (boundset)
25 return;
26 idminx (-6.0);
27 idmaxy (6.0);
28 idmaxx (6.0);
29 idminy (-6.0);
30 if (maxx - minx < 0.01) {
31 maxx += 1;
32 minx -= 1;
33 }
34 if (maxy - miny < 0.01) {
35 maxy += 1;
36 miny -= 1;
37 }
38 xscale = maxx - minx;
39 yscale = maxy - miny;
40 if (xscale < yscale) {
41 maxx += (yscale - xscale)/2.0;
42 minx -= (yscale - xscale)/2.0;
43 xscale = yscale;
44 } else {
45 maxy += (xscale - yscale)/2.0;
46 miny -= (xscale - yscale)/2.0;
47 yscale = xscale;
48 }
49 xscale = 3000.0/xscale;
50 yscale = 3000.0/yscale;
51 space (round(minx*xscale) - 20, round(miny*yscale) - 20, round(maxx*xscale) + 20, round(maxy*yscale) + 20);
52 boundset = TRUE;
53 }
54
idline(x1,y1,x2,y2)55 void idline (x1, y1, x2, y2)
56 float x1;
57 float y1;
58 float x2;
59 float y2;
60 {
61 line (
62 round(x1*xscale),
63 round(y1*yscale),
64 round(x2*xscale),
65 round(y2*yscale)
66 );
67 }
68
idcircle(x0,y0,r)69 void idcircle (x0, y0, r)
70 float x0;
71 float y0;
72 float r;
73 {
74 circle (
75 round(x0*xscale),
76 round(y0*yscale),
77 round(r*xscale)
78 );
79 }
80
idarc(x0,y0,x1,y1,x2,y2,t1,t2,r)81 void idarc (x0, y0, x1, y1, x2, y2, t1, t2, r)
82 float x0;
83 float y0;
84 float x1;
85 float y1;
86 float x2;
87 float y2;
88 float t1;
89 float t2;
90 float r;
91 {
92 if (r*xscale > 20000.0)
93 idline (x1, y1, x2, y2);
94 else
95 arc (
96 round(x0*xscale),
97 round(y0*yscale),
98 round(x1*xscale),
99 round(y1*yscale),
100 round(x2*xscale),
101 round(y2*yscale)
102 );
103 }
104
idleft(x,y,str)105 void idleft (x, y, str)
106 float x;
107 float y;
108 char *str;
109 {
110 move (
111 round(x*xscale),
112 round(y*yscale)
113 );
114 label (
115 ++str
116 );
117 }
118
idcenter(x,y,str)119 void idcenter (x, y, str)
120 float x;
121 float y;
122 char *str;
123 {
124 idleft (x, y, str);
125 }
126
idright(x,y,str)127 void idright (x, y, str)
128 float x;
129 float y;
130 char *str;
131 {
132 idleft (x, y, str);
133 }
134
idspline()135 void idspline ()
136 {
137 }
138
idknot()139 void idknot ()
140 {
141 }
142
idendspline()143 void idendspline ()
144 {
145 }
146
idendE()147 void idendE ()
148 {
149 closepl ();
150 }
151
idendF()152 void idendF ()
153 {
154 idendE ();
155 }
156
idnoerase()157 void idnoerase ()
158 {
159 wanterase = FALSE;
160 }
161
idyeserase()162 void idyeserase ()
163 {
164 wanterase = TRUE;
165 }
166