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 __domInstance_material_h__ 00010 #define __domInstance_material_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domExtra.h> 00017 class DAE; 00018 00023 class domInstance_material : public daeElement 00024 { 00025 public: 00026 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_MATERIAL; } 00027 static daeInt ID() { return 697; } 00028 virtual daeInt typeID() const { return ID(); } 00029 public: 00030 class domBind; 00031 00032 typedef daeSmartRef<domBind> domBindRef; 00033 typedef daeTArray<domBindRef> domBind_Array; 00034 00038 class domBind : public daeElement 00039 { 00040 public: 00041 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND; } 00042 static daeInt ID() { return 698; } 00043 virtual daeInt typeID() const { return ID(); } 00044 protected: // Attributes 00048 xsNCName attrSemantic; 00054 xsToken attrTarget; 00055 00056 00057 public: //Accessors and Mutators 00062 xsNCName getSemantic() const { return attrSemantic; } 00067 void setSemantic( xsNCName atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } 00068 00073 xsToken getTarget() const { return attrTarget; } 00078 void setTarget( xsToken atTarget ) { *(daeStringRef*)&attrTarget = atTarget; _validAttributeArray[1] = true; } 00079 00080 protected: 00084 domBind(DAE& dae) : daeElement(dae), attrSemantic(), attrTarget() {} 00088 virtual ~domBind() {} 00092 virtual domBind &operator=( const domBind &cpy ) { (void)cpy; return *this; } 00093 00094 public: // STATIC METHODS 00099 static DLLSPEC daeElementRef create(DAE& dae); 00105 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00106 }; 00107 00108 class domBind_vertex_input; 00109 00110 typedef daeSmartRef<domBind_vertex_input> domBind_vertex_inputRef; 00111 typedef daeTArray<domBind_vertex_inputRef> domBind_vertex_input_Array; 00112 00117 class domBind_vertex_input : public daeElement 00118 { 00119 public: 00120 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND_VERTEX_INPUT; } 00121 static daeInt ID() { return 699; } 00122 virtual daeInt typeID() const { return ID(); } 00123 protected: // Attributes 00127 xsNCName attrSemantic; 00131 xsNCName attrInput_semantic; 00135 domUint attrInput_set; 00136 00137 00138 public: //Accessors and Mutators 00143 xsNCName getSemantic() const { return attrSemantic; } 00148 void setSemantic( xsNCName atSemantic ) { *(daeStringRef*)&attrSemantic = atSemantic; _validAttributeArray[0] = true; } 00149 00154 xsNCName getInput_semantic() const { return attrInput_semantic; } 00159 void setInput_semantic( xsNCName atInput_semantic ) { *(daeStringRef*)&attrInput_semantic = atInput_semantic; _validAttributeArray[1] = true; } 00160 00165 domUint getInput_set() const { return attrInput_set; } 00170 void setInput_set( domUint atInput_set ) { attrInput_set = atInput_set; _validAttributeArray[2] = true; } 00171 00172 protected: 00176 domBind_vertex_input(DAE& dae) : daeElement(dae), attrSemantic(), attrInput_semantic(), attrInput_set() {} 00180 virtual ~domBind_vertex_input() {} 00184 virtual domBind_vertex_input &operator=( const domBind_vertex_input &cpy ) { (void)cpy; return *this; } 00185 00186 public: // STATIC METHODS 00191 static DLLSPEC daeElementRef create(DAE& dae); 00197 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00198 }; 00199 00200 00201 protected: // Attributes 00206 xsNCName attrSymbol; 00211 xsAnyURI attrTarget; 00217 xsNCName attrSid; 00221 xsNCName attrName; 00222 00223 protected: // Elements 00228 domBind_Array elemBind_array; 00233 domBind_vertex_input_Array elemBind_vertex_input_array; 00237 domExtra_Array elemExtra_array; 00238 00239 public: //Accessors and Mutators 00244 xsNCName getSymbol() const { return attrSymbol; } 00249 void setSymbol( xsNCName atSymbol ) { *(daeStringRef*)&attrSymbol = atSymbol; _validAttributeArray[0] = true; } 00250 00255 xsAnyURI &getTarget() { return attrTarget; } 00260 const xsAnyURI &getTarget() const { return attrTarget; } 00265 void setTarget( const xsAnyURI &atTarget ) { attrTarget = atTarget; _validAttributeArray[1] = true; } 00270 void setTarget( xsString atTarget ) { attrTarget = atTarget; _validAttributeArray[1] = true; } 00271 00276 xsNCName getSid() const { return attrSid; } 00281 void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[2] = true; } 00282 00287 xsNCName getName() const { return attrName; } 00292 void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[3] = true; } 00293 00298 domBind_Array &getBind_array() { return elemBind_array; } 00303 const domBind_Array &getBind_array() const { return elemBind_array; } 00308 domBind_vertex_input_Array &getBind_vertex_input_array() { return elemBind_vertex_input_array; } 00313 const domBind_vertex_input_Array &getBind_vertex_input_array() const { return elemBind_vertex_input_array; } 00318 domExtra_Array &getExtra_array() { return elemExtra_array; } 00323 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00324 protected: 00328 domInstance_material(DAE& dae) : daeElement(dae), attrSymbol(), attrTarget(dae, *this), attrSid(), attrName(), elemBind_array(), elemBind_vertex_input_array(), elemExtra_array() {} 00332 virtual ~domInstance_material() {} 00336 virtual domInstance_material &operator=( const domInstance_material &cpy ) { (void)cpy; return *this; } 00337 00338 public: // STATIC METHODS 00343 static DLLSPEC daeElementRef create(DAE& dae); 00349 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00350 }; 00351 00352 00353 #endif