This reference page is linked to from the following overview topics: List of Python Fbx classes.
Class for clusters (links).
A cluster, or link, is an entity acting on a geometry (FbxGeometry). More precisely, the cluster acts on a subset of the geometry's control points. For each control point that the cluster acts on, the intensity of the cluster's action is modulated by a weight. The link mode (ELinkMode) specifies how the weights are taken into account.
The cluster's link node specifies the node (FbxNode) that influences the control points of the cluster. If the node is animated, the control points will move accordingly.
A cluster is usually part of a skin (
ExportScene01/main.cxx, ImportScene/DisplayLink.cxx, SwitchBinding/main.cxx, and ViewScene/DrawScene.cxx.
Definition at line 54 of file fbxcluster.h.
#include <fbxcluster.h>

Public Member Functions |
|
| 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. |
|
| virtual FbxObject & | Copy (const FbxObject &pObject) |
| Copy an object content into this object.
|
|
Public Attributes |
|
| FbxString | mBeforeVersion6LinkName |
| FbxString | mBeforeVersion6AssociateModelName |
Protected Member Functions |
|
| FbxCluster (FbxManager &pManager, const char *pName) | |
| virtual void | Construct (const FbxCluster *pFrom) |
| virtual bool | ConstructProperties (bool pForceSet) |
| virtual FbxStringList | GetTypeFlags () const |
Protected Attributes |
|
| ELinkMode | mLinkMode |
| FbxString | mUserDataID |
| FbxString | mUserData |
| FbxArray< int > | mControlPointIndices |
| FbxArray< double > | mControlPointWeights |
| FbxMatrix | mTransform |
| FbxMatrix | mTransformLink |
| FbxMatrix | mTransformAssociate |
| FbxMatrix | mTransformParent |
| bool | mIsTransformParentSet |
| FbxPropertyT< FbxReference > | SrcModel |
| FbxPropertyT< FbxReference > | SrcModelReference |
Friends |
|
| class | FbxScene |
General Functions |
|
| EType | GetSubDeformerType () const |
| Get the type of the sub deformer. |
|
| void | Reset () |
| Restore the cluster to its initial state.
|
|
Link Mode, Link Node, Associate Model |
|
| enum | ELinkMode { eNormalize, eAdditive, eTotalOne } |
|
Link modes. More... |
|
| void | SetLinkMode (ELinkMode pMode) |
| Set the link mode. |
|
| ELinkMode | GetLinkMode () const |
| Get the link mode. |
|
| void | SetLink (const FbxNode *pNode) |
| Set the link node. |
|
| FbxNode * | GetLink () |
| Get the link node. |
|
| const FbxNode * | GetLink () const |
| Get the link node (as const). |
|
| void | SetAssociateModel (FbxNode *pNode) |
| Set the associate model. |
|
| FbxNode * | GetAssociateModel () const |
| Get the associate model. |
|
Control Points |
|
| A link has an array of
indices to control points and associated weights.The indices refer
to the control points in the instance of class
FbxGeometry owning the link. The weights are the influence of
the link node over the displacement of the indexed control
points. |
|
| void | AddControlPointIndex (int pIndex, double pWeight) |
| Add an element in both arrays of control
point indices and weights. |
|
| int | GetControlPointIndicesCount () const |
| Get the length of the arrays of control
point indices and weights. |
|
| int * | GetControlPointIndices () const |
| Get the array of control point indices.
|
|
| double * | GetControlPointWeights () const |
| Get the array of control point weights.
|
|
Transformation matrices |
|
A link has three
transformation matrices:
For example, given a mesh binding with several bones(links),
Transform is the global transform of the mesh at the binding
moment, TransformLink is the global transform of the bone(link) at
the binding moment, TransformAssociateModel is the global transform
of the associate model at the binding moment. |
|
| void | SetTransformMatrix (const FbxAMatrix &pMatrix) |
| Set matrix associated with the node
containing the link. |
|
| FbxAMatrix & | GetTransformMatrix (FbxAMatrix &pMatrix) const |
| Get matrix associated with the node
containing the link. |
|
| void | SetTransformLinkMatrix (const FbxAMatrix &pMatrix) |
| Set matrix associated with the link node.
|
|
| FbxAMatrix & | GetTransformLinkMatrix (FbxAMatrix &pMatrix) const |
| Get matrix associated with the link node.
|
|
| void | SetTransformAssociateModelMatrix (const FbxAMatrix &pMatrix) |
| Set matrix associated with the associate
model. |
|
| FbxAMatrix & | GetTransformAssociateModelMatrix (FbxAMatrix &pMatrix) const |
| Get matrix associated with the associate
model. |
|
| void | SetTransformParentMatrix (const FbxAMatrix &pMatrix) |
| Set matrix associated with the parent node.
|
|
| FbxAMatrix & | GetTransformParentMatrix (FbxAMatrix &pMatrix) const |
| Get matrix associated with the parent node.
|
|
| bool | IsTransformParentSet () const |
| Get the Transform Parent set flag value.
|
|
User Data |
|
| Service functions to
store and retrieve extra data about the link.Only used by the Maya
plugin, should move somewhere out of here... |
|
| void | SetUserData (const char *pUserDataID, const char *pUserData) |
| Set user data. |
|
| const char * | GetUserDataID () const |
| Get the user data identifier. |
|
| const char * | GetUserData () const |
| Get the user data. |
|
| const char * | GetUserData (const char *pUserDataID) const |
| Get the user data by identifier. |
|
| enum ELinkMode |
Link modes.
The link mode sets how the link influences the position of a control point and the relationship between the weights assigned to a control point. The weights assigned to a control point are distributed among the set of links associated with an instance of class FbxGeometry.
Definition at line 87 of file fbxcluster.h.
{
eNormalize,
eAdditive,
eTotalOne
};
| FbxCluster | ( | FbxManager & | pManager, |
| const char * | pName | ||
| ) | [protected] |
| EType GetSubDeformerType | ( | ) | const [inline, virtual] |
Get the type of the sub deformer.
Reimplemented from FbxSubDeformer.
Definition at line 66 of file fbxcluster.h.
{return eCluster; };
| void Reset | ( | ) |
Restore the cluster to its initial state.
Calling this function will clear the following:
| void SetLinkMode | ( | ELinkMode | pMode | ) |
Set the link mode.
| pMode | The link mode. |
| ELinkMode GetLinkMode | ( | ) | const |
Get the link mode.
| void SetLink | ( | const FbxNode * | pNode | ) |
Set the link node.
The link node is the node which influences the displacement of the control points. Typically, the link node is the bone a skin is attached to.
| pNode | The link node. |
| FbxNode* GetLink | ( | ) |
Get the link node.
The link node is the node which influences the displacement of the control points. Typically, the link node is the bone a skin is attached to.
NULL if FbxCluster::SetLink() has not been called
before.| const FbxNode* GetLink | ( | ) | const |
Get the link node (as const).
The link node is the node which influences the displacement of the control points. Typically, the link node is the bone a skin is attached to.
NULL if FbxCluster::SetLink() has not been called
before.| void SetAssociateModel | ( | FbxNode * | pNode | ) |
Set the associate model.
The associate model is optional. It is only relevant if the link mode is of type eAdditive. If set, the associate model is the node used as a reference to measure the relative displacement of the link node. Otherwise, the displacement of the link node is measured relative to the node containing the control points. Typically, the associate model node is the parent of the bone a skin is attached to.
| pNode | The associate model node. |
| FbxNode* GetAssociateModel | ( | ) | const |
Get the associate model.
The associate model is optional. It is only relevant if the link mode is of type eAdditive. If set, the associate model is the node used as a reference to measure the relative displacement of the link node. Otherwise, the displacement of the link node is measured relative the the node containing the control points. Typically, the associate model node is the parent of the bone a skin is attached to.
NULL if FbxCluster::SetAssociateModel() has
not been called before.| void AddControlPointIndex | ( | int | pIndex, |
| double | pWeight | ||
| ) |
Add an element in both arrays of control point indices and weights.
| pIndex | The index of the control point. |
| pWeight | The link weight for this control point. |
| int GetControlPointIndicesCount | ( | ) | const |
Get the length of the arrays of control point indices and weights.
| int* GetControlPointIndices | ( | ) | const |
Get the array of control point indices.
NULL if no control point indices have been added or
the array has been reset.| double* GetControlPointWeights | ( | ) | const |
Get the array of control point 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.
| pCount | The new count. |
| void SetTransformMatrix | ( | const FbxAMatrix & | pMatrix | ) |
Set matrix associated with the node containing the link.
| pMatrix | Transformation matrix. |
| FbxAMatrix& GetTransformMatrix | ( | FbxAMatrix & | pMatrix | ) | const |
Get matrix associated with the node containing the link.
| pMatrix | Transformation matrix to be filled with appropriate data. |
| void SetTransformLinkMatrix | ( | const FbxAMatrix & | pMatrix | ) |
Set matrix associated with the link node.
| pMatrix | Transformation matrix. |
| FbxAMatrix& GetTransformLinkMatrix | ( | FbxAMatrix & | pMatrix | ) | const |
Get matrix associated with the link node.
| pMatrix | Transformation matrix to be filled with appropriate data.. |
| void SetTransformAssociateModelMatrix | ( | const FbxAMatrix & | pMatrix | ) |
Set matrix associated with the associate model.
| pMatrix | Transformation matrix. |
| FbxAMatrix& GetTransformAssociateModelMatrix | ( | FbxAMatrix & | pMatrix | ) | const |
Get matrix associated with the associate model.
| pMatrix | Transformation matrix to be filled with appropriate data.. |
| void SetTransformParentMatrix | ( | const FbxAMatrix & | pMatrix | ) |
Set matrix associated with the parent node.
| pMatrix | Transformation matrix. |
| FbxAMatrix& GetTransformParentMatrix | ( | FbxAMatrix & | pMatrix | ) | const |
Get matrix associated with the parent node.
| pMatrix | Transformation matrix to be filled with appropriate data.. |
| bool IsTransformParentSet | ( | ) | const [inline] |
Get the Transform Parent set flag value.
true if transform matrix associated with parent
node is set.Definition at line 260 of file fbxcluster.h.
{ return mIsTransformParentSet; }
Copy an object content into this object.
| pObject | The source object to copy data from. |
Reimplemented from FbxObject.
| void SetUserData | ( | const char * | pUserDataID, |
| const char * | pUserData | ||
| ) |
Set user data.
| pUserDataID | Identifier of user data. |
| pUserData | User data. |
| const char* GetUserDataID | ( | ) | const |
Get the user data identifier.
| const char* GetUserData | ( | ) | const |
Get the user data.
| const char* GetUserData | ( | const char * | pUserDataID | ) | const |
Get the user data by identifier.
| virtual void Construct | ( | const FbxCluster * | pFrom | ) | [protected, virtual] |
| virtual bool ConstructProperties | ( | bool | pForceSet | ) | [protected, virtual] |
Reimplemented from FbxObject.
| virtual FbxStringList GetTypeFlags | ( | ) | const [protected, virtual] |
Reimplemented from FbxSubDeformer.
friend class FbxScene [friend] |
Reimplemented from FbxSubDeformer.
Definition at line 331 of file fbxcluster.h.
Definition at line 302 of file fbxcluster.h.
Definition at line 303 of file fbxcluster.h.
Definition at line 316 of file fbxcluster.h.
FbxString mUserDataID
[protected] |
Definition at line 317 of file fbxcluster.h.
Definition at line 318 of file fbxcluster.h.
FbxArray<int> mControlPointIndices
[protected] |
Definition at line 319 of file fbxcluster.h.
FbxArray<double> mControlPointWeights
[protected] |
Definition at line 320 of file fbxcluster.h.
FbxMatrix mTransform
[protected] |
Definition at line 321 of file fbxcluster.h.
FbxMatrix mTransformLink
[protected] |
Definition at line 322 of file fbxcluster.h.
FbxMatrix mTransformAssociate
[protected] |
Definition at line 323 of file fbxcluster.h.
FbxMatrix mTransformParent
[protected] |
Definition at line 324 of file fbxcluster.h.
bool mIsTransformParentSet
[protected] |
Definition at line 325 of file fbxcluster.h.
FbxPropertyT<FbxReference>
SrcModel
[protected] |
Definition at line 328 of file fbxcluster.h.
FbxPropertyT<FbxReference>
SrcModelReference
[protected] |
Definition at line 329 of file fbxcluster.h.