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

FbxSkin Class Reference

This reference page is linked to from the following overview topics: List of Python Fbx classes.


Search for all occurrences

Detailed Description

Skin deformer class.

A skin deformer contains clusters (FbxCluster). Each cluster acts on a subset of the geometry's control points, with different weights. For example, a mesh of humanoid shape can have a skin attached, that describes the way the humanoid mesh is deformed by bones. When the bones are animated, the clusters act on the geometry to animate it too.

The corresponding deformer types are FbxDeformer::eSkin.

Examples:

ExportScene01/main.cxx, ImportScene/DisplayLink.cxx, SwitchBinding/main.cxx, and ViewScene/DrawScene.cxx.

Definition at line 42 of file fbxskin.h.

#include <fbxskin.h>

Inheritance diagram for FbxSkin:
Inheritance graph
[legend]

List of all members.

Public Types

enum   EType { eRigid, eLinear, eDualQuaternion, eBlend }
 

Skinning type.

More...

Public Member Functions

void  SetDeformAccuracy (double pDeformAccuracy)
  Set deformation accuracy.
double  GetDeformAccuracy () const
  Get deformation accuracy.
bool  SetGeometry (FbxGeometry *pGeometry)
  Set the geometry affected by this skin deformer.
FbxGeometry GetGeometry ()
  Get the geometry affected by this skin deformer.
bool  AddCluster (FbxCluster *pCluster)
  Add a cluster.
FbxCluster RemoveCluster (FbxCluster *pCluster)
  Remove cluster at given index.
int  GetClusterCount () const
  Get the number of clusters.
FbxCluster GetCluster (int pIndex)
  Get cluster at given index.
FbxCluster const *  GetCluster (int pIndex) const
  Get cluster at given index.
EDeformerType  GetDeformerType () const
  Get the type of the deformer.
void  SetSkinningType (EType pType)
  Set the skinning type.
EType  GetSkinningType () const
  Get the skinning type.
virtual FbxObject Copy (const FbxObject &pObject)
  Copy an object content into this object.

Protected Member Functions

  FbxSkin (FbxManager &pManager, char const *pName)
virtual FbxStringList  GetTypeFlags () const

Protected Attributes

double  mDeformAccuracy
EType  mSkinningType
FbxArray< int >  mControlPointIndices
FbxArray< double >  mControlPointBlendWeights

Friends

class  FbxScene

Control Points

A skin has an array of indices to control points and associated blend weights.The indices refer to the control points in the instance of class FbxGeometry. The blend weights are the influence of the different skinning type over the deformation effect of the indexed control points.
void  AddControlPointIndex (int pIndex, double pBlendWeight=0)
  Add an element in both arrays of control point indices and blendWeights.
int  GetControlPointIndicesCount () const
  Get the length of the arrays of control point indices and blend weights.
int *  GetControlPointIndices () const
  Get the array of control point indices.
double *  GetControlPointBlendWeights () const
  Get the array of control point blend weights.
void  SetControlPointIWCount (int pCount)
  Set the array size for the three arrays: the array of control point indices, the array of weights and the array of blend weights.

Member Enumeration Documentation

enum EType

Skinning type.

The skinning type decides which method will be used to do the skinning.

  • eRigid Type eRigid means rigid skinning, which means only one joint can influence each control point.
  • eLinear Type eLinear means the classic linear smooth skinning.
  • eDualQuaternion Type eDualQuaternion means the dual quaternion smooth skinning.
  • eBlend Type eBlend means to blend classic linear and dual quaternion smooth skinning according to blend weights.
Enumerator:
eRigid 
eLinear 
eDualQuaternion 
eBlend 

Definition at line 111 of file fbxskin.h.


Constructor & Destructor Documentation

FbxSkin ( FbxManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

void SetDeformAccuracy ( double  pDeformAccuracy )

Set deformation accuracy.

Remarks:
Use the Accuracy option to set the accuracy of skin deformations. 100% is full accuracy and 1% is a rough estimation of the envelope deformation.
Parameters:
pDeformAccuracy value for deformation accuracy.
double GetDeformAccuracy ( ) const

Get deformation accuracy.

Returns:
deformation accuracy value.
bool SetGeometry ( FbxGeometry pGeometry )

Set the geometry affected by this skin deformer.

Parameters:
pGeometry Pointer to the geometry object to set.
Returns:
true on success, false otherwise.
FbxGeometry* GetGeometry ( )

Get the geometry affected by this skin deformer.

Returns:
a pointer to the geometry if set or NULL.
bool AddCluster ( FbxCluster pCluster )

Add a cluster.

Parameters:
pCluster Pointer to the cluster object to add.
Returns:
true on success, false otherwise.
Examples:
ExportScene01/main.cxx, and SwitchBinding/main.cxx.
FbxCluster* RemoveCluster ( FbxCluster pCluster )

Remove cluster at given index.

Parameters:
pCluster Pointer to the cluster to remove from this skin deformer.
Returns:
Pointer to cluster or NULL if pCluster is not owned by this skin deformer.
Examples:
SwitchBinding/main.cxx.
int GetClusterCount ( ) const

Get the number of clusters.

Returns:
Number of clusters that have been added to this object.
Examples:
ExportScene01/main.cxx, SwitchBinding/main.cxx, and ViewScene/DrawScene.cxx.
FbxCluster* GetCluster ( int  pIndex )

Get cluster at given index.

Parameters:
pIndex Index of cluster.
Returns:
Pointer to cluster or NULL if index is out of range.
Examples:
ExportScene01/main.cxx, SwitchBinding/main.cxx, and ViewScene/DrawScene.cxx.
FbxCluster const* GetCluster ( int  pIndex ) const

Get cluster at given index.

Parameters:
pIndex Index of cluster.
Returns:
Pointer to cluster or NULL if index is out of range.
EDeformerType GetDeformerType ( ) const [inline, virtual]

Get the type of the deformer.

Returns:
Deformer type identifier.

Reimplemented from FbxDeformer.

Definition at line 102 of file fbxskin.h.

{return eSkin; };
void SetSkinningType ( EType  pType )

Set the skinning type.

Parameters:
pMode The skinning type.
EType GetSkinningType ( ) const

Get the skinning type.

Returns:
The skinning type.
Examples:
ViewScene/DrawScene.cxx.
void AddControlPointIndex ( int  pIndex,
double  pBlendWeight = 0 
)

Add an element in both arrays of control point indices and blendWeights.

Parameters:
pIndex The index of the control point.
pBlendWeight The blend weight for this control point. The value should between 0 and 1. Any value that is less than 0 will be set to 0, any value that is greater than 1 will be set to 1. 0 means completely linear skinning, 1 means completely dual quaternion skinning, a value between 0 and 1 means the weighted blending of the above two skinning methods.
int GetControlPointIndicesCount ( ) const

Get the length of the arrays of control point indices and blend weights.

Returns:
Length of the arrays of control point indices and blend weights. Returns 0 if no control point indices have been added or the arrays have been reset.
Examples:
ViewScene/DrawScene.cxx.
int* GetControlPointIndices ( ) const

Get the array of control point indices.

Returns:
Pointer to the array of control point indices. NULL if no control point indices have been added or the array has been reset.
double* GetControlPointBlendWeights ( ) const

Get the array of control point blend weights.

Returns:
Pointer to the array of control point blend weights. NULL if no control point indices have been added or the array has been reset.
Examples:
ViewScene/DrawScene.cxx.
void SetControlPointIWCount ( int  pCount )

Set the array size for the three arrays: the array of control point indices, the array of weights and the array of blend weights.

Parameters:
pCount The new count.
virtual FbxObject& Copy ( const FbxObject pObject ) [virtual]

Copy an object content into this object.

Parameters:
pObject The 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 FbxStringList GetTypeFlags ( ) const [protected, virtual]

Friends And Related Function Documentation

friend class FbxScene [friend]

Reimplemented from FbxDeformer.

Definition at line 198 of file fbxskin.h.


Member Data Documentation

double mDeformAccuracy [protected]

Definition at line 191 of file fbxskin.h.

EType mSkinningType [protected]

Definition at line 192 of file fbxskin.h.

FbxArray<int> mControlPointIndices [protected]

Definition at line 195 of file fbxskin.h.

FbxArray<double> mControlPointBlendWeights [protected]

Definition at line 196 of file fbxskin.h.


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

FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin
FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin FbxSkin