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 __domEffect_h__ 00010 #define __domEffect_h__ 00011 00012 #include <dae/daeDocument.h> 00013 #include <dom/domTypes.h> 00014 #include <dom/domElements.h> 00015 00016 #include <dom/domAsset.h> 00017 #include <dom/domImage.h> 00018 #include <dom/domFx_profile_abstract.h> 00019 #include <dom/domExtra.h> 00020 #include <dom/domFx_annotate_common.h> 00021 #include <dom/domFx_newparam_common.h> 00022 class DAE; 00023 00027 class domEffect : public daeElement 00028 { 00029 public: 00030 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::EFFECT; } 00031 static daeInt ID() { return 728; } 00032 virtual daeInt typeID() const { return ID(); } 00033 protected: // Attributes 00039 xsID attrId; 00043 xsNCName attrName; 00044 00045 protected: // Elements 00049 domAssetRef elemAsset; 00054 domFx_annotate_common_Array elemAnnotate_array; 00059 domImage_Array elemImage_array; 00064 domFx_newparam_common_Array elemNewparam_array; 00069 domFx_profile_abstract_Array elemFx_profile_abstract_array; 00073 domExtra_Array elemExtra_array; 00077 daeElementRefArray _contents; 00081 daeUIntArray _contentsOrder; 00082 00083 00084 public: //Accessors and Mutators 00089 xsID getId() const { return attrId; } 00094 void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; 00095 if( _document != NULL ) _document->changeElementID( this, attrId ); 00096 } 00097 00102 xsNCName getName() const { return attrName; } 00107 void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[1] = true; } 00108 00113 const domAssetRef getAsset() const { return elemAsset; } 00118 domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } 00123 const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } 00128 domImage_Array &getImage_array() { return elemImage_array; } 00133 const domImage_Array &getImage_array() const { return elemImage_array; } 00138 domFx_newparam_common_Array &getNewparam_array() { return elemNewparam_array; } 00143 const domFx_newparam_common_Array &getNewparam_array() const { return elemNewparam_array; } 00148 domFx_profile_abstract_Array &getFx_profile_abstract_array() { return elemFx_profile_abstract_array; } 00153 const domFx_profile_abstract_Array &getFx_profile_abstract_array() const { return elemFx_profile_abstract_array; } 00158 domExtra_Array &getExtra_array() { return elemExtra_array; } 00163 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00168 daeElementRefArray &getContents() { return _contents; } 00173 const daeElementRefArray &getContents() const { return _contents; } 00174 00175 protected: 00179 domEffect(DAE& dae) : daeElement(dae), attrId(), attrName(), elemAsset(), elemAnnotate_array(), elemImage_array(), elemNewparam_array(), elemFx_profile_abstract_array(), elemExtra_array() {} 00183 virtual ~domEffect() {} 00187 virtual domEffect &operator=( const domEffect &cpy ) { (void)cpy; return *this; } 00188 00189 public: // STATIC METHODS 00194 static DLLSPEC daeElementRef create(DAE& dae); 00200 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00201 }; 00202 00203 00204 #endif