00001 /* 00002 Copyright (C) 2005-2007 Feeling Software Inc. 00003 Portions of the code are: 00004 Copyright (C) 2005-2007 Sony Computer Entertainment America 00005 00006 MIT License: http://www.opensource.org/licenses/mit-license.php 00007 */ 00008 00014 #ifndef _FCD_EFFECT_CODE_H_ 00015 #define _FCD_EFFECT_CODE_H_ 00016 00017 #ifndef __FCD_OBJECT_H_ 00018 #include "FCDocument/FCDObject.h" 00019 #endif // __FCD_OBJECT_H_ 00020 00021 class FCDocument; 00022 00036 class FCOLLADA_EXPORT FCDEffectCode : public FCDObject 00037 { 00038 public: 00040 enum Type 00041 { 00042 INCLUDE, 00043 CODE 00044 }; 00045 00046 private: 00047 DeclareObjectType(FCDObject); 00048 00049 Type type; 00050 fm::string sid; 00051 fstring code; 00052 fstring filename; 00053 00054 public: 00059 FCDEffectCode(FCDocument* document); 00060 00062 virtual ~FCDEffectCode(); 00063 00066 inline Type GetType() const { return type; } 00067 00072 inline void SetType(Type _type) { type = _type; SetDirtyFlag(); } 00073 00077 inline const fm::string& GetSubId() const { return sid; } 00078 00082 void SetSubId(const fm::string& _sid); 00083 00088 inline const fstring& GetCode() const { return code; } 00089 00093 inline void SetCode(const fstring& _code) { code = _code; type = CODE; SetDirtyFlag(); } 00094 00099 inline const fstring& GetFilename() const { return filename; } 00100 00104 void SetFilename(const fstring& _filename); 00105 00111 FCDEffectCode* Clone(FCDEffectCode* clone = NULL) const; 00112 }; 00113 00114 #endif // _FCD_EFFECT_CODE_H_