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;
120 IMPLEMENT_MEMORY_OPERATORS
122 typedef TEL_TEXT_DATA* tel_text_data;
124 struct TEL_ALIGN_DATA
128 IMPLEMENT_MEMORY_OPERATORS
130 typedef TEL_ALIGN_DATA* tel_align_data;
152 /* Proprietes materiels */
155 float amb, diff, spec, emsv;
158 int isamb, isdiff, isspec, isemsv;
160 TEL_COLOUR speccol, difcol, ambcol, emscol, matcol;
161 IMPLEMENT_MEMORY_OPERATORS
163 typedef TEL_SURF_PROP* tel_surf_prop;
172 /* Interior Styles */
178 #define TSM_HIDDENLINE 6
180 /* Standard Line Styles */
181 #define TEL_LS_SOLID 0
183 #define TEL_LS_DASH_DOT 3
184 #define TEL_LS_DASH 1
185 #define TEL_LS_DOUBLE_DOT_DASH 4
187 #define TEL_LS_USER_DEF_START 10
189 /* Standard Hatch Styles */
190 #define TEL_HS_SOLID 0
191 #define TEL_HS_CROSS 1
192 #define TEL_HS_CROSS_SPARSE 2
193 #define TEL_HS_GRID 3
194 #define TEL_HS_GRID_SPARSE 4
195 #define TEL_HS_DIAG_45 5
196 #define TEL_HS_DIAG_135 6
197 #define TEL_HS_HORIZONTAL 7
198 #define TEL_HS_VERTICAL 8
199 #define TEL_HS_DIAG_45_SPARSE 9
200 #define TEL_HS_DIAG_135_SPARSE 10
201 #define TEL_HS_HORIZONTAL_SPARSE 11
202 #define TEL_HS_VERTICAL_SPARSE 12
204 #define TEL_HS_USER_DEF_START 15
206 #define TEL_SHAPE_UNKNOWN 1
207 #define TEL_SHAPE_COMPLEX 2
208 #define TEL_SHAPE_CONCAVE 3
209 #define TEL_SHAPE_CONVEX 4
211 /* Key ids for area type primitives */
212 #define NUM_FACETS_ID 1 /* key.data.ldata contains no. of facets */
213 #define FNORMALS_ID 2 /* key.data.pdata is array of TEL_POINT */
214 #define FACET_COLOUR_VALS_ID 3 /* key.data.pdata is array of TSM_COLOUR */
215 #define VERTICES_ID 4 /* key.data.pdata is array of TEL_POINT */
216 #define VERTEX_COLOUR_VALS_ID 5 /* key.data.pdata is array of TSM_COLOUR */
217 #define VNORMALS_ID 6 /* key.data.pdata is array of TEL_POINT */
218 #define NUM_VERTICES_ID 7 /* key.data.ldata is num of vertices */
219 #define SHAPE_FLAG_ID 8 /* key.data.ldata is shape flag */
220 #define EDGE_DATA_ID 9 /* key.data.pdata is edge data (Tint*) */
221 #define CONNECTIVITY_ID 10 /* key.data.pdata is conn data (Tint*) */
222 #define BOUNDS_DATA_ID 11 /* key.data.pdata is bounds data (Tint*) */
223 #define NUM_LINES_ID 12 /* key.data.ldata is number of lines */
224 #define NUM_ROWS_ID 13 /* key.data.ldata is number of rows */
225 #define NUM_COLUMNS_ID 14 /* key.data.ldata is number of columns */
226 #define VTEXTURECOORD_ID 15 /* key.data.pdata is array of TEL_TEXTURE_COORD */
228 #define PARRAY_ID 16 /* key.data.pdata is a primitive array */
230 /* Key ids for text primitives */
231 #define TEXT_ATTACH_PT_ID 1 /* key.data.pdata contains tel_point */
232 #define TEXT_STRING_ID 2 /* key.data.pdata contains Tchar * */
235 /* Key ids for curve primitives */
236 #define CURVE_TYPE_ID 1 /* key.data.ldata is curve type */
242 #define CURVE_NUM_POINTS_ID 2 /* key.data.ldata is num of points */
243 #define CURVE_VERTICES_ID 3 /* key.data.pdata is array of TEL_POINT */
246 /* Polymarker Types */
247 #define TEL_PM_PLUS 0
248 #define TEL_PM_STAR 1
249 #define TEL_PM_CROSS 2
250 #define TEL_PM_CIRC 3
252 #define TEL_PM_USERDEFINED 5
254 #define TEL_PM_USER_DEF_START 7
256 #define TEL_SD_SHADING 0
257 #define TEL_SD_TEXTURE 1
259 #define TEL_SM_FLAT 1
260 #define TEL_SM_GOURAUD 2
262 #define TEL_POLYMARKER_FONT (short)1
264 /* Standard Lighting Models */
265 #define TEL_FRONT_BACK_LM 1
267 /* Standard Materials */
268 #define TEL_FRONT_MATERIAL 1
269 #define TEL_BACK_MATERIAL 2
272 #define TEL_FAFLAG_NONE 1
273 #define TEL_FAFLAG_NORMAL 2
274 #define TEL_FAFLAG_COLOUR 3
275 #define TEL_FAFLAG_COLOURNORMAL 4
278 #define TEL_FA_NONE TEL_FAFLAG_NONE
279 #define TEL_FA_NORMAL TEL_FAFLAG_NORMAL
282 #define TEL_VTFLAG_NONE 1
283 #define TEL_VTFLAG_NORMAL 2
284 #define TEL_VTFLAG_COLOUR 3
285 #define TEL_VTFLAG_COLOURNORMAL 4
288 #define TEL_VT_NONE TEL_VTFLAG_NONE
289 #define TEL_VT_NORMAL TEL_VTFLAG_NORMAL
291 /* Defbasis identifier */
293 #define TEL_CARDINAL 2
294 #define TEL_BSPLINE 3
298 TelBezierCurve = TEL_BEZIER,
299 TelCardinalCurve = TEL_CARDINAL,
300 TelBSplineCurve = TEL_BSPLINE
310 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
311 struct TEL_POFFSET_PARAM
316 IMPLEMENT_MEMORY_OPERATORS
318 typedef TEL_POFFSET_PARAM* tel_poffset_param;
319 /* OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets */
321 /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
322 struct TEL_TRANSFORM_PERSISTENCE
328 IMPLEMENT_MEMORY_OPERATORS
330 typedef TEL_TRANSFORM_PERSISTENCE* tel_transform_persistence;
331 /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
333 #endif /* INTERFACEGRAPHIC_TELEM_H */