1 /***********************************************************************
2 *
3 * ***** *** ***
4 * * * * * *
5 * * *** ***
6 * * * * * *
7 * ***** *** ***
8 *
9 * A FREE Finite Elements Analysis Program in ANSI C for the Windows & UNIX OS.
10 *
11 * Composed and edited and copyright by
12 * Professor Dr.-Ing. Frank Rieg, University of Bayreuth, Germany
13 *
14 * eMail:
15 * frank.rieg@uni-bayreuth.de
16 * dr.frank.rieg@t-online.de
17 *
18 * V15.0 November 15, 2015
19 *
20 * This program is free software; you can redistribute it and/or modify
21 * it under the terms of the GNU General Public License as published by
22 * the Free Software Foundation; either version 2, or (at your option)
23 * any later version.
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 * GNU General Public License for more details.
29 *
30 * You should have received a copy of the GNU General Public License
31 * along with this program; see the file COPYING. If not, write to
32 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
33 ***********************************************************************/
34 /***********************************************************************
35 * fr_gltext3d
36 * Der Vektorfont fuer Z88V15OS und Z88AURORA
37 * 18.11.2015
38 ***********************************************************************/
39 /***********************************************************************
40 * UNIX
41 ***********************************************************************/
42 #ifdef FR_UNIX
43 #include <z88o.h>
44 #include <stdio.h>
45 #include <stdlib.h>
46 #include <string.h>
47 #include <GL/gl.h>
48 #include <GL/glx.h>
49 #endif
50
51 /***********************************************************************
52 * ...und los
53 ***********************************************************************/
fr_gltext3d(double xt,double yt,double zt,char * ctext,double scale,double dicke)54 void fr_gltext3d(
55 double xt,double yt,double zt,char *ctext,double scale, double dicke)
56 {
57 int i;
58 size_t ilaeng;
59 char c;
60
61 ilaeng= strlen(ctext);
62
63 glLineWidth(dicke);
64
65 for(i= 0; i < ilaeng; i++)
66 {
67 c= toupper(ctext[i]);
68 if(c == 'A')
69 {
70 glBegin(GL_LINES);
71 glVertex3d(xt+scale*1,yt+scale*1,zt);
72 glVertex3d(xt+scale*3,yt+scale*7,zt);
73 glVertex3d(xt+scale*3,yt+scale*7,zt);
74 glVertex3d(xt+scale*5,yt+scale*1,zt);
75 glVertex3d(xt+scale*2,yt+scale*4,zt);
76 glVertex3d(xt+scale*4,yt+scale*4,zt);
77 glEnd();
78 xt+= scale*5 + 0.2;
79 continue;
80 }
81
82 if(c == 'B')
83 {
84 glBegin(GL_LINE_STRIP);
85 glVertex3d(xt+scale*1,yt+scale*1,zt);
86 glVertex3d(xt+scale*1,yt+scale*7,zt);
87 glVertex3d(xt+scale*3,yt+scale*7,zt);
88 glVertex3d(xt+scale*4,yt+scale*6,zt);
89 glVertex3d(xt+scale*4,yt+scale*5,zt);
90 glVertex3d(xt+scale*3,yt+scale*4,zt);
91 glVertex3d(xt+scale*4,yt+scale*3,zt);
92 glVertex3d(xt+scale*4,yt+scale*2,zt);
93 glVertex3d(xt+scale*3,yt+scale*1,zt);
94 glVertex3d(xt+scale*1,yt+scale*1,zt);
95 glEnd();
96 glBegin(GL_LINES);
97 glVertex3d(xt+scale*1,yt+scale*4,zt);
98 glVertex3d(xt+scale*3,yt+scale*4,zt);
99 glEnd();
100 xt+= scale*4 + 0.2;
101 continue;
102 }
103
104 if(c == 'C')
105 {
106 glBegin(GL_LINE_STRIP);
107 glVertex3d(xt+scale*4,yt+scale*2,zt);
108 glVertex3d(xt+scale*3,yt+scale*1,zt);
109 glVertex3d(xt+scale*2,yt+scale*1,zt);
110 glVertex3d(xt+scale*1,yt+scale*2,zt);
111 glVertex3d(xt+scale*1,yt+scale*6,zt);
112 glVertex3d(xt+scale*2,yt+scale*7,zt);
113 glVertex3d(xt+scale*3,yt+scale*7,zt);
114 glVertex3d(xt+scale*4,yt+scale*6,zt);
115 glEnd();
116 xt+= scale*4 + 0.2;
117 continue;
118 }
119
120 if(c == 'D')
121 {
122 glBegin(GL_LINE_STRIP);
123 glVertex3d(xt+scale*1,yt+scale*1,zt);
124 glVertex3d(xt+scale*1,yt+scale*7,zt);
125 glVertex3d(xt+scale*3,yt+scale*7,zt);
126 glVertex3d(xt+scale*4,yt+scale*6,zt);
127 glVertex3d(xt+scale*4,yt+scale*2,zt);
128 glVertex3d(xt+scale*3,yt+scale*1,zt);
129 glVertex3d(xt+scale*1,yt+scale*1,zt);
130 glEnd();
131 xt+= scale*4 + 0.2;
132 continue;
133 }
134
135 if(c == 'E')
136 {
137 glBegin(GL_LINE_STRIP);
138 glVertex3d(xt+scale*4,yt+scale*1,zt);
139 glVertex3d(xt+scale*1,yt+scale*1,zt);
140 glVertex3d(xt+scale*1,yt+scale*7,zt);
141 glVertex3d(xt+scale*4,yt+scale*7,zt);
142 glEnd();
143 glBegin(GL_LINES);
144 glVertex3d(xt+scale*1,yt+scale*4,zt);
145 glVertex3d(xt+scale*3,yt+scale*4,zt);
146 glEnd();
147 xt+= scale*4 + 0.2;
148 continue;
149 }
150
151 if(c == 'F')
152 {
153 glBegin(GL_LINE_STRIP);
154 glVertex3d(xt+scale*1,yt+scale*1,zt);
155 glVertex3d(xt+scale*1,yt+scale*7,zt);
156 glVertex3d(xt+scale*4,yt+scale*7,zt);
157 glEnd();
158 glBegin(GL_LINES);
159 glVertex3d(xt+scale*1,yt+scale*4,zt);
160 glVertex3d(xt+scale*3,yt+scale*4,zt);
161 glEnd();
162 xt+= scale*4 + 0.2;
163 continue;
164 }
165
166 if(c == 'G')
167 {
168 glBegin(GL_LINE_STRIP);
169 glVertex3d(xt+scale*2,yt+scale*4,zt);
170 glVertex3d(xt+scale*4,yt+scale*4,zt);
171 glVertex3d(xt+scale*4,yt+scale*2,zt);
172 glVertex3d(xt+scale*3,yt+scale*1,zt);
173 glVertex3d(xt+scale*2,yt+scale*1,zt);
174 glVertex3d(xt+scale*1,yt+scale*2,zt);
175 glVertex3d(xt+scale*1,yt+scale*6,zt);
176 glVertex3d(xt+scale*2,yt+scale*7,zt);
177 glVertex3d(xt+scale*3,yt+scale*7,zt);
178 glVertex3d(xt+scale*4,yt+scale*6,zt);
179 glEnd();
180 xt+= scale*4 + 0.2;
181 continue;
182 }
183
184 if(c == 'H')
185 {
186 glBegin(GL_LINES);
187 glVertex3d(xt+scale*1,yt+scale*1,zt);
188 glVertex3d(xt+scale*1,yt+scale*7,zt);
189 glVertex3d(xt+scale*4,yt+scale*1,zt);
190 glVertex3d(xt+scale*4,yt+scale*7,zt);
191 glVertex3d(xt+scale*1,yt+scale*4,zt);
192 glVertex3d(xt+scale*4,yt+scale*4,zt);
193 glEnd();
194 xt+= scale*4 + 0.2;
195 continue;
196 }
197
198 if(c == 'I')
199 {
200 glBegin(GL_LINES);
201 glVertex3d(xt+scale*1,yt+scale*1,zt);
202 glVertex3d(xt+scale*3,yt+scale*1,zt);
203 glVertex3d(xt+scale*1,yt+scale*7,zt);
204 glVertex3d(xt+scale*3,yt+scale*7,zt);
205 glVertex3d(xt+scale*2,yt+scale*1,zt);
206 glVertex3d(xt+scale*2,yt+scale*7,zt);
207 glEnd();
208 xt+= scale*3 + 0.2;
209 continue;
210 }
211
212 if(c == 'J')
213 {
214 glBegin(GL_LINE_STRIP);
215 glVertex3d(xt+scale*1,yt+scale*2,zt);
216 glVertex3d(xt+scale*2,yt+scale*1,zt);
217 glVertex3d(xt+scale*3,yt+scale*1,zt);
218 glVertex3d(xt+scale*4,yt+scale*2,zt);
219 glVertex3d(xt+scale*4,yt+scale*7,zt);
220 glVertex3d(xt+scale*2,yt+scale*7,zt);
221 glEnd();
222 xt+= scale*4 + 0.2;
223 continue;
224 }
225
226 if(c == 'K')
227 {
228 glBegin(GL_LINES);
229 glVertex3d(xt+scale*1,yt+scale*1,zt);
230 glVertex3d(xt+scale*1,yt+scale*7,zt);
231 glVertex3d(xt+scale*1,yt+scale*4,zt);
232 glVertex3d(xt+scale*4,yt+scale*7,zt);
233 glVertex3d(xt+scale*1,yt+scale*4,zt);
234 glVertex3d(xt+scale*4,yt+scale*1,zt);
235 glEnd();
236 xt+= scale*4 + 0.2;
237 continue;
238 }
239
240 if(c == 'L')
241 {
242 glBegin(GL_LINE_STRIP);
243 glVertex3d(xt+scale*4,yt+scale*1,zt);
244 glVertex3d(xt+scale*1,yt+scale*1,zt);
245 glVertex3d(xt+scale*1,yt+scale*7,zt);
246 glEnd();
247 xt+= scale*4 + 0.2;
248 continue;
249 }
250
251 if(c == 'M')
252 {
253 glBegin(GL_LINE_STRIP);
254 glVertex3d(xt+scale*1,yt+scale*1,zt);
255 glVertex3d(xt+scale*1,yt+scale*7,zt);
256 glVertex3d(xt+scale*3,yt+scale*4,zt);
257 glVertex3d(xt+scale*5,yt+scale*7,zt);
258 glVertex3d(xt+scale*5,yt+scale*1,zt);
259 glEnd();
260 xt+= scale*5 + 0.2;
261 continue;
262 }
263
264 if(c == 'N')
265 {
266 glBegin(GL_LINE_STRIP);
267 glVertex3d(xt+scale*1,yt+scale*1,zt);
268 glVertex3d(xt+scale*1,yt+scale*7,zt);
269 glVertex3d(xt+scale*4,yt+scale*1,zt);
270 glVertex3d(xt+scale*4,yt+scale*7,zt);
271 glEnd();
272 xt+= scale*4 + 0.2;
273 continue;
274 }
275
276 if(c == 'O')
277 {
278 glBegin(GL_LINE_STRIP);
279 glVertex3d(xt+scale*4,yt+scale*2,zt);
280 glVertex3d(xt+scale*3,yt+scale*1,zt);
281 glVertex3d(xt+scale*2,yt+scale*1,zt);
282 glVertex3d(xt+scale*1,yt+scale*2,zt);
283 glVertex3d(xt+scale*1,yt+scale*6,zt);
284 glVertex3d(xt+scale*2,yt+scale*7,zt);
285 glVertex3d(xt+scale*3,yt+scale*7,zt);
286 glVertex3d(xt+scale*4,yt+scale*6,zt);
287 glVertex3d(xt+scale*4,yt+scale*2,zt);
288 glEnd();
289 xt+= scale*4 + 0.2;
290 continue;
291 }
292
293 if(c == 'P')
294 {
295 glBegin(GL_LINE_STRIP);
296 glVertex3d(xt+scale*1,yt+scale*1,zt);
297 glVertex3d(xt+scale*1,yt+scale*7,zt);
298 glVertex3d(xt+scale*3,yt+scale*7,zt);
299 glVertex3d(xt+scale*4,yt+scale*6,zt);
300 glVertex3d(xt+scale*4,yt+scale*5,zt);
301 glVertex3d(xt+scale*3,yt+scale*4,zt);
302 glVertex3d(xt+scale*1,yt+scale*4,zt);
303 glEnd();
304 xt+= scale*4 + 0.2;
305 continue;
306 }
307
308 if(c == 'Q')
309 {
310 glBegin(GL_LINE_STRIP);
311 glVertex3d(xt+scale*4,yt+scale*2,zt);
312 glVertex3d(xt+scale*3,yt+scale*1,zt);
313 glVertex3d(xt+scale*2,yt+scale*1,zt);
314 glVertex3d(xt+scale*1,yt+scale*2,zt);
315 glVertex3d(xt+scale*1,yt+scale*6,zt);
316 glVertex3d(xt+scale*2,yt+scale*7,zt);
317 glVertex3d(xt+scale*3,yt+scale*7,zt);
318 glVertex3d(xt+scale*4,yt+scale*6,zt);
319 glVertex3d(xt+scale*4,yt+scale*2,zt);
320 glEnd();
321 glBegin(GL_LINES);
322 glVertex3d(xt+scale*2,yt+scale*3,zt);
323 glVertex3d(xt+scale*4,yt+scale*1,zt);
324 glEnd();
325 xt+= scale*4 + 0.2;
326 continue;
327 }
328
329 if(c == 'R')
330 {
331 glBegin(GL_LINE_STRIP);
332 glVertex3d(xt+scale*1,yt+scale*1,zt);
333 glVertex3d(xt+scale*1,yt+scale*7,zt);
334 glVertex3d(xt+scale*3,yt+scale*7,zt);
335 glVertex3d(xt+scale*4,yt+scale*6,zt);
336 glVertex3d(xt+scale*4,yt+scale*5,zt);
337 glVertex3d(xt+scale*3,yt+scale*4,zt);
338 glVertex3d(xt+scale*1,yt+scale*4,zt);
339 glEnd();
340 glBegin(GL_LINES);
341 glVertex3d(xt+scale*3,yt+scale*4,zt);
342 glVertex3d(xt+scale*4,yt+scale*1,zt);
343 glEnd();
344 xt+= scale*4 + 0.2;
345 continue;
346 }
347
348 if(c == 'S')
349 {
350 glBegin(GL_LINE_STRIP);
351 glVertex3d(xt+scale*1,yt+scale*2,zt);
352 glVertex3d(xt+scale*2,yt+scale*1,zt);
353 glVertex3d(xt+scale*3,yt+scale*1,zt);
354 glVertex3d(xt+scale*4,yt+scale*2,zt);
355 glVertex3d(xt+scale*4,yt+scale*3,zt);
356 glVertex3d(xt+scale*3,yt+scale*4,zt);
357 glVertex3d(xt+scale*2,yt+scale*4,zt);
358 glVertex3d(xt+scale*1,yt+scale*5,zt);
359 glVertex3d(xt+scale*1,yt+scale*6,zt);
360 glVertex3d(xt+scale*2,yt+scale*7,zt);
361 glVertex3d(xt+scale*3,yt+scale*7,zt);
362 glVertex3d(xt+scale*4,yt+scale*6,zt);
363 glEnd();
364 xt+= scale*4 + 0.2;
365 continue;
366 }
367
368 if(c == 'T')
369 {
370 glBegin(GL_LINES);
371 glVertex3d(xt+scale*1,yt+scale*7,zt);
372 glVertex3d(xt+scale*4,yt+scale*7,zt);
373 glVertex3d(xt+scale*2.5,yt+scale*1,zt);
374 glVertex3d(xt+scale*2.5,yt+scale*7,zt);
375 glEnd();
376 xt+= scale*4 + 0.2;
377 continue;
378 }
379
380 if(c == 'U')
381 {
382 glBegin(GL_LINE_STRIP);
383 glVertex3d(xt+scale*1,yt+scale*7,zt);
384 glVertex3d(xt+scale*1,yt+scale*2,zt);
385 glVertex3d(xt+scale*2,yt+scale*1,zt);
386 glVertex3d(xt+scale*3,yt+scale*1,zt);
387 glVertex3d(xt+scale*4,yt+scale*2,zt);
388 glVertex3d(xt+scale*4,yt+scale*7,zt);
389 glEnd();
390 xt+= scale*4 + 0.2;
391 continue;
392 }
393
394 if(c == 'V')
395 {
396 glBegin(GL_LINE_STRIP);
397 glVertex3d(xt+scale*1,yt+scale*7,zt);
398 glVertex3d(xt+scale*2.5,yt+scale*1,zt);
399 glVertex3d(xt+scale*4,yt+scale*7,zt);
400 glEnd();
401 xt+= scale*4 + 0.2;
402 continue;
403 }
404
405 if(c == 'W')
406 {
407 glBegin(GL_LINE_STRIP);
408 glVertex3d(xt+scale*1,yt+scale*7,zt);
409 glVertex3d(xt+scale*2,yt+scale*1,zt);
410 glVertex3d(xt+scale*3,yt+scale*4,zt);
411 glVertex3d(xt+scale*4,yt+scale*1,zt);
412 glVertex3d(xt+scale*5,yt+scale*7,zt);
413 glEnd();
414 xt+= scale*5 + 0.2;
415 continue;
416 }
417
418 if(c == 'X')
419 {
420 glBegin(GL_LINES);
421 glVertex3d(xt+scale*1,yt+scale*1,zt);
422 glVertex3d(xt+scale*4,yt+scale*7,zt);
423 glVertex3d(xt+scale*1,yt+scale*7,zt);
424 glVertex3d(xt+scale*4,yt+scale*1,zt);
425 glEnd();
426 xt+= scale*4 + 0.2;
427 continue;
428 }
429
430 if(c == 'Y')
431 {
432 glBegin(GL_LINES);
433 glVertex3d(xt+scale*1,yt+scale*7,zt);
434 glVertex3d(xt+scale*2.5,yt+scale*4,zt);
435 glVertex3d(xt+scale*4,yt+scale*7,zt);
436 glVertex3d(xt+scale*2.5,yt+scale*4,zt);
437 glVertex3d(xt+scale*2.5,yt+scale*4,zt);
438 glVertex3d(xt+scale*2.5,yt+scale*1,zt);
439 glEnd();
440 xt+= scale*4 + 0.2;
441 continue;
442 }
443
444 if(c == 'Z')
445 {
446 glBegin(GL_LINE_STRIP);
447 glVertex3d(xt+scale*1,yt+scale*7,zt);
448 glVertex3d(xt+scale*4,yt+scale*7,zt);
449 glVertex3d(xt+scale*1,yt+scale*1,zt);
450 glVertex3d(xt+scale*4,yt+scale*1,zt);
451 glEnd();
452 xt+= scale*4 + 0.2;
453 continue;
454 }
455
456 if(c == '+')
457 {
458 glBegin(GL_LINES);
459 glVertex3d(xt+scale*1,yt+scale*4,zt);
460 glVertex3d(xt+scale*4,yt+scale*4,zt);
461 glVertex3d(xt+scale*2.5,yt+scale*2,zt);
462 glVertex3d(xt+scale*2.5,yt+scale*6,zt);
463 glEnd();
464 xt+= scale*4 + 0.2;
465 continue;
466 }
467
468 if(c == '-')
469 {
470 glBegin(GL_LINES);
471 glVertex3d(xt+scale*1,yt+scale*4,zt);
472 glVertex3d(xt+scale*4,yt+scale*4,zt);
473 glEnd();
474 xt+= scale*4 + 0.2;
475 continue;
476 }
477
478 if(c == ' ')
479 {
480 xt+= scale*3 + 0.2;
481 continue;
482 }
483
484 if(c == '1')
485 {
486 glBegin(GL_LINE_STRIP);
487 glVertex3d(xt+scale*1,yt+scale*6,zt);
488 glVertex3d(xt+scale*2,yt+scale*7,zt);
489 glVertex3d(xt+scale*2,yt+scale*1,zt);
490 glEnd();
491 glBegin(GL_LINES);
492 glVertex3d(xt+scale*1,yt+scale*1,zt);
493 glVertex3d(xt+scale*3,yt+scale*1,zt);
494 glEnd();
495 xt+= scale*3 + 0.2;
496 continue;
497 }
498
499 if(c == '2')
500 {
501 glBegin(GL_LINE_STRIP);
502 glVertex3d(xt+scale*1,yt+scale*5,zt);
503 glVertex3d(xt+scale*1,yt+scale*6,zt);
504 glVertex3d(xt+scale*2,yt+scale*7,zt);
505 glVertex3d(xt+scale*3,yt+scale*7,zt);
506 glVertex3d(xt+scale*4,yt+scale*6,zt);
507 glVertex3d(xt+scale*4,yt+scale*5,zt);
508 glVertex3d(xt+scale*1,yt+scale*1,zt);
509 glVertex3d(xt+scale*4,yt+scale*1,zt);
510 glVertex3d(xt+scale*4,yt+scale*2,zt);
511 glEnd();
512 xt+= scale*4 + 0.2;
513 continue;
514 }
515
516 if(c == '3')
517 {
518 glBegin(GL_LINE_STRIP);
519 glVertex3d(xt+scale*1,yt+scale*5,zt);
520 glVertex3d(xt+scale*1,yt+scale*6,zt);
521 glVertex3d(xt+scale*2,yt+scale*7,zt);
522 glVertex3d(xt+scale*3,yt+scale*7,zt);
523 glVertex3d(xt+scale*4,yt+scale*6,zt);
524 glVertex3d(xt+scale*4,yt+scale*5,zt);
525 glVertex3d(xt+scale*3,yt+scale*4,zt);
526 glVertex3d(xt+scale*2,yt+scale*4,zt);
527 glVertex3d(xt+scale*3,yt+scale*4,zt);
528 glVertex3d(xt+scale*4,yt+scale*3,zt);
529 glVertex3d(xt+scale*4,yt+scale*2,zt);
530 glVertex3d(xt+scale*3,yt+scale*1,zt);
531 glVertex3d(xt+scale*2,yt+scale*1,zt);
532 glVertex3d(xt+scale*1,yt+scale*2,zt);
533 glEnd();
534 xt+= scale*4 + 0.2;
535 continue;
536 }
537
538 if(c == '4')
539 {
540 glBegin(GL_LINE_STRIP);
541 glVertex3d(xt+scale*3,yt+scale*1,zt);
542 glVertex3d(xt+scale*3,yt+scale*7,zt);
543 glVertex3d(xt+scale*1,yt+scale*3,zt);
544 glVertex3d(xt+scale*4,yt+scale*3,zt);
545 glEnd();
546 xt+= scale*4 + 0.2;
547 continue;
548 }
549
550 if(c == '5')
551 {
552 glBegin(GL_LINE_STRIP);
553 glVertex3d(xt+scale*4,yt+scale*7,zt);
554 glVertex3d(xt+scale*1,yt+scale*7,zt);
555 glVertex3d(xt+scale*1,yt+scale*4,zt);
556 glVertex3d(xt+scale*3,yt+scale*4,zt);
557 glVertex3d(xt+scale*4,yt+scale*3,zt);
558 glVertex3d(xt+scale*4,yt+scale*2,zt);
559 glVertex3d(xt+scale*3,yt+scale*1,zt);
560 glVertex3d(xt+scale*2,yt+scale*1,zt);
561 glVertex3d(xt+scale*1,yt+scale*2,zt);
562 glEnd();
563 xt+= scale*4 + 0.2;
564 continue;
565 }
566
567 if(c == '6')
568 {
569 glBegin(GL_LINES);
570 glVertex3d(xt+scale*3,yt+scale*7,zt);
571 glVertex3d(xt+scale*1,yt+scale*3,zt);
572 glEnd();
573 glBegin(GL_LINE_STRIP);
574 glVertex3d(xt+scale*3,yt+scale*4,zt);
575 glVertex3d(xt+scale*4,yt+scale*3,zt);
576 glVertex3d(xt+scale*4,yt+scale*2,zt);
577 glVertex3d(xt+scale*3,yt+scale*1,zt);
578 glVertex3d(xt+scale*2,yt+scale*1,zt);
579 glVertex3d(xt+scale*1,yt+scale*2,zt);
580 glVertex3d(xt+scale*1,yt+scale*3,zt);
581 glVertex3d(xt+scale*2,yt+scale*4,zt);
582 glVertex3d(xt+scale*3,yt+scale*4,zt);
583 glEnd();
584 xt+= scale*4 + 0.2;
585 continue;
586 }
587
588 if(c == '7')
589 {
590 glBegin(GL_LINES);
591 glVertex3d(xt+scale*2,yt+scale*4,zt);
592 glVertex3d(xt+scale*3,yt+scale*4,zt);
593 glEnd();
594 glBegin(GL_LINE_STRIP);
595 glVertex3d(xt+scale*1,yt+scale*7,zt);
596 glVertex3d(xt+scale*4,yt+scale*7,zt);
597 glVertex3d(xt+scale*2,yt+scale*1,zt);
598 glEnd();
599 xt+= scale*4 + 0.2;
600 continue;
601 }
602
603 if(c == '8')
604 {
605 glBegin(GL_LINE_STRIP);
606 glVertex3d(xt+scale*3,yt+scale*4,zt);
607 glVertex3d(xt+scale*4,yt+scale*5,zt);
608 glVertex3d(xt+scale*4,yt+scale*6,zt);
609 glVertex3d(xt+scale*3,yt+scale*7,zt);
610 glVertex3d(xt+scale*2,yt+scale*7,zt);
611 glVertex3d(xt+scale*1,yt+scale*6,zt);
612 glVertex3d(xt+scale*1,yt+scale*5,zt);
613 glVertex3d(xt+scale*2,yt+scale*4,zt);
614 glEnd();
615 glBegin(GL_LINE_STRIP);
616 glVertex3d(xt+scale*3,yt+scale*4,zt);
617 glVertex3d(xt+scale*4,yt+scale*3,zt);
618 glVertex3d(xt+scale*4,yt+scale*2,zt);
619 glVertex3d(xt+scale*3,yt+scale*1,zt);
620 glVertex3d(xt+scale*2,yt+scale*1,zt);
621 glVertex3d(xt+scale*1,yt+scale*2,zt);
622 glVertex3d(xt+scale*1,yt+scale*3,zt);
623 glVertex3d(xt+scale*2,yt+scale*4,zt);
624 glVertex3d(xt+scale*3,yt+scale*4,zt);
625 glEnd();
626 xt+= scale*4 + 0.2;
627 continue;
628 }
629
630 if(c == '9')
631 {
632 glBegin(GL_LINE_STRIP);
633 glVertex3d(xt+scale*3,yt+scale*4,zt);
634 glVertex3d(xt+scale*4,yt+scale*5,zt);
635 glVertex3d(xt+scale*4,yt+scale*6,zt);
636 glVertex3d(xt+scale*3,yt+scale*7,zt);
637 glVertex3d(xt+scale*2,yt+scale*7,zt);
638 glVertex3d(xt+scale*1,yt+scale*6,zt);
639 glVertex3d(xt+scale*1,yt+scale*5,zt);
640 glVertex3d(xt+scale*2,yt+scale*4,zt);
641 glVertex3d(xt+scale*3,yt+scale*4,zt);
642 glEnd();
643 glBegin(GL_LINES);
644 glVertex3d(xt+scale*4,yt+scale*5,zt);
645 glVertex3d(xt+scale*2,yt+scale*1,zt);
646 glEnd();
647 xt+= scale*4 + 0.2;
648 continue;
649 }
650
651 if(c == '0')
652 {
653 glBegin(GL_LINE_STRIP);
654 glVertex3d(xt+scale*4,yt+scale*2,zt);
655 glVertex3d(xt+scale*3,yt+scale*1,zt);
656 glVertex3d(xt+scale*2,yt+scale*1,zt);
657 glVertex3d(xt+scale*1,yt+scale*2,zt);
658 glVertex3d(xt+scale*1,yt+scale*6,zt);
659 glVertex3d(xt+scale*2,yt+scale*7,zt);
660 glVertex3d(xt+scale*3,yt+scale*7,zt);
661 glVertex3d(xt+scale*4,yt+scale*6,zt);
662 glVertex3d(xt+scale*4,yt+scale*2,zt);
663 glEnd();
664 glBegin(GL_LINES);
665 glVertex3d(xt+scale*4,yt+scale*6,zt);
666 glVertex3d(xt+scale*1,yt+scale*2,zt);
667 glEnd();
668 xt+= scale*4 + 0.2;
669 continue;
670 }
671
672 if(c == '.')
673 {
674 glBegin(GL_LINE_STRIP);
675 glVertex3d(xt+scale*1,yt+scale*1,zt);
676 glVertex3d(xt+scale*1,yt+scale*1.5,zt);
677 glVertex3d(xt+scale*1.5,yt+scale*1.5,zt);
678 glVertex3d(xt+scale*1.5,yt+scale*1,zt);
679 glVertex3d(xt+scale*1,yt+scale*1,zt);
680 glEnd();
681 xt+= scale*1.5 + 0.2;
682 continue;
683 }
684
685 if(c == '*')
686 {
687 glBegin(GL_LINES);
688 glVertex3d(xt+scale*1,yt+scale*2.5,zt);
689 glVertex3d(xt+scale*4,yt+scale*5.5,zt);
690 glVertex3d(xt+scale*1,yt+scale*5.5,zt);
691 glVertex3d(xt+scale*4,yt+scale*2.5,zt);
692 glVertex3d(xt+scale*2.5,yt+scale*2,zt);
693 glVertex3d(xt+scale*2.5,yt+scale*6,zt);
694 glEnd();
695 xt+= scale*4 + 0.2;
696 continue;
697 }
698
699 if(c == '/')
700 {
701 glBegin(GL_LINES);
702 glVertex3d(xt+scale*1,yt+scale*1,zt);
703 glVertex3d(xt+scale*3,yt+scale*7,zt);
704 glEnd();
705 xt+= scale*3 + 0.2;
706 continue;
707 }
708
709 if(c == '=')
710 {
711 glBegin(GL_LINES);
712 glVertex3d(xt+scale*1,yt+scale*3.5,zt);
713 glVertex3d(xt+scale*4,yt+scale*3.5,zt);
714 glVertex3d(xt+scale*1,yt+scale*4.5,zt);
715 glVertex3d(xt+scale*4,yt+scale*4.5,zt);
716 glEnd();
717 xt+= scale*3 + 0.2;
718 continue;
719 }
720
721 if(c == '~')
722 {
723 glBegin(GL_LINE_STRIP);
724 glVertex3d(xt+scale*1,yt+scale*4,zt);
725 glVertex3d(xt+scale*3,yt+scale*6,zt);
726 glVertex3d(xt+scale*5,yt+scale*2,zt);
727 glVertex3d(xt+scale*7,yt+scale*4,zt);
728 glEnd();
729 xt+= scale*4 + 0.2;
730 continue;
731 }
732
733 }
734
735 return;
736 }
737
738
739