00001 
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXTAKENODE_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXTAKENODE_H
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h>
00043 #include <fbxfilesdk/components/kbaselib/kaydara.h>
00044 
00045 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00046 
00047 #include <fbxfilesdk/components/kbaselib/kbaselib_forward.h>
00048 
00049 #include <fbxfilesdk/components/kfcurve/kfcurve_forward.h>
00050 
00051 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00052 
00053 class KFbxGeometry;
00054 class KFbxVector4;
00055 class KFbxProperty;
00056 class KFbxObject;
00057 
00058 #define KFBXTAKENODE_DEFAULT_NAME           "Default"
00059 #define KFBXTAKENODE_ROOT_CURVE_NODE_NAME   "Defaults"
00060 
00061 
00077 class KFBX_DLL KFbxTakeNode
00078 {
00079 
00080 public:
00085 
00089     KFbxTakeNode(char* pName = KFBXTAKENODE_DEFAULT_NAME);
00090 
00094     KFbxTakeNode(KFbxTakeNode& pTakeNode);
00095 
00097     ~KFbxTakeNode();
00098 
00100 
00105 
00109     void SetName(char* pName);
00110 
00114     char* GetName();
00115 
00117 
00122     KFCurveNode* GetKFCurveNode();
00127 
00131     KError& GetError();
00132 
00135     typedef enum
00136     {
00137         eNO_CURVE_FOUND, 
00138         eERROR_COUNT     
00139     } EError;
00140 
00144     EError GetLastErrorID() const;
00145 
00149     const char* GetLastErrorString() const;
00150 
00152 
00158 
00166     bool GetAnimationInterval(KTime& pStart, KTime& pStop);
00167 
00172     bool AddRotationToTranslation(KFbxVector4 pRotation);
00173 
00174 
00176 
00178 
00179 
00180 
00181 
00182 
00183 
00185 
00186 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00187 
00188 public:
00189 
00190     bool IsChannelAnimated(char* pGroup, char* pSubGroup, char* pName);
00191     bool IsChannelAnimated(char* pGroup, char* pSubGroup, KDataType* pDataType);
00192 
00193 private:
00194 
00195     void DeleteRecursive(KFCurveNode* pNode);
00196     KFCurve* GetKFCurve(char* pGroup, char* pSubGroup, char* pName);
00197     KFCurve const* GetKFCurve(char* pGroup, char* pSubGroup, char* pName) const;
00198     KFCurve* GetKFCurve(char* pGroup, char* pSubGroup, KDataType* pDataType);
00199     KFCurve const* GetKFCurve(char* pGroup, char* pSubGroup, KDataType* pDataType) const;
00200 
00201     KString mName;
00202     KFCurveNode* mNode;
00203 
00204     KError mError;
00205 
00206     friend class KFbxTakeNodeContainer;
00207 
00208 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00209 
00210 };
00211 
00212 typedef KFbxTakeNode* HKFbxTakeNode;
00213 
00214 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00215 
00216 #endif // FBXFILESDK_KFBXPLUGINS_KFBXTAKENODE_H
00217