Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions

MSPluginTrackViewUtility Class Reference

Search for all occurrences

#include <mxsPlugin.h>

Inheritance diagram for MSPluginTrackViewUtility:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  MSPluginTrackViewUtility ()
  MSPluginTrackViewUtility (MSPluginClass *pc, BOOL loading)
  ~MSPluginTrackViewUtility ()
virtual void  BeginEditParams (Interface *ip, ITVUtility *iu)
virtual void  EndEditParams (Interface *ip, ITVUtility *iu)
virtual void  TrackSelectionChanged ()
virtual void  NodeSelectionChanged ()
virtual void  KeySelectionChanged ()
virtual void  TimeSelectionChanged ()
virtual void  MajorModeChanged ()
virtual void  TrackListChanged ()
virtual int  FilterAnim (Animatable *anim, Animatable *client, int subNum)
virtual HWND  AddRollupPage (HINSTANCE hInst, MCHAR *dlgTemplate, DLGPROC dlgProc, MCHAR *title, LPARAM param=0, DWORD flags=0, int category=ROLLUP_CAT_STANDARD)
virtual void  DeleteRollupPage (HWND hRollup)
virtual IRollupWindow GetRollupWindow ()
virtual ReferenceTarget get_delegate ()
void  DeleteThis ()
void  GetClassName (MSTR &s)
  Retrieves the name of the plugin class.
Class_ID  ClassID ()
void  FreeCaches ()
int  NumSubs ()
Animatable SubAnim (int i)
MSTR  SubAnimName (int i)
int  NumParamBlocks ()
IParamBlock2 GetParamBlock (int i)
IParamBlock2 GetParamBlockByID (BlockID id)
virtual void *  GetInterface (ULONG id)
  Inherited from Animatable.
RefResult  NotifyRefChanged (Interval changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message)
int  NumRefs ()
  Returns the total number of references this ReferenceMaker can hold.
RefTargetHandle  GetReference (int i)
  Returns the 'i-th' reference.
RefTargetHandle  Clone (RemapDir &remap)
  This method is used by 3ds Max to clone an object.

Static Public Member Functions

static TrackViewUtility create (MSPluginClass *pc, BOOL loading)

Public Attributes

Interface ip
ITVUtility iu

Protected Member Functions

virtual void  SetReference (int i, RefTargetHandle rtarg)
  Stores a ReferenceTarget as its 'i-th' reference`.

Constructor & Destructor Documentation

{ }
MSPluginTrackViewUtility ( MSPluginClass *  pc,
BOOL  loading 
)
~MSPluginTrackViewUtility ( ) [inline]

Member Function Documentation

virtual void BeginEditParams ( Interface ip,
ITVUtility iu 
) [virtual]
Remarks:
This method is called to begin editing of the Track View utility plug-in's parameters.
Parameters:
Interface *ip

An interface for calling functions provided by 3ds Max.

ITVUtility *iu

An interface for allowing track view utilities to access the Track View they are launched from.
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void EndEditParams ( Interface ip,
ITVUtility iu 
) [virtual]
Remarks:
This method is called when the user has closed the Track View utility or Track View itself.
Parameters:
Interface *ip

An interface for calling functions provided by 3ds Max.

ITVUtility *iu

An interface for allowing track view utilities to access the Track View they are launched from.
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void TrackSelectionChanged ( ) [virtual]
Remarks:
This method is called when the selection of tracks has changed.
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void NodeSelectionChanged ( ) [virtual]
Remarks:
This method is called when the selection of nodes has changed.
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void KeySelectionChanged ( ) [virtual]
Remarks:
This method is called when the selection of keys has changed.
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void TimeSelectionChanged ( ) [virtual]
Remarks:
This method is called when the amount of time selected changes in Edit Time mode. See ITVUtility::GetTimeSelection().
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void MajorModeChanged ( ) [virtual]
Remarks:
This method is called if the current mode of Track View changes. These are the modes such as Edit Keys, Edit Time, Edit Ranges, Position Ranges, and Edit Function Curves. See ITVUtility::GetMajorMode().
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual void TrackListChanged ( ) [virtual]
Remarks:
This method is called when the Track View list is rebuild. This is the list of items that are visible (currently open).
Default Implementation:
{}

Reimplemented from TrackViewUtility.

virtual int FilterAnim ( Animatable anim,
Animatable client,
int  subNum 
) [virtual]
static TrackViewUtility* create ( MSPluginClass *  pc,
BOOL  loading 
) [static]
virtual HWND AddRollupPage ( HINSTANCE  hInst,
MCHAR *  dlgTemplate,
DLGPROC  dlgProc,
MCHAR *  title,
LPARAM  param = 0,
DWORD  flags = 0,
int  category = ROLLUP_CAT_STANDARD 
) [virtual]
virtual void DeleteRollupPage ( HWND  hRollup ) [virtual]
virtual IRollupWindow* GetRollupWindow ( ) [virtual]
virtual ReferenceTarget* get_delegate ( ) [inline, virtual]

Implements MSPlugin.

{ return NULL; }  // no delegate 
void DeleteThis ( ) [inline, virtual]
Remarks:
This method is called to delete this instance of the plug-in class. This method should free the memory allocated in ClassDesc::Create(). See the Advanced Topics section on Memory Management for more details.

Implements TrackViewUtility.

void GetClassName ( MSTR s ) [inline, virtual]

Retrieves the name of the plugin class.

This name is usually used internally for debugging purposes. For Material plug-ins this method is used to put up the material "type" name in the Material Editor.

Parameters:
s Reference to a string filled in with the name of the plugin class

Reimplemented from ReferenceTarget.

{ s = MSTR(pc->class_name->to_string()); }  
Class_ID ClassID ( ) [inline, virtual]

Reimplemented from TrackViewUtility.

{ return pc->class_id; }
void FreeCaches ( ) [inline, virtual]
Remarks:
This is called to delete any item that can be rebuilt. For example, the procedural sphere object has a mesh that it caches. It could call Mesh::FreeAll() on the mesh from this method. This will free the vertex/face/uv arrays. If the sphere is ever evaluated again it can just rebuild the mesh. If an object (like a sphere) has modifiers applied to it, and those modifiers are not animated, then the result of the pipeline is cached in the node. So there is no reason for the sphere to also have a cache of its representation. Therefore when this method is called, the sphere can free the data of the mesh.
Default Implementation:
{}

Reimplemented from Animatable.

{ }         
int NumSubs ( ) [inline, virtual]
Remarks:
The system uses a virtual array mechanism to access the sub-anims of a plug-in. This method returns the total number of sub-anims maintained by the plug-in. If a plug-in is using a parameter block to manage its parameters it should just return 1 for all the parameters directed by the parameter block.
Returns:
The number of sub-anims used by the plug-in.
Default Implementation:
{ return 0; }

Reimplemented from Animatable.

{ return pblocks.Count(); }  
Animatable* SubAnim ( int  i ) [inline, virtual]
Remarks:
This method returns a pointer to the 'i-th' sub-anim. If a plug-in is using a parameter block to manage all its parameters it should just return a pointer to the parameter block itself from this method. This method may return NULL so developers need to check the return value before calling other sub anim methods (such as SubAnimName()).
Parameters:
i This is the index of the sub-anim to return.
Default Implementation:
{ return NULL };

Reimplemented from Animatable.

{ return pblocks[i]; }
MSTR SubAnimName ( int  i ) [inline, virtual]
Remarks:
This method returns the name of the 'i-th' sub-anim to appear in track view. The system has no idea what name to assign to the sub-anim (it only knows it by the virtual array index), so this method is called to retrieve the name to display. Developer need to make sure the 'i-th' SubAnim() is non-NULL or this method will fail.
Parameters:
i The index of the parameter name to return
Returns:
The name of the 'i-th' parameter.

Reimplemented from Animatable.

{ return pblocks[i]->GetLocalName(); }
int NumParamBlocks ( ) [inline, virtual]
Remarks:
This method is available in release 3.0 and later only.

This method returns the number of ParamBlock2s in this instance.
Default Implementation:
{ return 0; }

Reimplemented from Animatable.

{ return pblocks.Count(); }
IParamBlock2* GetParamBlock ( int  i ) [inline, virtual]
Remarks:
This method return 'i-th' ParamBlock2 in this instance (or NULL if not available).
Parameters:
i The zero based index of the ParamBlock2 to return.
Default Implementation:
{ return NULL; }

Reimplemented from Animatable.

{ return pblocks[i]; }
IParamBlock2* GetParamBlockByID ( BlockID  id ) [inline]
virtual void* GetInterface ( ULONG  id ) [inline, virtual]

Inherited from Animatable.

Returns a pointer to the interface.

Parameters:
id - The id of the interface.
Returns:
A Pointer to the Interface

Reimplemented from ReferenceTarget.

{ if (id == I_MAXSCRIPTPLUGIN) return (MSPlugin*)this; else return ReferenceTarget::GetInterface(id); }
RefResult NotifyRefChanged ( Interval  changeInt,
RefTargetHandle  hTarget,
PartID partID,
RefMessage  message 
) [inline]

Reimplemented from MSPlugin.

                    { 
                        return ((MSPlugin*)this)->NotifyRefChanged(changeInt, hTarget, partID, message); 
                    }
int NumRefs ( ) [virtual]

Returns the total number of references this ReferenceMaker can hold.

The plugin implements this method to indicate the total number of of references it can make. This includes all references whether they are NULL (inactive) or non-NULL (active) at the time when this method is called. A plugin can hold a variable number of references, thus the return value of this method is not to be cached and reused by client code.

Returns:
The total number of references this plugin can hold. The default implementation is return 0.

Reimplemented from ReferenceMaker.

RefTargetHandle GetReference ( int  i ) [virtual]

Returns the 'i-th' reference.

The plugin implements this method to return its 'i-th' reference. The plug-in simply keeps track of its references using an integer index for each one. This method is normally called by the system.

Parameters:
i - The index of the reference to retrieve. Valid values are from 0 to NumRefs()-1.
Returns:
The reference handle of the 'i-th' reference. Note that different calls to this method with the same 'i' value can result in different reference handles being retrieved, as the plugin changes the scene objects it references as its 'i-th' reference.

Reimplemented from ReferenceMaker.

virtual void SetReference ( int  i,
RefTargetHandle  rtarg 
) [protected, virtual]

Stores a ReferenceTarget as its 'i-th' reference`.

The plugin implements this method to store the reference handle passed to it as its 'i-th' reference. In its implementation of this method, the plugin should simply assign the reference handle passed in as a parameter to the member variable that holds the 'i-th' reference. Other reference handling methods such as ReferenceMaker::DeleteReference(), or ReferenceMaker::ReplaceReference() should not be called from within this method. The plugin itself or other plugins should not call this method directly. The system will call this method when a new reference is created or an existing one is replaced by calling ReferenceMaker::ReplaceReference().

Parameters:
i - The index of the reference to store. Valid values are from 0 to NumRefs()-1.
rtarg - The reference handle to store.

Reimplemented from ReferenceMaker.

RefTargetHandle Clone ( RemapDir remap ) [virtual]

This method is used by 3ds Max to clone an object.

See also:
CloneRefHierarchy(), class RemapDir This method is called by 3ds Max to have the plugin clone itself. The plug-in's implementation of this method should copy both the data structure and all the data residing in the data structure of this reference target. The plugin should clone all its references as well. Also, the plug-in's implementation of this method must call BaseClone(). In order for classes derived from this class to clone cleanly, the Clone method should just create the new instance, and then call an implementation of BaseClone that clones the references and copies any other necessary data. For example:
            class MyDerivedPlugin
                : public MyBasePlugin
            {
                const int MY_REFERENCE = 1;

                ReferenceTarget* Clone(RemapDir& remap)
                {
                    ReferenceTarget* result = new MyDerivedPlugin();
                    BaseClone(this, result, remap);
                    return result;
                }

                void BaseClone(ReferenceTarget* from, ReferenceTarget* to, RemapDir& remap)
                {
                    if (!to || !from || from == to)
                        return;    
                    MyBasePlugin::BaseClone(from, to, remap);
                    to->ReplaceReference(MY_REFERENCE, remap->CloneRef(from->GetReference(MY_REFERENCE)));
                }
            };

This method should not be directly called by plug-ins. Instead, either RemapDir::CloneRef() or CloneRefHierachy() should be used to perform cloning. These methods ensure that the mapping from the original object to the clone is added to the RemapDir used for cloning, which may be used during backpatch operations

Note:
See the remarks in method BaseClone() below.
Parameters:
remap - A RemapDir instance used for remapping references during a Clone.
Returns:
A pointer to the cloned item.

Reimplemented from ReferenceTarget.


Member Data Documentation


MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility
MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility MSPluginTrackViewUtility