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 #include <dae.h>
10 #include <dae/daeDom.h>
11 #include <dom/domProfile_CG.h>
12 #include <dae/daeMetaCMPolicy.h>
13 #include <dae/daeMetaSequence.h>
14 #include <dae/daeMetaChoice.h>
15 #include <dae/daeMetaGroup.h>
16 #include <dae/daeMetaAny.h>
17 #include <dae/daeMetaElementAttribute.h>
18
19 daeElementRef
create(DAE & dae)20 domProfile_CG::create(DAE& dae)
21 {
22 domProfile_CGRef ref = new domProfile_CG(dae);
23 return ref;
24 }
25
26
27 daeMetaElement *
registerElement(DAE & dae)28 domProfile_CG::registerElement(DAE& dae)
29 {
30 daeMetaElement* meta = dae.getMeta(ID());
31 if ( meta != NULL ) return meta;
32
33 meta = new daeMetaElement(dae);
34 dae.setMeta(ID(), *meta);
35 meta->setName( "profile_CG" );
36 meta->registerClass(domProfile_CG::create);
37
38 daeMetaCMPolicy *cm = NULL;
39 daeMetaElementAttribute *mea = NULL;
40 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
41
42 mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 );
43 mea->setName( "asset" );
44 mea->setOffset( daeOffsetOf(domProfile_CG,elemAsset) );
45 mea->setElementType( domAsset::registerElement(dae) );
46 cm->appendChild( mea );
47
48 cm = new daeMetaChoice( meta, cm, 0, 1, 0, -1 );
49
50 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
51 mea->setName( "code" );
52 mea->setOffset( daeOffsetOf(domProfile_CG,elemCode_array) );
53 mea->setElementType( domFx_code_profile::registerElement(dae) );
54 cm->appendChild( mea );
55
56 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
57 mea->setName( "include" );
58 mea->setOffset( daeOffsetOf(domProfile_CG,elemInclude_array) );
59 mea->setElementType( domFx_include_common::registerElement(dae) );
60 cm->appendChild( mea );
61
62 cm->setMaxOrdinal( 0 );
63 cm->getParent()->appendChild( cm );
64 cm = cm->getParent();
65
66 cm = new daeMetaChoice( meta, cm, 1, 3002, 0, -1 );
67
68 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
69 mea->setName( "image" );
70 mea->setOffset( daeOffsetOf(domProfile_CG,elemImage_array) );
71 mea->setElementType( domImage::registerElement(dae) );
72 cm->appendChild( mea );
73
74 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
75 mea->setName( "newparam" );
76 mea->setOffset( daeOffsetOf(domProfile_CG,elemNewparam_array) );
77 mea->setElementType( domCg_newparam::registerElement(dae) );
78 cm->appendChild( mea );
79
80 cm->setMaxOrdinal( 0 );
81 cm->getParent()->appendChild( cm );
82 cm = cm->getParent();
83
84 mea = new daeMetaElementArrayAttribute( meta, cm, 6003, 1, -1 );
85 mea->setName( "technique" );
86 mea->setOffset( daeOffsetOf(domProfile_CG,elemTechnique_array) );
87 mea->setElementType( domProfile_CG::domTechnique::registerElement(dae) );
88 cm->appendChild( mea );
89
90 mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 0, -1 );
91 mea->setName( "extra" );
92 mea->setOffset( daeOffsetOf(domProfile_CG,elemExtra_array) );
93 mea->setElementType( domExtra::registerElement(dae) );
94 cm->appendChild( mea );
95
96 cm->setMaxOrdinal( 6004 );
97 meta->setCMRoot( cm );
98 // Ordered list of sub-elements
99 meta->addContents(daeOffsetOf(domProfile_CG,_contents));
100 meta->addContentsOrder(daeOffsetOf(domProfile_CG,_contentsOrder));
101
102 meta->addCMDataArray(daeOffsetOf(domProfile_CG,_CMData), 2);
103 // Add attribute: id
104 {
105 daeMetaAttribute *ma = new daeMetaAttribute;
106 ma->setName( "id" );
107 ma->setType( dae.getAtomicTypes().get("xsID"));
108 ma->setOffset( daeOffsetOf( domProfile_CG , attrId ));
109 ma->setContainer( meta );
110 ma->setIsRequired( false );
111
112 meta->appendAttribute(ma);
113 }
114
115 // Add attribute: platform
116 {
117 daeMetaAttribute *ma = new daeMetaAttribute;
118 ma->setName( "platform" );
119 ma->setType( dae.getAtomicTypes().get("xsNCName"));
120 ma->setOffset( daeOffsetOf( domProfile_CG , attrPlatform ));
121 ma->setContainer( meta );
122 ma->setDefaultString( "PC");
123 ma->setIsRequired( false );
124
125 meta->appendAttribute(ma);
126 }
127
128 meta->setElementSize(sizeof(domProfile_CG));
129 meta->validate();
130
131 return meta;
132 }
133
134 daeElementRef
create(DAE & dae)135 domProfile_CG::domTechnique::create(DAE& dae)
136 {
137 domProfile_CG::domTechniqueRef ref = new domProfile_CG::domTechnique(dae);
138 return ref;
139 }
140
141
142 daeMetaElement *
registerElement(DAE & dae)143 domProfile_CG::domTechnique::registerElement(DAE& dae)
144 {
145 daeMetaElement* meta = dae.getMeta(ID());
146 if ( meta != NULL ) return meta;
147
148 meta = new daeMetaElement(dae);
149 dae.setMeta(ID(), *meta);
150 meta->setName( "technique" );
151 meta->registerClass(domProfile_CG::domTechnique::create);
152
153 meta->setIsInnerClass( true );
154 daeMetaCMPolicy *cm = NULL;
155 daeMetaElementAttribute *mea = NULL;
156 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
157
158 mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 );
159 mea->setName( "asset" );
160 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemAsset) );
161 mea->setElementType( domAsset::registerElement(dae) );
162 cm->appendChild( mea );
163
164 mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
165 mea->setName( "annotate" );
166 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemAnnotate_array) );
167 mea->setElementType( domFx_annotate_common::registerElement(dae) );
168 cm->appendChild( mea );
169
170 cm = new daeMetaChoice( meta, cm, 0, 2, 0, -1 );
171
172 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
173 mea->setName( "code" );
174 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemCode_array) );
175 mea->setElementType( domFx_code_profile::registerElement(dae) );
176 cm->appendChild( mea );
177
178 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
179 mea->setName( "include" );
180 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemInclude_array) );
181 mea->setElementType( domFx_include_common::registerElement(dae) );
182 cm->appendChild( mea );
183
184 cm->setMaxOrdinal( 0 );
185 cm->getParent()->appendChild( cm );
186 cm = cm->getParent();
187
188 cm = new daeMetaChoice( meta, cm, 1, 3003, 0, -1 );
189
190 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
191 mea->setName( "image" );
192 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemImage_array) );
193 mea->setElementType( domImage::registerElement(dae) );
194 cm->appendChild( mea );
195
196 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
197 mea->setName( "newparam" );
198 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemNewparam_array) );
199 mea->setElementType( domCg_newparam::registerElement(dae) );
200 cm->appendChild( mea );
201
202 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
203 mea->setName( "setparam" );
204 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemSetparam_array) );
205 mea->setElementType( domCg_setparam::registerElement(dae) );
206 cm->appendChild( mea );
207
208 cm->setMaxOrdinal( 0 );
209 cm->getParent()->appendChild( cm );
210 cm = cm->getParent();
211
212 mea = new daeMetaElementArrayAttribute( meta, cm, 6004, 1, -1 );
213 mea->setName( "pass" );
214 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemPass_array) );
215 mea->setElementType( domProfile_CG::domTechnique::domPass::registerElement(dae) );
216 cm->appendChild( mea );
217
218 mea = new daeMetaElementArrayAttribute( meta, cm, 6005, 0, -1 );
219 mea->setName( "extra" );
220 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique,elemExtra_array) );
221 mea->setElementType( domExtra::registerElement(dae) );
222 cm->appendChild( mea );
223
224 cm->setMaxOrdinal( 6005 );
225 meta->setCMRoot( cm );
226 // Ordered list of sub-elements
227 meta->addContents(daeOffsetOf(domProfile_CG::domTechnique,_contents));
228 meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique,_contentsOrder));
229
230 meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique,_CMData), 2);
231 // Add attribute: id
232 {
233 daeMetaAttribute *ma = new daeMetaAttribute;
234 ma->setName( "id" );
235 ma->setType( dae.getAtomicTypes().get("xsID"));
236 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique , attrId ));
237 ma->setContainer( meta );
238
239 meta->appendAttribute(ma);
240 }
241
242 // Add attribute: sid
243 {
244 daeMetaAttribute *ma = new daeMetaAttribute;
245 ma->setName( "sid" );
246 ma->setType( dae.getAtomicTypes().get("xsNCName"));
247 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique , attrSid ));
248 ma->setContainer( meta );
249 ma->setIsRequired( true );
250
251 meta->appendAttribute(ma);
252 }
253
254 meta->setElementSize(sizeof(domProfile_CG::domTechnique));
255 meta->validate();
256
257 return meta;
258 }
259
260 daeElementRef
create(DAE & dae)261 domProfile_CG::domTechnique::domPass::create(DAE& dae)
262 {
263 domProfile_CG::domTechnique::domPassRef ref = new domProfile_CG::domTechnique::domPass(dae);
264 return ref;
265 }
266
267
268 daeMetaElement *
registerElement(DAE & dae)269 domProfile_CG::domTechnique::domPass::registerElement(DAE& dae)
270 {
271 daeMetaElement* meta = dae.getMeta(ID());
272 if ( meta != NULL ) return meta;
273
274 meta = new daeMetaElement(dae);
275 dae.setMeta(ID(), *meta);
276 meta->setName( "pass" );
277 meta->registerClass(domProfile_CG::domTechnique::domPass::create);
278
279 meta->setIsInnerClass( true );
280 daeMetaCMPolicy *cm = NULL;
281 daeMetaElementAttribute *mea = NULL;
282 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
283
284 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 );
285 mea->setName( "annotate" );
286 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemAnnotate_array) );
287 mea->setElementType( domFx_annotate_common::registerElement(dae) );
288 cm->appendChild( mea );
289
290 mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
291 mea->setName( "color_target" );
292 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemColor_target_array) );
293 mea->setElementType( domFx_colortarget_common::registerElement(dae) );
294 cm->appendChild( mea );
295
296 mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
297 mea->setName( "depth_target" );
298 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDepth_target_array) );
299 mea->setElementType( domFx_depthtarget_common::registerElement(dae) );
300 cm->appendChild( mea );
301
302 mea = new daeMetaElementArrayAttribute( meta, cm, 3, 0, -1 );
303 mea->setName( "stencil_target" );
304 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemStencil_target_array) );
305 mea->setElementType( domFx_stenciltarget_common::registerElement(dae) );
306 cm->appendChild( mea );
307
308 mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 );
309 mea->setName( "color_clear" );
310 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemColor_clear_array) );
311 mea->setElementType( domFx_clearcolor_common::registerElement(dae) );
312 cm->appendChild( mea );
313
314 mea = new daeMetaElementArrayAttribute( meta, cm, 5, 0, -1 );
315 mea->setName( "depth_clear" );
316 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDepth_clear_array) );
317 mea->setElementType( domFx_cleardepth_common::registerElement(dae) );
318 cm->appendChild( mea );
319
320 mea = new daeMetaElementArrayAttribute( meta, cm, 6, 0, -1 );
321 mea->setName( "stencil_clear" );
322 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemStencil_clear_array) );
323 mea->setElementType( domFx_clearstencil_common::registerElement(dae) );
324 cm->appendChild( mea );
325
326 mea = new daeMetaElementAttribute( meta, cm, 7, 0, 1 );
327 mea->setName( "draw" );
328 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemDraw) );
329 mea->setElementType( domProfile_CG::domTechnique::domPass::domDraw::registerElement(dae) );
330 cm->appendChild( mea );
331
332 cm = new daeMetaChoice( meta, cm, 0, 8, 1, -1 );
333
334 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
335 mea->setName( "gl_pipeline_settings" );
336 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemGl_pipeline_settings_array) );
337 mea->setElementType( domGl_pipeline_settings::registerElement(dae) );
338 cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) );
339
340 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
341 mea->setName( "shader" );
342 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemShader_array) );
343 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::registerElement(dae) );
344 cm->appendChild( mea );
345
346 cm->setMaxOrdinal( 0 );
347 cm->getParent()->appendChild( cm );
348 cm = cm->getParent();
349
350 mea = new daeMetaElementArrayAttribute( meta, cm, 3009, 0, -1 );
351 mea->setName( "extra" );
352 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass,elemExtra_array) );
353 mea->setElementType( domExtra::registerElement(dae) );
354 cm->appendChild( mea );
355
356 cm->setMaxOrdinal( 3009 );
357 meta->setCMRoot( cm );
358 // Ordered list of sub-elements
359 meta->addContents(daeOffsetOf(domProfile_CG::domTechnique::domPass,_contents));
360 meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique::domPass,_contentsOrder));
361
362 meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique::domPass,_CMData), 1);
363 // Add attribute: sid
364 {
365 daeMetaAttribute *ma = new daeMetaAttribute;
366 ma->setName( "sid" );
367 ma->setType( dae.getAtomicTypes().get("xsNCName"));
368 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass , attrSid ));
369 ma->setContainer( meta );
370 ma->setIsRequired( false );
371
372 meta->appendAttribute(ma);
373 }
374
375 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass));
376 meta->validate();
377
378 return meta;
379 }
380
381 daeElementRef
create(DAE & dae)382 domProfile_CG::domTechnique::domPass::domDraw::create(DAE& dae)
383 {
384 domProfile_CG::domTechnique::domPass::domDrawRef ref = new domProfile_CG::domTechnique::domPass::domDraw(dae);
385 return ref;
386 }
387
388
389 daeMetaElement *
registerElement(DAE & dae)390 domProfile_CG::domTechnique::domPass::domDraw::registerElement(DAE& dae)
391 {
392 daeMetaElement* meta = dae.getMeta(ID());
393 if ( meta != NULL ) return meta;
394
395 meta = new daeMetaElement(dae);
396 dae.setMeta(ID(), *meta);
397 meta->setName( "draw" );
398 meta->registerClass(domProfile_CG::domTechnique::domPass::domDraw::create);
399
400 meta->setIsInnerClass( true );
401 // Add attribute: _value
402 {
403 daeMetaAttribute *ma = new daeMetaAttribute;
404 ma->setName( "_value" );
405 ma->setType( dae.getAtomicTypes().get("Fx_draw_common"));
406 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domDraw , _value ));
407 ma->setContainer( meta );
408 meta->appendAttribute(ma);
409 }
410
411 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domDraw));
412 meta->validate();
413
414 return meta;
415 }
416
417 daeElementRef
create(DAE & dae)418 domProfile_CG::domTechnique::domPass::domShader::create(DAE& dae)
419 {
420 domProfile_CG::domTechnique::domPass::domShaderRef ref = new domProfile_CG::domTechnique::domPass::domShader(dae);
421 return ref;
422 }
423
424
425 daeMetaElement *
registerElement(DAE & dae)426 domProfile_CG::domTechnique::domPass::domShader::registerElement(DAE& dae)
427 {
428 daeMetaElement* meta = dae.getMeta(ID());
429 if ( meta != NULL ) return meta;
430
431 meta = new daeMetaElement(dae);
432 dae.setMeta(ID(), *meta);
433 meta->setName( "shader" );
434 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::create);
435
436 meta->setIsInnerClass( true );
437 daeMetaCMPolicy *cm = NULL;
438 daeMetaElementAttribute *mea = NULL;
439 cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
440
441 mea = new daeMetaElementArrayAttribute( meta, cm, 0, 0, -1 );
442 mea->setName( "annotate" );
443 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemAnnotate_array) );
444 mea->setElementType( domFx_annotate_common::registerElement(dae) );
445 cm->appendChild( mea );
446
447 cm = new daeMetaSequence( meta, cm, 1, 0, 1 );
448
449 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
450 mea->setName( "compiler_target" );
451 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemCompiler_target) );
452 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::registerElement(dae) );
453 cm->appendChild( mea );
454
455 mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 );
456 mea->setName( "compiler_options" );
457 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemCompiler_options) );
458 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::registerElement(dae) );
459 cm->appendChild( mea );
460
461 cm->setMaxOrdinal( 1 );
462 cm->getParent()->appendChild( cm );
463 cm = cm->getParent();
464
465 mea = new daeMetaElementAttribute( meta, cm, 3, 1, 1 );
466 mea->setName( "name" );
467 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemName) );
468 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domName::registerElement(dae) );
469 cm->appendChild( mea );
470
471 mea = new daeMetaElementArrayAttribute( meta, cm, 4, 0, -1 );
472 mea->setName( "bind" );
473 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader,elemBind_array) );
474 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domBind::registerElement(dae) );
475 cm->appendChild( mea );
476
477 cm->setMaxOrdinal( 4 );
478 meta->setCMRoot( cm );
479
480 // Add attribute: stage
481 {
482 daeMetaAttribute *ma = new daeMetaAttribute;
483 ma->setName( "stage" );
484 ma->setType( dae.getAtomicTypes().get("Cg_pipeline_stage"));
485 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader , attrStage ));
486 ma->setContainer( meta );
487
488 meta->appendAttribute(ma);
489 }
490
491 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader));
492 meta->validate();
493
494 return meta;
495 }
496
497 daeElementRef
create(DAE & dae)498 domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::create(DAE& dae)
499 {
500 domProfile_CG::domTechnique::domPass::domShader::domCompiler_targetRef ref = new domProfile_CG::domTechnique::domPass::domShader::domCompiler_target(dae);
501 return ref;
502 }
503
504
505 daeMetaElement *
registerElement(DAE & dae)506 domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::registerElement(DAE& dae)
507 {
508 daeMetaElement* meta = dae.getMeta(ID());
509 if ( meta != NULL ) return meta;
510
511 meta = new daeMetaElement(dae);
512 dae.setMeta(ID(), *meta);
513 meta->setName( "compiler_target" );
514 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domCompiler_target::create);
515
516 meta->setIsInnerClass( true );
517 // Add attribute: _value
518 {
519 daeMetaAttribute *ma = new daeMetaAttribute;
520 ma->setName( "_value" );
521 ma->setType( dae.getAtomicTypes().get("xsNMTOKEN"));
522 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domCompiler_target , _value ));
523 ma->setContainer( meta );
524 meta->appendAttribute(ma);
525 }
526
527 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domCompiler_target));
528 meta->validate();
529
530 return meta;
531 }
532
533 daeElementRef
create(DAE & dae)534 domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::create(DAE& dae)
535 {
536 domProfile_CG::domTechnique::domPass::domShader::domCompiler_optionsRef ref = new domProfile_CG::domTechnique::domPass::domShader::domCompiler_options(dae);
537 return ref;
538 }
539
540
541 daeMetaElement *
registerElement(DAE & dae)542 domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::registerElement(DAE& dae)
543 {
544 daeMetaElement* meta = dae.getMeta(ID());
545 if ( meta != NULL ) return meta;
546
547 meta = new daeMetaElement(dae);
548 dae.setMeta(ID(), *meta);
549 meta->setName( "compiler_options" );
550 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domCompiler_options::create);
551
552 meta->setIsInnerClass( true );
553 // Add attribute: _value
554 {
555 daeMetaAttribute *ma = new daeMetaAttribute;
556 ma->setName( "_value" );
557 ma->setType( dae.getAtomicTypes().get("xsString"));
558 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domCompiler_options , _value ));
559 ma->setContainer( meta );
560 meta->appendAttribute(ma);
561 }
562
563 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domCompiler_options));
564 meta->validate();
565
566 return meta;
567 }
568
569 daeElementRef
create(DAE & dae)570 domProfile_CG::domTechnique::domPass::domShader::domName::create(DAE& dae)
571 {
572 domProfile_CG::domTechnique::domPass::domShader::domNameRef ref = new domProfile_CG::domTechnique::domPass::domShader::domName(dae);
573 return ref;
574 }
575
576
577 daeMetaElement *
registerElement(DAE & dae)578 domProfile_CG::domTechnique::domPass::domShader::domName::registerElement(DAE& dae)
579 {
580 daeMetaElement* meta = dae.getMeta(ID());
581 if ( meta != NULL ) return meta;
582
583 meta = new daeMetaElement(dae);
584 dae.setMeta(ID(), *meta);
585 meta->setName( "name" );
586 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domName::create);
587
588 meta->setIsInnerClass( true );
589 // Add attribute: _value
590 {
591 daeMetaAttribute *ma = new daeMetaAttribute;
592 ma->setName( "_value" );
593 ma->setType( dae.getAtomicTypes().get("xsNCName"));
594 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domName , _value ));
595 ma->setContainer( meta );
596 meta->appendAttribute(ma);
597 }
598
599 // Add attribute: source
600 {
601 daeMetaAttribute *ma = new daeMetaAttribute;
602 ma->setName( "source" );
603 ma->setType( dae.getAtomicTypes().get("xsNCName"));
604 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domName , attrSource ));
605 ma->setContainer( meta );
606 ma->setIsRequired( false );
607
608 meta->appendAttribute(ma);
609 }
610
611 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domName));
612 meta->validate();
613
614 return meta;
615 }
616
617 daeElementRef
create(DAE & dae)618 domProfile_CG::domTechnique::domPass::domShader::domBind::create(DAE& dae)
619 {
620 domProfile_CG::domTechnique::domPass::domShader::domBindRef ref = new domProfile_CG::domTechnique::domPass::domShader::domBind(dae);
621 return ref;
622 }
623
624
625 daeMetaElement *
registerElement(DAE & dae)626 domProfile_CG::domTechnique::domPass::domShader::domBind::registerElement(DAE& dae)
627 {
628 daeMetaElement* meta = dae.getMeta(ID());
629 if ( meta != NULL ) return meta;
630
631 meta = new daeMetaElement(dae);
632 dae.setMeta(ID(), *meta);
633 meta->setName( "bind" );
634 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domBind::create);
635
636 meta->setIsInnerClass( true );
637 daeMetaCMPolicy *cm = NULL;
638 daeMetaElementAttribute *mea = NULL;
639 cm = new daeMetaChoice( meta, cm, 0, 0, 1, 1 );
640
641 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
642 mea->setName( "cg_param_type" );
643 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,elemCg_param_type) );
644 mea->setElementType( domCg_param_type::registerElement(dae) );
645 cm->appendChild( new daeMetaGroup( mea, meta, cm, 0, 1, 1 ) );
646
647 mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
648 mea->setName( "param" );
649 mea->setOffset( daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,elemParam) );
650 mea->setElementType( domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::registerElement(dae) );
651 cm->appendChild( mea );
652
653 cm->setMaxOrdinal( 0 );
654 meta->setCMRoot( cm );
655 // Ordered list of sub-elements
656 meta->addContents(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_contents));
657 meta->addContentsOrder(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_contentsOrder));
658
659 meta->addCMDataArray(daeOffsetOf(domProfile_CG::domTechnique::domPass::domShader::domBind,_CMData), 1);
660 // Add attribute: symbol
661 {
662 daeMetaAttribute *ma = new daeMetaAttribute;
663 ma->setName( "symbol" );
664 ma->setType( dae.getAtomicTypes().get("xsNCName"));
665 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domBind , attrSymbol ));
666 ma->setContainer( meta );
667 ma->setIsRequired( true );
668
669 meta->appendAttribute(ma);
670 }
671
672 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domBind));
673 meta->validate();
674
675 return meta;
676 }
677
678 daeElementRef
create(DAE & dae)679 domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::create(DAE& dae)
680 {
681 domProfile_CG::domTechnique::domPass::domShader::domBind::domParamRef ref = new domProfile_CG::domTechnique::domPass::domShader::domBind::domParam(dae);
682 return ref;
683 }
684
685
686 daeMetaElement *
registerElement(DAE & dae)687 domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::registerElement(DAE& dae)
688 {
689 daeMetaElement* meta = dae.getMeta(ID());
690 if ( meta != NULL ) return meta;
691
692 meta = new daeMetaElement(dae);
693 dae.setMeta(ID(), *meta);
694 meta->setName( "param" );
695 meta->registerClass(domProfile_CG::domTechnique::domPass::domShader::domBind::domParam::create);
696
697 meta->setIsInnerClass( true );
698
699 // Add attribute: ref
700 {
701 daeMetaAttribute *ma = new daeMetaAttribute;
702 ma->setName( "ref" );
703 ma->setType( dae.getAtomicTypes().get("xsNCName"));
704 ma->setOffset( daeOffsetOf( domProfile_CG::domTechnique::domPass::domShader::domBind::domParam , attrRef ));
705 ma->setContainer( meta );
706 ma->setIsRequired( true );
707
708 meta->appendAttribute(ma);
709 }
710
711 meta->setElementSize(sizeof(domProfile_CG::domTechnique::domPass::domShader::domBind::domParam));
712 meta->validate();
713
714 return meta;
715 }
716
717