00001 #ifndef __domExtra_h__ 00002 #define __domExtra_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/domTechnique.h> 00010 class DAE; 00011 00016 class domExtra : public daeElement 00017 { 00018 public: 00019 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EXTRA; } 00020 static daeInt ID() { return 26; } 00021 virtual daeInt typeID() const { return ID(); } 00022 protected: // Attributes 00028 xsID attrId; 00032 xsToken attrName; 00037 xsNMTOKEN attrType; 00038 00039 protected: // Elements 00043 domAssetRef elemAsset; 00048 domTechnique_Array elemTechnique_array; 00049 00050 public: //Accessors and Mutators 00055 xsID getId() const { return attrId; } 00060 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00061 if( _document != NULL ) _document->changeElementID( this, attrId ); 00062 } 00063 00068 xsToken getName() const { return attrName; } 00073 void setName( xsToken atName ) { *(daeStringRef*)&attrName = atName;} 00074 00079 xsNMTOKEN getType() const { return attrType; } 00084 void setType( xsNMTOKEN atType ) { *(daeStringRef*)&attrType = atType;} 00085 00090 const domAssetRef getAsset() const { return elemAsset; } 00095 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00100 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00101 protected: 00105 domExtra(DAE& dae) : daeElement(dae), attrId(), attrName(), attrType(), elemAsset(), elemTechnique_array() {} 00109 virtual ~domExtra() {} 00113 virtual domExtra &operator=( const domExtra &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