3ds Max C++ API Reference
LoadSaveRetargetData Class Reference

Class used to input retargeting info when creating a map file. More...

#include <ILoadSaveAnimation.h>

+ Inheritance diagram for LoadSaveRetargetData:

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 voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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 voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator 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 voidoperator 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 voidoperator 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 voidoperator 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...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

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

See also
ILoadSaveAnimation::CreateMapFile
ILoadSaveAnimation::CreateMapFileNodeAnims

Constructor & Destructor Documentation

◆ LoadSaveRetargetData()

Constructor.

33 :absolute(TRUE){};
BOOL absolute
Whether or not the scale attribute will be the absolute scale value or a relative scale value that is...
Definition: ILoadSaveAnimation.h:48

◆ ~LoadSaveRetargetData()

~LoadSaveRetargetData ( )
inline
36 {}

Member Data Documentation

◆ currentNodeName

MSTR currentNodeName

◆ incomingNodeName

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.

◆ absolute

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.

◆ scale

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.

◆ currentBase

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.

◆ incomingBase

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.

◆ currentBaseChain

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.

◆ currentEndChain

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.

◆ incomingBaseChain

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.

◆ incomingEndChain

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.

◆ FKRetargetingEnabled

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.

◆ FKChainBase

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.