00001 /* 00002 Copyright (C) 2005-2006 Feeling Software Inc. 00003 MIT License: http://www.opensource.org/licenses/mit-license.php 00004 */ 00005 00011 #ifndef _FCD_EFFECT_PROFILE_H_ 00012 #define _FCD_EFFECT_PROFILE_H_ 00013 00014 #include "FUtils/FUDaeEnum.h" 00015 #include "FCDocument/FCDObject.h" 00016 00017 class FCDocument; 00018 class FCDEffect; 00019 00032 class FCOLLADA_EXPORT FCDEffectProfile : public FCDObject 00033 { 00034 private: 00035 DeclareObjectType; 00036 FCDEffect* parent; 00037 00038 public: 00043 FCDEffectProfile(FCDocument* document, FCDEffect* parent); 00044 00047 virtual ~FCDEffectProfile(); 00048 00053 virtual FUDaeProfileType::Type GetType() const = 0; 00054 00058 FCDEffect* GetParent() { return parent; } 00059 const FCDEffect* GetParent() const { return parent; } 00064 const string& GetDaeId() const; 00065 00072 virtual FCDEffectParameter* FindParameterBySemantic(const string& semantic) = 0; 00073 00079 virtual void FindParametersBySemantic(const string& semantic, FCDEffectParameterList& parameters) = 0; 00080 00087 virtual void FindParametersByReference(const string& reference, FCDEffectParameterList& parameters) = 0; 00088 00092 virtual FCDEffectProfile* Clone(FCDEffect* newParent) = 0; 00093 00098 virtual void Flatten() = 0; 00099 00104 virtual FUStatus LoadFromXML(xmlNode* profileNode) = 0; 00105 00109 virtual xmlNode* WriteToXML(xmlNode* parentNode) const = 0; 00110 }; 00111 00112 #endif // _FCD_EFFECT_PROFILE_H_