0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_polyltyp.cxx
1
2 #include <OpenGl_tgl_all.hxx>
3
4 #include <stddef.h>
5 #include <stdio.h>
6 #include <GL/gl.h>
7 #include <GL/glu.h>
8
9 #include <OpenGl_cmn_varargs.hxx>
10 #include <OpenGl_telem_attri.hxx>
11 #include <OpenGl_tsm.hxx>
12 #include <OpenGl_telem.hxx>
13 #include <OpenGl_telem_inquire.hxx>
14 #include <OpenGl_Memory.hxx>
15
16 static  TStatus  PolylineTypeDisplay( TSM_ELEM_DATA, Tint, cmn_key* );
17 static  TStatus  PolylineTypeAdd( TSM_ELEM_DATA, Tint, cmn_key* );
18 static  TStatus  PolylineTypePrint( TSM_ELEM_DATA, Tint, cmn_key* );
19 static  TStatus  PolylineTypeInquire( TSM_ELEM_DATA, Tint, cmn_key* );
20
21 static  TStatus  (*MtdTbl[])( TSM_ELEM_DATA, Tint, cmn_key* ) =
22 {
23   0,             /* PickTraverse */
24   PolylineTypeDisplay,
25   PolylineTypeAdd,
26   0,             /* Delete */
27   PolylineTypePrint,
28   PolylineTypeInquire
29 };
30
31
32 MtblPtr
33 TelPolylineTypeInitClass( TelType *el )
34 {
35   *el = TelPolylineType;
36   return MtdTbl;
37 }
38
39 static  TStatus
40 PolylineTypeAdd( TSM_ELEM_DATA d, Tint n, cmn_key *k )
41 {
42   ((tsm_elem_data)(d.pdata))->ldata = k[0]->data.ldata;
43
44   return TSuccess;
45 }
46
47
48 static  TStatus
49 PolylineTypeDisplay( TSM_ELEM_DATA data, Tint n, cmn_key *k )
50 {
51   CMN_KEY     key;
52
53   key.id = TelPolylineType;
54   key.data.ldata = data.ldata;
55   TsmSetAttri( 1, &key );
56
57   return TSuccess;
58 }
59
60
61 static  TStatus
62 PolylineTypePrint( TSM_ELEM_DATA data, Tint n, cmn_key *k )
63 {
64   switch( data.ldata )
65   {
66   case TEL_LS_SOLID:
67     fprintf( stdout, "TelPolylineType. Value = SOLID\n" );
68     break;
69
70   case TEL_LS_DOT:
71     fprintf( stdout, "TelPolylineType. Value = DOT\n" );
72     break;
73
74   case TEL_LS_DASH_DOT:
75     fprintf( stdout, "TelPolylineType. Value = DASH_DOT\n" );
76     break;
77
78   case TEL_LS_DASH:
79     fprintf( stdout, "TelPolylineType. Value = DASH\n" );
80     break;
81
82   case TEL_LS_DOUBLE_DOT_DASH:
83     fprintf( stdout, "TelPolylineType. Value = DOUBLE_DOT_DASH\n" );
84     break;
85   }
86   fprintf( stdout, "\n" );
87
88   return TSuccess;
89 }
90
91
92 static TStatus
93 PolylineTypeInquire( TSM_ELEM_DATA data, Tint n, cmn_key *k )
94 {
95   Tint i;
96
97   for( i = 0; i < n; i++ )
98   {
99     switch( k[i]->id )
100     {
101     case INQ_GET_SIZE_ID:
102       {
103         k[i]->data.ldata = sizeof( Tint );
104         break;
105       }
106     case INQ_GET_CONTENT_ID:
107       {
108         TEL_INQ_CONTENT *c;
109         Teldata         *w;
110
111         c = (tel_inq_content)k[i]->data.pdata;
112         w = c->data;
113         c->act_size = 0;
114         w->idata = data.ldata;
115         break;
116       }
117     }
118   }
119
120   return TSuccess;
121 }