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

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.

Definition at line 37 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.
FbxGeometryGetGeometry ()
 Get the geometry affected by this skin deformer.
bool AddCluster (FbxCluster *pCluster)
 Add a cluster.
FbxClusterRemoveCluster (FbxCluster *pCluster)
 Remove cluster at given index.
int GetClusterCount () const
 Get the number of clusters.
FbxClusterGetCluster (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 FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object.

Protected Member Functions

virtual void Construct (const FbxSkin *pFrom)
virtual FbxStringList GetTypeFlags () const

Protected Attributes

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

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 106 of file fbxskin.h.


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:
pDeformAccuracyvalue 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:
pGeometryPointer 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:
pClusterPointer to the cluster object to add.
Returns:
true on success, false otherwise.
FbxCluster* RemoveCluster ( FbxCluster pCluster)

Remove cluster at given index.

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

Get the number of clusters.

Returns:
Number of clusters that have been added to this object.
FbxCluster* GetCluster ( int  pIndex)

Get cluster at given index.

Parameters:
pIndexIndex of cluster.
Returns:
Pointer to cluster or NULL if index is out of range.
FbxCluster const* GetCluster ( int  pIndex) const

Get cluster at given index.

Parameters:
pIndexIndex 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 97 of file fbxskin.h.

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

Set the skinning type.

Parameters:
pModeThe skinning type.
EType GetSkinningType ( ) const

Get the skinning type.

Returns:
The skinning type.
void AddControlPointIndex ( int  pIndex,
double  pBlendWeight = 0 
)

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

Parameters:
pIndexThe index of the control point.
pBlendWeightThe 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.
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.
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:
pCountThe new count.
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 FbxSkin pFrom) [protected, virtual]
virtual FbxStringList GetTypeFlags ( ) const [protected, virtual]

Member Data Documentation

double mDeformAccuracy [protected]

Definition at line 179 of file fbxskin.h.

EType mSkinningType [protected]

Definition at line 180 of file fbxskin.h.

FbxArray<int> mControlPointIndices [protected]

Definition at line 183 of file fbxskin.h.

FbxArray<double> mControlPointBlendWeights [protected]

Definition at line 184 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