#include <PFActionStateDesc.h>
Public Member Functions |
|
virtual PFExport int | IsPublic () |
Controls if the plug-in shows up in lists
from the user to choose from. |
|
virtual void * | Create (BOOL loading=FALSE)=0 |
3ds Max calls this method when it needs a
pointer to a new instance of the plug-in class. |
|
virtual PFExport const MCHAR * | ClassName () |
This method returns the name of the class.
|
|
virtual PFExport SClass_ID | SuperClassID () |
This method returns a system defined
constant describing the class this plug-in class was derived from.
|
|
virtual PFExport Class_ID | SubClassID () |
This method can be used for further
categorizing plugins. |
|
virtual Class_ID | ClassID ()=0 |
This method must return the unique ID for
the object. |
|
PFExport const MCHAR * | Category () |
This methods returns a string describing the
category a plug-in fits into. |
|
virtual const MCHAR * | InternalName ()=0 |
Returns a string which provides a fixed,
machine parsable internal name for the plug-in. |
virtual PFExport int IsPublic | ( | ) | [virtual] |
Controls if the plug-in shows up in lists from the user to choose from.
Implements ClassDesc.
virtual void* Create | ( | BOOL | loading = FALSE |
) | [pure virtual] |
3ds Max calls this method when it needs a pointer to a new instance of the plug-in class.
For example, if 3ds Max is loading a file from disk containing a previously used plug-in (procedural object, modifier, controller, etc...), it will call the plug-in's Animatable::Create() method. The plug-in responds by allocating a new instance of its plug-in class. See the Advanced Topic section on Memory Allocation for more details.
loading | This parameter is a flag indicating if the class being created
is going to be loaded from a disk file. If the flag is TRUE, the
plug-in may not have to perform any initialization of the object
because the loading process will take care of it. See the Advanced
Topics section on Loading and Saving for
more information. Note: If this parameter is TRUE, developers must initialize their references to NULL. Otherwise 3ds Max may crash. 3ds Max provides a default plug-in object creation process. Many plug-ins fit this form. When the system is about to create an instance of the plug-in object it calls a method BaseObject::GetCreateMouseCallBack().This method returns a callback object whose proc() method handles the mouse input during its creation phase. Most of the work is then handled by the system. The procedural sphere is an example of this type of plug-in. Certain plug-ins may have special creation needs however. The target camera is an example of such a plug-in. Because it needs to create two nodes in the scene (the camera and the target) it requires a custom creation process. To support these plug-ins the following two methods are provided. They allow the plug-in to manage the creation process themselves. See Object Creation Methods for more details. |
Implements ClassDesc.
virtual PFExport const MCHAR* ClassName | ( | ) | [virtual] |
This method returns the name of the class.
This name appears in the button for the plug-in in the 3ds Max user interface.
Implements ClassDesc.
virtual PFExport SClass_ID SuperClassID | ( | ) | [virtual] |
This method returns a system defined constant describing the class this plug-in class was derived from.
For example, the Bend modifier returns OSM_CLASS_ID. This super class ID is used by all object space modifiers. See List of SuperClassIDs.
Implements ClassDesc.
virtual PFExport Class_ID SubClassID | ( | ) | [virtual] |
This method can be used for further categorizing plugins.
If a plugin has sub-plugins (like light > shadows, particles > operators), this method can be used to differentiate them. sub-plugins can be derived from ReferenceTarget but return a particular class ID published by the parent plugins SDK headers. Then parent plugin can get a list of all reference targets whose SubClassID matches the published SubClassID.
Reimplemented from ClassDesc.
virtual Class_ID ClassID | ( | ) | [pure virtual] |
This method must return the unique ID for the object.
If two ClassIDs conflict, the system will only load the first one it finds. The ClassID consists of two unsigned 32-bit quantities. The constructor assigns a value to each of these, for example Class_ID(0xA1C8E1D1, 0xE7AA2BE5). A developer should use the random Class_ID generator to avoid conflicts (Generate a random Class_ID). See Class Class_ID for more information.
Implements ClassDesc.
PFExport const MCHAR* Category | ( | ) | [virtual] |
This methods returns a string describing the category a plug-in fits into.
The category is usually selected in the drop down list in the
create, or utility branch of the command panel. In the create
branch, if this is set to be an existing category (i.e. "Standard
Primitives", "Splines", ...) then the plug-in will appear in that
category. If the category doesn't yet exists then it is created. If
the plug-in does not need to appear in the list, it may simply
return a null string as in _M(""). In the modify branch, the
category determines which group it appears in the Configure Button
Sets / Modifiers list. These are the categories such as "MAX
STANDARD", "MAX EDIT", and "MAX SURFACE".
This method is also used to distinguish between the various types
of texture maps so they can be separated in the Material/Map
Browser. The appropriate string should be returned by this method
of the Texmap. For
example:
const MCHAR* Category() { return TEXMAP_CAT_3D; }
The options for texture maps are:
Implements ClassDesc.
virtual const MCHAR* InternalName | ( | ) | [pure virtual] |
Returns a string which provides a fixed, machine parsable internal name for the plug-in.
This name is used by MAXScript.
Reimplemented from ClassDesc.