0022792: Globally defined symbol PI conflicts with VTK definition (Intel compiler)
[occt.git] / src / OpenGl / OpenGl_initelem.cxx
1 /***********************************************************************
2
3 FONCTION :
4 ----------
5 File OpenGl_initelem :
6
7
8 REMARQUES:
9 ---------- 
10
11
12 HISTORIQUE DES MODIFICATIONS   :
13 --------------------------------
14 xx-xx-xx : xxx ; Creation.
15 20-02-96 : FMN ; Suppression code inutile:
16 01-04-96 : CAL ; Integration MINSK portage WNT
17 25-06-96 : FMN ; Suppression utilisation de glScissor.
18 03-07-96 : FMN ; Suppression definition des materiaux (InitMaterial).
19 08-07-96 : BGN ; (PRO4768)les dessins des markers echelle 1 sont 
20 grossis (on reprend les bitmaps de l'echelle 2)
21 => creation des markers des echelles 6.5 et 7;
22 creation des bitmaps du marker point par cercles
23 pleins (=> meilleur affichage et suppression du
24 cas particulier).
25 17-07-96 : FMN ; Suppression utilisation de HLHSRMode.
26 InitMaterial, InitLM sont inutilisees
27 05-12-96 : FMN ; PRO6327: Pas defaut on met la lumiere 
28 GL_LIGHT_MODEL_TWO_SIDE a True.
29 13-02-97 : FMN ; Suppression variables inutiles
30 15-02-97 : FMN ; Suppression OpenGl_gl_compat.h
31 15-02-97 : FMN ; Ajout glHint pour le fog et l'antialiasing
32 11-04-97 : FMN ; Ajout glPolygonOffsetEXT
33 30-06-97 : FMN ; Les init generales par contexte sont faites dans OpenGl_subrvis.
34 05-08-07 : PCT ; ajout support texture mapping
35 23-12-97 : FMN ; Suppression TelBackInteriorStyle, TelBackInteriorStyleIndex
36 et TelBackInteriorShadingMethod
37 30-11-98 : FMN ; S3819 : Textes toujours visibles
38 26-10-99 : VTN ; BUC60599 : Enable to have contiguous horizontal or
39 vertical hatching. 
40 16-06-2000 : ATS : G005 : Init functions for PARRAY and DARRAY primitives
41 22-03-04 : SAN ; OCC4895 High-level interface for controlling polygon offsets
42
43 ************************************************************************/
44
45 #define G003    /* EUG 06-10-99 Degeneration mode support
46 */
47
48 #define G005
49
50
51 /*----------------------------------------------------------------------*/
52 /*
53 * Includes
54 */
55
56 #include <OpenGl_tgl_all.hxx>
57
58 #include <GL/gl.h>
59 #include <stdio.h>
60
61 #include <OpenGl_telem.hxx>
62 #include <OpenGl_tsm.hxx>
63
64 //#include <OpenGl_cmn_memory.hxx>
65
66 /*----------------------------------------------------------------------*/
67 /*
68 * Constantes
69 */
70
71 #define  DOT_LS            0xCCCC
72 #define  DASH_DOT_LS       0xFF18
73 #define  DASH_LS           0xFFC0
74 #define  DASH_DDOT_LS      0xFF24
75
76 /*----------------------------------------------------------------------*/
77 /*
78 * Prototypes
79 */
80
81 static void InitPMFont(void);
82
83 /*----------------------------------------------------------------------*/
84 /*
85 * Variables externes
86 */
87
88 GLuint linestyleBase;
89 GLuint patternBase;
90 GLuint markerBase;
91
92 /*----------------------------------------------------------------------*/
93 /*
94 * Prototypes des fonctions appele par TsmSendMessage()
95 */
96
97 extern  MtblPtr  TelLabelInitClass( TelType* );
98 extern  MtblPtr  TelPolylineInitClass( TelType* );
99 extern  MtblPtr  TelPolylineColourInitClass( TelType* );
100 extern  MtblPtr  TelPolylineWidthInitClass( TelType* );
101 extern  MtblPtr  TelExecuteStructureInitClass( TelType* );
102 extern  MtblPtr  TelPickIdInitClass( TelType* );
103 extern  MtblPtr  TelPolylineTypeInitClass( TelType* );
104 extern  MtblPtr  TelEdgeColourInitClass( TelType* );
105 extern  MtblPtr  TelEdgeTypeInitClass( TelType* );
106 extern  MtblPtr  TelEdgeWidthInitClass( TelType* );
107 extern  MtblPtr  TelAntiAliasingInitClass( TelType* );
108 extern  MtblPtr  TelPolygonInitClass( TelType* );
109 extern  MtblPtr  TelInteriorColourInitClass( TelType* );
110 extern  MtblPtr  TelInteriorStyleInitClass( TelType* );
111 extern  MtblPtr  TelEdgeFlagInitClass( TelType* );
112 extern  MtblPtr  TelPolymarkerColourInitClass( TelType* );
113 extern  MtblPtr  TelPolymarkerSizeInitClass( TelType* );
114 extern  MtblPtr  TelMarkerInitClass( TelType* );
115 extern  MtblPtr  TelMarkerSetInitClass( TelType* );
116 extern  MtblPtr  TelLocalTran3InitClass( TelType* );
117 extern  MtblPtr  TelAddNamesetInitClass( TelType* );
118 extern  MtblPtr  TelRemoveNamesetInitClass( TelType* );
119 extern  MtblPtr  TelBackInteriorColourInitClass( TelType* );
120 extern  MtblPtr  TelInteriorStyleIndexInitClass( TelType* );
121 extern  MtblPtr  TelFaceDistinguishingModeInitClass( TelType* );
122 extern  MtblPtr  TelTextColourInitClass( TelType* );
123 extern  MtblPtr  TelTextInitClass( TelType* );
124 extern  MtblPtr  TelTextColourSubTitleInitClass( TelType* );
125 extern  MtblPtr  TelTextStyleInitClass( TelType* );
126 extern  MtblPtr  TelTextDisplayTypeInitClass( TelType* );
127 extern  MtblPtr  TelTextFontInitClass( TelType* );
128 extern  MtblPtr  TelTextHeightInitClass( TelType* );
129 /*OCC7456 abd 14.12.2004 Text alingnment attributes  */
130 extern  MtblPtr  TelTextAlignInitClass( TelType* );
131 /*OCC7456 abd 14.12.2004 Text alingnment attributes  */
132 extern  MtblPtr  TelCharacterSpacingInitClass( TelType* );
133 extern  MtblPtr  TelCharacterExpansionFactorInitClass( TelType* );
134 extern  MtblPtr  TelPolymarkerTypeInitClass( TelType* );
135 extern  MtblPtr  TelLightSrcStateInitClass( TelType* );
136 extern  MtblPtr  TelInteriorReflectanceEquationInitClass( TelType* );
137 extern  MtblPtr  TelBackInteriorReflectanceEquationInitClass( TelType* );
138 extern  MtblPtr  TelSurfaceAreaPropertiesInitClass( TelType* );
139 extern  MtblPtr  TelBackSurfaceAreaPropertiesInitClass( TelType* );
140 extern  MtblPtr  TelFaceCullingModeInitClass( TelType* );
141 extern  MtblPtr  TelDepthCueIndexInitClass( TelType* );
142 extern  MtblPtr  TelInteriorShadingMethodInitClass( TelType* );
143 extern  MtblPtr  TelViewIndexInitClass( TelType* );
144 extern  MtblPtr  TelTriangleMeshInitClass( TelType* );
145 extern  MtblPtr  TelApplicationDataInitClass( TelType* );
146 extern  MtblPtr  TelQuadrangleInitClass( TelType* );
147 extern  MtblPtr  TelPolygonIndicesInitClass( TelType* );
148 extern  MtblPtr  TelHighlightIndexInitClass( TelType* );
149 extern  MtblPtr  TelPolygonHolesInitClass( TelType* );
150 extern  MtblPtr  TelCurveInitClass( TelType* );
151 extern  MtblPtr  TelTextureIdInitClass( TelType* );
152 extern  MtblPtr  TelDoTextureMapInitClass( TelType* );
153 /*
154 extern  MtblPtr  TelNilInitClass( TelType* );
155 extern  MtblPtr  TelBlinkInitClass( TelType* );
156 extern  MtblPtr  TelPolygonSetInitClass( TelType* );
157 extern  MtblPtr  TelClippingPlaneInitClass( TelType* );
158 */
159 #ifdef G003
160 extern  MtblPtr  TelDegenerateModelInitClass( TelType* );
161 #endif  /* G003 */
162 extern  MtblPtr  TelTextZoomableInitClass( TelType* );
163
164 extern  MtblPtr  TelTextAngleInitClass( TelType* );
165
166 extern  MtblPtr  TelTextFontAspectInitClass( TelType* );
167 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
168 extern  MtblPtr  TelPolygonOffsetInitClass( TelType* );
169 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
170 /* ABD 29/10/04  Transform Persistence of Presentation( pan, zoom, rotate ) */
171 extern  MtblPtr  TelTransformPersistentInitClass( TelType* );
172 /* ABD 29/10/04  Transform Persistence of Presentation( pan, zoom, rotate ) */
173
174 extern  MtblPtr  TelParrayInitClass( TelType* );
175 /* OCC???? SZV 11/08/05 Implementation of callbacks */
176 extern  MtblPtr  TelUserdrawInitClass( TelType* );
177 /* OCC???? SZV 11/08/05 Implementation of callbacks */
178
179 static  MtblPtr  (*TsmInitClassTable[])(TelType*) =
180 {
181   TelLabelInitClass,
182     TelExecuteStructureInitClass,
183     /* ABD 29/10/04  Transform Persistence of Presentation( pan, zoom, rotate ) */
184     TelTransformPersistentInitClass,
185     /* ABD 29/10/04  Transform Persistence of Presentation( pan, zoom, rotate ) */
186     TelPolylineColourInitClass,
187     TelPolylineWidthInitClass,
188     TelPolylineInitClass,
189     TelPickIdInitClass,
190     TelPolylineTypeInitClass,
191     TelEdgeColourInitClass,
192     TelEdgeTypeInitClass,
193     TelEdgeWidthInitClass,
194     TelAntiAliasingInitClass,
195     TelPolygonInitClass,
196     TelInteriorColourInitClass,
197     TelInteriorStyleInitClass,
198     TelEdgeFlagInitClass,
199     TelPolymarkerColourInitClass,
200     TelPolymarkerSizeInitClass,
201     TelMarkerInitClass,
202     TelMarkerSetInitClass,
203     TelLocalTran3InitClass,
204     TelAddNamesetInitClass,
205     TelRemoveNamesetInitClass,
206     TelBackInteriorColourInitClass,
207     TelInteriorStyleIndexInitClass,
208     TelFaceDistinguishingModeInitClass,
209     TelTextColourInitClass,
210     TelTextInitClass,
211     TelTextFontInitClass,
212     TelTextHeightInitClass,
213     /*OCC7456 abd 14.12.2004 Text alingnment attributes  */
214     TelTextAlignInitClass,
215     /*OCC7456 abd 14.12.2004 Text alingnment attributes  */
216     TelCharacterSpacingInitClass,
217     TelCharacterExpansionFactorInitClass,
218     TelPolymarkerTypeInitClass,
219     TelInteriorReflectanceEquationInitClass,
220     TelBackInteriorReflectanceEquationInitClass,
221     TelLightSrcStateInitClass,
222     TelSurfaceAreaPropertiesInitClass,
223     TelBackSurfaceAreaPropertiesInitClass,
224     TelFaceCullingModeInitClass,
225     TelDepthCueIndexInitClass,
226     TelInteriorShadingMethodInitClass,
227     TelViewIndexInitClass,
228     TelTriangleMeshInitClass,
229     TelApplicationDataInitClass,
230     TelQuadrangleInitClass,
231     TelPolygonIndicesInitClass,
232     TelHighlightIndexInitClass,
233     TelPolygonHolesInitClass,
234     TelCurveInitClass,
235     TelTextureIdInitClass,
236     TelDoTextureMapInitClass, 
237     TelTextColourSubTitleInitClass, 
238     TelTextStyleInitClass, 
239     TelTextDisplayTypeInitClass
240 #ifdef G003
241     , TelDegenerateModelInitClass
242 #endif  /* G003 */
243 #ifdef G005
244     , TelParrayInitClass
245 #endif  /* G005 */
246     , TelTextZoomableInitClass
247     , TelTextAngleInitClass
248     , TelTextFontAspectInitClass
249     /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
250     , TelPolygonOffsetInitClass
251     /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
252     /* OCC???? SZV 11/08/05 Implementation of callbacks */
253     , TelUserdrawInitClass
254     /* OCC???? SZV 11/08/05 Implementation of callbacks */
255 };
256
257 #define  ClassTableSize  sizeof(TsmInitClassTable)/sizeof(TStatus (*)())
258
259
260 /*----------------------------------------------------------------------*/
261
262 void
263 TelHookOnAllClasses(void)
264 {
265   TsmInitAllClasses( TsmInitClassTable, ClassTableSize );
266   return;
267 }
268
269 /*----------------------------------------------------------------------*/
270
271 void
272 TsmInitAttributes()
273 {
274   unsigned  int  interiors[TEL_HS_USER_DEF_START][32];
275   Tint      i;
276   /*    static int nombre;*/
277
278   linestyleBase = glGenLists(5);
279
280   /* Line */
281
282   glNewList( linestyleBase+TEL_LS_DOT, GL_COMPILE);
283   glLineStipple(1,  DOT_LS );
284   glEndList();
285
286   glNewList( linestyleBase+TEL_LS_DASH_DOT, GL_COMPILE);
287   glLineStipple(1,  DASH_DOT_LS );
288   glEndList();
289
290   glNewList( linestyleBase+TEL_LS_DASH, GL_COMPILE);
291   glLineStipple(1,  DASH_LS );
292   glEndList();
293
294   glNewList( linestyleBase+TEL_LS_DOUBLE_DOT_DASH, GL_COMPILE);
295   glLineStipple(1,  DASH_DDOT_LS );
296   glEndList();
297
298   /* FSXXX
299   * GL_POLYGON_STIPPLE
300   * need 32x32 stipple patterns
301   */
302   memset( interiors, 0xFF, sizeof(interiors) );
303
304
305   /*    modified by NIZHNY-VTN Tue Oct 26 09:54:20 1999 ___BEGIN___ */
306   interiors[TEL_HS_CROSS][1]  = 0xBBBBBBBB,
307     interiors[TEL_HS_CROSS][2]  = 0xEEEEEEEE,
308     interiors[TEL_HS_CROSS][3]  = 0xBBBBBBBB,
309     interiors[TEL_HS_CROSS][4]  = 0xEEEEEEEE,
310     interiors[TEL_HS_CROSS][5]  = 0xBBBBBBBB,
311     interiors[TEL_HS_CROSS][6]  = 0xEEEEEEEE,
312     interiors[TEL_HS_CROSS][7]  = 0xBBBBBBBB,
313     interiors[TEL_HS_CROSS][8]  = 0xEEEEEEEE,
314     interiors[TEL_HS_CROSS][9]  = 0xBBBBBBBB,
315     interiors[TEL_HS_CROSS][10] = 0xEEEEEEEE,
316     interiors[TEL_HS_CROSS][11] = 0xBBBBBBBB,
317     interiors[TEL_HS_CROSS][12] = 0xEEEEEEEE,
318     interiors[TEL_HS_CROSS][13] = 0xBBBBBBBB,
319     interiors[TEL_HS_CROSS][14] = 0xEEEEEEEE,
320     interiors[TEL_HS_CROSS][15] = 0xBBBBBBBB,
321     interiors[TEL_HS_CROSS][16]  = 0xEEEEEEEE,
322     interiors[TEL_HS_CROSS][17]  = 0xBBBBBBBB,
323     interiors[TEL_HS_CROSS][18]  = 0xEEEEEEEE,
324     interiors[TEL_HS_CROSS][19]  = 0xBBBBBBBB,
325     interiors[TEL_HS_CROSS][20]  = 0xEEEEEEEE,
326     interiors[TEL_HS_CROSS][21]  = 0xBBBBBBBB,
327     interiors[TEL_HS_CROSS][22]  = 0xEEEEEEEE,
328     interiors[TEL_HS_CROSS][23]  = 0xBBBBBBBB,
329     interiors[TEL_HS_CROSS][24]  = 0xEEEEEEEE,
330     interiors[TEL_HS_CROSS][25]  = 0xBBBBBBBB,
331     interiors[TEL_HS_CROSS][26] = 0xEEEEEEEE,
332     interiors[TEL_HS_CROSS][27] = 0xBBBBBBBB,
333     interiors[TEL_HS_CROSS][28] = 0xEEEEEEEE,
334     interiors[TEL_HS_CROSS][29] = 0xBBBBBBBB,
335     interiors[TEL_HS_CROSS][30] = 0xEEEEEEEE,
336     interiors[TEL_HS_CROSS][31] = 0xBBBBBBBB;
337
338   interiors[TEL_HS_CROSS_SPARSE][0]  = 0x81818181,
339     interiors[TEL_HS_CROSS_SPARSE][1]  = 0x24242424,
340     interiors[TEL_HS_CROSS_SPARSE][2]  = 0x18181818,
341     interiors[TEL_HS_CROSS_SPARSE][3]  = 0x42424242,
342     interiors[TEL_HS_CROSS_SPARSE][4]  = 0x81818181,
343     interiors[TEL_HS_CROSS_SPARSE][5]  = 0x24242424,
344     interiors[TEL_HS_CROSS_SPARSE][6]  = 0x18181818,
345     interiors[TEL_HS_CROSS_SPARSE][7]  = 0x42424242,
346     interiors[TEL_HS_CROSS_SPARSE][8]  = 0x81818181,
347     interiors[TEL_HS_CROSS_SPARSE][9]  = 0x24242424,
348     interiors[TEL_HS_CROSS_SPARSE][10] = 0x18181818,
349     interiors[TEL_HS_CROSS_SPARSE][11] = 0x42424242,
350     interiors[TEL_HS_CROSS_SPARSE][12] = 0x81818181,
351     interiors[TEL_HS_CROSS_SPARSE][13] = 0x24242424,
352     interiors[TEL_HS_CROSS_SPARSE][14] = 0x18181818,
353     interiors[TEL_HS_CROSS_SPARSE][15] = 0x42424242,
354     interiors[TEL_HS_CROSS_SPARSE][16]  = 0x81818181,
355     interiors[TEL_HS_CROSS_SPARSE][17]  = 0x24242424,
356     interiors[TEL_HS_CROSS_SPARSE][18]  = 0x18181818,
357     interiors[TEL_HS_CROSS_SPARSE][19]  = 0x42424242,
358     interiors[TEL_HS_CROSS_SPARSE][20]  = 0x81818181,
359     interiors[TEL_HS_CROSS_SPARSE][21]  = 0x24242424,
360     interiors[TEL_HS_CROSS_SPARSE][22]  = 0x18181818,
361     interiors[TEL_HS_CROSS_SPARSE][23]  = 0x42424242,
362     interiors[TEL_HS_CROSS_SPARSE][24]  = 0x81818181,
363     interiors[TEL_HS_CROSS_SPARSE][25]  = 0x24242424,
364     interiors[TEL_HS_CROSS_SPARSE][26] = 0x18181818,
365     interiors[TEL_HS_CROSS_SPARSE][27] = 0x42424242,
366     interiors[TEL_HS_CROSS_SPARSE][28] = 0x81818181,
367     interiors[TEL_HS_CROSS_SPARSE][29] = 0x24242424,
368     interiors[TEL_HS_CROSS_SPARSE][30] = 0x18181818,
369     interiors[TEL_HS_CROSS_SPARSE][31] = 0x42424242;
370
371
372   interiors[TEL_HS_GRID][0]  = 0xFFFFFFFF,
373     interiors[TEL_HS_GRID][1]  = 0x88888888,
374     interiors[TEL_HS_GRID][2]  = 0xFFFFFFFF,
375     interiors[TEL_HS_GRID][3]  = 0x88888888,
376     interiors[TEL_HS_GRID][4]  = 0xFFFFFFFF,
377     interiors[TEL_HS_GRID][5]  = 0x88888888,
378     interiors[TEL_HS_GRID][6]  = 0xFFFFFFFF,
379     interiors[TEL_HS_GRID][7]  = 0x88888888,
380     interiors[TEL_HS_GRID][8]  = 0xFFFFFFFF,
381     interiors[TEL_HS_GRID][9]  = 0x88888888,
382     interiors[TEL_HS_GRID][10] = 0xFFFFFFFF,
383     interiors[TEL_HS_GRID][11] = 0x88888888,
384     interiors[TEL_HS_GRID][12] = 0xFFFFFFFF,
385     interiors[TEL_HS_GRID][13] = 0x88888888,
386     interiors[TEL_HS_GRID][14] = 0xFFFFFFFF,
387     interiors[TEL_HS_GRID][15] = 0x88888888,
388     interiors[TEL_HS_GRID][16]  = 0xFFFFFFFF,
389     interiors[TEL_HS_GRID][17]  = 0x88888888,
390     interiors[TEL_HS_GRID][18]  = 0xFFFFFFFF,
391     interiors[TEL_HS_GRID][19]  = 0x88888888,
392     interiors[TEL_HS_GRID][20]  = 0xFFFFFFFF,
393     interiors[TEL_HS_GRID][21]  = 0x88888888,
394     interiors[TEL_HS_GRID][22]  = 0xFFFFFFFF,
395     interiors[TEL_HS_GRID][23]  = 0x88888888,
396     interiors[TEL_HS_GRID][24]  = 0xFFFFFFFF,
397     interiors[TEL_HS_GRID][25]  = 0x88888888,
398     interiors[TEL_HS_GRID][26] = 0xFFFFFFFF,
399     interiors[TEL_HS_GRID][27] = 0x88888888,
400     interiors[TEL_HS_GRID][28] = 0xFFFFFFFF,
401     interiors[TEL_HS_GRID][29] = 0x88888888,
402     interiors[TEL_HS_GRID][30] = 0xFFFFFFFF,
403     interiors[TEL_HS_GRID][31] = 0x88888888;
404
405   interiors[TEL_HS_GRID_SPARSE][0]  = 0xFFFFFFFF,
406     interiors[TEL_HS_GRID_SPARSE][1]  = 0x80808080,
407     interiors[TEL_HS_GRID_SPARSE][2]  = 0x80808080,
408     interiors[TEL_HS_GRID_SPARSE][3]  = 0x80808080,
409     interiors[TEL_HS_GRID_SPARSE][4]  = 0xFFFFFFFF,
410     interiors[TEL_HS_GRID_SPARSE][5]  = 0x80808080,
411     interiors[TEL_HS_GRID_SPARSE][6]  = 0x80808080,
412     interiors[TEL_HS_GRID_SPARSE][7]  = 0x80808080,
413     interiors[TEL_HS_GRID_SPARSE][8]  = 0xFFFFFFFF,
414     interiors[TEL_HS_GRID_SPARSE][9]  = 0x80808080,
415     interiors[TEL_HS_GRID_SPARSE][10] = 0x80808080,
416     interiors[TEL_HS_GRID_SPARSE][11] = 0x80808080,
417     interiors[TEL_HS_GRID_SPARSE][12] = 0xFFFFFFFF,
418     interiors[TEL_HS_GRID_SPARSE][13] = 0x80808080,
419     interiors[TEL_HS_GRID_SPARSE][14] = 0x80808080,
420     interiors[TEL_HS_GRID_SPARSE][15] = 0x80808080,
421     interiors[TEL_HS_GRID_SPARSE][16]  = 0xFFFFFFFF,
422     interiors[TEL_HS_GRID_SPARSE][17]  = 0x80808080,
423     interiors[TEL_HS_GRID_SPARSE][18]  = 0x80808080,
424     interiors[TEL_HS_GRID_SPARSE][19]  = 0x80808080,
425     interiors[TEL_HS_GRID_SPARSE][20]  = 0xFFFFFFFF,
426     interiors[TEL_HS_GRID_SPARSE][21]  = 0x80808080,
427     interiors[TEL_HS_GRID_SPARSE][22]  = 0x80808080,
428     interiors[TEL_HS_GRID_SPARSE][23]  = 0x80808080,
429     interiors[TEL_HS_GRID_SPARSE][24]  = 0xFFFFFFFF,
430     interiors[TEL_HS_GRID_SPARSE][25]  = 0x80808080,
431     interiors[TEL_HS_GRID_SPARSE][26] = 0x80808080,
432     interiors[TEL_HS_GRID_SPARSE][27] = 0x80808080,
433     interiors[TEL_HS_GRID_SPARSE][28] = 0xFFFFFFFF,
434     interiors[TEL_HS_GRID_SPARSE][29] = 0x80808080,
435     interiors[TEL_HS_GRID_SPARSE][30] = 0x80808080,
436     interiors[TEL_HS_GRID_SPARSE][31] = 0x80808080;
437
438   interiors[TEL_HS_DIAG_45][0]  = 0x88888888,
439     interiors[TEL_HS_DIAG_45][1]  = 0x22222222,
440     interiors[TEL_HS_DIAG_45][2]  = 0x88888888,
441     interiors[TEL_HS_DIAG_45][3]  = 0x22222222,
442     interiors[TEL_HS_DIAG_45][4]  = 0x88888888,
443     interiors[TEL_HS_DIAG_45][5]  = 0x22222222,
444     interiors[TEL_HS_DIAG_45][6]  = 0x88888888,
445     interiors[TEL_HS_DIAG_45][7]  = 0x22222222,
446     interiors[TEL_HS_DIAG_45][8]  = 0x88888888,
447     interiors[TEL_HS_DIAG_45][9]  = 0x22222222,
448     interiors[TEL_HS_DIAG_45][10] = 0x88888888,
449     interiors[TEL_HS_DIAG_45][11] = 0x22222222,
450     interiors[TEL_HS_DIAG_45][12] = 0x88888888,
451     interiors[TEL_HS_DIAG_45][13] = 0x22222222,
452     interiors[TEL_HS_DIAG_45][14] = 0x88888888,
453     interiors[TEL_HS_DIAG_45][15] = 0x22222222,
454     interiors[TEL_HS_DIAG_45][16]  = 0x88888888,
455     interiors[TEL_HS_DIAG_45][17]  = 0x22222222,
456     interiors[TEL_HS_DIAG_45][18]  = 0x88888888,
457     interiors[TEL_HS_DIAG_45][19]  = 0x22222222,
458     interiors[TEL_HS_DIAG_45][20]  = 0x88888888,
459     interiors[TEL_HS_DIAG_45][21]  = 0x22222222,
460     interiors[TEL_HS_DIAG_45][22]  = 0x88888888,
461     interiors[TEL_HS_DIAG_45][23]  = 0x22222222,
462     interiors[TEL_HS_DIAG_45][24]  = 0x88888888,
463     interiors[TEL_HS_DIAG_45][25]  = 0x22222222,
464     interiors[TEL_HS_DIAG_45][26] = 0x88888888,
465     interiors[TEL_HS_DIAG_45][27] = 0x22222222,
466     interiors[TEL_HS_DIAG_45][28] = 0x88888888,
467     interiors[TEL_HS_DIAG_45][29] = 0x22222222,
468     interiors[TEL_HS_DIAG_45][30] = 0x88888888,
469     interiors[TEL_HS_DIAG_45][31] = 0x22222222;
470
471   interiors[TEL_HS_DIAG_135][0]  = 0x11111111,
472     interiors[TEL_HS_DIAG_135][1]  = 0x44444444,
473     interiors[TEL_HS_DIAG_135][2]  = 0x11111111,
474     interiors[TEL_HS_DIAG_135][3]  = 0x44444444,
475     interiors[TEL_HS_DIAG_135][4]  = 0x11111111,
476     interiors[TEL_HS_DIAG_135][5]  = 0x44444444,
477     interiors[TEL_HS_DIAG_135][6]  = 0x11111111,
478     interiors[TEL_HS_DIAG_135][7]  = 0x44444444,
479     interiors[TEL_HS_DIAG_135][8]  = 0x11111111,
480     interiors[TEL_HS_DIAG_135][9]  = 0x44444444,
481     interiors[TEL_HS_DIAG_135][10] = 0x11111111,
482     interiors[TEL_HS_DIAG_135][11] = 0x44444444,
483     interiors[TEL_HS_DIAG_135][12] = 0x11111111,
484     interiors[TEL_HS_DIAG_135][13] = 0x44444444,
485     interiors[TEL_HS_DIAG_135][14] = 0x11111111,
486     interiors[TEL_HS_DIAG_135][15] = 0x44444444,
487     interiors[TEL_HS_DIAG_135][16]  = 0x11111111,
488     interiors[TEL_HS_DIAG_135][17]  = 0x44444444,
489     interiors[TEL_HS_DIAG_135][18]  = 0x11111111,
490     interiors[TEL_HS_DIAG_135][19]  = 0x44444444,
491     interiors[TEL_HS_DIAG_135][20]  = 0x11111111,
492     interiors[TEL_HS_DIAG_135][21]  = 0x44444444,
493     interiors[TEL_HS_DIAG_135][22]  = 0x11111111,
494     interiors[TEL_HS_DIAG_135][23]  = 0x44444444,
495     interiors[TEL_HS_DIAG_135][24]  = 0x11111111,
496     interiors[TEL_HS_DIAG_135][25]  = 0x44444444,
497     interiors[TEL_HS_DIAG_135][26] = 0x11111111,
498     interiors[TEL_HS_DIAG_135][27] = 0x44444444,
499     interiors[TEL_HS_DIAG_135][28] = 0x11111111,
500     interiors[TEL_HS_DIAG_135][29] = 0x44444444,
501     interiors[TEL_HS_DIAG_135][30] = 0x11111111,
502     interiors[TEL_HS_DIAG_135][31] = 0x44444444;
503
504   interiors[TEL_HS_HORIZONTAL][0]  = 0xFFFFFFFF,
505     interiors[TEL_HS_HORIZONTAL][1]  = 0x00000000,
506     interiors[TEL_HS_HORIZONTAL][2]  = 0xFFFFFFFF,
507     interiors[TEL_HS_HORIZONTAL][3]  = 0x00000000,
508     interiors[TEL_HS_HORIZONTAL][4]  = 0xFFFFFFFF,
509     interiors[TEL_HS_HORIZONTAL][5]  = 0x00000000,
510     interiors[TEL_HS_HORIZONTAL][6]  = 0xFFFFFFFF,
511     interiors[TEL_HS_HORIZONTAL][7]  = 0x00000000,
512     interiors[TEL_HS_HORIZONTAL][8]  = 0xFFFFFFFF,
513     interiors[TEL_HS_HORIZONTAL][9]  = 0x00000000,
514     interiors[TEL_HS_HORIZONTAL][10] = 0xFFFFFFFF,
515     interiors[TEL_HS_HORIZONTAL][11] = 0x00000000,
516     interiors[TEL_HS_HORIZONTAL][12] = 0xFFFFFFFF,
517     interiors[TEL_HS_HORIZONTAL][13] = 0x00000000,
518     interiors[TEL_HS_HORIZONTAL][14] = 0xFFFFFFFF,
519     interiors[TEL_HS_HORIZONTAL][15] = 0x00000000,
520     interiors[TEL_HS_HORIZONTAL][16]  = 0xFFFFFFFF,
521     interiors[TEL_HS_HORIZONTAL][17]  = 0x00000000,
522     interiors[TEL_HS_HORIZONTAL][18]  = 0xFFFFFFFF,
523     interiors[TEL_HS_HORIZONTAL][19]  = 0x00000000,
524     interiors[TEL_HS_HORIZONTAL][20]  = 0xFFFFFFFF,
525     interiors[TEL_HS_HORIZONTAL][21]  = 0x00000000,
526     interiors[TEL_HS_HORIZONTAL][22]  = 0xFFFFFFFF,
527     interiors[TEL_HS_HORIZONTAL][23]  = 0x00000000,
528     interiors[TEL_HS_HORIZONTAL][24]  = 0xFFFFFFFF,
529     interiors[TEL_HS_HORIZONTAL][25]  = 0x00000000,
530     interiors[TEL_HS_HORIZONTAL][26] = 0xFFFFFFFF,
531     interiors[TEL_HS_HORIZONTAL][27] = 0x00000000,
532     interiors[TEL_HS_HORIZONTAL][28] = 0xFFFFFFFF,
533     interiors[TEL_HS_HORIZONTAL][29] = 0x00000000,
534     interiors[TEL_HS_HORIZONTAL][30] = 0xFFFFFFFF,
535     interiors[TEL_HS_HORIZONTAL][31] = 0x00000000;
536
537   interiors[TEL_HS_VERTICAL][0]  = 0x11111111,
538     interiors[TEL_HS_VERTICAL][1]  = 0x11111111,
539     interiors[TEL_HS_VERTICAL][2]  = 0x11111111,
540     interiors[TEL_HS_VERTICAL][3]  = 0x11111111,
541     interiors[TEL_HS_VERTICAL][4]  = 0x11111111,
542     interiors[TEL_HS_VERTICAL][5]  = 0x11111111,
543     interiors[TEL_HS_VERTICAL][6]  = 0x11111111,
544     interiors[TEL_HS_VERTICAL][7]  = 0x11111111,
545     interiors[TEL_HS_VERTICAL][8]  = 0x11111111,
546     interiors[TEL_HS_VERTICAL][9]  = 0x11111111,
547     interiors[TEL_HS_VERTICAL][10] = 0x11111111,
548     interiors[TEL_HS_VERTICAL][11] = 0x11111111,
549     interiors[TEL_HS_VERTICAL][12] = 0x11111111,
550     interiors[TEL_HS_VERTICAL][13] = 0x11111111,
551     interiors[TEL_HS_VERTICAL][14] = 0x11111111,
552     interiors[TEL_HS_VERTICAL][15] = 0x11111111,
553     interiors[TEL_HS_VERTICAL][16]  = 0x11111111,
554     interiors[TEL_HS_VERTICAL][17]  = 0x11111111,
555     interiors[TEL_HS_VERTICAL][18]  = 0x11111111,
556     interiors[TEL_HS_VERTICAL][19]  = 0x11111111,
557     interiors[TEL_HS_VERTICAL][20]  = 0x11111111,
558     interiors[TEL_HS_VERTICAL][21]  = 0x11111111,
559     interiors[TEL_HS_VERTICAL][22]  = 0x11111111,
560     interiors[TEL_HS_VERTICAL][23]  = 0x11111111,
561     interiors[TEL_HS_VERTICAL][24]  = 0x11111111,
562     interiors[TEL_HS_VERTICAL][25]  = 0x11111111,
563     interiors[TEL_HS_VERTICAL][26] = 0x11111111,
564     interiors[TEL_HS_VERTICAL][27] = 0x11111111,
565     interiors[TEL_HS_VERTICAL][28] = 0x11111111,
566     interiors[TEL_HS_VERTICAL][29] = 0x11111111,
567     interiors[TEL_HS_VERTICAL][30] = 0x11111111,
568     interiors[TEL_HS_VERTICAL][31] = 0x11111111;
569
570   interiors[TEL_HS_DIAG_45_SPARSE][0]  = 0x80808080,
571     interiors[TEL_HS_DIAG_45_SPARSE][1]  = 0x20202020,
572     interiors[TEL_HS_DIAG_45_SPARSE][2]  = 0x08080808,
573     interiors[TEL_HS_DIAG_45_SPARSE][3]  = 0x02020202,
574     interiors[TEL_HS_DIAG_45_SPARSE][4]  = 0x80808080,
575     interiors[TEL_HS_DIAG_45_SPARSE][5]  = 0x20202020,
576     interiors[TEL_HS_DIAG_45_SPARSE][6]  = 0x08080808,
577     interiors[TEL_HS_DIAG_45_SPARSE][7]  = 0x02020202,
578     interiors[TEL_HS_DIAG_45_SPARSE][8]  = 0x80808080,
579     interiors[TEL_HS_DIAG_45_SPARSE][9]  = 0x20202020,
580     interiors[TEL_HS_DIAG_45_SPARSE][10] = 0x08080808,
581     interiors[TEL_HS_DIAG_45_SPARSE][11] = 0x02020202,
582     interiors[TEL_HS_DIAG_45_SPARSE][12] = 0x80808080,
583     interiors[TEL_HS_DIAG_45_SPARSE][13] = 0x20202020,
584     interiors[TEL_HS_DIAG_45_SPARSE][14] = 0x08080808,
585     interiors[TEL_HS_DIAG_45_SPARSE][15] = 0x02020202,
586     interiors[TEL_HS_DIAG_45_SPARSE][16]  = 0x80808080,
587     interiors[TEL_HS_DIAG_45_SPARSE][17]  = 0x20202020,
588     interiors[TEL_HS_DIAG_45_SPARSE][18]  = 0x08080808,
589     interiors[TEL_HS_DIAG_45_SPARSE][19]  = 0x02020202,
590     interiors[TEL_HS_DIAG_45_SPARSE][20]  = 0x80808080,
591     interiors[TEL_HS_DIAG_45_SPARSE][21]  = 0x20202020,
592     interiors[TEL_HS_DIAG_45_SPARSE][22]  = 0x08080808,
593     interiors[TEL_HS_DIAG_45_SPARSE][23]  = 0x02020202,
594     interiors[TEL_HS_DIAG_45_SPARSE][24]  = 0x80808080,
595     interiors[TEL_HS_DIAG_45_SPARSE][25]  = 0x20202020,
596     interiors[TEL_HS_DIAG_45_SPARSE][26] = 0x08080808,
597     interiors[TEL_HS_DIAG_45_SPARSE][27] = 0x02020202,
598     interiors[TEL_HS_DIAG_45_SPARSE][28] = 0x80808080,
599     interiors[TEL_HS_DIAG_45_SPARSE][29] = 0x20202020,
600     interiors[TEL_HS_DIAG_45_SPARSE][30] = 0x08080808,
601     interiors[TEL_HS_DIAG_45_SPARSE][31] = 0x02020202;
602
603   interiors[TEL_HS_DIAG_135_SPARSE][0]  = 0x01010101,
604     interiors[TEL_HS_DIAG_135_SPARSE][1]  = 0x04040404,
605     interiors[TEL_HS_DIAG_135_SPARSE][2]  = 0x10101010,
606     interiors[TEL_HS_DIAG_135_SPARSE][3]  = 0x40404040,
607     interiors[TEL_HS_DIAG_135_SPARSE][4]  = 0x01010101,
608     interiors[TEL_HS_DIAG_135_SPARSE][5]  = 0x04040404,
609     interiors[TEL_HS_DIAG_135_SPARSE][6]  = 0x10101010,
610     interiors[TEL_HS_DIAG_135_SPARSE][7]  = 0x40404040,
611     interiors[TEL_HS_DIAG_135_SPARSE][8]  = 0x01010101,
612     interiors[TEL_HS_DIAG_135_SPARSE][9]  = 0x04040404,
613     interiors[TEL_HS_DIAG_135_SPARSE][10] = 0x10101010,
614     interiors[TEL_HS_DIAG_135_SPARSE][11] = 0x40404040,
615     interiors[TEL_HS_DIAG_135_SPARSE][12] = 0x01010101,
616     interiors[TEL_HS_DIAG_135_SPARSE][13] = 0x04040404,
617     interiors[TEL_HS_DIAG_135_SPARSE][14] = 0x10101010,
618     interiors[TEL_HS_DIAG_135_SPARSE][15] = 0x40404040,
619     interiors[TEL_HS_DIAG_135_SPARSE][16]  = 0x01010101,
620     interiors[TEL_HS_DIAG_135_SPARSE][17]  = 0x04040404,
621     interiors[TEL_HS_DIAG_135_SPARSE][18]  = 0x10101010,
622     interiors[TEL_HS_DIAG_135_SPARSE][19]  = 0x40404040,
623     interiors[TEL_HS_DIAG_135_SPARSE][20]  = 0x01010101,
624     interiors[TEL_HS_DIAG_135_SPARSE][21]  = 0x04040404,
625     interiors[TEL_HS_DIAG_135_SPARSE][22]  = 0x10101010,
626     interiors[TEL_HS_DIAG_135_SPARSE][23]  = 0x40404040,
627     interiors[TEL_HS_DIAG_135_SPARSE][24]  = 0x01010101,
628     interiors[TEL_HS_DIAG_135_SPARSE][25]  = 0x04040404,
629     interiors[TEL_HS_DIAG_135_SPARSE][26] = 0x10101010,
630     interiors[TEL_HS_DIAG_135_SPARSE][27] = 0x40404040,
631     interiors[TEL_HS_DIAG_135_SPARSE][28] = 0x01010101,
632     interiors[TEL_HS_DIAG_135_SPARSE][29] = 0x04040404,
633     interiors[TEL_HS_DIAG_135_SPARSE][30] = 0x10101010,
634     interiors[TEL_HS_DIAG_135_SPARSE][31] = 0x40404040;
635
636   interiors[TEL_HS_HORIZONTAL_SPARSE][0]  = 0xFFFFFFFF,
637     interiors[TEL_HS_HORIZONTAL_SPARSE][1]  = 0x00000000,
638     interiors[TEL_HS_HORIZONTAL_SPARSE][2]  = 0x00000000,
639     interiors[TEL_HS_HORIZONTAL_SPARSE][3]  = 0x00000000,
640     interiors[TEL_HS_HORIZONTAL_SPARSE][4]  = 0xFFFFFFFF,
641     interiors[TEL_HS_HORIZONTAL_SPARSE][5]  = 0x00000000,
642     interiors[TEL_HS_HORIZONTAL_SPARSE][6]  = 0x00000000,
643     interiors[TEL_HS_HORIZONTAL_SPARSE][7]  = 0x00000000,
644     interiors[TEL_HS_HORIZONTAL_SPARSE][8]  = 0xFFFFFFFF,
645     interiors[TEL_HS_HORIZONTAL_SPARSE][9]  = 0x00000000,
646     interiors[TEL_HS_HORIZONTAL_SPARSE][10] = 0x00000000,
647     interiors[TEL_HS_HORIZONTAL_SPARSE][11] = 0x00000000,
648     interiors[TEL_HS_HORIZONTAL_SPARSE][12] = 0xFFFFFFFF,
649     interiors[TEL_HS_HORIZONTAL_SPARSE][13] = 0x00000000,
650     interiors[TEL_HS_HORIZONTAL_SPARSE][14] = 0x00000000,
651     interiors[TEL_HS_HORIZONTAL_SPARSE][15] = 0x00000000,
652     interiors[TEL_HS_HORIZONTAL_SPARSE][16]  = 0xFFFFFFFF,
653     interiors[TEL_HS_HORIZONTAL_SPARSE][17]  = 0x00000000,
654     interiors[TEL_HS_HORIZONTAL_SPARSE][18]  = 0x00000000,
655     interiors[TEL_HS_HORIZONTAL_SPARSE][19]  = 0x00000000,
656     interiors[TEL_HS_HORIZONTAL_SPARSE][20]  = 0xFFFFFFFF,
657     interiors[TEL_HS_HORIZONTAL_SPARSE][21]  = 0x00000000,
658     interiors[TEL_HS_HORIZONTAL_SPARSE][22]  = 0x00000000,
659     interiors[TEL_HS_HORIZONTAL_SPARSE][23]  = 0x00000000,
660     interiors[TEL_HS_HORIZONTAL_SPARSE][24]  = 0xFFFFFFFF,
661     interiors[TEL_HS_HORIZONTAL_SPARSE][25]  = 0x00000000,
662     interiors[TEL_HS_HORIZONTAL_SPARSE][26] = 0x00000000,
663     interiors[TEL_HS_HORIZONTAL_SPARSE][27] = 0x00000000,
664     interiors[TEL_HS_HORIZONTAL_SPARSE][28] = 0xFFFFFFFF,
665     interiors[TEL_HS_HORIZONTAL_SPARSE][29] = 0x00000000,
666     interiors[TEL_HS_HORIZONTAL_SPARSE][30] = 0x00000000,
667     interiors[TEL_HS_HORIZONTAL_SPARSE][31] = 0x00000000;
668   /*    modified by NIZHNY-VTN Tue Oct 26 09:55:42 1999 ___END___ */
669
670   interiors[TEL_HS_VERTICAL_SPARSE][0]  = 0x10101010,
671     interiors[TEL_HS_VERTICAL_SPARSE][1]  = 0x10101010,
672     interiors[TEL_HS_VERTICAL_SPARSE][2]  = 0x10101010,
673     interiors[TEL_HS_VERTICAL_SPARSE][3]  = 0x10101010,
674     interiors[TEL_HS_VERTICAL_SPARSE][4]  = 0x10101010,
675     interiors[TEL_HS_VERTICAL_SPARSE][5]  = 0x10101010,
676     interiors[TEL_HS_VERTICAL_SPARSE][6]  = 0x10101010,
677     interiors[TEL_HS_VERTICAL_SPARSE][7]  = 0x10101010,
678     interiors[TEL_HS_VERTICAL_SPARSE][8]  = 0x10101010,
679     interiors[TEL_HS_VERTICAL_SPARSE][9]  = 0x10101010,
680     interiors[TEL_HS_VERTICAL_SPARSE][10] = 0x10101010,
681     interiors[TEL_HS_VERTICAL_SPARSE][11] = 0x10101010,
682     interiors[TEL_HS_VERTICAL_SPARSE][12] = 0x10101010,
683     interiors[TEL_HS_VERTICAL_SPARSE][13] = 0x10101010,
684     interiors[TEL_HS_VERTICAL_SPARSE][14] = 0x10101010,
685     interiors[TEL_HS_VERTICAL_SPARSE][15] = 0x10101010,
686     interiors[TEL_HS_VERTICAL_SPARSE][16]  = 0x10101010,
687     interiors[TEL_HS_VERTICAL_SPARSE][17]  = 0x10101010,
688     interiors[TEL_HS_VERTICAL_SPARSE][18]  = 0x10101010,
689     interiors[TEL_HS_VERTICAL_SPARSE][19]  = 0x10101010,
690     interiors[TEL_HS_VERTICAL_SPARSE][20]  = 0x10101010,
691     interiors[TEL_HS_VERTICAL_SPARSE][21]  = 0x10101010,
692     interiors[TEL_HS_VERTICAL_SPARSE][22]  = 0x10101010,
693     interiors[TEL_HS_VERTICAL_SPARSE][23]  = 0x10101010,
694     interiors[TEL_HS_VERTICAL_SPARSE][24]  = 0x10101010,
695     interiors[TEL_HS_VERTICAL_SPARSE][25]  = 0x10101010,
696     interiors[TEL_HS_VERTICAL_SPARSE][26] = 0x10101010,
697     interiors[TEL_HS_VERTICAL_SPARSE][27] = 0x10101010,
698     interiors[TEL_HS_VERTICAL_SPARSE][28] = 0x10101010,
699     interiors[TEL_HS_VERTICAL_SPARSE][29] = 0x10101010,
700     interiors[TEL_HS_VERTICAL_SPARSE][30] = 0x10101010,
701     interiors[TEL_HS_VERTICAL_SPARSE][31] = 0x10101010;
702
703   patternBase = glGenLists(TEL_HS_USER_DEF_START);
704   for( i = 1; i < TEL_HS_USER_DEF_START; i++ )
705   {
706     glNewList( patternBase+i, GL_COMPILE);
707     glPolygonStipple((const GLubyte *) (interiors[i]));
708     glEndList();
709   }
710
711   /* Init des fontes */
712   (void) InitPMFont();
713
714   return;
715 }
716
717 /* Following Section relates to POLYMARKER */
718
719 #define TEL_NO_OF_SIZES     (long)13
720 #define TEL_NB_OF_MARKERS   (int)5
721
722 struct PM_FONT_INFO
723 {
724   Tchar *str;
725   Tfloat  width, height; /* FSXXX  Tint -> Tfloat */   
726   Tint  offset;
727 };
728 typedef PM_FONT_INFO* pm_font_info;
729
730 #define PM_PLUS_10_NUM  9*2
731 #define PM_PLUS_15_NUM  11*2
732 #define PM_PLUS_20_NUM  13*2
733 #define PM_PLUS_25_NUM  15*2
734 #define PM_PLUS_30_NUM  17*3
735 #define PM_PLUS_35_NUM  19*3
736 #define PM_PLUS_40_NUM  21*3
737 #define PM_PLUS_45_NUM  23*3
738 #define PM_PLUS_50_NUM  25*4
739 #define PM_PLUS_55_NUM  27*4
740 #define PM_PLUS_60_NUM  29*4
741 #define PM_PLUS_65_NUM  31*4
742 #define PM_PLUS_70_NUM  32*4
743
744 #define PM_STAR_10_NUM  9
745 #define PM_STAR_15_NUM  11*2
746 #define PM_STAR_20_NUM  13*2
747 #define PM_STAR_25_NUM  15*2
748 #define PM_STAR_30_NUM  17*2
749 #define PM_STAR_35_NUM  19*2
750 #define PM_STAR_40_NUM  21*3
751 #define PM_STAR_45_NUM  23*3
752 #define PM_STAR_50_NUM  25*3
753 #define PM_STAR_55_NUM  27*3
754 #define PM_STAR_60_NUM  29*4
755 #define PM_STAR_65_NUM  32*4
756 #define PM_STAR_70_NUM  32*4
757
758 #define PM_CROSS_10_NUM 7
759 #define PM_CROSS_15_NUM 9*2
760 #define PM_CROSS_20_NUM 11*2
761 #define PM_CROSS_25_NUM 13*2
762 #define PM_CROSS_30_NUM 15*2
763 #define PM_CROSS_35_NUM 17*3
764 #define PM_CROSS_40_NUM 19*3
765 #define PM_CROSS_45_NUM 21*3
766 #define PM_CROSS_50_NUM 23*3
767 #define PM_CROSS_55_NUM 25*4
768 #define PM_CROSS_60_NUM 27*4
769 #define PM_CROSS_65_NUM 32*4
770 #define PM_CROSS_70_NUM 32*4
771
772 #define PM_CIRC_10_NUM  7
773 #define PM_CIRC_15_NUM  9*2
774 #define PM_CIRC_20_NUM  9*2
775 #define PM_CIRC_25_NUM  11*2
776 #define PM_CIRC_30_NUM  13*2
777 #define PM_CIRC_35_NUM  15*2
778 #define PM_CIRC_40_NUM  17*3
779 #define PM_CIRC_45_NUM  19*3
780 #define PM_CIRC_50_NUM  21*3
781 #define PM_CIRC_55_NUM  23*3
782 #define PM_CIRC_60_NUM  25*4
783 #define PM_CIRC_65_NUM  27*4
784 #define PM_CIRC_70_NUM  29*4
785
786 #define PM_DOT_10_NUM  5
787 #define PM_DOT_15_NUM  5
788 #define PM_DOT_20_NUM  7
789 #define PM_DOT_25_NUM  7
790 #define PM_DOT_30_NUM  9*2
791 #define PM_DOT_35_NUM  9*2
792 #define PM_DOT_40_NUM  9*2
793 #define PM_DOT_45_NUM  9*2
794 #define PM_DOT_50_NUM  9*2
795 #define PM_DOT_55_NUM  9*2
796 #define PM_DOT_60_NUM  11*2
797 #define PM_DOT_65_NUM  11*2
798 #define PM_DOT_70_NUM  11*2
799
800 #define PM_PLUS_10_OFT  0
801 #define PM_PLUS_15_OFT  PM_PLUS_10_OFT + PM_PLUS_10_NUM
802 #define PM_PLUS_20_OFT  PM_PLUS_15_OFT + PM_PLUS_15_NUM
803 #define PM_PLUS_25_OFT  PM_PLUS_20_OFT + PM_PLUS_20_NUM
804 #define PM_PLUS_30_OFT  PM_PLUS_25_OFT + PM_PLUS_25_NUM
805 #define PM_PLUS_35_OFT  PM_PLUS_30_OFT + PM_PLUS_30_NUM
806 #define PM_PLUS_40_OFT  PM_PLUS_35_OFT + PM_PLUS_35_NUM
807 #define PM_PLUS_45_OFT  PM_PLUS_40_OFT + PM_PLUS_40_NUM
808 #define PM_PLUS_50_OFT  PM_PLUS_45_OFT + PM_PLUS_45_NUM
809 #define PM_PLUS_55_OFT  PM_PLUS_50_OFT + PM_PLUS_50_NUM
810 #define PM_PLUS_60_OFT  PM_PLUS_55_OFT + PM_PLUS_55_NUM
811 #define PM_PLUS_65_OFT  PM_PLUS_60_OFT + PM_PLUS_60_NUM
812 #define PM_PLUS_70_OFT  PM_PLUS_65_OFT + PM_PLUS_65_NUM
813
814 #define PM_STAR_10_OFT  PM_PLUS_70_OFT + PM_PLUS_70_NUM
815 #define PM_STAR_15_OFT  PM_STAR_10_OFT + PM_STAR_10_NUM
816 #define PM_STAR_20_OFT  PM_STAR_15_OFT + PM_STAR_15_NUM
817 #define PM_STAR_25_OFT  PM_STAR_20_OFT + PM_STAR_20_NUM
818 #define PM_STAR_30_OFT  PM_STAR_25_OFT + PM_STAR_25_NUM
819 #define PM_STAR_35_OFT  PM_STAR_30_OFT + PM_STAR_30_NUM
820 #define PM_STAR_40_OFT  PM_STAR_35_OFT + PM_STAR_35_NUM
821 #define PM_STAR_45_OFT  PM_STAR_40_OFT + PM_STAR_40_NUM
822 #define PM_STAR_50_OFT  PM_STAR_45_OFT + PM_STAR_45_NUM
823 #define PM_STAR_55_OFT  PM_STAR_50_OFT + PM_STAR_50_NUM
824 #define PM_STAR_60_OFT  PM_STAR_55_OFT + PM_STAR_55_NUM
825 #define PM_STAR_65_OFT  PM_STAR_60_OFT + PM_STAR_60_NUM
826 #define PM_STAR_70_OFT  PM_STAR_65_OFT + PM_STAR_65_NUM
827
828 #define PM_CROSS_10_OFT  PM_STAR_70_OFT + PM_STAR_70_NUM
829 #define PM_CROSS_15_OFT  PM_CROSS_10_OFT + PM_CROSS_10_NUM
830 #define PM_CROSS_20_OFT  PM_CROSS_15_OFT + PM_CROSS_15_NUM
831 #define PM_CROSS_25_OFT  PM_CROSS_20_OFT + PM_CROSS_20_NUM
832 #define PM_CROSS_30_OFT  PM_CROSS_25_OFT + PM_CROSS_25_NUM
833 #define PM_CROSS_35_OFT  PM_CROSS_30_OFT + PM_CROSS_30_NUM
834 #define PM_CROSS_40_OFT  PM_CROSS_35_OFT + PM_CROSS_35_NUM
835 #define PM_CROSS_45_OFT  PM_CROSS_40_OFT + PM_CROSS_40_NUM
836 #define PM_CROSS_50_OFT  PM_CROSS_45_OFT + PM_CROSS_45_NUM
837 #define PM_CROSS_55_OFT  PM_CROSS_50_OFT + PM_CROSS_50_NUM
838 #define PM_CROSS_60_OFT  PM_CROSS_55_OFT + PM_CROSS_55_NUM
839 #define PM_CROSS_65_OFT  PM_CROSS_60_OFT + PM_CROSS_60_NUM
840 #define PM_CROSS_70_OFT  PM_CROSS_65_OFT + PM_CROSS_65_NUM
841
842 #define PM_CIRC_10_OFT  PM_CROSS_70_OFT + PM_CROSS_70_NUM
843 #define PM_CIRC_15_OFT  PM_CIRC_10_OFT + PM_CIRC_10_NUM
844 #define PM_CIRC_20_OFT  PM_CIRC_15_OFT + PM_CIRC_15_NUM
845 #define PM_CIRC_25_OFT  PM_CIRC_20_OFT + PM_CIRC_20_NUM
846 #define PM_CIRC_30_OFT  PM_CIRC_25_OFT + PM_CIRC_25_NUM
847 #define PM_CIRC_35_OFT  PM_CIRC_30_OFT + PM_CIRC_30_NUM
848 #define PM_CIRC_40_OFT  PM_CIRC_35_OFT + PM_CIRC_35_NUM
849 #define PM_CIRC_45_OFT  PM_CIRC_40_OFT + PM_CIRC_40_NUM
850 #define PM_CIRC_50_OFT  PM_CIRC_45_OFT + PM_CIRC_45_NUM
851 #define PM_CIRC_55_OFT  PM_CIRC_50_OFT + PM_CIRC_50_NUM
852 #define PM_CIRC_60_OFT  PM_CIRC_55_OFT + PM_CIRC_55_NUM
853 #define PM_CIRC_65_OFT  PM_CIRC_60_OFT + PM_CIRC_60_NUM
854 #define PM_CIRC_70_OFT  PM_CIRC_65_OFT + PM_CIRC_65_NUM
855
856 #define PM_DOT_10_OFT  PM_CIRC_70_OFT + PM_CIRC_70_NUM
857 #define PM_DOT_15_OFT  PM_DOT_10_OFT + PM_DOT_10_NUM
858 #define PM_DOT_20_OFT  PM_DOT_15_OFT + PM_DOT_15_NUM
859 #define PM_DOT_25_OFT  PM_DOT_20_OFT + PM_DOT_20_NUM
860 #define PM_DOT_30_OFT  PM_DOT_25_OFT + PM_DOT_25_NUM
861 #define PM_DOT_35_OFT  PM_DOT_30_OFT + PM_DOT_30_NUM
862 #define PM_DOT_40_OFT  PM_DOT_35_OFT + PM_DOT_35_NUM
863 #define PM_DOT_45_OFT  PM_DOT_40_OFT + PM_DOT_40_NUM
864 #define PM_DOT_50_OFT  PM_DOT_45_OFT + PM_DOT_45_NUM
865 #define PM_DOT_55_OFT  PM_DOT_50_OFT + PM_DOT_50_NUM
866 #define PM_DOT_60_OFT  PM_DOT_55_OFT + PM_DOT_55_NUM
867 #define PM_DOT_65_OFT  PM_DOT_60_OFT + PM_DOT_60_NUM
868 #define PM_DOT_70_OFT  PM_DOT_65_OFT + PM_DOT_65_NUM
869
870 static PM_FONT_INFO array[TEL_NB_OF_MARKERS][TEL_NO_OF_SIZES] =
871 {
872   { {(Tchar*)"\101", ( float )9,  ( float )9,  PM_PLUS_10_OFT},
873   {(Tchar*)"\102", ( float )11, ( float )11, PM_PLUS_15_OFT},
874   {(Tchar*)"\103", ( float )13, ( float )13, PM_PLUS_20_OFT},
875   {(Tchar*)"\003", ( float )15, ( float )15, PM_PLUS_25_OFT},
876   {(Tchar*)"\004", ( float )17, ( float )17, PM_PLUS_30_OFT},
877   {(Tchar*)"\005", ( float )19, ( float )19, PM_PLUS_35_OFT},
878   {(Tchar*)"\006", ( float )21, ( float )21, PM_PLUS_40_OFT},
879   {(Tchar*)"\007", ( float )23, ( float )23, PM_PLUS_45_OFT},
880   {(Tchar*)"\010", ( float )25, ( float )25, PM_PLUS_50_OFT},
881   {(Tchar*)"\011", ( float )27, ( float )27, PM_PLUS_55_OFT},
882   {(Tchar*)"\012", ( float )29, ( float )29, PM_PLUS_60_OFT},
883   {(Tchar*)"\013", ( float )31, ( float )31, PM_PLUS_65_OFT},
884   {(Tchar*)"\014", ( float )32, ( float )32, PM_PLUS_70_OFT}  },
885
886   { {(Tchar*)"\015", ( float )7, ( float )9,   PM_STAR_10_OFT},
887   {(Tchar*)"\016", ( float )9, ( float )11,  PM_STAR_15_OFT},
888   {(Tchar*)"\017", ( float )11, ( float )13, PM_STAR_20_OFT},
889   {(Tchar*)"\020", ( float )13, ( float )15, PM_STAR_25_OFT},
890   {(Tchar*)"\021", ( float )13, ( float )17, PM_STAR_30_OFT},
891   {(Tchar*)"\022", ( float )15, ( float )19, PM_STAR_35_OFT},
892   {(Tchar*)"\023", ( float )17, ( float )21, PM_STAR_40_OFT},
893   {(Tchar*)"\024", ( float )19, ( float )23, PM_STAR_45_OFT},
894   {(Tchar*)"\025", ( float )21, ( float )25, PM_STAR_50_OFT},
895   {(Tchar*)"\026", ( float )23, ( float )27, PM_STAR_55_OFT},
896   {(Tchar*)"\027", ( float )25, ( float )29, PM_STAR_60_OFT},
897   {(Tchar*)"\030", ( float )32, ( float )32, PM_STAR_65_OFT},
898   {(Tchar*)"\031", ( float )32, ( float )32, PM_STAR_70_OFT}  },
899
900   { {(Tchar*)"\032", ( float )7, ( float )7,   PM_CROSS_10_OFT},
901   {(Tchar*)"\033", ( float )9, ( float )9,   PM_CROSS_15_OFT},
902   {(Tchar*)"\034", ( float )11, ( float )11, PM_CROSS_20_OFT},
903   {(Tchar*)"\035", ( float )13, ( float )13, PM_CROSS_25_OFT},
904   {(Tchar*)"\036", ( float )15, ( float )15, PM_CROSS_30_OFT},
905   {(Tchar*)"\037", ( float )17, ( float )17, PM_CROSS_35_OFT},
906   {(Tchar*)"\040", ( float )19, ( float )19, PM_CROSS_40_OFT},
907   {(Tchar*)"\041", ( float )21, ( float )21, PM_CROSS_45_OFT},
908   {(Tchar*)"\042", ( float )23, ( float )23, PM_CROSS_50_OFT},
909   {(Tchar*)"\043", ( float )25, ( float )25, PM_CROSS_55_OFT},
910   {(Tchar*)"\044", ( float )27, ( float )27, PM_CROSS_60_OFT},
911   {(Tchar*)"\045", ( float )32, ( float )32, PM_CROSS_65_OFT},
912   {(Tchar*)"\046", ( float )32, ( float )32, PM_CROSS_70_OFT} },
913
914   { {(Tchar*)"\047", ( float )7, ( float )7,   PM_CIRC_10_OFT},
915   {(Tchar*)"\050", ( float )9, ( float )9,   PM_CIRC_15_OFT},
916   {(Tchar*)"\051", ( float )9, ( float )9,   PM_CIRC_20_OFT},
917   {(Tchar*)"\052", ( float )11, ( float )11, PM_CIRC_25_OFT},
918   {(Tchar*)"\053", ( float )13, ( float )13, PM_CIRC_30_OFT},
919   {(Tchar*)"\054", ( float )15, ( float )15, PM_CIRC_35_OFT},
920   {(Tchar*)"\055", ( float )17, ( float )17, PM_CIRC_40_OFT},
921   {(Tchar*)"\056", ( float )19, ( float )19, PM_CIRC_45_OFT},
922   {(Tchar*)"\057", ( float )21, ( float )21, PM_CIRC_50_OFT},
923   {(Tchar*)"\060", ( float )23, ( float )23, PM_CIRC_55_OFT},
924   {(Tchar*)"\061", ( float )25, ( float )25, PM_CIRC_60_OFT},
925   {(Tchar*)"\062", ( float )27, ( float )27, PM_CIRC_65_OFT},
926   {(Tchar*)"\063", ( float )29, ( float )29, PM_CIRC_70_OFT} },
927
928   { {(Tchar*)"\064", ( float )5, ( float )5,   PM_DOT_10_OFT},
929   {(Tchar*)"\065", ( float )5, ( float )5,   PM_DOT_15_OFT},
930   {(Tchar*)"\066", ( float )7, ( float )7,   PM_DOT_20_OFT},
931   {(Tchar*)"\067", ( float )7, ( float )7,   PM_DOT_25_OFT},
932   {(Tchar*)"\070", ( float )9, ( float )9,   PM_DOT_30_OFT},
933   {(Tchar*)"\071", ( float )9, ( float )9,   PM_DOT_35_OFT},
934   {(Tchar*)"\072", ( float )9, ( float )9,   PM_DOT_40_OFT},
935   {(Tchar*)"\073", ( float )9, ( float )9,   PM_DOT_45_OFT},
936   {(Tchar*)"\074", ( float )9, ( float )9,   PM_DOT_50_OFT},
937   {(Tchar*)"\075", ( float )9, ( float )9,   PM_DOT_55_OFT},
938   {(Tchar*)"\076", ( float )11, ( float )11, PM_DOT_60_OFT},
939   {(Tchar*)"\077", ( float )11, ( float )11, PM_DOT_65_OFT},
940   {(Tchar*)"\100", ( float )11, ( float )11, PM_DOT_70_OFT} }
941 };
942
943 #define TEL_PM_START_SIZE 1.0
944 #define TEL_PM_END_SIZE   7.0
945
946 #define TEL_PM_SIZE_STEP  0.5
947
948 /*----------------------------------------------------------------------*/
949
950 static void
951 InitPMFont(void)
952 {
953   Tint         i, k1, k2, offset;
954   unsigned     char raster[] = {
955
956     0x08,0x00,
957       0x08,0x00,
958       0x08,0x00,
959       0x08,0x00,
960       0xff,0x80,
961       0x08,0x00,
962       0x08,0x00,
963       0x08,0x00,
964       0x08,0x00,  /* PLUS 9x9 = 1.0 */
965
966       0x04,0x00,
967       0x04,0x00,
968       0x04,0x00,
969       0x04,0x00,
970       0x04,0x00,
971       0xff,0xe0,
972       0x04,0x00,
973       0x04,0x00,
974       0x04,0x00,
975       0x04,0x00,
976       0x04,0x00,  /* PLUS 11x11 = 1.5 */
977
978       0x02,0x00,
979       0x02,0x00,
980       0x02,0x00,
981       0x02,0x00,
982       0x02,0x00,
983       0x02,0x00,
984       0xff,0xf8,
985       0x02,0x00,
986       0x02,0x00,
987       0x02,0x00,
988       0x02,0x00,
989       0x02,0x00,
990       0x02,0x00,/* PLUS 13x13 = 2.0 */
991
992       0x01,0x00,
993       0x01,0x00,
994       0x01,0x00,
995       0x01,0x00,
996       0x01,0x00,
997       0x01,0x00,
998       0x01,0x00,
999       0xff,0xfe,
1000       0x01,0x00,
1001       0x01,0x00,
1002       0x01,0x00,
1003       0x01,0x00,
1004       0x01,0x00,
1005       0x01,0x00,
1006       0x01,0x00,/* PLUS 15x15 = 2.5 */
1007
1008       0x00,0x80, 0x00,
1009       0x00,0x80, 0x00,
1010       0x00,0x80, 0x00,
1011       0x00,0x80, 0x00,
1012       0x00,0x80, 0x00,
1013       0x00,0x80, 0x00,
1014       0x00,0x80, 0x00,
1015       0x00,0x80, 0x00,
1016       0xff,0xff, 0x80,
1017       0x00,0x80, 0x00,
1018       0x00,0x80, 0x00,
1019       0x00,0x80, 0x00,
1020       0x00,0x80, 0x00,
1021       0x00,0x80, 0x00,
1022       0x00,0x80, 0x00,
1023       0x00,0x80, 0x00,
1024       0x00,0x80, 0x00,/* PLUS 17x17 = 3.0 */
1025
1026
1027       0x00,0x40, 0x00,
1028       0x00,0x40, 0x00,
1029       0x00,0x40, 0x00,
1030       0x00,0x40, 0x00,
1031       0x00,0x40, 0x00,
1032       0x00,0x40, 0x00,
1033       0x00,0x40, 0x00,
1034       0x00,0x40, 0x00,
1035       0x00,0x40, 0x00,
1036       0xff,0xff, 0xe0,
1037       0x00,0x40, 0x00,
1038       0x00,0x40, 0x00,
1039       0x00,0x40, 0x00,
1040       0x00,0x40, 0x00,
1041       0x00,0x40, 0x00,
1042       0x00,0x40, 0x00,
1043       0x00,0x40, 0x00,
1044       0x00,0x40, 0x00,
1045       0x00,0x40, 0x00,/* PLUS 19x19 = 3.5 */
1046
1047       0x00,0x20, 0x00,
1048       0x00,0x20, 0x00,
1049       0x00,0x20, 0x00,
1050       0x00,0x20, 0x00,
1051       0x00,0x20, 0x00,
1052       0x00,0x20, 0x00,
1053       0x00,0x20, 0x00,
1054       0x00,0x20, 0x00,
1055       0x00,0x20, 0x00,
1056       0x00,0x20, 0x00,
1057       0xff,0xff, 0xf8,
1058       0x00,0x20, 0x00,
1059       0x00,0x20, 0x00,
1060       0x00,0x20, 0x00,
1061       0x00,0x20, 0x00,
1062       0x00,0x20, 0x00,
1063       0x00,0x20, 0x00,
1064       0x00,0x20, 0x00,
1065       0x00,0x20, 0x00,
1066       0x00,0x20, 0x00,
1067       0x00,0x20, 0x00,/* PLUS 21x21 = 4.0 */
1068
1069       0x00,0x10, 0x00,
1070       0x00,0x10, 0x00,
1071       0x00,0x10, 0x00,
1072       0x00,0x10, 0x00,
1073       0x00,0x10, 0x00,
1074       0x00,0x10, 0x00,
1075       0x00,0x10, 0x00,
1076       0x00,0x10, 0x00,
1077       0x00,0x10, 0x00,
1078       0x00,0x10, 0x00,
1079       0x00,0x10, 0x00,
1080       0xff,0xff, 0xfe,
1081       0x00,0x10, 0x00,
1082       0x00,0x10, 0x00,
1083       0x00,0x10, 0x00,
1084       0x00,0x10, 0x00,
1085       0x00,0x10, 0x00,
1086       0x00,0x10, 0x00,
1087       0x00,0x10, 0x00,
1088       0x00,0x10, 0x00,
1089       0x00,0x10, 0x00,
1090       0x00,0x10, 0x00,
1091       0x00,0x10, 0x00,/* PLUS 23x23 = 4.5 */
1092
1093       0x00,0x08, 0x00,0x00,
1094       0x00,0x08, 0x00,0x00,
1095       0x00,0x08, 0x00,0x00,
1096       0x00,0x08, 0x00,0x00,
1097       0x00,0x08, 0x00,0x00,
1098       0x00,0x08, 0x00,0x00,
1099       0x00,0x08, 0x00,0x00,
1100       0x00,0x08, 0x00,0x00,
1101       0x00,0x08, 0x00,0x00,
1102       0x00,0x08, 0x00,0x00,
1103       0x00,0x08, 0x00,0x00,
1104       0x00,0x08, 0x00,0x00,
1105       0xff,0xff, 0xff,0x80,
1106       0x00,0x08, 0x00,0x00,
1107       0x00,0x08, 0x00,0x00,
1108       0x00,0x08, 0x00,0x00,
1109       0x00,0x08, 0x00,0x00,
1110       0x00,0x08, 0x00,0x00,
1111       0x00,0x08, 0x00,0x00,
1112       0x00,0x08, 0x00,0x00,
1113       0x00,0x08, 0x00,0x00,
1114       0x00,0x08, 0x00,0x00,
1115       0x00,0x08, 0x00,0x00,
1116       0x00,0x08, 0x00,0x00,
1117       0x00,0x08, 0x00,0x00,/* PLUS 25x25 = 5.0 */
1118
1119       0x00,0x04, 0x00,0x00,
1120       0x00,0x04, 0x00,0x00,
1121       0x00,0x04, 0x00,0x00,
1122       0x00,0x04, 0x00,0x00,
1123       0x00,0x04, 0x00,0x00,
1124       0x00,0x04, 0x00,0x00,
1125       0x00,0x04, 0x00,0x00,
1126       0x00,0x04, 0x00,0x00,
1127       0x00,0x04, 0x00,0x00,
1128       0x00,0x04, 0x00,0x00,
1129       0x00,0x04, 0x00,0x00,
1130       0x00,0x04, 0x00,0x00,
1131       0x00,0x04, 0x00,0x00,
1132       0xff,0xff, 0xff,0xe0,
1133       0x00,0x04, 0x00,0x00,
1134       0x00,0x04, 0x00,0x00,
1135       0x00,0x04, 0x00,0x00,
1136       0x00,0x04, 0x00,0x00,
1137       0x00,0x04, 0x00,0x00,
1138       0x00,0x04, 0x00,0x00,
1139       0x00,0x04, 0x00,0x00,
1140       0x00,0x04, 0x00,0x00,
1141       0x00,0x04, 0x00,0x00,
1142       0x00,0x04, 0x00,0x00,
1143       0x00,0x04, 0x00,0x00,
1144       0x00,0x04, 0x00,0x00,
1145       0x00,0x04, 0x00,0x00,/* PLUS 27x27 = 5.5 */
1146
1147       0x00,0x02, 0x00,0x00,
1148       0x00,0x02, 0x00,0x00,
1149       0x00,0x02, 0x00,0x00,
1150       0x00,0x02, 0x00,0x00,
1151       0x00,0x02, 0x00,0x00,
1152       0x00,0x02, 0x00,0x00,
1153       0x00,0x02, 0x00,0x00,
1154       0x00,0x02, 0x00,0x00,
1155       0x00,0x02, 0x00,0x00,
1156       0x00,0x02, 0x00,0x00,
1157       0x00,0x02, 0x00,0x00,
1158       0x00,0x02, 0x00,0x00,
1159       0x00,0x02, 0x00,0x00,
1160       0x00,0x02, 0x00,0x00,
1161       0xff,0xff, 0xff,0xf8,
1162       0x00,0x02, 0x00,0x00,
1163       0x00,0x02, 0x00,0x00,
1164       0x00,0x02, 0x00,0x00,
1165       0x00,0x02, 0x00,0x00,
1166       0x00,0x02, 0x00,0x00,
1167       0x00,0x02, 0x00,0x00,
1168       0x00,0x02, 0x00,0x00,
1169       0x00,0x02, 0x00,0x00,
1170       0x00,0x02, 0x00,0x00,
1171       0x00,0x02, 0x00,0x00,
1172       0x00,0x02, 0x00,0x00,
1173       0x00,0x02, 0x00,0x00,
1174       0x00,0x02, 0x00,0x00,
1175       0x00,0x02, 0x00,0x00,/* PLUS 29x29 = 6.0 */
1176
1177       0x00,0x01, 0x00,0x00,
1178       0x00,0x01, 0x00,0x00,
1179       0x00,0x01, 0x00,0x00,
1180       0x00,0x01, 0x00,0x00,
1181       0x00,0x01, 0x00,0x00,
1182       0x00,0x01, 0x00,0x00,
1183       0x00,0x01, 0x00,0x00,
1184       0x00,0x01, 0x00,0x00,
1185       0x00,0x01, 0x00,0x00,
1186       0x00,0x01, 0x00,0x00,
1187       0x00,0x01, 0x00,0x00,
1188       0x00,0x01, 0x00,0x00,
1189       0x00,0x01, 0x00,0x00,
1190       0x00,0x01, 0x00,0x00,
1191       0x00,0x01, 0x00,0x00,
1192       0xff,0xff, 0xff,0xfd,
1193       0x00,0x01, 0x00,0x00,
1194       0x00,0x01, 0x00,0x00,
1195       0x00,0x01, 0x00,0x00,
1196       0x00,0x01, 0x00,0x00,
1197       0x00,0x01, 0x00,0x00,
1198       0x00,0x01, 0x00,0x00,
1199       0x00,0x01, 0x00,0x00,
1200       0x00,0x01, 0x00,0x00,
1201       0x00,0x01, 0x00,0x00,
1202       0x00,0x01, 0x00,0x00,
1203       0x00,0x01, 0x00,0x00,
1204       0x00,0x01, 0x00,0x00,
1205       0x00,0x01, 0x00,0x00,
1206       0x00,0x01, 0x00,0x00,
1207       0x00,0x01, 0x00,0x00,/* PLUS 31x31 = 6.5 */
1208
1209       0x00,0x00, 0x80,0x00,
1210       0x00,0x00, 0x80,0x00,
1211       0x00,0x00, 0x80,0x00,
1212       0x00,0x00, 0x80,0x00,
1213       0x00,0x00, 0x80,0x00,
1214       0x00,0x00, 0x80,0x00,
1215       0x00,0x00, 0x80,0x00,
1216       0x00,0x00, 0x80,0x00,
1217       0x00,0x00, 0x80,0x00,
1218       0x00,0x00, 0x80,0x00,
1219       0x00,0x00, 0x80,0x00,
1220       0x00,0x00, 0x80,0x00,
1221       0x00,0x00, 0x80,0x00,
1222       0x00,0x00, 0x80,0x00,
1223       0x00,0x00, 0x80,0x00,
1224       0x00,0x00, 0x80,0x00,
1225       0xff,0xff, 0xff,0xff,
1226       0x00,0x00, 0x80,0x00,
1227       0x00,0x00, 0x80,0x00,
1228       0x00,0x00, 0x80,0x00,
1229       0x00,0x00, 0x80,0x00,
1230       0x00,0x00, 0x80,0x00,
1231       0x00,0x00, 0x80,0x00,
1232       0x00,0x00, 0x80,0x00,
1233       0x00,0x00, 0x80,0x00,
1234       0x00,0x00, 0x80,0x00,
1235       0x00,0x00, 0x80,0x00,
1236       0x00,0x00, 0x80,0x00,
1237       0x00,0x00, 0x80,0x00,
1238       0x00,0x00, 0x80,0x00,
1239       0x00,0x00, 0x80,0x00,
1240       0x00,0x00, 0x80,0x00,/* PLUS 32x32 = 7.0 */
1241
1242       0x10,
1243       0x10,
1244       0xd6,
1245       0x38,
1246       0x10,
1247       0x38,
1248       0xd6,
1249       0x10,
1250       0x10,/* STAR 7x9 = 1.0 */
1251
1252       0x08,0x00,
1253       0x08,0x00,
1254       0x08,0x00,
1255       0xc9,0x80,
1256       0x3e,0x00,
1257       0x08,0x00,
1258       0x3e,0x00,
1259       0xc9,0x80,
1260       0x08,0x00,
1261       0x08,0x00,
1262       0x08,0x00,/* STAR 9x11 = 1.5 */
1263
1264       0x04,0x00,
1265       0x04,0x00,
1266       0x04,0x00,
1267       0x84,0x20,
1268       0x64,0xc0,
1269       0x1f,0x00,
1270       0x04,0x00,
1271       0x1f,0x00,
1272       0x64,0xc0,
1273       0x84,0x20,
1274       0x04,0x00,
1275       0x04,0x00,
1276       0x04,0x00,/* STAR 11x13 = 2.0 */
1277
1278
1279       0x02,0x00,
1280       0x02,0x00,
1281       0x02,0x00,
1282       0x02,0x00,
1283       0x82,0x18,
1284       0x62,0x60,
1285       0x1b,0x80,
1286       0x06,0x00,
1287       0x1b,0x80,
1288       0x62,0x60,
1289       0x82,0x18,
1290       0x02,0x00,
1291       0x02,0x00,
1292       0x02,0x00,
1293       0x02,0x00,/* STAR 13x15 = 2.5 */
1294
1295       0x02,0x00,
1296       0x02,0x00,
1297       0x02,0x00,
1298       0x02,0x00,
1299       0x82,0x08,
1300       0x62,0x30,
1301       0x12,0x40,
1302       0x0f,0x80,
1303       0x02,0x00,
1304       0x0f,0x80,
1305       0x12,0x40,
1306       0x62,0x30,
1307       0x82,0x08,
1308       0x02,0x00,
1309       0x02,0x00,
1310       0x02,0x00,
1311       0x02,0x00,/* STAR 13x17 = 3.0 */
1312
1313       0x01,0x00,
1314       0x01,0x00,
1315       0x01,0x00,
1316       0x01,0x00,
1317       0x01,0x00,
1318       0xc1,0x06,
1319       0x21,0x18,
1320       0x19,0x20,
1321       0x07,0xc0,
1322       0x01,0x00,
1323       0x07,0xc0,
1324       0x19,0x20,
1325       0x21,0x18,
1326       0xc1,0x06,
1327       0x01,0x00,
1328       0x01,0x00,
1329       0x01,0x00,
1330       0x01,0x00,
1331       0x01,0x00,/* STAR 15x19 = 3.5 */
1332
1333       0x00,0x80, 0x00,
1334       0x00,0x80, 0x00,
1335       0x00,0x80, 0x00,
1336       0x00,0x80, 0x00,
1337       0x00,0x80, 0x00,
1338       0x80,0x80, 0x80,
1339       0x60,0x83, 0x00,
1340       0x10,0x8c, 0x00,
1341       0x0c,0x90, 0x00,
1342       0x03,0xe0, 0x00,
1343       0x00,0x80, 0x00,
1344       0x03,0xe0, 0x00,
1345       0x0c,0x90, 0x00,
1346       0x10,0x8c, 0x00,
1347       0x60,0x83, 0x00,
1348       0x80,0x80, 0x80,
1349       0x00,0x80, 0x00,
1350       0x00,0x80, 0x00,
1351       0x00,0x80, 0x00,
1352       0x00,0x80, 0x00,
1353       0x00,0x80, 0x00,/* STAR 17x21 = 4.0 */
1354
1355       0x00,0x40, 0x00,
1356       0x00,0x40, 0x00,
1357       0x00,0x40, 0x00,
1358       0x00,0x40, 0x00,
1359       0x00,0x40, 0x00,
1360       0x00,0x40, 0x00,
1361       0xc0,0x40, 0x60,
1362       0x30,0x41, 0x80,
1363       0x08,0x42, 0x00,
1364       0x06,0x4c, 0x00,
1365       0x01,0xf0, 0x00,
1366       0x00,0x40, 0x00,
1367       0x01,0xf0, 0x00,
1368       0x06,0x4c, 0x00,
1369       0x08,0x42, 0x00,
1370       0x30,0x41, 0x80,
1371       0xc0,0x40, 0x60,
1372       0x00,0x40, 0x00,
1373       0x00,0x40, 0x00,
1374       0x00,0x40, 0x00,
1375       0x00,0x40, 0x00,
1376       0x00,0x40, 0x00,
1377       0x00,0x40, 0x00,/* STAR 19x23 = 4.5 */
1378
1379       0x00,0x20, 0x00,
1380       0x00,0x20, 0x00,
1381       0x00,0x20, 0x00,
1382       0x00,0x20, 0x00,
1383       0x00,0x20, 0x00,
1384       0x00,0x20, 0x00,
1385       0x80,0x20, 0x08,
1386       0x60,0x20, 0x30,
1387       0x18,0x20, 0xc0,
1388       0x04,0x21, 0x00,
1389       0x03,0x26, 0x00,
1390       0x00,0xf8, 0x00,
1391       0x00,0x20, 0x00,
1392       0x00,0xf8, 0x00,
1393       0x03,0x26, 0x00,
1394       0x04,0x21, 0x00,
1395       0x18,0x20, 0xc0,
1396       0x60,0x20, 0x30,
1397       0x80,0x20, 0x08,
1398       0x00,0x20, 0x00,
1399       0x00,0x20, 0x00,
1400       0x00,0x20, 0x00,
1401       0x00,0x20, 0x00,
1402       0x00,0x20, 0x00,
1403       0x00,0x20, 0x00,/* STAR 21x25 = 5.0 */
1404
1405       0x00,0x10, 0x00,
1406       0x00,0x10, 0x00,
1407       0x00,0x10, 0x00,
1408       0x00,0x10, 0x00,
1409       0x00,0x10, 0x00,
1410       0x00,0x10, 0x00,
1411       0x00,0x10, 0x00,
1412       0xc0,0x10, 0x06,
1413       0x30,0x10, 0x18,
1414       0x08,0x10, 0x60,
1415       0x06,0x10, 0x80,
1416       0x01,0x93, 0x00,
1417       0x00,0x7c, 0x00,
1418       0x00,0x10, 0x00,
1419       0x00,0x7c, 0x00,
1420       0x01,0x93, 0x00,
1421       0x06,0x10, 0x80,
1422       0x08,0x10, 0x60,
1423       0x30,0x10, 0x18,
1424       0xc0,0x10, 0x06,
1425       0x00,0x10, 0x00,
1426       0x00,0x10, 0x00,
1427       0x00,0x10, 0x00,
1428       0x00,0x10, 0x00,
1429       0x00,0x10, 0x00,
1430       0x00,0x10, 0x00,
1431       0x00,0x10, 0x00,/* STAR 23x27 = 5.5 */
1432
1433       0x00,0x08, 0x00,0x00,
1434       0x00,0x08, 0x00,0x00,
1435       0x00,0x08, 0x00,0x00,
1436       0x00,0x08, 0x00,0x00,
1437       0x00,0x08, 0x00,0x00,
1438       0x00,0x08, 0x00,0x00,
1439       0x00,0x08, 0x00,0x00,
1440       0x80,0x08, 0x00,0x80,
1441       0x60,0x08, 0x03,0x00,
1442       0x18,0x08, 0x0c,0x00,
1443       0x04,0x08, 0x30,0x00,
1444       0x03,0x08, 0x40,0x00,
1445       0x00,0xc9, 0x80,0x00,
1446       0x00,0x3e, 0x00,0x00,
1447       0x00,0x08, 0x00,0x00,
1448       0x00,0x3e, 0x00,0x00,
1449       0x00,0xc9, 0x80,0x00,
1450       0x03,0x08, 0x40,0x00,
1451       0x04,0x08, 0x30,0x00,
1452       0x18,0x08, 0x0c,0x00,
1453       0x60,0x08, 0x03,0x00,
1454       0x80,0x08, 0x00,0x80,
1455       0x00,0x08, 0x00,0x00,
1456       0x00,0x08, 0x00,0x00,
1457       0x00,0x08, 0x00,0x00,
1458       0x00,0x08, 0x00,0x00,
1459       0x00,0x08, 0x00,0x00,
1460       0x00,0x08, 0x00,0x00,
1461       0x00,0x08, 0x00,0x00,/* STAR 25x29 = 6.0 */
1462
1463       0x00,0x00, 0x80,0x00,
1464       0x00,0x00, 0x80,0x00,
1465       0x00,0x00, 0x80,0x00,
1466       0x00,0x00, 0x80,0x00,
1467       0x00,0x00, 0x80,0x00,
1468       0x00,0x00, 0x80,0x00,
1469       0x00,0x00, 0x80,0x00,
1470       0x00,0x00, 0x80,0x00, 
1471       0x00,0x00, 0x80,0x00,
1472       0x30,0x00, 0x80,0x06,
1473       0x0c,0x00, 0x80,0x18,
1474       0x03,0x00, 0x80,0x60,
1475       0x00,0xc0, 0x81,0x80,
1476       0x00,0x30, 0x86,0x00,
1477       0x00,0x0c, 0x98,0x00,
1478       0x00,0x03, 0xe0,0x00,
1479       0x00,0x03, 0xe0,0x00,
1480       0x00,0x0c, 0x98,0x00,
1481       0x00,0x30, 0x86,0x00,
1482       0x00,0xc0, 0x81,0x80,
1483       0x03,0x00, 0x80,0x60,
1484       0x0c,0x00, 0x80,0x18,
1485       0x30,0x00, 0x80,0x06,
1486       0x00,0x00, 0x80,0x00,
1487       0x00,0x00, 0x80,0x00,
1488       0x00,0x00, 0x80,0x00,
1489       0x00,0x00, 0x80,0x00,
1490       0x00,0x00, 0x80,0x00,
1491       0x00,0x00, 0x80,0x00,
1492       0x00,0x00, 0x80,0x00,
1493       0x00,0x00, 0x00,0x00,
1494       0x00,0x00, 0x00,0x00,/* STAR 32x32 = 6.5 */
1495
1496       0x00, 0x00, 0x80, 0x00,
1497       0x00, 0x00, 0x80, 0x00,
1498       0x00, 0x00, 0x80, 0x00,
1499       0x00, 0x00, 0x80, 0x00,
1500       0x00, 0x00, 0x80, 0x00,
1501       0x00, 0x00, 0x80, 0x00,
1502       0x00, 0x00, 0x80, 0x00, 
1503       0x00, 0x00, 0x80, 0x00,
1504       0x10, 0x00, 0x80, 0x04,
1505       0x0c, 0x00, 0x80, 0x18,
1506       0x02, 0x00, 0x80, 0x20,
1507       0x01, 0x80, 0x80, 0xc0,
1508       0x00, 0x40, 0x81, 0x00,
1509       0x00, 0x30, 0x86, 0x00,
1510       0x00, 0x08, 0x88, 0x00,
1511       0x00, 0x06, 0xb0, 0x00,
1512       0x00, 0x01, 0xc0, 0x00,
1513       0x00, 0x06, 0xb0, 0x00,
1514       0x00, 0x08, 0x88, 0x00,
1515       0x00, 0x30, 0x86, 0x00,
1516       0x00, 0x40, 0x81, 0x00,
1517       0x01, 0x80, 0x80, 0xc0,
1518       0x02, 0x00, 0x80, 0x20,
1519       0x0c, 0x00, 0x80, 0x18,
1520       0x10, 0x00, 0x80, 0x04,
1521       0x00, 0x00, 0x80, 0x00,
1522       0x00, 0x00, 0x80, 0x00,
1523       0x00, 0x00, 0x80, 0x00,
1524       0x00, 0x00, 0x80, 0x00,
1525       0x00, 0x00, 0x80, 0x00,
1526       0x00, 0x00, 0x80, 0x00,
1527       0x00, 0x00, 0x80, 0x00,/* STAR 32x32 = 7.0 */
1528
1529
1530       0x82,
1531       0x44,
1532       0x28,
1533       0x10,
1534       0x28,
1535       0x44,
1536       0x82,/* CROSS 7x7 = 1.0 */
1537
1538       0x80,0x80,
1539       0x41,0x00,
1540       0x22,0x00,
1541       0x14,0x00,
1542       0x08,0x00,
1543       0x14,0x00,
1544       0x22,0x00,
1545       0x41,0x00,
1546       0x80,0x80,/* CROSS 9x9 = 1.5 */
1547
1548       0x80,0x20,
1549       0x40,0x40,
1550       0x20,0x80,
1551       0x11,0x00,
1552       0x0a,0x00,
1553       0x04,0x00,
1554       0x0a,0x00,
1555       0x11,0x00,
1556       0x20,0x80,
1557       0x40,0x40,
1558       0x80,0x20,/* CROSS 11x11 = 2.0 */
1559
1560       0x80,0x08,
1561       0x40,0x10,
1562       0x20,0x20,
1563       0x10,0x40,
1564       0x08,0x80,
1565       0x05,0x00,
1566       0x02,0x00,
1567       0x05,0x00,
1568       0x08,0x80,
1569       0x10,0x40,
1570       0x20,0x20,
1571       0x40,0x10,
1572       0x80,0x08,/* CROSS 13x13 = 2.5 */
1573
1574       0x80,0x02,
1575       0x40,0x04,
1576       0x20,0x08,
1577       0x10,0x10,
1578       0x08,0x20,
1579       0x04,0x40,
1580       0x02,0x80,
1581       0x01,0x00,
1582       0x02,0x80,
1583       0x04,0x40,
1584       0x08,0x20,
1585       0x10,0x10,
1586       0x20,0x08,
1587       0x40,0x04,
1588       0x80,0x02,/* CROSS 15x15 = 3.0 */
1589
1590       0x80,0x00, 0x80,
1591       0x40,0x01, 0x00,
1592       0x20,0x02, 0x00,
1593       0x10,0x04, 0x00,
1594       0x08,0x08, 0x00,
1595       0x04,0x10, 0x00,
1596       0x02,0x20, 0x00,
1597       0x01,0x40, 0x00,
1598       0x00,0x80, 0x00,
1599       0x01,0x40, 0x00,
1600       0x02,0x20, 0x00,
1601       0x04,0x10, 0x00,
1602       0x08,0x08, 0x00,
1603       0x10,0x04, 0x00,
1604       0x20,0x02, 0x00,
1605       0x40,0x01, 0x00,
1606       0x80,0x00, 0x80,/* CROSS 17x17 = 3.5 */
1607
1608       0x80,0x00, 0x20,
1609       0x40,0x00, 0x40,
1610       0x20,0x00, 0x80,
1611       0x10,0x01, 0x00,
1612       0x08,0x02, 0x00,
1613       0x04,0x04, 0x00,
1614       0x02,0x08, 0x00,
1615       0x01,0x10, 0x00,
1616       0x00,0xa0, 0x00,
1617       0x00,0x40, 0x00,
1618       0x00,0xa0, 0x00,
1619       0x01,0x10, 0x00,
1620       0x02,0x08, 0x00,
1621       0x04,0x04, 0x00,
1622       0x08,0x02, 0x00,
1623       0x10,0x01, 0x00,
1624       0x20,0x00, 0x80,
1625       0x40,0x00, 0x40,
1626       0x80,0x00, 0x20,/* CROSS 19x19 = 4.0 */
1627
1628       0x80,0x00, 0x08,
1629       0x40,0x00, 0x10,
1630       0x20,0x00, 0x20,
1631       0x10,0x00, 0x40,
1632       0x08,0x00, 0x80,
1633       0x04,0x01, 0x00,
1634       0x02,0x02, 0x00,
1635       0x01,0x04, 0x00,
1636       0x00,0x88, 0x00,
1637       0x00,0x50, 0x00,
1638       0x00,0x20, 0x00,
1639       0x00,0x50, 0x00,
1640       0x00,0x88, 0x00,
1641       0x01,0x04, 0x00,
1642       0x02,0x02, 0x00,
1643       0x04,0x01, 0x00,
1644       0x08,0x00, 0x80,
1645       0x10,0x00, 0x40,
1646       0x20,0x00, 0x20,
1647       0x40,0x00, 0x10,
1648       0x80,0x00, 0x08,/* CROSS 21x21 = 4.5 */
1649
1650       0x80,0x00, 0x02,
1651       0x40,0x00, 0x04,
1652       0x20,0x00, 0x08,
1653       0x10,0x00, 0x10,
1654       0x08,0x00, 0x20,
1655       0x04,0x00, 0x40,
1656       0x02,0x00, 0x80,
1657       0x01,0x01, 0x00,
1658       0x00,0x82, 0x00,
1659       0x00,0x44, 0x00,
1660       0x00,0x28, 0x00,
1661       0x00,0x10, 0x00,
1662       0x00,0x28, 0x00,
1663       0x00,0x44, 0x00,
1664       0x00,0x82, 0x00,
1665       0x01,0x01, 0x00,
1666       0x02,0x00, 0x80,
1667       0x04,0x00, 0x40,
1668       0x08,0x00, 0x20,
1669       0x10,0x00, 0x10,
1670       0x20,0x00, 0x08,
1671       0x40,0x00, 0x04,
1672       0x80,0x00, 0x02,/* CROSS 23x23 = 5.0 */
1673
1674       0x80,0x00, 0x00,0x80,
1675       0x40,0x00, 0x01,0x00,
1676       0x20,0x00, 0x02,0x00,
1677       0x10,0x00, 0x04,0x00,
1678       0x08,0x00, 0x08,0x00,
1679       0x04,0x00, 0x10,0x00,
1680       0x02,0x00, 0x20,0x00,
1681       0x01,0x00, 0x40,0x00,
1682       0x00,0x80, 0x80,0x00,
1683       0x00,0x41, 0x00,0x00,
1684       0x00,0x22, 0x00,0x00,
1685       0x00,0x14, 0x00,0x00,
1686       0x00,0x08, 0x00,0x00,
1687       0x00,0x14, 0x00,0x00,
1688       0x00,0x22, 0x00,0x00,
1689       0x00,0x41, 0x00,0x00,
1690       0x00,0x80, 0x80,0x00,
1691       0x01,0x00, 0x40,0x00,
1692       0x02,0x00, 0x20,0x00,
1693       0x04,0x00, 0x10,0x00,
1694       0x08,0x00, 0x08,0x00,
1695       0x10,0x00, 0x04,0x00,
1696       0x20,0x00, 0x02,0x00,
1697       0x40,0x00, 0x01,0x00,
1698       0x80,0x00, 0x00,0x80,/* CROSS 25x25 = 5.5 */
1699
1700       0x80,0x00, 0x00,0x20,
1701       0x40,0x00, 0x00,0x40,
1702       0x20,0x00, 0x00,0x80,
1703       0x10,0x00, 0x01,0x00,
1704       0x08,0x00, 0x02,0x00,
1705       0x04,0x00, 0x04,0x00,
1706       0x02,0x00, 0x08,0x00,
1707       0x01,0x00, 0x10,0x00,
1708       0x00,0x80, 0x20,0x00,
1709       0x00,0x40, 0x40,0x00,
1710       0x00,0x20, 0x80,0x00,
1711       0x00,0x11, 0x00,0x00,
1712       0x00,0x0a, 0x00,0x00,
1713       0x00,0x04, 0x00,0x00,
1714       0x00,0x0a, 0x00,0x00,
1715       0x00,0x11, 0x00,0x00,
1716       0x00,0x20, 0x80,0x00,
1717       0x00,0x40, 0x40,0x00,
1718       0x00,0x80, 0x20,0x00,
1719       0x01,0x00, 0x10,0x00,
1720       0x02,0x00, 0x08,0x00,
1721       0x04,0x00, 0x04,0x00,
1722       0x08,0x00, 0x02,0x00,
1723       0x10,0x00, 0x01,0x00,
1724       0x20,0x00, 0x00,0x80,
1725       0x40,0x00, 0x00,0x40,
1726       0x80,0x00, 0x00,0x20,/* CROSS 27x27 = 6.0 */
1727
1728       0x00,0x00, 0x00,0x00,
1729       0x00,0x00, 0x00,0x00,
1730       0x20,0x00, 0x00,0x04,
1731       0x10,0x00, 0x00,0x08,
1732       0x08,0x00, 0x00,0x10,
1733       0x04,0x00, 0x00,0x20,
1734       0x02,0x00, 0x00,0x40,
1735       0x01,0x00, 0x00,0x80,
1736       0x00,0x80, 0x01,0x00,
1737       0x00,0x40, 0x02,0x00,
1738       0x00,0x20, 0x04,0x00,
1739       0x00,0x10, 0x08,0x00,
1740       0x00,0x08, 0x10,0x00,
1741       0x00,0x04, 0x20,0x00,
1742       0x00,0x02, 0x40,0x00,
1743       0x00,0x01, 0x80,0x00,
1744       0x00,0x01, 0x80,0x00,
1745       0x00,0x02, 0x40,0x00,
1746       0x00,0x04, 0x20,0x00,
1747       0x00,0x08, 0x10,0x00,
1748       0x00,0x10, 0x08,0x00,
1749       0x00,0x20, 0x04,0x00,
1750       0x00,0x40, 0x02,0x00,
1751       0x00,0x80, 0x01,0x00,
1752       0x01,0x00, 0x00, 0x80,
1753       0x02,0x00, 0x00,0x40, 
1754       0x04,0x00, 0x00,0x20,
1755       0x08,0x00, 0x00,0x10,
1756       0x10,0x00, 0x00,0x08,
1757       0x20,0x00, 0x00,0x04,
1758       0x00,0x00, 0x00,0x00,
1759       0x00,0x00, 0x00,0x00,/* CROSS 32x32 = 6.5 */
1760
1761       0x00,0x00, 0x00,0x00,
1762       0x40,0x00, 0x00,0x02,
1763       0x20,0x00, 0x00,0x04,
1764       0x10,0x00, 0x00,0x08,
1765       0x08,0x00, 0x00,0x10,
1766       0x04,0x00, 0x00,0x20,
1767       0x02,0x00, 0x00,0x40,
1768       0x01,0x00, 0x00,0x80,
1769       0x00,0x80, 0x01,0x00,
1770       0x00,0x40, 0x02,0x00,
1771       0x00,0x20, 0x04,0x00,
1772       0x00,0x10, 0x08,0x00,
1773       0x00,0x08, 0x10,0x00,
1774       0x00,0x04, 0x20,0x00,
1775       0x00,0x02, 0x40,0x00,
1776       0x00,0x01, 0x80,0x00,
1777       0x00,0x01, 0x80,0x00,
1778       0x00,0x02, 0x40,0x00,
1779       0x00,0x04, 0x20,0x00,
1780       0x00,0x08, 0x10,0x00,
1781       0x00,0x10, 0x08,0x00,
1782       0x00,0x20, 0x04,0x00,
1783       0x00,0x40, 0x02,0x00, 
1784       0x00,0x80, 0x01,0x00,
1785       0x01,0x00, 0x00,0x80,
1786       0x02,0x00, 0x00,0x40,
1787       0x04,0x00, 0x00,0x20,
1788       0x08,0x00, 0x00,0x10,
1789       0x10,0x00, 0x00,0x08,
1790       0x20,0x00, 0x00,0x04,
1791       0x40,0x00, 0x00,0x02,
1792       0x00,0x00, 0x00,0x00,/* CROSS 32x32 = 7.0 */
1793
1794       0x38,
1795       0x44,
1796       0x82,
1797       0x82,
1798       0x82,
1799       0x44,
1800       0x38,/* CIRC 7x7 = 1.0 */
1801
1802       0x3c,0x00,
1803       0x42,0x00,
1804       0x81,0x00,
1805       0x81,0x00,
1806       0x81,0x00,
1807       0x81,0x00,
1808       0x42,0x00,
1809       0x3c,0x00,
1810       0x00,0x00,/*CIRC 9x9 = 1.5 */
1811
1812       0x3e, 0x00,
1813       0x41, 0x00,
1814       0x81, 0x80,
1815       0x80,0x80,
1816       0x80,0x80,
1817       0x80,0x80,
1818       0x81, 0x80,
1819       0x41, 0x00,
1820       0x3e,0x00,/* CIRC 9x9 = 2.0 */
1821
1822       0x1f,0x00,
1823       0x20,0x80,
1824       0x40,0x40,
1825       0x80,0x20,
1826       0x80,0x20,
1827       0x80,0x20,
1828       0x80,0x20,
1829       0x80,0x20,
1830       0x40,0x40,
1831       0x20,0x80,
1832       0x1f,0x00,/* CIRC 11x11 = 2.5 */
1833
1834       0x0f,0x80,
1835       0x10,0x40,
1836       0x20,0x20,
1837       0x40,0x10,
1838       0x80,0x08,
1839       0x80,0x08,
1840       0x80,0x08,
1841       0x80,0x08,
1842       0x80,0x08,
1843       0x40,0x10,
1844       0x20,0x20,
1845       0x10,0x40,
1846       0x0f,0x80,/* CIRC 13x13 = 3.0 */
1847
1848       0x07,0xc0,
1849       0x18,0x30,
1850       0x20,0x08,
1851       0x40,0x04,
1852       0x40,0x04,
1853       0x80,0x02,
1854       0x80,0x02,
1855       0x80,0x02,
1856       0x80,0x02,
1857       0x80,0x02,
1858       0x40,0x04,
1859       0x40,0x04,
1860       0x20,0x08,
1861       0x18,0x30,
1862       0x07,0xc0,/* CIRC 15x15 = 3.5 */
1863
1864       0x03,0xe0, 0x00,
1865       0x0c,0x18, 0x00,
1866       0x10,0x04, 0x00,
1867       0x20,0x02, 0x00,
1868       0x40,0x01, 0x00,
1869       0x40,0x01, 0x00,
1870       0x80,0x00, 0x80,
1871       0x80,0x00, 0x80,
1872       0x80,0x00, 0x80,
1873       0x80,0x00, 0x80,
1874       0x80,0x00, 0x80,
1875       0x40,0x01, 0x00,
1876       0x40,0x01, 0x00,
1877       0x20,0x02, 0x00,
1878       0x10,0x04, 0x00,
1879       0x0c,0x18, 0x00,
1880       0x03,0xe0, 0x00,/* CIRC 17x17 = 4.0 */
1881
1882       0x03,0xf8, 0x00,
1883       0x0e,0x0e, 0x00,
1884       0x18,0x03, 0x00,
1885       0x20,0x00, 0x80,
1886       0x60,0x00, 0xc0,
1887       0x40,0x00, 0x40,
1888       0xc0,0x00, 0x60,
1889       0x80,0x00, 0x20,
1890       0x80,0x00, 0x20,
1891       0x80,0x00, 0x20,
1892       0x80,0x00, 0x20,
1893       0x80,0x00, 0x20,
1894       0xc0,0x00, 0x60,
1895       0x40,0x00, 0x40,
1896       0x60,0x00, 0xc0,
1897       0x20,0x00, 0x80,
1898       0x18,0x03, 0x00,
1899       0x0e,0x0e, 0x00,
1900       0x03,0xf8, 0x00,/* CIRC 19x19 = 4.5 */
1901
1902
1903       0x01,0xfc, 0x00,
1904       0x06,0x03, 0x00,
1905       0x08,0x00, 0x80,
1906       0x10,0x00, 0x40,
1907       0x20,0x00, 0x20,
1908       0x40,0x00, 0x10,
1909       0x40,0x00, 0x10,
1910       0x80,0x00, 0x08,
1911       0x80,0x00, 0x08,
1912       0x80,0x00, 0x08,
1913       0x80,0x00, 0x08,
1914       0x80,0x00, 0x08,
1915       0x80,0x00, 0x08,
1916       0x80,0x00, 0x08,
1917       0x40,0x00, 0x10,
1918       0x40,0x00, 0x10,
1919       0x20,0x00, 0x20,
1920       0x10,0x00, 0x40,
1921       0x08,0x00, 0x80,
1922       0x06,0x03, 0x00,
1923       0x01,0xfc, 0x00,/* CIRC 21x21 = 5.0 */
1924
1925       0x00,0xfe, 0x00,
1926       0x03,0x01, 0x80,
1927       0x0c,0x00, 0x60,
1928       0x18,0x00, 0x30,
1929       0x30,0x00, 0x18,
1930       0x20,0x00, 0x08,
1931       0x40,0x00, 0x04,
1932       0x40,0x00, 0x04,
1933       0x80,0x00, 0x02,
1934       0x80,0x00, 0x02,
1935       0x80,0x00, 0x02,
1936       0x80,0x00, 0x02,
1937       0x80,0x00, 0x02,
1938       0x80,0x00, 0x02,
1939       0x80,0x00, 0x02,
1940       0x40,0x00, 0x04,
1941       0x40,0x00, 0x04,
1942       0x20,0x00, 0x08,
1943       0x30,0x00, 0x18,
1944       0x18,0x00, 0x30,
1945       0x0c,0x00, 0x60,
1946       0x03,0x01, 0x80,
1947       0x00,0xfe, 0x00,/* CIRC 23x23 = 5.5 */
1948
1949       0x00,0x7f, 0x00,0x00,
1950       0x01,0x80, 0xc0,0x00,
1951       0x06,0x00, 0x30,0x00,
1952       0x08,0x00, 0x08,0x00,
1953       0x10,0x00, 0x04,0x00,
1954       0x20,0x00, 0x02,0x00,
1955       0x20,0x00, 0x02,0x00,
1956       0x40,0x00, 0x01,0x00,
1957       0x40,0x00, 0x01,0x00,
1958       0x80,0x00, 0x00,0x80,
1959       0x80,0x00, 0x00,0x80,
1960       0x80,0x00, 0x00,0x80,
1961       0x80,0x00, 0x00,0x80,
1962       0x80,0x00, 0x00,0x80,
1963       0x80,0x00, 0x00,0x80,
1964       0x80,0x00, 0x00,0x80,
1965       0x40,0x00, 0x01,0x00,
1966       0x40,0x00, 0x01,0x00,
1967       0x20,0x00, 0x02,0x00,
1968       0x20,0x00, 0x02,0x00,
1969       0x10,0x00, 0x04,0x00,
1970       0x08,0x00, 0x08,0x00,
1971       0x06,0x00, 0x30,0x00,
1972       0x01,0x80, 0xc0,0x00,
1973       0x00,0x7f, 0x00,0x00,/* CIRC 25x25 = 6.0 */
1974
1975       0x00,0x3f, 0x80,0x00,
1976       0x01,0xc0, 0x70,0x00,
1977       0x03,0x00, 0x18,0x00,
1978       0x0c,0x00, 0x06,0x00,
1979       0x18,0x00, 0x03,0x00,
1980       0x10,0x00, 0x01,0x00,
1981       0x20,0x00, 0x00,0x80,
1982       0x60,0x00, 0x00,0xc0,
1983       0x40,0x00, 0x00,0x40,
1984       0x40,0x00, 0x00,0x40,
1985       0x80,0x00, 0x00,0x20,
1986       0x80,0x00, 0x00,0x20,
1987       0x80,0x00, 0x00,0x20,
1988       0x80,0x00, 0x00,0x20,
1989       0x80,0x00, 0x00,0x20,
1990       0x80,0x00, 0x00,0x20,
1991       0x80,0x00, 0x00,0x20,
1992       0x40,0x00, 0x00,0x40,
1993       0x40,0x00, 0x00,0x40,
1994       0x60,0x00, 0x00,0xc0,
1995       0x20,0x00, 0x00,0x80,
1996       0x10,0x00, 0x01,0x00,
1997       0x18,0x00, 0x03,0x00,
1998       0x0c,0x00, 0x06,0x00,
1999       0x03,0x00, 0x18,0x00,
2000       0x01,0xc0, 0x70,0x00,
2001       0x00,0x3f, 0x80,0x00,/* CIRC 27x27 = 6.5 */
2002
2003       0x00,0x1f, 0xc0,0x00,
2004       0x00,0xe0, 0x38,0x00,
2005       0x01,0x00, 0x04,0x00,
2006       0x06,0x00, 0x03,0x00,
2007       0x08,0x00, 0x00,0x80,
2008       0x10,0x00, 0x00,0x40,
2009       0x10,0x00, 0x00,0x40,
2010       0x20,0x00, 0x00,0x20,
2011       0x40,0x00, 0x00,0x10,
2012       0x40,0x00, 0x00,0x10,
2013       0x40,0x00, 0x00,0x10,
2014       0x80,0x00, 0x00,0x08,
2015       0x80,0x00, 0x00,0x08,
2016       0x80,0x00, 0x00,0x08,
2017       0x80,0x00, 0x00,0x08,
2018       0x80,0x00, 0x00,0x08,
2019       0x80,0x00, 0x00,0x08,
2020       0x80,0x00, 0x00,0x08,
2021       0x40,0x00, 0x00,0x10,
2022       0x40,0x00, 0x00,0x10,
2023       0x40,0x00, 0x00,0x10,
2024       0x20,0x00, 0x00,0x20,
2025       0x10,0x00, 0x00,0x40,
2026       0x10,0x00, 0x00,0x40,
2027       0x08,0x00, 0x00,0x80,
2028       0x06,0x00, 0x03,0x00,
2029       0x01,0x00, 0x04,0x00,
2030       0x00,0xe0, 0x38,0x00,
2031       0x00,0x1f, 0xc0,0x00, /* CIRC 29x29 = 7.0 */
2032
2033       0x00,
2034       0x18,
2035       0x18,
2036       0x00,
2037       0x00,/* DOT 5x5 = 1.0 */
2038
2039       0x70,
2040       0xf8,
2041       0xf8,
2042       0xf8,
2043       0x70,/* DOT 5x5 = 1.5 = 1.0 */
2044
2045       0x38,
2046       0x7c,
2047       0xfe,
2048       0xfe,
2049       0xfe,
2050       0x7c,
2051       0x38,/* DOT 7x7 = 2.0 */
2052
2053       0x38,
2054       0x7c,
2055       0xfe,
2056       0xfe,
2057       0xfe,
2058       0x7c,
2059       0x38,/* DOT 7x7 = 2.5 =  2.0 */
2060
2061       0x00,0x00,
2062       0x3c,0x00,
2063       0x7e,0x00,
2064       0xff,0x00,
2065       0xff,0x00,
2066       0xff,0x00,
2067       0x7e,0x00,
2068       0x3c,0x00,
2069       0x00,0x00,/* DOT 9x9 = 3.0 */
2070
2071       0x00,0x00,
2072       0x3c,0x00,
2073       0x7e,0x00,
2074       0xff,0x00,
2075       0xff,0x00,
2076       0xff,0x00,
2077       0x7e,0x00,
2078       0x3c,0x00,
2079       0x00,0x00,/* DOT 9x9 = 3.5 = 3.0 */
2080
2081       0x1c,0x00,
2082       0x7f,0x00,
2083       0x7f,0x00,
2084       0xff,0x80,
2085       0xff,0x80,
2086       0xff,0x80,
2087       0x7f,0x00,
2088       0x7f,0x00,
2089       0x1c,0x00,/* DOT 9x9 = 4.0 */
2090
2091       0x1c,0x00,
2092       0x7f,0x00,
2093       0x7f,0x00,
2094       0xff,0x80,
2095       0xff,0x80,
2096       0xff,0x80,
2097       0x7f,0x00,
2098       0x7f,0x00,
2099       0x1c,0x00,/* DOT 9x9 = 4.5 = 4.0 */
2100
2101       0x3e,0x00,
2102       0x7f,0x00,
2103       0xff,0x80,
2104       0xff,0x80,
2105       0xff,0x80,
2106       0xff,0x80,
2107       0xff,0x80,
2108       0x7f,0x00,
2109       0x3e,0x00,/* DOT 9x9 = 5.0 */
2110
2111       0x3e,0x00,
2112       0x7f,0x00,
2113       0xff,0x80,
2114       0xff,0x80,
2115       0xff,0x80,
2116       0xff,0x80,
2117       0xff,0x80,
2118       0x7f,0x00,
2119       0x3e,0x00,/* DOT 9x9 = 5.5 = 5.0 */
2120
2121       0x1e, 0x00,
2122       0x3f, 0x80,
2123       0xff, 0xc0,
2124       0xff, 0xe1,
2125       0xff, 0xe1,
2126       0xff, 0xf1,
2127       0xff, 0xe1,
2128       0xff, 0xe1,
2129       0xff, 0xc0,
2130       0x3f, 0x80,
2131       0x1e, 0x00,/* DOT 11x11 = 6.0 */
2132
2133       0x1e, 0x00,
2134       0x3f, 0x80,
2135       0xff, 0xc0,
2136       0xff, 0xe1,
2137       0xff, 0xe1,
2138       0xff, 0xf1,
2139       0xff, 0xe1,
2140       0xff, 0xe1,
2141       0xff, 0xc0,
2142       0x3f, 0x80,
2143       0x1e, 0x00,/* DOT 11x11 = 6.5 = 6.0 */
2144
2145       0x1e, 0x00,
2146       0x3f, 0x80,
2147       0xff, 0xc0,
2148       0xff, 0xe1,
2149       0xff, 0xe1,
2150       0xff, 0xf1,
2151       0xff, 0xe1,
2152       0xff, 0xe1,
2153       0xff, 0xc0,
2154       0x3f, 0x80,
2155       0x1e, 0x00 /* DOT 11x11 = 7.0 =  6.0 */
2156   };
2157
2158   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
2159
2160   markerBase = glGenLists (80);
2161
2162   for( i = 0; i < TEL_NO_OF_SIZES*TEL_NB_OF_MARKERS; i++ )
2163   {           
2164     GLsizei w, h, size, j;
2165
2166     k1 = i / TEL_NO_OF_SIZES;
2167     k2 = i % TEL_NO_OF_SIZES;
2168     offset = array[k1][k2].offset;
2169
2170     w = ( GLsizei ) array[k1][k2].width;
2171     h = ( GLsizei ) array[k1][k2].height;
2172
2173     glNewList( (GLuint) array[k1][k2].str[0]+markerBase, GL_COMPILE);
2174
2175     glBitmap( w, h, (float)(array[k1][k2].width) / ( float )2.0,
2176       (float)(array[k1][k2].height) / ( float )2.0,
2177       ( float )30.0,  ( float )30.0, (const GLubyte *) &raster[offset]);   
2178    
2179     glEndList();
2180
2181   }
2182
2183 }
2184
2185 /*----------------------------------------------------------------------*/
2186
2187 Tchar *
2188 TelGetStringForPM( Tint mrkr_type, Tfloat val )
2189 {
2190   Tint   id;
2191   Tfloat index;
2192
2193   if( val < TEL_PM_START_SIZE )
2194     val = ( float )1.0;
2195   if( val > TEL_PM_END_SIZE )
2196     val = ( float )7.0;
2197
2198   index = ( float )(TEL_NO_OF_SIZES-1) * (val - ( float )TEL_PM_START_SIZE )
2199     / ( float )(TEL_PM_END_SIZE - TEL_PM_START_SIZE);
2200   id = (Tint)(index + 0.5 );
2201
2202   return array[mrkr_type][id].str;
2203 }
2204 /*----------------------------------------------------------------------*/