OCC22150 Problem with GetWindowLong function on 64-bit platform
[occt.git] / src / OpenGl / OpenGl_polylcol.cxx
CommitLineData
7fd59977 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
16static TStatus PolylineColourDisplay( TSM_ELEM_DATA, Tint, cmn_key* );
17static TStatus PolylineColourAdd( TSM_ELEM_DATA, Tint, cmn_key* );
18static TStatus PolylineColourDelete( TSM_ELEM_DATA, Tint, cmn_key* );
19static TStatus PolylineColourPrint( TSM_ELEM_DATA, Tint, cmn_key* );
20static TStatus PolylineColourInquire( TSM_ELEM_DATA, Tint, cmn_key* );
21
22static TStatus (*MtdTbl[])( TSM_ELEM_DATA, Tint, cmn_key* ) =
23{
24 0, /* PickTraverse */
25 PolylineColourDisplay,
26 PolylineColourAdd,
27 PolylineColourDelete,
28 PolylineColourPrint,
29 PolylineColourInquire
30};
31
32
33MtblPtr
34TelPolylineColourInitClass( TelType *el )
35{
36 *el = TelPolylineColour;
37 return MtdTbl;
38}
39
40static TStatus
41PolylineColourAdd( TSM_ELEM_DATA d, Tint n, cmn_key *k )
42{
43 tel_colour data = new TEL_COLOUR();
44 if( !data )
45 return TFailure;
46
47 *data = *(tel_colour)(k[0]->data.pdata);
48
49 ((tsm_elem_data)(d.pdata))->pdata = data;
50
51 return TSuccess;
52}
53
54
55static TStatus
56PolylineColourDisplay( TSM_ELEM_DATA data, Tint n, cmn_key *k )
57{
58 tel_colour d;
59 CMN_KEY key;
60
61 d = (tel_colour)data.pdata;
62
63 key.id = TelPolylineColour;
64 key.data.pdata = d;
65 TsmSetAttri( 1, &key );
66
67 return TSuccess;
68}
69
70
71static TStatus
72PolylineColourDelete( TSM_ELEM_DATA data, Tint n, cmn_key *k )
73{
74 if (data.pdata)
75 delete data.pdata;
76 return TSuccess;
77}
78
79
80
81
82static TStatus
83PolylineColourPrint( TSM_ELEM_DATA data, Tint n, cmn_key *k )
84{
85 tel_colour p;
86
87 p = (tel_colour)data.pdata;
88
89 fprintf( stdout, "TelPolylineColour. R = %g, G = %g, B = %g\n",
90 p->rgb[0], p->rgb[1], p->rgb[2] );
91 fprintf( stdout, "\n" );
92
93 return TSuccess;
94}
95
96
97static TStatus
98PolylineColourInquire( TSM_ELEM_DATA data, Tint n, cmn_key *k )
99{
100 Tint i;
101 tel_colour col;
102
103 col = (tel_colour)data.pdata;
104
105 for( i = 0; i < n; i++ )
106 {
107 switch( k[i]->id )
108 {
109 case INQ_GET_SIZE_ID:
110 {
111 k[i]->data.ldata = sizeof( Tint );
112 break;
113 }
114 case INQ_GET_CONTENT_ID:
115 {
116 TEL_INQ_CONTENT *c;
117 Teldata *w;
118
119 c = (tel_inq_content)k[i]->data.pdata;
120 w = c->data;
121 c->act_size = 0;
122 w->gnl_colour = *col;
123 break;
124 }
125 }
126 }
127
128 return TSuccess;
129}