1 #ifndef __DOM150_TYPES_H__
2 #define __DOM150_TYPES_H__
3 
4 #include <dae/daeDomTypes.h>
5 
6 class DAE;
7 namespace ColladaDOM150 {
8 
9 typedef xsDouble domFloat;
10 typedef xsLong domInt;
11 typedef xsUnsignedLong domUint;
12 typedef xsString domSidref;
13 typedef xsNCName domSid;
14 typedef xsBooleanArray domList_of_bools;
15 typedef daeTArray<domFloat>     domList_of_floats;
16 typedef xsHexBinaryArray domList_of_hex_binary;
17 typedef daeTArray<domInt>       domList_of_ints;
18 typedef xsNameArray domList_of_names;
19 typedef xsNameArray domList_of_idrefs;
20 typedef daeTArray<domSidref>        domList_of_sidrefs;
21 typedef xsTokenArray domList_of_tokens;
22 typedef daeTArray<domUint>      domList_of_uints;
23 typedef domList_of_bools domBool2;
24 typedef domList_of_bools domBool3;
25 typedef domList_of_bools domBool4;
26 typedef domList_of_bools domBool2x2;
27 typedef domList_of_bools domBool2x3;
28 typedef domList_of_bools domBool2x4;
29 typedef domList_of_bools domBool3x2;
30 typedef domList_of_bools domBool3x3;
31 typedef domList_of_bools domBool3x4;
32 typedef domList_of_bools domBool4x2;
33 typedef domList_of_bools domBool4x3;
34 typedef domList_of_bools domBool4x4;
35 typedef domList_of_floats domFloat2;
36 typedef domList_of_floats domFloat3;
37 typedef domList_of_floats domFloat4;
38 typedef domList_of_floats domFloat7;
39 typedef domList_of_floats domFloat2x2;
40 typedef domList_of_floats domFloat2x3;
41 typedef domList_of_floats domFloat2x4;
42 typedef domList_of_floats domFloat3x2;
43 typedef domList_of_floats domFloat3x3;
44 typedef domList_of_floats domFloat3x4;
45 typedef domList_of_floats domFloat4x2;
46 typedef domList_of_floats domFloat4x3;
47 typedef domList_of_floats domFloat4x4;
48 typedef domList_of_ints domInt2;
49 typedef domList_of_ints domInt3;
50 typedef domList_of_ints domInt4;
51 typedef domList_of_ints domInt2x2;
52 typedef domList_of_ints domInt2x3;
53 typedef domList_of_ints domInt2x4;
54 typedef domList_of_ints domInt3x2;
55 typedef domList_of_ints domInt3x3;
56 typedef domList_of_ints domInt3x4;
57 typedef domList_of_ints domInt4x2;
58 typedef domList_of_ints domInt4x3;
59 typedef domList_of_ints domInt4x4;
60 typedef xsUnsignedByte domDigits;
61 typedef xsShort domMagnitude;
62 /**
63  * This urifragment_type element is used for URI reference which can only
64  * reference a resource declared within it's same document.
65  */
66 typedef xsAnyURI domUrifragment;
67 typedef domFloat4 domFx_color;
68 /**
69  * ? GEOMETRY: [default] The geometry associated with this instance_geometry
70  * or nstance_material. ? SCENE_GEOMETRY: Draw the entire scene's geometry
71  * but with this effect, not the effects or materials already associated with
72  * the geometry. This is for techniques such as shadow-buffer generation,
73  * where you might be interested only in extracting the Z value from the light.
74  * This is without regard to ordering on the assumption that ZBuffer handles
75  * order. ? SCENE_IMAGE: Draw the entire scene naturally into the render targets.
76  * Hense producing an image of the scene.  When used more then once, the later
77  * uses must include what has been rendered so far  to the backbuffer since
78  * the first render.  This is for effects that need an accurate image of the
79  * scene  to work on for effects such as postprocessing blurs.  ? FULL_SCREEN_QUAD:
80  * Positions are 0,0 to 1,1 and the UVs match.
81  */
82 typedef xsString domFx_draw;
83 typedef xsNonNegativeInteger domGl_max_lights_index;
84 typedef xsNonNegativeInteger domGl_max_clip_planes_index;
85 typedef xsNonNegativeInteger domGl_max_texture_image_units_index;
86 typedef xsFloat domGl_alpha_value;
87 typedef xsNonNegativeInteger domGles_max_lights_index;
88 typedef xsNonNegativeInteger domGles_max_clip_planes_index;
89 typedef xsNonNegativeInteger domGles_max_texture_coords_index;
90 typedef xsNonNegativeInteger domGles_max_texture_image_units_index;
91 typedef xsNonNegativeInteger domGles_texcombiner_argument_index;
92 typedef domFloat2 domDynamic_limit;
93 
94 /**
95  * An enumuerated type specifying the acceptable morph methods.
96  */
97 enum domMorph_method {
98     MORPH_METHOD_NORMALIZED,
99     MORPH_METHOD_RELATIVE,
100     MORPH_METHOD_COUNT = 2
101 };
102 
103 /**
104  * An enumerated type specifying the acceptable node types.
105  */
106 enum domNode_enum {
107     NODE_ENUM_JOINT,
108     NODE_ENUM_NODE,
109     NODE_ENUM_COUNT = 2
110 };
111 
112 /**
113  * An enumerated type specifying the acceptable sampler pre and post behavior
114  * attribute types.
115  */
116 enum domSampler_behavior {
117     SAMPLER_BEHAVIOR_CONSTANT,
118     SAMPLER_BEHAVIOR_CYCLE,
119     SAMPLER_BEHAVIOR_CYCLE_RELATIVE,
120     SAMPLER_BEHAVIOR_GRADIENT,
121     SAMPLER_BEHAVIOR_OSCILLATE,
122     SAMPLER_BEHAVIOR_UNDEFINED,
123     SAMPLER_BEHAVIOR_COUNT = 6
124 };
125 
126 /**
127  * An enumerated type specifying the acceptable up-axis values.
128  */
129 enum domUp_axis {
130     UP_AXIS_X_UP,
131     UP_AXIS_Y_UP,
132     UP_AXIS_Z_UP,
133     UP_AXIS_COUNT = 3
134 };
135 
136 /**
137  * An enumerated type specifying the acceptable document versions.
138  */
139 enum domVersion {
140     VERSION_1_5_0,
141     VERSION_COUNT = 1
142 };
143 
144 enum domImage_face {
145     IMAGE_FACE_POSITIVE_X,
146     IMAGE_FACE_NEGATIVE_X,
147     IMAGE_FACE_POSITIVE_Y,
148     IMAGE_FACE_NEGATIVE_Y,
149     IMAGE_FACE_POSITIVE_Z,
150     IMAGE_FACE_NEGATIVE_Z,
151     IMAGE_FACE_COUNT = 6
152 };
153 
154 /**
155  * The per-texel layout of the format.  The length of the string indicate
156  * how many channels there are and the letter respresents the name of the
157  * channel.  There are typically 0 to 4 channels.
158  */
159 enum domImage_format_hint_channels {
160     IMAGE_FORMAT_HINT_CHANNELS_RGB,     /**< RGB color  map */
161     IMAGE_FORMAT_HINT_CHANNELS_RGBA,        /**< RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power */
162     IMAGE_FORMAT_HINT_CHANNELS_RGBE,        /**< RGB color + shared exponent for HDR */
163     IMAGE_FORMAT_HINT_CHANNELS_L,       /**< Luminance map often used for light mapping */
164     IMAGE_FORMAT_HINT_CHANNELS_LA,      /**< Luminance+Alpha map often used for light mapping */
165     IMAGE_FORMAT_HINT_CHANNELS_D,       /**< Depth map often used for displacement, parellax, relief, or shadow mapping.  Depth is depth seperate from Luminace to make special hardware considerations */
166     IMAGE_FORMAT_HINT_CHANNELS_COUNT = 6
167 };
168 
169 /**
170  * Each channel of the texel has a precision.  Typically these are all linked
171  * together.  An exact format lay lower the precision of an individual channel
172  * but applying a higher precision by linking the channels together may still
173  * convey the same information.
174  */
175 enum domImage_format_hint_precision {
176     IMAGE_FORMAT_HINT_PRECISION_DEFAULT,        /**< Designer does not care as long as it provides "reasonable" percision and performance */
177     IMAGE_FORMAT_HINT_PRECISION_LOW,        /**< For integers this typically represents 8 bits.  For floats typically 16 bits. */
178     IMAGE_FORMAT_HINT_PRECISION_MID,        /**< For integers this typically represents 8 to 24 bits.  For floats typically 16 to 32 bits. */
179     IMAGE_FORMAT_HINT_PRECISION_HIGH,       /**< For integers this typically represents 16 to 32 bits.  For floats typically 24 to 32 bits. */
180     IMAGE_FORMAT_HINT_PRECISION_MAX,        /**< Typically 32 bits or 64 bits if available.  64 bit has been seperated into it's own catagory beyond HIGH because it typically has significant performance impact and is beyond what non CAD software considers high percision. */
181     IMAGE_FORMAT_HINT_PRECISION_COUNT = 5
182 };
183 
184 /**
185  * Each channel represents a range of values. Some example ranges are signed
186  * or unsigned integers, or between between a clamped range such as 0.0f to
187  * 1.0f, or high dynamic range via floating point
188  */
189 enum domImage_format_hint_range {
190     IMAGE_FORMAT_HINT_RANGE_SNORM,      /**< Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats. */
191     IMAGE_FORMAT_HINT_RANGE_UNORM,      /**< Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats. */
192     IMAGE_FORMAT_HINT_RANGE_SINT,       /**< Format is representing signed integer numbers.  (ex. 8bits = -128 to 127) */
193     IMAGE_FORMAT_HINT_RANGE_UINT,       /**< Format is representing unsigned integer numbers.  (ex. 8bits = 0 to 255) */
194     IMAGE_FORMAT_HINT_RANGE_FLOAT,      /**< Format should support full floating point ranges.  High precision is expected to be 32bit. Mid precision may be 16 to 32 bit.  Low precision is expected to be 16 bit. */
195     IMAGE_FORMAT_HINT_RANGE_COUNT = 5
196 };
197 
198 /**
199  * The legal values for the mode attribute on the altitute element in a  geographic_location
200  * element.
201  */
202 enum domAltitude_mode {
203     ALTITUDE_MODE_absolute,
204     ALTITUDE_MODE_relativeToGround,
205     ALTITUDE_MODE_COUNT = 2
206 };
207 
208 enum domFx_opaque {
209     FX_OPAQUE_A_ONE,        /**< When a transparent opaque attribute is set to A_ONE, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 1.0 is opaque in this mode. */
210     FX_OPAQUE_A_ZERO,       /**< When a transparent opaque attribute is set to A_ZERO, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 0.0 is opaque in this mode. */
211     FX_OPAQUE_RGB_ONE,      /**< When a transparent opaque attribute is set to RGB_ONE, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 1.0 is opaque in this mode. */
212     FX_OPAQUE_RGB_ZERO,     /**< When a transparent opaque attribute is set to RGB_ZERO, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 0.0 is opaque in this mode. */
213     FX_OPAQUE_COUNT = 4
214 };
215 
216 enum domFx_sampler_wrap {
217     FX_SAMPLER_WRAP_WRAP,       /**< Tile the texture at every integer junction. For example, for u values between 0 and 3, the texture is repeated three times; no mirroring is performed */
218     FX_SAMPLER_WRAP_CLAMP,      /**< Same as CLAMP_TO_EDGE.  Texture coordinates reaching or exceeding the range [0.0, 1.0] are set just within 0.0 or 1.0 so that the boarder is not sampled */
219     FX_SAMPLER_WRAP_BORDER,     /**< Much like clamp except texture coordinates outside the range [0.0, 1.0] are set to the border color */
220     FX_SAMPLER_WRAP_MIRROR,     /**< texture is flipped at every integer junction. For u values between 0 and 1, for example, the texture is addressed normally; between 1 and 2, the texture is flipped (mirrored); between 2 and 3, the texture is normal again; and so on. */
221     FX_SAMPLER_WRAP_MIRROR_ONCE,        /**< Takes the absolute value of the texture coordinate (thus, mirroring around 0), and then clamps to the maximum value */
222     FX_SAMPLER_WRAP_COUNT = 5
223 };
224 
225 enum domFx_sampler_min_filter {
226     FX_SAMPLER_MIN_FILTER_NEAREST,
227     FX_SAMPLER_MIN_FILTER_LINEAR,
228     FX_SAMPLER_MIN_FILTER_ANISOTROPIC,
229     FX_SAMPLER_MIN_FILTER_COUNT = 3
230 };
231 
232 enum domFx_sampler_mag_filter {
233     FX_SAMPLER_MAG_FILTER_NEAREST,
234     FX_SAMPLER_MAG_FILTER_LINEAR,
235     FX_SAMPLER_MAG_FILTER_COUNT = 2
236 };
237 
238 enum domFx_sampler_mip_filter {
239     FX_SAMPLER_MIP_FILTER_NONE,
240     FX_SAMPLER_MIP_FILTER_NEAREST,
241     FX_SAMPLER_MIP_FILTER_LINEAR,
242     FX_SAMPLER_MIP_FILTER_COUNT = 3
243 };
244 
245 enum domFx_modifier {
246     FX_MODIFIER_CONST,
247     FX_MODIFIER_UNIFORM,
248     FX_MODIFIER_VARYING,
249     FX_MODIFIER_STATIC,
250     FX_MODIFIER_VOLATILE,
251     FX_MODIFIER_EXTERN,
252     FX_MODIFIER_SHARED,
253     FX_MODIFIER_COUNT = 7
254 };
255 
256 enum domFx_pipeline_stage {
257     FX_PIPELINE_STAGE_TESSELLATION,
258     FX_PIPELINE_STAGE_VERTEX,
259     FX_PIPELINE_STAGE_GEOMETRY,
260     FX_PIPELINE_STAGE_FRAGMENT,
261     FX_PIPELINE_STAGE_COUNT = 4
262 };
263 
264 enum domGl_blend {
265     GL_BLEND_ZERO = 0x0,
266     GL_BLEND_ONE = 0x1,
267     GL_BLEND_SRC_COLOR = 0x0300,
268     GL_BLEND_ONE_MINUS_SRC_COLOR = 0x0301,
269     GL_BLEND_DEST_COLOR = 0x0306,
270     GL_BLEND_ONE_MINUS_DEST_COLOR = 0x0307,
271     GL_BLEND_SRC_ALPHA = 0x0302,
272     GL_BLEND_ONE_MINUS_SRC_ALPHA = 0x0303,
273     GL_BLEND_DST_ALPHA = 0x0304,
274     GL_BLEND_ONE_MINUS_DST_ALPHA = 0x0305,
275     GL_BLEND_CONSTANT_COLOR = 0x8001,
276     GL_BLEND_ONE_MINUS_CONSTANT_COLOR = 0x8002,
277     GL_BLEND_CONSTANT_ALPHA = 0x8003,
278     GL_BLEND_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
279     GL_BLEND_SRC_ALPHA_SATURATE = 0x0308,
280     GL_BLEND_COUNT = 15
281 };
282 
283 enum domGl_face {
284     GL_FACE_FRONT = 0x0404,
285     GL_FACE_BACK = 0x0405,
286     GL_FACE_FRONT_AND_BACK = 0x0408,
287     GL_FACE_COUNT = 3
288 };
289 
290 enum domGl_blend_equation {
291     GL_BLEND_EQUATION_FUNC_ADD = 0x8006,
292     GL_BLEND_EQUATION_FUNC_SUBTRACT = 0x800A,
293     GL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT = 0x800B,
294     GL_BLEND_EQUATION_MIN = 0x8007,
295     GL_BLEND_EQUATION_MAX = 0x8008,
296     GL_BLEND_EQUATION_COUNT = 5
297 };
298 
299 enum domGl_func {
300     GL_FUNC_NEVER = 0x0200,
301     GL_FUNC_LESS = 0x0201,
302     GL_FUNC_LEQUAL = 0x0203,
303     GL_FUNC_EQUAL = 0x0202,
304     GL_FUNC_GREATER = 0x0204,
305     GL_FUNC_NOTEQUAL = 0x0205,
306     GL_FUNC_GEQUAL = 0x0206,
307     GL_FUNC_ALWAYS = 0x0207,
308     GL_FUNC_COUNT = 8
309 };
310 
311 enum domGl_stencil_op {
312     GL_STENCIL_OP_KEEP = 0x1E00,
313     GL_STENCIL_OP_ZERO = 0x0,
314     GL_STENCIL_OP_REPLACE = 0x1E01,
315     GL_STENCIL_OP_INCR = 0x1E02,
316     GL_STENCIL_OP_DECR = 0x1E03,
317     GL_STENCIL_OP_INVERT = 0x150A,
318     GL_STENCIL_OP_INCR_WRAP = 0x8507,
319     GL_STENCIL_OP_DECR_WRAP = 0x8508,
320     GL_STENCIL_OP_COUNT = 8
321 };
322 
323 enum domGl_material {
324     GL_MATERIAL_EMISSION = 0x1600,
325     GL_MATERIAL_AMBIENT = 0x1200,
326     GL_MATERIAL_DIFFUSE = 0x1201,
327     GL_MATERIAL_SPECULAR = 0x1202,
328     GL_MATERIAL_AMBIENT_AND_DIFFUSE = 0x1602,
329     GL_MATERIAL_COUNT = 5
330 };
331 
332 enum domGl_fog {
333     GL_FOG_LINEAR = 0x2601,
334     GL_FOG_EXP = 0x0800,
335     GL_FOG_EXP2 = 0x0801,
336     GL_FOG_COUNT = 3
337 };
338 
339 enum domGl_fog_coord_src {
340     GL_FOG_COORD_SRC_FOG_COORDINATE = 0x8451,
341     GL_FOG_COORD_SRC_FRAGMENT_DEPTH = 0x8452,
342     GL_FOG_COORD_SRC_COUNT = 2
343 };
344 
345 enum domGl_front_face {
346     GL_FRONT_FACE_CW = 0x0900,
347     GL_FRONT_FACE_CCW = 0x0901,
348     GL_FRONT_FACE_COUNT = 2
349 };
350 
351 enum domGl_light_model_color_control {
352     GL_LIGHT_MODEL_COLOR_CONTROL_SINGLE_COLOR = 0x81F9,
353     GL_LIGHT_MODEL_COLOR_CONTROL_SEPARATE_SPECULAR_COLOR = 0x81FA,
354     GL_LIGHT_MODEL_COLOR_CONTROL_COUNT = 2
355 };
356 
357 enum domGl_logic_op {
358     GL_LOGIC_OP_CLEAR = 0x1500,
359     GL_LOGIC_OP_AND = 0x1501,
360     GL_LOGIC_OP_AND_REVERSE = 0x1502,
361     GL_LOGIC_OP_COPY = 0x1503,
362     GL_LOGIC_OP_AND_INVERTED = 0x1504,
363     GL_LOGIC_OP_NOOP = 0x1505,
364     GL_LOGIC_OP_XOR = 0x1506,
365     GL_LOGIC_OP_OR = 0x1507,
366     GL_LOGIC_OP_NOR = 0x1508,
367     GL_LOGIC_OP_EQUIV = 0x1509,
368     GL_LOGIC_OP_INVERT = 0x150A,
369     GL_LOGIC_OP_OR_REVERSE = 0x150B,
370     GL_LOGIC_OP_COPY_INVERTED = 0x150C,
371     GL_LOGIC_OP_NAND = 0x150E,
372     GL_LOGIC_OP_SET = 0x150F,
373     GL_LOGIC_OP_COUNT = 15
374 };
375 
376 enum domGl_polygon_mode {
377     GL_POLYGON_MODE_POINT = 0x1B00,
378     GL_POLYGON_MODE_LINE = 0x1B01,
379     GL_POLYGON_MODE_FILL = 0x1B02,
380     GL_POLYGON_MODE_COUNT = 3
381 };
382 
383 enum domGl_shade_model {
384     GL_SHADE_MODEL_FLAT = 0x1D00,
385     GL_SHADE_MODEL_SMOOTH = 0x1D01,
386     GL_SHADE_MODEL_COUNT = 2
387 };
388 
389 enum domGles_texenv_mode {
390     GLES_TEXENV_MODE_REPLACE = 0x1E01,
391     GLES_TEXENV_MODE_MODULATE = 0x2100,
392     GLES_TEXENV_MODE_DECAL = 0x2101,
393     GLES_TEXENV_MODE_BLEND = 0x0BE2,
394     GLES_TEXENV_MODE_ADD = 0x0104,
395     GLES_TEXENV_MODE_COUNT = 5
396 };
397 
398 enum domGles_texcombiner_operator_rgb {
399     GLES_TEXCOMBINER_OPERATOR_RGB_REPLACE = 0x1E01,
400     GLES_TEXCOMBINER_OPERATOR_RGB_MODULATE = 0x2100,
401     GLES_TEXCOMBINER_OPERATOR_RGB_ADD = 0x0104,
402     GLES_TEXCOMBINER_OPERATOR_RGB_ADD_SIGNED = 0x8574,
403     GLES_TEXCOMBINER_OPERATOR_RGB_INTERPOLATE = 0x8575,
404     GLES_TEXCOMBINER_OPERATOR_RGB_SUBTRACT = 0x84E7,
405     GLES_TEXCOMBINER_OPERATOR_RGB_DOT3_RGB = 0x86AE,
406     GLES_TEXCOMBINER_OPERATOR_RGB_DOT3_RGBA = 0x86AF,
407     GLES_TEXCOMBINER_OPERATOR_RGB_COUNT = 8
408 };
409 
410 enum domGles_texcombiner_operator_alpha {
411     GLES_TEXCOMBINER_OPERATOR_ALPHA_REPLACE = 0x1E01,
412     GLES_TEXCOMBINER_OPERATOR_ALPHA_MODULATE = 0x2100,
413     GLES_TEXCOMBINER_OPERATOR_ALPHA_ADD = 0x0104,
414     GLES_TEXCOMBINER_OPERATOR_ALPHA_ADD_SIGNED = 0x8574,
415     GLES_TEXCOMBINER_OPERATOR_ALPHA_INTERPOLATE = 0x8575,
416     GLES_TEXCOMBINER_OPERATOR_ALPHA_SUBTRACT = 0x84E7,
417     GLES_TEXCOMBINER_OPERATOR_ALPHA_COUNT = 6
418 };
419 
420 enum domGles_texcombiner_source {
421     GLES_TEXCOMBINER_SOURCE_TEXTURE = 0x1702,
422     GLES_TEXCOMBINER_SOURCE_CONSTANT = 0x8576,
423     GLES_TEXCOMBINER_SOURCE_PRIMARY = 0x8577,
424     GLES_TEXCOMBINER_SOURCE_PREVIOUS = 0x8578,
425     GLES_TEXCOMBINER_SOURCE_COUNT = 4
426 };
427 
428 enum domGles_texcombiner_operand_rgb {
429     GLES_TEXCOMBINER_OPERAND_RGB_SRC_COLOR = 0x0300,
430     GLES_TEXCOMBINER_OPERAND_RGB_ONE_MINUS_SRC_COLOR = 0x0301,
431     GLES_TEXCOMBINER_OPERAND_RGB_SRC_ALPHA = 0x0302,
432     GLES_TEXCOMBINER_OPERAND_RGB_ONE_MINUS_SRC_ALPHA = 0x0303,
433     GLES_TEXCOMBINER_OPERAND_RGB_COUNT = 4
434 };
435 
436 enum domGles_texcombiner_operand_alpha {
437     GLES_TEXCOMBINER_OPERAND_ALPHA_SRC_ALPHA = 0x0302,
438     GLES_TEXCOMBINER_OPERAND_ALPHA_ONE_MINUS_SRC_ALPHA = 0x0303,
439     GLES_TEXCOMBINER_OPERAND_ALPHA_COUNT = 2
440 };
441 
442 enum domGles_sampler_wrap {
443     GLES_SAMPLER_WRAP_REPEAT,
444     GLES_SAMPLER_WRAP_CLAMP,
445     GLES_SAMPLER_WRAP_CLAMP_TO_EDGE,
446     GLES_SAMPLER_WRAP_MIRRORED_REPEAT,      /**< supported by GLES 1.1 only */
447     GLES_SAMPLER_WRAP_COUNT = 4
448 };
449 
450 enum domGles_stencil_op {
451     GLES_STENCIL_OP_KEEP = 0x1E00,
452     GLES_STENCIL_OP_ZERO = 0x0,
453     GLES_STENCIL_OP_REPLACE = 0x1E01,
454     GLES_STENCIL_OP_INCR = 0x1E02,
455     GLES_STENCIL_OP_DECR = 0x1E03,
456     GLES_STENCIL_OP_INVERT = 0x150A,
457     GLES_STENCIL_OP_COUNT = 6
458 };
459 
460 enum domSpring {
461     SPRING_LINEAR,
462     SPRING_ANGULAR,
463     SPRING_COUNT = 2
464 };
465 
466 enum domGl_enumeration {
467     GL_ENUMERATION_ZERO = 0x0,
468     GL_ENUMERATION_ONE = 0x1,
469     GL_ENUMERATION_SRC_COLOR = 0x0300,
470     GL_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301,
471     GL_ENUMERATION_DEST_COLOR = 0x0306,
472     GL_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307,
473     GL_ENUMERATION_SRC_ALPHA = 0x0302,
474     GL_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303,
475     GL_ENUMERATION_DST_ALPHA = 0x0304,
476     GL_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305,
477     GL_ENUMERATION_CONSTANT_COLOR = 0x8001,
478     GL_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002,
479     GL_ENUMERATION_CONSTANT_ALPHA = 0x8003,
480     GL_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
481     GL_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308,
482     GL_ENUMERATION_FRONT = 0x0404,
483     GL_ENUMERATION_BACK = 0x0405,
484     GL_ENUMERATION_FRONT_AND_BACK = 0x0408,
485     GL_ENUMERATION_FUNC_ADD = 0x8006,
486     GL_ENUMERATION_FUNC_SUBTRACT = 0x800A,
487     GL_ENUMERATION_FUNC_REVERSE_SUBTRACT = 0x800B,
488     GL_ENUMERATION_MIN = 0x8007,
489     GL_ENUMERATION_MAX = 0x8008,
490     GL_ENUMERATION_NEVER = 0x0200,
491     GL_ENUMERATION_LESS = 0x0201,
492     GL_ENUMERATION_LEQUAL = 0x0203,
493     GL_ENUMERATION_EQUAL = 0x0202,
494     GL_ENUMERATION_GREATER = 0x0204,
495     GL_ENUMERATION_NOTEQUAL = 0x0205,
496     GL_ENUMERATION_GEQUAL = 0x0206,
497     GL_ENUMERATION_ALWAYS = 0x0207,
498     GL_ENUMERATION_KEEP = 0x1E00,
499     GL_ENUMERATION_REPLACE = 0x1E01,
500     GL_ENUMERATION_INCR = 0x1E02,
501     GL_ENUMERATION_DECR = 0x1E03,
502     GL_ENUMERATION_INVERT = 0x150A,
503     GL_ENUMERATION_INCR_WRAP = 0x8507,
504     GL_ENUMERATION_DECR_WRAP = 0x8508,
505     GL_ENUMERATION_EMISSION = 0x1600,
506     GL_ENUMERATION_AMBIENT = 0x1200,
507     GL_ENUMERATION_DIFFUSE = 0x1201,
508     GL_ENUMERATION_SPECULAR = 0x1202,
509     GL_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602,
510     GL_ENUMERATION_LINEAR = 0x2601,
511     GL_ENUMERATION_EXP = 0x0800,
512     GL_ENUMERATION_EXP2 = 0x0801,
513     GL_ENUMERATION_FOG_COORDINATE = 0x8451,
514     GL_ENUMERATION_FRAGMENT_DEPTH = 0x8452,
515     GL_ENUMERATION_CW = 0x0900,
516     GL_ENUMERATION_CCW = 0x0901,
517     GL_ENUMERATION_SINGLE_COLOR = 0x81F9,
518     GL_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA,
519     GL_ENUMERATION_CLEAR = 0x1500,
520     GL_ENUMERATION_AND = 0x1501,
521     GL_ENUMERATION_AND_REVERSE = 0x1502,
522     GL_ENUMERATION_COPY = 0x1503,
523     GL_ENUMERATION_AND_INVERTED = 0x1504,
524     GL_ENUMERATION_NOOP = 0x1505,
525     GL_ENUMERATION_XOR = 0x1506,
526     GL_ENUMERATION_OR = 0x1507,
527     GL_ENUMERATION_NOR = 0x1508,
528     GL_ENUMERATION_EQUIV = 0x1509,
529     GL_ENUMERATION_OR_REVERSE = 0x150B,
530     GL_ENUMERATION_COPY_INVERTED = 0x150C,
531     GL_ENUMERATION_NAND = 0x150E,
532     GL_ENUMERATION_SET = 0x150F,
533     GL_ENUMERATION_POINT = 0x1B00,
534     GL_ENUMERATION_LINE = 0x1B01,
535     GL_ENUMERATION_FILL = 0x1B02,
536     GL_ENUMERATION_FLAT = 0x1D00,
537     GL_ENUMERATION_SMOOTH = 0x1D01,
538     GL_ENUMERATION_COUNT = 72
539 };
540 
541 enum domGles_enumeration {
542     GLES_ENUMERATION_ZERO = 0x0,
543     GLES_ENUMERATION_ONE = 0x1,
544     GLES_ENUMERATION_SRC_COLOR = 0x0300,
545     GLES_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301,
546     GLES_ENUMERATION_DEST_COLOR = 0x0306,
547     GLES_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307,
548     GLES_ENUMERATION_SRC_ALPHA = 0x0302,
549     GLES_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303,
550     GLES_ENUMERATION_DST_ALPHA = 0x0304,
551     GLES_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305,
552     GLES_ENUMERATION_CONSTANT_COLOR = 0x8001,
553     GLES_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002,
554     GLES_ENUMERATION_CONSTANT_ALPHA = 0x8003,
555     GLES_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
556     GLES_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308,
557     GLES_ENUMERATION_FRONT = 0x0404,
558     GLES_ENUMERATION_BACK = 0x0405,
559     GLES_ENUMERATION_FRONT_AND_BACK = 0x0408,
560     GLES_ENUMERATION_NEVER = 0x0200,
561     GLES_ENUMERATION_LESS = 0x0201,
562     GLES_ENUMERATION_LEQUAL = 0x0203,
563     GLES_ENUMERATION_EQUAL = 0x0202,
564     GLES_ENUMERATION_GREATER = 0x0204,
565     GLES_ENUMERATION_NOTEQUAL = 0x0205,
566     GLES_ENUMERATION_GEQUAL = 0x0206,
567     GLES_ENUMERATION_ALWAYS = 0x0207,
568     GLES_ENUMERATION_KEEP = 0x1E00,
569     GLES_ENUMERATION_REPLACE = 0x1E01,
570     GLES_ENUMERATION_INCR = 0x1E02,
571     GLES_ENUMERATION_DECR = 0x1E03,
572     GLES_ENUMERATION_INVERT = 0x150A,
573     GLES_ENUMERATION_INCR_WRAP = 0x8507,
574     GLES_ENUMERATION_DECR_WRAP = 0x8508,
575     GLES_ENUMERATION_EMISSION = 0x1600,
576     GLES_ENUMERATION_AMBIENT = 0x1200,
577     GLES_ENUMERATION_DIFFUSE = 0x1201,
578     GLES_ENUMERATION_SPECULAR = 0x1202,
579     GLES_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602,
580     GLES_ENUMERATION_LINEAR = 0x2601,
581     GLES_ENUMERATION_EXP = 0x0800,
582     GLES_ENUMERATION_EXP2 = 0x0801,
583     GLES_ENUMERATION_CW = 0x0900,
584     GLES_ENUMERATION_CCW = 0x0901,
585     GLES_ENUMERATION_SINGLE_COLOR = 0x81F9,
586     GLES_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA,
587     GLES_ENUMERATION_CLEAR = 0x1500,
588     GLES_ENUMERATION_AND = 0x1501,
589     GLES_ENUMERATION_AND_REVERSE = 0x1502,
590     GLES_ENUMERATION_COPY = 0x1503,
591     GLES_ENUMERATION_AND_INVERTED = 0x1504,
592     GLES_ENUMERATION_NOOP = 0x1505,
593     GLES_ENUMERATION_XOR = 0x1506,
594     GLES_ENUMERATION_OR = 0x1507,
595     GLES_ENUMERATION_NOR = 0x1508,
596     GLES_ENUMERATION_EQUIV = 0x1509,
597     GLES_ENUMERATION_OR_REVERSE = 0x150B,
598     GLES_ENUMERATION_COPY_INVERTED = 0x150C,
599     GLES_ENUMERATION_NAND = 0x150E,
600     GLES_ENUMERATION_SET = 0x150F,
601     GLES_ENUMERATION_POINT = 0x1B00,
602     GLES_ENUMERATION_LINE = 0x1B01,
603     GLES_ENUMERATION_FILL = 0x1B02,
604     GLES_ENUMERATION_FLAT = 0x1D00,
605     GLES_ENUMERATION_SMOOTH = 0x1D01,
606     GLES_ENUMERATION_COUNT = 65
607 };
608 
609 //Element Type Enum
610 namespace COLLADA_TYPE
611 {
612 typedef int TypeEnum;
613 const int
614     NO_TYPE = 0,
615     ANY = 1,
616     INPUT_GLOBAL = 2,
617     INPUT_LOCAL = 3,
618     INPUT_LOCAL_OFFSET = 4,
619     TARGETABLE_FLOAT = 5,
620     TARGETABLE_FLOAT3 = 6,
621     TOKEN_ARRAY = 7,
622     IDREF_ARRAY = 8,
623     NAME_ARRAY = 9,
624     BOOL_ARRAY = 10,
625     FLOAT_ARRAY = 11,
626     INT_ARRAY = 12,
627     PARAM = 13,
628     ACCESSOR = 14,
629     P = 15,
630     LOOKAT = 16,
631     MATRIX = 17,
632     SCALE = 18,
633     SKEW = 19,
634     TRANSLATE = 20,
635     IMAGE_SOURCE = 21,
636     REF = 22,
637     HEX = 23,
638     IMAGE_MIPS = 24,
639     CHANNEL = 25,
640     SAMPLER = 26,
641     TECHNIQUE = 27,
642     EXTRA = 28,
643     POLYLIST = 29,
644     VCOUNT = 30,
645     POLYGONS = 31,
646     PH = 32,
647     H = 33,
648     LINESTRIPS = 34,
649     TRISTRIPS = 35,
650     LINES = 36,
651     TRIANGLES = 37,
652     TRIFANS = 38,
653     VERTICES = 39,
654     ASSET = 40,
655     CONTRIBUTOR = 41,
656     AUTHOR = 42,
657     AUTHOR_EMAIL = 43,
658     AUTHOR_WEBSITE = 44,
659     AUTHORING_TOOL = 45,
660     COMMENTS = 46,
661     COPYRIGHT = 47,
662     SOURCE_DATA = 48,
663     COVERAGE = 49,
664     GEOGRAPHIC_LOCATION = 50,
665     LONGITUDE = 51,
666     LATITUDE = 52,
667     ALTITUDE = 53,
668     CREATED = 54,
669     KEYWORDS = 55,
670     MODIFIED = 56,
671     REVISION = 57,
672     SUBJECT = 58,
673     TITLE = 59,
674     UNIT = 60,
675     UP_AXIS = 61,
676     IMAGE = 62,
677     RENDERABLE = 63,
678     INIT_FROM = 64,
679     CREATE_2D = 65,
680     SIZE_EXACT = 66,
681     SIZE_RATIO = 67,
682     UNNORMALIZED = 68,
683     ARRAY = 69,
684     FORMAT = 70,
685     HINT = 71,
686     EXACT = 72,
687     CREATE_3D = 73,
688     SIZE = 74,
689     CREATE_CUBE = 75,
690     CAMERA = 76,
691     OPTICS = 77,
692     TECHNIQUE_COMMON = 78,
693     ORTHOGRAPHIC = 79,
694     PERSPECTIVE = 80,
695     IMAGER = 81,
696     LIGHT = 82,
697     AMBIENT = 83,
698     DIRECTIONAL = 84,
699     POINT = 85,
700     SPOT = 86,
701     INSTANCE_WITH_EXTRA = 87,
702     INSTANCE_IMAGE = 88,
703     INSTANCE_CAMERA = 89,
704     INSTANCE_FORCE_FIELD = 90,
705     INSTANCE_LIGHT = 91,
706     INSTANCE_MATERIAL = 92,
707     BIND = 93,
708     BIND_VERTEX_INPUT = 94,
709     BIND_MATERIAL = 95,
710     INSTANCE_CONTROLLER = 96,
711     SKELETON = 97,
712     INSTANCE_GEOMETRY = 98,
713     INSTANCE_NODE = 99,
714     INSTANCE_PHYSICS_MATERIAL = 100,
715     INSTANCE_RIGID_CONSTRAINT = 101,
716     LIBRARY_CAMERAS = 102,
717     LIBRARY_IMAGES = 103,
718     LIBRARY_LIGHTS = 104,
719     INSTANCE_EFFECT = 105,
720     TECHNIQUE_HINT = 106,
721     SETPARAM = 107,
722     MATERIAL = 108,
723     LIBRARY_MATERIALS = 109,
724     FX_SAMPLER = 110,
725     FX_SAMPLER1D = 111,
726     FX_SAMPLER2D = 112,
727     FX_SAMPLER3D = 113,
728     FX_SAMPLERCUBE = 114,
729     FX_SAMPLERRECT = 115,
730     FX_SAMPLERDEPTH = 116,
731     FX_RENDERTARGET = 117,
732     FX_COLORTARGET = 118,
733     FX_DEPTHTARGET = 119,
734     FX_STENCILTARGET = 120,
735     FX_CLEARCOLOR = 121,
736     FX_CLEARDEPTH = 122,
737     FX_CLEARSTENCIL = 123,
738     FX_ANNOTATE = 124,
739     BOOL = 125,
740     BOOL2 = 126,
741     BOOL3 = 127,
742     BOOL4 = 128,
743     INT = 129,
744     INT2 = 130,
745     INT3 = 131,
746     INT4 = 132,
747     FLOAT = 133,
748     FLOAT2 = 134,
749     FLOAT3 = 135,
750     FLOAT4 = 136,
751     FLOAT2X2 = 137,
752     FLOAT3X3 = 138,
753     FLOAT4X4 = 139,
754     STRING = 140,
755     FX_NEWPARAM = 141,
756     FLOAT2X1 = 142,
757     FLOAT2X3 = 143,
758     FLOAT2X4 = 144,
759     FLOAT3X1 = 145,
760     FLOAT3X2 = 146,
761     FLOAT3X4 = 147,
762     FLOAT4X1 = 148,
763     FLOAT4X2 = 149,
764     FLOAT4X3 = 150,
765     ENUM = 151,
766     FX_INCLUDE = 152,
767     FX_CODE = 153,
768     FX_SOURCES = 154,
769     INLINE = 155,
770     IMPORT = 156,
771     FX_TARGET = 157,
772     BINARY = 158,
773     FX_COMMON_FLOAT_OR_PARAM = 159,
774     FX_COMMON_COLOR_OR_TEXTURE = 160,
775     COLOR = 161,
776     TEXTURE = 162,
777     FX_COMMON_TRANSPARENT = 163,
778     FX_COMMON_NEWPARAM = 164,
779     SEMANTIC = 165,
780     PROFILE_COMMON = 166,
781     CONSTANT = 167,
782     LAMBERT = 168,
783     PHONG = 169,
784     BLINN = 170,
785     PROFILE_BRIDGE = 171,
786     GLES2_NEWPARAM = 172,
787     MODIFIER = 173,
788     GLES2_SHADER = 174,
789     SOURCES = 175,
790     GLES2_PROGRAM = 176,
791     BIND_ATTRIBUTE = 177,
792     BIND_UNIFORM = 178,
793     GLES2_PASS = 179,
794     STATES = 180,
795     EVALUATE = 181,
796     DRAW = 182,
797     PROFILE_GLES2 = 183,
798     NEWPARAM = 184,
799     GLSL_ARRAY = 185,
800     GLSL_NEWPARAM = 186,
801     GLSL_SHADER = 187,
802     GLSL_PROGRAM = 188,
803     PROFILE_GLSL = 189,
804     PASS = 190,
805     CG_ARRAY = 191,
806     CG_SETPARAM = 192,
807     CG_USER = 193,
808     CG_NEWPARAM = 194,
809     CG_PASS = 195,
810     PROGRAM = 196,
811     SHADER = 197,
812     PROFILE_CG = 198,
813     GLES_TEXTURE_CONSTANT = 199,
814     GLES_TEXENV_COMMAND = 200,
815     GLES_TEXCOMBINER_ARGUMENT_RGB = 201,
816     GLES_TEXCOMBINER_ARGUMENT_ALPHA = 202,
817     GLES_TEXCOMBINER_COMMAND_RGB = 203,
818     GLES_TEXCOMBINER_COMMAND_ALPHA = 204,
819     GLES_TEXCOMBINER_COMMAND = 205,
820     GLES_TEXTURE_PIPELINE = 206,
821     GLES_SAMPLER = 207,
822     TEXCOORD = 208,
823     GLES_NEWPARAM = 209,
824     PROFILE_GLES = 210,
825     EFFECT = 211,
826     LIBRARY_EFFECTS = 212,
827     BOX = 213,
828     HALF_EXTENTS = 214,
829     PLANE = 215,
830     EQUATION = 216,
831     SPHERE = 217,
832     RADIUS = 218,
833     ELLIPSOID = 219,
834     CYLINDER = 220,
835     HEIGHT = 221,
836     CAPSULE = 222,
837     FORCE_FIELD = 223,
838     LIBRARY_FORCE_FIELDS = 224,
839     PHYSICS_MATERIAL = 225,
840     LIBRARY_PHYSICS_MATERIALS = 226,
841     EDGES = 227,
842     WIRES = 228,
843     FACES = 229,
844     SHELLS = 230,
845     SOLIDS = 231,
846     LINE = 232,
847     ORIGIN = 233,
848     DIRECTION = 234,
849     CIRCLE = 235,
850     ELLIPSE = 236,
851     PARABOLA = 237,
852     FOCAL = 238,
853     HYPERBOLA = 239,
854     TORUS = 240,
855     PCURVES = 241,
856     SIDREF_ARRAY = 242,
857     SOURCE = 243,
858     ANIMATION = 244,
859     LIBRARY_ANIMATIONS = 245,
860     SKIN = 246,
861     BIND_SHAPE_MATRIX = 247,
862     JOINTS = 248,
863     VERTEX_WEIGHTS = 249,
864     V = 250,
865     CONVEX_MESH = 251,
866     MESH = 252,
867     SPLINE = 253,
868     CONTROL_VERTICES = 254,
869     NURBS_SURFACE = 255,
870     NURBS = 256,
871     MORPH = 257,
872     TARGETS = 258,
873     CONTROLLER = 259,
874     LIBRARY_CONTROLLERS = 260,
875     ORIENT = 261,
876     CURVE = 262,
877     SURFACE_CURVES = 263,
878     CURVES = 264,
879     SWEPT_SURFACE = 265,
880     AXIS = 266,
881     CONE = 267,
882     ANGLE = 268,
883     SURFACE = 269,
884     SURFACES = 270,
885     BREP = 271,
886     GEOMETRY = 272,
887     LIBRARY_GEOMETRIES = 273,
888     LIMITS_SUB = 274,
889     INSTANCE_JOINT = 275,
890     TARGETABLE_FLOAT4 = 276,
891     ROTATE = 277,
892     LINK = 278,
893     ATTACHMENT_FULL = 279,
894     ATTACHMENT_START = 280,
895     ATTACHMENT_END = 281,
896     RIGID_CONSTRAINT = 282,
897     REF_ATTACHMENT = 283,
898     ATTACHMENT = 284,
899     ENABLED = 285,
900     INTERPENETRATE = 286,
901     LIMITS = 287,
902     SWING_CONE_AND_TWIST = 288,
903     LINEAR = 289,
904     SPRING = 290,
905     ANGULAR = 291,
906     NODE = 292,
907     LIBRARY_NODES = 293,
908     VISUAL_SCENE = 294,
909     EVALUATE_SCENE = 295,
910     RENDER = 296,
911     LAYER = 297,
912     TECHNIQUE_OVERRIDE = 298,
913     LIBRARY_VISUAL_SCENES = 299,
914     RIGID_BODY = 300,
915     DYNAMIC = 301,
916     MASS_FRAME = 302,
917     SHAPE = 303,
918     HOLLOW = 304,
919     INSTANCE_RIGID_BODY = 305,
920     ANGULAR_VELOCITY = 306,
921     VELOCITY = 307,
922     INSTANCE_PHYSICS_MODEL = 308,
923     PHYSICS_MODEL = 309,
924     LIBRARY_PHYSICS_MODELS = 310,
925     PHYSICS_SCENE = 311,
926     LIBRARY_PHYSICS_SCENES = 312,
927     KINEMATICS_NEWPARAM = 313,
928     SIDREF = 314,
929     KINEMATICS_FRAME = 315,
930     COMMON_PARAM = 316,
931     COMMON_INT_OR_PARAM = 317,
932     COMMON_BOOL_OR_PARAM = 318,
933     COMMON_FLOAT_OR_PARAM = 319,
934     KINEMATICS_LIMITS = 320,
935     COMMON_SIDREF_OR_PARAM = 321,
936     BIND_JOINT_AXIS = 322,
937     BIND_KINEMATICS_MODEL = 323,
938     KINEMATICS_CONNECT_PARAM = 324,
939     KINEMATICS_SETPARAM = 325,
940     INSTANCE_KINEMATICS_SCENE = 326,
941     KINEMATICS_INDEX = 327,
942     KINEMATICS_PARAM = 328,
943     KINEMATICS_BIND = 329,
944     MOTION_AXIS_INFO = 330,
945     INSTANCE_KINEMATICS_MODEL = 331,
946     INSTANCE_ARTICULATED_SYSTEM = 332,
947     KINEMATICS_SCENE = 333,
948     LIBRARY_KINEMATICS_SCENES = 334,
949     COMMON_FLOAT2_OR_PARAM = 335,
950     MOTION_EFFECTOR_INFO = 336,
951     MOTION_TECHNIQUE = 337,
952     MOTION = 338,
953     MINMAX = 339,
954     JOINT_LIMITS = 340,
955     AXIS_CONSTRAINT = 341,
956     JOINT = 342,
957     LIBRARY_JOINTS = 343,
958     FORMULA_TECHNIQUE = 344,
959     FORMULA_NEWPARAM = 345,
960     FORMULA_SETPARAM = 346,
961     INSTANCE_FORMULA = 347,
962     ANIMATION_CLIP = 348,
963     LIBRARY_ANIMATION_CLIPS = 349,
964     FORMULA = 350,
965     KINEMATICS_MODEL_TECHNIQUE = 351,
966     KINEMATICS_MODEL = 352,
967     LIBRARY_KINEMATICS_MODELS = 353,
968     KINEMATICS_AXIS_INFO = 354,
969     KINEMATICS_TECHNIQUE = 355,
970     KINEMATICS = 356,
971     ARTICULATED_SYSTEM = 357,
972     LIBRARY_ARTICULATED_SYSTEMS = 358,
973     LIBRARY_FORMULAS = 359,
974     FX_SAMPLER_STATES = 360,
975     WRAP_S = 361,
976     WRAP_T = 362,
977     WRAP_P = 363,
978     MINFILTER = 364,
979     MAGFILTER = 365,
980     MIPFILTER = 366,
981     BORDER_COLOR = 367,
982     MIP_MAX_LEVEL = 368,
983     MIP_MIN_LEVEL = 369,
984     MIP_BIAS = 370,
985     MAX_ANISOTROPY = 371,
986     FX_SETPARAM = 372,
987     SAMPLER_STATES = 373,
988     GL_PIPELINE_SETTINGS = 374,
989     ALPHA_FUNC = 375,
990     FUNC = 376,
991     VALUE = 377,
992     BLEND_FUNC = 378,
993     SRC = 379,
994     DEST = 380,
995     BLEND_FUNC_SEPARATE = 381,
996     SRC_RGB = 382,
997     DEST_RGB = 383,
998     SRC_ALPHA = 384,
999     DEST_ALPHA = 385,
1000     BLEND_EQUATION = 386,
1001     BLEND_EQUATION_SEPARATE = 387,
1002     RGB = 388,
1003     ALPHA = 389,
1004     COLOR_MATERIAL = 390,
1005     FACE = 391,
1006     MODE = 392,
1007     CULL_FACE = 393,
1008     DEPTH_FUNC = 394,
1009     FOG_MODE = 395,
1010     FOG_COORD_SRC = 396,
1011     FRONT_FACE = 397,
1012     LIGHT_MODEL_COLOR_CONTROL = 398,
1013     LOGIC_OP = 399,
1014     POLYGON_MODE = 400,
1015     SHADE_MODEL = 401,
1016     STENCIL_FUNC = 402,
1017     MASK = 403,
1018     STENCIL_OP = 404,
1019     FAIL = 405,
1020     ZFAIL = 406,
1021     ZPASS = 407,
1022     STENCIL_FUNC_SEPARATE = 408,
1023     FRONT = 409,
1024     BACK = 410,
1025     STENCIL_OP_SEPARATE = 411,
1026     STENCIL_MASK_SEPARATE = 412,
1027     LIGHT_ENABLE = 413,
1028     LIGHT_AMBIENT = 414,
1029     LIGHT_DIFFUSE = 415,
1030     LIGHT_SPECULAR = 416,
1031     LIGHT_POSITION = 417,
1032     LIGHT_CONSTANT_ATTENUATION = 418,
1033     LIGHT_LINEAR_ATTENUATION = 419,
1034     LIGHT_QUADRATIC_ATTENUATION = 420,
1035     LIGHT_SPOT_CUTOFF = 421,
1036     LIGHT_SPOT_DIRECTION = 422,
1037     LIGHT_SPOT_EXPONENT = 423,
1038     TEXTURE1D = 424,
1039     TEXTURE2D = 425,
1040     TEXTURE3D = 426,
1041     TEXTURECUBE = 427,
1042     TEXTURERECT = 428,
1043     TEXTUREDEPTH = 429,
1044     TEXTURE1D_ENABLE = 430,
1045     TEXTURE2D_ENABLE = 431,
1046     TEXTURE3D_ENABLE = 432,
1047     TEXTURECUBE_ENABLE = 433,
1048     TEXTURERECT_ENABLE = 434,
1049     TEXTUREDEPTH_ENABLE = 435,
1050     TEXTURE_ENV_COLOR = 436,
1051     TEXTURE_ENV_MODE = 437,
1052     CLIP_PLANE = 438,
1053     CLIP_PLANE_ENABLE = 439,
1054     BLEND_COLOR = 440,
1055     COLOR_MASK = 441,
1056     DEPTH_BOUNDS = 442,
1057     DEPTH_MASK = 443,
1058     DEPTH_RANGE = 444,
1059     FOG_DENSITY = 445,
1060     FOG_START = 446,
1061     FOG_END = 447,
1062     FOG_COLOR = 448,
1063     LIGHT_MODEL_AMBIENT = 449,
1064     LIGHTING_ENABLE = 450,
1065     LINE_STIPPLE = 451,
1066     LINE_WIDTH = 452,
1067     MATERIAL_AMBIENT = 453,
1068     MATERIAL_DIFFUSE = 454,
1069     MATERIAL_EMISSION = 455,
1070     MATERIAL_SHININESS = 456,
1071     MATERIAL_SPECULAR = 457,
1072     MODEL_VIEW_MATRIX = 458,
1073     POINT_DISTANCE_ATTENUATION = 459,
1074     POINT_FADE_THRESHOLD_SIZE = 460,
1075     POINT_SIZE = 461,
1076     POINT_SIZE_MIN = 462,
1077     POINT_SIZE_MAX = 463,
1078     POLYGON_OFFSET = 464,
1079     PROJECTION_MATRIX = 465,
1080     SCISSOR = 466,
1081     STENCIL_MASK = 467,
1082     ALPHA_TEST_ENABLE = 468,
1083     BLEND_ENABLE = 469,
1084     COLOR_LOGIC_OP_ENABLE = 470,
1085     COLOR_MATERIAL_ENABLE = 471,
1086     CULL_FACE_ENABLE = 472,
1087     DEPTH_BOUNDS_ENABLE = 473,
1088     DEPTH_CLAMP_ENABLE = 474,
1089     DEPTH_TEST_ENABLE = 475,
1090     DITHER_ENABLE = 476,
1091     FOG_ENABLE = 477,
1092     LIGHT_MODEL_LOCAL_VIEWER_ENABLE = 478,
1093     LIGHT_MODEL_TWO_SIDE_ENABLE = 479,
1094     LINE_SMOOTH_ENABLE = 480,
1095     LINE_STIPPLE_ENABLE = 481,
1096     LOGIC_OP_ENABLE = 482,
1097     MULTISAMPLE_ENABLE = 483,
1098     NORMALIZE_ENABLE = 484,
1099     POINT_SMOOTH_ENABLE = 485,
1100     POLYGON_OFFSET_FILL_ENABLE = 486,
1101     POLYGON_OFFSET_LINE_ENABLE = 487,
1102     POLYGON_OFFSET_POINT_ENABLE = 488,
1103     POLYGON_SMOOTH_ENABLE = 489,
1104     POLYGON_STIPPLE_ENABLE = 490,
1105     RESCALE_NORMAL_ENABLE = 491,
1106     SAMPLE_ALPHA_TO_COVERAGE_ENABLE = 492,
1107     SAMPLE_ALPHA_TO_ONE_ENABLE = 493,
1108     SAMPLE_COVERAGE_ENABLE = 494,
1109     SCISSOR_TEST_ENABLE = 495,
1110     STENCIL_TEST_ENABLE = 496,
1111     GLES2_PIPELINE_SETTINGS = 497,
1112     SAMPLE_COVERAGE = 498,
1113     INVERT = 499,
1114     POINT_SIZE_ENABLE = 500,
1115     GLES2_VALUE = 501,
1116     BVEC2 = 502,
1117     BVEC3 = 503,
1118     BVEC4 = 504,
1119     VEC2 = 505,
1120     VEC3 = 506,
1121     VEC4 = 507,
1122     MAT2 = 508,
1123     MAT3 = 509,
1124     MAT4 = 510,
1125     IVEC2 = 511,
1126     IVEC3 = 512,
1127     IVEC4 = 513,
1128     USERTYPE = 514,
1129     GLSL_VALUE = 515,
1130     CG_PARAM = 516,
1131     BOOL2X1 = 517,
1132     BOOL2X2 = 518,
1133     BOOL2X3 = 519,
1134     BOOL2X4 = 520,
1135     BOOL3X1 = 521,
1136     BOOL3X2 = 522,
1137     BOOL3X3 = 523,
1138     BOOL3X4 = 524,
1139     BOOL4X1 = 525,
1140     BOOL4X2 = 526,
1141     BOOL4X3 = 527,
1142     BOOL4X4 = 528,
1143     INT2X1 = 529,
1144     INT2X2 = 530,
1145     INT2X3 = 531,
1146     INT2X4 = 532,
1147     INT3X1 = 533,
1148     INT3X2 = 534,
1149     INT3X3 = 535,
1150     INT3X4 = 536,
1151     INT4X1 = 537,
1152     INT4X2 = 538,
1153     INT4X3 = 539,
1154     INT4X4 = 540,
1155     HALF = 541,
1156     HALF2 = 542,
1157     HALF3 = 543,
1158     HALF4 = 544,
1159     HALF2X1 = 545,
1160     HALF2X2 = 546,
1161     HALF2X3 = 547,
1162     HALF2X4 = 548,
1163     HALF3X1 = 549,
1164     HALF3X2 = 550,
1165     HALF3X3 = 551,
1166     HALF3X4 = 552,
1167     HALF4X1 = 553,
1168     HALF4X2 = 554,
1169     HALF4X3 = 555,
1170     HALF4X4 = 556,
1171     FIXED = 557,
1172     FIXED2 = 558,
1173     FIXED3 = 559,
1174     FIXED4 = 560,
1175     FIXED2X1 = 561,
1176     FIXED2X2 = 562,
1177     FIXED2X3 = 563,
1178     FIXED2X4 = 564,
1179     FIXED3X1 = 565,
1180     FIXED3X2 = 566,
1181     FIXED3X3 = 567,
1182     FIXED3X4 = 568,
1183     FIXED4X1 = 569,
1184     FIXED4X2 = 570,
1185     FIXED4X3 = 571,
1186     FIXED4X4 = 572,
1187     GLES_SAMPLER_STATES = 573,
1188     GLES_PIPELINE_SETTINGS = 574,
1189     TEXTURE_PIPELINE = 575,
1190     GLES_PARAM = 576,
1191     FLOAT1X1 = 577,
1192     FLOAT1X2 = 578,
1193     FLOAT1X3 = 579,
1194     FLOAT1X4 = 580,
1195     FX_PROFILE = 581,
1196     COLLADA = 582,
1197     SCENE = 583;
1198 }
1199 
1200 // Returns the total number of schema types/dom* classes
1201 daeInt DLLSPEC colladaTypeCount();
1202 
1203 } // ColladaDOM150
1204 
1205 #endif
1206