00001 /**************************************************************************************** 00002 00003 Copyright (C) 2012 Autodesk, Inc. 00004 All rights reserved. 00005 00006 Use of this software is subject to the terms of the Autodesk license agreement 00007 provided at the time of installation or download, or which otherwise accompanies 00008 this software in either electronic or hard copy form. 00009 00010 ****************************************************************************************/ 00011 00013 #ifndef _FBXSDK_SCENE_GEOMETRY_CACHED_EFFECT_H_ 00014 #define _FBXSDK_SCENE_GEOMETRY_CACHED_EFFECT_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/scene/geometry/fbxnodeattribute.h> 00019 #include <fbxsdk/scene/geometry/fbxcache.h> 00020 00021 #include <fbxsdk/fbxsdk_nsbegin.h> 00022 00028 class FBXSDK_DLL FbxCachedEffect : public FbxNodeAttribute 00029 { 00030 FBXSDK_OBJECT_DECLARE(FbxCachedEffect,FbxNodeAttribute); 00031 00032 public: 00034 virtual FbxNodeAttribute::EType GetAttributeType() const; 00035 00045 enum ECategory 00046 { 00047 eParticles, 00048 eFluids, 00049 eHair, 00050 eGeneric 00051 }; 00052 00054 ECategory GetCategory() const; 00055 00067 void SetCache( FbxCache* pCache, ECategory pCategory = eGeneric); 00068 00072 FbxCache* GetCache() const; 00073 00074 protected: 00075 00076 00078 // 00079 // WARNING! 00080 // 00081 // Anything beyond these lines may not be documented accurately and is 00082 // subject to change without notice. 00083 // 00085 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00086 public: 00087 virtual FbxObject& Copy(const FbxObject& pObject); 00088 00089 protected: 00090 FbxCachedEffect(FbxManager& pManager, char const* pName); 00091 00092 virtual void Construct(const FbxCachedEffect* pFrom); 00093 virtual bool ConstructProperties(bool pForceSet); 00094 00095 public: 00096 virtual const char* GetTypeName() const; 00097 virtual FbxStringList GetTypeFlags() const; 00098 00099 private: 00100 void ClearCacheConnections(); 00101 FbxPropertyT<ECategory> Category; 00102 00103 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 00104 00105 }; 00106 00107 inline EFbxType FbxTypeOf(const FbxCachedEffect::ECategory&){ return eFbxEnum; } 00108 00109 #include <fbxsdk/fbxsdk_nsend.h> 00110 00111 #endif /* _FBXSDK_SCENE_GEOMETRY_CACHED_EFFECT_H_ */