7fd59977 |
1 | #ifndef OPENGL_TELEM_INQUIRE_H |
2 | #define OPENGL_TELEM_INQUIRE_H |
3 | |
4 | typedef struct { |
5 | Tint number; /* number of Tints in list */ |
6 | Tint *integers; /* list of integers */ |
7 | } Tintlst; |
8 | |
9 | typedef struct { |
10 | Tint x_dim; /* dimension (number of divisions) along X */ |
11 | Tint y_dim; /* dimension (number of divisions) along Y */ |
12 | } Tdim; |
13 | |
14 | typedef 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 | |
143 | typedef 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 */ |
156 | extern TStatus TelInqCurElemTypeSize( TelType *, Tint * ); |
157 | |
158 | /* size of buffer, buffer, actual_size, data */ |
159 | extern TStatus TelInqCurElemContent( Tint, Tchar *, Tint *, Teldata * ); |
160 | |
161 | #endif |