00001 /* 00002 * Copyright 2006 Sony Computer Entertainment Inc. 00003 * 00004 * Licensed under the MIT Open Source License, for details please see license.txt or the website 00005 * http://www.opensource.org/licenses/mit-license.php 00006 * 00007 */ 00008 00009 #ifndef __domBind_material_h__ 00010 #define __domBind_material_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domParam.h> 00017 #include <dom/domTechnique.h> 00018 #include <dom/domExtra.h> 00019 #include <dom/domInstance_material.h> 00020 class DAE; 00021 00026 class domBind_material : public daeElement 00027 { 00028 public: 00029 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_MATERIAL; } 00030 static daeInt ID() { return 686; } 00031 virtual daeInt typeID() const { return ID(); } 00032 public: 00033 class domTechnique_common; 00034 00035 typedef daeSmartRef<domTechnique_common> domTechnique_commonRef; 00036 typedef daeTArray<domTechnique_commonRef> domTechnique_common_Array; 00037 00042 class domTechnique_common : public daeElement 00043 { 00044 public: 00045 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_COMMON; } 00046 static daeInt ID() { return 687; } 00047 virtual daeInt typeID() const { return ID(); } 00048 00049 protected: // Element 00055 domInstance_material_Array elemInstance_material_array; 00056 00057 public: //Accessors and Mutators 00062 domInstance_material_Array &getInstance_material_array() { return elemInstance_material_array; } 00067 const domInstance_material_Array &getInstance_material_array() const { return elemInstance_material_array; } 00068 protected: 00072 domTechnique_common(DAE& dae) : daeElement(dae), elemInstance_material_array() {} 00076 virtual ~domTechnique_common() {} 00080 virtual domTechnique_common &operator=( const domTechnique_common &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 00098 protected: // Elements 00103 domParam_Array elemParam_array; 00109 domTechnique_commonRef elemTechnique_common; 00114 domTechnique_Array elemTechnique_array; 00118 domExtra_Array elemExtra_array; 00119 00120 public: //Accessors and Mutators 00125 domParam_Array &getParam_array() { return elemParam_array; } 00130 const domParam_Array &getParam_array() const { return elemParam_array; } 00135 const domTechnique_commonRef getTechnique_common() const { return elemTechnique_common; } 00140 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00145 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00150 domExtra_Array &getExtra_array() { return elemExtra_array; } 00155 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00156 protected: 00160 domBind_material(DAE& dae) : daeElement(dae), elemParam_array(), elemTechnique_common(), elemTechnique_array(), elemExtra_array() {} 00164 virtual ~domBind_material() {} 00168 virtual domBind_material &operator=( const domBind_material &cpy ) { (void)cpy; return *this; } 00169 00170 public: // STATIC METHODS 00175 static DLLSPEC daeElementRef create(DAE& dae); 00181 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00182 }; 00183 00184 00185 #endif