00001 #ifndef __domInstance_controller_h__ 00002 #define __domInstance_controller_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domBind_material.h> 00009 #include <dom/domExtra.h> 00010 class DAE; 00011 00016 class domInstance_controller : public daeElement 00017 { 00018 public: 00019 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_CONTROLLER; } 00020 static daeInt ID() { return 108; } 00021 virtual daeInt typeID() const { return ID(); } 00022 public: 00023 class domSkeleton; 00024 00025 typedef daeSmartRef<domSkeleton> domSkeletonRef; 00026 typedef daeTArray<domSkeletonRef> domSkeleton_Array; 00027 00033 class domSkeleton : public daeElement 00034 { 00035 public: 00036 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SKELETON; } 00037 static daeInt ID() { return 109; } 00038 virtual daeInt typeID() const { return ID(); } 00039 00040 00041 public: //Accessors and Mutators 00046 xsAnyURI &getValue() { return _value; } 00051 const xsAnyURI &getValue() const { return _value; } 00056 void setValue( const xsAnyURI &val ) { _value = val; } 00061 void setValue( xsString val ) { _value = val; } 00062 00063 protected: // Value 00067 xsAnyURI _value; 00068 protected: 00072 domSkeleton(DAE& dae) : daeElement(dae), _value(dae, *this) {} 00076 virtual ~domSkeleton() {} 00080 virtual domSkeleton &operator=( const domSkeleton &cpy ) { (void)cpy; return *this; } 00081 00082 public: // STATIC METHODS 00087 static DLLSPEC daeElementRef create(DAE& dae); 00093 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00094 }; 00095 00096 00097 protected: // Attributes 00104 xsAnyURI attrUrl; 00110 domSid attrSid; 00114 xsToken attrName; 00115 00116 protected: // Elements 00122 domSkeleton_Array elemSkeleton_array; 00127 domBind_materialRef elemBind_material; 00131 domExtra_Array elemExtra_array; 00132 00133 public: //Accessors and Mutators 00138 xsAnyURI &getUrl() { return attrUrl; } 00143 const xsAnyURI &getUrl() const { return attrUrl; } 00148 void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; } 00153 void setUrl( xsString atUrl ) { attrUrl = atUrl; } 00154 00159 domSid getSid() const { return attrSid; } 00164 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid;} 00165 00170 xsToken getName() const { return attrName; } 00175 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00176 00181 domSkeleton_Array &getSkeleton_array() { return elemSkeleton_array; } 00186 const domSkeleton_Array &getSkeleton_array() const { return elemSkeleton_array; } 00191 const domBind_materialRef getBind_material() const { return elemBind_material; } 00196 domExtra_Array &getExtra_array() { return elemExtra_array; } 00201 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00202 protected: 00206 domInstance_controller(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemSkeleton_array(), elemBind_material(), elemExtra_array() {} 00210 virtual ~domInstance_controller() {} 00214 virtual domInstance_controller &operator=( const domInstance_controller &cpy ) { (void)cpy; return *this; } 00215 00216 public: // STATIC METHODS 00221 static DLLSPEC daeElementRef create(DAE& dae); 00227 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00228 }; 00229 00230 00231 #endif