KFbxCharacterPose Class Reference

#include <kfbxcharacterpose.h>

Inherits KFbxObject.

Inheritance diagram for KFbxCharacterPose:

Inheritance graph
List of all members.

Detailed Description

A character pose is a character and an associated hierarchy of nodes.

Only the default position of the nodes is considered, the animation data is ignored.

You can access the content of a character pose, using the functions KFbxCharacterPose::GetOffset(), KFbxCharacterPose::GetLocalPosition(), and KFbxCharacterPose::GetGlobalPosition(). Their source code is provided inline as examples on how to access the character pose data.

To create a character pose, You must first create a hierarchy of nodes under the root node provided by function KFbxCharacterPose::GetRootNode(). Then, feed this hierarchy of nodes into the character returned by function KFbxCharacterPose::GetCharacter(). Offsets are set in the character links. Local positions are set using KFbxNode::SetDefaultT(), KFbxNode::SetDefaultR(), and KFbxNode::SetDefaultS().

To set local positions from global positions:

  1. Declare lCharacterPose as a valid pointer to a KFbxCharacterPose;
  2. Call lCharacterPose->GetRootNode()->SetLocalStateId(0, true);
  3. Call lCharacterPose->GetRootNode()->SetGlobalStateId(1, true);
  4. Call KFbxNode::SetGlobalState() for all nodes found in the hierarchy under lCharacterPose->GetRootNode();
  5. Call lCharacterPose->GetRootNode()->ComputeLocalState(1, true);
  6. Call lCharacterPose->GetRootNode()->SetCurrentTakeFromLocalState(KTIME_ZERO, true).

Definition at line 90 of file kfbxcharacterpose.h.

Public Member Functions

void Reset ()
 Reset to an empty character pose.
KFbxNode * GetRootNode () const
 Get the root node.
KFbxCharacter * GetCharacter () const
 Get the character.
bool GetOffset (ECharacterNodeId pCharacterNodeId, KFbxXMatrix &pOffset)
 Get offset matrix for a given character node.
bool GetLocalPosition (ECharacterNodeId pCharacterNodeId, KFbxVector4 &pLocalT, KFbxVector4 &pLocalR, KFbxVector4 &pLocalS)
 Get local position for a given character node.
bool GetGlobalPosition (ECharacterNodeId pCharacterNodeId, KFbxXMatrix &pGlobalPosition)
 Get global position for a given character node.


Member Function Documentation

void Reset (  ) 

Reset to an empty character pose.

KFbxNode* GetRootNode (  )  const

Get the root node.

Returns:
Pointer to the root node.

KFbxCharacter* GetCharacter (  )  const

Get the character.

Returns:
Pointer to the character.

bool GetOffset ( ECharacterNodeId  pCharacterNodeId,
KFbxXMatrix &  pOffset 
) [inline]

Get offset matrix for a given character node.

Parameters:
pCharacterNodeId Character Node ID.
pOffset Receives offset matrix.
Returns:
true if successful, false otherwise.

Definition at line 113 of file kfbxcharacterpose.h.

References KFbxCharacterLink::mOffsetR, KFbxCharacterLink::mOffsetS, KFbxCharacterLink::mOffsetT, and KFbxXMatrix::SetTRS().

bool GetLocalPosition ( ECharacterNodeId  pCharacterNodeId,
KFbxVector4 &  pLocalT,
KFbxVector4 &  pLocalR,
KFbxVector4 &  pLocalS 
) [inline]

Get local position for a given character node.

Parameters:
pCharacterNodeId Character Node ID.
pLocalT Receives local translation vector.
pLocalR Receives local rotation vector.
pLocalS Receives local scaling vector.
Returns:
true if successful, false otherwise.

Definition at line 133 of file kfbxcharacterpose.h.

References KFbxNode::GetLocalRFromDefaultTake(), KFbxNode::GetLocalSFromDefaultTake(), KFbxNode::GetLocalTFromDefaultTake(), and KFbxCharacterLink::mNode.

bool GetGlobalPosition ( ECharacterNodeId  pCharacterNodeId,
KFbxXMatrix &  pGlobalPosition 
) [inline]

Get global position for a given character node.

Parameters:
pCharacterNodeId Character Node ID.
pGlobalPosition Receives global position.
Returns:
true if successful, false otherwise.

Definition at line 153 of file kfbxcharacterpose.h.

References KFbxNode::GetGlobalFromDefaultTake(), and KFbxCharacterLink::mNode.