00001 #ifndef __domProfile_gles2_h__ 00002 #define __domProfile_gles2_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/domFx_include.h> 00010 #include <dom/domFx_code.h> 00011 #include <dom/domGles2_newparam.h> 00012 #include <dom/domFx_annotate.h> 00013 #include <dom/domGles2_pass.h> 00014 #include <dom/domExtra.h> 00015 class DAE; 00016 00020 class domProfile_gles2 : public daeElement 00021 { 00022 public: 00023 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_GLES2; } 00024 static daeInt ID() { return 224; } 00025 virtual daeInt typeID() const { return ID(); } 00026 public: 00027 class domNewparam; 00028 00029 typedef daeSmartRef<domNewparam> domNewparamRef; 00030 typedef daeTArray<domNewparamRef> domNewparam_Array; 00031 00032 class domNewparam : public domGles2_newparam 00033 { 00034 public: 00035 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NEWPARAM; } 00036 static daeInt ID() { return 225; } 00037 virtual daeInt typeID() const { return ID(); } 00038 00039 protected: 00043 domNewparam(DAE& dae) : domGles2_newparam(dae) {} 00047 virtual ~domNewparam() {} 00051 virtual domNewparam &operator=( const domNewparam &cpy ) { (void)cpy; return *this; } 00052 00053 public: // STATIC METHODS 00058 static DLLSPEC daeElementRef create(DAE& dae); 00064 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00065 }; 00066 00067 class domTechnique; 00068 00069 typedef daeSmartRef<domTechnique> domTechniqueRef; 00070 typedef daeTArray<domTechniqueRef> domTechnique_Array; 00071 00076 class domTechnique : public daeElement 00077 { 00078 public: 00079 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } 00080 static daeInt ID() { return 226; } 00081 virtual daeInt typeID() const { return ID(); } 00082 protected: // Attributes 00083 xsID attrId; 00089 domSid attrSid; 00090 00091 protected: // Elements 00092 domAssetRef elemAsset; 00097 domFx_annotate_Array elemAnnotate_array; 00102 domGles2_pass_Array elemPass_array; 00103 domExtra_Array elemExtra_array; 00104 00105 public: //Accessors and Mutators 00110 xsID getId() const { return attrId; } 00115 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 00116 if( _document != NULL ) _document->changeElementID( this, attrId ); 00117 } 00118 00123 domSid getSid() const { return attrSid; } 00128 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } 00129 00134 const domAssetRef getAsset() const { return elemAsset; } 00139 domFx_annotate_Array &getAnnotate_array() { return elemAnnotate_array; } 00144 const domFx_annotate_Array &getAnnotate_array() const { return elemAnnotate_array; } 00149 domGles2_pass_Array &getPass_array() { return elemPass_array; } 00154 const domGles2_pass_Array &getPass_array() const { return elemPass_array; } 00159 domExtra_Array &getExtra_array() { return elemExtra_array; } 00164 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00165 protected: 00169 domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemAnnotate_array(), elemPass_array(), elemExtra_array() {} 00173 virtual ~domTechnique() {} 00177 virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } 00178 00179 public: // STATIC METHODS 00184 static DLLSPEC daeElementRef create(DAE& dae); 00190 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00191 }; 00192 00193 00194 protected: // Attributes 00198 xsID attrId; 00203 xsNCName attrLanguage; 00207 domList_of_names attrPlatforms; 00208 00209 protected: // Elements 00210 domAssetRef elemAsset; 00214 domFx_include_Array elemInclude_array; 00220 domFx_code_Array elemCode_array; 00221 domNewparam_Array elemNewparam_array; 00226 domTechnique_Array elemTechnique_array; 00227 domExtra_Array elemExtra_array; 00231 daeElementRefArray _contents; 00235 daeUIntArray _contentsOrder; 00236 00240 daeTArray< daeCharArray * > _CMData; 00241 00242 00243 public: //Accessors and Mutators 00248 xsID getId() const { return attrId; } 00253 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00254 if( _document != NULL ) _document->changeElementID( this, attrId ); 00255 } 00256 00261 xsNCName getLanguage() const { return attrLanguage; } 00266 void setLanguage( xsNCName atLanguage ) { *(daeStringRef*)&attrLanguage = atLanguage;} 00267 00272 domList_of_names getPlatforms() const { return attrPlatforms; } 00277 void setPlatforms( domList_of_names atPlatforms ) { attrPlatforms = atPlatforms; } 00278 00283 const domAssetRef getAsset() const { return elemAsset; } 00288 domFx_include_Array &getInclude_array() { return elemInclude_array; } 00293 const domFx_include_Array &getInclude_array() const { return elemInclude_array; } 00298 domFx_code_Array &getCode_array() { return elemCode_array; } 00303 const domFx_code_Array &getCode_array() const { return elemCode_array; } 00308 domNewparam_Array &getNewparam_array() { return elemNewparam_array; } 00313 const domNewparam_Array &getNewparam_array() const { return elemNewparam_array; } 00318 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00323 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00328 domExtra_Array &getExtra_array() { return elemExtra_array; } 00333 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00338 daeElementRefArray &getContents() { return _contents; } 00343 const daeElementRefArray &getContents() const { return _contents; } 00344 00345 protected: 00349 domProfile_gles2(DAE& dae) : daeElement(dae), attrId(), attrLanguage(), attrPlatforms(), elemAsset(), elemInclude_array(), elemCode_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} 00353 virtual ~domProfile_gles2() { daeElement::deleteCMDataArray(_CMData); } 00357 virtual domProfile_gles2 &operator=( const domProfile_gles2 &cpy ) { (void)cpy; return *this; } 00358 00359 public: // STATIC METHODS 00364 static DLLSPEC daeElementRef create(DAE& dae); 00370 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00371 }; 00372 00373 00374 #endif