#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_ComputeProgressiveClampedTangents (double &pLeftTangent, double &pRightTangent, 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. |
Definition in file kfcurveglobal.h.
#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.
{ // eKFCURVE_PLOT_SourceCurvesKeep = 1<<0 , 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 , };
anonymous enum |
Definition at line 199 of file kfcurveglobal.h.
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.
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 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_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 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 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_ComputeProgressiveClampedTangents | ( | double & | pLeftTangent, |
double & | pRightTangent, | ||
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.
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_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.
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_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 |