kfbxkfcurvefilters.h

Go to the documentation of this file.
00001 
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXKFCURVEFILTERS_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXKFCURVEFILTERS_H
00006 
00007 /**************************************************************************************
00008 
00009  Copyright (C) 2001 - 2009 Autodesk, Inc. and/or its licensors.
00010  All Rights Reserved.
00011 
00012  The coded instructions, statements, computer programs, and/or related material 
00013  (collectively the "Data") in these files contain unpublished information 
00014  proprietary to Autodesk, Inc. and/or its licensors, which is protected by 
00015  Canada and United States of America federal copyright law and by international 
00016  treaties. 
00017  
00018  The Data may not be disclosed or distributed to third parties, in whole or in
00019  part, without the prior written consent of Autodesk, Inc. ("Autodesk").
00020 
00021  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00022  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
00023  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
00024  BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE, 
00025  NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE. 
00026  WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
00027  OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE. 
00028  
00029  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
00030  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
00031  OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
00032  SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
00033  OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
00034  HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
00035  FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
00036  ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
00037  WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
00038  OR DAMAGE. 
00039 
00040 **************************************************************************************/
00041 #include <fbxfilesdk/fbxfilesdk_def.h>
00042 
00043 #include <fbxfilesdk/kfbxplugins/kfbxobject.h>
00044 #include <fbxfilesdk/components/kbaselib/klib/ktime.h>
00045 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00046 #include <fbxfilesdk/kfbxmath/kfbxxmatrix.h>
00047 
00048 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00049 
00050 class KFbxAnimStack;
00051 class KFbxAnimCurve;
00052 class KFbxAnimCurveNode;
00053 class KFCurve;
00054 class KFCurveNode;
00055 class KFCurveFilterKeyReducer;
00056 class KFCurveFilterConstantKeyReducer;
00057 class KFCurveFilterMatrixConverter;
00058 class KFCurveFilterResample;
00059 class KFCurveFilterUnroll;
00060 class KFCurveFilterGimbleKiller;
00061 class KFCurveFilterTimeShiftAndScale;
00062 class KFCurveFilterKeySync;
00063 class KFCurveFilterScale;
00064 
00065 
00072 class KFBX_DLL KFbxKFCurveFilter : public KFbxObject
00073 {
00074     KFBXOBJECT_DECLARE(KFbxKFCurveFilter,KFbxObject);
00075 
00076 public:
00080     virtual const char* GetName() const {return NULL;}
00081 
00085     virtual KTime& GetStartTime() {return mTime;}
00086 
00090     virtual void SetStartTime(KTime& pTime){return;}
00091 
00095     virtual KTime& GetStopTime(){return mTime;}
00096 
00100     virtual void SetStopTime(KTime& pTime){return ;}
00101 
00106     virtual int GetStartKey(KFbxAnimCurve& pCurve) const {return 0;}
00107 
00111     virtual int GetStartKey(KFCurve& pCurve) const {return 0;}
00112 
00117     virtual int GetStopKey(KFbxAnimCurve& pCurve) const {return 0;}
00118 
00122     virtual int GetStopKey(KFCurve& pCurve) const {return 0;}
00123 
00128     virtual bool NeedApply(KFbxAnimStack* pAnimStack);
00129 
00135     virtual bool NeedApply(KFbxObject* pObj, KFbxAnimStack* pAnimStack);
00136 
00141     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode) {return false;}
00142 
00147     virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true){return false;}
00148 
00154     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount){return false;}
00155 
00160     virtual bool NeedApply(KFCurve** pCurve, int pCount){return false;}
00161 
00166     virtual bool NeedApply(KFbxAnimCurve& pCurve){return false;}
00167 
00172     virtual bool Apply(KFbxAnimStack* pAnimStack);
00173 
00179     virtual bool Apply(KFbxObject* pObj, KFbxAnimStack* pAnimStack);
00180 
00184     virtual bool NeedApply(KFCurve& pCurve){return false;}
00185 
00190     virtual bool Apply(KFbxAnimCurveNode& pCurveNode){return false;}
00191 
00196     virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true){return false;}
00197 
00203     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount){return false;}
00204 
00209     virtual bool Apply(KFCurve** pCurve, int pCount){return false;}
00210 
00215     virtual bool Apply(KFbxAnimCurve& pCurve){return false;}
00216 
00220     virtual bool Apply(KFCurve& pCurve){return false;}
00221 
00224     virtual void Reset(){return ;}
00225 
00229     virtual KError* GetError() {return NULL;}
00230 
00234     virtual int GetLastErrorID(){return -1;}
00235 
00239     virtual char* GetLastErrorString(){return NULL;}
00241 //
00242 //  WARNING!
00243 //
00244 //  Anything beyond these lines may not be documented accurately and is
00245 //  subject to change without notice.
00246 //
00248 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00249 
00250 protected:
00251     KFbxKFCurveFilter(KFbxSdkManager& pManager, char const* pName);
00252     void GetKFCurvesFromAnimCurve(KFbxAnimCurve** pSrc, int pSrcCount, KFCurve** pDst, int& pDstCount);
00253 
00254     KTime mTime;
00255 #endif
00256 };
00257 
00258 
00265 class KFBX_DLL KFbxKFCurveFilterKeyReducer : public KFbxKFCurveFilter
00266 {
00267     KFBXOBJECT_DECLARE(KFbxKFCurveFilterKeyReducer,KFbxKFCurveFilter);
00268 
00269 public:
00270 
00274     virtual const char* GetName() const;
00275 
00279     virtual KTime& GetStartTime();
00283     virtual void SetStartTime(KTime& pTime);
00287     virtual KTime& GetStopTime();
00288 
00292     virtual void SetStopTime(KTime& pTime);
00293 
00298     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
00302     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
00303 
00308     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
00312     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
00313 
00318     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
00319 
00324     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
00329     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
00330 
00336     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
00341     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
00342 
00347     virtual bool NeedApply(KFbxAnimCurve& pCurve);
00351     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
00352 
00356     virtual KError* GetError();
00360     virtual int GetLastErrorID() const;
00364     virtual const char* GetLastErrorString() const;
00365 
00370     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
00371 
00376     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
00381     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
00382 
00388     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
00393     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
00394 
00399     virtual bool Apply(KFbxAnimCurve& pCurve);
00400 
00404     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
00405 
00408     virtual void Reset();
00409 
00411     double GetPrecision() const;
00412 
00416     void SetPrecision(double pPrecision);
00417 
00419     bool GetKeySync() const;
00420 
00424     void SetKeySync(bool pKeySync);
00425 
00427 //
00428 //  WARNING!
00429 //
00430 //  Anything beyond these lines may not be documented accurately and is
00431 //  subject to change without notice.
00432 //
00434 
00435 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00436 protected:
00438     KFbxKFCurveFilterKeyReducer(KFbxSdkManager& pManager, char const* pName);
00439     KFCurveFilterKeyReducer *mDataCurveFilter;
00440     virtual void Destruct(bool pRecursive, bool pDependents);
00441 
00442 #endif
00443 };
00444 
00445 
00446 
00453 class KFBX_DLL KFbxKFCurveFilterConstantKeyReducer : public KFbxKFCurveFilter
00454 {
00455     KFBXOBJECT_DECLARE(KFbxKFCurveFilterConstantKeyReducer,KFbxKFCurveFilter);
00456 
00457 public:
00458 
00462     virtual const char* GetName() const;
00463 
00467     virtual KTime& GetStartTime();
00471     virtual void SetStartTime(KTime& pTime);
00475     virtual KTime& GetStopTime();
00476 
00480     virtual void SetStopTime(KTime& pTime);
00481 
00486     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
00490     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
00491 
00496     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
00500     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
00501 
00506     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
00507 
00512     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
00517     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
00518 
00524     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
00529     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
00530 
00535     virtual bool NeedApply(KFbxAnimCurve& pCurve);
00539     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
00540 
00544     virtual KError* GetError();
00548     virtual int GetLastErrorID() const;
00552     virtual const char* GetLastErrorString() const;
00553 
00558     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
00559 
00564     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
00569     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
00570 
00576     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
00581     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
00582 
00587     virtual bool Apply(KFbxAnimCurve& pCurve);
00588 
00592     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
00593 
00596     virtual void Reset();
00597 
00601     double GetDerivativeTolerance() const;
00602 
00606     void SetDerivativeTolerance(double pValue);
00607 
00611     double GetValueTolerance() const;
00612 
00616     void SetValueTolerance(double pValue);
00617 
00621     bool GetKeepFirstAndLastKeys() const;
00622 
00626     void SetKeepFirstAndLastKeys( bool pKeepFirstAndLastKeys );
00627 
00631     bool GetKeepOneKey() const;
00632 
00636     void SetKeepOneKey( bool pKeepOneKey );
00637 
00641     void SetKeepNotPureAutoKeys(bool pKeep);
00642 
00644 //
00645 //  WARNING!
00646 //
00647 //  Anything beyond these lines may not be documented accurately and is
00648 //  subject to change without notice.
00649 //
00651 
00652 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00653     //
00654     //  If ValueTolerance is default, we use the thresholds here, otherwise
00655     //  it is the ValueTolerance that is used. (Mainly for backward compatibility)
00656     //
00657     void SetTranslationThreshold    ( double pTranslationThreshold );
00658     void SetRotationThreshold       ( double pRotationThreshold );
00659     void SetScalingThreshold        ( double pScalingThreshold );
00660     void SetDefaultThreshold        ( double pDefaultThreshold );
00661 protected:
00663     KFbxKFCurveFilterConstantKeyReducer(KFbxSdkManager& pManager, char const* pName);
00664     KFCurveFilterConstantKeyReducer *mDataCurveFilter;
00665     virtual void Destruct(bool pRecursive, bool pDependents);
00666 
00667 #endif
00668 };
00669 
00670 
00671 
00672 
00677 class KFBX_DLL KFbxKFCurveFilterMatrixConverter : public KFbxKFCurveFilter
00678 {
00679     KFBXOBJECT_DECLARE(KFbxKFCurveFilterMatrixConverter,KFbxKFCurveFilter);
00680 
00681 public:
00682 
00686     virtual const char* GetName() const;
00687 
00691     virtual KTime& GetStartTime();
00695     virtual void SetStartTime(KTime& pTime);
00699     virtual KTime& GetStopTime();
00700 
00704     virtual void SetStopTime(KTime& pTime);
00705 
00710     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
00714     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
00715 
00720     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
00724     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
00725 
00731     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return false; }
00732 
00737     virtual bool NeedApply(KFbxAnimCurveNode* pCurveNode[3]);
00742     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
00743 
00749     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
00754     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
00755 
00759     virtual bool NeedApply(KFbxAnimCurve& pCurve);
00763     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
00764 
00768     virtual KError* GetError();
00772     virtual int GetLastErrorID() const;
00776     virtual const char* GetLastErrorString() const;
00777 
00783     virtual bool Apply(KFbxAnimStack* pAnimStack) { return false; }
00784 
00789     virtual bool Apply(KFbxAnimCurveNode* pCurveNode[3]);
00794     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
00795 
00801     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
00806     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
00807 
00811     virtual bool Apply(KFbxAnimCurve& pCurve);
00812 
00816     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
00817 
00820     virtual void Reset();
00821 
00836     enum EMatrixID
00837     {
00838         ePreGlobal,
00839         ePreTranslate,
00840         ePostTranslate,
00841         ePreRotate,
00842         ePostRotate,
00843         ePreScale,
00844         ePostScale,
00845         ePostGlobal,
00846         eScaleOffset,
00847         eInactivePre,
00848         eInactivePost,
00849         eRotationPivot,
00850         eScalingPivot,
00851         eMatrixCount
00852     };
00853 
00858     void GetSourceMatrix(EMatrixID pIndex, KFbxXMatrix& pMatrix) const;
00859 
00864     void SetSourceMatrix(EMatrixID pIndex, KFbxXMatrix& pMatrix);
00865 
00870     void GetDestMatrix(EMatrixID pIndex, KFbxXMatrix& pMatrix) const;
00871 
00876     void SetDestMatrix(EMatrixID pIndex, KFbxXMatrix& pMatrix);
00877 
00881     KTime GetResamplingPeriod () const;
00882 
00886     void SetResamplingPeriod (KTime& pResamplingPeriod);
00887 
00891     bool GetGenerateLastKeyExactlyAtEndTime() const;
00892 
00896     void SetGenerateLastKeyExactlyAtEndTime(bool pFlag);
00897 
00901     bool GetResamplingOnFrameRateMultiple() const;
00902 
00911     void SetResamplingOnFrameRateMultiple(bool pFlag);
00912 
00916     bool GetApplyUnroll() const;
00917 
00921     void SetApplyUnroll(bool pFlag);
00922 
00926     bool GetApplyConstantKeyReducer() const;
00927 
00931     void SetApplyConstantKeyReducer(bool pFlag);
00932 
00938     bool GetResampleTranslation() const;
00939 
00945     void SetResampleTranslation(bool pFlag);
00946 
00950     void SetSrcRotateOrder(int pOrder);
00951 
00955     void SetDestRotateOrder(int pOrder);
00956 
00960     void SetForceApply(bool pVal);
00961 
00965     bool GetForceApply() const;
00967 //
00968 //  WARNING!
00969 //
00970 //  Anything beyond these lines may not be documented accurately and is
00971 //  subject to change without notice.
00972 //
00974 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00975 protected:
00977     KFbxKFCurveFilterMatrixConverter(KFbxSdkManager& pManager, char const* pName);
00978     KFCurveFilterMatrixConverter *mDataCurveFilter;
00979     virtual void Destruct(bool pRecursive, bool pDependents);
00980 #endif
00981 };
00982 
00983 
00984 
00985 
00989 class KFBX_DLL KFbxKFCurveFilterResample : public KFbxKFCurveFilter
00990 {
00991     KFBXOBJECT_DECLARE(KFbxKFCurveFilterResample,KFbxKFCurveFilter);
00992 
00993 public:
00997     virtual const char* GetName() const;
00998 
01002     virtual KTime& GetStartTime();
01006     virtual void SetStartTime(KTime& pTime);
01010     virtual KTime& GetStopTime();
01011 
01015     virtual void SetStopTime(KTime& pTime);
01016 
01021     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01025     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01026 
01031     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01035     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01036 
01041     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
01042 
01047     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01052     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01053 
01059     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01064     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01065 
01070     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01074     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01075 
01079     virtual KError* GetError();
01083     virtual int GetLastErrorID() const;
01087     virtual const char* GetLastErrorString() const;
01088 
01093     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
01098     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
01099 
01104     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
01105 
01111     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
01116     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
01117 
01122     virtual bool Apply(KFbxAnimCurve& pCurve);
01123 
01127     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
01128 
01131     virtual void Reset();
01132 
01136     void SetKeysOnFrame(bool pKeysOnFrame);
01137 
01141     bool GetKeysOnFrame() const;
01142 
01146     KTime GetPeriodTime() const;
01147 
01151     void SetPeriodTime(KTime &pPeriod);
01152 
01153 
01157     bool  GetIntelligentMode() const;
01158 
01162     void  SetIntelligentMode( bool pIntelligent );
01163 
01165 //
01166 //  WARNING!
01167 //
01168 //  Anything beyond these lines may not be documented accurately and is
01169 //  subject to change without notice.
01170 //
01172 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01173 protected:
01175     KFbxKFCurveFilterResample(KFbxSdkManager& pManager, char const* pName);
01176     KFCurveFilterResample *mDataCurveFilter;
01177     virtual void Destruct(bool pRecursive, bool pDependents);
01178 #endif
01179 
01180 };
01181 
01186 class KFBX_DLL KFbxKFCurveFilterUnroll : public KFbxKFCurveFilter
01187 {
01188     KFBXOBJECT_DECLARE(KFbxKFCurveFilterUnroll,KFbxKFCurveFilter);
01189 
01190 public:
01191 
01195     virtual const char* GetName() const;
01196 
01200     virtual KTime& GetStartTime();
01204     void SetStartTime(KTime& pTime);
01208     virtual KTime& GetStopTime();
01209 
01213     virtual void SetStopTime(KTime& pTime);
01214 
01219     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01223     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01224 
01229     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01233     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01234 
01240     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return false; };
01241 
01246     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01251     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01252 
01258     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01263     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01264 
01268     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01272     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01273 
01277     virtual KError* GetError();
01281     virtual int GetLastErrorID() const;
01285     virtual const char* GetLastErrorString() const;
01286 
01292     virtual bool Apply(KFbxAnimStack* pAnimStack) { return false; };
01293 
01298     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
01303     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
01304 
01310     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
01315     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
01316 
01320     virtual bool Apply(KFbxAnimCurve& pCurve);
01324     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
01325 
01328     virtual void Reset();
01329 
01333     double GetQualityTolerance() const;
01334 
01338     void SetQualityTolerance(double pQualityTolerance);
01339 
01343     bool GetTestForPath() const;
01344 
01348     void SetTestForPath(bool pTestForPath);
01349 
01351 //
01352 //  WARNING!
01353 //
01354 //  Anything beyond these lines may not be documented accurately and is
01355 //  subject to change without notice.
01356 //
01358     void SetRotationOrder(int pOrder);
01359 
01360 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01361 protected:
01363     KFbxKFCurveFilterUnroll(KFbxSdkManager& pManager, char const* pName);
01364     KFCurveFilterUnroll *mDataCurveFilter;
01365     virtual void Destruct(bool pRecursive, bool pDependents);
01366 #endif
01367 };
01368 
01369 
01373 class KFBX_DLL KFbxKFCurveFilterGimbleKiller : public KFbxKFCurveFilter
01374 {
01375     KFBXOBJECT_DECLARE(KFbxKFCurveFilterGimbleKiller,KFbxKFCurveFilter);
01376 
01377 public:
01378 
01382     virtual const char* GetName() const;
01383 
01387     virtual KTime& GetStartTime();
01391     virtual void SetStartTime(KTime& pTime);
01395     virtual KTime& GetStopTime();
01396 
01400     virtual void SetStopTime(KTime& pTime);
01401 
01406     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01410     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01411 
01416     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01420     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01421 
01427     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return false; }
01428 
01433     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01438     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01439 
01445     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01450     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01451 
01455     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01459     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01460 
01464     virtual KError* GetError();
01468     virtual int GetLastErrorID() const;
01472     virtual const char* GetLastErrorString() const;
01473 
01479     virtual bool Apply(KFbxAnimStack* pAnimStack) { return false; }
01480 
01485     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
01490     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
01491 
01497     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
01502     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
01503 
01507     virtual bool Apply(KFbxAnimCurve& pCurve);
01511     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
01512 
01515     virtual void Reset();
01516 
01518     bool GetApplyKeySyncFilter() const;
01519 
01523     void SetApplyKeySyncFilter(bool pFlag);
01524 
01526 //
01527 //  WARNING!
01528 //
01529 //  Anything beyond these lines may not be documented accurately and is
01530 //  subject to change without notice.
01531 //
01533 
01534 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01535 protected:
01537     KFbxKFCurveFilterGimbleKiller(KFbxSdkManager& pManager, char const* pName);
01538     KFCurveFilterGimbleKiller *mDataCurveFilter;
01539     virtual void Destruct(bool pRecursive, bool pDependents);
01540 #endif
01541 };
01542 
01543 
01547 class KFBX_DLL KFbxKFCurveFilterTSS : public KFbxKFCurveFilter
01548 {
01549     KFBXOBJECT_DECLARE(KFbxKFCurveFilterTSS,KFbxKFCurveFilter);
01550 
01551 public:
01552 
01556     virtual const char* GetName() const;
01557 
01561     virtual KTime& GetStartTime();
01565     virtual void SetStartTime(KTime& pTime);
01569     virtual KTime& GetStopTime();
01570 
01574     virtual void SetStopTime(KTime& pTime);
01575 
01580     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01584     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01585 
01590     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01594     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01595 
01600     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
01601 
01606     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01611     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01612 
01618     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01623     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01624 
01629     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01633     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01634 
01638     virtual KError* GetError();
01642     virtual int GetLastErrorID() const;
01646     virtual const char* GetLastErrorString() const;
01647 
01652     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
01653 
01658     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
01663     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
01664 
01670     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
01675     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
01676 
01681     virtual bool Apply(KFbxAnimCurve& pCurve);
01685     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
01686 
01689     virtual void Reset();
01690 
01694     KTime& GetShift() const;
01695 
01699     void SetShift(KTime& pShift);
01700 
01704     double GetScale() const;
01705 
01709     void SetScale(double pScale);
01710 
01712 //
01713 //  WARNING!
01714 //
01715 //  Anything beyond these lines may not be documented accurately and is
01716 //  subject to change without notice.
01717 //
01719 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01720 protected:
01722     KFbxKFCurveFilterTSS(KFbxSdkManager& pManager, char const* pName);
01723     KFCurveFilterTimeShiftAndScale *mDataCurveFilter;
01724     virtual void Destruct(bool pRecursive, bool pDependents);
01725 #endif
01726 };
01727 
01732 class KFBX_DLL KFbxKFCurveFilterKeySync : public KFbxKFCurveFilter
01733 {
01734     KFBXOBJECT_DECLARE(KFbxKFCurveFilterKeySync,KFbxKFCurveFilter);
01735 
01736 public:
01740     virtual const char* GetName() const;
01741 
01745     virtual KTime& GetStartTime();
01749     virtual void SetStartTime(KTime& pTime);
01753     virtual KTime& GetStopTime();
01754 
01758     virtual void SetStopTime(KTime& pTime);
01759 
01764     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01768     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01769 
01774     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01778     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01779 
01784     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
01785 
01792     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01797     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01798 
01804     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01809     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01810 
01815     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01819     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01820 
01824     virtual KError* GetError();
01828     virtual int GetLastErrorID() const;
01832     virtual const char* GetLastErrorString() const;
01833 
01838     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
01839 
01846     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
01851     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
01852 
01858     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
01863     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
01864 
01869     virtual bool Apply(KFbxAnimCurve& pCurve);
01873     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
01874 
01877     virtual void Reset();
01878 
01880 //
01881 //  WARNING!
01882 //
01883 //  Anything beyond these lines may not be documented accurately and is
01884 //  subject to change without notice.
01885 //
01887 
01888 #ifndef DOXYGEN_SHOULD_SKIP_THIS
01889 protected:
01891     KFbxKFCurveFilterKeySync(KFbxSdkManager& pManager, char const* pName);
01892     KFCurveFilterKeySync *mDataCurveFilter;
01893     virtual void Destruct(bool pRecursive, bool pDependents);
01894 
01895 #endif
01896 };
01897 
01902 class KFBX_DLL KFbxKFCurveFilterScale : public KFbxKFCurveFilter
01903 {
01904     KFBXOBJECT_DECLARE(KFbxKFCurveFilterScale,KFbxKFCurveFilter);
01905 
01906 public:
01910     virtual const char* GetName() const;
01911 
01915     virtual KTime& GetStartTime();
01919     virtual void SetStartTime(KTime& pTime);
01923     virtual KTime& GetStopTime();
01924 
01928     virtual void SetStopTime(KTime& pTime);
01929 
01934     virtual int GetStartKey(KFbxAnimCurve& pCurve) const;
01938     K_DEPRECATED virtual int GetStartKey(KFCurve& pCurve) const;
01939 
01944     virtual int GetStopKey(KFbxAnimCurve& pCurve) const;
01948     K_DEPRECATED virtual int GetStopKey(KFCurve& pCurve) const;
01949 
01954     virtual bool NeedApply(KFbxAnimStack* pAnimStack) { return ParentClass::NeedApply(pAnimStack); }
01955 
01960     virtual bool NeedApply(KFbxAnimCurveNode& pCurveNode);
01965     K_DEPRECATED virtual bool NeedApply(KFCurveNode& pCurveNode, bool pRecursive = true);
01966 
01972     virtual bool NeedApply(KFbxAnimCurve** pCurve, int pCount);
01977     K_DEPRECATED virtual bool NeedApply(KFCurve** pCurve, int pCount);
01978 
01983     virtual bool NeedApply(KFbxAnimCurve& pCurve);
01987     K_DEPRECATED virtual bool NeedApply(KFCurve& pCurve);
01988 
01992     virtual KError* GetError();
01996     virtual int GetLastErrorID() const;
02000     virtual const char* GetLastErrorString() const;
02001 
02006     virtual bool Apply(KFbxAnimStack* pAnimStack) { return ParentClass::Apply(pAnimStack); }
02007 
02012     virtual bool Apply(KFbxAnimCurveNode& pCurveNode);
02017     K_DEPRECATED virtual bool Apply(KFCurveNode& pCurveNode, bool pRecursive = true);
02018 
02024     virtual bool Apply(KFbxAnimCurve** pCurve, int pCount);
02029     K_DEPRECATED virtual bool Apply(KFCurve** pCurve, int pCount);
02030 
02035     virtual bool Apply(KFbxAnimCurve& pCurve);
02036 
02040     K_DEPRECATED virtual bool Apply(KFCurve& pCurve);
02041 
02044     virtual void Reset();
02045 
02049     float GetScale() const;
02050 
02055     void SetScale(float pScale);
02056 
02058 //
02059 //  WARNING!
02060 //
02061 //  Anything beyond these lines may not be documented accurately and is
02062 //  subject to change without notice.
02063 //
02065 
02066 #ifndef DOXYGEN_SHOULD_SKIP_THIS
02067 protected:
02069     KFbxKFCurveFilterScale(KFbxSdkManager& pManager, char const* pName);
02070     KFCurveFilterScale *mDataCurveFilter;
02071     virtual void Destruct(bool pRecursive, bool pDependents);
02072 
02073 #endif
02074 };
02075 
02076 #include <fbxfilesdk/fbxfilesdk_nsend.h>
02077 
02078 #endif // FBXFILESDK_KFBXPLUGINS_KFBXKFCURVEFILTERS_H
02079 
02080 
02081