Classes | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends

KFCurveNode Class Reference

This reference page is linked to from the following overview topics: Migrating to the new data structures for animation.


Search for all occurrences

Detailed Description

This class provides the structure to build a curve node hierarchy.

It is a composite class that contains curve node tree management services in itself. Cyclic graphs are forbidden in a curve node hierarchy.

The content of a curve node is in its function curve, which is an instance of class KFCurve. A function curve can't be shared among curve nodes.

Definition at line 359 of file kfcurvenode.h.

#include <kfcurvenode.h>

List of all members.

Classes

struct   NameInfo

Public Member Functions

bool  FbxStore (KFbx *pFbx, bool pOnlyDefaults=false, bool pReplaceLclTRSName=false, bool pSkipTimeWarpName=false, char *pFieldName="Channel", bool pColor=true, KFCurve::FbxStoreVersionID pIsVersionID=KFCurve::V7)
bool  FbxRetrieve (KFbx *pFbx, bool pOnlyDefaults=false, bool pCreateIfNotFound=true, bool pColor=false)
bool  FbxInternalRetrieve (KFbx *pFbx, bool pOnlyDefaults=false, bool pCreateIfNotFound=true, bool pColor=false)
bool  FbxTimeWarpNameRetrieve (KFbx *pFbx)
bool  FbxLayerAndTimeWarpRetrieve (KFbx *pFbx, bool pOnlyDefaults=false, bool pCreateIfNotFound=true, bool pColor=false)
void  GetQuaternionInterpolationBezierPoints (KTime pCurrentTime, KgeQuaternion &pQ0, KgeQuaternion &lQ1, KgeQuaternion &lQ2, KgeQuaternion &lQ3)
int  GetRotationOrder () const
void  SetRotationOrder (int pRotationOrder)
int  GetLayerType () const
  Get layer Type ( = Mult, Add or Rotational node )
void  TimeWarpSet (HKFCurveNode pLayer)
  Set a time warp node.
HKFCurveNode  TimeWarpGet () const
  Retrieve the time warp node.
void  LayerSet (HKFCurveNode pLayer, bool pDeleteCurrentAndSubLayers)
  Set a layer node.
HKFCurveNode  LayerGet () const
  Retrieve the layer node.
HKFCurveNode  LayerGet (int pLayerID)
  Retrieve the layer node of a specified layerID.
void  CreateLayerAt (int pLayerID)
  Use this function to create a new layer.
virtual HKFCurveNode  Find (HKDataType pDataType) const
  Find the node of a certain DataType.
HKFCurveNode  FindRecursive (HKDataType pDataType) const
  Recursively find the first child curve node by name.
HKDataType  GetDataType () const
  Get the DataType.
void  Delete (HKFCurveNode pNode)
  Remove and delete a child curve node.
HKFCurveNode  ObjectLayerGet () const
  Set a object layer node. (pointer to equivalent node in Layer 0 -> X => X, Lcl Trans => Lcl Trans)
void  ObjectLayerSet (HKFCurveNode pNode)
  Get a object layer node.
int  GetLayerID () const
  Get layer ID ( = Layer Number)
void  SetLayerID (int pLayerID)
  Set layer ID ( = Layer Number)
void  SetLayerType (int pLayerType, HKFCurveNode pObjectLayerNode=NULL)
  Set layer Type ( = Mult, Add or Rotational node )
HKFCurveNode  GetPreviousLayer (int pLayerID)
  Find the Node that should precede pLayerID.
HKFCurveNode  RemoveLayer (int pLayerID, bool pDestroy=true)
  Remove a node from the layer chain.
HKFCurveNode  InsertOrCopyLayer (int pLayerId, HKFCurveNode pLayerNode)
void  SingleLayerCopyFrom (HKFCurveNode pSource, bool pTransferCurve=false)
HKFCurveNode  SingleLayerCopy (KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE)
void  TemplateSet (HKFCurveNode pTemplate)
  Set a template node.
HKFCurveNode  TemplateGet () const
  Retrieve the template node.
void  LayerCopyFromRecursive (HKFCurveNode pSource, bool pTransferCurve=false)
  Copy the node content from pSource.
bool  CandidateClear (int pLayerID=0, bool pClearAllSubLayersToo=true)
  Clear candidate.
void  CandidateClearSubLayers ()
  Clear candidate recursive.
double *  CandidateSet (KTime pTime, double *pValue, int pLayerID=0, int pChildIndexInParent=-1)
  Set the candidate in object.
double *  CandidateSetSpecificLayer (KTime pTime, double *pValue, int pLayerID=0)
  Set the candidate.
double *  CandidateGet (double *pValue, int pLayerID=0) const
  Get the candidate.
double *  CandidateGetSpecificLayer (double *pValue, KTime &pCandidateTime, int pLayerID=0)
  Get the candidate.
void  CandidateGetTotalCandidate (double *pValue, KTime &pCandidateTime) const
  Get the candidate.
bool  IsCandidate () const
  Return if this node has a candidate.
bool  CandidateKey (kFCurveIndex *pLast=NULL, int pLayerID=0, bool *pCurveMask=NULL, bool pZeroKey=false, int pInterpolation=KFCURVE_INTERPOLATION_CUBIC, int pTangeantMode=KFCURVE_TANGEANT_USER, int pContinuity=KFCURVE_CONTINUITY, bool pTanOverride=true, KTime pCandidateTime=KTIME_INFINITE, double pKeyIndexTolerance=0.0)
  Return the candidate key.
bool  CandidateKeySpecificLayer (kFCurveIndex *pLast=NULL, int pLayerID=0, bool *pCurveMask=NULL, int pInterpolation=KFCURVE_INTERPOLATION_CUBIC, int pTangeantMode=KFCURVE_TANGEANT_USER, int pContinuity=KFCURVE_CONTINUITY, bool pTanOverride=true, KTime pCandidateTime=KTIME_INFINITE, double pKeyIndexTolerance=0.0)
  Return the candidate key Specific Layer.
int  GetCorrectLayerID (int pLayerID) const
HKFCurveNode  GetCorrectLayer (int pLayerID, bool pCreateLayerIfNesseary=false)
void  ComputeCandidateForLayer (double *pDestLayerValue, double *pCandidateValue, KTime pTime, int pLayerID, kFCurveIndex *pLast)
  A simple interface to calculate value for a candidate on a layer.
void  EvaluateCurvesExceptLayerRecursiveAdd (double *pValue, KTime pTime, int pExceptLayerID, kFCurveIndex *pLast=NULL)
  Calculate additive value for CandidateKey.
void  EvaluateCurvesExceptLayerRecursiveMult (double *pValue, KTime pTime, int pExceptLayerID, kFCurveIndex *pLast=NULL)
  Calculate multiplicative value for CandidateKey.
void  EvaluateCurvesBeforeLayerRecursiveEulerXYZ (KgeRMatrix &pBefore, KTime lCandidateTime, int pLayerID, kFCurveIndex *pLast)
  Calculate rotative value for CandidateKey.
void  EvaluateCurvesAfterLayerRecursiveEulerXYZ (KgeRMatrix &pAfter, KTime lCandidateTime, int pAfterLayerID, kFCurveIndex *pLast)
  Calculate rotative value for CandidateKey.
void  EvaluateCurvesBeforeLayerRecursiveQuat (KgeQuaternion &pBefore, KTime pTime, int pBeforeLayerID, kFCurveIndex *pLast)
  Calculate rotative value for CandidateKey.
void  EvaluateCurvesAfterLayerRecursiveQuat (KgeQuaternion &pAfter, KTime pTime, int pBeforeLayerID, kFCurveIndex *pLast)
  Calculate rotative value for CandidateKey.
double *  CandidateGetWithTime (double *pValue, KTime &pCandidateTime)
  Gets candidate value and time for current layer.
double *  EvaluateSpecificLayer (double *pValue, KTime pTime, int pLayerID, kFCurveIndex *pLast=NULL)
  Evaluate the node at pTime in a specific layer.
double *  CandidateEvaluateSpecificLayer (double *pValue, KTime pTime, int pLayerID, kFCurveIndex *pLast=NULL)
  CandidateEvaluate the node at pTime in a specific layer (does not uses the TimeWarp)
double *  GeneralEvaluate (double *pValue, KTime pTime, kFCurveIndex *pLast=NULL, bool pEvaluateCandidate=true)
  Evaluate candidate. (Call this from ObjectLayer)
double *  CandidateEvaluate (double *pValue, KTime pTime, kFCurveIndex *pLast=NULL)
  Evaluate candidate. (Call this from ObjectLayer)
bool  IsEditable ()
  Return if node is editable.
void  GetZeroValues (double *pValues) const
  Return zero values along the type of the node (translation = (0,0,0) scaling = (1,1,1)...)
void  ReplaceForQuaternion (HKFCurveNode pSource, KTime pStart, KTime pStop, double pScaleStart, double pScaleStop, bool pUseExactGivenSpan, bool pKeyStartEndOnNoKey, KTime pTimeSpanOffset)
bool  GetContinuousOffset (double pOffset[3], double pNew[3], double pOld[3]) const
void  GetContinuousRotation (double pResultKeyValue[3], double pCurrentKeyValue[3], KTime pCurrentKeyTime)
void  SetTimeWarpName (char *pName)
int  KeyGetCountOnChild (int pChildIndex) const
void  UserLockAdd ()
  Add a lock to prevent user edits.
void  UserLockRemove ()
  Remove a lock to prevent user edits.
bool  IsUserLocked () const
  To know if there is a lock to prevent user edits.

Public Attributes

int  mMBRotationOrder
HIConnector  mConnector

Protected Types

enum   { eUseFCurve = 1, eUseTotal = 2 }

Protected Member Functions

void  FromTotalCandidateToSpecificCandidate (int pLayerID)

Protected Attributes

int  mType
int  mReferenceCount
KArrayTemplate< HKFCurveNode >  mNodes
HIKFCurve  mFCurve
HKFCurveNode  mTimeWarp
HKFCurveNode  mLayer
HKFCurveNode  mObjectLayer
HKFCurveNode  mTemplate
HKFCurveNode  mDataNode
HKFCurveNode  mParent
int  mLayerType
int  mLayerID
int  mUpdateId
int  mSpecificCandidateMethod
int  mTotalCandidateMethod
double  mCandidateTotalValue [KFCURVENODE_CANDIDATE_MAX_COUNT]
KTime  mCandidateTotalTime
KFCurveNodeCallback mCallback
int  mUserLock

Friends

KFBX_DLL HKFCurveNode  KFCurveNodeCreate (KFbx *pFbx, HKFCurveNode pParent, bool pOnlyDefaults, bool pCreateIfNotFound, bool pColor)

Constructors and Destructor

  KFCurveNode (char *pNodeName, char *pTimeWarpName, HKDataType pDataType, int pLayerType=KFCL_NOLAYER, int pLayerID=0)
  Constructor.
  KFCurveNode (HKFCurveNode pTemplateCurveNode)
  Template constructor.
virtual  ~KFCurveNode ()
  Destructor.
void  Destroy (int Local=0)

FCurve Creation

void  CreateFCurve ()
  Create the FCurve for this node.
bool  FCurveCreated ()
  Test to know if the FCurve is created.

Cloning and Copy Functions

HKFCurveNode  Clone (bool pKeepAttached)
  Return a duplicate of this node.
HKFCurveNode  CloneTemplate (bool pKeepAttached=false, bool pCloneFCurves=false, bool pCreateCurves=false, int pLayerID=-1)
  Return a duplicate of this node.
void  CopyFrom (HKFCurveNode pSource, bool pTransferCurve=false)
  Copy the function curve contained in the given curve node.
HKFCurveNode  Copy (KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE)
  Create a copy of the current curve node.

Node Identification

char *  GetName () const
  Retrieve the node's name.
char *  GetTimeWarpName () const
  Retrieve the node's time warp name.
char *  GetTypeName () const
  Retrieve the node type name.

Function Curve Management

HKFCurve  FCurveGet () const
  Get pointer to the node's function curve.
KFCurve FCurveSet (KFCurve *pCurve, bool pDestroyOldCurve=false)
  Set the function curve of this curve node.
void  FCurveReplace (KFCurve *pCurve)
  Replace the function curve of this curve node.
bool  GetTransformCurves (KFCurve *pT[3], KFCurve *pR[3], KFCurve *pS[3])
  Return translation, rotation and scaling curves of the children of this curve node.

Curve Node Management

virtual void  Clear ()
  Clear this node.
virtual int  Add (HKFCurveNode pCurveNode)
  Add a child curve node to this node.
virtual void  Remove (int pIndex)
  Remove a child curve node by index.
virtual void  Delete (int pIndex)
  Remove and delete a child curve node by index.
virtual int  GetCount () const
  Get children curve nodes count.
virtual HKFCurveNode  Get (int pIndex) const
  Get pointer to child curve node by index.
virtual bool  IsChild (KFCurveNode *pCurveNode, bool pRecursive=false) const
  Ask if a given curve node is a child of the current curve node.
virtual int  Find (char *pName) const
  Get index of child curve node by name.
virtual int  Find (HKFCurveNode pNode) const
  Get index of child curve node by pointer.
HKFCurveNode  FindRecursive (char *pName) const
  Recursively find the first child curve node by name.
HKFCurveNode  FindOrCreate (char *pName, bool pFindOrCreateCurve=true)
  Find a child node by name or create it if it can not be found.
virtual void  SetParent (HKFCurveNode pParent)
  Set the parent curve node.
virtual HKFCurveNode  GetParent () const
  Get the parent curve node.

Key Management

int  KeyGetCount (bool pRecursiveInLayers=false) const
  Get the number of animation keys.
void  KeyGetCount (int &pCurveCount, int &pTotalCount, int &pMinCount, int &pMaxCount) const
  Get the number of animation keys.
void  GetCurveWithFirstKey (KFCurve *&lCurveWithFirstKey, bool *pCurveMask, bool pRecursiveInLayers) const
  Get the fcurve that has the earliest key.
void  GetCurveWithLastKey (KFCurve *&lCurveWithLastKey, bool *pCurveMask, bool pRecursiveInLayers) const
  Get the fcurve that has the latest key.
KTime  GetFirstKeyTime (bool *pCurveMask=NULL, bool pRecursiveInLayers=false) const
  Get the first key time in the children specified by the curve mask (NULL = all children) If there is no key, return KTIME_MINUS_INFINITE.
KTime  GetLastKeyTime (bool *pCurveMask=NULL, bool pRecursiveInLayers=false) const
  Get the last key time in the children specified by the curve mask (NULL = all children) If there is no key, return KTIME_INFINITE.
double *  KeyAdd (KTime pTime, double *pValue)
  Recursively add a set of keys in the curve node tree.
double *  KeyAppend (KTime pTime, double *pValue, bool pCheckForContinuousRotation=false)
  Recursively append a set of keys in the curve node tree.
bool  GetAnimationInterval (KTime &pStart, KTime &pStop) const
  Find out start and stop time of the animation for a curve node and recursively in its children.
void  GetTimeSpan (KTime &pStart, KTime &pStop) const
  Find out start and stop time of the animation for a curve node and recursively in it's children.
int  IsKey (KTime &pTime, int *pLast, bool *pCurveMask=NULL, double pKeyIndexTolerance=0.0, double pMin=-K_DOUBLE_MAX, double pMax=K_DOUBLE_MAX) const
  Recursively check if keys exist at a given time in the curve node tree.
bool  DeleteKey (KTime &pTime, bool *pCurveMask=NULL, double pKeyIndexTolerance=0.0)
  Recursively delete keys at a given time in the curve node tree.
KTime  GetNextKeyTime (KTime pTime, bool *pCurveMask=NULL, bool pRecursiveInLayers=false) const
  Recursively find the closest later time at which a key can be found compared to a given time.
KTime  GetPrevKeyTime (KTime pTime, bool *pCurveMask=NULL) const
  Recursively find the closest earlier time at which a key can be found compared to a given time.
double *  Evaluate (double *pValue, KTime pTime, kFCurveIndex *pLast=NULL)
  Recursively evaluate the curve node tree.
double *  GetValue (double *pValue) const
  Recursively get the default values of the curve node tree.
double *  SetValue (double *pValue)
  Recursively set the default values of the curve node tree.
void  Delete (KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE)
  Delete all the keys found within a given time range.
void  Replace (HKFCurveNode pSource, KTime pStart=KTIME_MINUS_INFINITE, KTime pStop=KTIME_INFINITE, bool pUseGivenSpan=false, bool pKeyStartEndOnNoKey=true, KTime pTimeSpanOffset=KTIME_ZERO)
  Replace all the keys found within a given time range.

Color

float *  GetColor ()
  Get the color of the curve node.
void  SetColor (float pColor[3])
  Set The color of the curve node.

Referencing

int  IncReferenceCount ()
  Increment and return the number of references.
int  DecReferenceCount ()
  Decrement and return the number of references.
int  GetReferenceCount () const
  Return the number of references.

Take Type

int  GetTakeType () const
  Get the take type.
void  SetTakeType (int pType)
  Set the take type.

Selection

bool  GetVisibility () const
  Get the child node currently selected.
void  SetVisibility (bool pVisible, bool pRecursive=false, bool pRecurseLayer=false, int lChildIndex=-1)
  Set the selected child node.

Data Node Management

void  DataNodeSet (HKFCurveNode pDataNode, bool pRecursive=true)
  Set the data node.
HKFCurveNode  DataNodeGet ()
  Retrieve the data node.
bool  SetPreExtrapolation (kUInt pNewPreExtrapolation, bool pRespectUserLock=true)
  Set to FCurve the Post or Pre Extrapolation Data.
bool  SetPreExtrapolationCount (kUInt pNewPreExtrapolationCount, bool pRespectUserLock=true)
bool  SetPostExtrapolation (kUInt pNewPreExtrapolation, bool pRespectUserLock=true)
bool  SetPostExtrapolationCount (kUInt pNewPreExtrapolationCount, bool pRespectUserLock=true)

Container Type

int  GetContainerType () const
  Get the container type.
void  SetContainerType (int pInOutType)
  Set the container type.

I/O Type Management

int  GetIOType () const
  Get the IO Type.
void  SetIOType (int pInOutType)
  Set the IO Type.

Function Curve Editor Options

int  IsExpended () const
  If the node is expended in FCurveEditor.
void  SetExpended (bool pExpended)
  Sets if the node is expended in FCurveEditor.

Layer Options

int  IsMultiLayer () const
  If the node can have layers.
void  SetMultiLayer (bool pMultiLayer)
  Sets if the node is expended in FCurveEditor.
HKFCurveNode  GetLayerNode (int pLayerID)
  Get the fcurve node for the specified layer.

Analysis

bool  LookLikeSampledData (KTime pThresholdPeriod) const
  Check if keys may come from a plot operation.

Update

int  GetUpdateId () const
  Update id.
int  GetValuesUpdateId () const
  Update id.
int  GetNodeUpdateId () const
  Node update id.

Callback

bool  CallbackEnable (bool pEnable)
bool  CallbackIsEnable () const
void  CallbackClear ()
void  CallbackAddEvent (int pWhat)
void  CallbackRegister (kFCurveNodeCallback, void *pObject)
void  CallbackUnregister (kFCurveNodeCallback, void *pObject)

AntiGimble

unsigned short  mUseQuaternion
unsigned short  GetUseQuaternion () const
void  SetUseQuaternion (unsigned short pVal)

Undo state management

void  GetCandidateState (KFCurveNodeCandidateState &pState) const
void  SetCandidateState (const KFCurveNodeCandidateState &pState, bool pDestroyMissingLayers=false)
int  GetCandidateSpecificMethod () const
int  GetCandidateTotalMethod () const
KTime  GetCandidateTotalTime () const
double *  GetCandidateTotalValue ()
int  GetCandidateTotalValueSize () const
void  SetCandidateSpecificMethod (int pMethod)
void  SetCandidateTotalMethod (int pMethod)
void  SetCandidateTotalTime (KTime pTime)
void  SetCandidateTotalValue (double *pValue)

Backward Compatibility

virtual int  SortedAdd (HKFCurveNode pNode)

Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
eUseFCurve 
eUseTotal 

Definition at line 1148 of file kfcurvenode.h.

{eUseFCurve = 1, eUseTotal = 2};

Constructor & Destructor Documentation

KFCurveNode ( char *  pNodeName,
char *  pTimeWarpName,
HKDataType  pDataType,
int  pLayerType = KFCL_NOLAYER,
int  pLayerID = 0 
)

Constructor.

Parameters:
pNodeName Curve node name.
pTimeWarpName Curve node.
pDataType Curve node type.
pLayerType LayerType.
pLayerID LayerID.
Remarks:
No function curve is created in the new curve node.
KFCurveNode ( HKFCurveNode  pTemplateCurveNode )

Template constructor.

Parameters:
pTemplateCurveNode Template curve node.
Remarks:
This is not a copy constructor. This constructor makes the created curve node share a structure that defines the node name, node display name and node type name. No function curve is created or copied in the new curve node.
virtual ~KFCurveNode ( ) [virtual]

Destructor.


Member Function Documentation

void Destroy ( int  Local = 0 )
void CreateFCurve ( )

Create the FCurve for this node.

This function is called recursively for all children curve nodes.

bool FCurveCreated ( )

Test to know if the FCurve is created.

This function is called recursively for all children curve nodes. It returns false as soon as one child does not have its FCurve.

HKFCurveNode Clone ( bool  pKeepAttached )

Return a duplicate of this node.

This function is called recursively for all children curve nodes. The function curve is copied in the new curve node.

Parameters:
pKeepAttached If true, the created object will share a structure that defines the node name, node display name and node type name. Otherwise, this structure is copied.
Remarks:
This function is equal to a call to KFCurveNode::CloneTemplate() with parameter pCloneFCurves set to true.
Returns:
A partial or complete copy of the current object.
HKFCurveNode CloneTemplate ( bool  pKeepAttached = false,
bool  pCloneFCurves = false,
bool  pCreateCurves = false,
int  pLayerID = -1 
)

Return a duplicate of this node.

This function is called recursively for all children curve nodes.

Parameters:
pKeepAttached If true, the created object will share a structure that defines the node name, node display name and node type name. Otherwise, this structure is copied.
pCloneFCurves If true and the current curve node has a function curve, the function curve is copied in the new curve node.
pCreateCurves If true, pCloneFCurve is set to false and the current curve node has a function curve, an empty function curve is created in the new curve node.
pLayerID LayerID.
Returns:
A partial or complete copy of the current object.
void CopyFrom ( HKFCurveNode  pSource,
bool  pTransferCurve = false 
)

Copy the function curve contained in the given curve node.

Parameters:
pSource Given curve node to copy the function curve from.
pTransferCurve If true, curve data is transferred instead of being copied.
Remarks:
This function is called recursively. The first child curve node of pSource is copied in the first child curve node of the current object and so on.
HKFCurveNode Copy ( KTime  pStart = KTIME_MINUS_INFINITE,
KTime  pStop = KTIME_INFINITE 
)

Create a copy of the current curve node.

The structure defining the node name, node display name and node type name is copied, not shared. Only the animation keys in a given time range are copied.

Parameters:
pStart Start time for range of animation keys copied.
pStop Stop time for range of animation keys copied.
Returns:
A partial or complete copy of the current object.
char* GetName ( ) const

Retrieve the node's name.

char* GetTimeWarpName ( ) const

Retrieve the node's time warp name.

char* GetTypeName ( ) const

Retrieve the node type name.

HKFCurve FCurveGet ( ) const

Get pointer to the node's function curve.

Returns:
Pointer to the curve or NULL pointer if there's none.
KFCurve* FCurveSet ( KFCurve pCurve,
bool  pDestroyOldCurve = false 
)

Set the function curve of this curve node.

Parameters:
pCurve New function curve.
pDestroyOldCurve Set to true to delete the function curve already contained in the curve node.
Returns:
Function curve previously contained in the curve node if there was any and if parameter pDestroyOldCurve is set to false. Otherwise, NULL is returned.
void FCurveReplace ( KFCurve pCurve )

Replace the function curve of this curve node.

Previous function curve is automatically destroyed.

Parameters:
pCurve New function curve.
Remarks:
This function is equal to a call to KFCurveNode::FCurveSet() with parameter pDestroyOldCurve set to true.
bool GetTransformCurves ( KFCurve pT[3],
KFCurve pR[3],
KFCurve pS[3] 
)

Return translation, rotation and scaling curves of the children of this curve node.

This function is meant to be called on the root KFCurveNode object found in class KFbxTakeNode.

Parameters:
pT Array to receive X, Y and Z translation function curves.
pR Array to receive X, Y and Z rotation function curves.
pS Array to receive X, Y and Z scaling function curves.
Returns:
true if all function curves have been found, false otherwise.
virtual void Clear ( ) [virtual]

Clear this node.

Delete the function curve and all the children curve nodes.

virtual int Add ( HKFCurveNode  pCurveNode ) [virtual]

Add a child curve node to this node.

Parameters:
pCurveNode The child curve node to be added.
Returns:
The index of the new child curve node.
virtual void Remove ( int  pIndex ) [virtual]

Remove a child curve node by index.

Parameters:
pIndex Index of child curve node to be removed.
virtual void Delete ( int  pIndex ) [virtual]

Remove and delete a child curve node by index.

Parameters:
pIndex Index of child curve node to be deleted.
virtual int GetCount ( ) const [virtual]

Get children curve nodes count.

virtual HKFCurveNode Get ( int  pIndex ) const [virtual]

Get pointer to child curve node by index.

Parameters:
pIndex Index of child curve node.
Returns:
Pointer to child curve node or NULL is index is out of bounds.
virtual bool IsChild ( KFCurveNode pCurveNode,
bool  pRecursive = false 
) const [virtual]

Ask if a given curve node is a child of the current curve node.

Parameters:
pCurveNode Curve node searched.
pRecursive Set to true to search recursively. Set to false to search only in the immediate children curve nodes.
Returns:
true if the curve node searched is found, false otherwise.
virtual int Find ( char *  pName ) const [virtual]

Get index of child curve node by name.

Parameters:
pName Name of searched child curve node.
Returns:
Index or -1 if a child curve node with this name could not be found.
Remarks:
This function is not recursive.
virtual int Find ( HKFCurveNode  pNode ) const [virtual]

Get index of child curve node by pointer.

Parameters:
pNode Pointer to searched child curve node.
Returns:
Index or -1 if a child curve node with this pointer could not be found.
Remarks:
This function is not recursive.
HKFCurveNode FindRecursive ( char *  pName ) const

Recursively find the first child curve node by name.

Parameters:
pName Name of searched child curve node.
Returns:
Pointer to child curve node or NULL if this name could not be found.
HKFCurveNode FindOrCreate ( char *  pName,
bool  pFindOrCreateCurve = true 
)

Find a child node by name or create it if it can not be found.

Parameters:
pName Name of child node to find.
pFindOrCreateCurve If true and the function curve does not exist, create one in the curve node found or created.
Remarks:
This function is not recursive.
virtual void SetParent ( HKFCurveNode  pParent ) [inline, virtual]

Set the parent curve node.

Parameters:
pParent The parent curve node to be set.

Definition at line 613 of file kfcurvenode.h.

{mParent = pParent;}
virtual HKFCurveNode GetParent ( ) const [inline, virtual]

Get the parent curve node.

Returns:
Pointer to the parent curve node or NULL if there is none.

Definition at line 618 of file kfcurvenode.h.

{return mParent;}
int KeyGetCount ( bool  pRecursiveInLayers = false ) const

Get the number of animation keys.

Parameters:
pRecursiveInLayers Return the total number of keys contained in the function curves included in the current node and its children curve nodes.
void KeyGetCount ( int &  pCurveCount,
int &  pTotalCount,
int &  pMinCount,
int &  pMaxCount 
) const

Get the number of animation keys.

Parameters:
pCurveCount returns the number of fcurves held by this node
pTotalCount returns the number of keys on all the fcurves held by this node
pMinCount returns the minimum number of keys on an fcurve held by this node
pMaxCount returns the maximum number of keys on an fcurve held by this node
void GetCurveWithFirstKey ( KFCurve *&  lCurveWithFirstKey,
bool *  pCurveMask,
bool  pRecursiveInLayers 
) const

Get the fcurve that has the earliest key.

If many fcurves has a key at the earliest time, returns one of the fcurves.

Parameters:
lCurveWithFirstKey The fcurve has the earliest key.
pCurveMask Allows you to use only specific children in the CurveNode. NULL means all of them.
pRecursiveInLayers
void GetCurveWithLastKey ( KFCurve *&  lCurveWithLastKey,
bool *  pCurveMask,
bool  pRecursiveInLayers 
) const

Get the fcurve that has the latest key.

If many fcurves has a key at the latest time, returns one of the fcurves.

Parameters:
lCurveWithLastKey The fcurve has last key.
pCurveMask Allows you to use only specific children in the CurveNode. NULL means all of them.
pRecursiveInLayers
KTime GetFirstKeyTime ( bool *  pCurveMask = NULL,
bool  pRecursiveInLayers = false 
) const

Get the first key time in the children specified by the curve mask (NULL = all children) If there is no key, return KTIME_MINUS_INFINITE.

Parameters:
pCurveMask Allows you to use only specific children in the CurveNode. NULL means all of them.
pRecursiveInLayers
Returns:
The first key time.
KTime GetLastKeyTime ( bool *  pCurveMask = NULL,
bool  pRecursiveInLayers = false 
) const

Get the last key time in the children specified by the curve mask (NULL = all children) If there is no key, return KTIME_INFINITE.

Parameters:
pCurveMask Allows you to use only specific children in the CurveNode. NULL means all of them.
pRecursiveInLayers
Returns:
The last key time.
double* KeyAdd ( KTime  pTime,
double *  pValue 
)

Recursively add a set of keys in the curve node tree.

Depth first key adding in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Time to add the keys.
pValue Array containing all the key values. This array must contain as many elements as the number of function curves included in the current node and its children curve nodes.
Returns:
Value of parameter pValue added with an offset equal to the number of affected function curves times sizeof(kDouble).
double* KeyAppend ( KTime  pTime,
double *  pValue,
bool  pCheckForContinuousRotation = false 
)

Recursively append a set of keys in the curve node tree.

Depth first key appending in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Time set in the appended keys. Make sure this time has a greater value than any of the last keys in the affected function curves.
pValue Array containing all the key values. This array must contain as many elements as the number of function curves included in the current node and its children curve nodes.
pCheckForContinuousRotation Flag, when set to true we will check for continuous rotation values. This is like an unroll filter on the fly. Relevant only for rotation fcurve nodes.
Returns:
Value of parameter pValue added with an offset equal to the number of function curves affected times sizeof(kDouble).
bool GetAnimationInterval ( KTime pStart,
KTime pStop 
) const

Find out start and stop time of the animation for a curve node and recursively in its children.

Parameters:
pStart Reference to store start time. pStart is overwritten only if the start time found is lower than pStart value. Initialize to KTIME_INFINITE to make sure the start time is overwritten in any case.
pStop Reference to store end time. pStop is overwritten only if the stop time found is higher than pStop value. Initialize to KTIME_MINUS_INFINITE to make sure the stop time is overwritten in any case.
Returns:
true if at least one key has been found in all the function curves scanned.
void GetTimeSpan ( KTime pStart,
KTime pStop 
) const

Find out start and stop time of the animation for a curve node and recursively in it's children.

Parameters:
pStart Reference to receive the smaller key time, set to KTIME_INFINITE if no key could be found.
pStop Reference to receive the larger key time, set to KTIME_MINUS_INFINITE if no key could be found.
int IsKey ( KTime pTime,
int *  pLast,
bool *  pCurveMask = NULL,
double  pKeyIndexTolerance = 0.0,
double  pMin = -K_DOUBLE_MAX,
double  pMax = K_DOUBLE_MAX 
) const

Recursively check if keys exist at a given time in the curve node tree.

Check if a key exists at the given time in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Given time to check key occurrence.
pLast Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
pCurveMask allows you to use only specific children in the CurveNode. NULL means all of them.
pKeyIndexTolerance allows the test to be less strict when matching the time with a key index.
pMin Minimal Value to Consider the Key.
pMax Maximal Value to Consider the Key.
Returns:
ISKEY_NONE if no function curve has a key at the given time, ISKEY_SOME if some function curves have a key at the given time or ISKEY_ALL if all function curves have a key at the given time.
bool DeleteKey ( KTime pTime,
bool *  pCurveMask = NULL,
double  pKeyIndexTolerance = 0.0 
)

Recursively delete keys at a given time in the curve node tree.

Delete keys at the given time in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Given time to delete keys.
pCurveMask allows you to use only specific children in the CurveNode. NULL means all of them.
pKeyIndexTolerance allows to be less strict when matching the time with a key index.
Returns:
true if at least one key has been found at the given time and deleted.
KTime GetNextKeyTime ( KTime  pTime,
bool *  pCurveMask = NULL,
bool  pRecursiveInLayers = false 
) const

Recursively find the closest later time at which a key can be found compared to a given time.

Find the closest but later time at which a key can be found compared to a given time in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Given time to search the next key time.
pCurveMask allows you to use only specific children in the CurveNode. NULL means all of them.
pRecursiveInLayers
Returns:
Next key time or KTIME_INFINITE if there exists no key with a time larger than the given time.
KTime GetPrevKeyTime ( KTime  pTime,
bool *  pCurveMask = NULL 
) const

Recursively find the closest earlier time at which a key can be found compared to a given time.

Find the closest earlier time at which a key can be found compared to a given time in the function curves included in the current node and its children curve nodes.

Parameters:
pTime Given time to search the previous key time.
pCurveMask allows you to use only specific children in the CurveNode. NULL means all of them.
Returns:
Previous key time or KTIME_MINUS_INFINITE if there exists no key with a time smaller than the given time.
double* Evaluate ( double *  pValue,
KTime  pTime,
kFCurveIndex pLast = NULL 
)

Recursively evaluate the curve node tree.

Depth first evaluation of the function curves included in the current node and its children curve nodes.

Parameters:
pValue Array to receive all the function curve evaluations. This array must be long enough to contain as many elements as the number of function curves included in the current node and its children curve nodes.
pTime Time of evaluation.
pLast Function curve index to speed up evaluation. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Value of parameter pValue added with an offset equal to the number of function curves evaluated times sizeof(double).
double* GetValue ( double *  pValue ) const

Recursively get the default values of the curve node tree.

Depth first access to the default values of the function curves included in the current node and its children curve nodes.

Parameters:
pValue Array to receive all the function curve default values. This array must be long enough to contain as many elements as the number of function curves included in the current node and its children curve nodes.
Returns:
Value of parameter pValue added with an offset equal to the number of function curves accessed times sizeof(double).
double* SetValue ( double *  pValue )

Recursively set the default values of the curve node tree.

Depth first setting of the default values of the function curves included in the current node and its children curve nodes.

Parameters:
pValue Array containing all the function curve default values. This array must contain as many elements as the number of function curves included in the current node and its children curve nodes.
Returns:
Value of parameter pValue added with an offset equal to the number of function curves set times sizeof(double).
void Delete ( KTime  pStart = KTIME_MINUS_INFINITE,
KTime  pStop = KTIME_INFINITE 
)

Delete all the keys found within a given time range.

Delete all the keys found within a given time range in the function curves included in the current node and its children curve nodes.

Parameters:
pStart Beginning of time range.
pStop End of time range.
void Replace ( HKFCurveNode  pSource,
KTime  pStart = KTIME_MINUS_INFINITE,
KTime  pStop = KTIME_INFINITE,
bool  pUseGivenSpan = false,
bool  pKeyStartEndOnNoKey = true,
KTime  pTimeSpanOffset = KTIME_ZERO 
)

Replace all the keys found within a given time range.

Replace all the keys found within a given time range in the function curves included in the current node and its children curve nodes.

Parameters:
pSource Source node tree containing the replacement keys. The curve node tree below pSource must be identical to the curve node tree below the current node.
pStart Beginning of time range.
pStop End of time range.
pUseGivenSpan false = original behavior where the time of the first and last key was used
pKeyStartEndOnNoKey Inserts a key at the beginning and at the end of the range if there is no key to insert.
pTimeSpanOffset
float* GetColor ( )

Get the color of the curve node.

void SetColor ( float  pColor[3] )

Set The color of the curve node.

int IncReferenceCount ( ) [inline]

Increment and return the number of references.

Definition at line 864 of file kfcurvenode.h.

{return ++mReferenceCount;}
int DecReferenceCount ( ) [inline]

Decrement and return the number of references.

Definition at line 867 of file kfcurvenode.h.

int GetReferenceCount ( ) const [inline]

Return the number of references.

Definition at line 870 of file kfcurvenode.h.

{return mReferenceCount;}
int GetTakeType ( ) const

Get the take type.

void SetTakeType ( int  pType )

Set the take type.

bool GetVisibility ( ) const

Get the child node currently selected.

void SetVisibility ( bool  pVisible,
bool  pRecursive = false,
bool  pRecurseLayer = false,
int  lChildIndex = -1 
)

Set the selected child node.

void DataNodeSet ( HKFCurveNode  pDataNode,
bool  pRecursive = true 
)

Set the data node.

Parameters:
pDataNode Data node to set.
pRecursive true will set this data node to all children node.
HKFCurveNode DataNodeGet ( )

Retrieve the data node.

Returns:
Pointer to the node or NULL pointer if there is none.
bool SetPreExtrapolation ( kUInt  pNewPreExtrapolation,
bool  pRespectUserLock = true 
)

Set to FCurve the Post or Pre Extrapolation Data.

If pRespectUserLock is on, no change is applied when in UserLock

Returns:
success or not.
bool SetPreExtrapolationCount ( kUInt  pNewPreExtrapolationCount,
bool  pRespectUserLock = true 
)
bool SetPostExtrapolation ( kUInt  pNewPreExtrapolation,
bool  pRespectUserLock = true 
)
bool SetPostExtrapolationCount ( kUInt  pNewPreExtrapolationCount,
bool  pRespectUserLock = true 
)
int GetContainerType ( ) const

Get the container type.

void SetContainerType ( int  pInOutType )

Set the container type.

int GetIOType ( ) const

Get the IO Type.

void SetIOType ( int  pInOutType )

Set the IO Type.

int IsExpended ( ) const

If the node is expended in FCurveEditor.

void SetExpended ( bool  pExpended )

Sets if the node is expended in FCurveEditor.

int IsMultiLayer ( ) const

If the node can have layers.

void SetMultiLayer ( bool  pMultiLayer )

Sets if the node is expended in FCurveEditor.

HKFCurveNode GetLayerNode ( int  pLayerID )

Get the fcurve node for the specified layer.

bool LookLikeSampledData ( KTime  pThresholdPeriod ) const

Check if keys may come from a plot operation.

Parameters:
pThresholdPeriod If the keys period is larger than this threshold, the function will return false.
int GetUpdateId ( ) const
int GetValuesUpdateId ( ) const
int GetNodeUpdateId ( ) const

Node update id.

bool CallbackEnable ( bool  pEnable )
bool CallbackIsEnable ( ) const
void CallbackClear ( )
void CallbackAddEvent ( int  pWhat )
void CallbackRegister ( kFCurveNodeCallback  ,
void *  pObject 
)
void CallbackUnregister ( kFCurveNodeCallback  ,
void *  pObject 
)
bool FbxStore ( KFbx pFbx,
bool  pOnlyDefaults = false,
bool  pReplaceLclTRSName = false,
bool  pSkipTimeWarpName = false,
char *  pFieldName = "Channel",
bool  pColor = true,
KFCurve::FbxStoreVersionID  pIsVersionID = KFCurve::V7 
)
bool FbxRetrieve ( KFbx pFbx,
bool  pOnlyDefaults = false,
bool  pCreateIfNotFound = true,
bool  pColor = false 
)
bool FbxInternalRetrieve ( KFbx pFbx,
bool  pOnlyDefaults = false,
bool  pCreateIfNotFound = true,
bool  pColor = false 
)
bool FbxTimeWarpNameRetrieve ( KFbx pFbx )
bool FbxLayerAndTimeWarpRetrieve ( KFbx pFbx,
bool  pOnlyDefaults = false,
bool  pCreateIfNotFound = true,
bool  pColor = false 
)
unsigned short GetUseQuaternion ( ) const [inline]

Definition at line 1047 of file kfcurvenode.h.

{return mUseQuaternion;}; 
void SetUseQuaternion ( unsigned short  pVal )
void GetCandidateState ( KFCurveNodeCandidateState pState ) const
void SetCandidateState ( const KFCurveNodeCandidateState pState,
bool  pDestroyMissingLayers = false 
)
int GetCandidateSpecificMethod ( ) const
int GetCandidateTotalMethod ( ) const
KTime GetCandidateTotalTime ( ) const
double* GetCandidateTotalValue ( )
int GetCandidateTotalValueSize ( ) const
void SetCandidateSpecificMethod ( int  pMethod )
void SetCandidateTotalMethod ( int  pMethod )
void SetCandidateTotalTime ( KTime  pTime )
void SetCandidateTotalValue ( double *  pValue )
void GetQuaternionInterpolationBezierPoints ( KTime  pCurrentTime,
KgeQuaternion &  pQ0,
KgeQuaternion &  lQ1,
KgeQuaternion &  lQ2,
KgeQuaternion &  lQ3 
)
int GetRotationOrder ( ) const [inline]

Definition at line 1135 of file kfcurvenode.h.

{return mMBRotationOrder;}; 
void SetRotationOrder ( int  pRotationOrder )
int GetLayerType ( ) const [inline]

Get layer Type ( = Mult, Add or Rotational node )

Definition at line 1139 of file kfcurvenode.h.

{ return mLayerType; }
void FromTotalCandidateToSpecificCandidate ( int  pLayerID ) [protected]
void TimeWarpSet ( HKFCurveNode  pLayer )

Set a time warp node.

HKFCurveNode TimeWarpGet ( ) const

Retrieve the time warp node.

Returns:
Pointer to the warp or null pointer if there's none.
void LayerSet ( HKFCurveNode  pLayer,
bool  pDeleteCurrentAndSubLayers 
)

Set a layer node.

HKFCurveNode LayerGet ( ) const

Retrieve the layer node.

Returns:
Pointer to the layer or null pointer if there's none.
HKFCurveNode LayerGet ( int  pLayerID )

Retrieve the layer node of a specified layerID.

Returns:
Pointer to the layer or null pointer if there's none.
void CreateLayerAt ( int  pLayerID )

Use this function to create a new layer.

virtual HKFCurveNode Find ( HKDataType  pDataType ) const [virtual]

Find the node of a certain DataType.

HKFCurveNode FindRecursive ( HKDataType  pDataType ) const

Recursively find the first child curve node by name.

Parameters:
pDataType DataType of searched child curve node.
Returns:
Pointer to child curve node or NULL if this name could not be found.
HKDataType GetDataType ( ) const

Get the DataType.

void Delete ( HKFCurveNode  pNode )

Remove and delete a child curve node.

Parameters:
pNode Node to be deleted.
HKFCurveNode ObjectLayerGet ( ) const

Set a object layer node. (pointer to equivalent node in Layer 0 -> X => X, Lcl Trans => Lcl Trans)

void ObjectLayerSet ( HKFCurveNode  pNode )

Get a object layer node.

int GetLayerID ( ) const [inline]

Get layer ID ( = Layer Number)

Definition at line 1240 of file kfcurvenode.h.

{ return mLayerID; };
void SetLayerID ( int  pLayerID ) [inline]

Set layer ID ( = Layer Number)

Definition at line 1243 of file kfcurvenode.h.

{ mLayerID = pLayerID; };
void SetLayerType ( int  pLayerType,
HKFCurveNode  pObjectLayerNode = NULL 
)

Set layer Type ( = Mult, Add or Rotational node )

HKFCurveNode GetPreviousLayer ( int  pLayerID )

Find the Node that should precede pLayerID.

HKFCurveNode RemoveLayer ( int  pLayerID,
bool  pDestroy = true 
)

Remove a node from the layer chain.

HKFCurveNode InsertOrCopyLayer ( int  pLayerId,
HKFCurveNode  pLayerNode 
)
void SingleLayerCopyFrom ( HKFCurveNode  pSource,
bool  pTransferCurve = false 
)
HKFCurveNode SingleLayerCopy ( KTime  pStart = KTIME_MINUS_INFINITE,
KTime  pStop = KTIME_INFINITE 
)
void TemplateSet ( HKFCurveNode  pTemplate )

Set a template node.

HKFCurveNode TemplateGet ( ) const

Retrieve the template node.

Returns:
Pointer to the node or null pointer if there's none.
void LayerCopyFromRecursive ( HKFCurveNode  pSource,
bool  pTransferCurve = false 
)

Copy the node content from pSource.

bool CandidateClear ( int  pLayerID = 0,
bool  pClearAllSubLayersToo = true 
)

Clear candidate.

void CandidateClearSubLayers ( )

Clear candidate recursive.

double* CandidateSet ( KTime  pTime,
double *  pValue,
int  pLayerID = 0,
int  pChildIndexInParent = -1 
)

Set the candidate in object.

double* CandidateSetSpecificLayer ( KTime  pTime,
double *  pValue,
int  pLayerID = 0 
)

Set the candidate.

double* CandidateGet ( double *  pValue,
int  pLayerID = 0 
) const

Get the candidate.

double* CandidateGetSpecificLayer ( double *  pValue,
KTime pCandidateTime,
int  pLayerID = 0 
)

Get the candidate.

void CandidateGetTotalCandidate ( double *  pValue,
KTime pCandidateTime 
) const

Get the candidate.

bool IsCandidate ( ) const

Return if this node has a candidate.

bool CandidateKey ( kFCurveIndex pLast = NULL,
int  pLayerID = 0,
bool *  pCurveMask = NULL,
bool  pZeroKey = false,
int  pInterpolation = KFCURVE_INTERPOLATION_CUBIC,
int  pTangeantMode = KFCURVE_TANGEANT_USER,
int  pContinuity = KFCURVE_CONTINUITY,
bool  pTanOverride = true,
KTime  pCandidateTime = KTIME_INFINITE,
double  pKeyIndexTolerance = 0.0 
)

Return the candidate key.

bool CandidateKeySpecificLayer ( kFCurveIndex pLast = NULL,
int  pLayerID = 0,
bool *  pCurveMask = NULL,
int  pInterpolation = KFCURVE_INTERPOLATION_CUBIC,
int  pTangeantMode = KFCURVE_TANGEANT_USER,
int  pContinuity = KFCURVE_CONTINUITY,
bool  pTanOverride = true,
KTime  pCandidateTime = KTIME_INFINITE,
double  pKeyIndexTolerance = 0.0 
)

Return the candidate key Specific Layer.

int GetCorrectLayerID ( int  pLayerID ) const
HKFCurveNode GetCorrectLayer ( int  pLayerID,
bool  pCreateLayerIfNesseary = false 
)
void ComputeCandidateForLayer ( double *  pDestLayerValue,
double *  pCandidateValue,
KTime  pTime,
int  pLayerID,
kFCurveIndex pLast 
)

A simple interface to calculate value for a candidate on a layer.

void EvaluateCurvesExceptLayerRecursiveAdd ( double *  pValue,
KTime  pTime,
int  pExceptLayerID,
kFCurveIndex pLast = NULL 
)

Calculate additive value for CandidateKey.

void EvaluateCurvesExceptLayerRecursiveMult ( double *  pValue,
KTime  pTime,
int  pExceptLayerID,
kFCurveIndex pLast = NULL 
)

Calculate multiplicative value for CandidateKey.

void EvaluateCurvesBeforeLayerRecursiveEulerXYZ ( KgeRMatrix &  pBefore,
KTime  lCandidateTime,
int  pLayerID,
kFCurveIndex pLast 
)

Calculate rotative value for CandidateKey.

void EvaluateCurvesAfterLayerRecursiveEulerXYZ ( KgeRMatrix &  pAfter,
KTime  lCandidateTime,
int  pAfterLayerID,
kFCurveIndex pLast 
)

Calculate rotative value for CandidateKey.

void EvaluateCurvesBeforeLayerRecursiveQuat ( KgeQuaternion &  pBefore,
KTime  pTime,
int  pBeforeLayerID,
kFCurveIndex pLast 
)

Calculate rotative value for CandidateKey.

void EvaluateCurvesAfterLayerRecursiveQuat ( KgeQuaternion &  pAfter,
KTime  pTime,
int  pBeforeLayerID,
kFCurveIndex pLast 
)

Calculate rotative value for CandidateKey.

double* CandidateGetWithTime ( double *  pValue,
KTime pCandidateTime 
)

Gets candidate value and time for current layer.

double* EvaluateSpecificLayer ( double *  pValue,
KTime  pTime,
int  pLayerID,
kFCurveIndex pLast = NULL 
)

Evaluate the node at pTime in a specific layer.

double* CandidateEvaluateSpecificLayer ( double *  pValue,
KTime  pTime,
int  pLayerID,
kFCurveIndex pLast = NULL 
)

CandidateEvaluate the node at pTime in a specific layer (does not uses the TimeWarp)

double* GeneralEvaluate ( double *  pValue,
KTime  pTime,
kFCurveIndex pLast = NULL,
bool  pEvaluateCandidate = true 
)

Evaluate candidate. (Call this from ObjectLayer)

double* CandidateEvaluate ( double *  pValue,
KTime  pTime,
kFCurveIndex pLast = NULL 
)

Evaluate candidate. (Call this from ObjectLayer)

bool IsEditable ( )

Return if node is editable.

void GetZeroValues ( double *  pValues ) const

Return zero values along the type of the node (translation = (0,0,0) scaling = (1,1,1)...)

void ReplaceForQuaternion ( HKFCurveNode  pSource,
KTime  pStart,
KTime  pStop,
double  pScaleStart,
double  pScaleStop,
bool  pUseExactGivenSpan,
bool  pKeyStartEndOnNoKey,
KTime  pTimeSpanOffset 
)
bool GetContinuousOffset ( double  pOffset[3],
double  pNew[3],
double  pOld[3] 
) const
void GetContinuousRotation ( double  pResultKeyValue[3],
double  pCurrentKeyValue[3],
KTime  pCurrentKeyTime 
)
void SetTimeWarpName ( char *  pName )
int KeyGetCountOnChild ( int  pChildIndex ) const
void UserLockAdd ( )

Add a lock to prevent user edits.

void UserLockRemove ( )

Remove a lock to prevent user edits.

bool IsUserLocked ( ) const

To know if there is a lock to prevent user edits.

virtual int SortedAdd ( HKFCurveNode  pNode ) [virtual]

Friends And Related Function Documentation

KFBX_DLL HKFCurveNode KFCurveNodeCreate ( KFbx pFbx,
HKFCurveNode  pParent,
bool  pOnlyDefaults,
bool  pCreateIfNotFound,
bool  pColor 
) [friend]

Member Data Documentation

unsigned short mUseQuaternion

Definition at line 1046 of file kfcurvenode.h.

int mType [protected]

Definition at line 1115 of file kfcurvenode.h.

int mReferenceCount [protected]

Definition at line 1117 of file kfcurvenode.h.

KArrayTemplate<HKFCurveNode> mNodes [protected]

Definition at line 1118 of file kfcurvenode.h.

HIKFCurve mFCurve [protected]

Definition at line 1120 of file kfcurvenode.h.

HKFCurveNode mTimeWarp [protected]

Definition at line 1121 of file kfcurvenode.h.

HKFCurveNode mLayer [protected]

Definition at line 1122 of file kfcurvenode.h.

HKFCurveNode mObjectLayer [protected]

Definition at line 1123 of file kfcurvenode.h.

HKFCurveNode mTemplate [protected]

Definition at line 1124 of file kfcurvenode.h.

HKFCurveNode mDataNode [protected]

Definition at line 1125 of file kfcurvenode.h.

HKFCurveNode mParent [protected]

Definition at line 1126 of file kfcurvenode.h.

int mLayerType [protected]

Definition at line 1128 of file kfcurvenode.h.

int mLayerID [protected]

Definition at line 1129 of file kfcurvenode.h.

int mUpdateId [protected]

Definition at line 1131 of file kfcurvenode.h.

Definition at line 1134 of file kfcurvenode.h.

int mSpecificCandidateMethod [protected]

Definition at line 1149 of file kfcurvenode.h.

int mTotalCandidateMethod [protected]

Definition at line 1150 of file kfcurvenode.h.

double mCandidateTotalValue[KFCURVENODE_CANDIDATE_MAX_COUNT] [protected]

Definition at line 1163 of file kfcurvenode.h.

Definition at line 1164 of file kfcurvenode.h.

Definition at line 1170 of file kfcurvenode.h.

int mUserLock [protected]

Definition at line 1171 of file kfcurvenode.h.

HIConnector mConnector

Definition at line 1427 of file kfcurvenode.h.


The documentation for this class was generated from the following file:

KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode
KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode KFCurveNode