mitsuba/tools/windows/include/colladadom/1.4/dom/domRigid_constraint.h

1103 lines
35 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* Copyright 2006 Sony Computer Entertainment Inc.
*
* Licensed under the MIT Open Source License, for details please see license.txt or the website
* http://www.opensource.org/licenses/mit-license.php
*
*/
#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 doesnt 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 doesnt 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