fbdata.h

Go to the documentation of this file.
00001 #ifndef __FBDATA_H__
00002 #define __FBDATA_H__
00003 /**************************************************************************
00004  Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
00005  All Rights Reserved.
00006  
00007  The coded instructions, statements, computer programs, and/or related 
00008  material (collectively the "Data") in these files contain unpublished 
00009  information proprietary to Autodesk, Inc. and/or its licensors, which is 
00010  protected by Canada and United States of America federal copyright law 
00011  and by international treaties.
00012  
00013  The Data may not be disclosed or distributed to third parties, in whole 
00014  or in part, without the prior written consent of Autodesk, Inc. 
00015  ("Autodesk").
00016  
00017  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00018  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO 
00019  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR 
00020  ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES 
00021  OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 
00022  PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT 
00023  WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR 
00024  FREE.
00025  
00026  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS 
00027  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR 
00028  EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE 
00029  DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS 
00030  OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR 
00031  DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF 
00032  LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT 
00033  LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE 
00034  DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS 
00035  BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
00036  
00037 **************************************************************************/
00038 
00045 #include <kaydaradef.h>
00046 #ifndef FBSDK_DLL
00047 
00050     #define FBSDK_DLL K_DLLIMPORT
00051 #endif
00052 
00053 #include <fbsdk/fbcomponent.h>
00054 
00056 
00057 // Basic types
00058 #define ANIMATIONNODE_TYPE_NUMBER               "Number"
00059 #define ANIMATIONNODE_TYPE_TIME                 "Time"
00060 #define ANIMATIONNODE_TYPE_TIMECODE             "TimeCode"
00061 #define ANIMATIONNODE_TYPE_VECTOR               "Vector"
00062 #define ANIMATIONNODE_TYPE_VECTOR_4             "Vector4"
00063 #define ANIMATIONNODE_TYPE_OBJECT               "Object"
00064 #define ANIMATIONNODE_TYPE_REFERENCE            "Reference"
00065 #define ANIMATIONNODE_TYPE_EVENT                "Event"
00066 #define ANIMATIONNODE_TYPE_STRING               "String"
00067 
00068 // Types which are numbers
00069 #define ANIMATIONNODE_TYPE_ACTION               "Action"
00070 #define ANIMATIONNODE_TYPE_BOOL                 "Bool"
00071 #define ANIMATIONNODE_TYPE_ENUM                 "Enum"
00072 #define ANIMATIONNODE_TYPE_INTEGER              "Integer"
00073 #define ANIMATIONNODE_TYPE_OCCLUSION            "Occlusion"
00074 #define ANIMATIONNODE_TYPE_FIELDOFVIEWX         "FieldOfViewX"
00075 #define ANIMATIONNODE_TYPE_FIELDOFVIEWY         "FieldOfViewY"
00076 #define ANIMATIONNODE_TYPE_OPTICALCENTERX       "OpticalCenterX"
00077 #define ANIMATIONNODE_TYPE_OPTICALCENTERY       "OpticalCenterY"
00078 #define ANIMATIONNODE_TYPE_IKREACHTRANSLATION   "IK Reach Translation"
00079 #define ANIMATIONNODE_TYPE_IKREACHROTATION      "IK Reach Rotation"
00080 
00081 // Types which are vectors (3 members)
00082 #define ANIMATIONNODE_TYPE_COLOR                "Color"
00083 #define ANIMATIONNODE_TYPE_LOCAL_TRANSLATION    "Lcl Translation"
00084 #define ANIMATIONNODE_TYPE_LOCAL_ROTATION       "Lcl Rotation"
00085 #define ANIMATIONNODE_TYPE_LOCAL_SCALING        "Lcl Scaling"
00086 #define ANIMATIONNODE_TYPE_TRANSLATION          "Translation"
00087 #define ANIMATIONNODE_TYPE_ROTATION             "Rotation"
00088 #define ANIMATIONNODE_TYPE_SCALING              "Scaling"
00089 
00090 // Types which are vectors (4 members)
00091 #define ANIMATIONNODE_TYPE_COLOR_RGBA           "ColorAndAlpha"
00092 
00094 
00095 K_FORWARD( IConnector );
00096 K_FORWARD( KFCurve );
00097 
00098 #ifdef FBSDKUseNamespace
00099     namespace FBSDKNamespace {
00100 #endif
00101 
00102 FB_FORWARD( FBEvaluateInfo );
00103         
00105 enum FBInterpolation    {   
00106     kFBInterpolationInvalid  = -1,  
00107     kFBInterpolationConstant = 0,   
00108     kFBInterpolationLinear,         
00109     kFBInterpolationCubic,          
00110     kFBInterpolationCount           
00111 };
00112 FB_DEFINE_ENUM( FBSDK_DLL, Interpolation ); 
00113 
00115 enum FBInterpolatorCurveType {
00116     kFBInterpolatorCurveLinearIn, 
00117     kFBInterpolatorCurveLinearOut, 
00118     kFBInterpolatorCurveSmoothIn, 
00119     kFBInterpolatorCurveSmoothOut, 
00120     kFBInterpolatorCurveSlowIn, 
00121     kFBInterpolatorCurveSlowOut, 
00122     kFBInterpolatorCurveFastIn, 
00123     kFBInterpolatorCurveFastOut, 
00124     kFBInterpolatorCurveLast 
00125 };
00126 
00130 enum FBTangentMode  {
00131     kFBTangentModeAuto,     
00132     kFBTangentModeTCB,      
00133     kFBTangentModeUser,     
00134     kFBTangentModeBreak     
00135 };
00136 FB_DEFINE_ENUM( FBSDK_DLL, TangentMode );
00137 
00141 enum FBTangentClampMode {
00142     kFBTangentClampModeNone,    
00143     kFBTangentClampModeClamped  
00144     //Add other clamping methods here...
00145 };
00146 FB_DEFINE_ENUM( FBSDK_DLL, TangentClampMode );
00147 
00151 enum FBTangentConstantMode {
00152     kFBTangentConstantModeNormal,   
00153     kFBTangentConstantModeNext      
00154 };
00155 FB_DEFINE_ENUM( FBSDK_DLL, TangentConstantMode );
00156  
00158 // FBFCurveKey
00160 FB_FORWARD( FBFCurve );
00161 __FB_FORWARD( FBFCurveKey );
00162 FB_FORWARD( FBPropertyListFCurveKey );
00163 
00165 class FBSDK_DLL FBFCurveKey
00166 {
00167 private:
00168     HDataFBFCurveKey mLocalPtr;
00169     void FBFCurveKeyInitProperties();
00171     void PropertyAdd( FBProperty* ) {};
00172 public:
00177     FBFCurveKey( HKFCurve pFCurve=NULL, int pKeyIndex=1 );
00178 
00182     FBFCurveKey( const FBFCurveKey &pFCurveKey );
00183 
00186     ~FBFCurveKey();
00187 
00193     bool operator==(const FBFCurveKey &pValue) const;
00194 
00195     // To convert the derivative values to degrees (as shown in Exact mode):
00196     //    degrees( atan( RightDerivative ))
00197     //    -1 * degrees( atan( LeftDerivative )) 
00198     //
00199     // To convert from the exact degree in Exact mode in the GUI to the corresponding
00200     // derivative:
00201     //    tan( radians( RightDerivative ))
00202     //    tan( radians( -1 * LeftDerivative ))
00203     FBPropertyFloat Value;              
00204     FBPropertyFloat LeftDerivative;     
00205     FBPropertyFloat RightDerivative;    
00206     FBPropertyFloat LeftTangentWeight;  
00207     FBPropertyFloat RightTangentWeight; 
00208     FBPropertyFloat LeftBezierTangent;  
00209     FBPropertyFloat RightBezierTangent; 
00210 
00211     // TCB
00212     FBPropertyFloat Tension;            
00213     FBPropertyFloat Continuity;         
00214     FBPropertyFloat Bias;               
00215     
00216     FBPropertyTime          Time;           
00217     FBPropertyInterpolation Interpolation;  
00218     FBPropertyTangentMode   TangentMode;    
00219     FBPropertyTangentClampMode      TangentClampMode;   
00220     FBPropertyBool          TangentBreak;   
00221     FBPropertyTangentConstantMode   TangentConstantMode;        
00222     
00223     friend class FBFCurve;
00224     friend class FBPropertyListFCurveKey;
00225 };
00226 
00228 // FBPropertyListFCurveKey
00230 FB_FORWARD( FBFCurveKey );
00231  
00233 class FBSDK_DLL FBPropertyListFCurveKey : public FBPropertyBaseList< FBFCurveKey >
00234 {
00235 private:
00241     virtual int  Add    ( FBFCurveKey pItem );
00242 
00248     virtual int  Remove ( FBFCurveKey pItem );
00249 
00250 public:
00251 
00255     virtual void RemoveAt( int pIndex );
00256 
00261     virtual FBFCurveKey operator[](int pIndex);
00262 
00266     virtual int  GetCount();
00267 };
00268 
00270 // FBFCurve
00272 __FB_FORWARD( FBFCurve);
00273 
00275 class FBSDK_DLL FBFCurve : public FBComponent {
00276     __FBClassDeclare( FBFCurve,FBComponent );
00277 public:
00281     FBFCurve(HIObject pObject=NULL);
00282 
00285     virtual void FBDelete() override;
00286 
00291     float   Evaluate(FBTime &pTime);
00292 
00296     void    EditBegin(int pKeyCount=-1);
00297 
00301     void    EditEnd(int pKeyCount=-1);
00302 
00304     void    EditClear();
00305 
00313     int KeyAdd( FBTime &pTime, double pValue );
00314 
00319     bool KeyRemove( int pIndex );
00320 
00330     bool KeyDelete(int pStartIndex , int pStopIndex);   
00331 
00339     bool KeyDelete(FBTime pStart = FBTime::MinusInfinity, FBTime pStop = FBTime::Infinity, bool pInclusive = false);
00340 
00346     void    KeyInsert( FBTime &pTime, FBInterpolation pInterpolation = kFBInterpolationCubic, FBTangentMode pTangentMode = kFBTangentModeAuto );
00347 
00355     void Replace( FBFCurve& pSource, FBTime pStart = FBTime::MinusInfinity, FBTime pStop = FBTime::Infinity, bool pUseExactGivenSpan = false, bool pKeyStartEndOnNoKey = true );
00356 
00360     static FBFCurve* CreateInterpolatorCurve( FBInterpolatorCurveType pCurveType );
00361 
00362     FBPropertyListFCurveKey Keys;       
00363 };
00364 
00365 FB_DEFINE_COMPONENT( FBSDK_DLL, FCurve );
00366 
00368 // FBPropertyListAnimationNode
00370 __FB_FORWARD( FBAnimationNode);
00371 __FB_FORWARD( FBPropertyListAnimationNode);
00372 FB_DEFINE_LIST( FBSDK_DLL, AnimationNode );
00373 
00375 class FBSDK_DLL FBPropertyListAnimationNode : public FBPropertyBaseList< FBAnimationNode* >
00376 {
00377 public:
00382     virtual int  Add    ( FBAnimationNode* pItem );
00387     virtual int  Remove ( FBAnimationNode* pItem );
00391     virtual void RemoveAt( int pIndex );
00396     virtual FBAnimationNode* operator[](int pIndex);
00400     virtual int  GetCount();
00406     FBAnimationNode* Find( FBBox *pOriginalOwner, const char* pDataType );
00411     FBAnimationNode* Find( const char* pNodeName );
00416     FBAnimationNode* FindByLabel( const char* pNodeLabel );
00417 };
00418 
00419 FB_DEFINE_COMPONENT( FBSDK_DLL, AnimationNode   );
00421 // FBEventAnimationNode
00424 
00426 enum FBEventAnimationNodeType {
00427     kFBEventAnimationNodeDataChange,
00428     kFBEventAnimationNodeConstraintChange,
00429     kFBEventAnimationNodeNone
00430 };
00431 
00432 FB_DEFINE_ENUM( FBSDK_DLL, EventAnimationNodeType );
00433 
00434 __FB_FORWARD( FBEventAnimationNode );
00435 
00442 class FBSDK_DLL FBEventAnimationNode: public FBEvent
00443 {
00444 public:
00448     FBEventAnimationNode( HKEventBase pEvent );     
00449 
00450     FBPropertyEventAnimationNodeType        Type;   
00451 };
00452 
00454 // FBPropertyEventAnimationNode
00457 class FBSDK_DLL FBPropertyEventAnimationNode : public FBPropertyEvent
00458 {
00459   public:
00464     virtual void Add    ( HICallback pOwner, kICallbackHandler pHandler );
00465     virtual void Remove ( HICallback pOwner, kICallbackHandler pHandler );
00466 };
00474 typedef bool (* kFBDataHandler )(void* pBuffer,FBEvaluateInfo* pEvaluateInfo,FBAnimationNode* pAnimationNode,void* p1,void* p2);
00475 
00477 // FBAnimationNode
00480 FB_DEFINE_COMPONENT( FBSDK_DLL, AnimationNode );
00481 
00482 class FBSDK_DLL FBAnimationNode : public FBComponent
00483 {
00484     __FBClassDeclare( FBAnimationNode,FBComponent );
00485 public:
00490     FBAnimationNode(const char *pName = NULL, HIObject pObject=NULL);
00491 
00496     void KeyAdd( FBTime &pTime, double *pData );
00497 
00501     void KeyAdd( double *pData );
00502 
00506     bool SetCandidate( double* Data );
00507 
00511     void SetBufferType( bool pGlobal );
00512 
00516     void KeyCandidate( FBTime pTime = FBTime::Infinity );
00517 
00520     int GetSizeOfData();
00521 
00525     int GetDataDoubleArrayCount();
00526 
00532     bool WriteData( double* Data,FBEvaluateInfo* pEvaluateInfo );
00533 
00539     bool WriteGlobalData( double* Data,FBEvaluateInfo* pEvaluateInfo );
00540 
00546     bool ReadData( double* Data,FBEvaluateInfo* pEvaluateInfo );
00547 
00558     bool ReadData( double *Data, FBTime pTime );
00559 
00567     bool ReadData( double* Data );
00568 
00575     bool Evaluate( double* Data, FBTime pTime, bool pEvaluateCandidate = true );
00576 
00580     bool IsKey();
00581 
00584     void KeyRemove();
00585 
00589     void KeyRemoveAt( FBTime pTime );
00590 
00594     FBAnimationNode* GetAnimationToRecord();
00595 
00599     FBAnimationNode* GetAnimationToPlay();
00600 
00604     FBTime ConvertGlobalToNodeTime(FBTime& pKeyTime);
00605     
00609     FBTime ConvertNodeToGlobalTime(FBTime& pKeyTime);
00610 
00611     FBPropertyString            Label;          
00612     FBPropertyString            UserName;       
00613     FBPropertykReference        Reference;      
00614     FBPropertyInt               KeyCount;       
00615     FBPropertyFCurve            FCurve;         
00616     FBPropertyBool              Live;           
00617     FBPropertyBool              RecordMode;     
00618     FBPropertyAnimationNode     Parent;         
00619     FBPropertyInterpolation     DefaultInterpolation;   
00620 
00621     FBPropertyListAnimationNode Nodes;          
00622 
00623     FBPropertyEventAnimationNode    OnChange;       
00624 
00625     friend class FBBox;
00626 };
00627 
00629 // FBAnimationLayer
00631 
00635 enum FBLayerMode    {
00636     kFBLayerModeInvalidIndex = -1,  
00637     kFBLayerModeAdditive = 0,       
00638     kFBLayerModeOverride,           
00639     kFBLayerModeOverridePassthrough 
00640 };
00641 FB_DEFINE_ENUM( FBSDK_DLL, LayerMode );
00642 
00646 enum FBLayerRotationMode    {
00647     kFBLayerRotationModeInvalidIndex = -1,      
00648     kFBLayerRotationModeEulerRotation = 0,  
00649     kFBLayerRotationModeQuaternionRotation  
00650 };
00651 FB_DEFINE_ENUM( FBSDK_DLL, LayerRotationMode );
00652 
00653 
00654 __FB_FORWARD( FBAnimationLayer );
00655 
00663 class FBSDK_DLL FBAnimationLayer : public FBComponent
00664 {
00665     //--- Open Reality declaration.
00666     __FBClassDeclare(FBAnimationLayer, FBComponent);
00667 public:
00668 
00674     FBAnimationLayer(const char *pName, int pLayerID, HIObject pObject=NULL);
00675 
00678     virtual void FBDelete();
00679 
00680     FBPropertyBool              Solo;               
00681     FBPropertyBool              Mute;               
00682     FBPropertyBool              Lock;               
00683     FBPropertyAnimatableDouble  Weight;             
00684     FBPropertyLayerMode         LayerMode;          
00685     FBPropertyLayerRotationMode LayerRotationMode;  
00686 
00690     void    AddChildLayer( HFBAnimationLayer pAnimationLayer );
00691 
00696     FBAnimationLayer*   GetChildLayer( int pIndex );
00697 
00701     int     GetChildCount();
00702 
00709     void    GetCompleteChildHierarchy(FBArrayTemplate<FBAnimationLayer*>* pChildArray);
00710 
00714     void SetParentLayer(FBAnimationLayer* pParentLayer);
00715 
00719     FBAnimationLayer*   GetParentLayer();
00720 
00724     int GetLayerIndex();
00725 
00730     void SelectLayer(bool pValue, bool pExclusiveSelect);
00731 
00735     bool IsSelected();
00736 
00737 private:
00738     void FBAnimationLayerInitProperties();
00739 };
00740 
00741 
00742 __FB_FORWARD( FBTake);
00744 // FBPropertyListTake
00746 
00749 class FBSDK_DLL FBPropertyListTake : public FBPropertyListComponent
00750 {
00751 public:
00752     FBPropertyListTake();
00757     FBTake* operator[](int pIndex);
00758 };
00759 
00761 enum FBAnimationLayerMergeOptions   {   
00762     kFBAnimLayerMerge_SelectedLayers_SelectedProperties,
00763     kFBAnimLayerMerge_AllLayers_SelectedProperties,     
00764     kFBAnimLayerMerge_SelectedLayers_AllProperties,     
00765     kFBAnimLayerMerge_AllLayers_AllProperties,          
00766     kFBAnimLayerMerge_SelectedLayer_CompleteScene,      
00767     kFBAnimLayerMerge_AllLayers_CompleteScene,          
00768 };
00769 
00771 enum FBMergeLayerMode   {   
00772     kFBMergeLayerModeAutomatic, 
00773     kFBMergeLayerModeAdditive,  
00774     kFBMergeLayerModeOverride,  
00775 };
00776 
00778 // FBTake
00780 
00808 class FBSDK_DLL FBTake : public FBComponent {
00809     __FBClassDeclare( FBTake,FBComponent );
00810 public:
00818     FBTake(const char* pName, HIObject pObject=NULL);
00819 
00824     virtual void FBDelete();
00825 
00834     HFBTake CopyTake( const char *pNewTakeName );
00835 
00840     void PlotAllTakesOnSelected(FBTime pPlotPeriod);
00843     void CreateNewLayer();    
00844 
00848     void RemoveLayer(int pLayerIndex);  
00849 
00854     FBAnimationLayer* GetLayer(int pLayerIndex);  
00855 
00860     FBAnimationLayer* GetLayerByName(const char* pName);  
00861 
00865     void SetCurrentLayer(int pLayerIndex);
00866 
00870     int GetCurrentLayer();
00871 
00875     int GetLayerCount();
00876 
00880     bool MoveCurrentLayerUp();
00881 
00885     bool MoveCurrentLayerDown();
00886 
00889     void DuplicateSelectedLayers();
00890 
00896     void MergeLayers(FBAnimationLayerMergeOptions pMergeOptions, bool pDeleteMergedLayers, FBMergeLayerMode pMergeMode);
00897 
00902     void PlotTakeOnSelected(FBTime pPlotPeriod);
00903 
00908     void PlotAllTakesOnSelectedProperties(FBTime pPlotPeriod);
00909 
00914     void PlotTakeOnSelectedProperties(FBTime pPlotPeriod);
00915 
00919     void ClearAllProperties(bool pOnSelectedObjectsOnly);
00920 
00921     FBPropertyTimeSpan  ReferenceTimeSpan;      
00922     FBPropertyTimeSpan  LocalTimeSpan;          
00923     FBPropertyString    Comments;               
00924 };
00925 
00926 FB_DEFINE_COMPONENT( FBSDK_DLL, Take );
00927 
00929 // FBTimeWarpManager
00931 __FB_FORWARD( FBTimeWarpManager );
00932 
00936 class FBSDK_DLL FBTimeWarpManager : public FBComponent
00937 {
00938     __FBClassDeclare(FBTimeWarpManager, FBComponent);
00939 
00940 public:
00941     typedef void (*TimeWarpChangeCallback)(void* pObject);
00942 
00946     FBTimeWarpManager();
00947 
00948 
00951     void TimeWarpTakeChange();
00952 
00956     void TimeWarpClearTake(HFBTake pTake);
00957 
00961     void TimeWarpInitTake(HFBTake pTake);
00962 
00967     void TimeWarpCopyTake(HFBTake pDstTake, HFBTake pSrcTake );
00968 
00969 
00975     void TimeWarpAddToTake(HFBTake pTake, FBAnimationNode* pTimeWarp, int pNickNumber=0);
00976 
00981     void DestroyTimeWarpFromTake(HFBTake pTake, FBAnimationNode* pTimeWarp);
00982     
00986     void RemoveTimeWarpFromScene(FBAnimationNode* pTimeWarp);
00987 
00988 
00993     kLong GetTimeWarpCount(HFBTake pTake);
00994     
01000     FBAnimationNode* GetTimeWarpAtIndex(HFBTake pTake, kLong pIndex);
01001 
01002 
01008     int GetTimeWarpNickNumber(HFBTake pTake, FBAnimationNode* pTimeWarp);
01009 
01016     bool SetTimeWarpNickNumber(HFBTake pTake, FBAnimationNode* pTimeWarp, int pNumber);
01017     
01023     int GetTimeWarpNickNumberAtIndex(HFBTake pTake, kLong pIndex);
01024 
01030     FBAnimationNode* GetTimeWarpFromNickNumber(HFBTake pTake, int pNumber);
01031     
01036     int FindTimeWarpNickNumberGlobal(FBAnimationNode* pTimeWarp);
01037 
01038 
01045     bool ApplyTimeWarp(HFBTake pTake, FBProperty* pEvalProp, FBAnimationNode* pTimeWarp);
01046     
01051     void RemoveTimeWarp(HFBTake pTake, FBProperty* pEvalProp );
01052 
01053 
01058     void TimeWarpRegisterChangeEvent(TimeWarpChangeCallback pCallback, void* pObject);
01059     
01064     void TimeWarpUnregisterChangeEvent(TimeWarpChangeCallback pCallback, void* pObject);
01065 
01066 
01071     FBAnimationNode* TimeWarpCreateNew( const char* pName );
01072 
01073 
01079     void TimeWarpRename( HFBTake pTake, FBAnimationNode* pTimeWarp, const char* pNewName );
01080     
01087     void TimeWarpMergeCurveNode( HFBTake pTake,FBProperty* pEvalProp, FBAnimationNode*  pNode, FBAnimationNode*  pTimeWarpNode );
01088     
01092     static FBTimeWarpManager& TheOne();
01093 };
01094 
01095 #ifdef FBSDKUseNamespace
01096     }
01097 #endif
01098 
01099 #endif
01100