00001 #ifndef __domProfile_cg_h__ 00002 #define __domProfile_cg_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_code.h> 00010 #include <dom/domFx_include.h> 00011 #include <dom/domCg_newparam.h> 00012 #include <dom/domFx_annotate.h> 00013 #include <dom/domCg_pass.h> 00014 #include <dom/domExtra.h> 00015 class DAE; 00016 00020 class domProfile_cg : public daeElement 00021 { 00022 public: 00023 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_CG; } 00024 static daeInt ID() { return 258; } 00025 virtual daeInt typeID() const { return ID(); } 00026 public: 00027 class domTechnique; 00028 00029 typedef daeSmartRef<domTechnique> domTechniqueRef; 00030 typedef daeTArray<domTechniqueRef> domTechnique_Array; 00031 00036 class domTechnique : public daeElement 00037 { 00038 public: 00039 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } 00040 static daeInt ID() { return 259; } 00041 virtual daeInt typeID() const { return ID(); } 00042 protected: // Attributes 00048 xsID attrId; 00054 domSid attrSid; 00055 00056 protected: // Elements 00060 domAssetRef elemAsset; 00061 domFx_annotate_Array elemAnnotate_array; 00066 domCg_pass_Array elemPass_array; 00067 domExtra_Array elemExtra_array; 00068 00069 public: //Accessors and Mutators 00074 xsID getId() const { return attrId; } 00079 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 00080 if( _document != NULL ) _document->changeElementID( this, attrId ); 00081 } 00082 00087 domSid getSid() const { return attrSid; } 00092 void setSid( domSid atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } 00093 00098 const domAssetRef getAsset() const { return elemAsset; } 00103 domFx_annotate_Array &getAnnotate_array() { return elemAnnotate_array; } 00108 const domFx_annotate_Array &getAnnotate_array() const { return elemAnnotate_array; } 00113 domCg_pass_Array &getPass_array() { return elemPass_array; } 00118 const domCg_pass_Array &getPass_array() const { return elemPass_array; } 00123 domExtra_Array &getExtra_array() { return elemExtra_array; } 00128 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00129 protected: 00133 domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAsset(), elemAnnotate_array(), elemPass_array(), elemExtra_array() {} 00137 virtual ~domTechnique() {} 00141 virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } 00142 00143 public: // STATIC METHODS 00148 static DLLSPEC daeElementRef create(DAE& dae); 00154 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00155 }; 00156 00157 00158 protected: // Attributes 00164 xsID attrId; 00169 xsNCName attrPlatform; 00170 00171 protected: // Elements 00172 domAssetRef elemAsset; 00173 domFx_code_Array elemCode_array; 00174 domFx_include_Array elemInclude_array; 00175 domCg_newparam_Array elemNewparam_array; 00180 domTechnique_Array elemTechnique_array; 00181 domExtra_Array elemExtra_array; 00185 daeElementRefArray _contents; 00189 daeUIntArray _contentsOrder; 00190 00194 daeTArray< daeCharArray * > _CMData; 00195 00196 00197 public: //Accessors and Mutators 00202 xsID getId() const { return attrId; } 00207 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; 00208 if( _document != NULL ) _document->changeElementID( this, attrId ); 00209 } 00210 00215 xsNCName getPlatform() const { return attrPlatform; } 00220 void setPlatform( xsNCName atPlatform ) { *(daeStringRef*)&attrPlatform = atPlatform;} 00221 00226 const domAssetRef getAsset() const { return elemAsset; } 00231 domFx_code_Array &getCode_array() { return elemCode_array; } 00236 const domFx_code_Array &getCode_array() const { return elemCode_array; } 00241 domFx_include_Array &getInclude_array() { return elemInclude_array; } 00246 const domFx_include_Array &getInclude_array() const { return elemInclude_array; } 00251 domCg_newparam_Array &getNewparam_array() { return elemNewparam_array; } 00256 const domCg_newparam_Array &getNewparam_array() const { return elemNewparam_array; } 00261 domTechnique_Array &getTechnique_array() { return elemTechnique_array; } 00266 const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } 00271 domExtra_Array &getExtra_array() { return elemExtra_array; } 00276 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00281 daeElementRefArray &getContents() { return _contents; } 00286 const daeElementRefArray &getContents() const { return _contents; } 00287 00288 protected: 00292 domProfile_cg(DAE& dae) : daeElement(dae), attrId(), attrPlatform(), elemAsset(), elemCode_array(), elemInclude_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} 00296 virtual ~domProfile_cg() { daeElement::deleteCMDataArray(_CMData); } 00300 virtual domProfile_cg &operator=( const domProfile_cg &cpy ) { (void)cpy; return *this; } 00301 00302 public: // STATIC METHODS 00307 static DLLSPEC daeElementRef create(DAE& dae); 00313 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00314 }; 00315 00316 00317 #endif