00001 #ifndef __domInstance_with_extra_h__ 00002 #define __domInstance_with_extra_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domExtra.h> 00009 class DAE; 00010 00016 class domInstance_with_extra : public daeElement 00017 { 00018 public: 00019 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_WITH_EXTRA; } 00020 static daeInt ID() { return 98; } 00021 virtual daeInt typeID() const { return ID(); } 00022 protected: // Attributes 00029 xsAnyURI attrUrl; 00035 domSid attrSid; 00039 xsToken attrName; 00040 00041 protected: // Element 00045 domExtra_Array elemExtra_array; 00046 00047 public: //Accessors and Mutators 00052 xsAnyURI &getUrl() { return attrUrl; } 00057 const xsAnyURI &getUrl() const { return attrUrl; } 00062 void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; } 00067 void setUrl( xsString atUrl ) { attrUrl = atUrl; } 00068 00073 domSid getSid() const { return attrSid; } 00078 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid;} 00079 00084 xsToken getName() const { return attrName; } 00089 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00090 00095 domExtra_Array &getExtra_array() { return elemExtra_array; } 00100 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00101 protected: 00105 domInstance_with_extra(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemExtra_array() {} 00109 virtual ~domInstance_with_extra() {} 00113 virtual domInstance_with_extra &operator=( const domInstance_with_extra &cpy ) { (void)cpy; return *this; } 00114 00115 public: // STATIC METHODS 00120 static DLLSPEC daeElementRef create(DAE& dae); 00126 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00127 }; 00128 00129 00130 #endif