FCDocument/FCDEffectProfile.h

Go to the documentation of this file.
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_PROFILE_H_
00015 #define _FCD_EFFECT_PROFILE_H_
00016 
00017 #ifndef _FU_DAE_ENUM_H_
00018 #include "FUtils/FUDaeEnum.h"
00019 #endif // _FU_DAE_ENUM_H_
00020 #ifndef __FCD_OBJECT_H_
00021 #include "FCDocument/FCDObject.h"
00022 #endif // __FCD_OBJECT_H_
00023 
00024 class FCDocument;
00025 class FCDEffect;
00026 class FCDEffectParameter;
00027 class FCDExtra;
00028 
00041 class FCOLLADA_EXPORT FCDEffectProfile : public FCDObject
00042 {
00043 private:
00044     DeclareObjectType(FCDObject);
00045     FCDEffect* parent;
00046     DeclareParameterContainer(FCDEffectParameter, parameters, FC("Effect Parameters"));
00047     DeclareParameterRef(FCDExtra, extra, FC("Extra Tree"));
00048 
00049 public:
00054     FCDEffectProfile(FCDocument* document, FCDEffect* parent);
00055 
00057     virtual ~FCDEffectProfile();
00058 
00063     virtual FUDaeProfileType::Type GetType() const = 0;
00064 
00068     FCDEffect* GetParent() { return parent; }
00069     const FCDEffect* GetParent() const { return parent; } 
00074     DEPRECATED(3.05A, GetParent()->GetDaeId) const fm::string& GetDaeId() const { return emptyString; }
00075 
00080     inline FCDExtra* GetExtra() { return extra; }
00081     inline const FCDExtra* GetExtra() const { return extra; } 
00089     virtual FCDEffectProfile* Clone(FCDEffectProfile* clone = NULL) const;
00090     
00093     inline size_t GetEffectParameterCount() const { return parameters.size(); }
00094 
00098     inline FCDEffectParameter* GetEffectParameter(size_t index) { FUAssert(index < parameters.size(), return NULL); return parameters.at(index); }
00099     inline const FCDEffectParameter* GetEffectParameter(size_t index) const { FUAssert(index < parameters.size(), return NULL); return parameters.at(index); }
00100 
00105     FCDEffectParameter* AddEffectParameter(uint32 type);
00106 
00111     DEPRECATED(3.05A, not recommended) void Flatten() {}
00112 };
00113 
00114 #endif // _FCD_EFFECT_PROFILE_H_

Generated on Thu Feb 14 16:58:34 2008 for FCollada by  doxygen 1.4.6-NO