1 #include <dae.h>
2 #include <1.5/dom/domTypes.h>
3 #include <dae/daeDom.h>
4 #include <1.5/dom/domCOLLADA.h>
5 
6 namespace ColladaDOM150 {
7 
registerDomTypes(DAE & dae)8 void registerDomTypes(DAE& dae)
9 {
10     daeAtomicType* type = NULL;
11     daeAtomicTypeList& atomicTypes = dae.getAtomicTypes();
12 
13     // TYPEDEF: Float	//check if this type has an existing base
14     type = atomicTypes.get("xsDouble");
15     if ( type == NULL ) { //register as a raw type
16         type = new daeRawRefType(dae);
17         type->_nameBindings.append("Float");
18         atomicTypes.append( type );
19     }
20     else { //add binding to existing type
21         type->_nameBindings.append("Float");
22     }
23 
24     // TYPEDEF: Int	//check if this type has an existing base
25     type = atomicTypes.get("xsLong");
26     if ( type == NULL ) { //register as a raw type
27         type = new daeRawRefType(dae);
28         type->_nameBindings.append("Int");
29         atomicTypes.append( type );
30     }
31     else { //add binding to existing type
32         type->_nameBindings.append("Int");
33     }
34 
35     // TYPEDEF: Uint	//check if this type has an existing base
36     type = atomicTypes.get("xsUnsignedLong");
37     if ( type == NULL ) { //register as a raw type
38         type = new daeRawRefType(dae);
39         type->_nameBindings.append("Uint");
40         atomicTypes.append( type );
41     }
42     else { //add binding to existing type
43         type->_nameBindings.append("Uint");
44     }
45 
46     // TYPEDEF: Sidref	//check if this type has an existing base
47     type = atomicTypes.get("xsString");
48     if ( type == NULL ) { //register as a raw type
49         type = new daeRawRefType(dae);
50         type->_nameBindings.append("Sidref");
51         atomicTypes.append( type );
52     }
53     else { //add binding to existing type
54         type->_nameBindings.append("Sidref");
55     }
56 
57     // TYPEDEF: Sid	//check if this type has an existing base
58     type = atomicTypes.get("xsNCName");
59     if ( type == NULL ) { //register as a raw type
60         type = new daeRawRefType(dae);
61         type->_nameBindings.append("Sid");
62         atomicTypes.append( type );
63     }
64     else { //add binding to existing type
65         type->_nameBindings.append("Sid");
66     }
67 
68     // TYPEDEF: List_of_bools	//check if this type has an existing base
69     type = atomicTypes.get("xsBoolean");
70     if ( type == NULL ) { //register as a raw type
71         type = new daeRawRefType(dae);
72         type->_nameBindings.append("List_of_bools");
73         atomicTypes.append( type );
74     }
75     else { //add binding to existing type
76         type->_nameBindings.append("List_of_bools");
77     }
78 
79     // TYPEDEF: List_of_floats	//check if this type has an existing base
80     type = atomicTypes.get("Float");
81     if ( type == NULL ) { //register as a raw type
82         type = new daeRawRefType(dae);
83         type->_nameBindings.append("List_of_floats");
84         atomicTypes.append( type );
85     }
86     else { //add binding to existing type
87         type->_nameBindings.append("List_of_floats");
88     }
89 
90     // TYPEDEF: List_of_hex_binary	//check if this type has an existing base
91     type = atomicTypes.get("xsHexBinary");
92     if ( type == NULL ) { //register as a raw type
93         type = new daeRawRefType(dae);
94         type->_nameBindings.append("List_of_hex_binary");
95         atomicTypes.append( type );
96     }
97     else { //add binding to existing type
98         type->_nameBindings.append("List_of_hex_binary");
99     }
100 
101     // TYPEDEF: List_of_ints	//check if this type has an existing base
102     type = atomicTypes.get("Int");
103     if ( type == NULL ) { //register as a raw type
104         type = new daeRawRefType(dae);
105         type->_nameBindings.append("List_of_ints");
106         atomicTypes.append( type );
107     }
108     else { //add binding to existing type
109         type->_nameBindings.append("List_of_ints");
110     }
111 
112     // TYPEDEF: List_of_names	//check if this type has an existing base
113     type = atomicTypes.get("xsName");
114     if ( type == NULL ) { //register as a raw type
115         type = new daeRawRefType(dae);
116         type->_nameBindings.append("List_of_names");
117         atomicTypes.append( type );
118     }
119     else { //add binding to existing type
120         type->_nameBindings.append("List_of_names");
121     }
122 
123     // TYPEDEF: List_of_idrefs	//check if this type has an existing base
124     type = atomicTypes.get("xsName");
125     if ( type == NULL ) { //register as a raw type
126         type = new daeRawRefType(dae);
127         type->_nameBindings.append("List_of_idrefs");
128         atomicTypes.append( type );
129     }
130     else { //add binding to existing type
131         type->_nameBindings.append("List_of_idrefs");
132     }
133 
134     // TYPEDEF: List_of_sidrefs	//check if this type has an existing base
135     type = atomicTypes.get("Sidref");
136     if ( type == NULL ) { //register as a raw type
137         type = new daeRawRefType(dae);
138         type->_nameBindings.append("List_of_sidrefs");
139         atomicTypes.append( type );
140     }
141     else { //add binding to existing type
142         type->_nameBindings.append("List_of_sidrefs");
143     }
144 
145     // TYPEDEF: List_of_tokens	//check if this type has an existing base
146     type = atomicTypes.get("xsToken");
147     if ( type == NULL ) { //register as a raw type
148         type = new daeRawRefType(dae);
149         type->_nameBindings.append("List_of_tokens");
150         atomicTypes.append( type );
151     }
152     else { //add binding to existing type
153         type->_nameBindings.append("List_of_tokens");
154     }
155 
156     // TYPEDEF: List_of_uints	//check if this type has an existing base
157     type = atomicTypes.get("Uint");
158     if ( type == NULL ) { //register as a raw type
159         type = new daeRawRefType(dae);
160         type->_nameBindings.append("List_of_uints");
161         atomicTypes.append( type );
162     }
163     else { //add binding to existing type
164         type->_nameBindings.append("List_of_uints");
165     }
166 
167     // TYPEDEF: Bool2	//check if this type has an existing base
168     type = atomicTypes.get("List_of_bools");
169     if ( type == NULL ) { //register as a raw type
170         type = new daeRawRefType(dae);
171         type->_nameBindings.append("Bool2");
172         atomicTypes.append( type );
173     }
174     else { //add binding to existing type
175         type->_nameBindings.append("Bool2");
176     }
177 
178     // TYPEDEF: Bool3	//check if this type has an existing base
179     type = atomicTypes.get("List_of_bools");
180     if ( type == NULL ) { //register as a raw type
181         type = new daeRawRefType(dae);
182         type->_nameBindings.append("Bool3");
183         atomicTypes.append( type );
184     }
185     else { //add binding to existing type
186         type->_nameBindings.append("Bool3");
187     }
188 
189     // TYPEDEF: Bool4	//check if this type has an existing base
190     type = atomicTypes.get("List_of_bools");
191     if ( type == NULL ) { //register as a raw type
192         type = new daeRawRefType(dae);
193         type->_nameBindings.append("Bool4");
194         atomicTypes.append( type );
195     }
196     else { //add binding to existing type
197         type->_nameBindings.append("Bool4");
198     }
199 
200     // TYPEDEF: Bool2x2	//check if this type has an existing base
201     type = atomicTypes.get("List_of_bools");
202     if ( type == NULL ) { //register as a raw type
203         type = new daeRawRefType(dae);
204         type->_nameBindings.append("Bool2x2");
205         atomicTypes.append( type );
206     }
207     else { //add binding to existing type
208         type->_nameBindings.append("Bool2x2");
209     }
210 
211     // TYPEDEF: Bool2x3	//check if this type has an existing base
212     type = atomicTypes.get("List_of_bools");
213     if ( type == NULL ) { //register as a raw type
214         type = new daeRawRefType(dae);
215         type->_nameBindings.append("Bool2x3");
216         atomicTypes.append( type );
217     }
218     else { //add binding to existing type
219         type->_nameBindings.append("Bool2x3");
220     }
221 
222     // TYPEDEF: Bool2x4	//check if this type has an existing base
223     type = atomicTypes.get("List_of_bools");
224     if ( type == NULL ) { //register as a raw type
225         type = new daeRawRefType(dae);
226         type->_nameBindings.append("Bool2x4");
227         atomicTypes.append( type );
228     }
229     else { //add binding to existing type
230         type->_nameBindings.append("Bool2x4");
231     }
232 
233     // TYPEDEF: Bool3x2	//check if this type has an existing base
234     type = atomicTypes.get("List_of_bools");
235     if ( type == NULL ) { //register as a raw type
236         type = new daeRawRefType(dae);
237         type->_nameBindings.append("Bool3x2");
238         atomicTypes.append( type );
239     }
240     else { //add binding to existing type
241         type->_nameBindings.append("Bool3x2");
242     }
243 
244     // TYPEDEF: Bool3x3	//check if this type has an existing base
245     type = atomicTypes.get("List_of_bools");
246     if ( type == NULL ) { //register as a raw type
247         type = new daeRawRefType(dae);
248         type->_nameBindings.append("Bool3x3");
249         atomicTypes.append( type );
250     }
251     else { //add binding to existing type
252         type->_nameBindings.append("Bool3x3");
253     }
254 
255     // TYPEDEF: Bool3x4	//check if this type has an existing base
256     type = atomicTypes.get("List_of_bools");
257     if ( type == NULL ) { //register as a raw type
258         type = new daeRawRefType(dae);
259         type->_nameBindings.append("Bool3x4");
260         atomicTypes.append( type );
261     }
262     else { //add binding to existing type
263         type->_nameBindings.append("Bool3x4");
264     }
265 
266     // TYPEDEF: Bool4x2	//check if this type has an existing base
267     type = atomicTypes.get("List_of_bools");
268     if ( type == NULL ) { //register as a raw type
269         type = new daeRawRefType(dae);
270         type->_nameBindings.append("Bool4x2");
271         atomicTypes.append( type );
272     }
273     else { //add binding to existing type
274         type->_nameBindings.append("Bool4x2");
275     }
276 
277     // TYPEDEF: Bool4x3	//check if this type has an existing base
278     type = atomicTypes.get("List_of_bools");
279     if ( type == NULL ) { //register as a raw type
280         type = new daeRawRefType(dae);
281         type->_nameBindings.append("Bool4x3");
282         atomicTypes.append( type );
283     }
284     else { //add binding to existing type
285         type->_nameBindings.append("Bool4x3");
286     }
287 
288     // TYPEDEF: Bool4x4	//check if this type has an existing base
289     type = atomicTypes.get("List_of_bools");
290     if ( type == NULL ) { //register as a raw type
291         type = new daeRawRefType(dae);
292         type->_nameBindings.append("Bool4x4");
293         atomicTypes.append( type );
294     }
295     else { //add binding to existing type
296         type->_nameBindings.append("Bool4x4");
297     }
298 
299     // TYPEDEF: Float2	//check if this type has an existing base
300     type = atomicTypes.get("List_of_floats");
301     if ( type == NULL ) { //register as a raw type
302         type = new daeRawRefType(dae);
303         type->_nameBindings.append("Float2");
304         atomicTypes.append( type );
305     }
306     else { //add binding to existing type
307         type->_nameBindings.append("Float2");
308     }
309 
310     // TYPEDEF: Float3	//check if this type has an existing base
311     type = atomicTypes.get("List_of_floats");
312     if ( type == NULL ) { //register as a raw type
313         type = new daeRawRefType(dae);
314         type->_nameBindings.append("Float3");
315         atomicTypes.append( type );
316     }
317     else { //add binding to existing type
318         type->_nameBindings.append("Float3");
319     }
320 
321     // TYPEDEF: Float4	//check if this type has an existing base
322     type = atomicTypes.get("List_of_floats");
323     if ( type == NULL ) { //register as a raw type
324         type = new daeRawRefType(dae);
325         type->_nameBindings.append("Float4");
326         atomicTypes.append( type );
327     }
328     else { //add binding to existing type
329         type->_nameBindings.append("Float4");
330     }
331 
332     // TYPEDEF: Float7	//check if this type has an existing base
333     type = atomicTypes.get("List_of_floats");
334     if ( type == NULL ) { //register as a raw type
335         type = new daeRawRefType(dae);
336         type->_nameBindings.append("Float7");
337         atomicTypes.append( type );
338     }
339     else { //add binding to existing type
340         type->_nameBindings.append("Float7");
341     }
342 
343     // TYPEDEF: Float2x2	//check if this type has an existing base
344     type = atomicTypes.get("List_of_floats");
345     if ( type == NULL ) { //register as a raw type
346         type = new daeRawRefType(dae);
347         type->_nameBindings.append("Float2x2");
348         atomicTypes.append( type );
349     }
350     else { //add binding to existing type
351         type->_nameBindings.append("Float2x2");
352     }
353 
354     // TYPEDEF: Float2x3	//check if this type has an existing base
355     type = atomicTypes.get("List_of_floats");
356     if ( type == NULL ) { //register as a raw type
357         type = new daeRawRefType(dae);
358         type->_nameBindings.append("Float2x3");
359         atomicTypes.append( type );
360     }
361     else { //add binding to existing type
362         type->_nameBindings.append("Float2x3");
363     }
364 
365     // TYPEDEF: Float2x4	//check if this type has an existing base
366     type = atomicTypes.get("List_of_floats");
367     if ( type == NULL ) { //register as a raw type
368         type = new daeRawRefType(dae);
369         type->_nameBindings.append("Float2x4");
370         atomicTypes.append( type );
371     }
372     else { //add binding to existing type
373         type->_nameBindings.append("Float2x4");
374     }
375 
376     // TYPEDEF: Float3x2	//check if this type has an existing base
377     type = atomicTypes.get("List_of_floats");
378     if ( type == NULL ) { //register as a raw type
379         type = new daeRawRefType(dae);
380         type->_nameBindings.append("Float3x2");
381         atomicTypes.append( type );
382     }
383     else { //add binding to existing type
384         type->_nameBindings.append("Float3x2");
385     }
386 
387     // TYPEDEF: Float3x3	//check if this type has an existing base
388     type = atomicTypes.get("List_of_floats");
389     if ( type == NULL ) { //register as a raw type
390         type = new daeRawRefType(dae);
391         type->_nameBindings.append("Float3x3");
392         atomicTypes.append( type );
393     }
394     else { //add binding to existing type
395         type->_nameBindings.append("Float3x3");
396     }
397 
398     // TYPEDEF: Float3x4	//check if this type has an existing base
399     type = atomicTypes.get("List_of_floats");
400     if ( type == NULL ) { //register as a raw type
401         type = new daeRawRefType(dae);
402         type->_nameBindings.append("Float3x4");
403         atomicTypes.append( type );
404     }
405     else { //add binding to existing type
406         type->_nameBindings.append("Float3x4");
407     }
408 
409     // TYPEDEF: Float4x2	//check if this type has an existing base
410     type = atomicTypes.get("List_of_floats");
411     if ( type == NULL ) { //register as a raw type
412         type = new daeRawRefType(dae);
413         type->_nameBindings.append("Float4x2");
414         atomicTypes.append( type );
415     }
416     else { //add binding to existing type
417         type->_nameBindings.append("Float4x2");
418     }
419 
420     // TYPEDEF: Float4x3	//check if this type has an existing base
421     type = atomicTypes.get("List_of_floats");
422     if ( type == NULL ) { //register as a raw type
423         type = new daeRawRefType(dae);
424         type->_nameBindings.append("Float4x3");
425         atomicTypes.append( type );
426     }
427     else { //add binding to existing type
428         type->_nameBindings.append("Float4x3");
429     }
430 
431     // TYPEDEF: Float4x4	//check if this type has an existing base
432     type = atomicTypes.get("List_of_floats");
433     if ( type == NULL ) { //register as a raw type
434         type = new daeRawRefType(dae);
435         type->_nameBindings.append("Float4x4");
436         atomicTypes.append( type );
437     }
438     else { //add binding to existing type
439         type->_nameBindings.append("Float4x4");
440     }
441 
442     // TYPEDEF: Int2	//check if this type has an existing base
443     type = atomicTypes.get("List_of_ints");
444     if ( type == NULL ) { //register as a raw type
445         type = new daeRawRefType(dae);
446         type->_nameBindings.append("Int2");
447         atomicTypes.append( type );
448     }
449     else { //add binding to existing type
450         type->_nameBindings.append("Int2");
451     }
452 
453     // TYPEDEF: Int3	//check if this type has an existing base
454     type = atomicTypes.get("List_of_ints");
455     if ( type == NULL ) { //register as a raw type
456         type = new daeRawRefType(dae);
457         type->_nameBindings.append("Int3");
458         atomicTypes.append( type );
459     }
460     else { //add binding to existing type
461         type->_nameBindings.append("Int3");
462     }
463 
464     // TYPEDEF: Int4	//check if this type has an existing base
465     type = atomicTypes.get("List_of_ints");
466     if ( type == NULL ) { //register as a raw type
467         type = new daeRawRefType(dae);
468         type->_nameBindings.append("Int4");
469         atomicTypes.append( type );
470     }
471     else { //add binding to existing type
472         type->_nameBindings.append("Int4");
473     }
474 
475     // TYPEDEF: Int2x2	//check if this type has an existing base
476     type = atomicTypes.get("List_of_ints");
477     if ( type == NULL ) { //register as a raw type
478         type = new daeRawRefType(dae);
479         type->_nameBindings.append("Int2x2");
480         atomicTypes.append( type );
481     }
482     else { //add binding to existing type
483         type->_nameBindings.append("Int2x2");
484     }
485 
486     // TYPEDEF: Int2x3	//check if this type has an existing base
487     type = atomicTypes.get("List_of_ints");
488     if ( type == NULL ) { //register as a raw type
489         type = new daeRawRefType(dae);
490         type->_nameBindings.append("Int2x3");
491         atomicTypes.append( type );
492     }
493     else { //add binding to existing type
494         type->_nameBindings.append("Int2x3");
495     }
496 
497     // TYPEDEF: Int2x4	//check if this type has an existing base
498     type = atomicTypes.get("List_of_ints");
499     if ( type == NULL ) { //register as a raw type
500         type = new daeRawRefType(dae);
501         type->_nameBindings.append("Int2x4");
502         atomicTypes.append( type );
503     }
504     else { //add binding to existing type
505         type->_nameBindings.append("Int2x4");
506     }
507 
508     // TYPEDEF: Int3x2	//check if this type has an existing base
509     type = atomicTypes.get("List_of_ints");
510     if ( type == NULL ) { //register as a raw type
511         type = new daeRawRefType(dae);
512         type->_nameBindings.append("Int3x2");
513         atomicTypes.append( type );
514     }
515     else { //add binding to existing type
516         type->_nameBindings.append("Int3x2");
517     }
518 
519     // TYPEDEF: Int3x3	//check if this type has an existing base
520     type = atomicTypes.get("List_of_ints");
521     if ( type == NULL ) { //register as a raw type
522         type = new daeRawRefType(dae);
523         type->_nameBindings.append("Int3x3");
524         atomicTypes.append( type );
525     }
526     else { //add binding to existing type
527         type->_nameBindings.append("Int3x3");
528     }
529 
530     // TYPEDEF: Int3x4	//check if this type has an existing base
531     type = atomicTypes.get("List_of_ints");
532     if ( type == NULL ) { //register as a raw type
533         type = new daeRawRefType(dae);
534         type->_nameBindings.append("Int3x4");
535         atomicTypes.append( type );
536     }
537     else { //add binding to existing type
538         type->_nameBindings.append("Int3x4");
539     }
540 
541     // TYPEDEF: Int4x2	//check if this type has an existing base
542     type = atomicTypes.get("List_of_ints");
543     if ( type == NULL ) { //register as a raw type
544         type = new daeRawRefType(dae);
545         type->_nameBindings.append("Int4x2");
546         atomicTypes.append( type );
547     }
548     else { //add binding to existing type
549         type->_nameBindings.append("Int4x2");
550     }
551 
552     // TYPEDEF: Int4x3	//check if this type has an existing base
553     type = atomicTypes.get("List_of_ints");
554     if ( type == NULL ) { //register as a raw type
555         type = new daeRawRefType(dae);
556         type->_nameBindings.append("Int4x3");
557         atomicTypes.append( type );
558     }
559     else { //add binding to existing type
560         type->_nameBindings.append("Int4x3");
561     }
562 
563     // TYPEDEF: Int4x4	//check if this type has an existing base
564     type = atomicTypes.get("List_of_ints");
565     if ( type == NULL ) { //register as a raw type
566         type = new daeRawRefType(dae);
567         type->_nameBindings.append("Int4x4");
568         atomicTypes.append( type );
569     }
570     else { //add binding to existing type
571         type->_nameBindings.append("Int4x4");
572     }
573 
574     // TYPEDEF: Digits	//check if this type has an existing base
575     type = atomicTypes.get("xsUnsignedByte");
576     if ( type == NULL ) { //register as a raw type
577         type = new daeRawRefType(dae);
578         type->_nameBindings.append("Digits");
579         atomicTypes.append( type );
580     }
581     else { //add binding to existing type
582         type->_nameBindings.append("Digits");
583     }
584 
585     // TYPEDEF: Magnitude	//check if this type has an existing base
586     type = atomicTypes.get("xsShort");
587     if ( type == NULL ) { //register as a raw type
588         type = new daeRawRefType(dae);
589         type->_nameBindings.append("Magnitude");
590         atomicTypes.append( type );
591     }
592     else { //add binding to existing type
593         type->_nameBindings.append("Magnitude");
594     }
595 
596     // ENUM: Morph_method
597     type = new daeEnumType(dae);
598     type->_nameBindings.append("Morph_method");
599     ((daeEnumType*)type)->_strings = new daeStringRefArray;
600     ((daeEnumType*)type)->_values = new daeEnumArray;
601     ((daeEnumType*)type)->_strings->append("NORMALIZED");
602     ((daeEnumType*)type)->_values->append(MORPH_METHOD_NORMALIZED);
603     ((daeEnumType*)type)->_strings->append("RELATIVE");
604     ((daeEnumType*)type)->_values->append(MORPH_METHOD_RELATIVE);
605     atomicTypes.append( type );
606 
607     // ENUM: Node_enum
608     type = new daeEnumType(dae);
609     type->_nameBindings.append("Node_enum");
610     ((daeEnumType*)type)->_strings = new daeStringRefArray;
611     ((daeEnumType*)type)->_values = new daeEnumArray;
612     ((daeEnumType*)type)->_strings->append("JOINT");
613     ((daeEnumType*)type)->_values->append(NODE_ENUM_JOINT);
614     ((daeEnumType*)type)->_strings->append("NODE");
615     ((daeEnumType*)type)->_values->append(NODE_ENUM_NODE);
616     atomicTypes.append( type );
617 
618     // ENUM: Sampler_behavior
619     type = new daeEnumType(dae);
620     type->_nameBindings.append("Sampler_behavior");
621     ((daeEnumType*)type)->_strings = new daeStringRefArray;
622     ((daeEnumType*)type)->_values = new daeEnumArray;
623     ((daeEnumType*)type)->_strings->append("CONSTANT");
624     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_CONSTANT);
625     ((daeEnumType*)type)->_strings->append("CYCLE");
626     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_CYCLE);
627     ((daeEnumType*)type)->_strings->append("CYCLE_RELATIVE");
628     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_CYCLE_RELATIVE);
629     ((daeEnumType*)type)->_strings->append("GRADIENT");
630     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_GRADIENT);
631     ((daeEnumType*)type)->_strings->append("OSCILLATE");
632     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_OSCILLATE);
633     ((daeEnumType*)type)->_strings->append("UNDEFINED");
634     ((daeEnumType*)type)->_values->append(SAMPLER_BEHAVIOR_UNDEFINED);
635     atomicTypes.append( type );
636 
637     // TYPEDEF: Urifragment	//check if this type has an existing base
638     type = atomicTypes.get("xsAnyURI");
639     if ( type == NULL ) { //register as a raw type
640         type = new daeRawRefType(dae);
641         type->_nameBindings.append("Urifragment");
642         atomicTypes.append( type );
643     }
644     else { //add binding to existing type
645         type->_nameBindings.append("Urifragment");
646     }
647 
648     // ENUM: Up_axis
649     type = new daeEnumType(dae);
650     type->_nameBindings.append("Up_axis");
651     ((daeEnumType*)type)->_strings = new daeStringRefArray;
652     ((daeEnumType*)type)->_values = new daeEnumArray;
653     ((daeEnumType*)type)->_strings->append("X_UP");
654     ((daeEnumType*)type)->_values->append(UP_AXIS_X_UP);
655     ((daeEnumType*)type)->_strings->append("Y_UP");
656     ((daeEnumType*)type)->_values->append(UP_AXIS_Y_UP);
657     ((daeEnumType*)type)->_strings->append("Z_UP");
658     ((daeEnumType*)type)->_values->append(UP_AXIS_Z_UP);
659     atomicTypes.append( type );
660 
661     // ENUM: Version
662     type = new daeEnumType(dae);
663     type->_nameBindings.append("Version");
664     ((daeEnumType*)type)->_strings = new daeStringRefArray;
665     ((daeEnumType*)type)->_values = new daeEnumArray;
666     ((daeEnumType*)type)->_strings->append("1.5.0");
667     ((daeEnumType*)type)->_values->append(VERSION_1_5_0);
668     atomicTypes.append( type );
669 
670     // ENUM: Image_face
671     type = new daeEnumType(dae);
672     type->_nameBindings.append("Image_face");
673     ((daeEnumType*)type)->_strings = new daeStringRefArray;
674     ((daeEnumType*)type)->_values = new daeEnumArray;
675     ((daeEnumType*)type)->_strings->append("POSITIVE_X");
676     ((daeEnumType*)type)->_values->append(IMAGE_FACE_POSITIVE_X);
677     ((daeEnumType*)type)->_strings->append("NEGATIVE_X");
678     ((daeEnumType*)type)->_values->append(IMAGE_FACE_NEGATIVE_X);
679     ((daeEnumType*)type)->_strings->append("POSITIVE_Y");
680     ((daeEnumType*)type)->_values->append(IMAGE_FACE_POSITIVE_Y);
681     ((daeEnumType*)type)->_strings->append("NEGATIVE_Y");
682     ((daeEnumType*)type)->_values->append(IMAGE_FACE_NEGATIVE_Y);
683     ((daeEnumType*)type)->_strings->append("POSITIVE_Z");
684     ((daeEnumType*)type)->_values->append(IMAGE_FACE_POSITIVE_Z);
685     ((daeEnumType*)type)->_strings->append("NEGATIVE_Z");
686     ((daeEnumType*)type)->_values->append(IMAGE_FACE_NEGATIVE_Z);
687     atomicTypes.append( type );
688 
689     // ENUM: Image_format_hint_channels
690     type = new daeEnumType(dae);
691     type->_nameBindings.append("Image_format_hint_channels");
692     ((daeEnumType*)type)->_strings = new daeStringRefArray;
693     ((daeEnumType*)type)->_values = new daeEnumArray;
694     ((daeEnumType*)type)->_strings->append("RGB");
695     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_RGB);
696     ((daeEnumType*)type)->_strings->append("RGBA");
697     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_RGBA);
698     ((daeEnumType*)type)->_strings->append("RGBE");
699     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_RGBE);
700     ((daeEnumType*)type)->_strings->append("L");
701     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_L);
702     ((daeEnumType*)type)->_strings->append("LA");
703     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_LA);
704     ((daeEnumType*)type)->_strings->append("D");
705     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_CHANNELS_D);
706     atomicTypes.append( type );
707 
708     // ENUM: Image_format_hint_precision
709     type = new daeEnumType(dae);
710     type->_nameBindings.append("Image_format_hint_precision");
711     ((daeEnumType*)type)->_strings = new daeStringRefArray;
712     ((daeEnumType*)type)->_values = new daeEnumArray;
713     ((daeEnumType*)type)->_strings->append("DEFAULT");
714     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_PRECISION_DEFAULT);
715     ((daeEnumType*)type)->_strings->append("LOW");
716     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_PRECISION_LOW);
717     ((daeEnumType*)type)->_strings->append("MID");
718     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_PRECISION_MID);
719     ((daeEnumType*)type)->_strings->append("HIGH");
720     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_PRECISION_HIGH);
721     ((daeEnumType*)type)->_strings->append("MAX");
722     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_PRECISION_MAX);
723     atomicTypes.append( type );
724 
725     // ENUM: Image_format_hint_range
726     type = new daeEnumType(dae);
727     type->_nameBindings.append("Image_format_hint_range");
728     ((daeEnumType*)type)->_strings = new daeStringRefArray;
729     ((daeEnumType*)type)->_values = new daeEnumArray;
730     ((daeEnumType*)type)->_strings->append("SNORM");
731     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_RANGE_SNORM);
732     ((daeEnumType*)type)->_strings->append("UNORM");
733     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_RANGE_UNORM);
734     ((daeEnumType*)type)->_strings->append("SINT");
735     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_RANGE_SINT);
736     ((daeEnumType*)type)->_strings->append("UINT");
737     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_RANGE_UINT);
738     ((daeEnumType*)type)->_strings->append("FLOAT");
739     ((daeEnumType*)type)->_values->append(IMAGE_FORMAT_HINT_RANGE_FLOAT);
740     atomicTypes.append( type );
741 
742     // ENUM: Altitude_mode
743     type = new daeEnumType(dae);
744     type->_nameBindings.append("Altitude_mode");
745     ((daeEnumType*)type)->_strings = new daeStringRefArray;
746     ((daeEnumType*)type)->_values = new daeEnumArray;
747     ((daeEnumType*)type)->_strings->append("absolute");
748     ((daeEnumType*)type)->_values->append(ALTITUDE_MODE_absolute);
749     ((daeEnumType*)type)->_strings->append("relativeToGround");
750     ((daeEnumType*)type)->_values->append(ALTITUDE_MODE_relativeToGround);
751     atomicTypes.append( type );
752 
753     // TYPEDEF: Fx_color	//check if this type has an existing base
754     type = atomicTypes.get("Float4");
755     if ( type == NULL ) { //register as a raw type
756         type = new daeRawRefType(dae);
757         type->_nameBindings.append("Fx_color");
758         atomicTypes.append( type );
759     }
760     else { //add binding to existing type
761         type->_nameBindings.append("Fx_color");
762     }
763 
764     // ENUM: Fx_opaque
765     type = new daeEnumType(dae);
766     type->_nameBindings.append("Fx_opaque");
767     ((daeEnumType*)type)->_strings = new daeStringRefArray;
768     ((daeEnumType*)type)->_values = new daeEnumArray;
769     ((daeEnumType*)type)->_strings->append("A_ONE");
770     ((daeEnumType*)type)->_values->append(FX_OPAQUE_A_ONE);
771     ((daeEnumType*)type)->_strings->append("A_ZERO");
772     ((daeEnumType*)type)->_values->append(FX_OPAQUE_A_ZERO);
773     ((daeEnumType*)type)->_strings->append("RGB_ONE");
774     ((daeEnumType*)type)->_values->append(FX_OPAQUE_RGB_ONE);
775     ((daeEnumType*)type)->_strings->append("RGB_ZERO");
776     ((daeEnumType*)type)->_values->append(FX_OPAQUE_RGB_ZERO);
777     atomicTypes.append( type );
778 
779     // ENUM: Fx_sampler_wrap
780     type = new daeEnumType(dae);
781     type->_nameBindings.append("Fx_sampler_wrap");
782     ((daeEnumType*)type)->_strings = new daeStringRefArray;
783     ((daeEnumType*)type)->_values = new daeEnumArray;
784     ((daeEnumType*)type)->_strings->append("WRAP");
785     ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_WRAP);
786     ((daeEnumType*)type)->_strings->append("CLAMP");
787     ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_CLAMP);
788     ((daeEnumType*)type)->_strings->append("BORDER");
789     ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_BORDER);
790     ((daeEnumType*)type)->_strings->append("MIRROR");
791     ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_MIRROR);
792     ((daeEnumType*)type)->_strings->append("MIRROR_ONCE");
793     ((daeEnumType*)type)->_values->append(FX_SAMPLER_WRAP_MIRROR_ONCE);
794     atomicTypes.append( type );
795 
796     // ENUM: Fx_sampler_min_filter
797     type = new daeEnumType(dae);
798     type->_nameBindings.append("Fx_sampler_min_filter");
799     ((daeEnumType*)type)->_strings = new daeStringRefArray;
800     ((daeEnumType*)type)->_values = new daeEnumArray;
801     ((daeEnumType*)type)->_strings->append("NEAREST");
802     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIN_FILTER_NEAREST);
803     ((daeEnumType*)type)->_strings->append("LINEAR");
804     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIN_FILTER_LINEAR);
805     ((daeEnumType*)type)->_strings->append("ANISOTROPIC");
806     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIN_FILTER_ANISOTROPIC);
807     atomicTypes.append( type );
808 
809     // ENUM: Fx_sampler_mag_filter
810     type = new daeEnumType(dae);
811     type->_nameBindings.append("Fx_sampler_mag_filter");
812     ((daeEnumType*)type)->_strings = new daeStringRefArray;
813     ((daeEnumType*)type)->_values = new daeEnumArray;
814     ((daeEnumType*)type)->_strings->append("NEAREST");
815     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MAG_FILTER_NEAREST);
816     ((daeEnumType*)type)->_strings->append("LINEAR");
817     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MAG_FILTER_LINEAR);
818     atomicTypes.append( type );
819 
820     // ENUM: Fx_sampler_mip_filter
821     type = new daeEnumType(dae);
822     type->_nameBindings.append("Fx_sampler_mip_filter");
823     ((daeEnumType*)type)->_strings = new daeStringRefArray;
824     ((daeEnumType*)type)->_values = new daeEnumArray;
825     ((daeEnumType*)type)->_strings->append("NONE");
826     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIP_FILTER_NONE);
827     ((daeEnumType*)type)->_strings->append("NEAREST");
828     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIP_FILTER_NEAREST);
829     ((daeEnumType*)type)->_strings->append("LINEAR");
830     ((daeEnumType*)type)->_values->append(FX_SAMPLER_MIP_FILTER_LINEAR);
831     atomicTypes.append( type );
832 
833     // ENUM: Fx_modifier
834     type = new daeEnumType(dae);
835     type->_nameBindings.append("Fx_modifier");
836     ((daeEnumType*)type)->_strings = new daeStringRefArray;
837     ((daeEnumType*)type)->_values = new daeEnumArray;
838     ((daeEnumType*)type)->_strings->append("CONST");
839     ((daeEnumType*)type)->_values->append(FX_MODIFIER_CONST);
840     ((daeEnumType*)type)->_strings->append("UNIFORM");
841     ((daeEnumType*)type)->_values->append(FX_MODIFIER_UNIFORM);
842     ((daeEnumType*)type)->_strings->append("VARYING");
843     ((daeEnumType*)type)->_values->append(FX_MODIFIER_VARYING);
844     ((daeEnumType*)type)->_strings->append("STATIC");
845     ((daeEnumType*)type)->_values->append(FX_MODIFIER_STATIC);
846     ((daeEnumType*)type)->_strings->append("VOLATILE");
847     ((daeEnumType*)type)->_values->append(FX_MODIFIER_VOLATILE);
848     ((daeEnumType*)type)->_strings->append("EXTERN");
849     ((daeEnumType*)type)->_values->append(FX_MODIFIER_EXTERN);
850     ((daeEnumType*)type)->_strings->append("SHARED");
851     ((daeEnumType*)type)->_values->append(FX_MODIFIER_SHARED);
852     atomicTypes.append( type );
853 
854     // TYPEDEF: Fx_draw	//check if this type has an existing base
855     type = atomicTypes.get("xsString");
856     if ( type == NULL ) { //register as a raw type
857         type = new daeRawRefType(dae);
858         type->_nameBindings.append("Fx_draw");
859         atomicTypes.append( type );
860     }
861     else { //add binding to existing type
862         type->_nameBindings.append("Fx_draw");
863     }
864 
865     // ENUM: Fx_pipeline_stage
866     type = new daeEnumType(dae);
867     type->_nameBindings.append("Fx_pipeline_stage");
868     ((daeEnumType*)type)->_strings = new daeStringRefArray;
869     ((daeEnumType*)type)->_values = new daeEnumArray;
870     ((daeEnumType*)type)->_strings->append("TESSELLATION");
871     ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_TESSELLATION);
872     ((daeEnumType*)type)->_strings->append("VERTEX");
873     ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_VERTEX);
874     ((daeEnumType*)type)->_strings->append("GEOMETRY");
875     ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_GEOMETRY);
876     ((daeEnumType*)type)->_strings->append("FRAGMENT");
877     ((daeEnumType*)type)->_values->append(FX_PIPELINE_STAGE_FRAGMENT);
878     atomicTypes.append( type );
879 
880     // TYPEDEF: Gl_max_lights_index	//check if this type has an existing base
881     type = atomicTypes.get("xsNonNegativeInteger");
882     if ( type == NULL ) { //register as a raw type
883         type = new daeRawRefType(dae);
884         type->_nameBindings.append("Gl_max_lights_index");
885         atomicTypes.append( type );
886     }
887     else { //add binding to existing type
888         type->_nameBindings.append("Gl_max_lights_index");
889     }
890 
891     // TYPEDEF: Gl_max_clip_planes_index	//check if this type has an existing base
892     type = atomicTypes.get("xsNonNegativeInteger");
893     if ( type == NULL ) { //register as a raw type
894         type = new daeRawRefType(dae);
895         type->_nameBindings.append("Gl_max_clip_planes_index");
896         atomicTypes.append( type );
897     }
898     else { //add binding to existing type
899         type->_nameBindings.append("Gl_max_clip_planes_index");
900     }
901 
902     // TYPEDEF: Gl_max_texture_image_units_index	//check if this type has an existing base
903     type = atomicTypes.get("xsNonNegativeInteger");
904     if ( type == NULL ) { //register as a raw type
905         type = new daeRawRefType(dae);
906         type->_nameBindings.append("Gl_max_texture_image_units_index");
907         atomicTypes.append( type );
908     }
909     else { //add binding to existing type
910         type->_nameBindings.append("Gl_max_texture_image_units_index");
911     }
912 
913     // ENUM: Gl_blend
914     type = new daeEnumType(dae);
915     type->_nameBindings.append("Gl_blend");
916     ((daeEnumType*)type)->_strings = new daeStringRefArray;
917     ((daeEnumType*)type)->_values = new daeEnumArray;
918     ((daeEnumType*)type)->_strings->append("ZERO");
919     ((daeEnumType*)type)->_values->append(GL_BLEND_ZERO);
920     ((daeEnumType*)type)->_strings->append("ONE");
921     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE);
922     ((daeEnumType*)type)->_strings->append("SRC_COLOR");
923     ((daeEnumType*)type)->_values->append(GL_BLEND_SRC_COLOR);
924     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR");
925     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_SRC_COLOR);
926     ((daeEnumType*)type)->_strings->append("DEST_COLOR");
927     ((daeEnumType*)type)->_values->append(GL_BLEND_DEST_COLOR);
928     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR");
929     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_DEST_COLOR);
930     ((daeEnumType*)type)->_strings->append("SRC_ALPHA");
931     ((daeEnumType*)type)->_values->append(GL_BLEND_SRC_ALPHA);
932     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA");
933     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_SRC_ALPHA);
934     ((daeEnumType*)type)->_strings->append("DST_ALPHA");
935     ((daeEnumType*)type)->_values->append(GL_BLEND_DST_ALPHA);
936     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA");
937     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_DST_ALPHA);
938     ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR");
939     ((daeEnumType*)type)->_values->append(GL_BLEND_CONSTANT_COLOR);
940     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR");
941     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_CONSTANT_COLOR);
942     ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA");
943     ((daeEnumType*)type)->_values->append(GL_BLEND_CONSTANT_ALPHA);
944     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA");
945     ((daeEnumType*)type)->_values->append(GL_BLEND_ONE_MINUS_CONSTANT_ALPHA);
946     ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE");
947     ((daeEnumType*)type)->_values->append(GL_BLEND_SRC_ALPHA_SATURATE);
948     atomicTypes.append( type );
949 
950     // ENUM: Gl_face
951     type = new daeEnumType(dae);
952     type->_nameBindings.append("Gl_face");
953     ((daeEnumType*)type)->_strings = new daeStringRefArray;
954     ((daeEnumType*)type)->_values = new daeEnumArray;
955     ((daeEnumType*)type)->_strings->append("FRONT");
956     ((daeEnumType*)type)->_values->append(GL_FACE_FRONT);
957     ((daeEnumType*)type)->_strings->append("BACK");
958     ((daeEnumType*)type)->_values->append(GL_FACE_BACK);
959     ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK");
960     ((daeEnumType*)type)->_values->append(GL_FACE_FRONT_AND_BACK);
961     atomicTypes.append( type );
962 
963     // ENUM: Gl_blend_equation
964     type = new daeEnumType(dae);
965     type->_nameBindings.append("Gl_blend_equation");
966     ((daeEnumType*)type)->_strings = new daeStringRefArray;
967     ((daeEnumType*)type)->_values = new daeEnumArray;
968     ((daeEnumType*)type)->_strings->append("FUNC_ADD");
969     ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_FUNC_ADD);
970     ((daeEnumType*)type)->_strings->append("FUNC_SUBTRACT");
971     ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_FUNC_SUBTRACT);
972     ((daeEnumType*)type)->_strings->append("FUNC_REVERSE_SUBTRACT");
973     ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT);
974     ((daeEnumType*)type)->_strings->append("MIN");
975     ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_MIN);
976     ((daeEnumType*)type)->_strings->append("MAX");
977     ((daeEnumType*)type)->_values->append(GL_BLEND_EQUATION_MAX);
978     atomicTypes.append( type );
979 
980     // ENUM: Gl_func
981     type = new daeEnumType(dae);
982     type->_nameBindings.append("Gl_func");
983     ((daeEnumType*)type)->_strings = new daeStringRefArray;
984     ((daeEnumType*)type)->_values = new daeEnumArray;
985     ((daeEnumType*)type)->_strings->append("NEVER");
986     ((daeEnumType*)type)->_values->append(GL_FUNC_NEVER);
987     ((daeEnumType*)type)->_strings->append("LESS");
988     ((daeEnumType*)type)->_values->append(GL_FUNC_LESS);
989     ((daeEnumType*)type)->_strings->append("LEQUAL");
990     ((daeEnumType*)type)->_values->append(GL_FUNC_LEQUAL);
991     ((daeEnumType*)type)->_strings->append("EQUAL");
992     ((daeEnumType*)type)->_values->append(GL_FUNC_EQUAL);
993     ((daeEnumType*)type)->_strings->append("GREATER");
994     ((daeEnumType*)type)->_values->append(GL_FUNC_GREATER);
995     ((daeEnumType*)type)->_strings->append("NOTEQUAL");
996     ((daeEnumType*)type)->_values->append(GL_FUNC_NOTEQUAL);
997     ((daeEnumType*)type)->_strings->append("GEQUAL");
998     ((daeEnumType*)type)->_values->append(GL_FUNC_GEQUAL);
999     ((daeEnumType*)type)->_strings->append("ALWAYS");
1000     ((daeEnumType*)type)->_values->append(GL_FUNC_ALWAYS);
1001     atomicTypes.append( type );
1002 
1003     // ENUM: Gl_stencil_op
1004     type = new daeEnumType(dae);
1005     type->_nameBindings.append("Gl_stencil_op");
1006     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1007     ((daeEnumType*)type)->_values = new daeEnumArray;
1008     ((daeEnumType*)type)->_strings->append("KEEP");
1009     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_KEEP);
1010     ((daeEnumType*)type)->_strings->append("ZERO");
1011     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_ZERO);
1012     ((daeEnumType*)type)->_strings->append("REPLACE");
1013     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_REPLACE);
1014     ((daeEnumType*)type)->_strings->append("INCR");
1015     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_INCR);
1016     ((daeEnumType*)type)->_strings->append("DECR");
1017     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_DECR);
1018     ((daeEnumType*)type)->_strings->append("INVERT");
1019     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_INVERT);
1020     ((daeEnumType*)type)->_strings->append("INCR_WRAP");
1021     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_INCR_WRAP);
1022     ((daeEnumType*)type)->_strings->append("DECR_WRAP");
1023     ((daeEnumType*)type)->_values->append(GL_STENCIL_OP_DECR_WRAP);
1024     atomicTypes.append( type );
1025 
1026     // ENUM: Gl_material
1027     type = new daeEnumType(dae);
1028     type->_nameBindings.append("Gl_material");
1029     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1030     ((daeEnumType*)type)->_values = new daeEnumArray;
1031     ((daeEnumType*)type)->_strings->append("EMISSION");
1032     ((daeEnumType*)type)->_values->append(GL_MATERIAL_EMISSION);
1033     ((daeEnumType*)type)->_strings->append("AMBIENT");
1034     ((daeEnumType*)type)->_values->append(GL_MATERIAL_AMBIENT);
1035     ((daeEnumType*)type)->_strings->append("DIFFUSE");
1036     ((daeEnumType*)type)->_values->append(GL_MATERIAL_DIFFUSE);
1037     ((daeEnumType*)type)->_strings->append("SPECULAR");
1038     ((daeEnumType*)type)->_values->append(GL_MATERIAL_SPECULAR);
1039     ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE");
1040     ((daeEnumType*)type)->_values->append(GL_MATERIAL_AMBIENT_AND_DIFFUSE);
1041     atomicTypes.append( type );
1042 
1043     // ENUM: Gl_fog
1044     type = new daeEnumType(dae);
1045     type->_nameBindings.append("Gl_fog");
1046     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1047     ((daeEnumType*)type)->_values = new daeEnumArray;
1048     ((daeEnumType*)type)->_strings->append("LINEAR");
1049     ((daeEnumType*)type)->_values->append(GL_FOG_LINEAR);
1050     ((daeEnumType*)type)->_strings->append("EXP");
1051     ((daeEnumType*)type)->_values->append(GL_FOG_EXP);
1052     ((daeEnumType*)type)->_strings->append("EXP2");
1053     ((daeEnumType*)type)->_values->append(GL_FOG_EXP2);
1054     atomicTypes.append( type );
1055 
1056     // ENUM: Gl_fog_coord_src
1057     type = new daeEnumType(dae);
1058     type->_nameBindings.append("Gl_fog_coord_src");
1059     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1060     ((daeEnumType*)type)->_values = new daeEnumArray;
1061     ((daeEnumType*)type)->_strings->append("FOG_COORDINATE");
1062     ((daeEnumType*)type)->_values->append(GL_FOG_COORD_SRC_FOG_COORDINATE);
1063     ((daeEnumType*)type)->_strings->append("FRAGMENT_DEPTH");
1064     ((daeEnumType*)type)->_values->append(GL_FOG_COORD_SRC_FRAGMENT_DEPTH);
1065     atomicTypes.append( type );
1066 
1067     // ENUM: Gl_front_face
1068     type = new daeEnumType(dae);
1069     type->_nameBindings.append("Gl_front_face");
1070     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1071     ((daeEnumType*)type)->_values = new daeEnumArray;
1072     ((daeEnumType*)type)->_strings->append("CW");
1073     ((daeEnumType*)type)->_values->append(GL_FRONT_FACE_CW);
1074     ((daeEnumType*)type)->_strings->append("CCW");
1075     ((daeEnumType*)type)->_values->append(GL_FRONT_FACE_CCW);
1076     atomicTypes.append( type );
1077 
1078     // ENUM: Gl_light_model_color_control
1079     type = new daeEnumType(dae);
1080     type->_nameBindings.append("Gl_light_model_color_control");
1081     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1082     ((daeEnumType*)type)->_values = new daeEnumArray;
1083     ((daeEnumType*)type)->_strings->append("SINGLE_COLOR");
1084     ((daeEnumType*)type)->_values->append(GL_LIGHT_MODEL_COLOR_CONTROL_SINGLE_COLOR);
1085     ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR");
1086     ((daeEnumType*)type)->_values->append(GL_LIGHT_MODEL_COLOR_CONTROL_SEPARATE_SPECULAR_COLOR);
1087     atomicTypes.append( type );
1088 
1089     // ENUM: Gl_logic_op
1090     type = new daeEnumType(dae);
1091     type->_nameBindings.append("Gl_logic_op");
1092     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1093     ((daeEnumType*)type)->_values = new daeEnumArray;
1094     ((daeEnumType*)type)->_strings->append("CLEAR");
1095     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_CLEAR);
1096     ((daeEnumType*)type)->_strings->append("AND");
1097     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_AND);
1098     ((daeEnumType*)type)->_strings->append("AND_REVERSE");
1099     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_AND_REVERSE);
1100     ((daeEnumType*)type)->_strings->append("COPY");
1101     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_COPY);
1102     ((daeEnumType*)type)->_strings->append("AND_INVERTED");
1103     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_AND_INVERTED);
1104     ((daeEnumType*)type)->_strings->append("NOOP");
1105     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_NOOP);
1106     ((daeEnumType*)type)->_strings->append("XOR");
1107     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_XOR);
1108     ((daeEnumType*)type)->_strings->append("OR");
1109     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_OR);
1110     ((daeEnumType*)type)->_strings->append("NOR");
1111     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_NOR);
1112     ((daeEnumType*)type)->_strings->append("EQUIV");
1113     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_EQUIV);
1114     ((daeEnumType*)type)->_strings->append("INVERT");
1115     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_INVERT);
1116     ((daeEnumType*)type)->_strings->append("OR_REVERSE");
1117     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_OR_REVERSE);
1118     ((daeEnumType*)type)->_strings->append("COPY_INVERTED");
1119     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_COPY_INVERTED);
1120     ((daeEnumType*)type)->_strings->append("NAND");
1121     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_NAND);
1122     ((daeEnumType*)type)->_strings->append("SET");
1123     ((daeEnumType*)type)->_values->append(GL_LOGIC_OP_SET);
1124     atomicTypes.append( type );
1125 
1126     // ENUM: Gl_polygon_mode
1127     type = new daeEnumType(dae);
1128     type->_nameBindings.append("Gl_polygon_mode");
1129     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1130     ((daeEnumType*)type)->_values = new daeEnumArray;
1131     ((daeEnumType*)type)->_strings->append("POINT");
1132     ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_POINT);
1133     ((daeEnumType*)type)->_strings->append("LINE");
1134     ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_LINE);
1135     ((daeEnumType*)type)->_strings->append("FILL");
1136     ((daeEnumType*)type)->_values->append(GL_POLYGON_MODE_FILL);
1137     atomicTypes.append( type );
1138 
1139     // ENUM: Gl_shade_model
1140     type = new daeEnumType(dae);
1141     type->_nameBindings.append("Gl_shade_model");
1142     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1143     ((daeEnumType*)type)->_values = new daeEnumArray;
1144     ((daeEnumType*)type)->_strings->append("FLAT");
1145     ((daeEnumType*)type)->_values->append(GL_SHADE_MODEL_FLAT);
1146     ((daeEnumType*)type)->_strings->append("SMOOTH");
1147     ((daeEnumType*)type)->_values->append(GL_SHADE_MODEL_SMOOTH);
1148     atomicTypes.append( type );
1149 
1150     // TYPEDEF: Gl_alpha_value	//check if this type has an existing base
1151     type = atomicTypes.get("xsFloat");
1152     if ( type == NULL ) { //register as a raw type
1153         type = new daeRawRefType(dae);
1154         type->_nameBindings.append("Gl_alpha_value");
1155         atomicTypes.append( type );
1156     }
1157     else { //add binding to existing type
1158         type->_nameBindings.append("Gl_alpha_value");
1159     }
1160 
1161     // ENUM: Gl_enumeration
1162     type = new daeEnumType(dae);
1163     type->_nameBindings.append("Gl_enumeration");
1164     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1165     ((daeEnumType*)type)->_values = new daeEnumArray;
1166     ((daeEnumType*)type)->_strings->append("ZERO");
1167     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ZERO);
1168     ((daeEnumType*)type)->_strings->append("ONE");
1169     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE);
1170     ((daeEnumType*)type)->_strings->append("SRC_COLOR");
1171     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_COLOR);
1172     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR");
1173     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_SRC_COLOR);
1174     ((daeEnumType*)type)->_strings->append("DEST_COLOR");
1175     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DEST_COLOR);
1176     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR");
1177     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_DEST_COLOR);
1178     ((daeEnumType*)type)->_strings->append("SRC_ALPHA");
1179     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_ALPHA);
1180     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA");
1181     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_SRC_ALPHA);
1182     ((daeEnumType*)type)->_strings->append("DST_ALPHA");
1183     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DST_ALPHA);
1184     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA");
1185     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_DST_ALPHA);
1186     ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR");
1187     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CONSTANT_COLOR);
1188     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR");
1189     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_CONSTANT_COLOR);
1190     ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA");
1191     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CONSTANT_ALPHA);
1192     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA");
1193     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA);
1194     ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE");
1195     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SRC_ALPHA_SATURATE);
1196     ((daeEnumType*)type)->_strings->append("FRONT");
1197     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRONT);
1198     ((daeEnumType*)type)->_strings->append("BACK");
1199     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_BACK);
1200     ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK");
1201     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRONT_AND_BACK);
1202     ((daeEnumType*)type)->_strings->append("FUNC_ADD");
1203     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_ADD);
1204     ((daeEnumType*)type)->_strings->append("FUNC_SUBTRACT");
1205     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_SUBTRACT);
1206     ((daeEnumType*)type)->_strings->append("FUNC_REVERSE_SUBTRACT");
1207     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FUNC_REVERSE_SUBTRACT);
1208     ((daeEnumType*)type)->_strings->append("MIN");
1209     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_MIN);
1210     ((daeEnumType*)type)->_strings->append("MAX");
1211     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_MAX);
1212     ((daeEnumType*)type)->_strings->append("NEVER");
1213     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NEVER);
1214     ((daeEnumType*)type)->_strings->append("LESS");
1215     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LESS);
1216     ((daeEnumType*)type)->_strings->append("LEQUAL");
1217     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LEQUAL);
1218     ((daeEnumType*)type)->_strings->append("EQUAL");
1219     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EQUAL);
1220     ((daeEnumType*)type)->_strings->append("GREATER");
1221     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_GREATER);
1222     ((daeEnumType*)type)->_strings->append("NOTEQUAL");
1223     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOTEQUAL);
1224     ((daeEnumType*)type)->_strings->append("GEQUAL");
1225     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_GEQUAL);
1226     ((daeEnumType*)type)->_strings->append("ALWAYS");
1227     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_ALWAYS);
1228     ((daeEnumType*)type)->_strings->append("KEEP");
1229     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_KEEP);
1230     ((daeEnumType*)type)->_strings->append("REPLACE");
1231     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_REPLACE);
1232     ((daeEnumType*)type)->_strings->append("INCR");
1233     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INCR);
1234     ((daeEnumType*)type)->_strings->append("DECR");
1235     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DECR);
1236     ((daeEnumType*)type)->_strings->append("INVERT");
1237     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INVERT);
1238     ((daeEnumType*)type)->_strings->append("INCR_WRAP");
1239     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_INCR_WRAP);
1240     ((daeEnumType*)type)->_strings->append("DECR_WRAP");
1241     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DECR_WRAP);
1242     ((daeEnumType*)type)->_strings->append("EMISSION");
1243     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EMISSION);
1244     ((daeEnumType*)type)->_strings->append("AMBIENT");
1245     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AMBIENT);
1246     ((daeEnumType*)type)->_strings->append("DIFFUSE");
1247     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_DIFFUSE);
1248     ((daeEnumType*)type)->_strings->append("SPECULAR");
1249     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SPECULAR);
1250     ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE");
1251     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AMBIENT_AND_DIFFUSE);
1252     ((daeEnumType*)type)->_strings->append("LINEAR");
1253     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LINEAR);
1254     ((daeEnumType*)type)->_strings->append("EXP");
1255     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EXP);
1256     ((daeEnumType*)type)->_strings->append("EXP2");
1257     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EXP2);
1258     ((daeEnumType*)type)->_strings->append("FOG_COORDINATE");
1259     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FOG_COORDINATE);
1260     ((daeEnumType*)type)->_strings->append("FRAGMENT_DEPTH");
1261     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FRAGMENT_DEPTH);
1262     ((daeEnumType*)type)->_strings->append("CW");
1263     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CW);
1264     ((daeEnumType*)type)->_strings->append("CCW");
1265     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CCW);
1266     ((daeEnumType*)type)->_strings->append("SINGLE_COLOR");
1267     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SINGLE_COLOR);
1268     ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR");
1269     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SEPARATE_SPECULAR_COLOR);
1270     ((daeEnumType*)type)->_strings->append("CLEAR");
1271     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_CLEAR);
1272     ((daeEnumType*)type)->_strings->append("AND");
1273     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND);
1274     ((daeEnumType*)type)->_strings->append("AND_REVERSE");
1275     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND_REVERSE);
1276     ((daeEnumType*)type)->_strings->append("COPY");
1277     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_COPY);
1278     ((daeEnumType*)type)->_strings->append("AND_INVERTED");
1279     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_AND_INVERTED);
1280     ((daeEnumType*)type)->_strings->append("NOOP");
1281     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOOP);
1282     ((daeEnumType*)type)->_strings->append("XOR");
1283     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_XOR);
1284     ((daeEnumType*)type)->_strings->append("OR");
1285     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_OR);
1286     ((daeEnumType*)type)->_strings->append("NOR");
1287     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NOR);
1288     ((daeEnumType*)type)->_strings->append("EQUIV");
1289     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_EQUIV);
1290     ((daeEnumType*)type)->_strings->append("OR_REVERSE");
1291     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_OR_REVERSE);
1292     ((daeEnumType*)type)->_strings->append("COPY_INVERTED");
1293     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_COPY_INVERTED);
1294     ((daeEnumType*)type)->_strings->append("NAND");
1295     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_NAND);
1296     ((daeEnumType*)type)->_strings->append("SET");
1297     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SET);
1298     ((daeEnumType*)type)->_strings->append("POINT");
1299     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_POINT);
1300     ((daeEnumType*)type)->_strings->append("LINE");
1301     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_LINE);
1302     ((daeEnumType*)type)->_strings->append("FILL");
1303     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FILL);
1304     ((daeEnumType*)type)->_strings->append("FLAT");
1305     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_FLAT);
1306     ((daeEnumType*)type)->_strings->append("SMOOTH");
1307     ((daeEnumType*)type)->_values->append(GL_ENUMERATION_SMOOTH);
1308     atomicTypes.append( type );
1309 
1310     // TYPEDEF: Gles_max_lights_index	//check if this type has an existing base
1311     type = atomicTypes.get("xsNonNegativeInteger");
1312     if ( type == NULL ) { //register as a raw type
1313         type = new daeRawRefType(dae);
1314         type->_nameBindings.append("Gles_max_lights_index");
1315         atomicTypes.append( type );
1316     }
1317     else { //add binding to existing type
1318         type->_nameBindings.append("Gles_max_lights_index");
1319     }
1320 
1321     // TYPEDEF: Gles_max_clip_planes_index	//check if this type has an existing base
1322     type = atomicTypes.get("xsNonNegativeInteger");
1323     if ( type == NULL ) { //register as a raw type
1324         type = new daeRawRefType(dae);
1325         type->_nameBindings.append("Gles_max_clip_planes_index");
1326         atomicTypes.append( type );
1327     }
1328     else { //add binding to existing type
1329         type->_nameBindings.append("Gles_max_clip_planes_index");
1330     }
1331 
1332     // TYPEDEF: Gles_max_texture_coords_index	//check if this type has an existing base
1333     type = atomicTypes.get("xsNonNegativeInteger");
1334     if ( type == NULL ) { //register as a raw type
1335         type = new daeRawRefType(dae);
1336         type->_nameBindings.append("Gles_max_texture_coords_index");
1337         atomicTypes.append( type );
1338     }
1339     else { //add binding to existing type
1340         type->_nameBindings.append("Gles_max_texture_coords_index");
1341     }
1342 
1343     // TYPEDEF: Gles_max_texture_image_units_index	//check if this type has an existing base
1344     type = atomicTypes.get("xsNonNegativeInteger");
1345     if ( type == NULL ) { //register as a raw type
1346         type = new daeRawRefType(dae);
1347         type->_nameBindings.append("Gles_max_texture_image_units_index");
1348         atomicTypes.append( type );
1349     }
1350     else { //add binding to existing type
1351         type->_nameBindings.append("Gles_max_texture_image_units_index");
1352     }
1353 
1354     // ENUM: Gles_texenv_mode
1355     type = new daeEnumType(dae);
1356     type->_nameBindings.append("Gles_texenv_mode");
1357     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1358     ((daeEnumType*)type)->_values = new daeEnumArray;
1359     ((daeEnumType*)type)->_strings->append("REPLACE");
1360     ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_REPLACE);
1361     ((daeEnumType*)type)->_strings->append("MODULATE");
1362     ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_MODULATE);
1363     ((daeEnumType*)type)->_strings->append("DECAL");
1364     ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_DECAL);
1365     ((daeEnumType*)type)->_strings->append("BLEND");
1366     ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_BLEND);
1367     ((daeEnumType*)type)->_strings->append("ADD");
1368     ((daeEnumType*)type)->_values->append(GLES_TEXENV_MODE_ADD);
1369     atomicTypes.append( type );
1370 
1371     // ENUM: Gles_texcombiner_operator_rgb
1372     type = new daeEnumType(dae);
1373     type->_nameBindings.append("Gles_texcombiner_operator_rgb");
1374     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1375     ((daeEnumType*)type)->_values = new daeEnumArray;
1376     ((daeEnumType*)type)->_strings->append("REPLACE");
1377     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_REPLACE);
1378     ((daeEnumType*)type)->_strings->append("MODULATE");
1379     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_MODULATE);
1380     ((daeEnumType*)type)->_strings->append("ADD");
1381     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_ADD);
1382     ((daeEnumType*)type)->_strings->append("ADD_SIGNED");
1383     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_ADD_SIGNED);
1384     ((daeEnumType*)type)->_strings->append("INTERPOLATE");
1385     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_INTERPOLATE);
1386     ((daeEnumType*)type)->_strings->append("SUBTRACT");
1387     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_SUBTRACT);
1388     ((daeEnumType*)type)->_strings->append("DOT3_RGB");
1389     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_DOT3_RGB);
1390     ((daeEnumType*)type)->_strings->append("DOT3_RGBA");
1391     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_RGB_DOT3_RGBA);
1392     atomicTypes.append( type );
1393 
1394     // ENUM: Gles_texcombiner_operator_alpha
1395     type = new daeEnumType(dae);
1396     type->_nameBindings.append("Gles_texcombiner_operator_alpha");
1397     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1398     ((daeEnumType*)type)->_values = new daeEnumArray;
1399     ((daeEnumType*)type)->_strings->append("REPLACE");
1400     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_REPLACE);
1401     ((daeEnumType*)type)->_strings->append("MODULATE");
1402     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_MODULATE);
1403     ((daeEnumType*)type)->_strings->append("ADD");
1404     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_ADD);
1405     ((daeEnumType*)type)->_strings->append("ADD_SIGNED");
1406     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_ADD_SIGNED);
1407     ((daeEnumType*)type)->_strings->append("INTERPOLATE");
1408     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_INTERPOLATE);
1409     ((daeEnumType*)type)->_strings->append("SUBTRACT");
1410     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERATOR_ALPHA_SUBTRACT);
1411     atomicTypes.append( type );
1412 
1413     // ENUM: Gles_texcombiner_source
1414     type = new daeEnumType(dae);
1415     type->_nameBindings.append("Gles_texcombiner_source");
1416     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1417     ((daeEnumType*)type)->_values = new daeEnumArray;
1418     ((daeEnumType*)type)->_strings->append("TEXTURE");
1419     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_TEXTURE);
1420     ((daeEnumType*)type)->_strings->append("CONSTANT");
1421     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_CONSTANT);
1422     ((daeEnumType*)type)->_strings->append("PRIMARY");
1423     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_PRIMARY);
1424     ((daeEnumType*)type)->_strings->append("PREVIOUS");
1425     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_SOURCE_PREVIOUS);
1426     atomicTypes.append( type );
1427 
1428     // ENUM: Gles_texcombiner_operand_rgb
1429     type = new daeEnumType(dae);
1430     type->_nameBindings.append("Gles_texcombiner_operand_rgb");
1431     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1432     ((daeEnumType*)type)->_values = new daeEnumArray;
1433     ((daeEnumType*)type)->_strings->append("SRC_COLOR");
1434     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_RGB_SRC_COLOR);
1435     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR");
1436     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_RGB_ONE_MINUS_SRC_COLOR);
1437     ((daeEnumType*)type)->_strings->append("SRC_ALPHA");
1438     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_RGB_SRC_ALPHA);
1439     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA");
1440     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_RGB_ONE_MINUS_SRC_ALPHA);
1441     atomicTypes.append( type );
1442 
1443     // ENUM: Gles_texcombiner_operand_alpha
1444     type = new daeEnumType(dae);
1445     type->_nameBindings.append("Gles_texcombiner_operand_alpha");
1446     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1447     ((daeEnumType*)type)->_values = new daeEnumArray;
1448     ((daeEnumType*)type)->_strings->append("SRC_ALPHA");
1449     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_ALPHA_SRC_ALPHA);
1450     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA");
1451     ((daeEnumType*)type)->_values->append(GLES_TEXCOMBINER_OPERAND_ALPHA_ONE_MINUS_SRC_ALPHA);
1452     atomicTypes.append( type );
1453 
1454     // TYPEDEF: Gles_texcombiner_argument_index	//check if this type has an existing base
1455     type = atomicTypes.get("xsNonNegativeInteger");
1456     if ( type == NULL ) { //register as a raw type
1457         type = new daeRawRefType(dae);
1458         type->_nameBindings.append("Gles_texcombiner_argument_index");
1459         atomicTypes.append( type );
1460     }
1461     else { //add binding to existing type
1462         type->_nameBindings.append("Gles_texcombiner_argument_index");
1463     }
1464 
1465     // ENUM: Gles_sampler_wrap
1466     type = new daeEnumType(dae);
1467     type->_nameBindings.append("Gles_sampler_wrap");
1468     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1469     ((daeEnumType*)type)->_values = new daeEnumArray;
1470     ((daeEnumType*)type)->_strings->append("REPEAT");
1471     ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_REPEAT);
1472     ((daeEnumType*)type)->_strings->append("CLAMP");
1473     ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_CLAMP);
1474     ((daeEnumType*)type)->_strings->append("CLAMP_TO_EDGE");
1475     ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_CLAMP_TO_EDGE);
1476     ((daeEnumType*)type)->_strings->append("MIRRORED_REPEAT");
1477     ((daeEnumType*)type)->_values->append(GLES_SAMPLER_WRAP_MIRRORED_REPEAT);
1478     atomicTypes.append( type );
1479 
1480     // ENUM: Gles_stencil_op
1481     type = new daeEnumType(dae);
1482     type->_nameBindings.append("Gles_stencil_op");
1483     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1484     ((daeEnumType*)type)->_values = new daeEnumArray;
1485     ((daeEnumType*)type)->_strings->append("KEEP");
1486     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_KEEP);
1487     ((daeEnumType*)type)->_strings->append("ZERO");
1488     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_ZERO);
1489     ((daeEnumType*)type)->_strings->append("REPLACE");
1490     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_REPLACE);
1491     ((daeEnumType*)type)->_strings->append("INCR");
1492     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_INCR);
1493     ((daeEnumType*)type)->_strings->append("DECR");
1494     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_DECR);
1495     ((daeEnumType*)type)->_strings->append("INVERT");
1496     ((daeEnumType*)type)->_values->append(GLES_STENCIL_OP_INVERT);
1497     atomicTypes.append( type );
1498 
1499     // ENUM: Gles_enumeration
1500     type = new daeEnumType(dae);
1501     type->_nameBindings.append("Gles_enumeration");
1502     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1503     ((daeEnumType*)type)->_values = new daeEnumArray;
1504     ((daeEnumType*)type)->_strings->append("ZERO");
1505     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ZERO);
1506     ((daeEnumType*)type)->_strings->append("ONE");
1507     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE);
1508     ((daeEnumType*)type)->_strings->append("SRC_COLOR");
1509     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_COLOR);
1510     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_COLOR");
1511     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_SRC_COLOR);
1512     ((daeEnumType*)type)->_strings->append("DEST_COLOR");
1513     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DEST_COLOR);
1514     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DEST_COLOR");
1515     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_DEST_COLOR);
1516     ((daeEnumType*)type)->_strings->append("SRC_ALPHA");
1517     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_ALPHA);
1518     ((daeEnumType*)type)->_strings->append("ONE_MINUS_SRC_ALPHA");
1519     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_SRC_ALPHA);
1520     ((daeEnumType*)type)->_strings->append("DST_ALPHA");
1521     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DST_ALPHA);
1522     ((daeEnumType*)type)->_strings->append("ONE_MINUS_DST_ALPHA");
1523     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_DST_ALPHA);
1524     ((daeEnumType*)type)->_strings->append("CONSTANT_COLOR");
1525     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CONSTANT_COLOR);
1526     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_COLOR");
1527     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_CONSTANT_COLOR);
1528     ((daeEnumType*)type)->_strings->append("CONSTANT_ALPHA");
1529     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CONSTANT_ALPHA);
1530     ((daeEnumType*)type)->_strings->append("ONE_MINUS_CONSTANT_ALPHA");
1531     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ONE_MINUS_CONSTANT_ALPHA);
1532     ((daeEnumType*)type)->_strings->append("SRC_ALPHA_SATURATE");
1533     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SRC_ALPHA_SATURATE);
1534     ((daeEnumType*)type)->_strings->append("FRONT");
1535     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FRONT);
1536     ((daeEnumType*)type)->_strings->append("BACK");
1537     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_BACK);
1538     ((daeEnumType*)type)->_strings->append("FRONT_AND_BACK");
1539     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FRONT_AND_BACK);
1540     ((daeEnumType*)type)->_strings->append("NEVER");
1541     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NEVER);
1542     ((daeEnumType*)type)->_strings->append("LESS");
1543     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LESS);
1544     ((daeEnumType*)type)->_strings->append("LEQUAL");
1545     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LEQUAL);
1546     ((daeEnumType*)type)->_strings->append("EQUAL");
1547     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EQUAL);
1548     ((daeEnumType*)type)->_strings->append("GREATER");
1549     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_GREATER);
1550     ((daeEnumType*)type)->_strings->append("NOTEQUAL");
1551     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOTEQUAL);
1552     ((daeEnumType*)type)->_strings->append("GEQUAL");
1553     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_GEQUAL);
1554     ((daeEnumType*)type)->_strings->append("ALWAYS");
1555     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_ALWAYS);
1556     ((daeEnumType*)type)->_strings->append("KEEP");
1557     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_KEEP);
1558     ((daeEnumType*)type)->_strings->append("REPLACE");
1559     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_REPLACE);
1560     ((daeEnumType*)type)->_strings->append("INCR");
1561     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INCR);
1562     ((daeEnumType*)type)->_strings->append("DECR");
1563     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DECR);
1564     ((daeEnumType*)type)->_strings->append("INVERT");
1565     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INVERT);
1566     ((daeEnumType*)type)->_strings->append("INCR_WRAP");
1567     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_INCR_WRAP);
1568     ((daeEnumType*)type)->_strings->append("DECR_WRAP");
1569     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DECR_WRAP);
1570     ((daeEnumType*)type)->_strings->append("EMISSION");
1571     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EMISSION);
1572     ((daeEnumType*)type)->_strings->append("AMBIENT");
1573     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AMBIENT);
1574     ((daeEnumType*)type)->_strings->append("DIFFUSE");
1575     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_DIFFUSE);
1576     ((daeEnumType*)type)->_strings->append("SPECULAR");
1577     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SPECULAR);
1578     ((daeEnumType*)type)->_strings->append("AMBIENT_AND_DIFFUSE");
1579     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AMBIENT_AND_DIFFUSE);
1580     ((daeEnumType*)type)->_strings->append("LINEAR");
1581     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LINEAR);
1582     ((daeEnumType*)type)->_strings->append("EXP");
1583     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EXP);
1584     ((daeEnumType*)type)->_strings->append("EXP2");
1585     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EXP2);
1586     ((daeEnumType*)type)->_strings->append("CW");
1587     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CW);
1588     ((daeEnumType*)type)->_strings->append("CCW");
1589     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CCW);
1590     ((daeEnumType*)type)->_strings->append("SINGLE_COLOR");
1591     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SINGLE_COLOR);
1592     ((daeEnumType*)type)->_strings->append("SEPARATE_SPECULAR_COLOR");
1593     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SEPARATE_SPECULAR_COLOR);
1594     ((daeEnumType*)type)->_strings->append("CLEAR");
1595     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_CLEAR);
1596     ((daeEnumType*)type)->_strings->append("AND");
1597     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND);
1598     ((daeEnumType*)type)->_strings->append("AND_REVERSE");
1599     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND_REVERSE);
1600     ((daeEnumType*)type)->_strings->append("COPY");
1601     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_COPY);
1602     ((daeEnumType*)type)->_strings->append("AND_INVERTED");
1603     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_AND_INVERTED);
1604     ((daeEnumType*)type)->_strings->append("NOOP");
1605     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOOP);
1606     ((daeEnumType*)type)->_strings->append("XOR");
1607     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_XOR);
1608     ((daeEnumType*)type)->_strings->append("OR");
1609     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_OR);
1610     ((daeEnumType*)type)->_strings->append("NOR");
1611     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NOR);
1612     ((daeEnumType*)type)->_strings->append("EQUIV");
1613     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_EQUIV);
1614     ((daeEnumType*)type)->_strings->append("OR_REVERSE");
1615     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_OR_REVERSE);
1616     ((daeEnumType*)type)->_strings->append("COPY_INVERTED");
1617     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_COPY_INVERTED);
1618     ((daeEnumType*)type)->_strings->append("NAND");
1619     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_NAND);
1620     ((daeEnumType*)type)->_strings->append("SET");
1621     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SET);
1622     ((daeEnumType*)type)->_strings->append("POINT");
1623     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_POINT);
1624     ((daeEnumType*)type)->_strings->append("LINE");
1625     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_LINE);
1626     ((daeEnumType*)type)->_strings->append("FILL");
1627     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FILL);
1628     ((daeEnumType*)type)->_strings->append("FLAT");
1629     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_FLAT);
1630     ((daeEnumType*)type)->_strings->append("SMOOTH");
1631     ((daeEnumType*)type)->_values->append(GLES_ENUMERATION_SMOOTH);
1632     atomicTypes.append( type );
1633 
1634     // ENUM: Spring
1635     type = new daeEnumType(dae);
1636     type->_nameBindings.append("Spring");
1637     ((daeEnumType*)type)->_strings = new daeStringRefArray;
1638     ((daeEnumType*)type)->_values = new daeEnumArray;
1639     ((daeEnumType*)type)->_strings->append("LINEAR");
1640     ((daeEnumType*)type)->_values->append(SPRING_LINEAR);
1641     ((daeEnumType*)type)->_strings->append("ANGULAR");
1642     ((daeEnumType*)type)->_values->append(SPRING_ANGULAR);
1643     atomicTypes.append( type );
1644 
1645     // TYPEDEF: Dynamic_limit	//check if this type has an existing base
1646     type = atomicTypes.get("Float2");
1647     if ( type == NULL ) { //register as a raw type
1648         type = new daeRawRefType(dae);
1649         type->_nameBindings.append("Dynamic_limit");
1650         atomicTypes.append( type );
1651     }
1652     else { //add binding to existing type
1653         type->_nameBindings.append("Dynamic_limit");
1654     }
1655 
1656 }
1657 
registerDomElements(DAE & dae)1658 daeMetaElement* registerDomElements(DAE& dae)
1659 {
1660     daeMetaElement* meta = domCOLLADA::registerElement(dae);
1661     // Enable tracking of top level object by default
1662     meta->setIsTrackableForQueries(true);
1663     return meta;
1664 }
1665 
colladaTypeCount()1666 daeInt colladaTypeCount() {
1667     return 969;
1668 }
1669 
1670 } // ColladaDOM150
1671