1 /*
2  * Copyright 2006 Sony Computer Entertainment Inc.
3  *
4  * Licensed under the MIT Open Source License, for details please see license.txt or the website
5  * http://www.opensource.org/licenses/mit-license.php
6  *
7  */
8 
9 #ifndef __DOM141_TYPES_H__
10 #define __DOM141_TYPES_H__
11 
12 #include <dae/daeDomTypes.h>
13 
14 class DAE;
15 namespace ColladaDOM141 {
16 
17 typedef xsBoolean domBool;
18 typedef xsDateTime domDateTime;
19 typedef xsDouble domFloat;
20 typedef xsLong domInt;
21 typedef xsName domName;
22 typedef xsString domString;
23 typedef xsToken domToken;
24 typedef xsUnsignedLong domUint;
25 typedef daeTArray<domBool>      domListOfBools;
26 typedef daeTArray<domFloat>     domListOfFloats;
27 typedef xsHexBinaryArray domListOfHexBinary;
28 typedef daeTArray<domInt>       domListOfInts;
29 typedef daeTArray<domName>      domListOfNames;
30 typedef daeTArray<domToken>     domListOfTokens;
31 typedef daeTArray<domUint>      domListOfUInts;
32 typedef domListOfBools domBool2;
33 typedef domListOfBools domBool3;
34 typedef domListOfBools domBool4;
35 typedef domListOfFloats domFloat2;
36 typedef domListOfFloats domFloat3;
37 typedef domListOfFloats domFloat4;
38 typedef domListOfFloats domFloat7;
39 typedef domListOfFloats domFloat2x2;
40 typedef domListOfFloats domFloat3x3;
41 typedef domListOfFloats domFloat4x4;
42 typedef domListOfFloats domFloat2x3;
43 typedef domListOfFloats domFloat2x4;
44 typedef domListOfFloats domFloat3x2;
45 typedef domListOfFloats domFloat3x4;
46 typedef domListOfFloats domFloat4x2;
47 typedef domListOfFloats domFloat4x3;
48 typedef domListOfInts domInt2;
49 typedef domListOfInts domInt3;
50 typedef domListOfInts domInt4;
51 typedef domListOfInts domInt2x2;
52 typedef domListOfInts domInt3x3;
53 typedef domListOfInts domInt4x4;
54 /**
55  * This type is used for URI reference which can only reference a resource
56  * declared within it's same document.
57  */
58 typedef xsAnyURI domURIFragmentType;
59 typedef domFloat4 domFx_color_common;
60 typedef xsString domFx_draw_common;
61 typedef xsNonNegativeInteger domGL_MAX_LIGHTS_index;
62 typedef xsNonNegativeInteger domGL_MAX_CLIP_PLANES_index;
63 typedef xsNonNegativeInteger domGL_MAX_TEXTURE_IMAGE_UNITS_index;
64 typedef xsFloat domGl_alpha_value_type;
65 typedef xsFloat domGlsl_float;
66 typedef xsInt domGlsl_int;
67 typedef xsBoolean domGlsl_bool;
68 typedef daeTArray<domGlsl_bool>     domGlsl_ListOfBool;
69 typedef daeTArray<domGlsl_float>        domGlsl_ListOfFloat;
70 typedef daeTArray<domGlsl_int>      domGlsl_ListOfInt;
71 typedef domGlsl_ListOfBool domGlsl_bool2;
72 typedef domGlsl_ListOfBool domGlsl_bool3;
73 typedef domGlsl_ListOfBool domGlsl_bool4;
74 typedef domGlsl_ListOfFloat domGlsl_float2;
75 typedef domGlsl_ListOfFloat domGlsl_float3;
76 typedef domGlsl_ListOfFloat domGlsl_float4;
77 typedef domGlsl_ListOfFloat domGlsl_float2x2;
78 typedef domGlsl_ListOfFloat domGlsl_float3x3;
79 typedef domGlsl_ListOfFloat domGlsl_float4x4;
80 typedef domGlsl_ListOfInt domGlsl_int2;
81 typedef domGlsl_ListOfInt domGlsl_int3;
82 typedef domGlsl_ListOfInt domGlsl_int4;
83 typedef xsToken domGlsl_identifier;
84 typedef xsBoolean domCg_bool;
85 typedef xsFloat domCg_float;
86 typedef xsInt domCg_int;
87 typedef xsFloat domCg_half;
88 typedef xsFloat domCg_fixed;
89 typedef xsBoolean domCg_bool1;
90 typedef xsFloat domCg_float1;
91 typedef xsInt domCg_int1;
92 typedef xsFloat domCg_half1;
93 typedef xsFloat domCg_fixed1;
94 typedef daeTArray<domCg_bool>       domCg_ListOfBool;
95 typedef daeTArray<domCg_float>      domCg_ListOfFloat;
96 typedef daeTArray<domCg_int>        domCg_ListOfInt;
97 typedef daeTArray<domCg_half>       domCg_ListOfHalf;
98 typedef daeTArray<domCg_fixed>      domCg_ListOfFixed;
99 typedef domCg_ListOfBool domCg_bool2;
100 typedef domCg_ListOfBool domCg_bool3;
101 typedef domCg_ListOfBool domCg_bool4;
102 typedef domCg_ListOfBool domCg_bool1x1;
103 typedef domCg_ListOfBool domCg_bool1x2;
104 typedef domCg_ListOfBool domCg_bool1x3;
105 typedef domCg_ListOfBool domCg_bool1x4;
106 typedef domCg_ListOfBool domCg_bool2x1;
107 typedef domCg_ListOfBool domCg_bool2x2;
108 typedef domCg_ListOfBool domCg_bool2x3;
109 typedef domCg_ListOfBool domCg_bool2x4;
110 typedef domCg_ListOfBool domCg_bool3x1;
111 typedef domCg_ListOfBool domCg_bool3x2;
112 typedef domCg_ListOfBool domCg_bool3x3;
113 typedef domCg_ListOfBool domCg_bool3x4;
114 typedef domCg_ListOfBool domCg_bool4x1;
115 typedef domCg_ListOfBool domCg_bool4x2;
116 typedef domCg_ListOfBool domCg_bool4x3;
117 typedef domCg_ListOfBool domCg_bool4x4;
118 typedef domCg_ListOfFloat domCg_float2;
119 typedef domCg_ListOfFloat domCg_float3;
120 typedef domCg_ListOfFloat domCg_float4;
121 typedef domCg_ListOfFloat domCg_float1x1;
122 typedef domCg_ListOfFloat domCg_float1x2;
123 typedef domCg_ListOfFloat domCg_float1x3;
124 typedef domCg_ListOfFloat domCg_float1x4;
125 typedef domCg_ListOfFloat domCg_float2x1;
126 typedef domCg_ListOfFloat domCg_float2x2;
127 typedef domCg_ListOfFloat domCg_float2x3;
128 typedef domCg_ListOfFloat domCg_float2x4;
129 typedef domCg_ListOfFloat domCg_float3x1;
130 typedef domCg_ListOfFloat domCg_float3x2;
131 typedef domCg_ListOfFloat domCg_float3x3;
132 typedef domCg_ListOfFloat domCg_float3x4;
133 typedef domCg_ListOfFloat domCg_float4x1;
134 typedef domCg_ListOfFloat domCg_float4x2;
135 typedef domCg_ListOfFloat domCg_float4x3;
136 typedef domCg_ListOfFloat domCg_float4x4;
137 typedef domCg_ListOfInt domCg_int2;
138 typedef domCg_ListOfInt domCg_int3;
139 typedef domCg_ListOfInt domCg_int4;
140 typedef domCg_ListOfInt domCg_int1x1;
141 typedef domCg_ListOfInt domCg_int1x2;
142 typedef domCg_ListOfInt domCg_int1x3;
143 typedef domCg_ListOfInt domCg_int1x4;
144 typedef domCg_ListOfInt domCg_int2x1;
145 typedef domCg_ListOfInt domCg_int2x2;
146 typedef domCg_ListOfInt domCg_int2x3;
147 typedef domCg_ListOfInt domCg_int2x4;
148 typedef domCg_ListOfInt domCg_int3x1;
149 typedef domCg_ListOfInt domCg_int3x2;
150 typedef domCg_ListOfInt domCg_int3x3;
151 typedef domCg_ListOfInt domCg_int3x4;
152 typedef domCg_ListOfInt domCg_int4x1;
153 typedef domCg_ListOfInt domCg_int4x2;
154 typedef domCg_ListOfInt domCg_int4x3;
155 typedef domCg_ListOfInt domCg_int4x4;
156 typedef domCg_ListOfHalf domCg_half2;
157 typedef domCg_ListOfHalf domCg_half3;
158 typedef domCg_ListOfHalf domCg_half4;
159 typedef domCg_ListOfHalf domCg_half1x1;
160 typedef domCg_ListOfHalf domCg_half1x2;
161 typedef domCg_ListOfHalf domCg_half1x3;
162 typedef domCg_ListOfHalf domCg_half1x4;
163 typedef domCg_ListOfHalf domCg_half2x1;
164 typedef domCg_ListOfHalf domCg_half2x2;
165 typedef domCg_ListOfHalf domCg_half2x3;
166 typedef domCg_ListOfHalf domCg_half2x4;
167 typedef domCg_ListOfHalf domCg_half3x1;
168 typedef domCg_ListOfHalf domCg_half3x2;
169 typedef domCg_ListOfHalf domCg_half3x3;
170 typedef domCg_ListOfHalf domCg_half3x4;
171 typedef domCg_ListOfHalf domCg_half4x1;
172 typedef domCg_ListOfHalf domCg_half4x2;
173 typedef domCg_ListOfHalf domCg_half4x3;
174 typedef domCg_ListOfHalf domCg_half4x4;
175 typedef domCg_ListOfFixed domCg_fixed2;
176 typedef domCg_ListOfFixed domCg_fixed3;
177 typedef domCg_ListOfFixed domCg_fixed4;
178 typedef domCg_ListOfFixed domCg_fixed1x1;
179 typedef domCg_ListOfFixed domCg_fixed1x2;
180 typedef domCg_ListOfFixed domCg_fixed1x3;
181 typedef domCg_ListOfFixed domCg_fixed1x4;
182 typedef domCg_ListOfFixed domCg_fixed2x1;
183 typedef domCg_ListOfFixed domCg_fixed2x2;
184 typedef domCg_ListOfFixed domCg_fixed2x3;
185 typedef domCg_ListOfFixed domCg_fixed2x4;
186 typedef domCg_ListOfFixed domCg_fixed3x1;
187 typedef domCg_ListOfFixed domCg_fixed3x2;
188 typedef domCg_ListOfFixed domCg_fixed3x3;
189 typedef domCg_ListOfFixed domCg_fixed3x4;
190 typedef domCg_ListOfFixed domCg_fixed4x1;
191 typedef domCg_ListOfFixed domCg_fixed4x2;
192 typedef domCg_ListOfFixed domCg_fixed4x3;
193 typedef domCg_ListOfFixed domCg_fixed4x4;
194 typedef xsToken domCg_identifier;
195 typedef xsNonNegativeInteger domGLES_MAX_LIGHTS_index;
196 typedef xsNonNegativeInteger domGLES_MAX_CLIP_PLANES_index;
197 typedef xsNonNegativeInteger domGLES_MAX_TEXTURE_COORDS_index;
198 typedef xsNonNegativeInteger domGLES_MAX_TEXTURE_IMAGE_UNITS_index;
199 typedef xsNonNegativeInteger domGles_texcombiner_argument_index_type;
200 typedef xsNCName domGles_rendertarget_common;
201 
202 /**
203  * An enumuerated type specifying the acceptable morph methods.
204  */
205 enum domMorphMethodType {
206     MORPHMETHODTYPE_NORMALIZED,
207     MORPHMETHODTYPE_RELATIVE,
208     MORPHMETHODTYPE_COUNT = 2
209 };
210 
211 /**
212  * An enumerated type specifying the acceptable node types.
213  */
214 enum domNodeType {
215     NODETYPE_JOINT,
216     NODETYPE_NODE,
217     NODETYPE_COUNT = 2
218 };
219 
220 /**
221  * An enumerated type specifying the acceptable up-axis values.
222  */
223 enum domUpAxisType {
224     UPAXISTYPE_X_UP,
225     UPAXISTYPE_Y_UP,
226     UPAXISTYPE_Z_UP,
227     UPAXISTYPE_COUNT = 3
228 };
229 
230 /**
231  * An enumerated type specifying the acceptable document versions.
232  */
233 enum domVersionType {
234     VERSIONTYPE_1_4_0,
235     VERSIONTYPE_1_4_1,
236     VERSIONTYPE_COUNT = 2
237 };
238 
239 enum domFx_opaque_enum {
240     FX_OPAQUE_ENUM_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. */
241     FX_OPAQUE_ENUM_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. */
242     FX_OPAQUE_ENUM_COUNT = 2
243 };
244 
245 enum domFx_surface_type_enum {
246     FX_SURFACE_TYPE_ENUM_UNTYPED,       /**< When a surface's type attribute is set to UNTYPED, its type is initially unknown and established later by the context in which it is used, such as by a texture sampler that references it. A surface of any other type may be changed into an UNTYPED surface at run-time, as if it were created by <newparam>, using <setparam>. If there is a type mismatch between a <setparam> operation and what the run-time decides the type should be, the result is profile- and platform-specific behavior. */
247     FX_SURFACE_TYPE_ENUM_1D,
248     FX_SURFACE_TYPE_ENUM_2D,
249     FX_SURFACE_TYPE_ENUM_3D,
250     FX_SURFACE_TYPE_ENUM_RECT,
251     FX_SURFACE_TYPE_ENUM_CUBE,
252     FX_SURFACE_TYPE_ENUM_DEPTH,
253     FX_SURFACE_TYPE_ENUM_COUNT = 7
254 };
255 
256 enum domFx_surface_face_enum {
257     FX_SURFACE_FACE_ENUM_POSITIVE_X,
258     FX_SURFACE_FACE_ENUM_NEGATIVE_X,
259     FX_SURFACE_FACE_ENUM_POSITIVE_Y,
260     FX_SURFACE_FACE_ENUM_NEGATIVE_Y,
261     FX_SURFACE_FACE_ENUM_POSITIVE_Z,
262     FX_SURFACE_FACE_ENUM_NEGATIVE_Z,
263     FX_SURFACE_FACE_ENUM_COUNT = 6
264 };
265 
266 /**
267  * The per-texel layout of the format.  The length of the string indicate
268  * how many channels there are and the letter respresents the name of the
269  * channel.  There are typically 0 to 4 channels.
270  */
271 enum domFx_surface_format_hint_channels_enum {
272     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGB,       /**< RGB color  map */
273     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_RGBA,      /**< RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power */
274     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_L,     /**< Luminance map often used for light mapping */
275     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_LA,        /**< Luminance+Alpha map often used for light mapping */
276     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_D,     /**< Depth map often used for displacement, parellax, relief, or shadow mapping */
277     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZ,       /**< Typically used for normal maps or 3component displacement maps. */
278     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_XYZW,      /**< Typically used for normal maps where W is the depth for relief or parrallax mapping */
279     FX_SURFACE_FORMAT_HINT_CHANNELS_ENUM_COUNT = 7
280 };
281 
282 /**
283  * Each channel of the texel has a precision.  Typically these are all linked
284  * together.  An exact format lay lower the precision of an individual channel
285  * but applying a higher precision by linking the channels together may still
286  * convey the same information.
287  */
288 enum domFx_surface_format_hint_precision_enum {
289     FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_LOW,      /**< For integers this typically represents 8 bits.  For floats typically 16 bits. */
290     FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_MID,      /**< For integers this typically represents 8 to 24 bits.  For floats typically 16 to 32 bits. */
291     FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_HIGH,     /**< For integers this typically represents 16 to 32 bits.  For floats typically 24 to 32 bits. */
292     FX_SURFACE_FORMAT_HINT_PRECISION_ENUM_COUNT = 3
293 };
294 
295 /**
296  * Each channel represents a range of values. Some example ranges are signed
297  * or unsigned integers, or between between a clamped range such as 0.0f to
298  * 1.0f, or high dynamic range via floating point
299  */
300 enum domFx_surface_format_hint_range_enum {
301     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SNORM,        /**< Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats. */
302     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UNORM,        /**< Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats. */
303     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_SINT,     /**< Format is representing signed integer numbers.  (ex. 8bits = -128 to 127) */
304     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_UINT,     /**< Format is representing unsigned integer numbers.  (ex. 8bits = 0 to 255) */
305     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_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. */
306     FX_SURFACE_FORMAT_HINT_RANGE_ENUM_COUNT = 5
307 };
308 
309 /**
310  * Additional hints about data relationships and other things to help the
311  * application pick the best format.
312  */
313 enum domFx_surface_format_hint_option_enum {
314     FX_SURFACE_FORMAT_HINT_OPTION_ENUM_SRGB_GAMMA,      /**< colors are stored with respect to the sRGB 2.2 gamma curve rather than linear */
315     FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED3,     /**< the texel's XYZ/RGB should be normalized such as in a normal map. */
316     FX_SURFACE_FORMAT_HINT_OPTION_ENUM_NORMALIZED4,     /**< the texel's XYZW/RGBA should be normalized such as in a normal map. */
317     FX_SURFACE_FORMAT_HINT_OPTION_ENUM_COMPRESSABLE,        /**< The surface may use run-time compression.  Considering the best compression based on desired, channel, range, precision, and options */
318     FX_SURFACE_FORMAT_HINT_OPTION_ENUM_COUNT = 4
319 };
320 
321 enum domFx_sampler_wrap_common {
322     FX_SAMPLER_WRAP_COMMON_NONE,
323     FX_SAMPLER_WRAP_COMMON_WRAP,
324     FX_SAMPLER_WRAP_COMMON_MIRROR,
325     FX_SAMPLER_WRAP_COMMON_CLAMP,
326     FX_SAMPLER_WRAP_COMMON_BORDER,
327     FX_SAMPLER_WRAP_COMMON_COUNT = 5
328 };
329 
330 enum domFx_sampler_filter_common {
331     FX_SAMPLER_FILTER_COMMON_NONE,
332     FX_SAMPLER_FILTER_COMMON_NEAREST,
333     FX_SAMPLER_FILTER_COMMON_LINEAR,
334     FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_NEAREST,
335     FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_NEAREST,
336     FX_SAMPLER_FILTER_COMMON_NEAREST_MIPMAP_LINEAR,
337     FX_SAMPLER_FILTER_COMMON_LINEAR_MIPMAP_LINEAR,
338     FX_SAMPLER_FILTER_COMMON_COUNT = 7
339 };
340 
341 enum domFx_modifier_enum_common {
342     FX_MODIFIER_ENUM_COMMON_CONST,
343     FX_MODIFIER_ENUM_COMMON_UNIFORM,
344     FX_MODIFIER_ENUM_COMMON_VARYING,
345     FX_MODIFIER_ENUM_COMMON_STATIC,
346     FX_MODIFIER_ENUM_COMMON_VOLATILE,
347     FX_MODIFIER_ENUM_COMMON_EXTERN,
348     FX_MODIFIER_ENUM_COMMON_SHARED,
349     FX_MODIFIER_ENUM_COMMON_COUNT = 7
350 };
351 
352 enum domFx_pipeline_stage_common {
353     FX_PIPELINE_STAGE_COMMON_VERTEXPROGRAM,
354     FX_PIPELINE_STAGE_COMMON_FRAGMENTPROGRAM,
355     FX_PIPELINE_STAGE_COMMON_VERTEXSHADER,
356     FX_PIPELINE_STAGE_COMMON_PIXELSHADER,
357     FX_PIPELINE_STAGE_COMMON_COUNT = 4
358 };
359 
360 enum domGl_blend_type {
361     GL_BLEND_TYPE_ZERO = 0x0,
362     GL_BLEND_TYPE_ONE = 0x1,
363     GL_BLEND_TYPE_SRC_COLOR = 0x0300,
364     GL_BLEND_TYPE_ONE_MINUS_SRC_COLOR = 0x0301,
365     GL_BLEND_TYPE_DEST_COLOR = 0x0306,
366     GL_BLEND_TYPE_ONE_MINUS_DEST_COLOR = 0x0307,
367     GL_BLEND_TYPE_SRC_ALPHA = 0x0302,
368     GL_BLEND_TYPE_ONE_MINUS_SRC_ALPHA = 0x0303,
369     GL_BLEND_TYPE_DST_ALPHA = 0x0304,
370     GL_BLEND_TYPE_ONE_MINUS_DST_ALPHA = 0x0305,
371     GL_BLEND_TYPE_CONSTANT_COLOR = 0x8001,
372     GL_BLEND_TYPE_ONE_MINUS_CONSTANT_COLOR = 0x8002,
373     GL_BLEND_TYPE_CONSTANT_ALPHA = 0x8003,
374     GL_BLEND_TYPE_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
375     GL_BLEND_TYPE_SRC_ALPHA_SATURATE = 0x0308,
376     GL_BLEND_TYPE_COUNT = 15
377 };
378 
379 enum domGl_face_type {
380     GL_FACE_TYPE_FRONT = 0x0404,
381     GL_FACE_TYPE_BACK = 0x0405,
382     GL_FACE_TYPE_FRONT_AND_BACK = 0x0408,
383     GL_FACE_TYPE_COUNT = 3
384 };
385 
386 enum domGl_blend_equation_type {
387     GL_BLEND_EQUATION_TYPE_FUNC_ADD = 0x8006,
388     GL_BLEND_EQUATION_TYPE_FUNC_SUBTRACT = 0x800A,
389     GL_BLEND_EQUATION_TYPE_FUNC_REVERSE_SUBTRACT = 0x800B,
390     GL_BLEND_EQUATION_TYPE_MIN = 0x8007,
391     GL_BLEND_EQUATION_TYPE_MAX = 0x8008,
392     GL_BLEND_EQUATION_TYPE_COUNT = 5
393 };
394 
395 enum domGl_func_type {
396     GL_FUNC_TYPE_NEVER = 0x0200,
397     GL_FUNC_TYPE_LESS = 0x0201,
398     GL_FUNC_TYPE_LEQUAL = 0x0203,
399     GL_FUNC_TYPE_EQUAL = 0x0202,
400     GL_FUNC_TYPE_GREATER = 0x0204,
401     GL_FUNC_TYPE_NOTEQUAL = 0x0205,
402     GL_FUNC_TYPE_GEQUAL = 0x0206,
403     GL_FUNC_TYPE_ALWAYS = 0x0207,
404     GL_FUNC_TYPE_COUNT = 8
405 };
406 
407 enum domGl_stencil_op_type {
408     GL_STENCIL_OP_TYPE_KEEP = 0x1E00,
409     GL_STENCIL_OP_TYPE_ZERO = 0x0,
410     GL_STENCIL_OP_TYPE_REPLACE = 0x1E01,
411     GL_STENCIL_OP_TYPE_INCR = 0x1E02,
412     GL_STENCIL_OP_TYPE_DECR = 0x1E03,
413     GL_STENCIL_OP_TYPE_INVERT = 0x150A,
414     GL_STENCIL_OP_TYPE_INCR_WRAP = 0x8507,
415     GL_STENCIL_OP_TYPE_DECR_WRAP = 0x8508,
416     GL_STENCIL_OP_TYPE_COUNT = 8
417 };
418 
419 enum domGl_material_type {
420     GL_MATERIAL_TYPE_EMISSION = 0x1600,
421     GL_MATERIAL_TYPE_AMBIENT = 0x1200,
422     GL_MATERIAL_TYPE_DIFFUSE = 0x1201,
423     GL_MATERIAL_TYPE_SPECULAR = 0x1202,
424     GL_MATERIAL_TYPE_AMBIENT_AND_DIFFUSE = 0x1602,
425     GL_MATERIAL_TYPE_COUNT = 5
426 };
427 
428 enum domGl_fog_type {
429     GL_FOG_TYPE_LINEAR = 0x2601,
430     GL_FOG_TYPE_EXP = 0x0800,
431     GL_FOG_TYPE_EXP2 = 0x0801,
432     GL_FOG_TYPE_COUNT = 3
433 };
434 
435 enum domGl_fog_coord_src_type {
436     GL_FOG_COORD_SRC_TYPE_FOG_COORDINATE = 0x8451,
437     GL_FOG_COORD_SRC_TYPE_FRAGMENT_DEPTH = 0x8452,
438     GL_FOG_COORD_SRC_TYPE_COUNT = 2
439 };
440 
441 enum domGl_front_face_type {
442     GL_FRONT_FACE_TYPE_CW = 0x0900,
443     GL_FRONT_FACE_TYPE_CCW = 0x0901,
444     GL_FRONT_FACE_TYPE_COUNT = 2
445 };
446 
447 enum domGl_light_model_color_control_type {
448     GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SINGLE_COLOR = 0x81F9,
449     GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_SEPARATE_SPECULAR_COLOR = 0x81FA,
450     GL_LIGHT_MODEL_COLOR_CONTROL_TYPE_COUNT = 2
451 };
452 
453 enum domGl_logic_op_type {
454     GL_LOGIC_OP_TYPE_CLEAR = 0x1500,
455     GL_LOGIC_OP_TYPE_AND = 0x1501,
456     GL_LOGIC_OP_TYPE_AND_REVERSE = 0x1502,
457     GL_LOGIC_OP_TYPE_COPY = 0x1503,
458     GL_LOGIC_OP_TYPE_AND_INVERTED = 0x1504,
459     GL_LOGIC_OP_TYPE_NOOP = 0x1505,
460     GL_LOGIC_OP_TYPE_XOR = 0x1506,
461     GL_LOGIC_OP_TYPE_OR = 0x1507,
462     GL_LOGIC_OP_TYPE_NOR = 0x1508,
463     GL_LOGIC_OP_TYPE_EQUIV = 0x1509,
464     GL_LOGIC_OP_TYPE_INVERT = 0x150A,
465     GL_LOGIC_OP_TYPE_OR_REVERSE = 0x150B,
466     GL_LOGIC_OP_TYPE_COPY_INVERTED = 0x150C,
467     GL_LOGIC_OP_TYPE_NAND = 0x150E,
468     GL_LOGIC_OP_TYPE_SET = 0x150F,
469     GL_LOGIC_OP_TYPE_COUNT = 15
470 };
471 
472 enum domGl_polygon_mode_type {
473     GL_POLYGON_MODE_TYPE_POINT = 0x1B00,
474     GL_POLYGON_MODE_TYPE_LINE = 0x1B01,
475     GL_POLYGON_MODE_TYPE_FILL = 0x1B02,
476     GL_POLYGON_MODE_TYPE_COUNT = 3
477 };
478 
479 enum domGl_shade_model_type {
480     GL_SHADE_MODEL_TYPE_FLAT = 0x1D00,
481     GL_SHADE_MODEL_TYPE_SMOOTH = 0x1D01,
482     GL_SHADE_MODEL_TYPE_COUNT = 2
483 };
484 
485 enum domGlsl_pipeline_stage {
486     GLSL_PIPELINE_STAGE_VERTEXPROGRAM,
487     GLSL_PIPELINE_STAGE_FRAGMENTPROGRAM,
488     GLSL_PIPELINE_STAGE_COUNT = 2
489 };
490 
491 enum domCg_pipeline_stage {
492     CG_PIPELINE_STAGE_VERTEX,
493     CG_PIPELINE_STAGE_FRAGMENT,
494     CG_PIPELINE_STAGE_COUNT = 2
495 };
496 
497 enum domGles_texenv_mode_enums {
498     GLES_TEXENV_MODE_ENUMS_REPLACE = 0x1E01,
499     GLES_TEXENV_MODE_ENUMS_MODULATE = 0x2100,
500     GLES_TEXENV_MODE_ENUMS_DECAL = 0x2101,
501     GLES_TEXENV_MODE_ENUMS_BLEND = 0x0BE2,
502     GLES_TEXENV_MODE_ENUMS_ADD = 0x0104,
503     GLES_TEXENV_MODE_ENUMS_COUNT = 5
504 };
505 
506 enum domGles_texcombiner_operatorRGB_enums {
507     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_REPLACE = 0x1E01,
508     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_MODULATE = 0x2100,
509     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD = 0x0104,
510     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_ADD_SIGNED = 0x8574,
511     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_INTERPOLATE = 0x8575,
512     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_SUBTRACT = 0x84E7,
513     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGB = 0x86AE,
514     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_DOT3_RGBA = 0x86AF,
515     GLES_TEXCOMBINER_OPERATORRGB_ENUMS_COUNT = 8
516 };
517 
518 enum domGles_texcombiner_operatorAlpha_enums {
519     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_REPLACE = 0x1E01,
520     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_MODULATE = 0x2100,
521     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD = 0x0104,
522     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_ADD_SIGNED = 0x8574,
523     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_INTERPOLATE = 0x8575,
524     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_SUBTRACT = 0x84E7,
525     GLES_TEXCOMBINER_OPERATORALPHA_ENUMS_COUNT = 6
526 };
527 
528 enum domGles_texcombiner_source_enums {
529     GLES_TEXCOMBINER_SOURCE_ENUMS_TEXTURE = 0x1702,
530     GLES_TEXCOMBINER_SOURCE_ENUMS_CONSTANT = 0x8576,
531     GLES_TEXCOMBINER_SOURCE_ENUMS_PRIMARY = 0x8577,
532     GLES_TEXCOMBINER_SOURCE_ENUMS_PREVIOUS = 0x8578,
533     GLES_TEXCOMBINER_SOURCE_ENUMS_COUNT = 4
534 };
535 
536 enum domGles_texcombiner_operandRGB_enums {
537     GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_COLOR = 0x0300,
538     GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_COLOR = 0x0301,
539     GLES_TEXCOMBINER_OPERANDRGB_ENUMS_SRC_ALPHA = 0x0302,
540     GLES_TEXCOMBINER_OPERANDRGB_ENUMS_ONE_MINUS_SRC_ALPHA = 0x0303,
541     GLES_TEXCOMBINER_OPERANDRGB_ENUMS_COUNT = 4
542 };
543 
544 enum domGles_texcombiner_operandAlpha_enums {
545     GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_SRC_ALPHA = 0x0302,
546     GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_ONE_MINUS_SRC_ALPHA = 0x0303,
547     GLES_TEXCOMBINER_OPERANDALPHA_ENUMS_COUNT = 2
548 };
549 
550 enum domGles_sampler_wrap {
551     GLES_SAMPLER_WRAP_REPEAT,
552     GLES_SAMPLER_WRAP_CLAMP,
553     GLES_SAMPLER_WRAP_CLAMP_TO_EDGE,
554     GLES_SAMPLER_WRAP_MIRRORED_REPEAT,      /**< supported by GLES 1.1 only */
555     GLES_SAMPLER_WRAP_COUNT = 4
556 };
557 
558 enum domGles_stencil_op_type {
559     GLES_STENCIL_OP_TYPE_KEEP = 0x1E00,
560     GLES_STENCIL_OP_TYPE_ZERO = 0x0,
561     GLES_STENCIL_OP_TYPE_REPLACE = 0x1E01,
562     GLES_STENCIL_OP_TYPE_INCR = 0x1E02,
563     GLES_STENCIL_OP_TYPE_DECR = 0x1E03,
564     GLES_STENCIL_OP_TYPE_INVERT = 0x150A,
565     GLES_STENCIL_OP_TYPE_COUNT = 6
566 };
567 
568 enum domSpringType {
569     SPRINGTYPE_LINEAR,
570     SPRINGTYPE_ANGULAR,
571     SPRINGTYPE_COUNT = 2
572 };
573 
574 enum domGl_enumeration {
575     GL_ENUMERATION_ZERO = 0x0,
576     GL_ENUMERATION_ONE = 0x1,
577     GL_ENUMERATION_SRC_COLOR = 0x0300,
578     GL_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301,
579     GL_ENUMERATION_DEST_COLOR = 0x0306,
580     GL_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307,
581     GL_ENUMERATION_SRC_ALPHA = 0x0302,
582     GL_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303,
583     GL_ENUMERATION_DST_ALPHA = 0x0304,
584     GL_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305,
585     GL_ENUMERATION_CONSTANT_COLOR = 0x8001,
586     GL_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002,
587     GL_ENUMERATION_CONSTANT_ALPHA = 0x8003,
588     GL_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
589     GL_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308,
590     GL_ENUMERATION_FRONT = 0x0404,
591     GL_ENUMERATION_BACK = 0x0405,
592     GL_ENUMERATION_FRONT_AND_BACK = 0x0408,
593     GL_ENUMERATION_FUNC_ADD = 0x8006,
594     GL_ENUMERATION_FUNC_SUBTRACT = 0x800A,
595     GL_ENUMERATION_FUNC_REVERSE_SUBTRACT = 0x800B,
596     GL_ENUMERATION_MIN = 0x8007,
597     GL_ENUMERATION_MAX = 0x8008,
598     GL_ENUMERATION_NEVER = 0x0200,
599     GL_ENUMERATION_LESS = 0x0201,
600     GL_ENUMERATION_LEQUAL = 0x0203,
601     GL_ENUMERATION_EQUAL = 0x0202,
602     GL_ENUMERATION_GREATER = 0x0204,
603     GL_ENUMERATION_NOTEQUAL = 0x0205,
604     GL_ENUMERATION_GEQUAL = 0x0206,
605     GL_ENUMERATION_ALWAYS = 0x0207,
606     GL_ENUMERATION_KEEP = 0x1E00,
607     GL_ENUMERATION_REPLACE = 0x1E01,
608     GL_ENUMERATION_INCR = 0x1E02,
609     GL_ENUMERATION_DECR = 0x1E03,
610     GL_ENUMERATION_INVERT = 0x150A,
611     GL_ENUMERATION_INCR_WRAP = 0x8507,
612     GL_ENUMERATION_DECR_WRAP = 0x8508,
613     GL_ENUMERATION_EMISSION = 0x1600,
614     GL_ENUMERATION_AMBIENT = 0x1200,
615     GL_ENUMERATION_DIFFUSE = 0x1201,
616     GL_ENUMERATION_SPECULAR = 0x1202,
617     GL_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602,
618     GL_ENUMERATION_LINEAR = 0x2601,
619     GL_ENUMERATION_EXP = 0x0800,
620     GL_ENUMERATION_EXP2 = 0x0801,
621     GL_ENUMERATION_FOG_COORDINATE = 0x8451,
622     GL_ENUMERATION_FRAGMENT_DEPTH = 0x8452,
623     GL_ENUMERATION_CW = 0x0900,
624     GL_ENUMERATION_CCW = 0x0901,
625     GL_ENUMERATION_SINGLE_COLOR = 0x81F9,
626     GL_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA,
627     GL_ENUMERATION_CLEAR = 0x1500,
628     GL_ENUMERATION_AND = 0x1501,
629     GL_ENUMERATION_AND_REVERSE = 0x1502,
630     GL_ENUMERATION_COPY = 0x1503,
631     GL_ENUMERATION_AND_INVERTED = 0x1504,
632     GL_ENUMERATION_NOOP = 0x1505,
633     GL_ENUMERATION_XOR = 0x1506,
634     GL_ENUMERATION_OR = 0x1507,
635     GL_ENUMERATION_NOR = 0x1508,
636     GL_ENUMERATION_EQUIV = 0x1509,
637     GL_ENUMERATION_OR_REVERSE = 0x150B,
638     GL_ENUMERATION_COPY_INVERTED = 0x150C,
639     GL_ENUMERATION_NAND = 0x150E,
640     GL_ENUMERATION_SET = 0x150F,
641     GL_ENUMERATION_POINT = 0x1B00,
642     GL_ENUMERATION_LINE = 0x1B01,
643     GL_ENUMERATION_FILL = 0x1B02,
644     GL_ENUMERATION_FLAT = 0x1D00,
645     GL_ENUMERATION_SMOOTH = 0x1D01,
646     GL_ENUMERATION_COUNT = 72
647 };
648 
649 enum domGles_enumeration {
650     GLES_ENUMERATION_ZERO = 0x0,
651     GLES_ENUMERATION_ONE = 0x1,
652     GLES_ENUMERATION_SRC_COLOR = 0x0300,
653     GLES_ENUMERATION_ONE_MINUS_SRC_COLOR = 0x0301,
654     GLES_ENUMERATION_DEST_COLOR = 0x0306,
655     GLES_ENUMERATION_ONE_MINUS_DEST_COLOR = 0x0307,
656     GLES_ENUMERATION_SRC_ALPHA = 0x0302,
657     GLES_ENUMERATION_ONE_MINUS_SRC_ALPHA = 0x0303,
658     GLES_ENUMERATION_DST_ALPHA = 0x0304,
659     GLES_ENUMERATION_ONE_MINUS_DST_ALPHA = 0x0305,
660     GLES_ENUMERATION_CONSTANT_COLOR = 0x8001,
661     GLES_ENUMERATION_ONE_MINUS_CONSTANT_COLOR = 0x8002,
662     GLES_ENUMERATION_CONSTANT_ALPHA = 0x8003,
663     GLES_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA = 0x8004,
664     GLES_ENUMERATION_SRC_ALPHA_SATURATE = 0x0308,
665     GLES_ENUMERATION_FRONT = 0x0404,
666     GLES_ENUMERATION_BACK = 0x0405,
667     GLES_ENUMERATION_FRONT_AND_BACK = 0x0408,
668     GLES_ENUMERATION_NEVER = 0x0200,
669     GLES_ENUMERATION_LESS = 0x0201,
670     GLES_ENUMERATION_LEQUAL = 0x0203,
671     GLES_ENUMERATION_EQUAL = 0x0202,
672     GLES_ENUMERATION_GREATER = 0x0204,
673     GLES_ENUMERATION_NOTEQUAL = 0x0205,
674     GLES_ENUMERATION_GEQUAL = 0x0206,
675     GLES_ENUMERATION_ALWAYS = 0x0207,
676     GLES_ENUMERATION_KEEP = 0x1E00,
677     GLES_ENUMERATION_REPLACE = 0x1E01,
678     GLES_ENUMERATION_INCR = 0x1E02,
679     GLES_ENUMERATION_DECR = 0x1E03,
680     GLES_ENUMERATION_INVERT = 0x150A,
681     GLES_ENUMERATION_INCR_WRAP = 0x8507,
682     GLES_ENUMERATION_DECR_WRAP = 0x8508,
683     GLES_ENUMERATION_EMISSION = 0x1600,
684     GLES_ENUMERATION_AMBIENT = 0x1200,
685     GLES_ENUMERATION_DIFFUSE = 0x1201,
686     GLES_ENUMERATION_SPECULAR = 0x1202,
687     GLES_ENUMERATION_AMBIENT_AND_DIFFUSE = 0x1602,
688     GLES_ENUMERATION_LINEAR = 0x2601,
689     GLES_ENUMERATION_EXP = 0x0800,
690     GLES_ENUMERATION_EXP2 = 0x0801,
691     GLES_ENUMERATION_CW = 0x0900,
692     GLES_ENUMERATION_CCW = 0x0901,
693     GLES_ENUMERATION_SINGLE_COLOR = 0x81F9,
694     GLES_ENUMERATION_SEPARATE_SPECULAR_COLOR = 0x81FA,
695     GLES_ENUMERATION_CLEAR = 0x1500,
696     GLES_ENUMERATION_AND = 0x1501,
697     GLES_ENUMERATION_AND_REVERSE = 0x1502,
698     GLES_ENUMERATION_COPY = 0x1503,
699     GLES_ENUMERATION_AND_INVERTED = 0x1504,
700     GLES_ENUMERATION_NOOP = 0x1505,
701     GLES_ENUMERATION_XOR = 0x1506,
702     GLES_ENUMERATION_OR = 0x1507,
703     GLES_ENUMERATION_NOR = 0x1508,
704     GLES_ENUMERATION_EQUIV = 0x1509,
705     GLES_ENUMERATION_OR_REVERSE = 0x150B,
706     GLES_ENUMERATION_COPY_INVERTED = 0x150C,
707     GLES_ENUMERATION_NAND = 0x150E,
708     GLES_ENUMERATION_SET = 0x150F,
709     GLES_ENUMERATION_POINT = 0x1B00,
710     GLES_ENUMERATION_LINE = 0x1B01,
711     GLES_ENUMERATION_FILL = 0x1B02,
712     GLES_ENUMERATION_FLAT = 0x1D00,
713     GLES_ENUMERATION_SMOOTH = 0x1D01,
714     GLES_ENUMERATION_COUNT = 65
715 };
716 
717 //Element Type Enum
718 namespace COLLADA_TYPE
719 {
720 typedef int TypeEnum;
721 const int
722     NO_TYPE = 0,
723     ANY = 1,
724     INPUTGLOBAL = 2,
725     INPUTLOCAL = 3,
726     INPUTLOCALOFFSET = 4,
727     INSTANCEWITHEXTRA = 5,
728     TARGETABLEFLOAT = 6,
729     TARGETABLEFLOAT3 = 7,
730     FX_SURFACE_FORMAT_HINT_COMMON = 8,
731     CHANNELS = 9,
732     RANGE = 10,
733     PRECISION = 11,
734     OPTION = 12,
735     FX_SURFACE_INIT_PLANAR_COMMON = 13,
736     ALL = 14,
737     FX_SURFACE_INIT_VOLUME_COMMON = 15,
738     PRIMARY = 16,
739     FX_SURFACE_INIT_CUBE_COMMON = 17,
740     ORDER = 18,
741     FACE = 19,
742     FX_SURFACE_INIT_FROM_COMMON = 20,
743     FX_SURFACE_COMMON = 21,
744     FORMAT = 22,
745     SIZE = 23,
746     VIEWPORT_RATIO = 24,
747     MIP_LEVELS = 25,
748     MIPMAP_GENERATE = 26,
749     FX_SAMPLER1D_COMMON = 27,
750     SOURCE = 28,
751     WRAP_S = 29,
752     MINFILTER = 30,
753     MAGFILTER = 31,
754     MIPFILTER = 32,
755     BORDER_COLOR = 33,
756     MIPMAP_MAXLEVEL = 34,
757     MIPMAP_BIAS = 35,
758     FX_SAMPLER2D_COMMON = 36,
759     WRAP_T = 37,
760     FX_SAMPLER3D_COMMON = 38,
761     WRAP_P = 39,
762     FX_SAMPLERCUBE_COMMON = 40,
763     FX_SAMPLERRECT_COMMON = 41,
764     FX_SAMPLERDEPTH_COMMON = 42,
765     FX_COLORTARGET_COMMON = 43,
766     FX_DEPTHTARGET_COMMON = 44,
767     FX_STENCILTARGET_COMMON = 45,
768     FX_CLEARCOLOR_COMMON = 46,
769     FX_CLEARDEPTH_COMMON = 47,
770     FX_CLEARSTENCIL_COMMON = 48,
771     FX_ANNOTATE_COMMON = 49,
772     FX_INCLUDE_COMMON = 50,
773     FX_NEWPARAM_COMMON = 51,
774     SEMANTIC = 52,
775     MODIFIER = 53,
776     FX_CODE_PROFILE = 54,
777     GL_SAMPLER1D = 55,
778     GL_SAMPLER2D = 56,
779     GL_SAMPLER3D = 57,
780     GL_SAMPLERCUBE = 58,
781     GL_SAMPLERRECT = 59,
782     GL_SAMPLERDEPTH = 60,
783     GLSL_NEWARRAY_TYPE = 61,
784     GLSL_SETARRAY_TYPE = 62,
785     GLSL_SURFACE_TYPE = 63,
786     GENERATOR = 64,
787     NAME = 65,
788     GLSL_NEWPARAM = 66,
789     GLSL_SETPARAM_SIMPLE = 67,
790     GLSL_SETPARAM = 68,
791     COMMON_FLOAT_OR_PARAM_TYPE = 69,
792     FLOAT = 70,
793     PARAM = 71,
794     COMMON_COLOR_OR_TEXTURE_TYPE = 72,
795     COLOR = 73,
796     TEXTURE = 74,
797     COMMON_TRANSPARENT_TYPE = 75,
798     COMMON_NEWPARAM_TYPE = 76,
799     FLOAT2 = 77,
800     FLOAT3 = 78,
801     FLOAT4 = 79,
802     CG_SAMPLER1D = 80,
803     CG_SAMPLER2D = 81,
804     CG_SAMPLER3D = 82,
805     CG_SAMPLERCUBE = 83,
806     CG_SAMPLERRECT = 84,
807     CG_SAMPLERDEPTH = 85,
808     CG_CONNECT_PARAM = 86,
809     CG_NEWARRAY_TYPE = 87,
810     CG_SETARRAY_TYPE = 88,
811     CG_SETUSER_TYPE = 89,
812     CG_SURFACE_TYPE = 90,
813     CG_NEWPARAM = 91,
814     CG_SETPARAM_SIMPLE = 92,
815     CG_SETPARAM = 93,
816     GLES_TEXTURE_CONSTANT_TYPE = 94,
817     GLES_TEXENV_COMMAND_TYPE = 95,
818     GLES_TEXCOMBINER_ARGUMENTRGB_TYPE = 96,
819     GLES_TEXCOMBINER_ARGUMENTALPHA_TYPE = 97,
820     GLES_TEXCOMBINER_COMMANDRGB_TYPE = 98,
821     GLES_TEXCOMBINER_COMMANDALPHA_TYPE = 99,
822     GLES_TEXCOMBINER_COMMAND_TYPE = 100,
823     GLES_TEXTURE_PIPELINE = 101,
824     GLES_TEXTURE_UNIT = 102,
825     SURFACE = 103,
826     SAMPLER_STATE = 104,
827     TEXCOORD = 105,
828     GLES_SAMPLER_STATE = 106,
829     GLES_NEWPARAM = 107,
830     FX_SURFACE_INIT_COMMON = 108,
831     INIT_AS_NULL = 109,
832     INIT_AS_TARGET = 110,
833     FX_ANNOTATE_TYPE_COMMON = 111,
834     BOOL = 112,
835     BOOL2 = 113,
836     BOOL3 = 114,
837     BOOL4 = 115,
838     INT = 116,
839     INT2 = 117,
840     INT3 = 118,
841     INT4 = 119,
842     FLOAT2X2 = 120,
843     FLOAT3X3 = 121,
844     FLOAT4X4 = 122,
845     STRING = 123,
846     FX_BASIC_TYPE_COMMON = 124,
847     FLOAT1X1 = 125,
848     FLOAT1X2 = 126,
849     FLOAT1X3 = 127,
850     FLOAT1X4 = 128,
851     FLOAT2X1 = 129,
852     FLOAT2X3 = 130,
853     FLOAT2X4 = 131,
854     FLOAT3X1 = 132,
855     FLOAT3X2 = 133,
856     FLOAT3X4 = 134,
857     FLOAT4X1 = 135,
858     FLOAT4X2 = 136,
859     FLOAT4X3 = 137,
860     ENUM = 138,
861     GL_PIPELINE_SETTINGS = 139,
862     ALPHA_FUNC = 140,
863     FUNC = 141,
864     VALUE = 142,
865     BLEND_FUNC = 143,
866     SRC = 144,
867     DEST = 145,
868     BLEND_FUNC_SEPARATE = 146,
869     SRC_RGB = 147,
870     DEST_RGB = 148,
871     SRC_ALPHA = 149,
872     DEST_ALPHA = 150,
873     BLEND_EQUATION = 151,
874     BLEND_EQUATION_SEPARATE = 152,
875     RGB = 153,
876     ALPHA = 154,
877     COLOR_MATERIAL = 155,
878     MODE = 156,
879     CULL_FACE = 157,
880     DEPTH_FUNC = 158,
881     FOG_MODE = 159,
882     FOG_COORD_SRC = 160,
883     FRONT_FACE = 161,
884     LIGHT_MODEL_COLOR_CONTROL = 162,
885     LOGIC_OP = 163,
886     POLYGON_MODE = 164,
887     SHADE_MODEL = 165,
888     STENCIL_FUNC = 166,
889     REF = 167,
890     MASK = 168,
891     STENCIL_OP = 169,
892     FAIL = 170,
893     ZFAIL = 171,
894     ZPASS = 172,
895     STENCIL_FUNC_SEPARATE = 173,
896     FRONT = 174,
897     BACK = 175,
898     STENCIL_OP_SEPARATE = 176,
899     STENCIL_MASK_SEPARATE = 177,
900     LIGHT_ENABLE = 178,
901     LIGHT_AMBIENT = 179,
902     LIGHT_DIFFUSE = 180,
903     LIGHT_SPECULAR = 181,
904     LIGHT_POSITION = 182,
905     LIGHT_CONSTANT_ATTENUATION = 183,
906     LIGHT_LINEAR_ATTENUATION = 184,
907     LIGHT_QUADRATIC_ATTENUATION = 185,
908     LIGHT_SPOT_CUTOFF = 186,
909     LIGHT_SPOT_DIRECTION = 187,
910     LIGHT_SPOT_EXPONENT = 188,
911     TEXTURE1D = 189,
912     TEXTURE2D = 190,
913     TEXTURE3D = 191,
914     TEXTURECUBE = 192,
915     TEXTURERECT = 193,
916     TEXTUREDEPTH = 194,
917     TEXTURE1D_ENABLE = 195,
918     TEXTURE2D_ENABLE = 196,
919     TEXTURE3D_ENABLE = 197,
920     TEXTURECUBE_ENABLE = 198,
921     TEXTURERECT_ENABLE = 199,
922     TEXTUREDEPTH_ENABLE = 200,
923     TEXTURE_ENV_COLOR = 201,
924     TEXTURE_ENV_MODE = 202,
925     CLIP_PLANE = 203,
926     CLIP_PLANE_ENABLE = 204,
927     BLEND_COLOR = 205,
928     CLEAR_COLOR = 206,
929     CLEAR_STENCIL = 207,
930     CLEAR_DEPTH = 208,
931     COLOR_MASK = 209,
932     DEPTH_BOUNDS = 210,
933     DEPTH_MASK = 211,
934     DEPTH_RANGE = 212,
935     FOG_DENSITY = 213,
936     FOG_START = 214,
937     FOG_END = 215,
938     FOG_COLOR = 216,
939     LIGHT_MODEL_AMBIENT = 217,
940     LIGHTING_ENABLE = 218,
941     LINE_STIPPLE = 219,
942     LINE_WIDTH = 220,
943     MATERIAL_AMBIENT = 221,
944     MATERIAL_DIFFUSE = 222,
945     MATERIAL_EMISSION = 223,
946     MATERIAL_SHININESS = 224,
947     MATERIAL_SPECULAR = 225,
948     MODEL_VIEW_MATRIX = 226,
949     POINT_DISTANCE_ATTENUATION = 227,
950     POINT_FADE_THRESHOLD_SIZE = 228,
951     POINT_SIZE = 229,
952     POINT_SIZE_MIN = 230,
953     POINT_SIZE_MAX = 231,
954     POLYGON_OFFSET = 232,
955     PROJECTION_MATRIX = 233,
956     SCISSOR = 234,
957     STENCIL_MASK = 235,
958     ALPHA_TEST_ENABLE = 236,
959     AUTO_NORMAL_ENABLE = 237,
960     BLEND_ENABLE = 238,
961     COLOR_LOGIC_OP_ENABLE = 239,
962     COLOR_MATERIAL_ENABLE = 240,
963     CULL_FACE_ENABLE = 241,
964     DEPTH_BOUNDS_ENABLE = 242,
965     DEPTH_CLAMP_ENABLE = 243,
966     DEPTH_TEST_ENABLE = 244,
967     DITHER_ENABLE = 245,
968     FOG_ENABLE = 246,
969     LIGHT_MODEL_LOCAL_VIEWER_ENABLE = 247,
970     LIGHT_MODEL_TWO_SIDE_ENABLE = 248,
971     LINE_SMOOTH_ENABLE = 249,
972     LINE_STIPPLE_ENABLE = 250,
973     LOGIC_OP_ENABLE = 251,
974     MULTISAMPLE_ENABLE = 252,
975     NORMALIZE_ENABLE = 253,
976     POINT_SMOOTH_ENABLE = 254,
977     POLYGON_OFFSET_FILL_ENABLE = 255,
978     POLYGON_OFFSET_LINE_ENABLE = 256,
979     POLYGON_OFFSET_POINT_ENABLE = 257,
980     POLYGON_SMOOTH_ENABLE = 258,
981     POLYGON_STIPPLE_ENABLE = 259,
982     RESCALE_NORMAL_ENABLE = 260,
983     SAMPLE_ALPHA_TO_COVERAGE_ENABLE = 261,
984     SAMPLE_ALPHA_TO_ONE_ENABLE = 262,
985     SAMPLE_COVERAGE_ENABLE = 263,
986     SCISSOR_TEST_ENABLE = 264,
987     STENCIL_TEST_ENABLE = 265,
988     GLSL_PARAM_TYPE = 266,
989     CG_PARAM_TYPE = 267,
990     BOOL1 = 268,
991     BOOL1X1 = 269,
992     BOOL1X2 = 270,
993     BOOL1X3 = 271,
994     BOOL1X4 = 272,
995     BOOL2X1 = 273,
996     BOOL2X2 = 274,
997     BOOL2X3 = 275,
998     BOOL2X4 = 276,
999     BOOL3X1 = 277,
1000     BOOL3X2 = 278,
1001     BOOL3X3 = 279,
1002     BOOL3X4 = 280,
1003     BOOL4X1 = 281,
1004     BOOL4X2 = 282,
1005     BOOL4X3 = 283,
1006     BOOL4X4 = 284,
1007     FLOAT1 = 285,
1008     INT1 = 286,
1009     INT1X1 = 287,
1010     INT1X2 = 288,
1011     INT1X3 = 289,
1012     INT1X4 = 290,
1013     INT2X1 = 291,
1014     INT2X2 = 292,
1015     INT2X3 = 293,
1016     INT2X4 = 294,
1017     INT3X1 = 295,
1018     INT3X2 = 296,
1019     INT3X3 = 297,
1020     INT3X4 = 298,
1021     INT4X1 = 299,
1022     INT4X2 = 300,
1023     INT4X3 = 301,
1024     INT4X4 = 302,
1025     HALF = 303,
1026     HALF1 = 304,
1027     HALF2 = 305,
1028     HALF3 = 306,
1029     HALF4 = 307,
1030     HALF1X1 = 308,
1031     HALF1X2 = 309,
1032     HALF1X3 = 310,
1033     HALF1X4 = 311,
1034     HALF2X1 = 312,
1035     HALF2X2 = 313,
1036     HALF2X3 = 314,
1037     HALF2X4 = 315,
1038     HALF3X1 = 316,
1039     HALF3X2 = 317,
1040     HALF3X3 = 318,
1041     HALF3X4 = 319,
1042     HALF4X1 = 320,
1043     HALF4X2 = 321,
1044     HALF4X3 = 322,
1045     HALF4X4 = 323,
1046     FIXED = 324,
1047     FIXED1 = 325,
1048     FIXED2 = 326,
1049     FIXED3 = 327,
1050     FIXED4 = 328,
1051     FIXED1X1 = 329,
1052     FIXED1X2 = 330,
1053     FIXED1X3 = 331,
1054     FIXED1X4 = 332,
1055     FIXED2X1 = 333,
1056     FIXED2X2 = 334,
1057     FIXED2X3 = 335,
1058     FIXED2X4 = 336,
1059     FIXED3X1 = 337,
1060     FIXED3X2 = 338,
1061     FIXED3X3 = 339,
1062     FIXED3X4 = 340,
1063     FIXED4X1 = 341,
1064     FIXED4X2 = 342,
1065     FIXED4X3 = 343,
1066     FIXED4X4 = 344,
1067     GLES_PIPELINE_SETTINGS = 345,
1068     TEXTURE_PIPELINE = 346,
1069     LIGHT_LINEAR_ATTENUTATION = 347,
1070     TEXTURE_PIPELINE_ENABLE = 348,
1071     GLES_BASIC_TYPE_COMMON = 349,
1072     COLLADA = 350,
1073     SCENE = 351,
1074     IDREF_ARRAY = 352,
1075     NAME_ARRAY = 353,
1076     BOOL_ARRAY = 354,
1077     FLOAT_ARRAY = 355,
1078     INT_ARRAY = 356,
1079     ACCESSOR = 357,
1080     TECHNIQUE_COMMON = 358,
1081     GEOMETRY = 359,
1082     MESH = 360,
1083     SPLINE = 361,
1084     CONTROL_VERTICES = 362,
1085     P = 363,
1086     LINES = 364,
1087     LINESTRIPS = 365,
1088     POLYGONS = 366,
1089     PH = 367,
1090     H = 368,
1091     POLYLIST = 369,
1092     VCOUNT = 370,
1093     TRIANGLES = 371,
1094     TRIFANS = 372,
1095     TRISTRIPS = 373,
1096     VERTICES = 374,
1097     LOOKAT = 375,
1098     MATRIX = 376,
1099     ROTATE = 377,
1100     SCALE = 378,
1101     SKEW = 379,
1102     TRANSLATE = 380,
1103     IMAGE = 381,
1104     DATA = 382,
1105     INIT_FROM = 383,
1106     LIGHT = 384,
1107     AMBIENT = 385,
1108     DIRECTIONAL = 386,
1109     POINT = 387,
1110     SPOT = 388,
1111     MATERIAL = 389,
1112     CAMERA = 390,
1113     OPTICS = 391,
1114     ORTHOGRAPHIC = 392,
1115     PERSPECTIVE = 393,
1116     IMAGER = 394,
1117     ANIMATION = 395,
1118     ANIMATION_CLIP = 396,
1119     CHANNEL = 397,
1120     SAMPLER = 398,
1121     CONTROLLER = 399,
1122     SKIN = 400,
1123     BIND_SHAPE_MATRIX = 401,
1124     JOINTS = 402,
1125     VERTEX_WEIGHTS = 403,
1126     V = 404,
1127     MORPH = 405,
1128     TARGETS = 406,
1129     ASSET = 407,
1130     CONTRIBUTOR = 408,
1131     AUTHOR = 409,
1132     AUTHORING_TOOL = 410,
1133     COMMENTS = 411,
1134     COPYRIGHT = 412,
1135     SOURCE_DATA = 413,
1136     CREATED = 414,
1137     KEYWORDS = 415,
1138     MODIFIED = 416,
1139     REVISION = 417,
1140     SUBJECT = 418,
1141     TITLE = 419,
1142     UNIT = 420,
1143     UP_AXIS = 421,
1144     EXTRA = 422,
1145     TECHNIQUE = 423,
1146     NODE = 424,
1147     VISUAL_SCENE = 425,
1148     EVALUATE_SCENE = 426,
1149     RENDER = 427,
1150     LAYER = 428,
1151     BIND_MATERIAL = 429,
1152     INSTANCE_CAMERA = 430,
1153     INSTANCE_CONTROLLER = 431,
1154     SKELETON = 432,
1155     INSTANCE_EFFECT = 433,
1156     TECHNIQUE_HINT = 434,
1157     SETPARAM = 435,
1158     INSTANCE_FORCE_FIELD = 436,
1159     INSTANCE_GEOMETRY = 437,
1160     INSTANCE_LIGHT = 438,
1161     INSTANCE_MATERIAL = 439,
1162     BIND = 440,
1163     BIND_VERTEX_INPUT = 441,
1164     INSTANCE_NODE = 442,
1165     INSTANCE_PHYSICS_MATERIAL = 443,
1166     INSTANCE_PHYSICS_MODEL = 444,
1167     INSTANCE_RIGID_BODY = 445,
1168     ANGULAR_VELOCITY = 446,
1169     VELOCITY = 447,
1170     DYNAMIC = 448,
1171     MASS_FRAME = 449,
1172     SHAPE = 450,
1173     HOLLOW = 451,
1174     INSTANCE_RIGID_CONSTRAINT = 452,
1175     LIBRARY_ANIMATIONS = 453,
1176     LIBRARY_ANIMATION_CLIPS = 454,
1177     LIBRARY_CAMERAS = 455,
1178     LIBRARY_CONTROLLERS = 456,
1179     LIBRARY_GEOMETRIES = 457,
1180     LIBRARY_EFFECTS = 458,
1181     LIBRARY_FORCE_FIELDS = 459,
1182     LIBRARY_IMAGES = 460,
1183     LIBRARY_LIGHTS = 461,
1184     LIBRARY_MATERIALS = 462,
1185     LIBRARY_NODES = 463,
1186     LIBRARY_PHYSICS_MATERIALS = 464,
1187     LIBRARY_PHYSICS_MODELS = 465,
1188     LIBRARY_PHYSICS_SCENES = 466,
1189     LIBRARY_VISUAL_SCENES = 467,
1190     FX_PROFILE_ABSTRACT = 468,
1191     EFFECT = 469,
1192     GL_HOOK_ABSTRACT = 470,
1193     PROFILE_GLSL = 471,
1194     PASS = 472,
1195     DRAW = 473,
1196     SHADER = 474,
1197     COMPILER_TARGET = 475,
1198     COMPILER_OPTIONS = 476,
1199     PROFILE_COMMON = 477,
1200     CONSTANT = 478,
1201     LAMBERT = 479,
1202     PHONG = 480,
1203     BLINN = 481,
1204     PROFILE_CG = 482,
1205     PROFILE_GLES = 483,
1206     COLOR_TARGET = 484,
1207     DEPTH_TARGET = 485,
1208     STENCIL_TARGET = 486,
1209     COLOR_CLEAR = 487,
1210     DEPTH_CLEAR = 488,
1211     STENCIL_CLEAR = 489,
1212     BOX = 490,
1213     HALF_EXTENTS = 491,
1214     PLANE = 492,
1215     EQUATION = 493,
1216     SPHERE = 494,
1217     RADIUS = 495,
1218     ELLIPSOID = 496,
1219     CYLINDER = 497,
1220     HEIGHT = 498,
1221     TAPERED_CYLINDER = 499,
1222     RADIUS1 = 500,
1223     RADIUS2 = 501,
1224     CAPSULE = 502,
1225     TAPERED_CAPSULE = 503,
1226     CONVEX_MESH = 504,
1227     FORCE_FIELD = 505,
1228     PHYSICS_MATERIAL = 506,
1229     PHYSICS_SCENE = 507,
1230     RIGID_BODY = 508,
1231     RIGID_CONSTRAINT = 509,
1232     REF_ATTACHMENT = 510,
1233     ATTACHMENT = 511,
1234     ENABLED = 512,
1235     INTERPENETRATE = 513,
1236     LIMITS = 514,
1237     SWING_CONE_AND_TWIST = 515,
1238     LINEAR = 516,
1239     SPRING = 517,
1240     ANGULAR = 518,
1241     PHYSICS_MODEL = 519;
1242 }
1243 
1244 // Returns the total number of schema types/dom* classes
1245 daeInt DLLSPEC colladaTypeCount();
1246 
1247 } // ColladaDOM141
1248 
1249 #endif
1250