Public Member Functions

FbxSkeleton Class Reference

This reference page is linked to from the following overview topics: Supported Scene Elements, FBX Node Attributes, List of Python Fbx classes.


Search for all occurrences

Detailed Description

This class specializes a node attribute to represent the elements forming "bone" chains.

The FbxSkeleton name of the class comes from the analogy with the human body skeletal structure. In fact, an object of this type is nothing more than a transform node with special properties that are useful for its graphical representation and during IK/FK and skin deformation computations. Typically, a scene will contain chains of FbxSkeleton node attributes that, together, form a skeleton segment. For instance, the representation of the leg of a character can be achieved using one parent node with the attribute eRoot, followed by one child (femur) of type eLimb, this child having a child also (tibia) of the same type. Finally, terminated with a last node attribute of type eEffector (ankle).

Definition at line 34 of file fbxskeleton.h.

#include <fbxskeleton.h>

Inheritance diagram for FbxSkeleton:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual FbxNodeAttribute::EType GetAttributeType () const
 Return the type of node attribute (i.e: FbxNodeAttribute::EType::eSkeleton).
void Reset ()
 Reset the skeleton to default values and type to eRoot.

Skeleton Properties

enum  EType { eRoot, eLimb, eLimbNode, eEffector }
 

Skeleton types.

More...
void SetSkeletonType (EType pSkeletonType)
 Set the skeleton type.
EType GetSkeletonType () const
 Get the skeleton type.
bool GetSkeletonTypeIsSet () const
 Get a flag to know if the skeleton type was set.
EType GetSkeletonTypeDefaultValue () const
 Get the default value for the skeleton type.
double GetLimbLengthDefaultValue () const
 Get the default value for the limb length.
double GetLimbNodeSizeDefaultValue () const
 Get the default value for the limb node size.
bool SetLimbNodeColor (const FbxColor &pColor)
 Set limb or limb node color.
FbxColor GetLimbNodeColor () const
 Get limb or limb node color.
bool GetLimbNodeColorIsSet () const
 Get a flag to know if the limb node color was set.
FbxColor GetLimbNodeColorDefaultValue () const
 Get the default value for the limb node color.
bool IsSkeletonRoot () const
 To see if this skeleton is Root.

Property Names

static const char * sSize
static const char * sLimbLength

Property Default Values

static const FbxDouble sDefaultSize
static const FbxDouble sDefaultLimbLength
FbxPropertyT< FbxDoubleSize
 This property handles the limb node size.
FbxPropertyT< FbxDoubleLimbLength
 This property handles the skeleton limb length.
EType mSkeletonType
bool mLimbLengthIsSet
bool mLimbNodeSizeIsSet
bool mLimbNodeColorIsSet
bool mSkeletonTypeIsSet
virtual FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object.
virtual void Construct (const FbxSkeleton *pFrom)
virtual void ConstructProperties (bool pForceSet)
 Optional property constructor override, automatically called by default constructor.
void Reset (bool pResetProperties)
virtual const char * GetTypeName () const
virtual FbxStringList GetTypeFlags () const

Member Enumeration Documentation

enum EType

Skeleton types.

Remarks:
eEffector is synonymous to eRoot.
The eLimbNode type is a bone defined uniquely by a transform and a size value while
the eLimb type is a bone defined by a transform and a length.
Enumerator:
eRoot 

First element of a chain.

eLimb 

Chain element.

eLimbNode 

Chain element.

eEffector 

Last element of a chain.

Reimplemented from FbxNodeAttribute.

Definition at line 55 of file fbxskeleton.h.


Member Function Documentation

virtual FbxNodeAttribute::EType GetAttributeType ( ) const [virtual]

Return the type of node attribute (i.e: FbxNodeAttribute::EType::eSkeleton).

Reimplemented from FbxNodeAttribute.

void Reset ( )

Reset the skeleton to default values and type to eRoot.

void SetSkeletonType ( EType  pSkeletonType)

Set the skeleton type.

Parameters:
pSkeletonTypeSkeleton type identifier.
EType GetSkeletonType ( ) const

Get the skeleton type.

Returns:
Skeleton type identifier.
bool GetSkeletonTypeIsSet ( ) const

Get a flag to know if the skeleton type was set.

Returns:
true if a call to SetSkeletonType() has been made.
Remarks:
When the attribute is not set, the application can choose to ignore the attribute or use the default value.
The flag is set back to false when Reset() is called.
EType GetSkeletonTypeDefaultValue ( ) const

Get the default value for the skeleton type.

Returns:
eRoot
double GetLimbLengthDefaultValue ( ) const

Get the default value for the limb length.

Returns:
1.0
double GetLimbNodeSizeDefaultValue ( ) const

Get the default value for the limb node size.

Returns:
100.0
bool SetLimbNodeColor ( const FbxColor pColor)

Set limb or limb node color.

Parameters:
pColorRGB values for the limb color.
Returns:
true if skeleton type is eLimb or eLimbNode, false otherwise.
Remarks:
Limb or limb node color is only set if skeleton type is eLimb or eLimbNode.
FbxColor GetLimbNodeColor ( ) const

Get limb or limb node color.

Returns:
Currently set limb color.
Remarks:
Limb or limb node color is only valid if skeleton type is eLimb or eLimbNode.
bool GetLimbNodeColorIsSet ( ) const

Get a flag to know if the limb node color was set.

Returns:
true if a call to SetLimbNodeColor() has been made.
Remarks:
When the attribute is not set, the application can choose to ignore the attribute or use the default value.
The flag is set back to false when Reset() is called.
FbxColor GetLimbNodeColorDefaultValue ( ) const

Get the default value for the limb node color.

Returns:
R=0.8, G=0.8, B=0.8
bool IsSkeletonRoot ( ) const

To see if this skeleton is Root.

Returns:
true if this is root of the skeleton, false otherwise.
Remarks:
if a skeleton node do not have a parent or its parent is not a skeleton node itself, then this skeleton is root in the hierarchy.
virtual FbxObject& Copy ( const FbxObject pObject) [virtual]

Copy an object content into this object.

Parameters:
pObjectThe source object to copy data from.
Returns:
Returns the destination object being modified by the source.
Remarks:
This function replace the assignment operator (operator=). It will copy all property values and the name. Connections are NOT copied.

Reimplemented from FbxObject.

virtual void Construct ( const FbxSkeleton pFrom) [protected, virtual]
virtual void ConstructProperties ( bool  pForceSet) [protected, virtual]

Optional property constructor override, automatically called by default constructor.

Parameters:
pForceSetIf the property value must be set regardless of default value.
Remarks:
If your object have properties, they must be initialized in this function.

Reimplemented from FbxNodeAttribute.

void Reset ( bool  pResetProperties) [protected]
virtual const char* GetTypeName ( ) const [protected, virtual]
virtual FbxStringList GetTypeFlags ( ) const [protected, virtual]

Member Data Documentation

const char* sSize [static]

Definition at line 133 of file fbxskeleton.h.

const char* sLimbLength [static]

Definition at line 134 of file fbxskeleton.h.

const FbxDouble sDefaultSize [static]

Definition at line 140 of file fbxskeleton.h.

const FbxDouble sDefaultLimbLength [static]

Definition at line 141 of file fbxskeleton.h.

This property handles the limb node size.

To access this property do: Size.Get(). To set this property do: Size.Set(FbxDouble).

Default value is 100.0

Definition at line 157 of file fbxskeleton.h.

This property handles the skeleton limb length.

To access this property do: LimbLength.Get(). To set this property do: LimbLength.Set(FbxDouble).

FbxSkeleton is a node attribute and it will be attached to a FbxNode which represents the transform. Given a chain of skeleton nodes the parent and child skeletons will be attached to a parent node and a child node. The orientation of the limb is computed from the vector between the parent and child position (from parent to child). The LimbLength represents the proportion of the parent node's position to the child node's position which is used to compute the actual limb length. The default value of 1.0 means the LimbLength is equal to the length between the parent and child node's position. So if the value is 0.5, it means the LimbLength will be half of the length between the parent and child node's position.

Definition at line 172 of file fbxskeleton.h.

EType mSkeletonType [protected]

Definition at line 189 of file fbxskeleton.h.

bool mLimbLengthIsSet [protected]

Definition at line 191 of file fbxskeleton.h.

bool mLimbNodeSizeIsSet [protected]

Definition at line 192 of file fbxskeleton.h.

bool mLimbNodeColorIsSet [protected]

Definition at line 193 of file fbxskeleton.h.

bool mSkeletonTypeIsSet [protected]

Definition at line 194 of file fbxskeleton.h.


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

FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton
FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton FbxSkeleton