• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef __domInstance_rigid_body_h__
10 #define __domInstance_rigid_body_h__
11 
12 #include <dae/daeDocument.h>
13 #include <dom/domTypes.h>
14 #include <dom/domElements.h>
15 
16 #include <dom/domTechnique.h>
17 #include <dom/domExtra.h>
18 #include <dom/domInstance_physics_material.h>
19 #include <dom/domPhysics_material.h>
20 #include <dom/domTargetableFloat.h>
21 #include <dom/domTranslate.h>
22 #include <dom/domRotate.h>
23 #include <dom/domTargetableFloat3.h>
24 #include <dom/domInstance_geometry.h>
25 #include <dom/domPlane.h>
26 #include <dom/domBox.h>
27 #include <dom/domSphere.h>
28 #include <dom/domCylinder.h>
29 #include <dom/domTapered_cylinder.h>
30 #include <dom/domCapsule.h>
31 #include <dom/domTapered_capsule.h>
32 class DAE;
33 
34 /**
35  * This element allows instancing a rigid_body within an instance_physics_model.
36  */
37 class domInstance_rigid_body : public daeElement
38 {
39 public:
getElementType()40 	virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_RIGID_BODY; }
ID()41 	static daeInt ID() { return 703; }
typeID()42 	virtual daeInt typeID() const { return ID(); }
43 public:
44 	class domTechnique_common;
45 
46 	typedef daeSmartRef<domTechnique_common> domTechnique_commonRef;
47 	typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array;
48 
49 /**
50  * The technique_common element specifies the instance_rigid_body information
51  * for the common  profile which all COLLADA implementations need to support.
52  */
53 	class domTechnique_common : public daeElement
54 	{
55 	public:
getElementType()56 		virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; }
ID()57 		static daeInt ID() { return 704; }
typeID()58 		virtual daeInt typeID() const { return ID(); }
59 	public:
60 		class domAngular_velocity;
61 
62 		typedef daeSmartRef<domAngular_velocity> domAngular_velocityRef;
63 		typedef daeTArray<domAngular_velocityRef> domAngular_velocity_Array;
64 
65 /**
66  * Specifies the initial angular velocity of the rigid_body instance in degrees
67  * per second  around each axis, in the form of an X-Y-Z Euler rotation.
68  */
69 		class domAngular_velocity : public daeElement
70 		{
71 		public:
getElementType()72 			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANGULAR_VELOCITY; }
ID()73 			static daeInt ID() { return 705; }
typeID()74 			virtual daeInt typeID() const { return ID(); }
75 
76 		protected:  // Value
77 			/**
78 			 * The domFloat3 value of the text data of this element.
79 			 */
80 			domFloat3 _value;
81 
82 		public:	//Accessors and Mutators
83 			/**
84 			 * Gets the _value array.
85 			 * @return Returns a domFloat3 reference of the _value array.
86 			 */
getValue()87 			domFloat3 &getValue() { return _value; }
88 			/**
89 			 * Gets the _value array.
90 			 * @return Returns a constant domFloat3 reference of the _value array.
91 			 */
getValue()92 			const domFloat3 &getValue() const { return _value; }
93 			/**
94 			 * Sets the _value array.
95 			 * @param val The new value for the _value array.
96 			 */
setValue(const domFloat3 & val)97 			void setValue( const domFloat3 &val ) { _value = val; }
98 
99 		protected:
100 			/**
101 			 * Constructor
102 			 */
domAngular_velocity(DAE & dae)103 			domAngular_velocity(DAE& dae) : daeElement(dae), _value() {}
104 			/**
105 			 * Destructor
106 			 */
~domAngular_velocity()107 			virtual ~domAngular_velocity() {}
108 			/**
109 			 * Overloaded assignment operator
110 			 */
111 			virtual domAngular_velocity &operator=( const domAngular_velocity &cpy ) { (void)cpy; return *this; }
112 
113 		public: // STATIC METHODS
114 			/**
115 			 * Creates an instance of this class and returns a daeElementRef referencing it.
116 			 * @return a daeElementRef referencing an instance of this object.
117 			 */
118 			static DLLSPEC daeElementRef create(DAE& dae);
119 			/**
120 			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
121 			 * If a daeMetaElement already exists it will return that instead of creating a new one.
122 			 * @return A daeMetaElement describing this COLLADA element.
123 			 */
124 			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
125 		};
126 
127 		class domVelocity;
128 
129 		typedef daeSmartRef<domVelocity> domVelocityRef;
130 		typedef daeTArray<domVelocityRef> domVelocity_Array;
131 
132 /**
133  * Specifies the initial linear velocity of the rigid_body instance.
134  */
135 		class domVelocity : public daeElement
136 		{
137 		public:
getElementType()138 			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VELOCITY; }
ID()139 			static daeInt ID() { return 706; }
typeID()140 			virtual daeInt typeID() const { return ID(); }
141 
142 		protected:  // Value
143 			/**
144 			 * The domFloat3 value of the text data of this element.
145 			 */
146 			domFloat3 _value;
147 
148 		public:	//Accessors and Mutators
149 			/**
150 			 * Gets the _value array.
151 			 * @return Returns a domFloat3 reference of the _value array.
152 			 */
getValue()153 			domFloat3 &getValue() { return _value; }
154 			/**
155 			 * Gets the _value array.
156 			 * @return Returns a constant domFloat3 reference of the _value array.
157 			 */
getValue()158 			const domFloat3 &getValue() const { return _value; }
159 			/**
160 			 * Sets the _value array.
161 			 * @param val The new value for the _value array.
162 			 */
setValue(const domFloat3 & val)163 			void setValue( const domFloat3 &val ) { _value = val; }
164 
165 		protected:
166 			/**
167 			 * Constructor
168 			 */
domVelocity(DAE & dae)169 			domVelocity(DAE& dae) : daeElement(dae), _value() {}
170 			/**
171 			 * Destructor
172 			 */
~domVelocity()173 			virtual ~domVelocity() {}
174 			/**
175 			 * Overloaded assignment operator
176 			 */
177 			virtual domVelocity &operator=( const domVelocity &cpy ) { (void)cpy; return *this; }
178 
179 		public: // STATIC METHODS
180 			/**
181 			 * Creates an instance of this class and returns a daeElementRef referencing it.
182 			 * @return a daeElementRef referencing an instance of this object.
183 			 */
184 			static DLLSPEC daeElementRef create(DAE& dae);
185 			/**
186 			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
187 			 * If a daeMetaElement already exists it will return that instead of creating a new one.
188 			 * @return A daeMetaElement describing this COLLADA element.
189 			 */
190 			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
191 		};
192 
193 		class domDynamic;
194 
195 		typedef daeSmartRef<domDynamic> domDynamicRef;
196 		typedef daeTArray<domDynamicRef> domDynamic_Array;
197 
198 		class domDynamic : public daeElement
199 		{
200 		public:
getElementType()201 			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DYNAMIC; }
ID()202 			static daeInt ID() { return 707; }
typeID()203 			virtual daeInt typeID() const { return ID(); }
204 		protected:  // Attribute
205 /**
206  *  The sid attribute is a text string value containing the sub-identifier
207  * of this element.  This value must be unique within the scope of the parent
208  * element. Optional attribute.
209  */
210 			xsNCName attrSid;
211 
212 		protected:  // Value
213 			/**
214 			 * The domBool value of the text data of this element.
215 			 */
216 			domBool _value;
217 
218 		public:	//Accessors and Mutators
219 			/**
220 			 * Gets the sid attribute.
221 			 * @return Returns a xsNCName of the sid attribute.
222 			 */
getSid()223 			xsNCName getSid() const { return attrSid; }
224 			/**
225 			 * Sets the sid attribute.
226 			 * @param atSid The new value for the sid attribute.
227 			 */
setSid(xsNCName atSid)228 			void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
229 
230 			/**
231 			 * Gets the value of this element.
232 			 * @return a domBool of the value.
233 			 */
getValue()234 			domBool getValue() const { return _value; }
235 			/**
236 			 * Sets the _value of this element.
237 			 * @param val The new value for this element.
238 			 */
setValue(domBool val)239 			void setValue( domBool val ) { _value = val; }
240 
241 		protected:
242 			/**
243 			 * Constructor
244 			 */
domDynamic(DAE & dae)245 			domDynamic(DAE& dae) : daeElement(dae), attrSid(), _value() {}
246 			/**
247 			 * Destructor
248 			 */
~domDynamic()249 			virtual ~domDynamic() {}
250 			/**
251 			 * Overloaded assignment operator
252 			 */
253 			virtual domDynamic &operator=( const domDynamic &cpy ) { (void)cpy; return *this; }
254 
255 		public: // STATIC METHODS
256 			/**
257 			 * Creates an instance of this class and returns a daeElementRef referencing it.
258 			 * @return a daeElementRef referencing an instance of this object.
259 			 */
260 			static DLLSPEC daeElementRef create(DAE& dae);
261 			/**
262 			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
263 			 * If a daeMetaElement already exists it will return that instead of creating a new one.
264 			 * @return A daeMetaElement describing this COLLADA element.
265 			 */
266 			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
267 		};
268 
269 		class domMass_frame;
270 
271 		typedef daeSmartRef<domMass_frame> domMass_frameRef;
272 		typedef daeTArray<domMass_frameRef> domMass_frame_Array;
273 
274 		class domMass_frame : public daeElement
275 		{
276 		public:
getElementType()277 			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::MASS_FRAME; }
ID()278 			static daeInt ID() { return 708; }
typeID()279 			virtual daeInt typeID() const { return ID(); }
280 
281 		protected:  // Elements
282 			domTranslate_Array elemTranslate_array;
283 			domRotate_Array elemRotate_array;
284 			/**
285 			 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
286 			 */
287 			daeElementRefArray _contents;
288 			/**
289 			 * Used to preserve order in elements that have a complex content model.
290 			 */
291 			daeUIntArray       _contentsOrder;
292 
293 			/**
294 			 * Used to store information needed for some content model objects.
295 			 */
296 			daeTArray< daeCharArray * > _CMData;
297 
298 
299 		public:	//Accessors and Mutators
300 			/**
301 			 * Gets the translate element array.
302 			 * @return Returns a reference to the array of translate elements.
303 			 */
getTranslate_array()304 			domTranslate_Array &getTranslate_array() { return elemTranslate_array; }
305 			/**
306 			 * Gets the translate element array.
307 			 * @return Returns a constant reference to the array of translate elements.
308 			 */
getTranslate_array()309 			const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; }
310 			/**
311 			 * Gets the rotate element array.
312 			 * @return Returns a reference to the array of rotate elements.
313 			 */
getRotate_array()314 			domRotate_Array &getRotate_array() { return elemRotate_array; }
315 			/**
316 			 * Gets the rotate element array.
317 			 * @return Returns a constant reference to the array of rotate elements.
318 			 */
getRotate_array()319 			const domRotate_Array &getRotate_array() const { return elemRotate_array; }
320 			/**
321 			 * Gets the _contents array.
322 			 * @return Returns a reference to the _contents element array.
323 			 */
getContents()324 			daeElementRefArray &getContents() { return _contents; }
325 			/**
326 			 * Gets the _contents array.
327 			 * @return Returns a constant reference to the _contents element array.
328 			 */
getContents()329 			const daeElementRefArray &getContents() const { return _contents; }
330 
331 		protected:
332 			/**
333 			 * Constructor
334 			 */
domMass_frame(DAE & dae)335 			domMass_frame(DAE& dae) : daeElement(dae), elemTranslate_array(), elemRotate_array() {}
336 			/**
337 			 * Destructor
338 			 */
~domMass_frame()339 			virtual ~domMass_frame() { daeElement::deleteCMDataArray(_CMData); }
340 			/**
341 			 * Overloaded assignment operator
342 			 */
343 			virtual domMass_frame &operator=( const domMass_frame &cpy ) { (void)cpy; return *this; }
344 
345 		public: // STATIC METHODS
346 			/**
347 			 * Creates an instance of this class and returns a daeElementRef referencing it.
348 			 * @return a daeElementRef referencing an instance of this object.
349 			 */
350 			static DLLSPEC daeElementRef create(DAE& dae);
351 			/**
352 			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
353 			 * If a daeMetaElement already exists it will return that instead of creating a new one.
354 			 * @return A daeMetaElement describing this COLLADA element.
355 			 */
356 			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
357 		};
358 
359 		class domShape;
360 
361 		typedef daeSmartRef<domShape> domShapeRef;
362 		typedef daeTArray<domShapeRef> domShape_Array;
363 
364 		class domShape : public daeElement
365 		{
366 		public:
getElementType()367 			virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHAPE; }
ID()368 			static daeInt ID() { return 709; }
typeID()369 			virtual daeInt typeID() const { return ID(); }
370 		public:
371 			class domHollow;
372 
373 			typedef daeSmartRef<domHollow> domHollowRef;
374 			typedef daeTArray<domHollowRef> domHollow_Array;
375 
376 			class domHollow : public daeElement
377 			{
378 			public:
getElementType()379 				virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::HOLLOW; }
ID()380 				static daeInt ID() { return 710; }
typeID()381 				virtual daeInt typeID() const { return ID(); }
382 			protected:  // Attribute
383 /**
384  *  The sid attribute is a text string value containing the sub-identifier
385  * of this element. This value must be unique within the scope of the parent
386  * element. Optional attribute.
387  */
388 				xsNCName attrSid;
389 
390 			protected:  // Value
391 				/**
392 				 * The domBool value of the text data of this element.
393 				 */
394 				domBool _value;
395 
396 			public:	//Accessors and Mutators
397 				/**
398 				 * Gets the sid attribute.
399 				 * @return Returns a xsNCName of the sid attribute.
400 				 */
getSid()401 				xsNCName getSid() const { return attrSid; }
402 				/**
403 				 * Sets the sid attribute.
404 				 * @param atSid The new value for the sid attribute.
405 				 */
setSid(xsNCName atSid)406 				void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
407 
408 				/**
409 				 * Gets the value of this element.
410 				 * @return a domBool of the value.
411 				 */
getValue()412 				domBool getValue() const { return _value; }
413 				/**
414 				 * Sets the _value of this element.
415 				 * @param val The new value for this element.
416 				 */
setValue(domBool val)417 				void setValue( domBool val ) { _value = val; }
418 
419 			protected:
420 				/**
421 				 * Constructor
422 				 */
domHollow(DAE & dae)423 				domHollow(DAE& dae) : daeElement(dae), attrSid(), _value() {}
424 				/**
425 				 * Destructor
426 				 */
~domHollow()427 				virtual ~domHollow() {}
428 				/**
429 				 * Overloaded assignment operator
430 				 */
431 				virtual domHollow &operator=( const domHollow &cpy ) { (void)cpy; return *this; }
432 
433 			public: // STATIC METHODS
434 				/**
435 				 * Creates an instance of this class and returns a daeElementRef referencing it.
436 				 * @return a daeElementRef referencing an instance of this object.
437 				 */
438 				static DLLSPEC daeElementRef create(DAE& dae);
439 				/**
440 				 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
441 				 * If a daeMetaElement already exists it will return that instead of creating a new one.
442 				 * @return A daeMetaElement describing this COLLADA element.
443 				 */
444 				static DLLSPEC daeMetaElement* registerElement(DAE& dae);
445 			};
446 
447 
448 
449 		protected:  // Elements
450 			domHollowRef elemHollow;
451 			domTargetableFloatRef elemMass;
452 			domTargetableFloatRef elemDensity;
453 			domInstance_physics_materialRef elemInstance_physics_material;
454 			domPhysics_materialRef elemPhysics_material;
455 			domInstance_geometryRef elemInstance_geometry;
456 			domPlaneRef elemPlane;
457 			domBoxRef elemBox;
458 			domSphereRef elemSphere;
459 			domCylinderRef elemCylinder;
460 			domTapered_cylinderRef elemTapered_cylinder;
461 			domCapsuleRef elemCapsule;
462 			domTapered_capsuleRef elemTapered_capsule;
463 			domTranslate_Array elemTranslate_array;
464 			domRotate_Array elemRotate_array;
465 /**
466  *  The extra element may appear any number of times.  @see domExtra
467  */
468 			domExtra_Array elemExtra_array;
469 			/**
470 			 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
471 			 */
472 			daeElementRefArray _contents;
473 			/**
474 			 * Used to preserve order in elements that have a complex content model.
475 			 */
476 			daeUIntArray       _contentsOrder;
477 
478 			/**
479 			 * Used to store information needed for some content model objects.
480 			 */
481 			daeTArray< daeCharArray * > _CMData;
482 
483 
484 		public:	//Accessors and Mutators
485 			/**
486 			 * Gets the hollow element.
487 			 * @return a daeSmartRef to the hollow element.
488 			 */
getHollow()489 			const domHollowRef getHollow() const { return elemHollow; }
490 			/**
491 			 * Gets the mass element.
492 			 * @return a daeSmartRef to the mass element.
493 			 */
getMass()494 			const domTargetableFloatRef getMass() const { return elemMass; }
495 			/**
496 			 * Gets the density element.
497 			 * @return a daeSmartRef to the density element.
498 			 */
getDensity()499 			const domTargetableFloatRef getDensity() const { return elemDensity; }
500 			/**
501 			 * Gets the instance_physics_material element.
502 			 * @return a daeSmartRef to the instance_physics_material element.
503 			 */
getInstance_physics_material()504 			const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; }
505 			/**
506 			 * Gets the physics_material element.
507 			 * @return a daeSmartRef to the physics_material element.
508 			 */
getPhysics_material()509 			const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; }
510 			/**
511 			 * Gets the instance_geometry element.
512 			 * @return a daeSmartRef to the instance_geometry element.
513 			 */
getInstance_geometry()514 			const domInstance_geometryRef getInstance_geometry() const { return elemInstance_geometry; }
515 			/**
516 			 * Gets the plane element.
517 			 * @return a daeSmartRef to the plane element.
518 			 */
getPlane()519 			const domPlaneRef getPlane() const { return elemPlane; }
520 			/**
521 			 * Gets the box element.
522 			 * @return a daeSmartRef to the box element.
523 			 */
getBox()524 			const domBoxRef getBox() const { return elemBox; }
525 			/**
526 			 * Gets the sphere element.
527 			 * @return a daeSmartRef to the sphere element.
528 			 */
getSphere()529 			const domSphereRef getSphere() const { return elemSphere; }
530 			/**
531 			 * Gets the cylinder element.
532 			 * @return a daeSmartRef to the cylinder element.
533 			 */
getCylinder()534 			const domCylinderRef getCylinder() const { return elemCylinder; }
535 			/**
536 			 * Gets the tapered_cylinder element.
537 			 * @return a daeSmartRef to the tapered_cylinder element.
538 			 */
getTapered_cylinder()539 			const domTapered_cylinderRef getTapered_cylinder() const { return elemTapered_cylinder; }
540 			/**
541 			 * Gets the capsule element.
542 			 * @return a daeSmartRef to the capsule element.
543 			 */
getCapsule()544 			const domCapsuleRef getCapsule() const { return elemCapsule; }
545 			/**
546 			 * Gets the tapered_capsule element.
547 			 * @return a daeSmartRef to the tapered_capsule element.
548 			 */
getTapered_capsule()549 			const domTapered_capsuleRef getTapered_capsule() const { return elemTapered_capsule; }
550 			/**
551 			 * Gets the translate element array.
552 			 * @return Returns a reference to the array of translate elements.
553 			 */
getTranslate_array()554 			domTranslate_Array &getTranslate_array() { return elemTranslate_array; }
555 			/**
556 			 * Gets the translate element array.
557 			 * @return Returns a constant reference to the array of translate elements.
558 			 */
getTranslate_array()559 			const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; }
560 			/**
561 			 * Gets the rotate element array.
562 			 * @return Returns a reference to the array of rotate elements.
563 			 */
getRotate_array()564 			domRotate_Array &getRotate_array() { return elemRotate_array; }
565 			/**
566 			 * Gets the rotate element array.
567 			 * @return Returns a constant reference to the array of rotate elements.
568 			 */
getRotate_array()569 			const domRotate_Array &getRotate_array() const { return elemRotate_array; }
570 			/**
571 			 * Gets the extra element array.
572 			 * @return Returns a reference to the array of extra elements.
573 			 */
getExtra_array()574 			domExtra_Array &getExtra_array() { return elemExtra_array; }
575 			/**
576 			 * Gets the extra element array.
577 			 * @return Returns a constant reference to the array of extra elements.
578 			 */
getExtra_array()579 			const domExtra_Array &getExtra_array() const { return elemExtra_array; }
580 			/**
581 			 * Gets the _contents array.
582 			 * @return Returns a reference to the _contents element array.
583 			 */
getContents()584 			daeElementRefArray &getContents() { return _contents; }
585 			/**
586 			 * Gets the _contents array.
587 			 * @return Returns a constant reference to the _contents element array.
588 			 */
getContents()589 			const daeElementRefArray &getContents() const { return _contents; }
590 
591 		protected:
592 			/**
593 			 * Constructor
594 			 */
domShape(DAE & dae)595 			domShape(DAE& dae) : daeElement(dae), elemHollow(), elemMass(), elemDensity(), elemInstance_physics_material(), elemPhysics_material(), elemInstance_geometry(), elemPlane(), elemBox(), elemSphere(), elemCylinder(), elemTapered_cylinder(), elemCapsule(), elemTapered_capsule(), elemTranslate_array(), elemRotate_array(), elemExtra_array() {}
596 			/**
597 			 * Destructor
598 			 */
~domShape()599 			virtual ~domShape() { daeElement::deleteCMDataArray(_CMData); }
600 			/**
601 			 * Overloaded assignment operator
602 			 */
603 			virtual domShape &operator=( const domShape &cpy ) { (void)cpy; return *this; }
604 
605 		public: // STATIC METHODS
606 			/**
607 			 * Creates an instance of this class and returns a daeElementRef referencing it.
608 			 * @return a daeElementRef referencing an instance of this object.
609 			 */
610 			static DLLSPEC daeElementRef create(DAE& dae);
611 			/**
612 			 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
613 			 * If a daeMetaElement already exists it will return that instead of creating a new one.
614 			 * @return A daeMetaElement describing this COLLADA element.
615 			 */
616 			static DLLSPEC daeMetaElement* registerElement(DAE& dae);
617 		};
618 
619 
620 
621 	protected:  // Elements
622 /**
623  * Specifies the initial angular velocity of the rigid_body instance in degrees
624  * per second  around each axis, in the form of an X-Y-Z Euler rotation. @see
625  * domAngular_velocity
626  */
627 		domAngular_velocityRef elemAngular_velocity;
628 /**
629  * Specifies the initial linear velocity of the rigid_body instance. @see
630  * domVelocity
631  */
632 		domVelocityRef elemVelocity;
633 		domDynamicRef elemDynamic;
634 		domTargetableFloatRef elemMass;
635 		domMass_frameRef elemMass_frame;
636 		domTargetableFloat3Ref elemInertia;
637 		domInstance_physics_materialRef elemInstance_physics_material;
638 		domPhysics_materialRef elemPhysics_material;
639 		domShape_Array elemShape_array;
640 		/**
641 		 * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
642 		 */
643 		daeElementRefArray _contents;
644 		/**
645 		 * Used to preserve order in elements that have a complex content model.
646 		 */
647 		daeUIntArray       _contentsOrder;
648 
649 		/**
650 		 * Used to store information needed for some content model objects.
651 		 */
652 		daeTArray< daeCharArray * > _CMData;
653 
654 
655 	public:	//Accessors and Mutators
656 		/**
657 		 * Gets the angular_velocity element.
658 		 * @return a daeSmartRef to the angular_velocity element.
659 		 */
getAngular_velocity()660 		const domAngular_velocityRef getAngular_velocity() const { return elemAngular_velocity; }
661 		/**
662 		 * Gets the velocity element.
663 		 * @return a daeSmartRef to the velocity element.
664 		 */
getVelocity()665 		const domVelocityRef getVelocity() const { return elemVelocity; }
666 		/**
667 		 * Gets the dynamic element.
668 		 * @return a daeSmartRef to the dynamic element.
669 		 */
getDynamic()670 		const domDynamicRef getDynamic() const { return elemDynamic; }
671 		/**
672 		 * Gets the mass element.
673 		 * @return a daeSmartRef to the mass element.
674 		 */
getMass()675 		const domTargetableFloatRef getMass() const { return elemMass; }
676 		/**
677 		 * Gets the mass_frame element.
678 		 * @return a daeSmartRef to the mass_frame element.
679 		 */
getMass_frame()680 		const domMass_frameRef getMass_frame() const { return elemMass_frame; }
681 		/**
682 		 * Gets the inertia element.
683 		 * @return a daeSmartRef to the inertia element.
684 		 */
getInertia()685 		const domTargetableFloat3Ref getInertia() const { return elemInertia; }
686 		/**
687 		 * Gets the instance_physics_material element.
688 		 * @return a daeSmartRef to the instance_physics_material element.
689 		 */
getInstance_physics_material()690 		const domInstance_physics_materialRef getInstance_physics_material() const { return elemInstance_physics_material; }
691 		/**
692 		 * Gets the physics_material element.
693 		 * @return a daeSmartRef to the physics_material element.
694 		 */
getPhysics_material()695 		const domPhysics_materialRef getPhysics_material() const { return elemPhysics_material; }
696 		/**
697 		 * Gets the shape element array.
698 		 * @return Returns a reference to the array of shape elements.
699 		 */
getShape_array()700 		domShape_Array &getShape_array() { return elemShape_array; }
701 		/**
702 		 * Gets the shape element array.
703 		 * @return Returns a constant reference to the array of shape elements.
704 		 */
getShape_array()705 		const domShape_Array &getShape_array() const { return elemShape_array; }
706 		/**
707 		 * Gets the _contents array.
708 		 * @return Returns a reference to the _contents element array.
709 		 */
getContents()710 		daeElementRefArray &getContents() { return _contents; }
711 		/**
712 		 * Gets the _contents array.
713 		 * @return Returns a constant reference to the _contents element array.
714 		 */
getContents()715 		const daeElementRefArray &getContents() const { return _contents; }
716 
717 	protected:
718 		/**
719 		 * Constructor
720 		 */
domTechnique_common(DAE & dae)721 		domTechnique_common(DAE& dae) : daeElement(dae), elemAngular_velocity(), elemVelocity(), elemDynamic(), elemMass(), elemMass_frame(), elemInertia(), elemInstance_physics_material(), elemPhysics_material(), elemShape_array() {}
722 		/**
723 		 * Destructor
724 		 */
~domTechnique_common()725 		virtual ~domTechnique_common() { daeElement::deleteCMDataArray(_CMData); }
726 		/**
727 		 * Overloaded assignment operator
728 		 */
729 		virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; }
730 
731 	public: // STATIC METHODS
732 		/**
733 		 * Creates an instance of this class and returns a daeElementRef referencing it.
734 		 * @return a daeElementRef referencing an instance of this object.
735 		 */
736 		static DLLSPEC daeElementRef create(DAE& dae);
737 		/**
738 		 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
739 		 * If a daeMetaElement already exists it will return that instead of creating a new one.
740 		 * @return A daeMetaElement describing this COLLADA element.
741 		 */
742 		static DLLSPEC daeMetaElement* registerElement(DAE& dae);
743 	};
744 
745 
746 protected:  // Attributes
747 /**
748  *  The body attribute indicates which rigid_body to instantiate. Required
749  * attribute.
750  */
751 	xsNCName attrBody;
752 /**
753  *  The sid attribute is a text string value containing the sub-identifier
754  * of this element. This  value must be unique within the scope of the parent
755  * element. Optional attribute.
756  */
757 	xsNCName attrSid;
758 /**
759  *  The name attribute is the text string name of this element. Optional attribute.
760  */
761 	xsNCName attrName;
762 /**
763  *  The target attribute indicates which node is influenced by this rigid_body
764  * instance.  Required attribute
765  */
766 	xsAnyURI attrTarget;
767 
768 protected:  // Elements
769 /**
770  * The technique_common element specifies the instance_rigid_body information
771  * for the common  profile which all COLLADA implementations need to support.
772  * @see domTechnique_common
773  */
774 	domTechnique_commonRef elemTechnique_common;
775 /**
776  *  This element may contain any number of non-common profile techniques.
777  * @see domTechnique
778  */
779 	domTechnique_Array elemTechnique_array;
780 /**
781  *  The extra element may appear any number of times.  @see domExtra
782  */
783 	domExtra_Array elemExtra_array;
784 
785 public:	//Accessors and Mutators
786 	/**
787 	 * Gets the body attribute.
788 	 * @return Returns a xsNCName of the body attribute.
789 	 */
getBody()790 	xsNCName getBody() const { return attrBody; }
791 	/**
792 	 * Sets the body attribute.
793 	 * @param atBody The new value for the body attribute.
794 	 */
setBody(xsNCName atBody)795 	void setBody( xsNCName atBody ) { *(daeStringRef*)&attrBody = atBody; _validAttributeArray[0] = true; }
796 
797 	/**
798 	 * Gets the sid attribute.
799 	 * @return Returns a xsNCName of the sid attribute.
800 	 */
getSid()801 	xsNCName getSid() const { return attrSid; }
802 	/**
803 	 * Sets the sid attribute.
804 	 * @param atSid The new value for the sid attribute.
805 	 */
setSid(xsNCName atSid)806 	void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; }
807 
808 	/**
809 	 * Gets the name attribute.
810 	 * @return Returns a xsNCName of the name attribute.
811 	 */
getName()812 	xsNCName getName() const { return attrName; }
813 	/**
814 	 * Sets the name attribute.
815 	 * @param atName The new value for the name attribute.
816 	 */
setName(xsNCName atName)817 	void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; }
818 
819 	/**
820 	 * Gets the target attribute.
821 	 * @return Returns a xsAnyURI reference of the target attribute.
822 	 */
getTarget()823 	xsAnyURI &getTarget() { return attrTarget; }
824 	/**
825 	 * Gets the target attribute.
826 	 * @return Returns a constant xsAnyURI reference of the target attribute.
827 	 */
getTarget()828 	const xsAnyURI &getTarget() const { return attrTarget; }
829 	/**
830 	 * Sets the target attribute.
831 	 * @param atTarget The new value for the target attribute.
832 	 */
setTarget(const xsAnyURI & atTarget)833 	void setTarget( const xsAnyURI &atTarget ) { attrTarget = atTarget; _validAttributeArray[3] = true; }
834 	/**
835 	 * Sets the target attribute.
836 	 * @param atTarget The new value for the target attribute.
837 	 */
setTarget(xsString atTarget)838 	void setTarget( xsString atTarget ) { attrTarget = atTarget; _validAttributeArray[3] = true; }
839 
840 	/**
841 	 * Gets the technique_common element.
842 	 * @return a daeSmartRef to the technique_common element.
843 	 */
getTechnique_common()844 	const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; }
845 	/**
846 	 * Gets the technique element array.
847 	 * @return Returns a reference to the array of technique elements.
848 	 */
getTechnique_array()849 	domTechnique_Array &getTechnique_array() { return elemTechnique_array; }
850 	/**
851 	 * Gets the technique element array.
852 	 * @return Returns a constant reference to the array of technique elements.
853 	 */
getTechnique_array()854 	const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; }
855 	/**
856 	 * Gets the extra element array.
857 	 * @return Returns a reference to the array of extra elements.
858 	 */
getExtra_array()859 	domExtra_Array &getExtra_array() { return elemExtra_array; }
860 	/**
861 	 * Gets the extra element array.
862 	 * @return Returns a constant reference to the array of extra elements.
863 	 */
getExtra_array()864 	const domExtra_Array &getExtra_array() const { return elemExtra_array; }
865 protected:
866 	/**
867 	 * Constructor
868 	 */
domInstance_rigid_body(DAE & dae)869 	domInstance_rigid_body(DAE& dae) : daeElement(dae), attrBody(), attrSid(), attrName(), attrTarget(dae, *this), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {}
870 	/**
871 	 * Destructor
872 	 */
~domInstance_rigid_body()873 	virtual ~domInstance_rigid_body() {}
874 	/**
875 	 * Overloaded assignment operator
876 	 */
877 	virtual domInstance_rigid_body &operator=( const domInstance_rigid_body &cpy ) { (void)cpy; return *this; }
878 
879 public: // STATIC METHODS
880 	/**
881 	 * Creates an instance of this class and returns a daeElementRef referencing it.
882 	 * @return a daeElementRef referencing an instance of this object.
883 	 */
884 	static DLLSPEC daeElementRef create(DAE& dae);
885 	/**
886 	 * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
887 	 * If a daeMetaElement already exists it will return that instead of creating a new one.
888 	 * @return A daeMetaElement describing this COLLADA element.
889 	 */
890 	static DLLSPEC daeMetaElement* registerElement(DAE& dae);
891 };
892 
893 
894 #endif
895