#include <FCDMorphController.h>
Inheritance diagram for FCDMorphController:
Public Member Functions | |
FCDMorphController (FCDocument *document, FCDController *parent) | |
Constructor: do not use directly. | |
virtual | ~FCDMorphController () |
Destructor: do not use directly. | |
FCDEntity * | GetBaseTarget () |
Retrieves the base entity controlled by this morpher. | |
const FCDEntity * | GetBaseTarget () const |
See above. | |
void | SetBaseTarget (FCDEntity *entity) |
Sets the base entity controlled by this morpher. | |
FCDMorphTargetList & | GetTargets () |
Retrieves the list of the morph targets. | |
const FCDMorphTargetList & | GetTargets () const |
See above. | |
size_t | GetTargetCount () const |
Retrieves the number of morph targets. | |
FCDMorphTarget * | GetTarget (size_t index) |
Retrieves a specific morph target. | |
const FCDMorphTarget * | GetTarget (size_t index) const |
See above. | |
FCDMorphTarget * | AddTarget (FCDGeometry *geometry=NULL, float weight=0.0f) |
Adds a new morph target. | |
void | ReleaseTarget (FCDMorphTarget *target) |
Releases a morph target used in this morpher. | |
FUDaeMorphMethod::Method | GetMethod () const |
Retrieves the method used to interpolate between the different morph targets. | |
void | SetMethod (FUDaeMorphMethod::Method _method) |
Sets the method used to interpolate between the different morph targets. | |
bool | IsSimilar (FCDEntity *entity) |
Retrieves whether a given entity is similar to the base target. | |
FUStatus | LoadFromXML (xmlNode *morphNode) |
[INTERNAL] Reads in the <morph> element from a given COLLADA XML tree node. | |
xmlNode * | WriteToXML (xmlNode *parentNode) const |
[INTERNAL] Writes out the <morph> element to the given COLLADA XML tree node. | |
FUStatus | Link () |
[INTERNAL] Links the controller with its entities. |
A morpher holds a base geometry and a set of morph targets that contains a geometry and a weight. The geometry must be similar to the base geometry and the weights are used to interpolate the vertex positions of the base geometry. To be similar, two meshes must have the same number of vertices and two splines must have the same number of control points. The morphing weights can be animated.
There are two interpolation functions defined in COLLADA. See the FUDaeMorphMethod::Method enumerated type for more information.
|
Constructor: do not use directly. Instead, use the FCDController::CreateMorphController function.
|
|
Destructor: do not use directly. Instead, release the parent controller or create a new skin/morpher. |
|
Adds a new morph target.
|
|
Retrieves the base entity controlled by this morpher. This entity may be a geometry or another controller.
|
|
Retrieves the method used to interpolate between the different morph targets.
|
|
Retrieves a specific morph target.
|
|
Retrieves the number of morph targets.
|
|
Retrieves the list of the morph targets. All the morph target geometries should be similar to the base entity.
|
|
Retrieves whether a given entity is similar to the base target. Entities must be similar to be able to morph between them.
|
|
[INTERNAL] Links the controller with its entities. Since geometries are loaded before the controllers, no linkage is necessary.
|
|
[INTERNAL] Reads in the <morph> element from a given COLLADA XML tree node.
|
|
Releases a morph target used in this morpher.
|
|
Sets the base entity controlled by this morpher. This entity may be a geometry or another controller. Since the morph targets must be similar to this entity, all the morph targets that are not similar to the new base entity will be removed.
|
|
Sets the method used to interpolate between the different morph targets.
|
|
[INTERNAL] Writes out the <morph> element to the given COLLADA XML tree node.
|