00001 #ifndef __domBind_material_h__ 00002 #define __domBind_material_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domParam.h> 00009 #include <dom/domInstance_material.h> 00010 #include <dom/domTechnique.h> 00011 #include <dom/domExtra.h> 00012 class DAE; 00013 00018 class domBind_material : public daeElement 00019 { 00020 public: 00021 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_MATERIAL; } 00022 static daeInt ID() { return 106; } 00023 virtual daeInt typeID() const { return ID(); } 00024 public: 00025 class domTechnique_common; 00026 00027 typedef daeSmartRef<domTechnique_common> domTechnique_commonRef; 00028 typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array; 00029 00034 class domTechnique_common : public daeElement 00035 { 00036 public: 00037 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } 00038 static daeInt ID() { return 107; } 00039 virtual daeInt typeID() const { return ID(); } 00040 00041 protected: // Element 00047 domInstance_material_Array elemInstance_material_array; 00048 00049 public: //Accessors and Mutators 00054 domInstance_material_Array &getInstance_material_array() { return elemInstance_material_array; } 00059 const domInstance_material_Array &getInstance_material_array() const { return elemInstance_material_array; } 00060 protected: 00064 domTechnique_common(DAE& dae) : daeElement(dae), elemInstance_material_array() {} 00068 virtual ~domTechnique_common() {} 00072 virtual domTechnique_common &operator=( const domTechnique_common &cpy ) { (void)cpy; return *this; } 00073 00074 public: // STATIC METHODS 00079 static DLLSPEC daeElementRef create(DAE& dae); 00085 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00086 }; 00087 00088 00089 00090 protected: // Elements 00095 domParam_Array elemParam_array; 00101 domTechnique_commonRef elemTechnique_common; 00106 domTechnique_Array elemTechnique_array; 00110 domExtra_Array elemExtra_array; 00111 00112 public: //Accessors and Mutators 00117 domParam_Array &getParam_array() { return elemParam_array; } 00122 const domParam_Array &getParam_array() const { return elemParam_array; } 00127 const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } 00132 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00137 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00142 domExtra_Array &getExtra_array() { return elemExtra_array; } 00147 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00148 protected: 00152 domBind_material(DAE& dae) : daeElement(dae), elemParam_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} 00156 virtual ~domBind_material() {} 00160 virtual domBind_material &operator=( const domBind_material &cpy ) { (void)cpy; return *this; } 00161 00162 public: // STATIC METHODS 00167 static DLLSPEC daeElementRef create(DAE& dae); 00173 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00174 }; 00175 00176 00177 #endif