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