3ds Max C++ API Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TreeEntry Class Reference

Holds an Animatable handle, its clients handle and the subanim index such that: client->SubAnim(index) == anim. More...

#include <TreeEntry.h>

Public Member Functions

 TreeEntry (Animatable *a, Animatable *c, int s)
 Constructor for a TreeEntry.
 
virtual ~TreeEntry ()
 
const AnimatableGetAnim () const
 
AnimatableGetAnim ()
 
void SetAnim (Animatable *anim)
 
AnimHandle GetAnimHandle () const
 
const AnimatableGetClient () const
 
AnimatableGetClient ()
 
void SetClient (Animatable *client)
 
AnimHandle GetClientHandle () const
 
int GetSubNum () const
 
void SetSubNum (int n)
 
TSTR GetDisplayName (bool showType) const
 Get the name of this entry to display in the UI.
 
SClass_ID GetEntrySuperClassID ()
 Determine the super class id, pulls type from paramblocks otherwise straight from the anim.
 
bool IsEaseCurve () const
 Returns true if this entry describes an easy curve controller.
 
bool IsMultCurve () const
 Returns true if this entry describes a multiplier curve controller.
 
bool IsNoteTrack () const
 Returns true if this entry describes a note track.
 
bool IsVisTrack () const
 Returns true if this entry describes a visibility controller.
 
bool IsNode () const
 Returns true if this entry describes a scene node.
 
bool IsObject () const
 Returns true if this entry describes an object: geometry, camera, shape, helper, etc.
 
bool IsModifier () const
 Returns true if this entry describes a modifier.
 
bool IsMtlBased () const
 Returns true if this entry or client describes a material or texmap.
 
virtual bool HasSubs () const
 Returns true if this entry has any sub animatables.
 
bool IsPBlockDummy () const
 Returns true if the entry represents a paramblock dummy.
 
bool IsPBlockDummy (SClass_ID &sid) const
 Returns true if the entry represents a paramblock dummy. If true, 'sid' will be set to the dummy's parameter super class id.
 
bool IsLocked ()
 Returns true if this entry is locked by the locked tracks manager (ILockedTracksMan ).
 
bool IsParameterWired ()
 Returns true if this entry is a source or destination of a parameter wire.
 
bool IsPBlockDummyAnimatable () const
 Returns true if this entry is able to be animated.
 
bool IsCustomAttribute () const
 Returns true if this entry describes a custom attribute.
 
bool operator== (TreeEntry const &other) const
 

Protected Attributes

AnimHandle mAnim
 
AnimHandle mClient
 
int subNum
 

Detailed Description

Holds an Animatable handle, its clients handle and the subanim index such that: client->SubAnim(index) == anim.

Provides a series of useful methods to work with Animatables. A valid TreeEntry can be just an animatable or just a client and subanim. Safely stores the animatables as handles to avoid dangling pointers. Used by the trackviews tree view.

Constructor & Destructor Documentation

◆ TreeEntry()

TreeEntry ( Animatable a,
Animatable c,
int  s 
)
inline

Constructor for a TreeEntry.

Parameters
aThe target Animatable.
cThe Animatables client (parent) in the scene. Important because most things only make sense in context with its parent.
sWhich sub Animatable 'a' is in 'c' such that: c->SubAnim(s) == a.
35 subNum(s)
36 {}
static CoreExport AnimHandle GetHandleByAnim(Animatable *anim)
Get the unique handle for an Animatable object.
AnimHandle mClient
Definition: TreeEntry.h:96
int subNum
Definition: TreeEntry.h:97
AnimHandle mAnim
Definition: TreeEntry.h:95

◆ ~TreeEntry()

virtual ~TreeEntry ( )
inlinevirtual
37{}

Member Function Documentation

◆ GetAnim() [1/2]

const Animatable * GetAnim ( ) const
inline
static CoreExport Animatable * GetAnimByHandle(AnimHandle handle)
Get an Animatable object from its unique handle.

◆ GetAnim() [2/2]

Animatable * GetAnim ( )
inline

◆ SetAnim()

void SetAnim ( Animatable anim)
inline

◆ GetAnimHandle()

AnimHandle GetAnimHandle ( ) const
inline
42{ return mAnim; }

◆ GetClient() [1/2]

const Animatable * GetClient ( ) const
inline

◆ GetClient() [2/2]

Animatable * GetClient ( )
inline

◆ SetClient()

void SetClient ( Animatable client)
inline

◆ GetClientHandle()

AnimHandle GetClientHandle ( ) const
inline
47{ return mClient; }

◆ GetSubNum()

int GetSubNum ( ) const
inline
49{ return subNum; }

◆ SetSubNum()

void SetSubNum ( int  n)
inline
50{ subNum = n; }

◆ GetDisplayName()

TSTR GetDisplayName ( bool  showType) const

Get the name of this entry to display in the UI.

Parameters
showTypeWhether or not to show the controller type in the name.

◆ GetEntrySuperClassID()

SClass_ID GetEntrySuperClassID ( )

Determine the super class id, pulls type from paramblocks otherwise straight from the anim.

◆ IsEaseCurve()

bool IsEaseCurve ( ) const

Returns true if this entry describes an easy curve controller.

◆ IsMultCurve()

bool IsMultCurve ( ) const

Returns true if this entry describes a multiplier curve controller.

◆ IsNoteTrack()

bool IsNoteTrack ( ) const

Returns true if this entry describes a note track.

◆ IsVisTrack()

bool IsVisTrack ( ) const

Returns true if this entry describes a visibility controller.

◆ IsNode()

bool IsNode ( ) const

Returns true if this entry describes a scene node.

◆ IsObject()

bool IsObject ( ) const

Returns true if this entry describes an object: geometry, camera, shape, helper, etc.

◆ IsModifier()

bool IsModifier ( ) const

Returns true if this entry describes a modifier.

◆ IsMtlBased()

bool IsMtlBased ( ) const

Returns true if this entry or client describes a material or texmap.

◆ HasSubs()

virtual bool HasSubs ( ) const
virtual

Returns true if this entry has any sub animatables.

◆ IsPBlockDummy() [1/2]

bool IsPBlockDummy ( ) const

Returns true if the entry represents a paramblock dummy.

◆ IsPBlockDummy() [2/2]

bool IsPBlockDummy ( SClass_ID sid) const

Returns true if the entry represents a paramblock dummy. If true, 'sid' will be set to the dummy's parameter super class id.

◆ IsLocked()

bool IsLocked ( )

Returns true if this entry is locked by the locked tracks manager (ILockedTracksMan ).

◆ IsParameterWired()

bool IsParameterWired ( )

Returns true if this entry is a source or destination of a parameter wire.

◆ IsPBlockDummyAnimatable()

bool IsPBlockDummyAnimatable ( ) const

Returns true if this entry is able to be animated.

◆ IsCustomAttribute()

bool IsCustomAttribute ( ) const

Returns true if this entry describes a custom attribute.

◆ operator==()

bool operator== ( TreeEntry const &  other) const
inline
91 {
92 return mAnim == other.mAnim && mClient == other.mClient && subNum == other.subNum;
93 }

Member Data Documentation

◆ mAnim

AnimHandle mAnim
protected

◆ mClient

AnimHandle mClient
protected

◆ subNum

int subNum
protected