3ds Max C++ API Reference
IMXclip8 Class Referenceabstract

An interface to the new functionality for max 8 for clips in the mixer. More...

#include <IMixer8.h>

+ Inheritance diagram for IMXclip8:

Public Member Functions

virtual bool IsMax ()=0
 Whether or not a max clip or a biped clip. More...
 
virtual const MaxSDK::AssetManagement::AssetUserMaxMap ()=0
 The name of the possible map file for a max clip. More...
 
virtual bool LoadMaxAnimationFile (int loadOption, const MCHAR *filename, const MCHAR *mapfilename=NULL)=0
 Loads the clip with the given options and animation files. More...
 
virtual void SetTransitionYawPitchRoll (const bool yaw, const bool pitch, const bool roll)=0
 Set whether or not velocity blended nodes yaw,pitch and roll angles will get accumulated or not. More...
 
virtual void GetTransitionYawPitchRoll (bool &yaw, bool &pitch, bool &roll)=0
 Get whether or not velocity blended nodes yaw,pitch and roll angles will get accumulated or not. More...
 
virtual void SetTransitionYawPitchRollAngle (const float yaw, const float pitch, const float roll)=0
 Set the transition yaw,pitch and roll angles. More...
 
virtual void GetTransitionYawPitchRollAngle (float &yaw, float &pitch, float &roll)=0
 Get the transition yaw,pitch and roll angles. More...
 
virtual void SetTransitionXYZ (const bool x, const bool y, const bool z)=0
 Set whether or not velocity blended nodes x,y, and z positions will get accumulated or not. More...
 
virtual void GetTransitionXYZ (bool &x, bool &y, bool &z)=0
 Get whether or not velocity blended nodes x,y and z positions will get accumulated. More...
 
Transition Clip Information
virtual void GetVelocityBlends (INodeTab &nodeTab)=0
 Get the nodes that make up the velocity blended nodes for a transition. Only works with max clips. More...
 
virtual void SetVelocityBlends (const INodeTab &nodeTab)=0
 Set the nodes that make up the velocity blended nodes. Only works with max clips. More...
 
SubBlendNodes
virtual void GetSubBlendNodes (INodeTab &nodeTab)=0
 Get the nodes that make up the the sub blended nodes. Only works with max clips. More...
 
virtual void SetSubBlendNodes (const INodeTab &nodeTab)=0
 Set the nodes that make up the sub blended nodes. Only works with max clips. More...
 
virtual void GetSubBlendNodesParents (INodeTab &nodeTab)=0
 Get the nodes that make up the sub blended nodes parents. Only works with max clips. More...
 
virtual void SetSubBlendNodesParents (const INodeTab &nodeTab)=0
 Set the nodes that make up the sub blended parent nodes. Only works with max clips. More...
 
- Public Member Functions inherited from IMXclip
virtual ~IMXclip ()
 
virtual void GetOriginalBounds (int *orgstart, int *orgend)=0
 
virtual void GetTrimBounds (int *trimstart, int *trimend)=0
 
virtual void SetClipTrim (int trimstart, int trimend)=0
 
virtual void GetGlobalBounds (int *globstart, int *globend)=0
 
virtual BOOL SetClipGlobalStart (int globstart)=0
 
virtual BOOL SetClipGlobalEnd (int globend)=0
 
virtual void MoveClip (int timeInc)=0
 
virtual void ScaleClip (float scale)=0
 
virtual void SetClipScale (float scale)=0
 
virtual float GetClipScale ()=0
 
virtual int LocalToScaledLocal (int t)=0
 
virtual int ScaledLocalToLocal (int t)=0
 
virtual int LocalToGlobal (int t)=0
 
virtual int GlobalToLocal (int t)=0
 
virtual int GlobalToScaledLocal (int t)=0
 
virtual int ScaledLocalToGlobal (int t)=0
 
virtual int GlobalInpoint ()=0
 
virtual int GlobalOutpoint ()=0
 
virtual int GetNextTransitionInpoint ()=0
 
virtual BOOL SetNextTransitionInpoint (int inpt)=0
 
virtual float GetNextTransitionAngle ()=0
 
virtual void SetNextTransitionAngle (float angle)=0
 
virtual int GetNextTransitionFocus ()=0
 
virtual BOOL SetNextTransitionFocus (int focus)=0
 
virtual BOOL IsNextTransitionRolling ()=0
 
virtual void SetNextTransitionRolling ()=0
 
virtual void SetNextTransitionFixed ()=0
 
virtual void GetNextTransitionEase (float *easeIn, float *easeOut)=0
 
virtual BOOL SetNextTransitionEase (float easeIn, float easeOut)=0
 
virtual int GetPrevTransitionOutpoint ()=0
 
virtual BOOL SetPrevTransitionOutpoint (int outpt)=0
 
virtual BOOL IsPrevTransitionRolling ()=0
 
virtual void SetPrevTransitionRolling ()=0
 
virtual void SetPrevTransitionFixed ()=0
 
virtual const MaxSDK::AssetManagement::AssetUserGetFile ()=0
 
virtual BOOL LoadFile (int LoadOption, const MCHAR *fname, BOOL ZeroFootHgt)=0
 
virtual int NumWeights ()=0
 
virtual float GetWeight (int i)=0
 
virtual int GetWeightTime (int i)=0
 
virtual BOOL DeleteWeight (int i)=0
 
virtual BOOL SetWeight (int i, float w)=0
 
virtual BOOL SetWeightTime (int i, int t)=0
 
virtual float GetWeightAtTime (int t)=0
 
virtual int SetWeightAtTime (int t, float w)=0
 
virtual BOOL IsTimeWarpActive ()=0
 
virtual BOOL ActivateTimeWarp ()=0
 
virtual BOOL DeactivateTimeWarp ()=0
 
virtual BOOL InitializeTimeWarp ()=0
 
virtual int NumTimeWarps ()=0
 
virtual TimeValue GetTwOrgTime (int i)=0
 
virtual TimeValue GetTwWarpTime (int i)=0
 
virtual TimeValue GetOrgTimeAtWarpedTime (TimeValue t)=0
 
virtual TimeValue GetWarpedTimeAtOrgTime (TimeValue t)=0
 
virtual BOOL DeleteTw (int i)=0
 
virtual BOOL SetTwOrgTime (int i, TimeValue t)=0
 
virtual BOOL SetTwWarpTime (int i, TimeValue t)=0
 
virtual BOOL InsertWarpAtOrgTime (TimeValue t)=0
 

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

An interface to the new functionality for max 8 for clips in the mixer.

Contains functionality relating to the new functionality for max clips, including the name of the max map file, and the particular transition information needed to transition max clips. Inherits from IMXclip. The interface is accessed via IMXclip::GetClip8 or IMXclip::GetTransClip8 /see IMXtrack8::GetClip8 /see IMXtrack8::GetTransClip8

Member Function Documentation

◆ IsMax()

virtual bool IsMax ( )
pure virtual

Whether or not a max clip or a biped clip.

Returns
Returns True if it's a max clip, false if it's a biped clip

◆ MaxMap()

virtual const MaxSDK::AssetManagement::AssetUser& MaxMap ( )
pure virtual

The name of the possible map file for a max clip.

Returns
the name of the map file if one exists, otherwise returns empty string

◆ LoadMaxAnimationFile()

virtual bool LoadMaxAnimationFile ( int  loadOption,
const MCHAR filename,
const MCHAR mapfilename = NULL 
)
pure virtual

Loads the clip with the given options and animation files.

Only works with max clips.

Parameters
[in]loadOptionMust be one of the following defined in IMixer.h. RE_SOURCE_CLIP_ONLY, RE_SOURCE_INSTANCES, RE_SOURCE_FILEGROUP. RE_SOURCE_CLIP_ONLY: the file will be loaded into just this single clip. RE_SOURCE_INSTANCES: the file will be loaded into this clip and all instances of this clip. RE_SOURCE_FILEGROUP: the file will be loaded into this clip and all instances and adaptations of this clip.
[in]filenameThe name of the max animation file(.xaf) to be loaded. It valid .xaf file must be supplied or the load will fail and the function will return false
[in]mapfilenameThe name of the possible animation map file(.xmm) used for mapping the clip. This value may be NULL.
Returns
True if the file was loaded successfully, else returns false

◆ GetVelocityBlends()

virtual void GetVelocityBlends ( INodeTab nodeTab)
pure virtual

Get the nodes that make up the velocity blended nodes for a transition. Only works with max clips.

Parameters
[out]nodeTabThe nodes whose positions and orientations are accumulated and blended via velocity for this clips transition

◆ SetVelocityBlends()

virtual void SetVelocityBlends ( const INodeTab nodeTab)
pure virtual

Set the nodes that make up the velocity blended nodes. Only works with max clips.

Parameters
[in]nodeTabThe nodes whose positions and orientations are accumulated and bleneded via their velocities in this clip

◆ GetSubBlendNodes()

virtual void GetSubBlendNodes ( INodeTab nodeTab)
pure virtual

Get the nodes that make up the the sub blended nodes. Only works with max clips.

Parameters
[out]nodeTabNodes who will get their positions and orientations blended in the coordinate space of their corresponding subBlendNode parent thats found by calling GetSubBlendNodesParents.

◆ SetSubBlendNodes()

virtual void SetSubBlendNodes ( const INodeTab nodeTab)
pure virtual

Set the nodes that make up the sub blended nodes. Only works with max clips.

Parameters
[in]nodeTabNodes who will get their positions and orientations blended in the coordinate space of their corresponding subBlendNode parent. You should call this functions first before calling SetSubBlendNodesParents.

◆ GetSubBlendNodesParents()

virtual void GetSubBlendNodesParents ( INodeTab nodeTab)
pure virtual

Get the nodes that make up the sub blended nodes parents. Only works with max clips.

Parameters
[out]nodeTabAn array of 'parent' nodes whose coordinate space the sub blend nodes will blend in.

◆ SetSubBlendNodesParents()

virtual void SetSubBlendNodesParents ( const INodeTab nodeTab)
pure virtual

Set the nodes that make up the sub blended parent nodes. Only works with max clips.

Parameters
[in]nodeTabThe nodes whose coordinate space the sub blend nodes will blend in . Should be called after SetSubBlendNodeParents, and there's a 1-1 correspondance between the the two arrays.

◆ SetTransitionYawPitchRoll()

virtual void SetTransitionYawPitchRoll ( const bool  yaw,
const bool  pitch,
const bool  roll 
)
pure virtual

Set whether or not velocity blended nodes yaw,pitch and roll angles will get accumulated or not.

Only works with max clips.

Parameters
[in]yawIf true the yaw orientation (angle about local z)will get velocity blended, otherwise it will get blended normally.
[in]pitchIf true the pitch orientation(angle about local x) will get velocity blended, otherwise it will get blended normally.
[in]rollIf true the roll orientation(angle about local y) will get velocity blended, otherwise it will get blended normally.

◆ GetTransitionYawPitchRoll()

virtual void GetTransitionYawPitchRoll ( bool &  yaw,
bool &  pitch,
bool &  roll 
)
pure virtual

Get whether or not velocity blended nodes yaw,pitch and roll angles will get accumulated or not.

Only works with max clips.

Parameters
[out]yawIf true the yaw orientation (angle about local z)gets velocity blended, otherwise it will get blended normally.
[out]pitchIf true the pitch orientation(angle about local x) gets velocity blended, otherwise it will get blended normally.
[out]rollIf true the roll orientation(angle about local y) gets velocity blended, otherwise it will get blended normally.

◆ SetTransitionYawPitchRollAngle()

virtual void SetTransitionYawPitchRollAngle ( const float  yaw,
const float  pitch,
const float  roll 
)
pure virtual

Set the transition yaw,pitch and roll angles.

Parameters
[in]yawThe additional yaw angle the clip will transition around
[in]pitchThe additional pitch angle the clip with transition around
[in]rollThe additional roll angel the clip will transition around

◆ GetTransitionYawPitchRollAngle()

virtual void GetTransitionYawPitchRollAngle ( float &  yaw,
float &  pitch,
float &  roll 
)
pure virtual

Get the transition yaw,pitch and roll angles.

Parameters
[out]yawThe additional yaw angle of the current transition.
[out]pitchThe additional pitch angle of the curren transition.
[out]rollThe additional roll angel of the current transition

◆ SetTransitionXYZ()

virtual void SetTransitionXYZ ( const bool  x,
const bool  y,
const bool  z 
)
pure virtual

Set whether or not velocity blended nodes x,y, and z positions will get accumulated or not.

Only works with max clips.

Parameters
[in]xIf true the x position, will get velocity blended, otherwise it will get blended normally.
[in]yIf true the y position, will get velocity blended, otherwise it will get blended normally.
[in]zIf true the z position, will get velocity blended, otherwise it will get blended normally.

◆ GetTransitionXYZ()

virtual void GetTransitionXYZ ( bool &  x,
bool &  y,
bool &  z 
)
pure virtual

Get whether or not velocity blended nodes x,y and z positions will get accumulated.

Parameters
[out]xIf true the x position gets velocity blended, otherwise it will get blended normally.
[out]yIf true the y position gets velocity blended, otherwise it will get blended normally.
[out]zIf true the z position gets velocity blended, otherwise it will get blended normally.