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