3ds Max C++ API Reference
IAnimLayerControlManager Class Referenceabstract

The interface to the functionality for animation layers. More...

#include <ILayerControl.h>

+ Inheritance diagram for IAnimLayerControlManager:

Public Types

Enums
enum  Filter {
  ePos = 0x1 , eRot = 0x2 , eScale = 0x4 , eIK = 0x8 ,
  eObject = 0x10 , eCA = 0x20 , eMod = 0x40 , eMat = 0x80 ,
  eOther = 0x100
}
 Enum for where to create the individual layer controllers when calling EnableAnimLayers. More...
 
enum  ControllerType { eBezier =0x0 , eLinear , eDefault }
 Enum for specifying what type of controller you want a non keyable controller to collapse to when you collapse onto it. More...
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 

Public Member Functions

virtual void SetUpCustUI (ICustToolbar *toolbar, int id, HWND hWnd, HWND hParent)=0
 
virtual const MCHARGetComboToolTip ()=0
 
Dialog Functions
virtual void ShowAnimLayersManagerToolbar (bool show)=0
 Brings up or hides the main Anim Layers Manager Dialog.
More...
 
virtual void RefreshAnimLayersManagerToolbar ()=0
 This refreshes the UI in the Anim Layers Manager Dialog, if it's open. More...
 
virtual int EnableAnimLayersDlg (Tab< INode * > &nodeTab)=0
 Brings up the Enable Animation Layers Dialog. More...
 
Core Functionality
virtual int EnableAnimLayers (Tab< INode * > &nodeTab, DWORD filter)=0
 Enable animation layers on specified nodes given particular filters. More...
 
virtual BOOL CanEnableAnimLayer (ReferenceTarget *anim, ReferenceTarget *client, int subNum)=0
 Returns whether or not the specified animatable will be able to be converted to a layer control or not. More...
 
virtual BOOL EnableAnimLayer (ReferenceTarget *anim, ReferenceTarget *client, int subnum)=0
 This function will enable a layer on the specified anim in the TrackViewPick parameter. More...
 
virtual int GetLayerCount ()=0
 Return the total number of layers. More...
 
virtual void GetNodesLayers (Tab< INode * > &nodeTab, Tab< int > &layers)=0
 This function returns which layers exist on the passed in nodes. More...
 
virtual void SetLayerActive (int index)=0
 Sets the layer active. More...
 
virtual void SetLayerActiveNodes (int index, Tab< INode * > &nodeTab)=0
 Sets the active layer only on the nodes that are passed in. More...
 
virtual void AddLayer (MSTR &name, Tab< INode * > &nodeTab, bool useActiveControllerType)=0
 Adds a layer to the specified nodes. More...
 
virtual void AddLayerDlg (Tab< INode * > &nodeTab)=0
 Adds a layer to the specified nodes, by bringing up a dialog that lets you specify the layers name and what controller class the new layer will be. More...
 
virtual void GetActiveLayersNodes (Tab< INode * > &nodeTab, Tab< int > &layers)=0
 Gets which layers are active on the passed in set of nodes. More...
 
virtual void GetNodesActiveLayer (Tab< INode * > &nodeTab)=0
 Gets which nodes in the scene have the active layer on it. More...
 
virtual void DeleteLayer (int index)=0
 Delete this layer. More...
 
virtual void DeleteLayerNodes (int index, Tab< INode * > &nodeTab)=0
 Delete this layer from the specified nodes. More...
 
virtual void CopyLayerNodes (int index, Tab< INode * > &nodeTab)=0
 Copy this layer to a buffer so that it may be copied. More...
 
virtual void PasteLayerNodes (int index, Tab< INode * > &nodeTab)=0
 Paste the active copied layer at this index on these nodes. More...
 
virtual void SetLayerName (int index, MSTR name)=0
 Set the layer name at the specified index. More...
 
virtual MSTR GetLayerName (int index)=0
 Get the name of the specified layer. More...
 
virtual float GetLayerWeight (int index, TimeValue t)=0
 Get the layer weight for the specified layer at the specified time. More...
 
virtual void SetLayerWeight (int index, TimeValue t, float weight)=0
 Set the layer weight for the specified layer at the specified time. More...
 
virtual ControlGetLayerWeightControl (int index)=0
 Get the layer weight control for the specified layer. More...
 
virtual bool SetLayerWeightControl (int index, Control *c)=0
 Set the layer weight control for the specified layer. More...
 
virtual bool GetLayerMute (int index)=0
 Get whether or not a particular layer is muted or not. More...
 
virtual void SetLayerMute (int index, bool mute)=0
 Set whether or not a particular layer is muted or not. More...
 
virtual bool GetLayerOutputMute (int index)=0
 Get whether or not a particular layer's output is muted or not. More...
 
virtual void SetLayerOutputMute (int index, bool mute)=0
 Set whether or not a particular layer output is muted or not. More...
 
virtual bool GetLayerLocked (int index)=0
 Get whether or not a particular layer is locked. More...
 
virtual void SetLayerLocked (int index, bool locked)=0
 Set whether or not a particular layer is locked. More...
 
virtual void CollapseLayerNodes (int index, Tab< INode * > &nodeTab)=0
 Collapse the layer at the specified index so that it gets deleted and it's keys and values are baked down to the previous layer. More...
 
virtual void DisableLayerNodes (Tab< INode * > &nodeTab)=0
 Disables and removes any layers on the specified nodes, by replacing the layer controller that exists with the first, base layer. More...
 
virtual void AnimLayerPropertiesDlg ()=0
 Brings up the Animation Layer Properties Dialog, which lets you set different animation layer properties, such as whether or not we should automatically mute layers greater than the active one. More...
 
virtual void SetFilterActiveOnlyTrackView (bool val)=0
 Sets whether or not trackview will only show the current active layer or all of the layers for all of the layer controllers \ param[in] val If true only active layers will be shown in trackview. More...
 
virtual bool GetFilterActiveOnlyTrackView ()=0
 Get whether or not trackview will only show the current active layer or all of the layers for all of the layer controllers. More...
 
virtual void SetJustUpToActive (bool v)=0
 Sets whether or not we will automatically mute layers greater than the active layer. More...
 
virtual bool GetJustUpToActive ()=0
 Get whether or not we will automatically mute layers greater than the active layer. More...
 
virtual void SetCollapseControllerType (IAnimLayerControlManager::ControllerType type)=0
 Sets the controller type we will collapse non keyable controllers onto. More...
 
virtual IAnimLayerControlManager::ControllerType GetCollapseControllerType ()=0
 Get the controller type we will collapse non keyable controllers onto. More...
 
virtual void SetCollapsePerFrame (bool v)=0
 Sets whether or not we will collapse a controller per frame or we will try to just collapse the keys of the two controllers that are being merged. More...
 
virtual bool GetCollapsePerFrame ()=0
 Gets whether or not we will collapse a controller per frame or we will try to just collapse the keys of the two controllers that are being merged. More...
 
virtual void SetCollapsePerFrameActiveRange (bool v)=0
 Sets whether or not if collapsing per frame we use the active range, or a specified range. More...
 
virtual bool GetCollapsePerFrameActiveRange ()=0
 Gets whether or not if collapsing per frame we use the active range, or a specified range. More...
 
virtual void SetCollapseRange (Interval range)=0
 Sets the collapse range, if we aren't collapsing over the active range interval. More...
 
virtual Interval GetCollapseRange ()=0
 Gets the collapse range, if we aren't collapsing over the active range interval. 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=nullptr)
 
- 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 animation layers.

This class contains key functionality for creating and manipulation animation layer.s You get this interface by calling

#define IANIMLAYERCONTROLMANAGER_INTERFACE
Interface ID for the IAnimLayerControlManager Interface.
Definition: ILayerControl.h:30
The interface to the functionality for animation layers.
Definition: ILayerControl.h:39
CoreExport Interface * GetCOREInterface()

Member Enumeration Documentation

◆ Filter

enum Filter

Enum for where to create the individual layer controllers when calling EnableAnimLayers.

See also
IAnimLayerControlManager::EnableAnimLayers ePos means that we will create a layer around the position controller, eRot means that we will create a layer around the rotation controller, eScale means that we will create a layer around the scale controller, eIk means that we will create layers within an IK node, eObject means that we will create layers around the object controllers, eCA means that we will create layers around custom attributes, eMod means that we will create layers around modifier controllers, eMat means that we will create layers around material controllers, eOther means that we will create layers around any other controller.
Enumerator
ePos 
eRot 
eScale 
eIK 
eObject 
eCA 
eMod 
eMat 
eOther 
54  {ePos= 0x1, eRot = 0x2, eScale = 0x4,eIK = 0x8, eObject = 0x10,
55  eCA = 0x20, eMod = 0x40, eMat = 0x80, eOther = 0x100};
@ eRot
Definition: ILayerControl.h:54
@ eMod
Definition: ILayerControl.h:55
@ eScale
Definition: ILayerControl.h:54
@ eOther
Definition: ILayerControl.h:55
@ eMat
Definition: ILayerControl.h:55
@ eObject
Definition: ILayerControl.h:54
@ ePos
Definition: ILayerControl.h:54
@ eCA
Definition: ILayerControl.h:55
@ eIK
Definition: ILayerControl.h:54

◆ ControllerType

Enum for specifying what type of controller you want a non keyable controller to collapse to when you collapse onto it.

See also
IAnimLayerControlManager::SetCollapseControllerType eBezier means that you will either collapse onto a Bezier controller or a Euler controller. eLinear means that you will either collapse onto a Linear controller or a TCB controller. eDefault means that you will collapse onto the default controller for it's type.
Enumerator
eBezier 
eLinear 
eDefault 
63 {eBezier=0x0, eLinear, eDefault};
@ eLinear
Definition: ILayerControl.h:63
@ eBezier
Definition: ILayerControl.h:63
@ eDefault
Definition: ILayerControl.h:63

Member Function Documentation

◆ ShowAnimLayersManagerToolbar()

virtual void ShowAnimLayersManagerToolbar ( bool  show)
pure virtual

Brings up or hides the main Anim Layers Manager Dialog.

This funciton will bring up or hide the main Anim Layers manager toolbar.

Parameters
[in]showIf true, then show the toolbar, otherwise hide it.

◆ RefreshAnimLayersManagerToolbar()

virtual void RefreshAnimLayersManagerToolbar ( )
pure virtual

This refreshes the UI in the Anim Layers Manager Dialog, if it's open.

◆ EnableAnimLayersDlg()

virtual int EnableAnimLayersDlg ( Tab< INode * > &  nodeTab)
pure virtual

Brings up the Enable Animation Layers Dialog.

This function will bring up a dialog where a user can specify where they want to enable layer animation by creating layer controllers where specified in the dialog.

Parameters
[in]nodeTabThe nodes that the results of the filters chosen in the enable animation layers dialog will apply too.

◆ EnableAnimLayers()

virtual int EnableAnimLayers ( Tab< INode * > &  nodeTab,
DWORD  filter 
)
pure virtual

Enable animation layers on specified nodes given particular filters.

This function enables animations layers on specified nodes by creating layer controllers as specified by the filter parameter. Note that this function will only create layer controllers, it doesn't delete layer controllers if it's not specified in the filter.

Parameters
[in]nodeTabThe nodes where the layer controllers will be created.
[in]filterWhere the layer controllers will be created.
See also
IAnimLayerControlManager::Filter
Returns
Returns how many layer controllers where made on the specified nodes.

◆ CanEnableAnimLayer()

virtual BOOL CanEnableAnimLayer ( ReferenceTarget anim,
ReferenceTarget client,
int  subNum 
)
pure virtual

Returns whether or not the specified animatable will be able to be converted to a layer control or not.

Parameters
[in]animThe animatable that we want to convert to a layer controller.
[in]clientThe parent of the animatable we want to replace.
[in]subNumThe 'anim' animatable subanim's number on the client.
Returns
Returns true if we can replace it with a layer controller,else returns false.

◆ EnableAnimLayer()

virtual BOOL EnableAnimLayer ( ReferenceTarget anim,
ReferenceTarget client,
int  subnum 
)
pure virtual

This function will enable a layer on the specified anim in the TrackViewPick parameter.

If other layers exist on the node that the layer exists on, then the layer control will sync up with those layers.

Parameters
[in]animThe animatable that we want to replace with a layer controller.
[in]clientThe parent of the animatable we want to replace.
[in]subnumThe 'anim' animatable subanim's number on the client.
Returns
Returns whether or not we successfully enabled a layer here. Some reasons why we may not be successful is if a a child subanim is already a layer controller(no nested layers) or the controller is a subanim of a position,rotation or scale, controller.

◆ GetLayerCount()

virtual int GetLayerCount ( )
pure virtual

Return the total number of layers.

Returns
The total number of layers.

◆ GetNodesLayers()

virtual void GetNodesLayers ( Tab< INode * > &  nodeTab,
Tab< int > &  layers 
)
pure virtual

This function returns which layers exist on the passed in nodes.

Note that a layer may only exist on some, not all of the nodes.

Parameters
[in]nodeTabThe nodes where we are checking for layers.
[out]layersThe indices of which layers exist on these nodes.

◆ SetLayerActive()

virtual void SetLayerActive ( int  index)
pure virtual

Sets the layer active.

Parameters
[in]indexThe index to set active. If the index is out of range then nothing is set active.

◆ SetLayerActiveNodes()

virtual void SetLayerActiveNodes ( int  index,
Tab< INode * > &  nodeTab 
)
pure virtual

Sets the active layer only on the nodes that are passed in.

Also if that layer doesn't exist on a node then nothing occurs.

Parameters
[in]indexThe index to set active.
[in]nodeTabThe nodes whose layer will be set to active.

◆ AddLayer()

virtual void AddLayer ( MSTR name,
Tab< INode * > &  nodeTab,
bool  useActiveControllerType 
)
pure virtual

Adds a layer to the specified nodes.

If a layer with that name doesn't exist, a layer with that name is created, otherwise the layer with that name will be used to add to those layers. If a node already has that layer, then nothing happens.

Parameters
[in]nameThe name of the layer to add to the nodes.
[in]nodeTabThe nodes which will have the named layer added to them.
[in]useActiveControllerTypeIf true, then the controller type in the active layer will be used to create the new layer, otherwise we will use the default controller type.

◆ AddLayerDlg()

virtual void AddLayerDlg ( Tab< INode * > &  nodeTab)
pure virtual

Adds a layer to the specified nodes, by bringing up a dialog that lets you specify the layers name and what controller class the new layer will be.

Parameters
[in]nodeTabThe nodes which will have the named layer added to them.

◆ GetActiveLayersNodes()

virtual void GetActiveLayersNodes ( Tab< INode * > &  nodeTab,
Tab< int > &  layers 
)
pure virtual

Gets which layers are active on the passed in set of nodes.

Parameters
[in]nodeTabThe nodes which we are checking for active layers
[out]layersThe layers that are active on these nodes

◆ GetNodesActiveLayer()

virtual void GetNodesActiveLayer ( Tab< INode * > &  nodeTab)
pure virtual

Gets which nodes in the scene have the active layer on it.

Parameters
[out]nodeTabThe nodes which have the active layer on it. Note that if we have multiple active layers, then we will get all of the nodes in those active layers.

◆ DeleteLayer()

virtual void DeleteLayer ( int  index)
pure virtual

Delete this layer.

Note that this completely deletes the layer, including any weight control, from the system and any nodes where it exists.

Parameters
[in]indexThe layer to delete. Note that we can't delete the first (0th) layer.

◆ DeleteLayerNodes()

virtual void DeleteLayerNodes ( int  index,
Tab< INode * > &  nodeTab 
)
pure virtual

Delete this layer from the specified nodes.

Note that this only deletes the layer from these nodes, not the system or other nodes.

Parameters
[in]indexThe layer to delete. Note that we can't delete the first (0th) layer.
[in]nodeTabThe nodes where the layer will be deleted. Nothing happens if the layer doesn't exist on a node.

◆ CopyLayerNodes()

virtual void CopyLayerNodes ( int  index,
Tab< INode * > &  nodeTab 
)
pure virtual

Copy this layer to a buffer so that it may be copied.

Parameters
[in]indexThe layer to copy.
[in]nodeTabThe nodes where the layer will be copy. Nothing happens if the layer doesn't exist on a node.

◆ PasteLayerNodes()

virtual void PasteLayerNodes ( int  index,
Tab< INode * > &  nodeTab 
)
pure virtual

Paste the active copied layer at this index on these nodes.

If no layer is copied on a node, then nothing will be pasted.

Parameters
[in]indexWhere to paste the copied layer over the existing layer. If the index is -1 or greater than the max number of layers already present, it will paste at the end.
[in]nodeTabThe nodes where the layer will be pasted. Nothing happens if the layer doesn't exist on that node.

◆ SetLayerName()

virtual void SetLayerName ( int  index,
MSTR  name 
)
pure virtual

Set the layer name at the specified index.

If the name already exists, the name won't get changed.

Parameters
[in]indexWhere to change the name of the layer.
[in]nameThe new name.

◆ GetLayerName()

virtual MSTR GetLayerName ( int  index)
pure virtual

Get the name of the specified layer.

Parameters
[in]indexWhere to get the name of the layer.
Returns
Returns the name of the specified layer. If the index is out of bounds, then an empty string is returned.

◆ GetLayerWeight()

virtual float GetLayerWeight ( int  index,
TimeValue  t 
)
pure virtual

Get the layer weight for the specified layer at the specified time.

Parameters
[in]indexWhere to get the layer weight.
[in]tAt what time to get the layer weight.
Returns
Returns the layer weight.

◆ SetLayerWeight()

virtual void SetLayerWeight ( int  index,
TimeValue  t,
float  weight 
)
pure virtual

Set the layer weight for the specified layer at the specified time.

Parameters
[in]indexWhere to set the layer weight.
[in]tAt what time to set the layer weight.
[in]weightThe weight to set.

◆ GetLayerWeightControl()

virtual Control* GetLayerWeightControl ( int  index)
pure virtual

Get the layer weight control for the specified layer.

Parameters
[in]indexWhere to get the layer weight.
Returns
Returns the layer weight control.

◆ SetLayerWeightControl()

virtual bool SetLayerWeightControl ( int  index,
Control c 
)
pure virtual

Set the layer weight control for the specified layer.

Parameters
[in]indexWhere to set the layer weight.
[in]cThe weight control we want to set at that index. It needs to be a float controller.
Returns
Returns whether or not we were able to set the weight control or not.

◆ GetLayerMute()

virtual bool GetLayerMute ( int  index)
pure virtual

Get whether or not a particular layer is muted or not.

Parameters
[in]indexWhich layer to see if it's muted.
Returns
Whether or not the layer is muted or not.

◆ SetLayerMute()

virtual void SetLayerMute ( int  index,
bool  mute 
)
pure virtual

Set whether or not a particular layer is muted or not.

Parameters
[in]indexWhich layer to mute or not.
[in]muteThe mute value for the specified layer.

◆ GetLayerOutputMute()

virtual bool GetLayerOutputMute ( int  index)
pure virtual

Get whether or not a particular layer's output is muted or not.

Parameters
[in]indexWhich layer to see if it's muted.
Returns
Whether or not the layer is muted or not.

◆ SetLayerOutputMute()

virtual void SetLayerOutputMute ( int  index,
bool  mute 
)
pure virtual

Set whether or not a particular layer output is muted or not.

Parameters
[in]indexWhich layer output to mute or not.
[in]muteThe output mute value for the specified layer.

◆ GetLayerLocked()

virtual bool GetLayerLocked ( int  index)
pure virtual

Get whether or not a particular layer is locked.

A locked layer cannot be animated nor collapsed, or pasted over and an object with a locked layer cannot get disabled.

Parameters
[in]indexWhich layer to see if it's locked.
Returns
Whether or not the layer is locked or not.

◆ SetLayerLocked()

virtual void SetLayerLocked ( int  index,
bool  locked 
)
pure virtual

Set whether or not a particular layer is locked.

A locked layer cannot be animated nor collapsed, or pasted over and an object with a locked layer cannot get disabled.

Parameters
[in]indexWhich layer output to lock or unlock.
[in]lockedthe locked value for the specified layer. If true the layer is locked if false it is unlocked.

◆ CollapseLayerNodes()

virtual void CollapseLayerNodes ( int  index,
Tab< INode * > &  nodeTab 
)
pure virtual

Collapse the layer at the specified index so that it gets deleted and it's keys and values are baked down to the previous layer.


Parameters
[in]indexWhere to collapse. The index must be greater than zero since we can't collapse the first layer.
[in]nodeTabThe nodes where the layer will be collapsed. Nothing happens if the layer doesn't exist on that node.

◆ DisableLayerNodes()

virtual void DisableLayerNodes ( Tab< INode * > &  nodeTab)
pure virtual

Disables and removes any layers on the specified nodes, by replacing the layer controller that exists with the first, base layer.

Note that it will disable layer controllers that only have one layer.

Parameters
[in]nodeTabThe nodes where layers will be disabled. Nothing happens if no layers exists or the layer has more than one layer.

◆ AnimLayerPropertiesDlg()

virtual void AnimLayerPropertiesDlg ( )
pure virtual

Brings up the Animation Layer Properties Dialog, which lets you set different animation layer properties, such as whether or not we should automatically mute layers greater than the active one.

◆ SetFilterActiveOnlyTrackView()

virtual void SetFilterActiveOnlyTrackView ( bool  val)
pure virtual

Sets whether or not trackview will only show the current active layer or all of the layers for all of the layer controllers \ param[in] val If true only active layers will be shown in trackview.

◆ GetFilterActiveOnlyTrackView()

virtual bool GetFilterActiveOnlyTrackView ( )
pure virtual

Get whether or not trackview will only show the current active layer or all of the layers for all of the layer controllers.

Returns
Returns whether or trackview will only show the current active layer or all of the layers.

◆ SetJustUpToActive()

virtual void SetJustUpToActive ( bool  v)
pure virtual

Sets whether or not we will automatically mute layers greater than the active layer.

\ param[in] val If true, automatically mute layers greater than the active layer.

◆ GetJustUpToActive()

virtual bool GetJustUpToActive ( )
pure virtual

Get whether or not we will automatically mute layers greater than the active layer.

Returns
Returns whether or not we will automatically mute layers greater than the active layer.

◆ SetCollapseControllerType()

virtual void SetCollapseControllerType ( IAnimLayerControlManager::ControllerType  type)
pure virtual

Sets the controller type we will collapse non keyable controllers onto.

Parameters
[in]typeThe type of controller to collapse too, either Bezier, Linear or Default.

◆ GetCollapseControllerType()

virtual IAnimLayerControlManager::ControllerType GetCollapseControllerType ( )
pure virtual

Get the controller type we will collapse non keyable controllers onto.

Returns
Returns the type of controller to collapse non keyable controller onto. Either Bezier, Linear or Default.

◆ SetCollapsePerFrame()

virtual void SetCollapsePerFrame ( bool  v)
pure virtual

Sets whether or not we will collapse a controller per frame or we will try to just collapse the keys of the two controllers that are being merged.

We can only collapse the keys if the two controllers are of the same class and are both keyable.

Parameters
[in]vIf true it will always collapse per frame, otherwise it will try to only collapse onto keys if it can.

◆ GetCollapsePerFrame()

virtual bool GetCollapsePerFrame ( )
pure virtual

Gets whether or not we will collapse a controller per frame or we will try to just collapse the keys of the two controllers that are being merged.

We can only collapse the keys if the two controllers are of the same class and are both keyable.

Returns
If true it will always collapse per frame, otherwise it will try to only collapse onto keys if it can.

◆ SetCollapsePerFrameActiveRange()

virtual void SetCollapsePerFrameActiveRange ( bool  v)
pure virtual

Sets whether or not if collapsing per frame we use the active range, or a specified range.

See also
IAnimLayerControlManager::SetCollapseRange.
Parameters
[in]vIf true, when we collapse per frame we use the active range in the scene, otherwise we use a specified range.

◆ GetCollapsePerFrameActiveRange()

virtual bool GetCollapsePerFrameActiveRange ( )
pure virtual

Gets whether or not if collapsing per frame we use the active range, or a specified range.

See also
IAnimLayerControlManager::GetCollapseRange.
Returns
If true, when we collapse per frame we use the active range in the scene, otherwise we use a specified range.

◆ SetCollapseRange()

virtual void SetCollapseRange ( Interval  range)
pure virtual

Sets the collapse range, if we aren't collapsing over the active range interval.

See also
IAnimLayerControlManager::SetCollapsePerFrameActiveRange.
Parameters
[in]rangeThe range we want to collapse a frame per key over.

◆ GetCollapseRange()

virtual Interval GetCollapseRange ( )
pure virtual

Gets the collapse range, if we aren't collapsing over the active range interval.

See also
IAnimLayerControlManager::GetCollapsePerFrameActiveRange.
Returns
The range we want to collapse a frame per key over.

◆ SetUpCustUI()

virtual void SetUpCustUI ( ICustToolbar toolbar,
int  id,
HWND  hWnd,
HWND  hParent 
)
pure virtual

!

◆ GetComboToolTip()

virtual const MCHAR* GetComboToolTip ( )
pure virtual

!