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>

Include dependency graph for kfcurveglobal.h:
This graph shows which files directly or indirectly include this file:

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.

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.

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