#include <FCDSkinController.h>
Inheritance diagram for FCDSkinController:
Public Member Functions | |
FCDSkinController (FCDocument *document, FCDController *parent) | |
Constructor: do not use directly. | |
virtual | ~FCDSkinController () |
Destructor: do not use directly. | |
FCDEntity * | GetTarget () |
Retrieves the target entity. | |
const FCDEntity * | GetTarget () const |
See above. | |
void | SetTarget (FCDEntity *_target) |
Sets the target entity. | |
const FMMatrix44 & | GetBindShapeTransform () const |
Retrieves the bind-pose transform of the target entity. | |
void | SetBindShapeTransform (const FMMatrix44 &bindPose) |
Sets the bind-pose transform of the target entity. | |
FCDJointList & | GetJoints () |
Retrieves a list of the joints that influence this skin. | |
const FCDJointList & | GetJoints () const |
See above. | |
size_t | GetJointCount () const |
Retrieves the number of joints that influence the skin. | |
FCDJointMatrixPair * | GetJoint (size_t index) |
Retrieves a specific joint. | |
const FCDJointMatrixPair * | GetJoint (size_t index) const |
See above. | |
FCDJointMatrixPair * | FindJoint (FCDSceneNode *joint) |
Retrieves the information specific to a given joint. | |
const FCDJointMatrixPair * | FindJoint (const FCDSceneNode *joint) const |
See above. | |
void | AddJoint (FCDSceneNode *joint, const FMMatrix44 &bindPose) |
Adds a joint and its bind-pose to the list of joint influencing the skin. | |
void | RemoveJoint (FCDSceneNode *joint) |
Removes a joint from the list of joints influencing the skin. | |
FCDWeightedMatches & | GetWeightedMatches () |
Retrieves a list of the per-vertex influences for the skin. | |
const FCDWeightedMatches & | GetWeightedMatches () const |
See above. | |
FCDWeightedMatches & | GetVertexInfluences () |
Retrieves a list of the per-vertex influences for the skin. | |
const FCDWeightedMatches & | GetVertexInfluences () const |
See above. | |
size_t | GetVertexInfluenceCount () const |
Retrieves the number of per-vertex influences. | |
FCDJointWeightPairList * | GetInfluences (size_t index) |
Retrieves the per-vertex influences for a given vertex. | |
const FCDJointWeightPairList * | GetInfluences (size_t index) const |
See above. | |
void | ReduceInfluences (uint32 maxInfluenceCount, float minimumWeight=0.0f) |
Reduces the number of joints influencing each vertex. | |
FUStatus | LoadFromXML (xmlNode *skinNode) |
[INTERNAL] Reads in the <skin> element from a given COLLADA XML tree node. | |
xmlNode * | WriteToXML (xmlNode *parentNode) const |
[INTERNAL] Writes out the <skin> element to the given COLLADA XML tree node. | |
FUStatus | Link () |
[INTERNAL] Links the skin with its joints. |
The skin controller holds the information to skin a geometric object. That information includes a target/base entity and its bind-pose matrix, a list of joints and their bind pose and the influences for the joints.
The influences are a list, for each vertex of the target entity, of which joints affect the vertex and by how much.
|
Constructor: do not use directly. Instead, use the FCDController::CreateSkinController function.
|
|
Destructor: do not use directly. Instead, release the parent controller or create a new skin/morpher. |
|
Adds a joint and its bind-pose to the list of joint influencing the skin.
|
|
Retrieves the information specific to a given joint.
|
|
Retrieves the bind-pose transform of the target entity.
|
|
Retrieves the per-vertex influences for a given vertex.
|
|
Retrieves a specific joint.
|
|
Retrieves the number of joints that influence the skin.
|
|
Retrieves a list of the joints that influence this skin.
|
|
Retrieves the target entity. This entity may be a geometric entity or another controller.
|
|
Retrieves the number of per-vertex influences. This value should be equal to the number of vertices/control points within the target geometric entity.
|
|
Retrieves a list of the per-vertex influences for the skin. You should not modify the size of the list. Instead, use the SetTarget function.
|
|
Retrieves a list of the per-vertex influences for the skin. You should not modify the size of the list. Instead, use the SetTarget function.
|
|
[INTERNAL] Links the skin with its joints. Since the scene graph is imported after the controllers, this function is used to link the skin with its joints.
|
|
[INTERNAL] Reads in the <skin> element from a given COLLADA XML tree node.
|
|
Reduces the number of joints influencing each vertex. 1) All the influences with a weight less than the minimum will be removed. 2) If a vertex has more influences than the given maximum, they will be sorted and the most important influences will be kept. If some of the influences for a vertex are removed, the weight will be normalized.
|
|
Removes a joint from the list of joints influencing the skin. All the per-vertex influences that use this joint will be removed.
|
|
Sets the bind-pose transform of the target entity.
|
|
Sets the target entity. This function has very important ramifications, as the number of vertices may change. The influences list will be modified to follow the number of vertices. This entity may be a geometric entity or another controller.
|
|
[INTERNAL] Writes out the <skin> element to the given COLLADA XML tree node.
|