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_PARAMETER_LIST_H_ 00012 #define _FCD_EFFECT_PARAMETER_LIST_H_ 00013 00014 class FCDEffectParameter; 00015 00024 class FCOLLADA_EXPORT FCDEffectParameterList : public vector<FCDEffectParameter*>, public FCDObject 00025 { 00026 private: 00027 DeclareObjectType; 00028 bool ownParameters; 00029 00030 public: 00038 FCDEffectParameterList(FCDocument* document = NULL, bool ownParameters = false); 00039 00041 virtual ~FCDEffectParameterList(); 00042 00046 FCDEffectParameter* AddParameter(uint32 type); 00047 00051 void ReleaseParameter(FCDEffectParameter* parameter); 00052 00058 FCDEffectParameter* FindReference(const char* reference); 00059 const FCDEffectParameter* FindReference(const char* reference) const; 00060 inline FCDEffectParameter* FindReference(const string& reference) { return FindReference(reference.c_str()); } 00061 inline const FCDEffectParameter* FindReference(const string& reference) const { return FindReference(reference.c_str()); } 00067 FCDEffectParameter* FindSemantic(const char* semantic); 00068 const FCDEffectParameter* FindSemantic(const char* semantic) const; 00069 inline FCDEffectParameter* FindSemantic(const string& semantic) { return FindReference(semantic.c_str()); } 00070 inline const FCDEffectParameter* FindSemantic(const string& semantic) const { return FindReference(semantic.c_str()); } 00078 void FindReference(const char* reference, FCDEffectParameterList& list); 00079 inline void FindReference(const string& reference, FCDEffectParameterList& list) { return FindReference(reference.c_str(), list); } 00086 void FindSemantic(const char* semantic, FCDEffectParameterList& list); 00087 inline void FindSemantic(const string& semantic, FCDEffectParameterList& list) { return FindReference(semantic.c_str(), list); } 00091 FCDEffectParameterList* Clone() const; 00092 }; 00093 00094 #endif // _FCD_EFFECT_PARAMETER_LIST_H_