3ds Max C++ API Reference
ILoadSaveAnimation Class Referenceabstract

The interface to the functionality for loading saving XML animation files. More...

#include <ILoadSaveAnimation.h>

+ Inheritance diagram for ILoadSaveAnimation:

Public Types

Enums
enum  NodeMapType { eMatchExactName =0 , eMatchClosestName =1 , eMatchHierarchy =2 }
 Enum for the type of node mapping to due when creating a map file using CreateMapFile. More...
 
enum  SaveFlags {
  eAnimatedTracks = 0x1 , eIncludeConstraints = 0x2 , eKeyableTracks = 0x4 , eSaveSeg = 0x8 ,
  eSegPerFrame = 0x10
}
 Enum for different flags to pass in when calling ILoadSaveAnimation::SaveAnimation and ILoadSaveAnimation10::SetUpAnimsForSaveExt. More...
 
enum  LoadFlags { eRelative = 0x1 , eInsert = 0x2 , eStripLayers = 0x4 , eIncludePB2s = 0x8 }
 Enum for different flags to pass in when calling ILoadSaveAnimation::LoadAnimation and ILoadSaveAnimation10::SetUpAnimsForLoadExt. More...
 
enum  MapFlags { eMapControllerExactName = 0x1 , eMapControllerType = 0x2 , eStripLayersInMap = 0x4 }
 Enum for different flags to pass in when calling ILoadSaveAnimation::CreateMapFile and ILoadSaveAnimation10::SetUpAnimsForMapExt. More...
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 

Public Member Functions

virtual BOOL GetUserAttributes (const MCHAR *filename, Tab< MSTR * > &userAttributes, Tab< MSTR * > &userValues) const =0
 Get the user attributes that are present out of the corresponding animation or map file. More...
 
virtual void LoadForMixing (BOOL flag) const =0
 
Dialog Functions
virtual const MCHARSaveAnimationDlg () const =0
 Brings up the Save Animation dialog. More...
 
virtual const MCHARLoadAnimationDlg () const =0
 Brings up the Load Animation dialog. More...
 
virtual BOOL GetLoadAndMapFileFromDlg (MCHAR fileName[MAX_PATH], MCHAR mapFileName[MAX_PATH]) const =0
 Brings up the Load Animation dialog and returns the fileName and the mapFileName in the passed in parameters. More...
 
virtual BOOL GetMultLoadAndMapFileFromDlg (Tab< MSTR * > &names, MCHAR *mapName) const =0
 Brings up the Load Animation dialog and returns a list of possible multiple file names in the passed in parameters. More...
 
Save Functions
virtual BOOL SaveAnimation (const MCHAR *filename, Tab< INode * > &nodes, Tab< MSTR * > &userAttributes, Tab< MSTR * > &userValues, DWORD saveFlag, Interval &segInterval) const =0
 Save the animation from the current nodes into the specified file. More...
 
virtual BOOL SaveAnimationNodeAnims (const MCHAR *filename, MaxSDK::Array< NodeAndAnims > &nodeAnims, Tab< MSTR * > &userAttributes, Tab< MSTR * > &userValues, DWORD saveFlag, Interval &segInterval) const =0
 Save the animation from the current nodeAnim tracks into the specified file. More...
 
Load Functions
virtual BOOL LoadAnimation (const MCHAR *filename, Tab< INode * > &nodes, DWORD loadFlag, TimeValue insertTime, BOOL useMapFile, MCHAR *mapFileName) const =0
 Load the animation from the current file onto the specified nodes using any mapping that's specified. More...
 
virtual BOOL LoadAnimationNodeAnims (const MCHAR *filename, MaxSDK::Array< NodeAndAnims > &nodeAnims, DWORD loadFlag, TimeValue insertTime, BOOL useMapFile, MCHAR *mapFileName) const =0
 Load the animation from the current file onto the specified nodeAnim tracks using any mapping that's specified. More...
 
Map Functions
virtual BOOL CreateMapFile (const MCHAR *filename, Tab< INode * > &currentNodes, const MCHAR *incomingAnimationFile, Tab< MSTR * > &userAttributes, Tab< MSTR * > &userValues, Tab< LoadSaveRetargetData > &retargetData, int nodeMapType, DWORD mapFlag) const =0
 Create a map file based upon nodes to map to, the animation file that will be loaded, and the specific mapping protocols. More...
 
virtual BOOL CreateMapFileNodeAnims (const MCHAR *filename, MaxSDK::Array< NodeAndAnims > &nodeAnims, const MCHAR *incomingAnimationFile, Tab< MSTR * > &userAttributes, Tab< MSTR * > &userValues, Tab< LoadSaveRetargetData > &retargetData, int nodeMapType, DWORD mapFlag) const =0
 Create a map file based upon nodeAnim tracks to map to, the animation file that will be loaded, and the specific mapping protocols. More...
 
File and Directory Functions
virtual const MCHARGetAnimFileExtension () const =0
 Get the extension used for the animation files. More...
 
virtual const MCHARGetAnimMapFileExtension () const =0
 Get the extension used for the animation map files. More...
 
virtual const MCHARGetAnimFileDirectory () const =0
 Get the current directory for finding animation files. More...
 
virtual void GetAnimFileDirectories (Tab< MSTR * > &animFileDirectories) const =0
 Get all of the anim file directories in the load/save UI. More...
 
virtual void GetMapFiles (Tab< MSTR * > &mapFiles) const =0
 Get all of the recently used map files in the load/save UI. More...
 
virtual const MCHARGetAnimMapFile () const =0
 Get the current map file. More...
 
virtual void SetAnimFileDirectory (const MCHAR *directory)=0
 Set the current directory for finding animation files. More...
 
virtual void SetAnimMapFile (const MCHAR *filename)=0
 Set the latest map file found. More...
 
Getting Animation Tracks
virtual void SetUpAnimsForSave (Tab< INode * > &nodeTab, BOOL animatedTracks, BOOL includeConstraints, BOOL keyable, MaxSDK::Array< NodeAndAnims > &nodeAnims) const =0
 Sets up the anim list to be used for saving out an xml animation file. More...
 
virtual void SetUpAnimsForLoad (Tab< INode * > &nodeTab, BOOL includePB2s, MaxSDK::Array< NodeAndAnims > &nodeAnims) const =0
 Sets up the anim list to be used for loading in an xml animation file or putting nodes and their tracks into the mixer. More...
 
virtual void SetUpAnimsForMap (Tab< INode * > &nodeTab, MaxSDK::Array< NodeAndAnims > &nodeAnims) const =0
 Sets up the anim list to be used for mapping an xml animation file. More...
 
- Public Member Functions inherited from FPInterfaceDesc
CoreExport FPInterfaceDesc ()
 
CoreExport FPInterfaceDesc (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, ULONG flag,...)
 
CoreExport ~FPInterfaceDesc ()
 
virtual void Init ()
 
LifetimeType LifetimeControl ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
CoreExport void LoadDescriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *pCD, ULONG flag,...)
 
CoreExport void AppendFunction (int id,...)
 Add a new function to this interface descriptor. More...
 
CoreExport void AppendProperty (int id,...)
 Add a new property to this interface descriptor. More...
 
CoreExport void AppendEnum (int id,...)
 Add a new enum to this interface descriptor. More...
 
CoreExport void SetClassDesc (ClassDesc *i_cd)
 
CoreExport va_list check_fn (va_list ap, int id)
 
CoreExport va_list scan_fn (va_list ap, int id, int index)
 
CoreExport va_list check_prop (va_list ap, int id)
 
CoreExport va_list scan_prop (va_list ap, int id, int index)
 
CoreExport va_list check_enum (va_list ap, EnumID id)
 
CoreExport va_list scan_enum (va_list ap, EnumID id, int index)
 
FPInterfaceDescGetDesc ()
 
Interface_ID GetID ()
 
CoreExport FPFunctionDefGetFnDef (FunctionID fid)
 
ActionTableGetActionTable ()
 
CoreExport void EnableActions (BOOL onOff)
 
virtual CoreExport HINSTANCE HInstance ()
 
virtual CoreExport const MCHARGetRsrcString (StringResID id)
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

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...
 
- Public Attributes inherited from FPInterfaceDesc
Interface_ID ID
 
MSTR internal_name
 
StringResID description
 
ClassDesccd
 
USHORT flags
 
Tab< FPFunctionDef * > functions
 
Tab< FPPropDef * > props
 
Tab< FPEnum * > enumerations
 
MSPluginClasspc
 
Rolloutrollout
 
ActionTableaction_table
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPInterfaceDesc
CoreExport void load_descriptor (Interface_ID id, const MCHAR *int_name, StringResID descr, ClassDesc *cd, USHORT flag, va_list ap)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 

Detailed Description

The interface to the functionality for loading saving XML animation files.

This class contains key functionality for saving and creating both animation and map files and for loading in animation. You get this interface by calling GetILoadSaveAnimation()

Member Enumeration Documentation

◆ NodeMapType

Enum for the type of node mapping to due when creating a map file using CreateMapFile.

See also
ILoadSaveAnimation::CreateMapFile eMatchExactName means that the nodes names need to match up exactly to map, eMatchClosestName specifies that the closest names will map, eMatchHierarchy specifies that the nodes will try to match by hierarchy.
Enumerator
eMatchExactName 
eMatchClosestName 
eMatchHierarchy 
@ eMatchExactName
Definition: ILoadSaveAnimation.h:126
@ eMatchClosestName
Definition: ILoadSaveAnimation.h:126
@ eMatchHierarchy
Definition: ILoadSaveAnimation.h:126

◆ SaveFlags

enum SaveFlags

Enum for different flags to pass in when calling ILoadSaveAnimation::SaveAnimation and ILoadSaveAnimation10::SetUpAnimsForSaveExt.

If eAnimatedTracks is set, then a track needs to be animated. If eIncludeConstraints is set, and if eAnimatedTracks is set, constraints will also be considered to be animated. If eKeyable is set, then keyable tracks will be saved if eSaveSeg is set, then a segment of time will be saved. if eSegPerFrame is set then a key per frame will be saved over a saved segment.

Enumerator
eAnimatedTracks 
eIncludeConstraints 
eKeyableTracks 
eSaveSeg 
eSegPerFrame 
135  {eAnimatedTracks = 0x1, eIncludeConstraints = 0x2, eKeyableTracks = 0x4,eSaveSeg = 0x8,
136  eSegPerFrame = 0x10};
@ eSaveSeg
Definition: ILoadSaveAnimation.h:135
@ eKeyableTracks
Definition: ILoadSaveAnimation.h:135
@ eAnimatedTracks
Definition: ILoadSaveAnimation.h:135
@ eSegPerFrame
Definition: ILoadSaveAnimation.h:136
@ eIncludeConstraints
Definition: ILoadSaveAnimation.h:135

◆ LoadFlags

enum LoadFlags

Enum for different flags to pass in when calling ILoadSaveAnimation::LoadAnimation and ILoadSaveAnimation10::SetUpAnimsForLoadExt.

If eRelative is set, then nodes who are children of the scene root will keep their original position and orientation and the animation will be loaded relatively to that, otherwise the animation will be loaded in absolutely. If eInsert is set, then the animation will be inserted at the specified time and the existing animation will be moved over, otherwise the animation will replaced the existing animation at that time. If eStripLayers is set, then the active layer name will be stripped out from the current node controllers that have layers. If eIncludePB2s is set then we will include ParamBlock2 tracks when loading into the animation. Note that the eIncludePB2s flags is currently only used by ILoadSaveAnimation10::SetUpAnimsForLoadExt

Enumerator
eRelative 
eInsert 
eStripLayers 
eIncludePB2s 
149 {eRelative = 0x1,eInsert = 0x2, eStripLayers = 0x4, eIncludePB2s = 0x8};
@ eRelative
Definition: ILoadSaveAnimation.h:149
@ eInsert
Definition: ILoadSaveAnimation.h:149
@ eStripLayers
Definition: ILoadSaveAnimation.h:149
@ eIncludePB2s
Definition: ILoadSaveAnimation.h:149

◆ MapFlags

enum MapFlags

Enum for different flags to pass in when calling ILoadSaveAnimation::CreateMapFile and ILoadSaveAnimation10::SetUpAnimsForMapExt.

If eMapControllerExactName is set then the controllers will try to be matched based upon their exact names, otherwise, they will try to match off of their subanim order. If eMapControllerType is set then the controller need to be the same of the same class, otherwise they won't map. If eStripLayersInMap is set, then the active layer name will be removed from the current node controllers that have layers.

Enumerator
eMapControllerExactName 
eMapControllerType 
eStripLayersInMap 
@ eStripLayersInMap
Definition: ILoadSaveAnimation.h:158
@ eMapControllerExactName
Definition: ILoadSaveAnimation.h:158
@ eMapControllerType
Definition: ILoadSaveAnimation.h:158

Member Function Documentation

◆ SaveAnimationDlg()

virtual const MCHAR* SaveAnimationDlg ( ) const
pure virtual

Brings up the Save Animation dialog.

Returns
The name of the file if a file gets saved, otherwise returns NULL

◆ LoadAnimationDlg()

virtual const MCHAR* LoadAnimationDlg ( ) const
pure virtual

Brings up the Load Animation dialog.

Returns
The name of the file if a file gets loaded, otherwise returns NULL

◆ GetLoadAndMapFileFromDlg()

virtual BOOL GetLoadAndMapFileFromDlg ( MCHAR  fileName[MAX_PATH],
MCHAR  mapFileName[MAX_PATH] 
) const
pure virtual

Brings up the Load Animation dialog and returns the fileName and the mapFileName in the passed in parameters.

Parameters
[out]fileNameThe name of the animation file returned. Note that the character array passed in should have a size of MAX_PATH.
[out]mapFileNameThe name of the map file returned. Note that the character array passed in should have a size of MAX_PATH.
Returns
TRUE if a file name is selected in the dialog, otherwise returns FALSE.

◆ GetMultLoadAndMapFileFromDlg()

virtual BOOL GetMultLoadAndMapFileFromDlg ( Tab< MSTR * > &  names,
MCHAR mapName 
) const
pure virtual

Brings up the Load Animation dialog and returns a list of possible multiple file names in the passed in parameters.

param[out] names The list of animation files. param[out] mapFileName The name of the map file. Note that the character array passed in should have a size of MAX_PATH.

Returns
TRUE if one or more file names are selected, false otherwise

◆ SaveAnimation()

virtual BOOL SaveAnimation ( const MCHAR filename,
Tab< INode * > &  nodes,
Tab< MSTR * > &  userAttributes,
Tab< MSTR * > &  userValues,
DWORD  saveFlag,
Interval segInterval 
) const
pure virtual

Save the animation from the current nodes into the specified file.

This function will save out an animation file given the passed in nodes and user attributes, based upon the saveFlags and possible segment interval.

Parameters
[in]filenameThe file to save the animation to.
[in]nodesThe nodes whose animation you would like to save.
[in]userAttributesA Tab of strings that specify the names of the user attributes to be saved out. The values of these attributes are found in the next parameter. Thus the userAttributes Tab and the userValues Tab need to be the same size or the function will return FALSE.
[in]userValuesA Tab of strings that specify the names of the user values to be saved out. Each user value corresponds to a user attribute that's passed in the previous parameter.
[in]saveFlagDetermines which tracks under the specified nodes will be saved. The possible values of the saveFlag are found in the SaveFlags enum. The possible vales are eAnimatedTracks, if this value is set, then only animated tracks only will be saved, otherwise non-animated tracks will also be saved. eIncludeConstraints, if set and eAnimatedTracks is set, then constraints will also be saved out, otherwise if eAnimatedTracks is set and this value isn't set, they won't be saved out. If eAnimatedTracks isn't set this parameter is unused since constraints will be automatically saved out. eKeyableTracks, if set keyable tracks only will be saved, otherwise non-keyable tracks will also be saved. eSaveSegment, if set a segment will be saved specified by the segInterval and eSegKeyPerFrame flag. eSegKeyPerFrame, which if set will save out a key per frame when saving out a segment, otherwise only the keys will be saved out.
[in]segIntervalThe interval over which to save the segment.
Returns
TRUE if a file gets saved, otherwise FALSE

◆ SaveAnimationNodeAnims()

virtual BOOL SaveAnimationNodeAnims ( const MCHAR filename,
MaxSDK::Array< NodeAndAnims > &  nodeAnims,
Tab< MSTR * > &  userAttributes,
Tab< MSTR * > &  userValues,
DWORD  saveFlag,
Interval segInterval 
) const
pure virtual

Save the animation from the current nodeAnim tracks into the specified file.

This function saves out the animation file given the passed in nodeAnim array and user attributes, based upon the saveFlags and possible segment interval.

Parameters
[in]filenameThe file to save the animation to.
[in]nodeAnimsThe nodeAnim list whose animation you would like to save. Should have been created via SetUpAnimsForSave.
See also
ILoadSaveAnimation::SetUpAnimsForSave
Parameters
[in]userAttributesA Tab of strings that specify the names of the user attributes to be saved out. The values of these attributes are found in the next parameter. Thus the userAttributes Tab and the userValues Tab need to be the same size or the function will return FALSE.
[in]userValuesA Tab of strings that specify the names of the user values to be saved out. Each user value corresponds to a user attribute that's passed in the previous parameter.
[in]saveFlagDetermines which tracks under the specified nodes will be saved. The possible values of the saveFlag are found in the SaveFlags enum. The possible vales are: eAnimatedTracks, if this value is set, then only animated tracks only will be saved, otherwise non-animated tracks will also be saved. eIncludeConstraints, if set and eAnimatedTracks is set, then constraints will also be saved out, otherwise if eAnimatedTracks is set and this value isn't set, they won't be saved out. If eAnimatedTracks isn't set this parameter is unused since constraints will be automatically saved out. eKeyableTracks, if set keyable tracks only will be saved, otherwise non-keyable tracks will also be saved. eSaveSegment, if set a segment will be saved specified by the segInterval and eSegKeyPerFrame flag. eSegKeyPerFrame, which if set will save out a key per frame when saving out a segment, otherwise only the keys will be saved out.
[in]segIntervalThe interval over which to save the segment.
Returns
TRUE if a file gets saved, otherwise FALSE

◆ LoadAnimation()

virtual BOOL LoadAnimation ( const MCHAR filename,
Tab< INode * > &  nodes,
DWORD  loadFlag,
TimeValue  insertTime,
BOOL  useMapFile,
MCHAR mapFileName 
) const
pure virtual

Load the animation from the current file onto the specified nodes using any mapping that's specified.

This function loads in the specified file onto the passed in nodes based upon the the passed in flags, insertion time and possible mapFileName.

Parameters
[in]filenameThe file to load the animation from.
[in]nodesThe nodes where the animation will be loaded onto.
[in]loadFlagDetermines which tracks under the specified nodes will be loaded onto. The possible values of the loadFlag are found in the LoadFlags enum. The possible vales are: eRelative, if this value is set,
the animation will be loaded at the current position and orientation of a node, if it's parent is the root, if not set the animation will be loaded in absolutely. eInsert, if this value is set, the existing animation will be moved to the left when the animation is loaded, otherwise is not set the animation will overwrite the existing animation. eStripLayers, if this value is set, then any layer controller name will be removed from the current controller names, otherwise it won't.
[in]insertTimeThe time where the animation is loaded.
[in]useMapFileIf TRUE the mapFileName file name parameter will be used to specify what map file to use. If FALSE then default mapping is used.
[in,out]mapFileNameThe file name of the map file to use if the useMapFile parameter is TRUE. Note that the character array passed in should have a size of MAX_PATH.
Returns
TRUE if a file gets loaded, otherwise FALSE.

◆ LoadAnimationNodeAnims()

virtual BOOL LoadAnimationNodeAnims ( const MCHAR filename,
MaxSDK::Array< NodeAndAnims > &  nodeAnims,
DWORD  loadFlag,
TimeValue  insertTime,
BOOL  useMapFile,
MCHAR mapFileName 
) const
pure virtual

Load the animation from the current file onto the specified nodeAnim tracks using any mapping that's specified.

This function loads in the specified file onto the passed in nodeAndAnim tracks based upon the the passed in flags, insertion time and possible mapFileName.

Parameters
[in]filenameThe file to load the animation from.
[in]nodeAnimsThe nodeAnim list whose animation you would like to save. Should have been created via SetUpAnimsForLoad.
See also
ILoadSaveAnimation::SetUpAnimsForLoad
Parameters
[in]loadFlagDetermines which tracks under the specified nodes will be loaded onto. The possible values of the loadFlag are found in the LoadFlags enum. The possible vales are: eRelative, if this value is set,
the animation will be loaded at the current position and orientation of a node, if it's parent is the root, if not set the animation will be loaded in absolutely. eInsert, if this value is set, the existing animation will be moved to the left when the animation is loaded, otherwise is not set the animation will overwrite the existing animation.
[in]insertTimeThe time where the animation is loaded.
[in]useMapFileIf TRUE the mapFileName file name parameter will be used to specify what map file to use. If FALSE then default mapping is used.
[in,out]mapFileNameThe file name of the map file to use if the useMapFile parameter is TRUE. Note that the character array passed in should have a size of MAX_PATH.
Returns
TRUE if a file gets loaded, otherwise FALSE.

◆ CreateMapFile()

virtual BOOL CreateMapFile ( const MCHAR filename,
Tab< INode * > &  currentNodes,
const MCHAR incomingAnimationFile,
Tab< MSTR * > &  userAttributes,
Tab< MSTR * > &  userValues,
Tab< LoadSaveRetargetData > &  retargetData,
int  nodeMapType,
DWORD  mapFlag 
) const
pure virtual

Create a map file based upon nodes to map to, the animation file that will be loaded, and the specific mapping protocols.

Parameters
[in]filenameThe file to save the map file to.
[in]currentNodesThe nodes which will be mapped to the specified incoming Animation File.
[in]incomingAnimationFileThe file from which to map from. The controllers in this file will map to the controllers of the current nodes.
[in]userAttributesA Tab of strings that specify the names of the user attributes to be saved out. The values of these attributes are found in the next parameter. Thus the userAttributes Tab and the userValues Tab need to be the same size or the function will return FALSE.
[in]userValuesA Tab of strings that specify the names of the user values to be saved out. Each user value corresponds to a user attribute that's passed in the previous parameter.
[in]retargetDataA Tab of LoadSaveRetargetData values that specify how specific nodes that get mapped should be retargeted.
[in]nodeMapTypeThe type of node mapping to perform. If the value is eMatchExactName, the nodes will map if the nodes have the same exact name. If the value is eMatchClosestName, the nodes will match based off of which nodes have the closest names. If the value is eMatchHierarchy, the nodes will try to match by matching their hierarchies.
[in]mapFlagDetermines how the controller mapping will occur once the nodes are mapped. The possible values of the mapFlag are found in the MapFlags enum. The possible vales are: eMapControllerExactName, if set the controllers of the mapped nodes will try to map to each other by matching their names exactly, if not set the controllers will map by their subanim ordering. eMapControllerType, if set, the controllers will check to see if they have the same exact type, that is the same ClassID and SuperClassID, otherwise they won't map, if not set then the controllers only need to be have the same SuperClassID. eStripLayersinMap, if set, will strip the layer controller name from any active layers on the current nodes.
Returns
TRUE if a map file gets created, otherwise FALSE

◆ CreateMapFileNodeAnims()

virtual BOOL CreateMapFileNodeAnims ( const MCHAR filename,
MaxSDK::Array< NodeAndAnims > &  nodeAnims,
const MCHAR incomingAnimationFile,
Tab< MSTR * > &  userAttributes,
Tab< MSTR * > &  userValues,
Tab< LoadSaveRetargetData > &  retargetData,
int  nodeMapType,
DWORD  mapFlag 
) const
pure virtual

Create a map file based upon nodeAnim tracks to map to, the animation file that will be loaded, and the specific mapping protocols.

Parameters
[in]filenameThe file to save the map file to.
[in]nodeAnimsThe nodeAnim list whose animation you would like to map. Should have been created via SetUpAnimsForMap.
See also
ILoadSaveAnimation::SetUpAnimsForMap
Parameters
[in]incomingAnimationFileThe file from which to map from. The controllers in this file will map to the controllers of the current nodes.
[in]userAttributesA Tab of strings that specify the names of the user attributes to be saved out. The values of these attributes are found in the next parameter. Thus the userAttributes Tab and the userValues Tab need to be the same size or the function will return FALSE.
[in]userValuesA Tab of strings that specify the names of the user values to be saved out. Each user value corresponds to a user attribute that's passed in the previous parameter.
[in]retargetDataA Tab of LoadSaveRetargetData values that specify how specific nodes that get mapped should be retargetted.
[in]nodeMapTypeThe type of node mapping to perform. If the value is eMatchExactName, the nodes will map if the nodes have the same exact name. If the value is eMatchClosestName, the nodes will match based off of which nodes have the closest names. If the value is eMatchHierarchy, the nodes will try to match by matching their hierarchies.
[in]mapFlagDetermines how the controller mapping will occur once the nodes are mapped. The possible values of the mapFlag are found in the MapFlags enum. The possible vales are: eMapControllerExactName, if set the controllers of the mapped nodes will try to map to each other by matching their names exactly, if not set the controllers will map by their subanim ordering. eMapControllerType, if set, the controllers will check to see if they have the same exact type,(ClassID and SuperClassID), otherwise they won't map, if not set, then the controllers only need to be have the same SuperClassID.
Returns
TRUE if a map file gets created, otherwise FALSE

◆ GetUserAttributes()

virtual BOOL GetUserAttributes ( const MCHAR filename,
Tab< MSTR * > &  userAttributes,
Tab< MSTR * > &  userValues 
) const
pure virtual

Get the user attributes that are present out of the corresponding animation or map file.

Parameters
[in]filenameThe name of the animation or map file that you are getting user attributes from.
[out]userAttributesA Tab of MSTR strings of the user defined attributes found in the file. There is a one to one correspondence between the number of attributes and number of values in the file. The callee of this function is responsible for deleting the valid MSTR * pointers.
[out]userValuesA Tab of MSTR strings of the user defined values found in the file. There is one string value for each attribute. The caller of this function is responsible for deleting the valid MSTR * pointers
Returns
TRUE if operation was successful, FALSE if otherwise.

◆ GetAnimFileExtension()

virtual const MCHAR* GetAnimFileExtension ( ) const
pure virtual

Get the extension used for the animation files.

Returns
The animation file extension (xaf).

◆ GetAnimMapFileExtension()

virtual const MCHAR* GetAnimMapFileExtension ( ) const
pure virtual

Get the extension used for the animation map files.

Returns
The animation map file extension (xmm).

◆ GetAnimFileDirectory()

virtual const MCHAR* GetAnimFileDirectory ( ) const
pure virtual

Get the current directory for finding animation files.

Returns
The animation file directory

◆ GetAnimFileDirectories()

virtual void GetAnimFileDirectories ( Tab< MSTR * > &  animFileDirectories) const
pure virtual

Get all of the anim file directories in the load/save UI.

Parameters
[out]animFileDirectoriesA Tab of MSTR strings containing all of recently used directories. The caller of this function is responsible for deleting the valid MSTR * pointers.

◆ GetMapFiles()

virtual void GetMapFiles ( Tab< MSTR * > &  mapFiles) const
pure virtual

Get all of the recently used map files in the load/save UI.

Parameters
[out]mapFilesA Tab of MSTR strings containing all of recently used map files. The caller of this function is responsible for deleting the valid MSTR * pointers.

◆ GetAnimMapFile()

virtual const MCHAR* GetAnimMapFile ( ) const
pure virtual

Get the current map file.

Returns
The name of the current animation map file being used in the load/save UI.

◆ SetAnimFileDirectory()

virtual void SetAnimFileDirectory ( const MCHAR directory)
pure virtual

Set the current directory for finding animation files.

Parameters
[in]directoryThe name of the anim file directory.

◆ SetAnimMapFile()

virtual void SetAnimMapFile ( const MCHAR filename)
pure virtual

Set the latest map file found.

Parameters
[in]filenameThe name of the map file.

◆ SetUpAnimsForSave()

virtual void SetUpAnimsForSave ( Tab< INode * > &  nodeTab,
BOOL  animatedTracks,
BOOL  includeConstraints,
BOOL  keyable,
MaxSDK::Array< NodeAndAnims > &  nodeAnims 
) const
pure virtual

Sets up the anim list to be used for saving out an xml animation file.

See also
NodeAndAnims
ILoadSaveAnimation::SaveAnimationNodeAnims
Parameters
[in]nodeTabNodes you want to save out
[in]animatedTracksIf TRUE will only included animated tracks in the list,
[in]includeConstraintsIf animatedTracks is TRUE and this is TRUE, constraints will be considered to be animated and thus also in the list.
[in]keyableIf TRUE will only include keyable tracks in the list.
[out]nodeAnimsThe returned list of nodes and their anim tracks based upon the flags passed into the function.

◆ SetUpAnimsForLoad()

virtual void SetUpAnimsForLoad ( Tab< INode * > &  nodeTab,
BOOL  includePB2s,
MaxSDK::Array< NodeAndAnims > &  nodeAnims 
) const
pure virtual

Sets up the anim list to be used for loading in an xml animation file or putting nodes and their tracks into the mixer.

Parameters
[in]nodeTabNodes you want to load
[in]includePB2sWhether or not to include param block2 tracks when loading in the animation.
[out]nodeAnimsThe returned list of nodes and their anim tracks based upon the flags passed into the function.
See also
NodeAndAnims
IMixer8::AddMaxMixer
ILoadSaveAnimation::LoadAnimationNodeAnims

◆ SetUpAnimsForMap()

virtual void SetUpAnimsForMap ( Tab< INode * > &  nodeTab,
MaxSDK::Array< NodeAndAnims > &  nodeAnims 
) const
pure virtual

Sets up the anim list to be used for mapping an xml animation file.

Parameters
[in]nodeTabNodes you want to map
[out]nodeAnimsThe returned list of nodes and their anim tracks
See also
NodeAndAnims
ILoadSaveAnimation::CreateMapFileNodeAnims

◆ LoadForMixing()

virtual void LoadForMixing ( BOOL  flag) const
pure virtual