#include <ILoadSaveAnimation.h>
Class used to input retargeting info when creating a map file.
Contains info on how a particular mapped node will get retargeted. You specify a node that's being retargeted, and then parameters that specify how the node will get retargeted, ie the amount to scale the position and the coordinate space where the node will get scaled. This class is used in ILoadSaveAnimation::CreateMapFile and ILoadSaveAnimation::CreateMapFileNodeAnims
Public Member Functions | |
LoadSaveRetargetData () | |
Constructor. More... | |
~LoadSaveRetargetData () | |
Public Attributes | |
MSTR | currentNodeName |
MSTR | incomingNodeName |
The name of the incoming node from the animation file that the current node is mapped to. More... | |
BOOL | absolute |
Whether or not the scale attribute will be the absolute scale value or a relative scale value that is then multiplied by a scale that's calculated from the ratio of the length of specified current linked nodes versus the length of specified incoming linked nodes. More... | |
Point3 | scale |
The scale attribute that's used to scale the retargeted position. More... | |
MSTR | currentBase |
The name of the base node whose coordinate space you will scale in. More... | |
MSTR | incomingBase |
The name of the base node whose coordinate space you will scale the incoming node in. More... | |
MSTR | currentBaseChain |
The name of the base of the current chain node that will be used to calculate the scale for retargeting when the absolute value is false. More... | |
MSTR | currentEndChain |
The name of the end chain of the current chain node that the scale will be calculated from. More... | |
MSTR | incomingBaseChain |
The name of the base of the incoming chain node that the scale will be calculated from. More... | |
MSTR | incomingEndChain |
The name of the end of the incoming chain node that the scale will be calculated from. More... | |
BOOL | FKRetargetingEnabled |
If TRUE the current FK node will retarget internally as a IK chain to a specified node. More... | |
MSTR | FKChainBase |
The name of the node where the base of the internal IK chain will end. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MaxHeapOperators | |
static UtilExport void * | operator new (size_t size) |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e) |
Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new (size_t size, const char *filename, int line) |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e, const char *filename, int line) |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new (size_t size, unsigned long flags) |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e, unsigned long flags) |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size, const char *filename, int line) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size, unsigned long flags) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e, unsigned long flags) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void | operator delete (void *ptr) |
Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e) |
Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete (void *ptr, const char *filename, int line) |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, int block_type, const char *filename, int line) |
Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line) |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete (void *ptr, unsigned long flags) |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags) |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr) |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e) |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, int block_type, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr, unsigned long flags) |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags) |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, void *placement_ptr) |
Placement new operator. More... | |
static UtilExport void | operator delete (void *ptr, void *placement_ptr) |
Placement delete operator. More... | |
|
inline |
Constructor.
|
inline |
MSTR currentNodeName |
MSTR incomingNodeName |
The name of the incoming node from the animation file that the current node is mapped to.
Note that the map file that uses this information still needs to explicitly map the tracks from the incoming tracks to the current tracks. This information doesn't override that information, just confirms it.
BOOL absolute |
Whether or not the scale attribute will be the absolute scale value or a relative scale value that is then multiplied by a scale that's calculated from the ratio of the length of specified current linked nodes versus the length of specified incoming linked nodes.
Point3 scale |
The scale attribute that's used to scale the retargeted position.
If absolute is false then it's a relative value that's multiplied by the ratio of current versus incoming chain lengths.
MSTR currentBase |
The name of the base node whose coordinate space you will scale in.
If the current base node is the same as the current node that's being being retargeted, then the node will be retargeted relative to it's first position. Note that if this value isn't set, then the world root node will be this node.
MSTR incomingBase |
The name of the base node whose coordinate space you will scale the incoming node in.
Note that if this value isn't set, then the world root node will be this node.
MSTR currentBaseChain |
The name of the base of the current chain node that will be used to calculate the scale for retargeting when the absolute value is false.
The scale is then the difference in length from the current end chain to it's base versus the incoming end chain to it's base. Note that if this value isn't set, then the world root node will be this node.
MSTR currentEndChain |
The name of the end chain of the current chain node that the scale will be calculated from.
The length is calculated by traversing the distances from the end chain to it's parents, down to the base chain node. Note that if this value isn't set, then the world root node will be this node.
MSTR incomingBaseChain |
The name of the base of the incoming chain node that the scale will be calculated from.
Note that if this value isn't set, then the world root node will be this node.
MSTR incomingEndChain |
The name of the end of the incoming chain node that the scale will be calculated from.
The length is calculated by traversing the distances from the end chain to it's parents, down to the base chain node. Note that if this value isn't set, then the world root node will be this node.
BOOL FKRetargetingEnabled |
If TRUE the current FK node will retarget internally as a IK chain to a specified node.
That way when retargeting FK chains we can correctly make sure that the end nodes(like feet) will stay planted on the ground relative to the center of mass.
MSTR FKChainBase |
The name of the node where the base of the internal IK chain will end.
So if you were retargeting a foot node, you would usually specify this node to be the hip, so that when the foot retargets as the end of an IK chain, the ankle, and knee joints will get recalculated. Remember you only need to do this for FK nodes when you want them to be constrained relative to another node, usually the\ center of mass. Note that if this node isn't set, then this sort of retargeting won't occur, even if the FKRetargetingEnabled flag is TRUE.