3ds Max C++ API Reference
ILockedTrack Class Referenceabstract

An interface to a track that can get locked. More...

#include <ILockedTracks.h>

+ Inheritance diagram for ILockedTrack:

Public Member Functions

virtual ~ILockedTrack ()
 Destructor. More...
 
virtual void SetLocked (bool val, bool lockSubanims, ReferenceTarget *anim, ReferenceTarget *client, int subNum)=0
 Function to lock or unlock this track This function will be called to lock or unlock this item. More...
 
virtual bool GetLocked (bool checkOverride=true) const =0
 Return whether or not the track is locked. More...
 
virtual bool IsComponent ()
 Returns whether or not the object is a component Returns whether or not an object is a component. 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 a track that can get locked.

Your animatable class should inherit from this class if it wants to support itself getting locked. Remember only items which can get locked can support local edits with containers. To get from an existing object, call GetLockedTrackInterface(anim) which is defined AnimatableInterfaceIDs.h

Constructor & Destructor Documentation

◆ ~ILockedTrack()

virtual ~ILockedTrack ( )
inlinevirtual

Destructor.

136 {};

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 This function will be called to lock or unlock this item.

The implementer of this function is responsible for setting and saving the locked state of the track based upon the value of the passed in flag. Also it's the responsible of the implementer to lock it's sub anims 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.

Parameters
[in]valIf true the track gets locked, if false the track gets unlocked
[in]lockSubanimsIf true, then also lock the children of the item that you are locking.
[in]animA pointer to the reference target that contains this interface.
[in]clientA pointer to the parent of this interface.
[in]subNumThe subanim index of this track.

Implemented in ILockedTrackImp.

◆ GetLocked()

virtual bool GetLocked ( bool  checkOverride = true) const
pure virtual

Return whether or not the track is locked.

Parameters
[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 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.

Implemented in ILockedTrackImp.

◆ IsComponent()

virtual bool IsComponent ( )
inlinevirtual

Returns whether or not the object is a component Returns whether or not an object is a component.

A component is an object that when locked gets replaced by a wrapper object that hides the existing object inside it. Lockable Modifiers and Materials may be examples of components. Most basic 'tracks' and controllers aren't components. Thus the default returns false.

Returns
return true if a component false otherwise
160 {return false;}