#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. More... | |
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. More... | |
virtual PFExport const MCHAR * | ClassName () |
This method returns the name of the class. More... | |
virtual PFExport SClass_ID | SuperClassID () |
This method returns a system defined constant describing the class this plug-in class was derived from. More... | |
virtual PFExport Class_ID | SubClassID () |
This method can be used for further categorizing plugins. More... | |
virtual Class_ID | ClassID ()=0 |
This method must return the unique ID for the object. More... | |
PFExport const MCHAR * | Category () |
This methods returns a string describing the category a plug-in fits into. More... | |
virtual const MCHAR * | InternalName ()=0 |
Returns a string which provides a fixed, machine parsable internal name for the plug-in. More... | |
Public Member Functions inherited from ClassDesc2 | |
PB2Export | ClassDesc2 () |
PB2Export | ~ClassDesc2 () |
PB2Export void | ResetClassParams (BOOL fileReset) |
PB2Export int | NumParamBlockDescs () |
PB2Export ParamBlockDesc2 * | GetParamBlockDesc (int i) |
PB2Export ParamBlockDesc2 * | GetParamBlockDescByID (BlockID id) |
PB2Export ParamBlockDesc2 * | GetParamBlockDescByName (const MCHAR *name) |
PB2Export void | AddParamBlockDesc (ParamBlockDesc2 *pbd) |
PB2Export void | ClearParamBlockDescs () |
PB2Export void | BeginEditParams (IObjParam *ip, ReferenceMaker *obj, ULONG flags, Animatable *prev) |
PB2Export void | EndEditParams (IObjParam *ip, ReferenceMaker *obj, ULONG flags, Animatable *prev) |
PB2Export void | InvalidateUI () |
PB2Export void | InvalidateUI (ParamBlockDesc2 *pbd) |
PB2Export void | InvalidateUI (ParamBlockDesc2 *pbd, ParamID id, int tabIndex=-1) |
PB2Export void | MakeAutoParamBlocks (ReferenceMaker *owner) |
PB2Export int | NumParamMaps () |
PB2Export IParamMap2 * | GetParamMap (int i) |
PB2Export IParamMap2 * | GetParamMap (ParamBlockDesc2 *pbd, MapID map_id=0) |
PB2Export bool | SetUserDlgProc (ParamBlockDesc2 *pbd, MapID map_id, ParamMap2UserDlgProc *proc=NULL) |
bool | SetUserDlgProc (ParamBlockDesc2 *pbd, ParamMap2UserDlgProc *proc=NULL) |
PB2Export ParamMap2UserDlgProc * | GetUserDlgProc (ParamBlockDesc2 *pbd, MapID map_id=0) |
PB2Export IAutoMParamDlg * | CreateParamDlgs (HWND hwMtlEdit, IMtlParams *imp, ReferenceTarget *obj) |
PB2Export IAutoMParamDlg * | CreateParamDlg (BlockID id, HWND hwMtlEdit, IMtlParams *imp, ReferenceTarget *obj, MapID mapID=0) |
PB2Export IAutoEParamDlg * | CreateParamDialogs (IRendParams *ip, SpecialFX *obj) |
PB2Export IAutoRendererParamDlg * | CreateParamDialogs (IRendParams *ip, Renderer &renderer) |
Creates the automatically-managed parameter dialogs defined with the P_AUTO_UI or P_AUTO_UI_QT flags in the parameter block descriptors. More... | |
PB2Export IAutoRendererParamDlg * | CreateParamDialog (BlockID id, IRendParams *ip, Renderer &renderer, MapID mapID) |
Creates the automatically-managed parameter dialog for the given parameter block and parameter map only. More... | |
PB2Export IAutoEParamDlg * | CreateParamDialog (BlockID id, IRendParams *ip, SpecialFX *obj, MapID mapID=0) |
PB2Export void | MasterDlgDeleted (IAutoMParamDlg *dlg) |
PB2Export void | MasterDlgDeleted (IAutoEParamDlg *dlg) |
PB2Export void | MasterDlgDeleted (IAutoRendererParamDlg &dlg) |
Used internally. More... | |
PB2Export IAutoMParamDlg * | GetMParamDlg () |
PB2Export IAutoEParamDlg * | GetEParamDlg () |
PB2Export void | RestoreRolloutState () |
PB2Export ParamID | LastNotifyParamID (ReferenceMaker *owner, IParamBlock2 *&pb) |
PB2Export void | Reset (ReferenceMaker *owner, BOOL updateUI=TRUE, BOOL callSetHandlers=TRUE) |
PB2Export void | GetValidity (ReferenceMaker *owner, TimeValue t, Interval &valid) |
PB2Export void | RemoveParamBlockDesc (ParamBlockDesc2 *pbd) |
virtual MaxSDK::QMaxParamBlockWidget * | CreateQtWidget (ReferenceMaker &owner, IParamBlock2 ¶mBlock, const MapID paramMapID, MSTR &rollupTitle, int &rollupFlags, int &rollupCategory) |
Creates a Qt widget to be associated with the given parameter map ID. More... | |
virtual MaxSDK::QMaxParamBlockWidget * | CreateQtWidget (ReferenceMaker &owner, IParamBlock2 ¶mBlock, const MapID paramMapID, MSTR &rollupTitle, int &rollupFlags, int &rollupCategory, Class_ID &tabID) |
Creates a Qt widget that is connected to the given parameter block. More... | |
Public Member Functions inherited from ClassDesc | |
virtual | ~ClassDesc () |
virtual DWORD | InitialRollupPageState () |
This method returns a DWORD which is used to initialize the rollup state in both the create branch and the modify branch. More... | |
virtual bool | UseOnlyInternalNameForMAXScriptExposure () |
Returns true if only the InternalName is to be used for MAXScript exposure. More... | |
virtual HINSTANCE | HInstance () |
Returns the DLL instance handle of the plug-in. More... | |
virtual CoreExport const MCHAR * | GetRsrcString (INT_PTR id) |
Returns a pointer to the string from the resource string table. More... | |
virtual int | BeginCreate (Interface *i) |
The custom creation process of the plug-in object is handled by this method. More... | |
virtual int | EndCreate (Interface *i) |
The termination of the custom creation process is managed by the implementation of this method. More... | |
virtual BOOL | OkToCreate (Interface *i) |
This method is used to enable or disable the button that allows the plug-ins class to be created. More... | |
virtual BOOL | HasClassParams () |
If a plug-in class has default parameters that it needs to allow the user to edit, TRUE should be returned and EditClassParams() and ResetClassParams() should be implemented. More... | |
virtual void | EditClassParams (HWND hParent) |
If the user picks the class from the list this method is called. More... | |
virtual int | NumActionTables () |
3ds Max calls this to get the number of action tables a plug-in has. More... | |
virtual ActionTable * | GetActionTable (int i) |
Returns a pointer to the specified action table. More... | |
virtual BOOL | IsManipulator () |
Returns TRUE if the class implements a manipulator object; otherwise FALSE. More... | |
virtual BOOL | CanManipulate (ReferenceTarget *hTarget) |
The method returns true if the class is a manipulator and it manipulates the given base object, modifier or controller. More... | |
virtual BOOL | CanManipulateNode (INode *pNode) |
Returns TRUE if the manipulator applies to the given node; otherwise FALSE. More... | |
virtual Manipulator * | CreateManipulator (ReferenceTarget *hTarget, INode *pNode) |
Creates a manipulator object When a manipulator returns TRUE to CanManipulate(ReferenceTarget* hTarget), the system calls this version of CreateManipulator() to create an instance of the manipulator. More... | |
virtual Manipulator * | CreateManipulator (INode *pNode) |
Creates a manipulator object. More... | |
virtual BOOL | NeedsToSave () |
Returns TRUE if there is data associated with the class that needs to be saved in the 3ds Max file. More... | |
virtual IOResult | Save (ISave *isave) |
If NeedsToSave() returns TRUE then this method should be implemented to save the data associated with the class. More... | |
virtual IOResult | Load (ILoad *iload) |
If NeedsToSave() returns TRUE then this method should be implemented to load the data associated with the class. More... | |
virtual IParamMap2 * | GetParamMap (ParamBlockDesc2 *pbd) |
Returns a pointer to the parameter map2 whose descriptor is passed. More... | |
virtual ParamMap2UserDlgProc * | GetUserDlgProc (ParamBlockDesc2 *pbd) |
Returns a pointer to the parameter map 2 user dialog proc (if any) for the specified descriptor. More... | |
virtual bool | DrawRepresentation (COLORREF bkColor, HDC hDC, Rect &rect) |
Allows a plug-in to provide a custom image for display in Schematic View. More... | |
virtual int | NumInterfaces () |
Returns the number of function publishing interfaces maintained by the class descriptor. More... | |
virtual FPInterface * | GetInterfaceAt (int i) |
Returns the nth function publishing interface. More... | |
virtual CoreExport FPInterface * | GetInterface (Interface_ID id) |
Returns a pointer to the function publishing interface whose ID is specified. More... | |
virtual CoreExport FPInterface * | GetInterface (const MCHAR *name) |
Returns a pointer to the function publishing interface whose name is specified. More... | |
virtual CoreExport void | AddInterface (FPInterface *fpi) |
Adds the specified interface to the list maintained by this class descriptor. More... | |
virtual void | ClearInterfaces () |
Deletes all the interfaces maintained by the class descriptor. More... | |
virtual INT_PTR | Execute (int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0) |
This function is maintained so the 3ds Max SDK can be extended without breaking backwards compatibility. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MaxHeapOperators | |
static UtilExport void * | operator new (size_t size) |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. More... | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | aligned_malloc (size_t size, size_t alignment) |
Allocates memory on a specified alignment boundary. More... | |
static UtilExport void * | aligned_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... | |
Protected Member Functions inherited from ClassDesc2 | |
void | SetMParamDlg (IAutoMParamDlg *dlg) |
Sets the root level material ParamDlg. More... | |
void | SetEParamDlg (IAutoEParamDlg *dlg) |
Sets the root level effect ParamDlg. More... | |
Tab< IParamMap2 * > & | GetParamMaps () |
Controls if the plug-in shows up in lists from the user to choose from.
Implements ClassDesc.
|
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 Management 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 Plug-in Data 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.
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 Super Class IDs.
Implements ClassDesc.
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.
|
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.
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:
The options for texture maps are:
Implements ClassDesc.