#include <MPxCommand.h>
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.
animInfoCmd.cpp, blindComplexDataCmd.cpp, blindDoubleDataCmd.cpp, blindShortDataCmd.cpp, cgfxShaderCmd.h, cleanPerFaceAssignmentCmd.h, closestPointCmd.cpp, closestPointOnCurveCmd.h, closestPointOnNurbsSurfaceCmd.h, clothPaintAttrCmd.h, clusterWeightFunction.cpp, conditionTest.cpp, convertBumpCmd.cpp, convertEdgesToFacesCmd.cpp, convertVerticesToEdgesCmd.cpp, convertVerticesToFacesCmd.cpp, createClipCmd.cpp, cvPosCmd.cpp, dagMessageCmd.cpp, dagPoseInfoCmd.cpp, deletedMsgCmd.cpp, eventTest.cpp, exportJointClusterDataCmd.cpp, exportSkinClusterDataCmd.cpp, fileIOMsgCmd.cpp, filteredAsciiFile.cpp, fluidInfoCmd.cpp, fxManagerCmd.h, geometryCacheConverter.cpp, helix2Cmd.cpp, iffInfoCmd.cpp, iffPixelCmd.cpp, iffPpmCmd.cpp, instanceCallbackCmd.cpp, intersectCmd.cpp, intersectOnNurbsSurfaceCmd.h, latticeNoise.h, lockEvent.cpp, meshRemapCmd.h, meshReorderCmd.h, motionPathCmd.cpp, motionTraceCmd.cpp, moveCurveCVsCmd.cpp, nodeCreatedCBCmd.h, nodeInfoCmd.cpp, nodeMessageCmd.cpp, particlePathsCmd.cpp, particleSystemInfoCmd.cpp, peltOverlapCmd.cpp, pfxInfoCmd.cpp, pickCmd.cpp, pointOnMeshCmd.h, polyMessageCmd.cpp, polyModifierCmd.h, polyPrimitiveCmd.cpp, progressWindowCmd.cpp, referenceQueryCmd.cpp, renderViewInteractiveRenderCmd.cpp, renderViewRenderCmd.cpp, renderViewRenderRegionCmd.cpp, sampleCmd.cpp, sampleParticles.cpp, scanDagCmd.cpp, scanDagSyntax.cpp, spiralAnimCurveCmd.cpp, surfaceCreateCmd.cpp, surfaceTwistCmd.cpp, translateCmd.cpp, undoRedoMsgCmd.cpp, userMsgCmd.cpp, viewCallbackTest.cpp, and zoomCameraCmd.cpp.
Public Types | |
enum | MResultType { kLong, kDouble, kString, kNoArg } |
Types of results from commands. More... | |
Public Member Functions | |
MPxCommand () | |
virtual | ~MPxCommand () |
virtual MStatus | doIt (const MArgList &args) |
virtual MStatus | undoIt () |
virtual MStatus | redoIt () |
virtual bool | isUndoable () const |
virtual bool | hasSyntax () const |
MSyntax | syntax () const |
bool | isHistoryOn () const |
MString | commandString () const |
MStatus | setHistoryOn (bool state) |
MStatus | setCommandString (const MString &) |
MStatus | setUndoable (bool state) |
This method is obsolete. | |
Static Public Member Functions | |
static void | displayInfo (const MString &theInfo) |
static void | displayWarning (const MString &theWarning) |
static void | displayError (const MString &theError) |
static void | displayWarning (const MString &theWarning, bool wantDisplayLineNumber) |
static void | displayError (const MString &theError, bool wantDisplayLineNumber) |
static void | clearResult () |
static void | setResult (int val) |
static void | setResult (double val) |
static void | setResult (bool val) |
static void | setResult (const char *val) |
static void | setResult (const MString &val) |
static void | setResult (const MIntArray &val) |
static void | setResult (const MDoubleArray &val) |
static void | setResult (const MStringArray &val) |
static void | appendToResult (int val) |
static void | appendToResult (double val) |
static void | appendToResult (bool val) |
static void | appendToResult (const char *val) |
static void | appendToResult (const MString &val) |
static void | appendToResult (const MStringArray &val) |
static MResultType | currentResultType () |
static MStatus | getCurrentResult (int &val) |
This method is not available in Python. | |
static MStatus | getCurrentResult (double &val) |
This method is not available in Python. | |
static MStatus | getCurrentResult (MString &val) |
This method is not available in Python. | |
static MStatus | getCurrentResult (MIntArray &val) |
static MStatus | getCurrentResult (MDoubleArray &val) |
static MStatus | getCurrentResult (MStringArray &val) |
static int | currentIntResult (MStatus *ReturnStatus=NULL) |
static double | currentDoubleResult (MStatus *ReturnStatus=NULL) |
static MString | currentStringResult (MStatus *ReturnStatus=NULL) |
MPxCommand::MPxCommand | ( | ) |
Constructor
MPxCommand::~MPxCommand | ( | ) | [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.
Reimplemented in MPxConstraintCommand, MPxToolCommand, MTemplateAction< ActionClass, CommandName, CommandSyntax >, MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >, and MTemplateAction< CommandClass, CommandName, CommandSyntax >.
MStatus MPxCommand::undoIt | ( | ) | [virtual] |
This method should undo the work done be the redoIt method based on the internal class data only.
Reimplemented in MPxConstraintCommand, and MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >.
MStatus MPxCommand::redoIt | ( | ) | [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 MPxConstraintCommand, and MTemplateCreateNodeCommand< CommandClass, CommandName, NodeName >.
bool MPxCommand::isUndoable | ( | ) | const [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 >, and MTemplateCommand< CommandClass, CommandName, MTemplateCreateNodeCommand_newSyntax >.
bool MPxCommand::hasSyntax | ( | ) | const [virtual] |
This method specifies whether or not the command has a syntax object.
MSyntax MPxCommand::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 MPxCommand::isHistoryOn | ( | ) | const |
Returns whether history is on.
MString MPxCommand::commandString | ( | ) | const |
This method returns the command string that is associated with this command.
MStatus MPxCommand::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 |
void MPxCommand::displayInfo | ( | const MString & | theInfo | ) | [static] |
This method is used to display information in the script editor.
[in] | theInfo | The string to be displayed |
void MPxCommand::displayWarning | ( | const MString & | theWarning | ) | [static] |
This method is used to display a warning in the script editor.
[in] | theWarning | The warning string to be displayed |
void MPxCommand::displayError | ( | const MString & | theError | ) | [static] |
This method is used to display an error in the script editor.
[in] | theError | The error string to be displayed |
void MPxCommand::displayWarning | ( | const MString & | theWarning, | |
bool | wantDisplayLineNumber | |||
) | [static] |
This method is used to display a warning in the script editor.
NOTE: Displaying of line numbers must be set in the MEL editor window before the wantDisplayLineNumber has an affect.
[in] | theWarning | The warning string to be displayed |
[in] | wantDisplayLineNumber | Set to true if you want the line number of this command to be displayed. See NOTE above. |
void MPxCommand::displayError | ( | const MString & | theError, | |
bool | wantDisplayLineNumber | |||
) | [static] |
This method is used to display an error in the script editor.
NOTE: Displaying of line numbers must be set in the MEL editor window before the wantDisplayLineNumber has an affect.
[in] | theError | The error string to be displayed |
[in] | wantDisplayLineNumber | Set to true if you want the line number of this command to be displayed See NOTE above. |
void MPxCommand::clearResult | ( | ) | [static] |
Initializes the place where results from Maya commands get stored.
void MPxCommand::setResult | ( | int | val | ) | [static] |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | double | val | ) | [static] |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | bool | val | ) | [static] |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | const char * | val | ) | [static] |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | const MString & | val | ) | [static] |
This method puts the given value into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | const MIntArray & | val | ) | [static] |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | const MDoubleArray & | val | ) | [static] |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::setResult | ( | const MStringArray & | val | ) | [static] |
This method puts the given values into the return value area for a command.
[in] | val | The value to be set |
void MPxCommand::appendToResult | ( | int | val | ) | [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 |
void MPxCommand::appendToResult | ( | double | val | ) | [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 |
void MPxCommand::appendToResult | ( | bool | val | ) | [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 |
void MPxCommand::appendToResult | ( | const char * | val | ) | [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 |
void MPxCommand::appendToResult | ( | const MString & | val | ) | [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 |
void MPxCommand::appendToResult | ( | const MStringArray & | val | ) | [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 |
MPxCommand::MResultType MPxCommand::currentResultType | ( | ) | [static] |
This method will return the type of the current result for the command.
ReturnValue
MStatus MPxCommand::getCurrentResult | ( | int & | val | ) | [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 |
MStatus MPxCommand::getCurrentResult | ( | double & | val | ) | [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 |
MStatus MPxCommand::getCurrentResult | ( | MDoubleArray & | val | ) | [static] |
This method gets the current node's result as an array of doubles, if possible.
[in] | val | Storage for the return value |
MStatus MPxCommand::getCurrentResult | ( | MStringArray & | val | ) | [static] |
This method gets the current node's result as an array of strings, if possible.
[in] | val | Storage for the return value |
int MPxCommand::currentIntResult | ( | MStatus * | ReturnStatus = NULL |
) | [static] |
This method gets the current node's result as a int, if possible.
[out] | ReturnStatus | Optional status code. See below. |
double MPxCommand::currentDoubleResult | ( | MStatus * | ReturnStatus = NULL |
) | [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. |
MStatus MPxCommand::setUndoable | ( | bool | state | ) |
This method is obsolete.
Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. | Generated with 1.5.6 |