00001 #ifndef __domJoint_h__ 00002 #define __domJoint_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domAxis_constraint.h> 00009 #include <dom/domExtra.h> 00010 class DAE; 00011 00012 class domJoint : public daeElement 00013 { 00014 public: 00015 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::JOINT; } 00016 static daeInt ID() { return 462; } 00017 virtual daeInt typeID() const { return ID(); } 00018 protected: // Attributes 00019 xsID attrId; 00020 xsToken attrName; 00021 domSid attrSid; 00022 00023 protected: // Elements 00024 domAxis_constraint_Array elemPrismatic_array; 00025 domAxis_constraint_Array elemRevolute_array; 00026 domExtra_Array elemExtra_array; 00030 daeElementRefArray _contents; 00034 daeUIntArray _contentsOrder; 00035 00039 daeTArray< daeCharArray * > _CMData; 00040 00041 00042 public: //Accessors and Mutators 00047 xsID getId() const { return attrId; } 00052 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00053 if( _document != NULL ) _document->changeElementID( this, attrId ); 00054 } 00055 00060 xsToken getName() const { return attrName; } 00065 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00066 00071 domSid getSid() const { return attrSid; } 00076 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid;} 00077 00082 domAxis_constraint_Array &getPrismatic_array() { return elemPrismatic_array; } 00087 const domAxis_constraint_Array &getPrismatic_array() const { return elemPrismatic_array; } 00092 domAxis_constraint_Array &getRevolute_array() { return elemRevolute_array; } 00097 const domAxis_constraint_Array &getRevolute_array() const { return elemRevolute_array; } 00102 domExtra_Array &getExtra_array() { return elemExtra_array; } 00107 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00112 daeElementRefArray &getContents() { return _contents; } 00117 const daeElementRefArray &getContents() const { return _contents; } 00118 00119 protected: 00123 domJoint(DAE& dae) : daeElement(dae), attrId(), attrName(), attrSid(), elemPrismatic_array(), elemRevolute_array(), elemExtra_array() {} 00127 virtual ~domJoint() { daeElement::deleteCMDataArray(_CMData); } 00131 virtual domJoint &operator=( const domJoint &cpy ) { (void)cpy; return *this; } 00132 00133 public: // STATIC METHODS 00138 static DLLSPEC daeElementRef create(DAE& dae); 00144 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00145 }; 00146 00147 00148 #endif