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