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_effect_h__ 00010 #define __domInstance_effect_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domExtra.h> 00017 #include <dom/domFx_basic_type_common.h> 00018 class DAE; 00019 00024 class domInstance_effect : public daeElement 00025 { 00026 public: 00027 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::INSTANCE_EFFECT; } 00028 static daeInt ID() { return 691; } 00029 virtual daeInt typeID() const { return ID(); } 00030 public: 00031 class domTechnique_hint; 00032 00033 typedef daeSmartRef<domTechnique_hint> domTechnique_hintRef; 00034 typedef daeTArray<domTechnique_hintRef> domTechnique_hint_Array; 00035 00039 class domTechnique_hint : public daeElement 00040 { 00041 public: 00042 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE_HINT; } 00043 static daeInt ID() { return 692; } 00044 virtual daeInt typeID() const { return ID(); } 00045 protected: // Attributes 00050 xsNCName attrPlatform; 00055 xsNCName attrProfile; 00059 xsNCName attrRef; 00060 00061 00062 public: //Accessors and Mutators 00067 xsNCName getPlatform() const { return attrPlatform; } 00072 void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform; _validAttributeArray[0] = true; } 00073 00078 xsNCName getProfile() const { return attrProfile; } 00083 void setProfile( xsNCName atProfile ) { *(daeStringRef*)&attrProfile = atProfile; _validAttributeArray[1] = true; } 00084 00089 xsNCName getRef() const { return attrRef; } 00094 void setRef( xsNCName atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[2] = true; } 00095 00096 protected: 00100 domTechnique_hint(DAE& dae) : daeElement(dae), attrPlatform(), attrProfile(), attrRef() {} 00104 virtual ~domTechnique_hint() {} 00108 virtual domTechnique_hint &operator=( const domTechnique_hint &cpy ) { (void)cpy; return *this; } 00109 00110 public: // STATIC METHODS 00115 static DLLSPEC daeElementRef create(DAE& dae); 00121 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00122 }; 00123 00124 class domSetparam; 00125 00126 typedef daeSmartRef<domSetparam> domSetparamRef; 00127 typedef daeTArray<domSetparamRef> domSetparam_Array; 00128 00132 class domSetparam : public daeElement 00133 { 00134 public: 00135 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SETPARAM; } 00136 static daeInt ID() { return 693; } 00137 virtual daeInt typeID() const { return ID(); } 00138 protected: // Attribute 00139 xsToken attrRef; 00140 00141 protected: // Element 00142 domFx_basic_type_commonRef elemFx_basic_type_common; 00143 00144 public: //Accessors and Mutators 00149 xsToken getRef() const { return attrRef; } 00154 void setRef( xsToken atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } 00155 00160 const domFx_basic_type_commonRef getFx_basic_type_common() const { return elemFx_basic_type_common; } 00161 protected: 00165 domSetparam(DAE& dae) : daeElement(dae), attrRef(), elemFx_basic_type_common() {} 00169 virtual ~domSetparam() {} 00173 virtual domSetparam &operator=( const domSetparam &cpy ) { (void)cpy; return *this; } 00174 00175 public: // STATIC METHODS 00180 static DLLSPEC daeElementRef create(DAE& dae); 00186 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00187 }; 00188 00189 00190 protected: // Attributes 00197 xsAnyURI attrUrl; 00203 xsNCName attrSid; 00207 xsNCName attrName; 00208 00209 protected: // Elements 00214 domTechnique_hint_Array elemTechnique_hint_array; 00218 domSetparam_Array elemSetparam_array; 00222 domExtra_Array elemExtra_array; 00223 00224 public: //Accessors and Mutators 00229 xsAnyURI &getUrl() { return attrUrl; } 00234 const xsAnyURI &getUrl() const { return attrUrl; } 00239 void setUrl( const xsAnyURI &atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } 00244 void setUrl( xsString atUrl ) { attrUrl = atUrl; _validAttributeArray[0] = true; } 00245 00250 xsNCName getSid() const { return attrSid; } 00255 void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } 00256 00261 xsNCName getName() const { return attrName; } 00266 void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[2] = true; } 00267 00272 domTechnique_hint_Array &getTechnique_hint_array() { return elemTechnique_hint_array; } 00277 const domTechnique_hint_Array &getTechnique_hint_array() const { return elemTechnique_hint_array; } 00282 domSetparam_Array &getSetparam_array() { return elemSetparam_array; } 00287 const domSetparam_Array &getSetparam_array() const { return elemSetparam_array; } 00292 domExtra_Array &getExtra_array() { return elemExtra_array; } 00297 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00298 protected: 00302 domInstance_effect(DAE& dae) : daeElement(dae), attrUrl(dae, *this), attrSid(), attrName(), elemTechnique_hint_array(), elemSetparam_array(), elemExtra_array() {} 00306 virtual ~domInstance_effect() {} 00310 virtual domInstance_effect &operator=( const domInstance_effect &cpy ) { (void)cpy; return *this; } 00311 00312 public: // STATIC METHODS 00317 static DLLSPEC daeElementRef create(DAE& dae); 00323 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00324 }; 00325 00326 00327 #endif