3ds Max C++ API Reference
ILockedTrackClient Class Referenceabstract

An interface to an object who is a client that has subanims that may get locked. More...

#include <ILockedTracks.h>

+ Inheritance diagram for ILockedTrackClient:

Public Member Functions

virtual ~ILockedTrackClient ()
 destructor More...
 
virtual void SetLocked (bool val, bool lockSubanims, ReferenceTarget *anim, ReferenceTarget *client, int subNum)=0
 Function to lock or unlock this track's subanim This function will be called to lock or unlock this clients subanim . More...
 
virtual bool GetLocked (int subNum, bool checkOverride=true) const =0
 Return whether or not one if it's subanim tracks are locked. More...
 
virtual bool IsLockable (int subNum) const =0
 Return whether or not one if its subanim tracks or lockable or not. 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

An interface to an object who is a client that has subanims that may get locked.

Your animatable class should inherit from this class if it wants to support subanims, that don't return an interface when GetLockedTrackInterface(anim) is called, but can still get locked. In particularly, IParamBlock and IParamBlock2 objects will return this interface since they will control the locking and unlocking of their parameter entries. To get from an existing object, call GetLockedTrackClientInterface(anim) which is defined AnimatableInterfaceIDs.h

Constructor & Destructor Documentation

◆ ~ILockedTrackClient()

virtual ~ILockedTrackClient ( )
inlinevirtual

destructor

197 {};

Member Function Documentation

◆ SetLocked()

virtual void SetLocked ( bool  val,
bool  lockSubanims,
ReferenceTarget anim,
ReferenceTarget client,
int  subNum 
)
pure virtual

Function to lock or unlock this track's subanim This function will be called to lock or unlock this clients subanim .

The implementer of this function is responsible for setting and saving the locked state of the subanim track based upon the value of the passed in flag. Also it's the responsible of the implementer to lock it's subanim subanims if the flag is set to also lock it's subanims. The system itself is responsible to making sure all of it's parents are unlocked when it gets unlocked also.

Parameters
[in]valIf true the subanim track gets locked, if false the track gets unlocked
[in]lockSubanimsIf true then also lock the children of the anim that you are locking. Usually this is not needed since the anim is almost always a leaf.
[in]animA pointer to the reference target that contains this interface.
[in]clientA pointer to the reference target of this interface. It's the client that contains the subanim we will lock.
[in]subNumThe subanim index of this track.

◆ GetLocked()

virtual bool GetLocked ( int  subNum,
bool  checkOverride = true 
) const
pure virtual

Return whether or not one if it's subanim tracks are locked.

Parameters
[in]subNumThis is the SubAnim number for the track we want to check to see if it's locked.
[in]checkOverrideIf true we check the overrides first before testing to see if the track is locked, if false then we don't check the override state and rather just check the state of the locked item by itself.
Returns
Returns true if the subanim track is locked, false if it is not. Also take note that this track takes into account whether or not any overrides are active and if it's inside a container or not.
See also
ILockedTracksMan.

◆ IsLockable()

virtual bool IsLockable ( int  subNum) const
pure virtual

Return whether or not one if its subanim tracks or lockable or not.

Parameters
[in]subNumThis is the SubAnim number for the track we want to check to see if it's lockable or not.
Returns
Returns true if the subanim track is lockable false if it is not.