FBX C++ API Reference
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FbxAnimCurveKey_Impl Class Referenceabstract

#include <fbxanimcurve.h>

Class Description

This is the interface for implementation of animation key objects.

Remarks
Users should not use this class directly, but always use FbxAnimCurveKey. A FbxAnimCurveKey has a FbxAnimCurveKey_Impl. But FbxAnimCurveKey_Impl is just an implementation interface,

Definition at line 134 of file fbxanimcurve.h.

Public Member Functions

virtual ~FbxAnimCurveKey_Impl ()
 Destructor. More...
 
virtual FbxAnimCurveKey_Imploperator= (const FbxAnimCurveKey_Impl &pFKey)=0
 Assignment operator. More...
 
virtual void Set (FbxTime pTime, float pValue)=0
 Set time and value of key. More...
 
virtual void SetTCB (FbxTime pTime, float pValue, float pData0=0.0f, float pData1=0.0f, float pData2=0.0f)=0
 Set a key with cubic interpolation, TCB tangent mode. More...
 
virtual float GetValue () const =0
 Get the key value. More...
 
virtual void SetValue (float pValue)=0
 Set the key value. More...
 
virtual FbxAnimCurveDef::EInterpolationType GetInterpolation () const =0
 Get key's interpolation type. More...
 
virtual void SetInterpolation (FbxAnimCurveDef::EInterpolationType pInterpolation)=0
 Set key's interpolation type. More...
 
virtual FbxAnimCurveDef::ETangentMode GetTangentMode (bool pIncludeOverrides=false) const =0
 Get key's tangent mode. More...
 
virtual void SetTangentMode (FbxAnimCurveDef::ETangentMode pTangentMode)=0
 Set tangent mode. More...
 
virtual FbxAnimCurveDef::EWeightedMode GetTangentWeightMode () const =0
 Get key's tangent weight mode. More...
 
virtual void SetTangentWeightMode (FbxAnimCurveDef::EWeightedMode pTangentWeightMode, FbxAnimCurveDef::EWeightedMode pMask=FbxAnimCurveDef::eWeightedAll)=0
 Set key's tangent weight mode as double value (cubic interpolation, non TCB tangent mode). More...
 
virtual void SetTangentWeightAndAdjustTangent (FbxAnimCurveDef::EDataIndex pIndex, double pWeight)=0
 Adjust the actual tangent of the key so that the tangent control point (tangent extremity) stays closer to where it should be. More...
 
virtual FbxAnimCurveDef::EVelocityMode GetTangentVelocityMode () const =0
 Get key's tangent velocity mode. More...
 
virtual void SetTangentVelocityMode (FbxAnimCurveDef::EVelocityMode pTangentVelocityMode, FbxAnimCurveDef::EVelocityMode pMask=FbxAnimCurveDef::eVelocityAll)=0
 Set key's tangent velocity mode as double value (cubic interpolation, non TCB tangent mode). More...
 
virtual FbxAnimCurveDef::EConstantMode GetConstantMode () const =0
 Get key constant mode. More...
 
virtual void SetConstantMode (FbxAnimCurveDef::EConstantMode pMode)=0
 Set key's constant mode. More...
 
virtual float GetDataFloat (FbxAnimCurveDef::EDataIndex pIndex) const =0
 Get the value of specified data of the key. More...
 
virtual void SetDataFloat (FbxAnimCurveDef::EDataIndex pIndex, float pValue)=0
 Set the value of specified data of the key. More...
 
virtual void SetTangentVisibility (FbxAnimCurveDef::ETangentVisibility pVisibility)=0
 Set tangent visibility mode. More...
 
virtual FbxAnimCurveDef::ETangentVisibility GetTangentVisibility () const =0
 Return tangent visibility mode. More...
 
virtual void SetBreak (bool pVal)=0
 Turn on or turn off the tangent break. More...
 
virtual bool GetBreak () const =0
 Get if the tangent has a break. More...
 

Constructor & Destructor Documentation

◆ ~FbxAnimCurveKey_Impl()

virtual ~FbxAnimCurveKey_Impl ( )
inlinevirtual

Destructor.

Definition at line 139 of file fbxanimcurve.h.

139 {};

Member Function Documentation

◆ operator=()

virtual FbxAnimCurveKey_Impl& operator= ( const FbxAnimCurveKey_Impl pFKey)
pure virtual

Assignment operator.

◆ Set()

virtual void Set ( FbxTime  pTime,
float  pValue 
)
pure virtual

Set time and value of key.

Parameters
pTimeNew time of this key.
pValueNew value of this key.

◆ SetTCB()

virtual void SetTCB ( FbxTime  pTime,
float  pValue,
float  pData0 = 0.0f,
float  pData1 = 0.0f,
float  pData2 = 0.0f 
)
pure virtual

Set a key with cubic interpolation, TCB tangent mode.

The key is modified according to the other parameters. The TCB mode controls the tension, continuity, and bias of the curve.

Parameters
pTimeKey time.
pValueKey value.
pData0Tension. Controls the amount of curvature in the animation curve. The higher the tension is, the more linear the curve looks. When the tension is low, the curve looks rounder or wider.
pData1Continuity. Controls the smoothness or singularity of the curve on the key.
pData2Bias. Controls if the effect of tension and continuity affect the curve before or after the key.

◆ GetValue()

virtual float GetValue ( ) const
pure virtual

Get the key value.

Returns
The value of the key.

◆ SetValue()

virtual void SetValue ( float  pValue)
pure virtual

Set the key value.

Parameters
pValueThe value to set.

◆ GetInterpolation()

virtual FbxAnimCurveDef::EInterpolationType GetInterpolation ( ) const
pure virtual

Get key's interpolation type.

Returns
Interpolation type of the queried key.

◆ SetInterpolation()

virtual void SetInterpolation ( FbxAnimCurveDef::EInterpolationType  pInterpolation)
pure virtual

Set key's interpolation type.

Parameters
pInterpolationInterpolation type of the key.

◆ GetTangentMode()

virtual FbxAnimCurveDef::ETangentMode GetTangentMode ( bool  pIncludeOverrides = false) const
pure virtual

Get key's tangent mode.

Parameters
pIncludeOverridesInclude override flags: Break, Clamp, Time-Independent.
Returns
Tangent mode of the key.
Remarks
This method is meaningful for cubic interpolation only. Using this method for non cubic interpolated key will return unpredictable value.

◆ SetTangentMode()

virtual void SetTangentMode ( FbxAnimCurveDef::ETangentMode  pTangentMode)
pure virtual

Set tangent mode.

Parameters
pTangentModeTangent mode to set.

◆ GetTangentWeightMode()

virtual FbxAnimCurveDef::EWeightedMode GetTangentWeightMode ( ) const
pure virtual

Get key's tangent weight mode.

Returns
Tangent weight mode of the key.
Remarks
This method is meaningful for cubic interpolation only.

◆ SetTangentWeightMode()

virtual void SetTangentWeightMode ( FbxAnimCurveDef::EWeightedMode  pTangentWeightMode,
FbxAnimCurveDef::EWeightedMode  pMask = FbxAnimCurveDef::eWeightedAll 
)
pure virtual

Set key's tangent weight mode as double value (cubic interpolation, non TCB tangent mode).

Parameters
pTangentWeightModeWeight mode.
pMaskUsed to select the affected tangents.
Remarks
This method is meaningful for cubic interpolation only. The pMask will be used to cancel out the current tangent weight mode first, and then be used to define which tangent to select to affect.

Sample01:

pMask is eWeightedRight, it will first be used to cancel out the current tangent weight mode eWeightedNextLeft, since they are not the same, it fails to cancel it out. Then the mask eWeightedRight will be used to define which tangent should be affected, since it is the same as pTangentWeightMode (eWeightedRight), so the eWeightedRight should be affected. In total, after above calls, both eWeightedNextLeft and eWeightedRight of this key are affected, so lAnimCurveKey->GetTangentWeightMode() will be FbxAnimCurveDef::eWeightedAll.

Sample02:

pMask is eWeightedNextLeft, it will first be used to cancel out the current tangent weight mode eWeightedAll, it will cancel out affect on eWeightedNextLeft, but leave affect on eWeightedRight. Then the mask eWeightedNextLeft will be used to define which tangent should be affected, since it is not the same as pTangentWeightMode (eWeightedRight), so the pMask won't affect anything in this step. In total, after above calls, only eWeightedRight of this key is still affected, so lAnimCurveKey->GetTangentWeightMode() will be FbxAnimCurveDef::eWeightedRight.

◆ SetTangentWeightAndAdjustTangent()

virtual void SetTangentWeightAndAdjustTangent ( FbxAnimCurveDef::EDataIndex  pIndex,
double  pWeight 
)
pure virtual

Adjust the actual tangent of the key so that the tangent control point (tangent extremity) stays closer to where it should be.

This is required because the weight value gets imprecise when it is small (it is stored as a fixed point value). This method must be called when setting the weight coming from a source where the precision is the same. It must be called after the tangent value has been set.

Remarks
Do not use this call repetitively (from an interactive editor for example) because this function will create imprecision on the tangent value.
Parameters
pIndexFbxAnimCurveDef::EDataIndex
pWeightNew tangent weight value.

◆ GetTangentVelocityMode()

virtual FbxAnimCurveDef::EVelocityMode GetTangentVelocityMode ( ) const
pure virtual

Get key's tangent velocity mode.

Returns
Tangent velocity mode of the key.
Remarks
This method is meaningful for cubic interpolation only.

◆ SetTangentVelocityMode()

virtual void SetTangentVelocityMode ( FbxAnimCurveDef::EVelocityMode  pTangentVelocityMode,
FbxAnimCurveDef::EVelocityMode  pMask = FbxAnimCurveDef::eVelocityAll 
)
pure virtual

Set key's tangent velocity mode as double value (cubic interpolation, non TCB tangent mode).

Parameters
pTangentVelocityModeVelocity mode.
pMaskUsed to select the affected tangents
Remarks
This method is meaningful for cubic interpolation only. The pMask will be used to cancel out the current tangent velocity mode first, and then be used to define which tangent to select to affect.
See also
The documentation of SetTangentWeightMode for more details and samples about how the pMask works.

◆ GetConstantMode()

virtual FbxAnimCurveDef::EConstantMode GetConstantMode ( ) const
pure virtual

Get key constant mode.

Returns
Key constant mode.
Remarks
This method is meaningful for constant interpolation only. Using this method for non constant interpolated key will return unpredicted value.

◆ SetConstantMode()

virtual void SetConstantMode ( FbxAnimCurveDef::EConstantMode  pMode)
pure virtual

Set key's constant mode.

Parameters
pModeConstant mode to set.
Remarks
This method is meaningful for constant interpolation only.

◆ GetDataFloat()

virtual float GetDataFloat ( FbxAnimCurveDef::EDataIndex  pIndex) const
pure virtual

Get the value of specified data of the key.

Parameters
pIndexData index to specify which data to get value, the index is dependent on the key tangent mode.
Returns
The value of the specified data.

◆ SetDataFloat()

virtual void SetDataFloat ( FbxAnimCurveDef::EDataIndex  pIndex,
float  pValue 
)
pure virtual

Set the value of specified data of the key.

Parameters
pIndexData index to specify which data to get value, the index is dependent on the key tangent mode.
pValueThe data value to set.

◆ SetTangentVisibility()

virtual void SetTangentVisibility ( FbxAnimCurveDef::ETangentVisibility  pVisibility)
pure virtual

Set tangent visibility mode.

This would indicate what part of the tangent is visible in a graphical interface.

Parameters
pVisibilityTangent visibility mode.
Remarks
This method is meaningful for cubic interpolation only.

◆ GetTangentVisibility()

virtual FbxAnimCurveDef::ETangentVisibility GetTangentVisibility ( ) const
pure virtual

Return tangent visibility mode.

Returns
Tangent visibility mode.
Remarks
This method is meaningful for cubic interpolation only.

◆ SetBreak()

virtual void SetBreak ( bool  pVal)
pure virtual

Turn on or turn off the tangent break.

When this flag is on (FbxAnimCurveDef::eTANGEAT_BREAK will be set), the key's left and right slopes are independent. When this flag is off, the key's left and right slope are equal.

Parameters
pValBreak flag (true or false).
Remarks
This method is meaningful for User (FbxAnimCurveDef::eTangentUser) and Auto (FbxAnimCurveDef::eTangentAuto) tangent modes only.

◆ GetBreak()

virtual bool GetBreak ( ) const
pure virtual

Get if the tangent has a break.

When this flag is set (FbxAnimCurveDef::eTANGEAT_BREAK), the key's left and right slopes are independent. When this flag is off, the key's left and right slope are equal.

Returns
Break flag (true or false).
Remarks
This method is meaningful for User (FbxAnimCurveDef::eTangentUser) and Auto (FbxAnimCurveDef::eTangentAuto) tangent modes only.

The documentation for this class was generated from the following file: