Macros
 
 
 
Macros

Defines

#define  DeclareSimpleCommand(_className, _vendor, _version)
  This macro expands to all the code necessary to create an undoable command except for the command's "doIt" method.
#define  DeclareSingle(_fnptr)
  The macro expands to all the code necessary to create a basic non-undoable command that calls "functionPtr" from its doIt method.
#define  CHECK_MSTATUS_AND_RETURN(_status, _retVal)
  Return if status is not MStatus::kSuccess.
#define  CHECK_MSTATUS_AND_RETURN_IT(_status)
  Return if status is not MStatus::kSuccess.
#define  CHECK_MSTATUS(_status)
  Output an error message if status is not kSuccess.
#define  MFAIL(_status)
  True if the status is not MStatus::kSuccess.

Define Documentation

#define DeclareSimpleCommand (   _className,
  _vendor,
  _version 
)

This macro expands to all the code necessary to create an undoable command except for the command's "doIt" method.

This macro expects as arguments the name of the class that will be derived from MPxCommand, the name of the organisation owning this code, and the version number of the plug-in.

In addition to the macro, a method with the following prototype needs to be implemented.

  MStatus className::doIt( const MArgList& )

The macro will generate a class with the given classname that is derived from MPxCommand. It will also generate the following methods:

  void* className::creator()
  MStatus initializePlugin( MObject )
  MStatus uninitializePlugin( MObject )

All methods inherited from MPxCommand such as setResult, displayWarning, and displayError are available.

Parameters:
[in] _className Name of the class
[in] _vendor Name of the organisation owning this command
[in] _version Plug-in version number
Examples:
cvExpandCmd/cvExpandCmd.cpp, findFileTexturesCmd/findFileTexturesCmd.cpp, findTexturesPerPolygonCmd/findTexturesPerPolygonCmd.cpp, getAttrAffectsCmd/getAttrAffectsCmd.cpp, helixCmd/helixCmd.cpp, helloCmd/helloCmd.cpp, helloWorldCmd/helloWorldCmd.cpp, instancerListCmd/instancerListCmd.cpp, listLightLinksCmd/listLightLinksCmd.cpp, listPolyHolesCmd/listPolyHolesCmd.cpp, threadedBoundingBox/threadedBoundingBox.cpp, threadingLockTests/threadingLockTests.cpp, threadTestCmd/threadTestCmd.cpp, threadTestWithLocksCmd/threadTestWithLocksCmd.cpp, viewCaptureCmd/viewCaptureCmd.cpp, volumeLightCmd/volumeLightCmd.cpp, and whatisCmd/whatisCmd.cpp.
#define DeclareSingle (   _fnptr )

The macro expands to all the code necessary to create a basic non-undoable command that calls "functionPtr" from its doIt method.

One limitation of using this macro is that since "functionPtr" is not a member of the class derived from MPxCommand, it cannot call methods (like setResult) that are inherited from that class.

This macro requires as argument a function with the prototype:

  MStatus functionPtr ( const MArgList& )

The macro will generate a class called _DoItCmd which is derived from MPxCommand. It also generate the following methods:

  void* _DoItCmd::creator()
  MStatus _DoItCmd::doIt( const MArgList& args )
  MStatus initializePlugin( MObject )
  MStatus uninitializePlugin( MObject )
Parameters:
[in] _fnptr Command function pointer
#define CHECK_MSTATUS_AND_RETURN (   _status,
  _retVal 
)

Return if status is not MStatus::kSuccess.

Output an error message and returns the value 'retVal' if status is not kSuccess.

Parameters:
[in] _status The status code.
[in] _retVal Return value when status if not kSuccess.
Examples:
flipUVCmd/flipUVCmd.cpp, hairCollisionSolver/hairCollisionSolver.cpp, renderViewInteractiveRenderCmd/renderViewInteractiveRenderCmd.cpp, renderViewRenderCmd/renderViewRenderCmd.cpp, and renderViewRenderRegionCmd/renderViewRenderRegionCmd.cpp.
#define CHECK_MSTATUS (   _status )

Output an error message if status is not kSuccess.

Parameters:
[in] _status The status code.
Examples:
affectsNode/affectsNode.cpp, anisotropicShader/anisotropicShader.cpp, apiMeshShape/apiMeshCreator.cpp, AshliShader/AshliPluginMain.cpp, backfillShader/backfillShader.cpp, brickShader/brickShader.cpp, cellShader/cellShader.cpp, checkerShader/checkerShader.cpp, circleNode/circleNode.cpp, clearcoat.cpp, compositingShader/compositingShader.cpp, contrastShader/contrastShader.cpp, cvColorShader/cvColorShader.cpp, ddsFloatReader.cpp, depthShader/depthShader.cpp, displacementShader/displacementShader.cpp, dx11Shader/dx11ShaderPluginMain.cpp, fileTexture/fileTexture.cpp, flameShader/flameShader.cpp, gameInputDevice/gameInputDevice.cpp, gammaShader/gammaShader.cpp, genericAttributeNode/genericAttributeNode.cpp, geomShader/geomShader.cpp, hairCollisionSolver/hairCollisionSolver.cpp, hlslShader/hlslPluginMain.cpp, hwColorPerVertexShader/hwColorPerVertexShader.cpp, hwManagedTextureShader/hwManagedTextureShader.cpp, interpShader/interpShader.cpp, lambertShader/lambertShader.cpp, lavaShader/lavaShader.cpp, lightShader/lightShader.cpp, mixtureShader/mixtureShader.cpp, multiCurveNode/multiCurveNode.cpp, noiseShader/noiseShader.cpp, OpenEXR.cpp, phongShader/phongShader.cpp, pluginMain.cpp, pointOnMeshInfo/pointOnMeshInfoNode.cpp, progressWindowCmd/progressWindowCmd.cpp, renderAccessNode/renderAccessNode.cpp, sceneAssembly/assemblyDefinition.cpp, sceneAssembly/assemblyReference.cpp, simpleImageFile/simpleImageFile.cpp, stringFormatNode/stringFormatNode.cpp, tiffFloatReader.cpp, volumeShader/volumeShader.cpp, and xmlAssembly/NamespaceGuard.cpp.
#define MFAIL (   _status )

True if the status is not MStatus::kSuccess.

Parameters:
[in] _status The status code.