0022962: Invalid realization of reading and writing material in STEP.
[occt.git] / src / OpenGl / OpenGl_telem_inquire.hxx
CommitLineData
7fd59977 1#ifndef OPENGL_TELEM_INQUIRE_H
2#define OPENGL_TELEM_INQUIRE_H
3
4typedef struct {
5 Tint number; /* number of Tints in list */
6 Tint *integers; /* list of integers */
7} Tintlst;
8
9typedef struct {
10 Tint x_dim; /* dimension (number of divisions) along X */
11 Tint y_dim; /* dimension (number of divisions) along Y */
12} Tdim;
13
14typedef union
15{
16 Tint idata; /* integer valued data */
17 Tfloat fdata; /* float valued data */
18 Tchar *data; /* %%TEMP - use for application data for now */
19 TEL_POINT *pts3; /* list of 3d points */
20
21 struct
22 {
23 TEL_POINT ref_pt; /* reference text point */
24 TEL_POINT anno; /* annotation pt/offset */
13a22457 25 Techar *string; /* text string */
7fd59977 26 } atext3;
27
28 Tint size;
29 Tint interior_style; /* interior style */
30 Tint edge_flag; /* edge flag */
31 Tintlst name_set; /* name sets */
32 Tmatrix3 mat3; /* 3d transformation matrix */
33
34 struct
35 {
36 Tmatrix3 mat3; /* 3d transformation matrix */
37 TComposeType compose_type; /* composition type */
38 } local_xform_3;
39
40 struct
41 {
42 Tint vrtflag; /* per vertex data flag */
43 Tint num_bounds; /* number of lines in the set */
44 Tint *bounds; /* list of number of points in each bound */
45 TEL_POINT *points; /* array of points */
46 TEL_COLOUR *colours; /* array of vertex colour values */
47 } lineset3data;
48
49 struct
50 {
51 Tint shpflag; /* primitive shape flag */
52 Tint faflag; /* per fill area data flag */
53 Tint vrtflag; /* per vertex data flag */
54 TEL_POINT *gnormal; /* geometric normal */
55 Tint num_points; /* number of vertices in fill area */
56 tel_colour facet_colour_val; /* facet colour value */
57 TEL_POINT *points; /* array of points */
58 TEL_COLOUR *colours; /* array of vertex colour values */
59 TEL_POINT *vnormals; /* array of vertex normals */
60 } fillarea3data;
61
62 struct
63 {
64 Tint shpflag; /* primitive shape flag */
65 Tint faflag; /* per fill area data flag */
66 Tint vrtflag; /* per vertex data flag */
67 Tint edgflag; /* edge flag */
68 TEL_POINT *gnormal; /* geometric normal */
69 Tint *edgvis; /* edge visibility per edge */
70 Tint num_bounds; /* number of bounds in fill area set */
71 tel_colour facet_colour_val; /* facet colour value */
72 Tint *bounds; /* bounds */
73 TEL_POINT *points; /* array of points */
74 TEL_COLOUR *colours; /* array of vertex colour values */
75 TEL_POINT *vnormals; /* array of vertex normals */
76 } fillareaset3data;
77
78 struct
79 {
80 Tint fctflag; /* per facet data flag */
81 Tint vrtflag; /* per vertex data flag */
82 Tint num_facets; /* number of facets, (num_points-2) */
83 TEL_POINT *gnormals; /* geometric normals */
84 TEL_COLOUR *facet_colour_vals; /* facet colour value */
85 TEL_POINT *points; /* array of points for all bounds */
86 TEL_COLOUR *colours; /* array of vertex colour values */
87 TEL_POINT *vnormals; /* array of vertex normals for all bounds */
88 } trianglestrip3data;
89
90 struct
91 {
92 Tint shpflag; /* primitive shape flag */
93 Tint fctflag; /* per facet data flag */
94 Tint vrtflag; /* per vertex data flag */
95 Tdim dim; /* number of cols by rows */
96 TEL_POINT *gnormals; /* geometric normals */
97 TEL_COLOUR *facet_colour_vals; /* facet colour value */
98 TEL_POINT *points; /* array of points for all bounds */
99 TEL_COLOUR *colours; /* array of vertex colour values */
100 TEL_POINT *vnormals; /* array of vertex normals for all bounds */
101 } quadmesh3data;
102
103 struct
104 {
105 Tint shpflag; /* primitive shape flag */
106 Tint fctflag; /* per facet data flag */
107 Tint vrtflag; /* per vertex data flag */
108 Tint edgflag; /* per edge data flag */
109 TEL_POINT *gnormals; /* geometric normals */
110 Tint *edgvis; /* array of edge visibility flags for all edges */
111 Tint num_vertices;/*number of fill areas in the set */
112 TEL_COLOUR *facet_colour_vals; /* facet colour values */
113 TEL_POINT *points; /* array of vertices */
114 TEL_COLOUR *colours; /* array of vertex colour values */
115 TEL_POINT *vnormals; /* array of vertex normals for all vertices */
116 Tint num_bounds; /* number of bounds */
117 Tint *bounds; /* list of number of points in each bound */
118 Tint *indices; /* list of vertex indices for all bounds */
119 } indexedpolygons3data;
120
121 /* depth cue index */ /* -- idata -- */
122 /* surface properties */
123 /* back surface properties */
124 TEL_SURF_PROP surf_prop; /* Front or back surface properties */
125 /* interior shading method */ /* -- idata -- */
126 /* interior lighting method */ /* -- idata -- */
127
128 struct
129 {
130 Tintlst on; /* list of activated lights */
131 Tintlst off; /* list of deactivated lights */
132 } light_source_state;
133
134 struct {
135 Tint distinguish; /* distinguish */
136 TelCullMode cull; /* culling mode */
137 } face_processing_mode;
138
139 /* polyline, polymarker, text, interior, back interior, edge colour */
140 TEL_COLOUR gnl_colour;
141} Teldata;
142
143typedef struct
144{
145 Tint size;
146 Tint act_size;
147 Tchar *buf;
148 Teldata *data;
149} TEL_INQ_CONTENT, *tel_inq_content;
150
151/* keys to be used for inquiry */
152#define INQ_GET_SIZE_ID 1 /* key.data.ldata will contain size */
153#define INQ_GET_CONTENT_ID 2 /* key.data.pdata is pointer to Teldata */
154
155/* element, size */
156extern TStatus TelInqCurElemTypeSize( TelType *, Tint * );
157
158/* size of buffer, buffer, actual_size, data */
159extern TStatus TelInqCurElemContent( Tint, Tchar *, Tint *, Teldata * );
160
161#endif