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 static_cast<IAnimLayerControlManager*>(GetCOREInterface(IANIMLAYERCONTROLMANAGER_INTERFACE ))
#include <ILayerControl.h>
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 Member Functions |
|
virtual void | SetUpCustUI (ICustToolbar *toolbar, int id, HWND hWnd, HWND hParent)=0 |
virtual MCHAR * | GetComboToolTip ()=0 |
Dialog Functions
|
|
virtual void | ShowAnimLayersManagerToolbar (bool show)=0 |
Brings up or hides the main Anim Layers
Manager Dialog. |
|
virtual void | RefreshAnimLayersManagerToolbar ()=0 |
This refreshes the UI in the Anim Layers
Manager Dialog, if it's open. |
|
virtual int | EnableAnimLayersDlg (Tab< INode * > &nodeTab)=0 |
Brings up the Enable Animation Layers
Dialog. |
|
Core Functionality
|
|
virtual int | EnableAnimLayers (Tab< INode * > &nodeTab, DWORD filter)=0 |
Enable animation layers on specified nodes
given particular filters. |
|
virtual BOOL | CanEnableAnimLayer (ReferenceTarget *anim, ReferenceTarget *client, int subNum)=0 |
Returns whether or not the specified
animatible will be able to be converted to a layer control or not.
|
|
virtual BOOL | EnableAnimLayer (ReferenceTarget *anim, ReferenceTarget *client, int subnum)=0 |
This function will enable a layer on the
specified anim in the TrackViewPick parameter. |
|
virtual int | GetLayerCount ()=0 |
Return the total number of layers. |
|
virtual void | GetNodesLayers (Tab< INode * > &nodeTab, Tab< int > &layers)=0 |
This function returns which layers exist on
the passed in nodes. |
|
virtual void | SetLayerActive (int index)=0 |
Sets the layer active. |
|
virtual void | SetLayerActiveNodes (int index, Tab< INode * > &nodeTab)=0 |
Sets the active layer only on the nodes that
are passed in. |
|
virtual void | AddLayer (MSTR &name, Tab< INode * > &nodeTab, bool useActiveControllerType)=0 |
Adds a layer to the specified nodes.
|
|
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. |
|
virtual void | GetActiveLayersNodes (Tab< INode * > &nodeTab, Tab< int > &layers)=0 |
Gets which layers are active on the passed
in set of nodes. |
|
virtual void | GetNodesActiveLayer (Tab< INode * > &nodeTab)=0 |
Gets which nodes in the scene have the
active layer on it. |
|
virtual void | DeleteLayer (int index)=0 |
Delete this layer. |
|
virtual void | DeleteLayerNodes (int index, Tab< INode * > &nodeTab)=0 |
Delete this layer from the specified nodes.
|
|
virtual void | CopyLayerNodes (int index, Tab< INode * > &nodeTab)=0 |
Copy this layer to a buffer so that it may
be copied. |
|
virtual void | PasteLayerNodes (int index, Tab< INode * > &nodeTab)=0 |
Paste the active copied layer at this index
on these nodes. |
|
virtual void | SetLayerName (int index, MSTR name)=0 |
Set the layer name at the specified index.
|
|
virtual MSTR | GetLayerName (int index)=0 |
Get the name of the specified layer.
|
|
virtual float | GetLayerWeight (int index, TimeValue t)=0 |
Get the layer weight for the specified layer
at the specified time. |
|
virtual void | SetLayerWeight (int index, TimeValue t, float weight)=0 |
Set the layer weight for the specified layer
at the speicifed time. |
|
virtual Control * | GetLayerWeightControl (int index)=0 |
Get the layer weight control for the
specified layer. |
|
virtual bool | SetLayerWeightControl (int index, Control *c)=0 |
Set the layer weight control for the
specified layer. |
|
virtual bool | GetLayerMute (int index)=0 |
Get whether or not a particular layer is
muted or not. |
|
virtual void | SetLayerMute (int index, bool mute)=0 |
Set whether or not a particular layer is
muted or not. |
|
virtual bool | GetLayerOutputMute (int index)=0 |
Get whether or not a particular layer's
output is muted or not. |
|
virtual void | SetLayerOutputMute (int index, bool mute)=0 |
Set whether or not a particular layer output
is muted or not. |
|
virtual bool | GetLayerLocked (int index)=0 |
Get whether or not a particular layer is
locked. |
|
virtual void | SetLayerLocked (int index, bool locked)=0 |
Set whether or not a particular layer is
locked. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
virtual void | SetJustUpToActive (bool v)=0 |
Sets whether or not we will automatically
mute layers greater than the active layer. |
|
virtual bool | GetJustUpToActive ()=0 |
Get whether or not we will automatically
mute layers greater than the active layer. |
|
virtual void | SetCollapseControllerType (IAnimLayerControlManager::ControllerType type)=0 |
Sets the controller type we will collapse
non keyable controllers onto. |
|
virtual IAnimLayerControlManager::ControllerType |
GetCollapseControllerType ()=0 |
Get the controller type we will collapse non
keyable controllers onto. |
|
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. |
|
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. |
|
virtual void | SetCollapsePerFrameActiveRange (bool v)=0 |
Sets whether or not if collapsing per frame
we use the active range, or a specified range. |
|
virtual bool | GetCollapsePerFrameActiveRange ()=0 |
Gets whether or not if collapsing per frame
we use the active range, or a specified range. |
|
virtual void | SetCollapseRange (Interval range)=0 |
Sets the collapse range, if we aren't
collapsing over the active range interval. |
|
virtual Interval | GetCollapseRange ()=0 |
Gets the collapse range, if we aren't
collapsing over the active range interval. |
enum Filter |
Enum for where to create the individual layer controllers when calling EnableAnimLayers.
enum ControllerType |
Enum for specifying what type of controller you want a non keyable controller to collapse to when you collapse onto it.
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.
[in] | show | If true, then show the toolbar, otherwise hide it. |
virtual void RefreshAnimLayersManagerToolbar | ( | ) | [pure virtual] |
This refreshes the UI in the Anim Layers Manager Dialog, if it's open.
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.
[in] | nodeTab | The nodes that the results of the filters chosen in the enable animation layers dialog will apply too. |
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' delete layer controllers if it's not specified in the filter.
[in] | nodeTab | The nodes where the layer controllers will be created. ! |
[in] | filter | Where the layer controllers will be created. |
virtual BOOL CanEnableAnimLayer | ( | ReferenceTarget * | anim, |
ReferenceTarget * | client, | ||
int | subNum | ||
) | [pure virtual] |
Returns whether or not the specified animatible will be able to be converted to a layer control or not.
[in] | anim | The animatable that we want to convert to a layer controller. |
[in] | client | The parent of the animatalbe we want to replace. |
[in] | subNum | The 'anim' animatable subanim's number on the client. |
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.
[in] | anim | The animatable that we want to replace with a layer controller. |
[in] | client | The parent of the animatalbe we want to replace. |
[in] | subnum | The 'anim' animatable subanim's number on the client. |
virtual int GetLayerCount | ( | ) | [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.
[in] | nodeTab | The nodes where we are checking for layers. |
[out] | layers | The indices of which layers exist on these nodes. |
virtual void SetLayerActive | ( | int | index | ) | [pure virtual] |
Sets the layer active.
[in] | index | The index to set active. If the index is out of range then nothing is set active. |
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.
[in] | index | The index to set active. |
[in] | nodeTab | The nodes whose layer will be set to active. |
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.
[in] | name | The name of the layer to add to the nodes. |
[in] | nodeTab | The nodes which will have the named layer added to them. |
[in] | useActiveControllerType | If 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. |
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.
[in] | nodeTab | The nodes which will have the named layer added to them. |
Gets which layers are active on the passed in set of nodes.
[in] | nodeTab | The nodes which we are checking for active layers |
[out] | layers | The layers that are active on these nodes |
Gets which nodes in the scene have the active layer on it.
[out] | nodeTab | The 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. |
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.
[in] | index | The layer to delete. Note that we can't delete the first (0th) layer. |
Delete this layer from the specified nodes.
Note that this only deletes the layer from these nodes, not the system or other nodes.
[in] | index | The layer to delete. Note that we can't delete the first (0th) layer. |
[in] | nodeTab | The nodes where the layer will be deleted. Nothing happens if the layer doesn't exist on a node. |
Copy this layer to a buffer so that it may be copied.
[in] | index | The layer to copy. |
[in] | nodeTab | The nodes where the layer will be copy. Nothing happens if the layer doesn't exist on a node. |
Paste the active copied layer at this index on these nodes.
If no layer is copied on a node, then nothing will be pasted.
[in] | index | Where 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] | nodeTab | The nodes where the layer will be pasted. Nothing happens if the layer doesn't exist on that node. |
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.
[in] | index | Where to change the name of the layer. |
[in] | name | The new name. |
virtual MSTR GetLayerName | ( | int | index | ) | [pure virtual] |
Get the name of the specified layer.
[in] | index | Where to get the name of the layer. |
virtual float GetLayerWeight | ( | int | index, |
TimeValue | t | ||
) | [pure virtual] |
Get the layer weight for the specified layer at the specified time.
[in] | index | Where to get the layer weight. |
[in] | t | At what time to get the layer weight. |
virtual void SetLayerWeight | ( | int | index, |
TimeValue | t, | ||
float | weight | ||
) | [pure virtual] |
Set the layer weight for the specified layer at the speicifed time.
[in] | index | Where to set the layer weight. |
[in] | t | At what time to set the layer weight. |
[in] | weight | The weight to set. |
virtual Control* GetLayerWeightControl | ( | int | index | ) | [pure virtual] |
Get the layer weight control for the specified layer.
[in] | index | Where to get the layer weight. |
virtual bool SetLayerWeightControl | ( | int | index, |
Control * | c | ||
) | [pure virtual] |
Set the layer weight control for the specified layer.
[in] | index | Where to set the layer weight. |
[in] | c | The weight control we want to set at that index. It needs to be a float controller. |
virtual bool GetLayerMute | ( | int | index | ) | [pure virtual] |
Get whether or not a particular layer is muted or not.
[in] | index | Which layer to see if it's muted. |
virtual void SetLayerMute | ( | int | index, |
bool | mute | ||
) | [pure virtual] |
Set whether or not a particular layer is muted or not.
[in] | index | Which layer to mute or not. |
[in] | mute | The mute value for the specified layer. |
virtual bool GetLayerOutputMute | ( | int | index | ) | [pure virtual] |
Get whether or not a particular layer's output is muted or not.
[in] | index | Which layer to see if it's muted. |
virtual void SetLayerOutputMute | ( | int | index, |
bool | mute | ||
) | [pure virtual] |
Set whether or not a particular layer output is muted or not.
[in] | index | Which layer output to mute or not. |
[in] | mute | The output mute value for the specified layer. |
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.
[in] | index | Which layer to see if it's locked. |
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.
[in] | index | Which layer output to lock or unlock. |
[in] | locked | the locked value for the specified layer. If true the layer is locked if false it is unlocked. |
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.
[in] | index | Where to collapse. The index must be greater than zero since we can't collapse the first layer. |
[in] | nodeTab | The nodes where the layer will be collapsed. Nothing happens if the layer doesn't exist on that node. |
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.
[in] | nodeTab | The nodes where layers will be disabled. Nothing happens if no layers exists or the layer has more than one layer. |
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.
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.
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.
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.
virtual bool GetJustUpToActive | ( | ) | [pure virtual] |
Get whether or not we will automatically mute layers greater than the active layer.
virtual void SetCollapseControllerType | ( | IAnimLayerControlManager::ControllerType | type | ) | [pure virtual] |
Sets the controller type we will collapse non keyable controllers onto.
[in] | type | The type of controller to collapse too, either Bezier, Linear or Default. |
virtual IAnimLayerControlManager::ControllerType GetCollapseControllerType | ( | ) | [pure virtual] |
Get the controller type we will collapse non keyable controllers onto.
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 collape the keys if the two controllers are of the same class and are both keyable.
[in] | v | If true it will always collapse per frame, otherwise it will try to only collapse onto keys if it can. |
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 collape the keys if the two controllers are of the same class and are both keyable.
virtual void SetCollapsePerFrameActiveRange | ( | bool | v | ) | [pure virtual] |
Sets whether or not if collapsing per frame we use the active range, or a specified range.
[in] | v | If true, when we collapse per frame we use the active range in the scene, otherwise we use a specified range. |
virtual bool GetCollapsePerFrameActiveRange | ( | ) | [pure virtual] |
Gets whether or not if collapsing per frame we use the active range, or a specified range.
virtual void SetCollapseRange | ( | Interval | range | ) | [pure virtual] |
Sets the collapse range, if we aren't collapsing over the active range interval.
[in] | range | The range we want to collapse a frame per key over. |
virtual Interval GetCollapseRange | ( | ) | [pure virtual] |
Gets the collapse range, if we aren't collapsing over the active range interval.
virtual void SetUpCustUI | ( | ICustToolbar * | toolbar, |
int | id, | ||
HWND | hWnd, | ||
HWND | hParent | ||
) | [pure virtual] |
virtual MCHAR* GetComboToolTip | ( | ) | [pure virtual] |