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 | ) |