00001 #ifndef __domArticulated_system_h__ 00002 #define __domArticulated_system_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domAsset.h> 00009 #include <dom/domKinematics.h> 00010 #include <dom/domMotion.h> 00011 #include <dom/domExtra.h> 00012 class DAE; 00013 00014 class domArticulated_system : public daeElement 00015 { 00016 public: 00017 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::ARTICULATED_SYSTEM; } 00018 static daeInt ID() { return 485; } 00019 virtual daeInt typeID() const { return ID(); } 00020 protected: // Attributes 00021 xsID attrId; 00022 xsToken attrName; 00023 00024 protected: // Elements 00025 domAssetRef elemAsset; 00026 domKinematicsRef elemKinematics; 00027 domMotionRef elemMotion; 00028 domExtra_Array elemExtra_array; 00032 daeElementRefArray _contents; 00036 daeUIntArray _contentsOrder; 00037 00041 daeTArray< daeCharArray * > _CMData; 00042 00043 00044 public: //Accessors and Mutators 00049 xsID getId() const { return attrId; } 00054 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00055 if( _document != NULL ) _document->changeElementID( this, attrId ); 00056 } 00057 00062 xsToken getName() const { return attrName; } 00067 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00068 00073 const domAssetRef getAsset() const { return elemAsset; } 00078 const domKinematicsRef getKinematics() const { return elemKinematics; } 00083 const domMotionRef getMotion() const { return elemMotion; } 00088 domExtra_Array &getExtra_array() { return elemExtra_array; } 00093 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00098 daeElementRefArray &getContents() { return _contents; } 00103 const daeElementRefArray &getContents() const { return _contents; } 00104 00105 protected: 00109 domArticulated_system(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemKinematics(), elemMotion(), elemExtra_array() {} 00113 virtual ~domArticulated_system() { daeElement::deleteCMDataArray(_CMData); } 00117 virtual domArticulated_system &operator=( const domArticulated_system &cpy ) { (void)cpy; return *this; } 00118 00119 public: // STATIC METHODS 00124 static DLLSPEC daeElementRef create(DAE& dae); 00130 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00131 }; 00132 00133 00134 #endif