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
19daeElementRef
20domInstance_rigid_body::create(DAE& dae)
21{
22	domInstance_rigid_bodyRef ref = new domInstance_rigid_body(dae);
23	return ref;
24}
25
26
27daeMetaElement *
28domInstance_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
115daeElementRef
116domInstance_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
123daeMetaElement *
124domInstance_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
212daeElementRef
213domInstance_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
220daeMetaElement *
221domInstance_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
248daeElementRef
249domInstance_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
256daeMetaElement *
257domInstance_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
284daeElementRef
285domInstance_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
292daeMetaElement *
293domInstance_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
331daeElementRef
332domInstance_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
339daeMetaElement *
340domInstance_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
380daeElementRef
381domInstance_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
388daeMetaElement *
389domInstance_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
531daeElementRef
532domInstance_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
539daeMetaElement *
540domInstance_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