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 <1.4/dom/domInstance_rigid_body.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 
20 namespace ColladaDOM141 {
21 daeElementRef
create(DAE & dae)22 domInstance_rigid_body::create(DAE& dae)
23 {
24 	domInstance_rigid_bodyRef ref = new domInstance_rigid_body(dae);
25 	return ref;
26 }
27 
28 
29 daeMetaElement *
registerElement(DAE & dae)30 domInstance_rigid_body::registerElement(DAE& dae)
31 {
32 	daeMetaElement* meta = dae.getMeta(ID());
33 	if ( meta != NULL ) return meta;
34 
35 	meta = new daeMetaElement(dae);
36 	dae.setMeta(ID(), *meta);
37 	meta->setName( "instance_rigid_body" );
38 	meta->registerClass(domInstance_rigid_body::create);
39 
40 	daeMetaCMPolicy *cm = NULL;
41 	daeMetaElementAttribute *mea = NULL;
42 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
43 
44 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
45 	mea->setName( "technique_common" );
46 	mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemTechnique_common) );
47 	mea->setElementType( domInstance_rigid_body::domTechnique_common::registerElement(dae) );
48 	cm->appendChild( mea );
49 
50 	mea = new daeMetaElementArrayAttribute( meta, cm, 1, 0, -1 );
51 	mea->setName( "technique" );
52 	mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemTechnique_array) );
53 	mea->setElementType( domTechnique::registerElement(dae) );
54 	cm->appendChild( mea );
55 
56 	mea = new daeMetaElementArrayAttribute( meta, cm, 2, 0, -1 );
57 	mea->setName( "extra" );
58 	mea->setOffset( daeOffsetOf(domInstance_rigid_body,elemExtra_array) );
59 	mea->setElementType( domExtra::registerElement(dae) );
60 	cm->appendChild( mea );
61 
62 	cm->setMaxOrdinal( 2 );
63 	meta->setCMRoot( cm );
64 
65 	//	Add attribute: body
66 	{
67 		daeMetaAttribute *ma = new daeMetaAttribute;
68 		ma->setName( "body" );
69 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
70 		ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrBody ));
71 		ma->setContainer( meta );
72 		ma->setIsRequired( true );
73 
74 		meta->appendAttribute(ma);
75 	}
76 
77 	//	Add attribute: sid
78 	{
79 		daeMetaAttribute *ma = new daeMetaAttribute;
80 		ma->setName( "sid" );
81 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
82 		ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrSid ));
83 		ma->setContainer( meta );
84 
85 		meta->appendAttribute(ma);
86 	}
87 
88 	//	Add attribute: name
89 	{
90 		daeMetaAttribute *ma = new daeMetaAttribute;
91 		ma->setName( "name" );
92 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
93 		ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrName ));
94 		ma->setContainer( meta );
95 
96 		meta->appendAttribute(ma);
97 	}
98 
99 	//	Add attribute: target
100 	{
101 		daeMetaAttribute *ma = new daeMetaAttribute;
102 		ma->setName( "target" );
103 		ma->setType( dae.getAtomicTypes().get("xsAnyURI"));
104 		ma->setOffset( daeOffsetOf( domInstance_rigid_body , attrTarget ));
105 		ma->setContainer( meta );
106 		ma->setIsRequired( true );
107 
108 		meta->appendAttribute(ma);
109 	}
110 
111 	meta->setElementSize(sizeof(domInstance_rigid_body));
112 	meta->validate();
113 
114 	return meta;
115 }
116 
117 daeElementRef
create(DAE & dae)118 domInstance_rigid_body::domTechnique_common::create(DAE& dae)
119 {
120 	domInstance_rigid_body::domTechnique_commonRef ref = new domInstance_rigid_body::domTechnique_common(dae);
121 	return ref;
122 }
123 
124 
125 daeMetaElement *
registerElement(DAE & dae)126 domInstance_rigid_body::domTechnique_common::registerElement(DAE& dae)
127 {
128 	daeMetaElement* meta = dae.getMeta(ID());
129 	if ( meta != NULL ) return meta;
130 
131 	meta = new daeMetaElement(dae);
132 	dae.setMeta(ID(), *meta);
133 	meta->setName( "technique_common" );
134 	meta->registerClass(domInstance_rigid_body::domTechnique_common::create);
135 
136 	meta->setIsInnerClass( true );
137 	daeMetaCMPolicy *cm = NULL;
138 	daeMetaElementAttribute *mea = NULL;
139 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
140 
141 	mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 );
142 	mea->setName( "angular_velocity" );
143 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemAngular_velocity) );
144 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domAngular_velocity::registerElement(dae) );
145 	cm->appendChild( mea );
146 
147 	mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 );
148 	mea->setName( "velocity" );
149 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemVelocity) );
150 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domVelocity::registerElement(dae) );
151 	cm->appendChild( mea );
152 
153 	mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 );
154 	mea->setName( "dynamic" );
155 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemDynamic) );
156 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domDynamic::registerElement(dae) );
157 	cm->appendChild( mea );
158 
159 	mea = new daeMetaElementAttribute( meta, cm, 3, 0, 1 );
160 	mea->setName( "mass" );
161 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemMass) );
162 	mea->setElementType( domTargetableFloat::registerElement(dae) );
163 	cm->appendChild( mea );
164 
165 	mea = new daeMetaElementAttribute( meta, cm, 4, 0, 1 );
166 	mea->setName( "mass_frame" );
167 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemMass_frame) );
168 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domMass_frame::registerElement(dae) );
169 	cm->appendChild( mea );
170 
171 	mea = new daeMetaElementAttribute( meta, cm, 5, 0, 1 );
172 	mea->setName( "inertia" );
173 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemInertia) );
174 	mea->setElementType( domTargetableFloat3::registerElement(dae) );
175 	cm->appendChild( mea );
176 
177 	cm = new daeMetaChoice( meta, cm, 0, 6, 0, 1 );
178 
179 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
180 	mea->setName( "instance_physics_material" );
181 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemInstance_physics_material) );
182 	mea->setElementType( domInstance_physics_material::registerElement(dae) );
183 	cm->appendChild( mea );
184 
185 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
186 	mea->setName( "physics_material" );
187 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemPhysics_material) );
188 	mea->setElementType( domPhysics_material::registerElement(dae) );
189 	cm->appendChild( mea );
190 
191 	cm->setMaxOrdinal( 0 );
192 	cm->getParent()->appendChild( cm );
193 	cm = cm->getParent();
194 
195 	mea = new daeMetaElementArrayAttribute( meta, cm, 7, 0, -1 );
196 	mea->setName( "shape" );
197 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common,elemShape_array) );
198 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domShape::registerElement(dae) );
199 	cm->appendChild( mea );
200 
201 	cm->setMaxOrdinal( 7 );
202 	meta->setCMRoot( cm );
203 	// Ordered list of sub-elements
204 	meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_contents));
205 	meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_contentsOrder));
206 
207 	meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common,_CMData), 1);
208 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common));
209 	meta->validate();
210 
211 	return meta;
212 }
213 
214 daeElementRef
create(DAE & dae)215 domInstance_rigid_body::domTechnique_common::domAngular_velocity::create(DAE& dae)
216 {
217 	domInstance_rigid_body::domTechnique_common::domAngular_velocityRef ref = new domInstance_rigid_body::domTechnique_common::domAngular_velocity(dae);
218 	return ref;
219 }
220 
221 
222 daeMetaElement *
registerElement(DAE & dae)223 domInstance_rigid_body::domTechnique_common::domAngular_velocity::registerElement(DAE& dae)
224 {
225 	daeMetaElement* meta = dae.getMeta(ID());
226 	if ( meta != NULL ) return meta;
227 
228 	meta = new daeMetaElement(dae);
229 	dae.setMeta(ID(), *meta);
230 	meta->setName( "angular_velocity" );
231 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domAngular_velocity::create);
232 
233 	meta->setIsInnerClass( true );
234 	//	Add attribute: _value
235 	{
236 		daeMetaAttribute *ma = new daeMetaArrayAttribute;
237 		ma->setName( "_value" );
238 		ma->setType( dae.getAtomicTypes().get("Float3"));
239 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domAngular_velocity , _value ));
240 		ma->setContainer( meta );
241 		meta->appendAttribute(ma);
242 	}
243 
244 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domAngular_velocity));
245 	meta->validate();
246 
247 	return meta;
248 }
249 
250 daeElementRef
create(DAE & dae)251 domInstance_rigid_body::domTechnique_common::domVelocity::create(DAE& dae)
252 {
253 	domInstance_rigid_body::domTechnique_common::domVelocityRef ref = new domInstance_rigid_body::domTechnique_common::domVelocity(dae);
254 	return ref;
255 }
256 
257 
258 daeMetaElement *
registerElement(DAE & dae)259 domInstance_rigid_body::domTechnique_common::domVelocity::registerElement(DAE& dae)
260 {
261 	daeMetaElement* meta = dae.getMeta(ID());
262 	if ( meta != NULL ) return meta;
263 
264 	meta = new daeMetaElement(dae);
265 	dae.setMeta(ID(), *meta);
266 	meta->setName( "velocity" );
267 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domVelocity::create);
268 
269 	meta->setIsInnerClass( true );
270 	//	Add attribute: _value
271 	{
272 		daeMetaAttribute *ma = new daeMetaArrayAttribute;
273 		ma->setName( "_value" );
274 		ma->setType( dae.getAtomicTypes().get("Float3"));
275 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domVelocity , _value ));
276 		ma->setContainer( meta );
277 		meta->appendAttribute(ma);
278 	}
279 
280 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domVelocity));
281 	meta->validate();
282 
283 	return meta;
284 }
285 
286 daeElementRef
create(DAE & dae)287 domInstance_rigid_body::domTechnique_common::domDynamic::create(DAE& dae)
288 {
289 	domInstance_rigid_body::domTechnique_common::domDynamicRef ref = new domInstance_rigid_body::domTechnique_common::domDynamic(dae);
290 	return ref;
291 }
292 
293 
294 daeMetaElement *
registerElement(DAE & dae)295 domInstance_rigid_body::domTechnique_common::domDynamic::registerElement(DAE& dae)
296 {
297 	daeMetaElement* meta = dae.getMeta(ID());
298 	if ( meta != NULL ) return meta;
299 
300 	meta = new daeMetaElement(dae);
301 	dae.setMeta(ID(), *meta);
302 	meta->setName( "dynamic" );
303 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domDynamic::create);
304 
305 	meta->setIsInnerClass( true );
306 	//	Add attribute: _value
307 	{
308 		daeMetaAttribute *ma = new daeMetaAttribute;
309 		ma->setName( "_value" );
310 		ma->setType( dae.getAtomicTypes().get("Bool"));
311 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domDynamic , _value ));
312 		ma->setContainer( meta );
313 		meta->appendAttribute(ma);
314 	}
315 
316 	//	Add attribute: sid
317 	{
318 		daeMetaAttribute *ma = new daeMetaAttribute;
319 		ma->setName( "sid" );
320 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
321 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domDynamic , attrSid ));
322 		ma->setContainer( meta );
323 
324 		meta->appendAttribute(ma);
325 	}
326 
327 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domDynamic));
328 	meta->validate();
329 
330 	return meta;
331 }
332 
333 daeElementRef
create(DAE & dae)334 domInstance_rigid_body::domTechnique_common::domMass_frame::create(DAE& dae)
335 {
336 	domInstance_rigid_body::domTechnique_common::domMass_frameRef ref = new domInstance_rigid_body::domTechnique_common::domMass_frame(dae);
337 	return ref;
338 }
339 
340 
341 daeMetaElement *
registerElement(DAE & dae)342 domInstance_rigid_body::domTechnique_common::domMass_frame::registerElement(DAE& dae)
343 {
344 	daeMetaElement* meta = dae.getMeta(ID());
345 	if ( meta != NULL ) return meta;
346 
347 	meta = new daeMetaElement(dae);
348 	dae.setMeta(ID(), *meta);
349 	meta->setName( "mass_frame" );
350 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domMass_frame::create);
351 
352 	meta->setIsInnerClass( true );
353 	daeMetaCMPolicy *cm = NULL;
354 	daeMetaElementAttribute *mea = NULL;
355 	cm = new daeMetaChoice( meta, cm, 0, 0, 1, -1 );
356 
357 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
358 	mea->setName( "translate" );
359 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,elemTranslate_array) );
360 	mea->setElementType( domTranslate::registerElement(dae) );
361 	cm->appendChild( mea );
362 
363 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
364 	mea->setName( "rotate" );
365 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,elemRotate_array) );
366 	mea->setElementType( domRotate::registerElement(dae) );
367 	cm->appendChild( mea );
368 
369 	cm->setMaxOrdinal( 3000 );
370 	meta->setCMRoot( cm );
371 	// Ordered list of sub-elements
372 	meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_contents));
373 	meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_contentsOrder));
374 
375 	meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domMass_frame,_CMData), 1);
376 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domMass_frame));
377 	meta->validate();
378 
379 	return meta;
380 }
381 
382 daeElementRef
create(DAE & dae)383 domInstance_rigid_body::domTechnique_common::domShape::create(DAE& dae)
384 {
385 	domInstance_rigid_body::domTechnique_common::domShapeRef ref = new domInstance_rigid_body::domTechnique_common::domShape(dae);
386 	return ref;
387 }
388 
389 
390 daeMetaElement *
registerElement(DAE & dae)391 domInstance_rigid_body::domTechnique_common::domShape::registerElement(DAE& dae)
392 {
393 	daeMetaElement* meta = dae.getMeta(ID());
394 	if ( meta != NULL ) return meta;
395 
396 	meta = new daeMetaElement(dae);
397 	dae.setMeta(ID(), *meta);
398 	meta->setName( "shape" );
399 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domShape::create);
400 
401 	meta->setIsInnerClass( true );
402 	daeMetaCMPolicy *cm = NULL;
403 	daeMetaElementAttribute *mea = NULL;
404 	cm = new daeMetaSequence( meta, cm, 0, 1, 1 );
405 
406 	mea = new daeMetaElementAttribute( meta, cm, 0, 0, 1 );
407 	mea->setName( "hollow" );
408 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemHollow) );
409 	mea->setElementType( domInstance_rigid_body::domTechnique_common::domShape::domHollow::registerElement(dae) );
410 	cm->appendChild( mea );
411 
412 	mea = new daeMetaElementAttribute( meta, cm, 1, 0, 1 );
413 	mea->setName( "mass" );
414 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemMass) );
415 	mea->setElementType( domTargetableFloat::registerElement(dae) );
416 	cm->appendChild( mea );
417 
418 	mea = new daeMetaElementAttribute( meta, cm, 2, 0, 1 );
419 	mea->setName( "density" );
420 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemDensity) );
421 	mea->setElementType( domTargetableFloat::registerElement(dae) );
422 	cm->appendChild( mea );
423 
424 	cm = new daeMetaChoice( meta, cm, 0, 3, 0, 1 );
425 
426 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
427 	mea->setName( "instance_physics_material" );
428 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemInstance_physics_material) );
429 	mea->setElementType( domInstance_physics_material::registerElement(dae) );
430 	cm->appendChild( mea );
431 
432 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
433 	mea->setName( "physics_material" );
434 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemPhysics_material) );
435 	mea->setElementType( domPhysics_material::registerElement(dae) );
436 	cm->appendChild( mea );
437 
438 	cm->setMaxOrdinal( 0 );
439 	cm->getParent()->appendChild( cm );
440 	cm = cm->getParent();
441 
442 	cm = new daeMetaChoice( meta, cm, 1, 4, 1, 1 );
443 
444 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
445 	mea->setName( "instance_geometry" );
446 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemInstance_geometry) );
447 	mea->setElementType( domInstance_geometry::registerElement(dae) );
448 	cm->appendChild( mea );
449 
450 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
451 	mea->setName( "plane" );
452 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemPlane) );
453 	mea->setElementType( domPlane::registerElement(dae) );
454 	cm->appendChild( mea );
455 
456 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
457 	mea->setName( "box" );
458 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemBox) );
459 	mea->setElementType( domBox::registerElement(dae) );
460 	cm->appendChild( mea );
461 
462 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
463 	mea->setName( "sphere" );
464 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemSphere) );
465 	mea->setElementType( domSphere::registerElement(dae) );
466 	cm->appendChild( mea );
467 
468 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
469 	mea->setName( "cylinder" );
470 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemCylinder) );
471 	mea->setElementType( domCylinder::registerElement(dae) );
472 	cm->appendChild( mea );
473 
474 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
475 	mea->setName( "tapered_cylinder" );
476 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTapered_cylinder) );
477 	mea->setElementType( domTapered_cylinder::registerElement(dae) );
478 	cm->appendChild( mea );
479 
480 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
481 	mea->setName( "capsule" );
482 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemCapsule) );
483 	mea->setElementType( domCapsule::registerElement(dae) );
484 	cm->appendChild( mea );
485 
486 	mea = new daeMetaElementAttribute( meta, cm, 0, 1, 1 );
487 	mea->setName( "tapered_capsule" );
488 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTapered_capsule) );
489 	mea->setElementType( domTapered_capsule::registerElement(dae) );
490 	cm->appendChild( mea );
491 
492 	cm->setMaxOrdinal( 0 );
493 	cm->getParent()->appendChild( cm );
494 	cm = cm->getParent();
495 
496 	cm = new daeMetaChoice( meta, cm, 2, 5, 0, -1 );
497 
498 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
499 	mea->setName( "translate" );
500 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemTranslate_array) );
501 	mea->setElementType( domTranslate::registerElement(dae) );
502 	cm->appendChild( mea );
503 
504 	mea = new daeMetaElementArrayAttribute( meta, cm, 0, 1, 1 );
505 	mea->setName( "rotate" );
506 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemRotate_array) );
507 	mea->setElementType( domRotate::registerElement(dae) );
508 	cm->appendChild( mea );
509 
510 	cm->setMaxOrdinal( 0 );
511 	cm->getParent()->appendChild( cm );
512 	cm = cm->getParent();
513 
514 	mea = new daeMetaElementArrayAttribute( meta, cm, 3006, 0, -1 );
515 	mea->setName( "extra" );
516 	mea->setOffset( daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,elemExtra_array) );
517 	mea->setElementType( domExtra::registerElement(dae) );
518 	cm->appendChild( mea );
519 
520 	cm->setMaxOrdinal( 3006 );
521 	meta->setCMRoot( cm );
522 	// Ordered list of sub-elements
523 	meta->addContents(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_contents));
524 	meta->addContentsOrder(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_contentsOrder));
525 
526 	meta->addCMDataArray(daeOffsetOf(domInstance_rigid_body::domTechnique_common::domShape,_CMData), 3);
527 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domShape));
528 	meta->validate();
529 
530 	return meta;
531 }
532 
533 daeElementRef
create(DAE & dae)534 domInstance_rigid_body::domTechnique_common::domShape::domHollow::create(DAE& dae)
535 {
536 	domInstance_rigid_body::domTechnique_common::domShape::domHollowRef ref = new domInstance_rigid_body::domTechnique_common::domShape::domHollow(dae);
537 	return ref;
538 }
539 
540 
541 daeMetaElement *
registerElement(DAE & dae)542 domInstance_rigid_body::domTechnique_common::domShape::domHollow::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( "hollow" );
550 	meta->registerClass(domInstance_rigid_body::domTechnique_common::domShape::domHollow::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("Bool"));
558 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domShape::domHollow , _value ));
559 		ma->setContainer( meta );
560 		meta->appendAttribute(ma);
561 	}
562 
563 	//	Add attribute: sid
564 	{
565 		daeMetaAttribute *ma = new daeMetaAttribute;
566 		ma->setName( "sid" );
567 		ma->setType( dae.getAtomicTypes().get("xsNCName"));
568 		ma->setOffset( daeOffsetOf( domInstance_rigid_body::domTechnique_common::domShape::domHollow , attrSid ));
569 		ma->setContainer( meta );
570 
571 		meta->appendAttribute(ma);
572 	}
573 
574 	meta->setElementSize(sizeof(domInstance_rigid_body::domTechnique_common::domShape::domHollow));
575 	meta->validate();
576 
577 	return meta;
578 }
579 
580 } // ColladaDOM141
581