123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107 |
- /*
- * Copyright 2006 Sony Computer Entertainment Inc.
- *
- * Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this
- * file except in compliance with the License. You may obtain a copy of the License at:
- * http://research.scea.com/scea_shared_source_license.html
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied. See the License for the specific language governing permissions and limitations under the
- * License.
- */
- #ifndef __domRigid_constraint_h__
- #define __domRigid_constraint_h__
- #include <dae/daeDocument.h>
- #include <dom/domTypes.h>
- #include <dom/domElements.h>
- #include <dom/domTechnique.h>
- #include <dom/domExtra.h>
- #include <dom/domTranslate.h>
- #include <dom/domRotate.h>
- #include <dom/domTargetableFloat3.h>
- #include <dom/domTargetableFloat.h>
- class DAE;
- /**
- * This element allows for connecting components, such as rigid_body into
- * complex physics models with moveable parts.
- */
- class domRigid_constraint : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::RIGID_CONSTRAINT; }
- static daeInt ID() { return 801; }
- virtual daeInt typeID() const { return ID(); }
- public:
- class domRef_attachment;
- typedef daeSmartRef<domRef_attachment> domRef_attachmentRef;
- typedef daeTArray<domRef_attachmentRef> domRef_attachment_Array;
- /**
- * Defines the attachment (to a rigid_body or a node) to be used as the reference-frame.
- */
- class domRef_attachment : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::REF_ATTACHMENT; }
- static daeInt ID() { return 802; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Attribute
- /**
- * The “rigid_body” attribute is a relative reference to a rigid-body
- * within the same physics_model.
- */
- xsAnyURI attrRigid_body;
- protected: // Elements
- /**
- * Allows you to "position" the attachment point. @see domTranslate
- */
- domTranslate_Array elemTranslate_array;
- /**
- * Allows you to "position" the attachment point. @see domRotate
- */
- domRotate_Array elemRotate_array;
- /**
- * The extra element may appear any number of times. @see domExtra
- */
- domExtra_Array elemExtra_array;
- /**
- * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
- */
- daeElementRefArray _contents;
- /**
- * Used to preserve order in elements that have a complex content model.
- */
- daeUIntArray _contentsOrder;
- /**
- * Used to store information needed for some content model objects.
- */
- daeTArray< daeCharArray * > _CMData;
- public: //Accessors and Mutators
- /**
- * Gets the rigid_body attribute.
- * @return Returns a xsAnyURI reference of the rigid_body attribute.
- */
- xsAnyURI &getRigid_body() { return attrRigid_body; }
- /**
- * Gets the rigid_body attribute.
- * @return Returns a constant xsAnyURI reference of the rigid_body attribute.
- */
- const xsAnyURI &getRigid_body() const { return attrRigid_body; }
- /**
- * Sets the rigid_body attribute.
- * @param atRigid_body The new value for the rigid_body attribute.
- */
- void setRigid_body( const xsAnyURI &atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; }
- /**
- * Sets the rigid_body attribute.
- * @param atRigid_body The new value for the rigid_body attribute.
- */
- void setRigid_body( xsString atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; }
- /**
- * Gets the translate element array.
- * @return Returns a reference to the array of translate elements.
- */
- domTranslate_Array &getTranslate_array() { return elemTranslate_array; }
- /**
- * Gets the translate element array.
- * @return Returns a constant reference to the array of translate elements.
- */
- const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; }
- /**
- * Gets the rotate element array.
- * @return Returns a reference to the array of rotate elements.
- */
- domRotate_Array &getRotate_array() { return elemRotate_array; }
- /**
- * Gets the rotate element array.
- * @return Returns a constant reference to the array of rotate elements.
- */
- const domRotate_Array &getRotate_array() const { return elemRotate_array; }
- /**
- * Gets the extra element array.
- * @return Returns a reference to the array of extra elements.
- */
- domExtra_Array &getExtra_array() { return elemExtra_array; }
- /**
- * Gets the extra element array.
- * @return Returns a constant reference to the array of extra elements.
- */
- const domExtra_Array &getExtra_array() const { return elemExtra_array; }
- /**
- * Gets the _contents array.
- * @return Returns a reference to the _contents element array.
- */
- daeElementRefArray &getContents() { return _contents; }
- /**
- * Gets the _contents array.
- * @return Returns a constant reference to the _contents element array.
- */
- const daeElementRefArray &getContents() const { return _contents; }
- protected:
- /**
- * Constructor
- */
- domRef_attachment(DAE& dae) : daeElement(dae), attrRigid_body(dae, *this), elemTranslate_array(), elemRotate_array(), elemExtra_array() {}
- /**
- * Destructor
- */
- virtual ~domRef_attachment() { daeElement::deleteCMDataArray(_CMData); }
- /**
- * Overloaded assignment operator
- */
- virtual domRef_attachment &operator=( const domRef_attachment &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domAttachment;
- typedef daeSmartRef<domAttachment> domAttachmentRef;
- typedef daeTArray<domAttachmentRef> domAttachment_Array;
- /**
- * Defines an attachment to a rigid-body or a node.
- */
- class domAttachment : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ATTACHMENT; }
- static daeInt ID() { return 803; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Attribute
- /**
- * The “rigid_body” attribute is a relative reference to a rigid-body
- * within the same physics_model.
- */
- xsAnyURI attrRigid_body;
- protected: // Elements
- /**
- * Allows you to "position" the attachment point. @see domTranslate
- */
- domTranslate_Array elemTranslate_array;
- /**
- * Allows you to "position" the attachment point. @see domRotate
- */
- domRotate_Array elemRotate_array;
- /**
- * The extra element may appear any number of times. @see domExtra
- */
- domExtra_Array elemExtra_array;
- /**
- * Used to preserve order in elements that do not specify strict sequencing of sub-elements.
- */
- daeElementRefArray _contents;
- /**
- * Used to preserve order in elements that have a complex content model.
- */
- daeUIntArray _contentsOrder;
- /**
- * Used to store information needed for some content model objects.
- */
- daeTArray< daeCharArray * > _CMData;
- public: //Accessors and Mutators
- /**
- * Gets the rigid_body attribute.
- * @return Returns a xsAnyURI reference of the rigid_body attribute.
- */
- xsAnyURI &getRigid_body() { return attrRigid_body; }
- /**
- * Gets the rigid_body attribute.
- * @return Returns a constant xsAnyURI reference of the rigid_body attribute.
- */
- const xsAnyURI &getRigid_body() const { return attrRigid_body; }
- /**
- * Sets the rigid_body attribute.
- * @param atRigid_body The new value for the rigid_body attribute.
- */
- void setRigid_body( const xsAnyURI &atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; }
- /**
- * Sets the rigid_body attribute.
- * @param atRigid_body The new value for the rigid_body attribute.
- */
- void setRigid_body( xsString atRigid_body ) { attrRigid_body = atRigid_body; _validAttributeArray[0] = true; }
- /**
- * Gets the translate element array.
- * @return Returns a reference to the array of translate elements.
- */
- domTranslate_Array &getTranslate_array() { return elemTranslate_array; }
- /**
- * Gets the translate element array.
- * @return Returns a constant reference to the array of translate elements.
- */
- const domTranslate_Array &getTranslate_array() const { return elemTranslate_array; }
- /**
- * Gets the rotate element array.
- * @return Returns a reference to the array of rotate elements.
- */
- domRotate_Array &getRotate_array() { return elemRotate_array; }
- /**
- * Gets the rotate element array.
- * @return Returns a constant reference to the array of rotate elements.
- */
- const domRotate_Array &getRotate_array() const { return elemRotate_array; }
- /**
- * Gets the extra element array.
- * @return Returns a reference to the array of extra elements.
- */
- domExtra_Array &getExtra_array() { return elemExtra_array; }
- /**
- * Gets the extra element array.
- * @return Returns a constant reference to the array of extra elements.
- */
- const domExtra_Array &getExtra_array() const { return elemExtra_array; }
- /**
- * Gets the _contents array.
- * @return Returns a reference to the _contents element array.
- */
- daeElementRefArray &getContents() { return _contents; }
- /**
- * Gets the _contents array.
- * @return Returns a constant reference to the _contents element array.
- */
- const daeElementRefArray &getContents() const { return _contents; }
- protected:
- /**
- * Constructor
- */
- domAttachment(DAE& dae) : daeElement(dae), attrRigid_body(dae, *this), elemTranslate_array(), elemRotate_array(), elemExtra_array() {}
- /**
- * Destructor
- */
- virtual ~domAttachment() { daeElement::deleteCMDataArray(_CMData); }
- /**
- * Overloaded assignment operator
- */
- virtual domAttachment &operator=( const domAttachment &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domTechnique_common;
- typedef daeSmartRef<domTechnique_common> domTechnique_commonRef;
- typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array;
- /**
- * The technique_common element specifies the rigid_constraint information
- * for the common profile which all COLLADA implementations need to support.
- */
- class domTechnique_common : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; }
- static daeInt ID() { return 804; }
- virtual daeInt typeID() const { return ID(); }
- public:
- class domEnabled;
- typedef daeSmartRef<domEnabled> domEnabledRef;
- typedef daeTArray<domEnabledRef> domEnabled_Array;
- /**
- * If false, the constraint doesn’t exert any force or influence on the
- * rigid bodies.
- */
- class domEnabled : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ENABLED; }
- static daeInt ID() { return 805; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Attribute
- /**
- * The sid attribute is a text string value containing the sub-identifier
- * of this element. This value must be unique within the scope of the parent
- * element. Optional attribute.
- */
- xsNCName attrSid;
- protected: // Value
- /**
- * The domBool value of the text data of this element.
- */
- domBool _value;
- public: //Accessors and Mutators
- /**
- * Gets the sid attribute.
- * @return Returns a xsNCName of the sid attribute.
- */
- xsNCName getSid() const { return attrSid; }
- /**
- * Sets the sid attribute.
- * @param atSid The new value for the sid attribute.
- */
- void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
- /**
- * Gets the value of this element.
- * @return a domBool of the value.
- */
- domBool getValue() const { return _value; }
- /**
- * Sets the _value of this element.
- * @param val The new value for this element.
- */
- void setValue( domBool val ) { _value = val; }
- protected:
- /**
- * Constructor
- */
- domEnabled(DAE& dae) : daeElement(dae), attrSid(), _value() {}
- /**
- * Destructor
- */
- virtual ~domEnabled() {}
- /**
- * Overloaded assignment operator
- */
- virtual domEnabled &operator=( const domEnabled &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domInterpenetrate;
- typedef daeSmartRef<domInterpenetrate> domInterpenetrateRef;
- typedef daeTArray<domInterpenetrateRef> domInterpenetrate_Array;
- /**
- * Indicates whether the attached rigid bodies may inter-penetrate.
- */
- class domInterpenetrate : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INTERPENETRATE; }
- static daeInt ID() { return 806; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Attribute
- /**
- * The sid attribute is a text string value containing the sub-identifier
- * of this element. This value must be unique within the scope of the parent
- * element. Optional attribute.
- */
- xsNCName attrSid;
- protected: // Value
- /**
- * The domBool value of the text data of this element.
- */
- domBool _value;
- public: //Accessors and Mutators
- /**
- * Gets the sid attribute.
- * @return Returns a xsNCName of the sid attribute.
- */
- xsNCName getSid() const { return attrSid; }
- /**
- * Sets the sid attribute.
- * @param atSid The new value for the sid attribute.
- */
- void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
- /**
- * Gets the value of this element.
- * @return a domBool of the value.
- */
- domBool getValue() const { return _value; }
- /**
- * Sets the _value of this element.
- * @param val The new value for this element.
- */
- void setValue( domBool val ) { _value = val; }
- protected:
- /**
- * Constructor
- */
- domInterpenetrate(DAE& dae) : daeElement(dae), attrSid(), _value() {}
- /**
- * Destructor
- */
- virtual ~domInterpenetrate() {}
- /**
- * Overloaded assignment operator
- */
- virtual domInterpenetrate &operator=( const domInterpenetrate &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domLimits;
- typedef daeSmartRef<domLimits> domLimitsRef;
- typedef daeTArray<domLimitsRef> domLimits_Array;
- /**
- * The limits element provides a flexible way to specify the constraint limits
- * (degrees of freedom and ranges).
- */
- class domLimits : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LIMITS; }
- static daeInt ID() { return 807; }
- virtual daeInt typeID() const { return ID(); }
- public:
- class domSwing_cone_and_twist;
- typedef daeSmartRef<domSwing_cone_and_twist> domSwing_cone_and_twistRef;
- typedef daeTArray<domSwing_cone_and_twistRef> domSwing_cone_and_twist_Array;
- /**
- * The swing_cone_and_twist element describes the angular limits along each
- * rotation axis in degrees. The the X and Y limits describe a “swing cone”
- * and the Z limits describe the “twist angle” range
- */
- class domSwing_cone_and_twist : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SWING_CONE_AND_TWIST; }
- static daeInt ID() { return 808; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Elements
- /**
- * The minimum values for the limit. @see domMin
- */
- domTargetableFloat3Ref elemMin;
- /**
- * The maximum values for the limit. @see domMax
- */
- domTargetableFloat3Ref elemMax;
- public: //Accessors and Mutators
- /**
- * Gets the min element.
- * @return a daeSmartRef to the min element.
- */
- const domTargetableFloat3Ref getMin() const { return elemMin; }
- /**
- * Gets the max element.
- * @return a daeSmartRef to the max element.
- */
- const domTargetableFloat3Ref getMax() const { return elemMax; }
- protected:
- /**
- * Constructor
- */
- domSwing_cone_and_twist(DAE& dae) : daeElement(dae), elemMin(), elemMax() {}
- /**
- * Destructor
- */
- virtual ~domSwing_cone_and_twist() {}
- /**
- * Overloaded assignment operator
- */
- virtual domSwing_cone_and_twist &operator=( const domSwing_cone_and_twist &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domLinear;
- typedef daeSmartRef<domLinear> domLinearRef;
- typedef daeTArray<domLinearRef> domLinear_Array;
- /**
- * The linear element describes linear (translational) limits along each axis.
- */
- class domLinear : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINEAR; }
- static daeInt ID() { return 809; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Elements
- /**
- * The minimum values for the limit. @see domMin
- */
- domTargetableFloat3Ref elemMin;
- /**
- * The maximum values for the limit. @see domMax
- */
- domTargetableFloat3Ref elemMax;
- public: //Accessors and Mutators
- /**
- * Gets the min element.
- * @return a daeSmartRef to the min element.
- */
- const domTargetableFloat3Ref getMin() const { return elemMin; }
- /**
- * Gets the max element.
- * @return a daeSmartRef to the max element.
- */
- const domTargetableFloat3Ref getMax() const { return elemMax; }
- protected:
- /**
- * Constructor
- */
- domLinear(DAE& dae) : daeElement(dae), elemMin(), elemMax() {}
- /**
- * Destructor
- */
- virtual ~domLinear() {}
- /**
- * Overloaded assignment operator
- */
- virtual domLinear &operator=( const domLinear &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- protected: // Elements
- /**
- * The swing_cone_and_twist element describes the angular limits along each
- * rotation axis in degrees. The the X and Y limits describe a “swing cone”
- * and the Z limits describe the “twist angle” range @see domSwing_cone_and_twist
- */
- domSwing_cone_and_twistRef elemSwing_cone_and_twist;
- /**
- * The linear element describes linear (translational) limits along each axis.
- * @see domLinear
- */
- domLinearRef elemLinear;
- public: //Accessors and Mutators
- /**
- * Gets the swing_cone_and_twist element.
- * @return a daeSmartRef to the swing_cone_and_twist element.
- */
- const domSwing_cone_and_twistRef getSwing_cone_and_twist() const { return elemSwing_cone_and_twist; }
- /**
- * Gets the linear element.
- * @return a daeSmartRef to the linear element.
- */
- const domLinearRef getLinear() const { return elemLinear; }
- protected:
- /**
- * Constructor
- */
- domLimits(DAE& dae) : daeElement(dae), elemSwing_cone_and_twist(), elemLinear() {}
- /**
- * Destructor
- */
- virtual ~domLimits() {}
- /**
- * Overloaded assignment operator
- */
- virtual domLimits &operator=( const domLimits &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domSpring;
- typedef daeSmartRef<domSpring> domSpringRef;
- typedef daeTArray<domSpringRef> domSpring_Array;
- /**
- * Spring, based on distance (“LINEAR”) or angle (“ANGULAR”).
- */
- class domSpring : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SPRING; }
- static daeInt ID() { return 810; }
- virtual daeInt typeID() const { return ID(); }
- public:
- class domAngular;
- typedef daeSmartRef<domAngular> domAngularRef;
- typedef daeTArray<domAngularRef> domAngular_Array;
- /**
- * The angular spring properties.
- */
- class domAngular : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ANGULAR; }
- static daeInt ID() { return 811; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Elements
- /**
- * The stiffness (also called spring coefficient) has units of force/angle
- * in degrees. @see domStiffness
- */
- domTargetableFloatRef elemStiffness;
- /**
- * The spring damping coefficient. @see domDamping
- */
- domTargetableFloatRef elemDamping;
- /**
- * The spring's target or resting distance. @see domTarget_value
- */
- domTargetableFloatRef elemTarget_value;
- public: //Accessors and Mutators
- /**
- * Gets the stiffness element.
- * @return a daeSmartRef to the stiffness element.
- */
- const domTargetableFloatRef getStiffness() const { return elemStiffness; }
- /**
- * Gets the damping element.
- * @return a daeSmartRef to the damping element.
- */
- const domTargetableFloatRef getDamping() const { return elemDamping; }
- /**
- * Gets the target_value element.
- * @return a daeSmartRef to the target_value element.
- */
- const domTargetableFloatRef getTarget_value() const { return elemTarget_value; }
- protected:
- /**
- * Constructor
- */
- domAngular(DAE& dae) : daeElement(dae), elemStiffness(), elemDamping(), elemTarget_value() {}
- /**
- * Destructor
- */
- virtual ~domAngular() {}
- /**
- * Overloaded assignment operator
- */
- virtual domAngular &operator=( const domAngular &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- class domLinear;
- typedef daeSmartRef<domLinear> domLinearRef;
- typedef daeTArray<domLinearRef> domLinear_Array;
- /**
- * The linear spring properties.
- */
- class domLinear : public daeElement
- {
- public:
- virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::LINEAR; }
- static daeInt ID() { return 812; }
- virtual daeInt typeID() const { return ID(); }
- protected: // Elements
- /**
- * The stiffness (also called spring coefficient) has units of force/distance.
- * @see domStiffness
- */
- domTargetableFloatRef elemStiffness;
- /**
- * The spring damping coefficient. @see domDamping
- */
- domTargetableFloatRef elemDamping;
- /**
- * The spring's target or resting distance. @see domTarget_value
- */
- domTargetableFloatRef elemTarget_value;
- public: //Accessors and Mutators
- /**
- * Gets the stiffness element.
- * @return a daeSmartRef to the stiffness element.
- */
- const domTargetableFloatRef getStiffness() const { return elemStiffness; }
- /**
- * Gets the damping element.
- * @return a daeSmartRef to the damping element.
- */
- const domTargetableFloatRef getDamping() const { return elemDamping; }
- /**
- * Gets the target_value element.
- * @return a daeSmartRef to the target_value element.
- */
- const domTargetableFloatRef getTarget_value() const { return elemTarget_value; }
- protected:
- /**
- * Constructor
- */
- domLinear(DAE& dae) : daeElement(dae), elemStiffness(), elemDamping(), elemTarget_value() {}
- /**
- * Destructor
- */
- virtual ~domLinear() {}
- /**
- * Overloaded assignment operator
- */
- virtual domLinear &operator=( const domLinear &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- protected: // Elements
- /**
- * The angular spring properties. @see domAngular
- */
- domAngularRef elemAngular;
- /**
- * The linear spring properties. @see domLinear
- */
- domLinearRef elemLinear;
- public: //Accessors and Mutators
- /**
- * Gets the angular element.
- * @return a daeSmartRef to the angular element.
- */
- const domAngularRef getAngular() const { return elemAngular; }
- /**
- * Gets the linear element.
- * @return a daeSmartRef to the linear element.
- */
- const domLinearRef getLinear() const { return elemLinear; }
- protected:
- /**
- * Constructor
- */
- domSpring(DAE& dae) : daeElement(dae), elemAngular(), elemLinear() {}
- /**
- * Destructor
- */
- virtual ~domSpring() {}
- /**
- * Overloaded assignment operator
- */
- virtual domSpring &operator=( const domSpring &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- protected: // Elements
- /**
- * If false, the constraint doesn’t exert any force or influence on the
- * rigid bodies. @see domEnabled
- */
- domEnabledRef elemEnabled;
- /**
- * Indicates whether the attached rigid bodies may inter-penetrate. @see domInterpenetrate
- */
- domInterpenetrateRef elemInterpenetrate;
- /**
- * The limits element provides a flexible way to specify the constraint limits
- * (degrees of freedom and ranges). @see domLimits
- */
- domLimitsRef elemLimits;
- /**
- * Spring, based on distance (“LINEAR”) or angle (“ANGULAR”). @see
- * domSpring
- */
- domSpringRef elemSpring;
- public: //Accessors and Mutators
- /**
- * Gets the enabled element.
- * @return a daeSmartRef to the enabled element.
- */
- const domEnabledRef getEnabled() const { return elemEnabled; }
- /**
- * Gets the interpenetrate element.
- * @return a daeSmartRef to the interpenetrate element.
- */
- const domInterpenetrateRef getInterpenetrate() const { return elemInterpenetrate; }
- /**
- * Gets the limits element.
- * @return a daeSmartRef to the limits element.
- */
- const domLimitsRef getLimits() const { return elemLimits; }
- /**
- * Gets the spring element.
- * @return a daeSmartRef to the spring element.
- */
- const domSpringRef getSpring() const { return elemSpring; }
- protected:
- /**
- * Constructor
- */
- domTechnique_common(DAE& dae) : daeElement(dae), elemEnabled(), elemInterpenetrate(), elemLimits(), elemSpring() {}
- /**
- * Destructor
- */
- virtual ~domTechnique_common() {}
- /**
- * Overloaded assignment operator
- */
- virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- protected: // Attributes
- /**
- * The sid attribute is a text string value containing the sub-identifier
- * of this element. This value must be unique within the scope of the parent
- * element. Optional attribute.
- */
- xsNCName attrSid;
- /**
- * The name attribute is the text string name of this element. Optional attribute.
- */
- xsNCName attrName;
- protected: // Elements
- /**
- * Defines the attachment (to a rigid_body or a node) to be used as the reference-frame.
- * @see domRef_attachment
- */
- domRef_attachmentRef elemRef_attachment;
- /**
- * Defines an attachment to a rigid-body or a node. @see domAttachment
- */
- domAttachmentRef elemAttachment;
- /**
- * The technique_common element specifies the rigid_constraint information
- * for the common profile which all COLLADA implementations need to support.
- * @see domTechnique_common
- */
- domTechnique_commonRef elemTechnique_common;
- /**
- * This element may contain any number of non-common profile techniques.
- * @see domTechnique
- */
- domTechnique_Array elemTechnique_array;
- /**
- * The extra element may appear any number of times. @see domExtra
- */
- domExtra_Array elemExtra_array;
- public: //Accessors and Mutators
- /**
- * Gets the sid attribute.
- * @return Returns a xsNCName of the sid attribute.
- */
- xsNCName getSid() const { return attrSid; }
- /**
- * Sets the sid attribute.
- * @param atSid The new value for the sid attribute.
- */
- void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; }
- /**
- * Gets the name attribute.
- * @return Returns a xsNCName of the name attribute.
- */
- xsNCName getName() const { return attrName; }
- /**
- * Sets the name attribute.
- * @param atName The new value for the name attribute.
- */
- void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; }
- /**
- * Gets the ref_attachment element.
- * @return a daeSmartRef to the ref_attachment element.
- */
- const domRef_attachmentRef getRef_attachment() const { return elemRef_attachment; }
- /**
- * Gets the attachment element.
- * @return a daeSmartRef to the attachment element.
- */
- const domAttachmentRef getAttachment() const { return elemAttachment; }
- /**
- * Gets the technique_common element.
- * @return a daeSmartRef to the technique_common element.
- */
- const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; }
- /**
- * Gets the technique element array.
- * @return Returns a reference to the array of technique elements.
- */
- domTechnique_Array &getTechnique_array() { return elemTechnique_array; }
- /**
- * Gets the technique element array.
- * @return Returns a constant reference to the array of technique elements.
- */
- const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; }
- /**
- * Gets the extra element array.
- * @return Returns a reference to the array of extra elements.
- */
- domExtra_Array &getExtra_array() { return elemExtra_array; }
- /**
- * Gets the extra element array.
- * @return Returns a constant reference to the array of extra elements.
- */
- const domExtra_Array &getExtra_array() const { return elemExtra_array; }
- protected:
- /**
- * Constructor
- */
- domRigid_constraint(DAE& dae) : daeElement(dae), attrSid(), attrName(), elemRef_attachment(), elemAttachment(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {}
- /**
- * Destructor
- */
- virtual ~domRigid_constraint() {}
- /**
- * Overloaded assignment operator
- */
- virtual domRigid_constraint &operator=( const domRigid_constraint &cpy ) { (void)cpy; return *this; }
- public: // STATIC METHODS
- /**
- * Creates an instance of this class and returns a daeElementRef referencing it.
- * @return a daeElementRef referencing an instance of this object.
- */
- static DLLSPEC daeElementRef create(DAE& dae);
- /**
- * Creates a daeMetaElement object that describes this element in the meta object reflection framework.
- * If a daeMetaElement already exists it will return that instead of creating a new one.
- * @return A daeMetaElement describing this COLLADA element.
- */
- static DLLSPEC daeMetaElement* registerElement(DAE& dae);
- };
- #endif
|