fbxsdk/scene/animation/fbxanimcurve.h Source File

fbxanimcurve.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_SCENE_ANIMATION_CURVE_H_
14 #define _FBXSDK_SCENE_ANIMATION_CURVE_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
18 #include <fbxsdk/core/fbxobject.h>
20 
21 #include <fbxsdk/fbxsdk_nsbegin.h>
22 
23 class KFCurve;
24 
27 {
28 public:
29  static const float sDEFAULT_WEIGHT;
30  static const float sMIN_WEIGHT;
31  static const float sMAX_WEIGHT;
32  static const float sDEFAULT_VELOCITY;
33 
36  {
37  eTangentAuto = 0x00000100,
38  eTangentTCB = 0x00000200,
39  eTangentUser = 0x00000400,
40  eTangentGenericBreak = 0x00000800,
41  eTangentBreak = eTangentGenericBreak|eTangentUser,
42  eTangentAutoBreak = eTangentGenericBreak|eTangentAuto,
43  eTangentGenericClamp = 0x00001000,
44  eTangentGenericTimeIndependent = 0x00002000,
45  eTangentGenericClampProgressive = 0x00004000|eTangentGenericTimeIndependent
46  };
47 
50  {
51  eInterpolationConstant = 0x00000002,
52  eInterpolationLinear = 0x00000004,
53  eInterpolationCubic = 0x00000008
54  };
55 
58  {
59  eWeightedNone = 0x00000000,
60  eWeightedRight = 0x01000000,
61  eWeightedNextLeft = 0x02000000,
62  eWeightedAll = eWeightedRight|eWeightedNextLeft
63  };
64 
67  {
68  eConstantStandard = 0x00000000,
69  eConstantNext = 0x00000100
70  };
71 
74  {
75  eVelocityNone = 0x00000000,
76  eVelocityRight = 0x10000000,
77  eVelocityNextLeft = 0x20000000,
78  eVelocityAll = eVelocityRight|eVelocityNextLeft
79  };
80 
83  {
84  eTangentShowNone = 0x00000000,
85  eTangentShowLeft = 0x00100000,
86  eTangentShowRight = 0x00200000,
87  eTangentShowBoth = eTangentShowLeft|eTangentShowRight
88  };
89 
92  {
93  eRightSlope = 0,
94  eNextLeftSlope = 1,
95  eWeights = 2,
96  eRightWeight = 2,
97  eNextLeftWeight = 3,
98  eVelocity = 4,
99  eRightVelocity = 4,
100  eNextLeftVelocity = 5,
101  eTCBTension = 0,
102  eTCBContinuity = 1,
103  eTCBBias = 2
104  };
105 };
106 
108 {
110  {
111  mDerivative = 0;
113  mWeighted = false;
115  mHasVelocity = false;
116  mAuto = 0;
117  }
118 
119  float mDerivative;
120  float mWeight;
121  float mVelocity;
122  float mAuto;
123  bool mWeighted;
125 };
126 
135 {
136 public:
139  virtual ~FbxAnimCurveKey_Impl() {};
140 
143  virtual FbxAnimCurveKey_Impl& operator=(const FbxAnimCurveKey_Impl& pFKey) = 0;
144 
149  virtual void Set(FbxTime pTime, float pValue) = 0;
150 
162  virtual void SetTCB(FbxTime pTime, float pValue, float pData0 = 0.0f, float pData1 = 0.0f, float pData2 = 0.0f) = 0;
163 
167  virtual float GetValue() const = 0;
168 
172  virtual void SetValue(float pValue) = 0;
173 
177  virtual FbxAnimCurveDef::EInterpolationType GetInterpolation() const = 0;
178 
182  virtual void SetInterpolation (FbxAnimCurveDef::EInterpolationType pInterpolation) = 0;
183 
190  virtual FbxAnimCurveDef::ETangentMode GetTangentMode(bool pIncludeOverrides = false) const = 0;
191 
195  virtual void SetTangentMode (FbxAnimCurveDef::ETangentMode pTangentMode) = 0;
196 
201  virtual FbxAnimCurveDef::EWeightedMode GetTangentWeightMode() const = 0;
202 
236  virtual void SetTangentWeightMode(FbxAnimCurveDef::EWeightedMode pTangentWeightMode, FbxAnimCurveDef::EWeightedMode pMask = FbxAnimCurveDef::eWeightedAll ) = 0;
237 
248  virtual void SetTangentWeightAndAdjustTangent(FbxAnimCurveDef::EDataIndex pIndex, double pWeight ) = 0;
249 
254  virtual FbxAnimCurveDef::EVelocityMode GetTangentVelocityMode() const = 0;
255 
265  virtual void SetTangentVelocityMode(FbxAnimCurveDef::EVelocityMode pTangentVelocityMode, FbxAnimCurveDef::EVelocityMode pMask = FbxAnimCurveDef::eVelocityAll ) = 0;
266 
272  virtual FbxAnimCurveDef::EConstantMode GetConstantMode() const = 0;
273 
278  virtual void SetConstantMode(FbxAnimCurveDef::EConstantMode pMode) = 0;
279 
294  virtual float GetDataFloat(FbxAnimCurveDef::EDataIndex pIndex) const = 0;
295 
307  virtual void SetDataFloat(FbxAnimCurveDef::EDataIndex pIndex, float pValue) = 0;
308 
313  virtual void SetTangentVisibility (FbxAnimCurveDef::ETangentVisibility pVisibility) = 0;
314 
319  virtual FbxAnimCurveDef::ETangentVisibility GetTangentVisibility () const = 0;
320 
327  virtual void SetBreak(bool pVal) = 0;
328 
335  virtual bool GetBreak() const = 0;
336 };
337 
349 {
350 public:
354  {
355  FBX_ASSERT(mAllocatorFct != NULL);
356  mImpl = (*mAllocatorFct)();
357  }
358 
363  {
364  FBX_ASSERT(mAllocatorFct != NULL);
365  mImpl = (*mAllocatorFct)();
366  SetTime(pTime);
367  }
368 
374  {
375  FBX_ASSERT(mAllocatorFct != NULL);
376  mImpl = (*mAllocatorFct)();
377  Set(pTime, pVal);
378  }
379 
383  {
384  FBX_ASSERT(mCopyAllocatorFct != NULL);
385  SetTime(pFKey.GetTime());
386  mImpl = mCopyAllocatorFct(pFKey.GetImpl());
387  }
388 
392  {
393  FBX_ASSERT(mDeallocatorFct != NULL);
394  (*mDeallocatorFct)(mImpl);
395  }
396 
400  {
401  FBX_ASSERT(mImpl);
402  if (mImpl)
403  {
404  *mImpl = *(pFKey.GetImpl());
405  }
406  SetTime(pFKey.GetTime());
407  return *this;
408  }
409 
413  FbxTime GetTime() const
414  {
416  }
417 
421  void SetTime(const FbxTime& pTime)
422  {
424  }
425 
430  void Set(FbxTime pTime, float pValue)
431  {
433  mImpl->Set(pTime, pValue);
434  }
435 
447  void SetTCB(FbxTime pTime, float pValue, float pData0 = 0.0f, float pData1 = 0.0f, float pData2 = 0.0f)
448  {
450  mImpl->SetTCB(pTime, pValue, pData0, pData1, pData2);
451  }
452 
456  float GetValue() const
457  {
458  return mImpl->GetValue();
459  }
460 
464  void SetValue(float pValue)
465  {
466  mImpl->SetValue(pValue);
467  }
468 
469 
474  {
475  return mImpl->GetInterpolation();
476  }
477 
482  {
483  mImpl->SetInterpolation(pInterpolation);
484  }
485 
492  FbxAnimCurveDef::ETangentMode GetTangentMode(bool pIncludeOverrides = false)
493  {
494  return mImpl->GetTangentMode(pIncludeOverrides);
495  }
496 
501  {
502  mImpl->SetTangentMode(pTangentMode);
503  }
504 
510  {
511  return mImpl->GetTangentWeightMode();
512  }
513 
548  {
549  mImpl->SetTangentWeightMode(pTangentWeightMode, pMask);
550  }
551 
563  {
564  mImpl->SetTangentWeightAndAdjustTangent(pIndex, pWeight);
565  }
566 
572  {
573  return mImpl->GetTangentVelocityMode();
574  }
575 
586  {
587  mImpl->SetTangentVelocityMode(pTangentVelocityMode, pMask);
588  }
589 
596  {
597  return mImpl->GetConstantMode();
598  }
599 
605  {
606  mImpl->SetConstantMode(pMode);
607  }
608 
624  {
625  return mImpl->GetDataFloat(pIndex);
626  }
627 
639  void SetDataFloat(FbxAnimCurveDef::EDataIndex pIndex, float pValue)
640  {
641  mImpl->SetDataFloat(pIndex, pValue);
642  }
643 
649  {
650  mImpl->SetTangentVisibility(pVisibility);
651  }
652 
658  {
659  return mImpl->GetTangentVisibility();
660  }
661 
668  void SetBreak(bool pVal)
669  {
670  mImpl->SetBreak(pVal);
671  }
672 
679  bool GetBreak() const
680  {
681  return mImpl->GetBreak();
682  }
683 
688  {
689  return mImpl;
690  }
691 
695  static void SetAllocatorFct(FbxAnimCurveKey_Impl* (*pAllocatorFct)());
696 
700  static void SetCopyAllocatorFct(FbxAnimCurveKey_Impl* (*pCopyAllocatorFct)(FbxAnimCurveKey_Impl*));
701 
705  static void SetDeallocatorFct(void (*pDeallocatorFct)(FbxAnimCurveKey_Impl*));
706 
707 private:
708  static FbxAnimCurveKey_Impl* (*mAllocatorFct)();
709  static FbxAnimCurveKey_Impl* (*mCopyAllocatorFct)(FbxAnimCurveKey_Impl*);
710  static void (*mDeallocatorFct)(FbxAnimCurveKey_Impl*);
711  FbxAnimCurveKey_Impl* mImpl;
712 };
713 
714 class FbxScene;
715 
780 {
782 
783 public:
794  static FbxAnimCurve* Create(FbxScene* pContainer, const char* pName);
796 
805  virtual void ResizeKeyBuffer(int pKeyCount) = 0;
806 
810  virtual void KeyModifyBegin () = 0;
811 
815  virtual void KeyModifyEnd () = 0;
816 
818  virtual void KeyClear () = 0;
819 
823  virtual int KeyGetCount () const = 0;
824 
842  virtual int KeyAdd (FbxTime pTime, FbxAnimCurveKeyBase& pKey, int* pLast = NULL) = 0;
843 
858  virtual int KeyAdd (FbxTime pTime, int* pLast = NULL) = 0;
859 
868  virtual bool KeySet(int pIndex, FbxAnimCurveKeyBase& pKey) = 0;
869 
874  virtual bool KeyRemove(int pIndex) = 0;
875 
881  virtual bool KeyRemove(int pStartIndex, int pEndIndex) = 0;
882 
898  virtual int KeyInsert ( FbxTime pTime, int* pLast = NULL ) = 0;
899 
913  virtual double KeyFind (FbxTime pTime, int* pLast = NULL) = 0;
914 
919  virtual bool KeyScaleValue (float pMultValue) = 0;
920 
925  virtual bool KeyScaleValueAndTangent (float pMultValue) = 0;
927 
950  virtual void KeySet(int pKeyIndex,FbxTime pTime, float pValue, FbxAnimCurveDef::EInterpolationType pInterpolation = FbxAnimCurveDef::eInterpolationCubic, FbxAnimCurveDef::ETangentMode pTangentMode = FbxAnimCurveDef::eTangentAuto, float pData0 = 0.0,float pData1 = 0.0,FbxAnimCurveDef::EWeightedMode pTangentWeightMode = FbxAnimCurveDef::eWeightedNone, float pWeight0 = FbxAnimCurveDef::sDEFAULT_WEIGHT,float pWeight1 = FbxAnimCurveDef::sDEFAULT_WEIGHT,float pVelocity0 = FbxAnimCurveDef::sDEFAULT_VELOCITY,float pVelocity1 = FbxAnimCurveDef::sDEFAULT_VELOCITY) = 0;
951 
964  virtual void KeySetTCB(int pKeyIndex,FbxTime pTime, float pValue, float pData0 = 0.0f, float pData1 = 0.0f, float pData2 = 0.0f) = 0;
965 
970  virtual FbxAnimCurveDef::EInterpolationType KeyGetInterpolation(int pKeyIndex) const = 0;
971 
976  virtual void KeySetInterpolation(int pKeyIndex, FbxAnimCurveDef::EInterpolationType pInterpolation) = 0;
977 
984  virtual FbxAnimCurveDef::EConstantMode KeyGetConstantMode(int pKeyIndex) const = 0;
985 
993  virtual FbxAnimCurveDef::ETangentMode KeyGetTangentMode(int pKeyIndex, bool pIncludeOverrides = false ) const = 0;
994 
1000  virtual void KeySetConstantMode(int pKeyIndex, FbxAnimCurveDef::EConstantMode pMode) = 0;
1001 
1007  virtual void KeySetTangentMode(int pKeyIndex, FbxAnimCurveDef::ETangentMode pTangent) = 0;
1008 
1015  virtual FbxAnimCurveKey KeyGet(int pIndex) const = 0;
1016 
1021  virtual float KeyGetValue(int pKeyIndex) const = 0;
1022 
1027  virtual void KeySetValue(int pKeyIndex, float pValue) = 0;
1028 
1033  virtual void KeyIncValue(int pKeyIndex, float pValue) = 0;
1034 
1040  virtual void KeyMultValue(int pKeyIndex, float pValue) = 0;
1041 
1048  virtual void KeyMultTangent(int pKeyIndex, float pValue) = 0;
1049 
1054  virtual FbxTime KeyGetTime(int pKeyIndex) const = 0;
1055 
1061  virtual void KeySetTime(int pKeyIndex, FbxTime pTime) = 0;
1062 
1069  virtual void KeySetBreak(int pKeyIndex, bool pVal) = 0;
1070 
1077  virtual bool KeyGetBreak(int pKeyIndex) const = 0;
1079 
1090  virtual float KeyGetLeftDerivative(int pIndex) = 0;
1091 
1101  virtual void KeySetLeftDerivative(int pIndex, float pValue) = 0;
1102 
1110  virtual float KeyGetLeftAuto(int pIndex, bool pApplyOvershootProtection = false) = 0;
1111 
1118  virtual FbxAnimCurveTangentInfo KeyGetLeftDerivativeInfo(int pIndex) = 0;
1119 
1131  virtual void KeySetLeftDerivativeInfo(int pIndex, const FbxAnimCurveTangentInfo& pValue, bool pForceDerivative = false) = 0;
1132 
1139  virtual float KeyGetRightDerivative(int pIndex) = 0;
1140 
1150  virtual void KeySetRightDerivative(int pIndex, float pValue) = 0;
1151 
1159  virtual float KeyGetRightAuto(int pIndex, bool pApplyOvershootProtection = false) = 0;
1160 
1167  virtual FbxAnimCurveTangentInfo KeyGetRightDerivativeInfo(int pIndex) = 0;
1168 
1180  virtual void KeySetRightDerivativeInfo(int pIndex, const FbxAnimCurveTangentInfo& pValue, bool pForceDerivative = false) = 0;
1181 
1188  virtual bool KeyIsLeftTangentWeighted(int pIndex) const = 0;
1189 
1196  virtual bool KeyIsRightTangentWeighted(int pIndex) const = 0;
1197 
1204  virtual float KeyGetLeftTangentWeight(int pIndex) const = 0;
1205 
1212  virtual float KeyGetRightTangentWeight(int pIndex) const = 0;
1213 
1225  virtual void KeySetLeftTangentWeight( int pIndex, float pWeight, bool pAdjustTan = false ) = 0;
1226 
1238  virtual void KeySetRightTangentWeight( int pIndex, float pWeight, bool pAdjustTan = false ) = 0;
1239 
1246  virtual float KeyGetLeftTangentVelocity( int pIndex) const = 0;
1247 
1254  virtual float KeyGetRightTangentVelocity( int pIndex) const = 0;
1256 
1273  virtual float Evaluate (FbxTime pTime, int* pLast = NULL) = 0;
1274 
1286  virtual float EvaluateIndex( double pIndex) = 0;
1287 
1297  virtual float EvaluateLeftDerivative (FbxTime pTime, int* pLast = NULL) = 0;
1298 
1308  virtual float EvaluateRightDerivative (FbxTime pTime, int* pLast = NULL) = 0;
1310 
1321  virtual bool GetTimeInterval(FbxTimeSpan& pTimeInterval) = 0;
1322 
1329  virtual void CopyFrom(FbxAnimCurve& pSource, bool pWithKeys = true) = 0;
1330 
1336  virtual float GetValue(int pCurveNodeIndex=0) = 0;
1337 
1343  virtual void SetValue(float pValue, int pCurveNodeIndex=0) = 0;
1345 
1346 /*****************************************************************************************************************************
1347 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1348 *****************************************************************************************************************************/
1349 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1350  virtual KFCurve* GetKFCurve() = 0;
1351  virtual bool Store(FbxIO* pFileObject, bool pLegacyVersion=false) = 0;
1352  virtual bool Retrieve(FbxIO* pFileObject) = 0;
1353  virtual void ExtrapolationSyncCallback() = 0;
1354 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1355 };
1356 
1357 #include <fbxsdk/fbxsdk_nsend.h>
1358 
1359 #endif /* _FBXSDK_SCENE_ANIMATION_CURVE_H_ */
void SetTangentWeightAndAdjustTangent(FbxAnimCurveDef::EDataIndex pIndex, double pWeight)
Adjust the actual tangent of the key so that the tangent control point (tangent extremity) stays clos...
Definition: fbxanimcurve.h:562
FbxAnimCurveDef::ETangentMode GetTangentMode(bool pIncludeOverrides=false)
Get key's tangent mode.
Definition: fbxanimcurve.h:492
FBX SDK environment definition.
EConstantMode
Key constant mode.
Definition: fbxanimcurve.h:66
FbxAnimCurveDef::EInterpolationType GetInterpolation()
Get key's interpolation type.
Definition: fbxanimcurve.h:473
Both left and right tangents have velocity.
Definition: fbxanimcurve.h:78
static const float sDEFAULT_WEIGHT
Definition: fbxanimcurve.h:29
This is the base class interface for the FBX animation curve keys.
bool GetBreak() const
Get if the tangent has a break.
Definition: fbxanimcurve.h:679
virtual int KeyGetCount() const =0
Get the number of keys.
This is the base class for implementing animation curves.
#define NULL
Definition: fbxarch.h:210
void SetConstantMode(FbxAnimCurveDef::EConstantMode pMode)
Set key's constant mode.
Definition: fbxanimcurve.h:604
void SetTangentMode(FbxAnimCurveDef::ETangentMode pTangentMode)
Set tangent mode.
Definition: fbxanimcurve.h:500
virtual float Evaluate(FbxTime pTime, int *pLast=((void *) 0))=0
Evaluate curve value at a given time.
FbxAnimCurveDef::EWeightedMode GetTangentWeightMode() const
Get key's tangent weight mode.
Definition: fbxanimcurve.h:509
virtual ~FbxAnimCurveKey_Impl()
Destructor.
Definition: fbxanimcurve.h:139
static const float sMIN_WEIGHT
Definition: fbxanimcurve.h:30
virtual FbxTime GetTime() const
Get time value.
EInterpolationType
Key interpolation type.
Definition: fbxanimcurve.h:49
Both left and right tangents are weighted.
Definition: fbxanimcurve.h:62
FbxAnimCurveKey(FbxTime pTime)
Constructor with time.
Definition: fbxanimcurve.h:362
Auto key (spline cardinal).
Definition: fbxanimcurve.h:37
FbxAnimCurveKey & operator=(const FbxAnimCurveKey &pFKey)
Assignment operator.
Definition: fbxanimcurve.h:399
Cubic progression to next key.
Definition: fbxanimcurve.h:53
FbxAnimCurveDef::ETangentVisibility GetTangentVisibility() const
Return tangent visibility mode.
Definition: fbxanimcurve.h:657
EDataIndex
FbxAnimCurveKey data indices for cubic interpolation tangent information.
Definition: fbxanimcurve.h:91
ETangentMode
Key tangent mode for cubic interpolation.
Definition: fbxanimcurve.h:35
virtual bool KeyRemove(int pIndex)=0
Remove key at given index.
void SetTangentVelocityMode(FbxAnimCurveDef::EVelocityMode pTangentVelocityMode, FbxAnimCurveDef::EVelocityMode pMask=FbxAnimCurveDef::eVelocityAll)
Set key's tangent velocity mode as double value (cubic interpolation, non TCB tangent mode)...
Definition: fbxanimcurve.h:585
static const float sMAX_WEIGHT
Definition: fbxanimcurve.h:31
void SetTangentWeightMode(FbxAnimCurveDef::EWeightedMode pTangentWeightMode, FbxAnimCurveDef::EWeightedMode pMask=FbxAnimCurveDef::eWeightedAll)
Set key's tangent weight mode as double value (cubic interpolation, non TCB tangent mode)...
Definition: fbxanimcurve.h:547
FbxAnimCurveKey()
Constructor with no argument.
Definition: fbxanimcurve.h:353
void SetDataFloat(FbxAnimCurveDef::EDataIndex pIndex, float pValue)
Set the value of specified data of the key.
Definition: fbxanimcurve.h:639
static FbxAnimCurveBase * Create(FbxManager *pManager, const char *pName)
Class to encapsulate time units.
Definition: fbxtime.h:44
This class contains the description of a 3D scene.
Definition: fbxscene.h:61
virtual void KeySetTime(int pKeyIndex, FbxTime pTime)=0
Set key time.
void SetTCB(FbxTime pTime, float pValue, float pData0=0.0f, float pData1=0.0f, float pData2=0.0f)
Set a key with cubic interpolation, TCB tangent mode.
Definition: fbxanimcurve.h:447
EWeightedMode
Weighted mode.
Definition: fbxanimcurve.h:57
#define FBXSDK_ABSTRACT_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new abstract class derived from FbxObject.
Definition: fbxobject.h:68
FbxAnimCurveDef::EConstantMode GetConstantMode() const
Get key constant mode.
Definition: fbxanimcurve.h:595
void SetValue(float pValue)
Set the key value.
Definition: fbxanimcurve.h:464
virtual bool GetTimeInterval(FbxTimeSpan &pTimeInterval)
Find out start and end time of the animation curve.
float GetDataFloat(FbxAnimCurveDef::EDataIndex pIndex) const
Get the value of specified data of the key.
Definition: fbxanimcurve.h:623
Tangent has default weights of 0.333; we define this state as not weighted.
Definition: fbxanimcurve.h:59
void SetTangentVisibility(FbxAnimCurveDef::ETangentVisibility pVisibility)
Set tangent visibility mode.
Definition: fbxanimcurve.h:648
FbxTime GetTime() const
Get time value.
Definition: fbxanimcurve.h:413
virtual float EvaluateIndex(double pIndex)=0
Evaluate curve value at the given key index.
virtual FbxTime KeyGetTime(int) const
Get key time.
FbxIO represents an FBX file.
Definition: fbxio.h:324
An animation curve, defined by a collection of keys (FbxAnimCurveKey), and indicating how a value cha...
Definition: fbxanimcurve.h:779
This is the interface for the FBX animation curve keys.
Definition: fbxanimcurve.h:348
void Set(FbxTime pTime, float pValue)
Set time and value of key.
Definition: fbxanimcurve.h:430
virtual int KeyAdd(FbxTime pTime, FbxAnimCurveKeyBase &pKey, int *pLast=((void *) 0))=0
Add a key at given time.
float GetValue() const
Get the key value.
Definition: fbxanimcurve.h:456
void SetBreak(bool pVal)
Turn on or turn off the tangent break.
Definition: fbxanimcurve.h:668
#define FBXSDK_DLL
Definition: fbxarch.h:173
void SetInterpolation(FbxAnimCurveDef::EInterpolationType pInterpolation)
Set key's interpolation type.
Definition: fbxanimcurve.h:481
virtual void KeyClear()=0
Remove all the keys and free buffer memory.
Definitions used for the FBX animation curves and keys.
Definition: fbxanimcurve.h:26
FbxAnimCurveKey_Impl * GetImpl() const
Get key implementation.
Definition: fbxanimcurve.h:687
Class to encapsulate time intervals.
Definition: fbxtime.h:508
virtual void SetTime(const FbxTime &pTime)
Set time value.
ETangentVisibility
Tangent visibility.
Definition: fbxanimcurve.h:82
This is the interface for implementation of animation key objects.
Definition: fbxanimcurve.h:134
~FbxAnimCurveKey()
Destructor.
Definition: fbxanimcurve.h:391
EVelocityMode
Velocity mode. Velocity settings speed up or slow down animation on either side of a key without chan...
Definition: fbxanimcurve.h:73
virtual bool KeySet(int pIndex, FbxAnimCurveKeyBase &pKey)=0
Set key at given index.
void SetTime(const FbxTime &pTime)
Set time value.
Definition: fbxanimcurve.h:421
FbxAnimCurveKey(FbxAnimCurveKey const &pFKey)
Copy constructor.
Definition: fbxanimcurve.h:382
static const float sDEFAULT_VELOCITY
Definition: fbxanimcurve.h:32
FbxAnimCurveDef::EVelocityMode GetTangentVelocityMode() const
Get key's tangent velocity mode.
Definition: fbxanimcurve.h:571
FbxAnimCurveKey(FbxTime pTime, float pVal)
Constructor with time and value.
Definition: fbxanimcurve.h:373