Definition in file kfcurveglobal.h.
#include <fbxfilesdk/fbxfilesdk_def.h>
#include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
#include <fbxfilesdk/components/kbaselib/klib/ktime.h>
#include <fbxfilesdk/components/kfcurve/kfcurve.h>
#include <fbxfilesdk/fbxfilesdk_nsbegin.h>
#include <fbxfilesdk/fbxfilesdk_nsend.h>


Go to the source code of this file.
Classes |
|
| class | KSmartPlotOptions |
| KSmartPlotOptions. More... |
|
| class | KMergeLayerOptions |
| KMergeLayerOptions. More... |
|
Defines |
|
| #define | KFCURVE_INTEPOLATION_INFINITE 1000 |
| #define | KFCURVE_OVERSHOOT_INTERPOLATION 500.0 |
Enumerations |
|
| enum | { eKFCURVE_PLOT_SourceCurvesDestroy = 1<<1, eKFCURVE_PLOT_SourceCurvesZeroDuringPlotTime = 1<<2, eKFCURVE_PLOT_DestinationCurveMergeWithResult = 1<<3, eKFCURVE_PLOT_DestinationCurveReplaceByResult = 1<<4, eKFCURVE_PLOT_ForCache = 1<<5 } |
| enum | { KFCurveApplyNone = 0, KFCurveApplyGimbleKiller, KFCurveApplyUnroll } |
Functions |
|
| KFBX_FORWARD_HI (KFCurve) | |
| KFBX_FORWARD_HI (KFCurveNode) | |
| KFBX_DLL void | KFCurve_SetTWSet (KSet *pSet) |
| KFBX_DLL HKFCurveNode | KFCurve_FindTWFromNickNumber (int pNickNumber) |
| KFBX_DLL bool | KFCurve_FindNickNumberFromTW (int &pNickNumber, HKFCurveNode pTWNode) |
| KFBX_DLL void | KFCurve_PlotInLayers (HKFCurveNode pParentNode, KArrayTemplate< int > *pSourceLayers, int pDestLayer, kUInt pOptions, KTime pStart, KTime pStop, KTime pPlotPeriod, HKFCurveNode pDestinationNode, HKFCurveNode pTotalNode, bool pUseTimeWarp, HKSmartPlotOptions pSmartPlotOptions=NULL) |
| Plots inside a curve node. |
|
| KFBX_DLL bool | AxisAlignmentInEulerAngle (double pAB[3], double pA[3], double pB[3], double pAngles[3]) |
| Calculate the euler rotation required to
align axis pAB-pA on pAB-pB. |
|
| KFBX_DLL KTime | KFCURVE_GetPlotPeriod () |
| KFBX_DLL void | KFCURVE_SetPlotPeriod (KTime pPlotPeriod) |
| KFBX_DLL bool | KFCURVE_GetPlotOnFrame () |
| KFBX_DLL void | KFCURVE_SetPlotOnFrame (bool pPlotOnFrame) |
| KFBX_DLL int | KFCURVE_GetRotationFilterToApply () |
| KFBX_DLL void | KFCURVE_SetRotationFilterToApply (int pRotationFilterToApply) |
| KFBX_DLL void | KFCURVE_ApplyRotationFilter (HKFCurveNode pCurveNode, KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE) |
| KFBX_DLL double | KFCURVE_GetRotationFilterUnrollQuality () |
| KFBX_DLL void | KFCURVE_SetRotationFilterUnrollQuality (double pQuality) |
| KFBX_DLL bool | KFCURVE_GetRotationFilterUnrollTestForPath () |
| KFBX_DLL void | KFCURVE_SetRotationFilterUnrollTestForPath (bool pTestForPath) |
| KFBX_DLL double | KFCURVE_GetButterworthFilterInternalRate () |
| KFBX_DLL void | KFCURVE_SetButterworthFilterInternalRate (double pButterworthFilterInternalRate) |
| KFBX_DLL bool | KFCURVE_GetUseConstantKeyReducer () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducer (bool pUseConstantKeyReducer) |
| KFBX_DLL void | KFCURVE_ApplyConstantKeyReducer (HKFCurveNode pCurveNode, KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE) |
| KFBX_DLL bool | KFCURVE_GetConstantKeyReducerKeepOneKey () |
| KFBX_DLL void | KFCURVE_SetConstantKeyReducerKeepOneKey (bool pConstantKeyReducerKeepOneKey) |
| KFBX_DLL bool | KFCURVE_GetUseConstantKeyReducerOnDevices () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducerOnDevices (bool pUseConstantKeyReducerOnDevices) |
| KFBX_DLL double | KFCURVE_GetUseConstantKeyReducerTranslationThreshold () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducerTranslationThreshold (double pConstantKeyReducerTranslationThreshold) |
| KFBX_DLL double | KFCURVE_GetUseConstantKeyReducerRotationThreshold () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducerRotationThreshold (double pConstantKeyReducerRotationThreshold) |
| KFBX_DLL double | KFCURVE_GetUseConstantKeyReducerScalingThreshold () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducerScalingThreshold (double pConstantKeyReducerScalingThreshold) |
| KFBX_DLL double | KFCURVE_GetUseConstantKeyReducerDefaultThreshold () |
| KFBX_DLL void | KFCURVE_SetUseConstantKeyReducerDefaultThreshold (double pConstantKeyReducerDefaultThreshold) |
| KFBX_DLL bool | KFCURVE_GetPlotTranslationOnRootOnly () |
| KFBX_DLL void | KFCURVE_SetPlotTranslationOnRootOnly (bool pPlotTranslationOnRootOnly) |
| KFBX_DLL bool | KFCURVE_GetPreciseTimeDiscontinuities () |
| KFBX_DLL void | KFCURVE_SetPreciseTimeDiscontinuities (bool pPreciseTimeDiscontinuities) |
| KFBX_DLL bool | KFCURVE_GetTCB4051EvalMode () |
| KFBX_DLL void | KFCURVE_SetTCB4051EvalMode (bool pTCB4051EvalMode) |
| KFBX_DLL void | KFCURVE_ComputeAutoFromBezier (double &pLeftParam, double &pRightParam, double &pLeftTan, double &pRightTan, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeBezierFromAuto (double &pLeftTan, double &pRightTan, double &pLeftParam, double &pRightParam, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeLeftAutoFromBezier (double &pLeftParam, double &pLeftTan, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeLeftBezierFromAuto (double &pLeftTan, double &pLeftParam, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeRightAutoFromBezier (double &pRightParam, double &pRightTan, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeRightBezierFromAuto (double &pRightTan, double &pRightParam, double &pToLeftKey, double &pToRightKey) |
| KFBX_DLL void | KFCURVE_ComputeAutoFromBezierForKey (double &pLeftParam, double &pRightParam, double &pLeftTan, double &pRightTan, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeBezierFromAutoForKey (double &pLeftTan, double &pRightTan, double &pLeftParam, double &pRightParam, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeLeftAutoFromBezierForKey (double &pLeftParam, double &pLeftTan, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeLeftBezierFromAutoForKey (double &pLeftTan, double &pLeftParam, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeRightAutoFromBezierForKey (double &pRightParam, double &pRightTan, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeRightBezierFromAutoForKey (double &pRightTan, double &pRightParam, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_ComputeToLeftAndToRight (double &pToLeft, double &pToRight, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_BreakTangents (HKFCurveNode pFCurveNode, HKFCurveNode pReferenceFCurveNode, KTime pEpsilonTime, double pTangentThreshold) |
| Compare the FCurve with the reference FCurve
and break the tangents when necessary so that both FCurves match.
|
|
| KFBX_DLL void | KFCURVE_ComputeTCBFromBezierForKey (double &pT, double &pC, double &pB, double pLTan, double pRTan, HKFCurve pCurve, int pIndex) |
| KFBX_DLL void | KFCURVE_IncreaseFidelity (HKFCurveNode pFCurveNode, HKFCurveNode pReferenceFCurveNode, double pFidelityThreshold, int pSegmentCount, bool pBreakTangents, KTime pEpsilonTime, double pTangentThreshold, bool pSyncAddedKeys=false, KArrayTemplate< HKFCurve > *pSyncWithFCurves=NULL, KArrayTemplate< HKFCurve > *pSyncWithReferenceFCurves=NULL) |
| Compare the FCurve with the reference FCurve
and add keys when necessary so that both FCurves match. |
|
| KFBX_DLL bool | KFCURVE_IsAllSameInterpolation (HKFCurveNode pFCurveNode, kFCurveInterpolation pInterpolation, bool pAllLayer) |
| Determined if all the keys in the underlying
KFCurveNode have the same interpolation type. |
|
| KFBX_DLL void | KFCURVE_ConstantCurveMerge (HKFCurveNode pDstNode, HKFCurveNode pSrcNode, KTime pStart, KTime pStop) |
| Smart merge version for curves that have
only constant keys. |
|
| #define KFCURVE_INTEPOLATION_INFINITE 1000 |
Definition at line 55 of file kfcurveglobal.h.
| #define KFCURVE_OVERSHOOT_INTERPOLATION 500.0 |
Definition at line 56 of file kfcurveglobal.h.
| anonymous enum |
| eKFCURVE_PLOT_SourceCurvesDestroy | |
| eKFCURVE_PLOT_SourceCurvesZeroDuringPlotTime | |
| eKFCURVE_PLOT_DestinationCurveMergeWithResult | |
| eKFCURVE_PLOT_DestinationCurveReplaceByResult | |
| eKFCURVE_PLOT_ForCache |
Definition at line 127 of file kfcurveglobal.h.
| anonymous enum |
Definition at line 199 of file kfcurveglobal.h.
| KFBX_DLL bool AxisAlignmentInEulerAngle | ( | double | pAB[3], | |
| double | pA[3], | |||
| double | pB[3], | |||
| double | pAngles[3] | |||
| ) |
Calculate the euler rotation required to align axis pAB-pA on pAB-pB.
| pAB | The intersection of the 2 axis. | |
| pA | A point on axis to be aligned. | |
| pB | A point on reference axis. | |
| pAngles | Resulting euler angles. |
| KFBX_FORWARD_HI | ( | KFCurveNode | ) |
| KFBX_FORWARD_HI | ( | KFCurve | ) |
| KFBX_DLL void KFCURVE_BreakTangents | ( | HKFCurveNode | pFCurveNode, | |
| HKFCurveNode | pReferenceFCurveNode, | |||
| KTime | pEpsilonTime, | |||
| double | pTangentThreshold | |||
| ) |
Compare the FCurve with the reference FCurve and break the tangents when necessary so that both FCurves match.
| pFCurveNode | FCurveNode to modify. | |
| pReferenceFCurveNode | FCurveNode we use as the reference. | |
| pEpsilonTime | Epsilon time used to evaluate the tangents. | |
| pTangentThreshold | Threshold used when comparing tangents. If the difference is over the threshold, we break the tangent. |
| KFBX_DLL void KFCURVE_ConstantCurveMerge | ( | HKFCurveNode | pDstNode, | |
| HKFCurveNode | pSrcNode, | |||
| KTime | pStart, | |||
| KTime | pStop | |||
| ) |
Smart merge version for curves that have only constant keys.
The current implementation of SmartMerge does not work very well with different types of constant keys.
| pDstNode | The Destination KFCurveNode in which all layers will be merged. | |
| pSrcNode | Multi-layered KFCurveNode that has to be merged | |
| pStart | Merge start time | |
| pStop | Merge stop time |
| KFBX_DLL bool KFCurve_FindNickNumberFromTW | ( | int & | pNickNumber, | |
| HKFCurveNode | pTWNode | |||
| ) |
| KFBX_DLL HKFCurveNode KFCurve_FindTWFromNickNumber | ( | int | pNickNumber | ) |
| KFBX_DLL double KFCURVE_GetButterworthFilterInternalRate | ( | ) |
| KFBX_DLL bool KFCURVE_GetConstantKeyReducerKeepOneKey | ( | ) |
| KFBX_DLL bool KFCURVE_GetPlotOnFrame | ( | ) |
| KFBX_DLL KTime KFCURVE_GetPlotPeriod | ( | ) |
| KFBX_DLL bool KFCURVE_GetPlotTranslationOnRootOnly | ( | ) |
| KFBX_DLL bool KFCURVE_GetPreciseTimeDiscontinuities | ( | ) |
| KFBX_DLL int KFCURVE_GetRotationFilterToApply | ( | ) |
| KFBX_DLL double KFCURVE_GetRotationFilterUnrollQuality | ( | ) |
| KFBX_DLL bool KFCURVE_GetRotationFilterUnrollTestForPath | ( | ) |
| KFBX_DLL bool KFCURVE_GetTCB4051EvalMode | ( | ) |
| KFBX_DLL bool KFCURVE_GetUseConstantKeyReducer | ( | ) |
| KFBX_DLL double KFCURVE_GetUseConstantKeyReducerDefaultThreshold | ( | ) |
| KFBX_DLL bool KFCURVE_GetUseConstantKeyReducerOnDevices | ( | ) |
| KFBX_DLL double KFCURVE_GetUseConstantKeyReducerRotationThreshold | ( | ) |
| KFBX_DLL double KFCURVE_GetUseConstantKeyReducerScalingThreshold | ( | ) |
| KFBX_DLL double KFCURVE_GetUseConstantKeyReducerTranslationThreshold | ( | ) |
| KFBX_DLL void KFCURVE_IncreaseFidelity | ( | HKFCurveNode | pFCurveNode, | |
| HKFCurveNode | pReferenceFCurveNode, | |||
| double | pFidelityThreshold, | |||
| int | pSegmentCount, | |||
| bool | pBreakTangents, | |||
| KTime | pEpsilonTime, | |||
| double | pTangentThreshold, | |||
| bool | pSyncAddedKeys =
false, |
|||
| KArrayTemplate< HKFCurve > * | pSyncWithFCurves =
NULL, |
|||
| KArrayTemplate< HKFCurve > * | pSyncWithReferenceFCurves =
NULL |
|||
| ) |
Compare the FCurve with the reference FCurve and add keys when necessary so that both FCurves match.
| pFCurveNode | FCurveNode to modify. | |
| pReferenceFCurveNode | FCurveNode we use as the reference. | |
| pFidelityThreshold | Threshold used when comparing values. If the difference is over the threshold, we add a new key. | |
| pSegmentCount | Number of segments we divide the curve between every pairs of keys. | |
| pBreakTangents | True if we should break the tangents when they don't match the reference. | |
| pEpsilonTime | Epsilon time used to evaluate the tangents. | |
| pTangentThreshold | Threshold used when comparing tangents. If the difference is over the threshold, we break the tangent. | |
| pSyncAddedKeys | True if fidelity keys should be added to all FCurves of a vector. | |
| pSyncWithFCurves | For internal use, leave to NULL. | |
| pSyncWithReferenceFCurves | For internal use, leave to NULL. |
| KFBX_DLL bool KFCURVE_IsAllSameInterpolation | ( | HKFCurveNode | pFCurveNode, | |
| kFCurveInterpolation | pInterpolation, | |||
| bool | pAllLayer | |||
| ) |
Determined if all the keys in the underlying KFCurveNode have the same interpolation type.
| pFCurveNode | FCurveNode to check. | |
| pInterpolation | The interpolation type we are querying for. | |
| pAllLayer | True if check is in all layers. |
| KFBX_DLL void KFCurve_PlotInLayers | ( | HKFCurveNode | pParentNode, | |
| KArrayTemplate< int > * | pSourceLayers, | |||
| int | pDestLayer, | |||
| kUInt | pOptions, | |||
| KTime | pStart, | |||
| KTime | pStop, | |||
| KTime | pPlotPeriod, | |||
| HKFCurveNode | pDestinationNode, | |||
| HKFCurveNode | pTotalNode, | |||
| bool | pUseTimeWarp, | |||
| HKSmartPlotOptions | pSmartPlotOptions =
NULL |
|||
| ) |
Plots inside a curve node.
Plot is risky for rotations because they are not commutative, so make sure layers to be plot are successive !!!
| pParentNode | The node containing all layers. | |
| pSourceLayers | Layers to be plotted. | |
| pDestLayer | Layers to be plotted on this layer. | |
| pOptions | Flags to set the behavior. | |
| pStart | Start time of the plot. | |
| pStop | Stop time of the plot. | |
| pPlotPeriod | ||
| pDestinationNode | ||
| pTotalNode | ||
| pUseTimeWarp | ||
| pSmartPlotOptions |
| KFBX_DLL void KFCURVE_SetButterworthFilterInternalRate | ( | double | pButterworthFilterInternalRate | ) |
| KFBX_DLL void KFCURVE_SetConstantKeyReducerKeepOneKey | ( | bool | pConstantKeyReducerKeepOneKey | ) |
| KFBX_DLL void KFCURVE_SetPlotOnFrame | ( | bool | pPlotOnFrame | ) |
| KFBX_DLL void KFCURVE_SetPlotPeriod | ( | KTime | pPlotPeriod | ) |
| KFBX_DLL void KFCURVE_SetPlotTranslationOnRootOnly | ( | bool | pPlotTranslationOnRootOnly | ) |
| KFBX_DLL void KFCURVE_SetPreciseTimeDiscontinuities | ( | bool | pPreciseTimeDiscontinuities | ) |
| KFBX_DLL void KFCURVE_SetRotationFilterToApply | ( | int | pRotationFilterToApply | ) |
| KFBX_DLL void KFCURVE_SetRotationFilterUnrollQuality | ( | double | pQuality | ) |
| KFBX_DLL void KFCURVE_SetRotationFilterUnrollTestForPath | ( | bool | pTestForPath | ) |
| KFBX_DLL void KFCURVE_SetTCB4051EvalMode | ( | bool | pTCB4051EvalMode | ) |
| KFBX_DLL void KFCurve_SetTWSet | ( | KSet * | pSet | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducer | ( | bool | pUseConstantKeyReducer | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducerDefaultThreshold | ( | double | pConstantKeyReducerDefaultThreshold | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducerOnDevices | ( | bool | pUseConstantKeyReducerOnDevices | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducerRotationThreshold | ( | double | pConstantKeyReducerRotationThreshold | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducerScalingThreshold | ( | double | pConstantKeyReducerScalingThreshold | ) |
| KFBX_DLL void KFCURVE_SetUseConstantKeyReducerTranslationThreshold | ( | double | pConstantKeyReducerTranslationThreshold | ) |