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