2 File: InterfaceGraphic_telem.h
4 16/06/2000 : ATS : G005 : Copied from OpenGl_telem.h to support required
5 for InterfaceGraphic_Parray.hxx definitions
7 22/03/2004 : SAN : OCC4895 High-level interface for controlling polygon offsets
9 20/05/2005 : SAN : OCC8854 Number of color components increased to include alpha value
13 #ifndef INTERFACEGRAPHIC_TELEM_H
14 #define INTERFACEGRAPHIC_TELEM_H
16 #include <Standard.hxx>
17 #include <InterfaceGraphic_tgl_all.hxx>
21 #if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && ! defined(typename)
22 #define IMPLEMENT_MEMORY_OPERATORS \
23 void* operator new (size_t size) {\
24 void* p = malloc( size );\
28 void operator delete(void* p) {\
33 #define IMPLEMENT_MEMORY_OPERATORS \
34 void* operator new (size_t size) {\
35 void* p = malloc( size );\
39 void* operator new[] (size_t size) {\
40 void* p = malloc( size );\
44 void operator delete(void* p) { \
47 void operator delete[](void* p) {\
52 struct TEL_TEXTURE_COORD
55 IMPLEMENT_MEMORY_OPERATORS
58 typedef TEL_TEXTURE_COORD* tel_texture_coord;
63 IMPLEMENT_MEMORY_OPERATORS
64 /*void* operator new (size_t size) {
65 void* p = malloc( size );
69 void* operator new[] (size_t size) {
70 void* p = malloc( size );
74 void operator delete(void* p) {
77 void operator delete[](void* p) {
81 typedef TEL_POINT* tel_point;
85 /* OCC8854: san -- number of color components increased to include alpha value */
87 IMPLEMENT_MEMORY_OPERATORS
89 typedef TEL_COLOUR* tel_colour;
95 IMPLEMENT_MEMORY_OPERATORS
97 typedef TEL_POINT_DATA* tel_point_data;
103 IMPLEMENT_MEMORY_OPERATORS
105 typedef TEL_TINT_DATA* tel_tint_data;
107 struct TEL_MATRIX3_DATA
111 IMPLEMENT_MEMORY_OPERATORS
113 typedef TEL_MATRIX3_DATA* tel_matrix3_data;
115 struct TEL_ALIGN_DATA
119 IMPLEMENT_MEMORY_OPERATORS
121 typedef TEL_ALIGN_DATA* tel_align_data;
143 /* Proprietes materiels */
146 float amb, diff, spec, emsv;
149 int isamb, isdiff, isspec, isemsv;
151 TEL_COLOUR speccol, difcol, ambcol, emscol, matcol;
152 IMPLEMENT_MEMORY_OPERATORS
154 typedef TEL_SURF_PROP* tel_surf_prop;
163 /* Interior Styles */
169 #define TSM_HIDDENLINE 6
171 /* Standard Line Styles */
172 #define TEL_LS_SOLID 0
174 #define TEL_LS_DASH_DOT 3
175 #define TEL_LS_DASH 1
176 #define TEL_LS_DOUBLE_DOT_DASH 4
178 #define TEL_LS_USER_DEF_START 10
180 /* Standard Hatch Styles */
181 #define TEL_HS_SOLID 0
182 #define TEL_HS_CROSS 1
183 #define TEL_HS_CROSS_SPARSE 2
184 #define TEL_HS_GRID 3
185 #define TEL_HS_GRID_SPARSE 4
186 #define TEL_HS_DIAG_45 5
187 #define TEL_HS_DIAG_135 6
188 #define TEL_HS_HORIZONTAL 7
189 #define TEL_HS_VERTICAL 8
190 #define TEL_HS_DIAG_45_SPARSE 9
191 #define TEL_HS_DIAG_135_SPARSE 10
192 #define TEL_HS_HORIZONTAL_SPARSE 11
193 #define TEL_HS_VERTICAL_SPARSE 12
195 #define TEL_HS_USER_DEF_START 15
197 #define TEL_SHAPE_UNKNOWN 1
198 #define TEL_SHAPE_COMPLEX 2
199 #define TEL_SHAPE_CONCAVE 3
200 #define TEL_SHAPE_CONVEX 4
202 /* Key ids for area type primitives */
203 #define NUM_FACETS_ID 1 /* key.data.ldata contains no. of facets */
204 #define FNORMALS_ID 2 /* key.data.pdata is array of TEL_POINT */
205 #define FACET_COLOUR_VALS_ID 3 /* key.data.pdata is array of TSM_COLOUR */
206 #define VERTICES_ID 4 /* key.data.pdata is array of TEL_POINT */
207 #define VERTEX_COLOUR_VALS_ID 5 /* key.data.pdata is array of TSM_COLOUR */
208 #define VNORMALS_ID 6 /* key.data.pdata is array of TEL_POINT */
209 #define NUM_VERTICES_ID 7 /* key.data.ldata is num of vertices */
210 #define SHAPE_FLAG_ID 8 /* key.data.ldata is shape flag */
211 #define EDGE_DATA_ID 9 /* key.data.pdata is edge data (Tint*) */
212 #define CONNECTIVITY_ID 10 /* key.data.pdata is conn data (Tint*) */
213 #define BOUNDS_DATA_ID 11 /* key.data.pdata is bounds data (Tint*) */
214 #define NUM_LINES_ID 12 /* key.data.ldata is number of lines */
215 #define NUM_ROWS_ID 13 /* key.data.ldata is number of rows */
216 #define NUM_COLUMNS_ID 14 /* key.data.ldata is number of columns */
217 #define VTEXTURECOORD_ID 15 /* key.data.pdata is array of TEL_TEXTURE_COORD */
219 #define PARRAY_ID 16 /* key.data.pdata is a primitive array */
221 /* Key ids for text primitives */
222 #define TEXT_ATTACH_PT_ID 1 /* key.data.pdata contains tel_point */
223 #define TEXT_STRING_ID 2 /* key.data.pdata contains Tchar * */
226 /* Key ids for curve primitives */
227 #define CURVE_TYPE_ID 1 /* key.data.ldata is curve type */
233 #define CURVE_NUM_POINTS_ID 2 /* key.data.ldata is num of points */
234 #define CURVE_VERTICES_ID 3 /* key.data.pdata is array of TEL_POINT */
237 /* Polymarker Types */
238 #define TEL_PM_PLUS 0
239 #define TEL_PM_STAR 1
240 #define TEL_PM_CROSS 2
241 #define TEL_PM_CIRC 3
243 #define TEL_PM_USERDEFINED 5
245 #define TEL_PM_USER_DEF_START 7
247 #define TEL_SD_SHADING 0
248 #define TEL_SD_TEXTURE 1
250 #define TEL_SM_FLAT 1
251 #define TEL_SM_GOURAUD 2
253 #define TEL_POLYMARKER_FONT (short)1
255 /* Standard Lighting Models */
256 #define TEL_FRONT_BACK_LM 1
258 /* Standard Materials */
259 #define TEL_FRONT_MATERIAL 1
260 #define TEL_BACK_MATERIAL 2
263 #define TEL_FAFLAG_NONE 1
264 #define TEL_FAFLAG_NORMAL 2
265 #define TEL_FAFLAG_COLOUR 3
266 #define TEL_FAFLAG_COLOURNORMAL 4
269 #define TEL_FA_NONE TEL_FAFLAG_NONE
270 #define TEL_FA_NORMAL TEL_FAFLAG_NORMAL
273 #define TEL_VTFLAG_NONE 1
274 #define TEL_VTFLAG_NORMAL 2
275 #define TEL_VTFLAG_COLOUR 3
276 #define TEL_VTFLAG_COLOURNORMAL 4
279 #define TEL_VT_NONE TEL_VTFLAG_NONE
280 #define TEL_VT_NORMAL TEL_VTFLAG_NORMAL
282 /* Defbasis identifier */
284 #define TEL_CARDINAL 2
285 #define TEL_BSPLINE 3
289 TelBezierCurve = TEL_BEZIER,
290 TelCardinalCurve = TEL_CARDINAL,
291 TelBSplineCurve = TEL_BSPLINE
301 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
302 struct TEL_POFFSET_PARAM
307 IMPLEMENT_MEMORY_OPERATORS
309 typedef TEL_POFFSET_PARAM* tel_poffset_param;
310 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
312 /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
313 struct TEL_TRANSFORM_PERSISTENCE
319 IMPLEMENT_MEMORY_OPERATORS
321 typedef TEL_TRANSFORM_PERSISTENCE* tel_transform_persistence;
322 /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
324 #endif /* INTERFACEGRAPHIC_TELEM_H */