0022819: Redesign of OpenGl driver
[occt.git] / src / OpenGl / OpenGl_degmodel.cxx
1 #include <OpenGl_tgl_all.hxx>
2 #include <OpenGl_cmn_varargs.hxx>
3 #include <OpenGl_telem_attri.hxx>
4 #include <OpenGl_tsm.hxx>
5 #include <OpenGl_telem.hxx>
6 #include <OpenGl_telem_inquire.hxx>
7 #include <OpenGl_degeneration.hxx>
8
9 #include <stdio.h>
10
11 static TStatus DegenerateModelAdd     ( TSM_ELEM_DATA, Tint, cmn_key* );
12 static TStatus DegenerateModelDelete  ( TSM_ELEM_DATA, Tint, cmn_key* );
13 static TStatus DegenerateModelPrint   ( TSM_ELEM_DATA, Tint, cmn_key* );
14 static TStatus DegenerateModelInquire ( TSM_ELEM_DATA, Tint, cmn_key* );
15
16 static TStatus ( *MtdTbl[] ) ( TSM_ELEM_DATA, Tint, cmn_key* ) = {
17
18   NULL,                   /* PickTraverse    */
19   NULL,                   /* DisplayTraverse */
20   DegenerateModelAdd,     /* Add             */
21   DegenerateModelDelete,  /* Delete          */
22   DegenerateModelPrint,   /* Print           */
23   DegenerateModelInquire  /* Inquire         */
24
25 };
26
27
28 MtblPtr TelDegenerateModelInitClass ( TelType* el ) {
29
30   *el = TelDegenerationMode;
31
32   return MtdTbl;
33
34 }  /* end TelDegenerateModelInitClass */
35
36 static TStatus DegenerateModelAdd ( TSM_ELEM_DATA d, Tint n, cmn_key* k ) {
37
38   PDEGENERATION p = new DEGENERATION();
39   //( PDEGENERATION )cmn_getmem (  1, sizeof( DEGENERATION ), 1  );
40   //cmn_memcpy<DEGENERATION> (  p, k[ 0 ] -> data.pdata, 1  );
41   memcpy( p, k[ 0 ] -> data.pdata, sizeof(DEGENERATION) );
42
43   ( ( tsm_elem_data )( d.pdata )  ) -> pdata = p;
44
45   return TSuccess;
46
47 }  /* end DegenerateModelAdd */
48
49 static TStatus DegenerateModelDelete  ( TSM_ELEM_DATA d, Tint n, cmn_key* k ) {
50
51   //cmn_freemem ( d.pdata );
52   delete d.pdata;
53
54   return TSuccess;
55
56 }  /* end DegenerateModelDelete */
57
58 static TStatus DegenerateModelPrint ( TSM_ELEM_DATA data, Tint n, cmn_key* k ) {
59
60   char* ptr;
61
62   switch ( data.ldata ) {
63
64   case 0:
65
66     ptr = "TelDegenerateModel. Value = NONE\n";
67
68     break;
69
70   case 1:
71
72     ptr = "TelDegenerateModel. Value = TINY\n";
73
74     break;
75
76   case 2:
77
78     ptr = "TelDegenerateModel. Value = WIREFRAME\n";
79
80     break;
81
82   case 3:
83
84     ptr = "TelDegenerateModel. Value = MARKER\n";
85
86     break;
87
88   case 4:
89
90     ptr = "TelDegenerateModel. Value = BBOX\n";
91
92     break;
93
94   case 5:
95
96     ptr = "TelDegenerateModel. Value = AUTO\n";
97
98   default:
99
100     ptr = "TelDegenerateModel. Value = <invalid>\n";
101
102   }  /* end switch */
103
104   fprintf ( stdout, ptr );
105
106   return TSuccess;
107
108 }  /* end DegenerateModelPrint */
109
110
111 static TStatus DegenerateModelInquire ( TSM_ELEM_DATA data, Tint n, cmn_key* k ) {
112
113   Tint i;
114
115   for ( i = 0; i < n; ++i )
116
117     switch ( k[ i ] -> id ) {
118
119    case INQ_GET_SIZE_ID:
120
121      k[ i ] -> data.ldata = sizeof( Tint );
122
123      break;
124
125    case INQ_GET_CONTENT_ID: {
126
127      TEL_INQ_CONTENT* c;
128      Teldata*         w;
129
130      c = (tel_inq_content)k[i]->data.pdata;
131      w = c -> data;
132      c -> act_size = 0;
133      w -> idata    = data.ldata;
134
135                             } break;
136
137     }  /* end switch */
138
139     return TSuccess;
140
141 }  /* end DegenerateModelInquire */