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