#include <MPxCommand.h>
Base class for user commands.
This is the proxy class for creating MEL commands through the API.
Each command is derived from this one, and must have a doIt method, and optionally undoIt, and redoIt methods.
The doIt method should collect whatever information is required to do the task, and store it in local class data. It should finally call redoIt to make the command happen. The redoIt method should do the actual work, using only the local class data. The undoIt method should undo the actual work, again using only the local class data.
Maya contains support for infinite levels of undo. If a command written in a plug-in changes the state of anything in Maya, it should implement undoIt and redoIt methods. As well, if the doIt method returns successfully, Maya will call the method's isUndoable method immediately afterwards. If that method returns true, the instance of this class is retained and passed to Maya's undo manager so that the undoIt and redoIt methods can be called when appropriate. If isUndoable returns false, the command instance is destroyed right away.
So, for example, if a command supports both query and edit modes, in query mode the command should set a flag so that the isUndoable method returns false to prevent that command instance from being retained by the undo manager. In edit mode, where the state of Maya is changed, isUndoable should return true to enable undo and redo.
Public Types | |
enum | MResultType { kLong, kDouble, kString, kNoArg } |
Types of results from commands. More... | |
Public Member Functions | |
MPxCommand () | |
Constructor. | |
virtual | ~MPxCommand () |
Destructor. More... | |
virtual MStatus | doIt (const MArgList &args) |
This method should perform a command by setting up internal class data and then calling the redoIt method. More... | |
virtual MStatus | undoIt () |
This method should undo the work done by the redoIt method based on the internal class data only. More... | |
virtual MStatus | redoIt () |
This method should do the actual work of the command based on the internal class data only. More... | |
virtual bool | isUndoable () const |
This method is used to specify whether or not the command is undoable. More... | |
virtual bool | hasSyntax () const |
This method specifies whether or not the command has a syntax object. More... | |
MSyntax | syntax () const |
This method is intended to be used in an MArgDataBase or MArgParser contructor when the plugin command's syntax is being initialized. More... | |
bool | isHistoryOn () const |
Returns whether history is on. More... | |
MString | commandString () const |
This method returns the command string that is associated with this command. More... | |
MStatus | setHistoryOn (bool state) |
This method specifies if history for this command is on. More... | |
MStatus | setCommandString (const MString &) |
Sets the command string that is associated with this command object. More... | |
MStatus | setUndoable (bool state) |
This method is obsolete. More... | |
Static Public Member Functions | |
static void | displayInfo (const MString &theInfo) |
This method is used to display information in the script editor. More... | |
static void | displayWarning (const MString &theWarning, bool showLineNumber=false) |
This method is used to display a warning in the script editor. More... | |
static void | displayError (const MString &theError, bool showLineNumber=false) |
This method is used to display an error in the script editor. More... | |
static void | clearResult () |
Initializes the place where results from Maya commands get stored. | |
static void | setResult (unsigned int val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (int val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (double val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (bool val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (const char *val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (const MString &val) |
This method puts the given value into the return value area for a command. More... | |
static void | setResult (const MIntArray &val) |
This method puts the given values into the return value area for a command. More... | |
static void | setResult (const MDoubleArray &val) |
This method puts the given values into the return value area for a command. More... | |
static void | setResult (const MStringArray &val) |
This method puts the given values into the return value area for a command. More... | |
static void | appendToResult (int val) |
This method will add the given value to the end of the result array of integers. More... | |
static void | appendToResult (double val) |
This method will add the given value to the end of the result array of doubles. More... | |
static void | appendToResult (bool val) |
This method will add the given value to the end of the result array of integers. More... | |
static void | appendToResult (const char *val) |
This method will add the given value to the end of the result array of strings. More... | |
static void | appendToResult (const MString &val) |
This method will add the given value to the end of the result array of strings. More... | |
static void | appendToResult (const MStringArray &val) |
This method will add the given value to the end of the result array of strings. More... | |
static bool | isCurrentResultArray () |
This method will return whether the return result for the command is an array or not. More... | |
static MResultType | currentResultType () |
This method will return the type of the current result for the command. More... | |
static MStatus | getCurrentResult (int &val) |
This method is not available in Python. More... | |
static MStatus | getCurrentResult (double &val) |
This method is not available in Python. More... | |
static MStatus | getCurrentResult (MString &val) |
This method is not available in Python. More... | |
static MStatus | getCurrentResult (MIntArray &val) |
This method gets the current node's result as an array of integers, if possible. More... | |
static MStatus | getCurrentResult (MDoubleArray &val) |
This method gets the current node's result as an array of doubles, if possible. More... | |
static MStatus | getCurrentResult (MStringArray &val) |
This method gets the current node's result as an array of strings, if possible. More... | |
static int | currentIntResult (MStatus *ReturnStatus=NULL) |
This method gets the current node's result as a int, if possible. More... | |
static double | currentDoubleResult (MStatus *ReturnStatus=NULL) |
This method gets the current node's result as a double, if possible. More... | |
static MString | currentStringResult (MStatus *ReturnStatus=NULL) |
This method gets the current node's result as a MString, if possible. More... | |
static const char * | className () |
Returns the name of this class. More... | |
enum MResultType |
|
virtual |
Destructor.
Local class data should be freed here.
This method should perform a command by setting up internal class data and then calling the redoIt method.
The actual action performed by the command should be done in the redoIt method. This is a pure virtual method, and must be overridden in derived classes.
[in] | args | List of arguments passed to the command. |
Reimplemented in MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >, MPxToolCommand, MTemplateAction< ActionClass, CommandName, CommandSyntax >, MTemplateAction< CommandClass, CommandName, CommandSyntax >, MPxConstraintCommand, and MPxPolyTweakUVInteractiveCommand.
|
virtual |
This method should undo the work done by the redoIt method based on the internal class data only.
Reimplemented in MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >, and MPxConstraintCommand.
|
virtual |
This method should do the actual work of the command based on the internal class data only.
Internal class data should be set in the doIt method.
Reimplemented in MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >, and MPxConstraintCommand.
|
virtual |
This method is used to specify whether or not the command is undoable.
In the base class, it always returns false. If you are writing a command that might be eligible for undo, you should override this method.
After Maya executes the command's doIt method, it will call isUndoable. If isUndoable returns true, Maya will retain the instance of the class and pass it to Maya's undo manager so that the undoIt and redoIt methods can be called when appropriate. If isUndoable returns false, the command instance will be immediately destroyed.
So, for example, if a command supports both query and edit modes, in query mode the command should set a flag so that the isUndoable method returns false to prevent that command instance from being retained by the undo manager. In edit mode, where the state of Maya is changed, isUndoable should return true to enable undo and redo.
Reimplemented in MTemplateCommand< CommandClass, CommandName, CommandSyntax >, MTemplateCommand< CommandClass, CommandName, MTemplateCreateNodeCommand_newSyntax >, and MPxPolyTweakUVInteractiveCommand.
|
virtual |
This method specifies whether or not the command has a syntax object.
MSyntax syntax | ( | ) | const |
This method is intended to be used in an MArgDataBase or MArgParser contructor when the plugin command's syntax is being initialized.
The user should declare and define a syntax contstructing method that must be registered with Maya by passing the function pointer as a parameter in MFnPlugin::registerCommand(). The result is that when MPxCommand::syntax() is called it returns the syntax object that the user has created in the custom syntax constructing method that was registered. To avoid conflicts it is important that the user's custom syntax defining method be given a name other than "syntax." It can have any other name as long as it corresponds with the function pointer used to register the method with Maya.
bool isHistoryOn | ( | ) | const |
Returns whether history is on.
MString commandString | ( | ) | const |
This method returns the command string that is associated with this command.
MStatus setHistoryOn | ( | bool | state | ) |
This method specifies if history for this command is on.
[in] | state | true if history is to be on , false otherwise |
Sets the command string that is associated with this command object.
[in] | name | The command name to be set |
|
static |
This method is used to display information in the script editor.
[in] | theInfo | The string to be displayed |
|
static |
This method is used to display a warning in the script editor.
NOTE: Displaying of line numbers must be enabled in the MEL editor window before the showLineNumber parameter has an affect.
[in] | theWarning | The warning string to be displayed |
[in] | showLineNumber | Set to true if you want the line number of this command to be displayed. See NOTE above. |
|
static |
This method is used to display an error in the script editor.
NOTE: Displaying of line numbers must be enabled in the MEL editor window before the showLineNumber parameter has an affect.
[in] | theError | The error string to be displayed |
[in] | showLineNumber | Set to true if you want the line number of this command to be displayed See NOTE above. |
|
static |
This method puts the given value into the return value area for a command.
The value is cast to an int internally because the Maya command engine does not support unsigned ints.
[in] | val | The value to be set |
|
static |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
|
static |
This method will add the given value to the end of the result array of integers.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of integer type.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will add the given value to the end of the result array of doubles.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of type double.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will add the given value to the end of the result array of integers.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of integer type.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will add the given value to the end of the result array of strings.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of type string.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will add the given value to the end of the result array of strings.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of type string.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will add the given value to the end of the result array of strings.
The result array can only be of a single type so this method can only be used when the result string has not been set or is already of type string.
Note: appendToResult cannot be used in conjunction with setResult.
[in] | val | The value to be added |
|
static |
This method will return whether the return result for the command is an array or not.
|
static |
This method will return the type of the current result for the command.
ReturnValue
|
static |
This method is not available in Python.
This method gets the current node's result as a int, if possible.
Python Notes
This method is not supported in Python. Please see currentIntResult()
[in] | val | Storage for the return value |
|
static |
This method is not available in Python.
This method gets the current node's result as a double, if possible.
Python Notes
This method is not supported in Python. Please see currentDoubleResult()
[in] | val | Storage for the return value |
This method is not available in Python.
This method gets the current node's result as a string, if possible.
Python Notes
This method is not supported in Python. Please see currentStringResult()
[in] | val | Storage for the return value |
This method gets the current node's result as an array of integers, if possible.
[in] | val | Storage for the return value |
|
static |
This method gets the current node's result as an array of doubles, if possible.
[in] | val | Storage for the return value |
|
static |
This method gets the current node's result as an array of strings, if possible.
[in] | val | Storage for the return value |
|
static |
This method gets the current node's result as a int, if possible.
[out] | ReturnStatus | Optional status code. See below. |
|
static |
This method gets the current node's result as a double, if possible.
[out] | ReturnStatus | Optional status code. See below. |
This method gets the current node's result as a MString, if possible.
[out] | ReturnStatus | Optional status code. See below. |
|
static |
Returns the name of this class.
MStatus setUndoable | ( | bool | state | ) |
This method is obsolete.
[in] | state |