kfcurveglobal.h File Reference
Detailed Description
Definition in file kfcurveglobal.h.
#include <fbxfilesdk/components/kfcurve/kfcurve_h.h>
#include
<fbxfilesdk/components/kbaselib/kaydara.h>
#include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
#include <fbxfilesdk/components/kbaselib/klib/ktime.h>
#include <fbxfilesdk/components/kfcurve/kfcurve_forward.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...
  | 
 
Functions
 | 
| 
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 curvenode. 
  | 
| 
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 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_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. 
  | 
Function Documentation
| 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.
- Parameters:
 
- 
 | 
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. | 
 
- Returns:
 
- how the operation succeed.
 
 
 
| 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.
- Parameters:
 
- 
 | 
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. | 
 
 
 
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.
- Parameters:
 
- 
 | 
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 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.
- Parameters:
 
- 
 | 
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.
- Parameters:
 
- 
 | 
pFCurveNode  | 
FCurveNode to check. | 
 | 
pInterpolation  | 
The interpolation type we are querying for. | 
 | 
pAllLayer  | 
True if check is in all layers. | 
 
- Returns:
 
- True if the all all have pInterpolation type.
 
 
 
| 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 curvenode.
Plot is risky for rotations because they are not commutative, so
make sure layers to be plot are successive !!!
- Parameters:
 
- 
 | 
pParentNode  | 
The node containing all layers. | 
 | 
pSourceLayers  | 
Layers to be plotted. | 
 | 
pDestLayer  | 
Layers to be plotted on this layer. | 
 | 
pOptions  | 
Flags to set the behaviour. | 
 | 
pStart  | 
Start time of the plot. | 
 | 
pStop  | 
Stop time of the plot. | 
 | 
pPlotPeriod  | 
 | 
 | 
pDestinationNode  | 
 | 
 | 
pTotalNode  | 
 | 
 | 
pUseTimeWarp  | 
 | 
 | 
pSmartPlotOptions  | 
 |