MDGMessage Class Reference

#include <MDGMessage.h>

Class Description

Dependency graph messages.

This class is used to register callbacks for dependency graph messages.

There are 4 add callback methods which will add callbacks for the following messages

  • Time change
  • Node Added
  • Node Removed
  • Connection made or broken

A filter can be specified for node added/removed messages. The default node type is "dependNode" which matches all nodes. Each method returns an id which is used to remove the callback.

To remove a callback use MMessage::removeCallback. All callbacks that are registered by a plug-in must be removed by that plug-in when it is unloaded. Failure to do so will result in a fatal error.

+ Inheritance diagram for MDGMessage:

Static Public Member Functions

static MCallbackId addTimeChangeCallback (MMessage::MTimeFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever the time changes in the dependency graph. More...
 
static MCallbackId addDelayedTimeChangeCallback (MMessage::MTimeFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever the time changes in the dependency graph, but after the time changed callback. More...
 
static MCallbackId addDelayedTimeChangeRunupCallback (MMessage::MTimeFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever the time changes in the dependency graph, but after the other time changed callbacks which can be used to invoke a dynamics solve or runup if needed. More...
 
static MCallbackId addForceUpdateCallback (MMessage::MTimeFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called after the time changes and after all nodes have been evaluated in the dependency graph. More...
 
static MCallbackId addNodeAddedCallback (MMessage::MNodeFunction func, const MString &nodeType=kDefaultNodeType, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever a new node is added to the dependency graph. More...
 
static MCallbackId addNodeRemovedCallback (MMessage::MNodeFunction func, const MString &nodeType=kDefaultNodeType, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever a new node is removed from the dependency graph. More...
 
static MCallbackId addConnectionCallback (MMessage::MPlugFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever a connection is made or broken in the dependency graph. More...
 
static MCallbackId addPreConnectionCallback (MMessage::MPlugFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever any connection is made or broken in the dependency graph. More...
 
static MCallbackId addNodeChangeUuidCheckCallback (MMessage::MCheckNodeUuidFunction func, void *clientData=NULL, MStatus *ReturnStatus=NULL)
 This method registers a callback that is called whenever a node may have its UUID changed. More...
 
- Static Public Member Functions inherited from MMessage
static MStatus removeCallback (MCallbackId id)
 Remove the specified callback from maya. More...
 
static MStatus removeCallbacks (MCallbackIdArray &ids)
 Remove all of the specified callbacks from maya. More...
 
static MCallbackId currentCallbackId (MStatus *ReturnStatus=NULL)
 Return the callback ID of the currently executing callback. More...
 
static MStatus nodeCallbacks (MObject &node, MCallbackIdArray &ids)
 Returns a list of callback IDs associated registered to a given node. More...
 
static void setRegisteringCallableScript ()
 Mark this MMessage object as one that will be passed callbacks defined in script.
 
static bool registeringCallableScript ()
 Return true if this MMessage object has its callbacks defined in script.
 
static const char * className ()
 Returns the name of this class. More...
 
static MStatus removeCallbacks (MIntArray &ids)
 This method is obsolete. This method is not available in Python. More...
 
static MStatus nodeCallbacks (MObject &node, MIntArray &ids)
 This method is obsolete. More...
 

Additional Inherited Members

- Public Types inherited from MMessage
enum  Action { kDefaultAction, kDoNotDoAction, kDoAction }
 Callback result action codes. More...
 
typedef void(* MBasicFunction) (void *clientData)
 Pointer to a basic callback function. More...
 
typedef void(* MElapsedTimeFunction) (float elapsedTime, float lastTime, void *clientData)
 Pointer to an elapsed time callback function. More...
 
typedef void(* MCheckFunction) (bool *retCode, void *clientData)
 Pointer to callback function which returns a true/false result. More...
 
typedef void(* MCheckFileFunction) (bool *retCode, MFileObject &file, void *clientData)
 Pointer to a callback function which takes a file object and returns a result. More...
 
typedef void(* MCheckPlugFunction) (bool *retCode, MPlug &plug, void *clientData)
 Pointer to a callback function which takes a plug and returns a result. More...
 
typedef void(* MComponentFunction) (MUintArray componentIds[], unsigned int count, void *clientData)
 Pointer to a callback function which takes an array of component ids. More...
 
typedef void(* MNodeFunction) (MObject &node, void *clientData)
 Pointer to a callback function which takes a dependency node. More...
 
typedef void(* MStringFunction) (const MString &str, void *clientData)
 Pointer to callback function which takes a string. More...
 
typedef void(* MTwoStringFunction) (const MString &str1, const MString &str2, void *clientData)
 Pointer to a callback function which takes two strings. More...
 
typedef void(* MThreeStringFunction) (const MString &str1, const MString &str2, const MString &str3, void *clientData)
 Pointer to a callback function which takes three strings. More...
 
typedef void(* MStringIntBoolIntFunction) (const MString &str, unsigned int index, bool flag, unsigned int type, void *clientData)
 Pointer to callback function which takes a string, an index, a flag and a type. More...
 
typedef void(* MStringIndexFunction) (const MString &, unsigned int index, void *clientData)
 Pointer to callback function which takes a string and index. More...
 
typedef void(* MNodeStringBoolFunction) (MObject &node, const MString &, bool, void *clientData)
 Pointer to a callback function which takes a node, a string and a boolean. More...
 
typedef void(* MStateFunction) (bool state, void *clientData)
 Pointer to a callback function which takes a boolean state. More...
 
typedef void(* MTimeFunction) (MTime &time, void *clientData)
 Pointer to callback function which takes a time. More...
 
typedef void(* MPlugFunction) (MPlug &srcPlug, MPlug &destPlug, bool made, void *clientData)
 Pointer to plug connection callback function. More...
 
typedef void(* MNodePlugFunction) (MObject &node, MPlug &plug, void *clientData)
 Pointer to a callback function which takes a dependency node and a plug. More...
 
typedef void(* MNodeStringFunction) (MObject &node, const MString &str, void *clientData)
 Pointer to a callback function which takes a dependency node and a string. More...
 
typedef void(* MParentChildFunction) (MDagPath &child, MDagPath &parent, void *clientData)
 Pointer to to a callback function which takes two DAG nodes in a parent/child relationship. More...
 
typedef void(* MModifierFunction) (MDGModifier &modifier, void *clientData)
 Pointer to a callback function which takes a DG modifier. More...
 
typedef void(* MStringArrayFunction) (const MStringArray &strs, void *clientData)
 Pointer to a callback function which takes a string array. More...
 
typedef void(* MNodeModifierFunction) (MObject &node, MDGModifier &modifier, void *clientData)
 Pointer to a callback function which takes a dependency node and a DG modifier. More...
 
typedef void(* MObjArray) (MObjectArray &objects, void *clientData)
 Pointer to a callback function which takes an array of objects. More...
 
typedef void(* MNodeObjArray) (MObject &node, MObjectArray &objects, void *clientData)
 Pointer to a callback function which takes a dependency node and an array of objects. More...
 
typedef void(* MStringNode) (const MString &str, MObject &node, void *clientData)
 Pointer to a callback function which takes a string and a dependency node. More...
 
typedef void(* MCameraLayerFunction) (MObject &cameraSetNode, unsigned int multiIndex, bool added, void *clientData)
 Pointer to a callback function which takes a dependency node, an unsigned integer, and a boolean value. More...
 
typedef void(* MCameraLayerCameraFunction) (MObject &cameraSetNode, unsigned int multiIndex, MObject &oldCamera, MObject &newCamera, void *clientData)
 Pointer to a callback function which takes a dependency node, an unsigned integer, and two camera transform nodes. More...
 
typedef void(* MConnFailFunction) (MPlug &srcPlug, MPlug &destPlug, const MString &srcPlugName, const MString &dstPlugName, void *clientData)
 Pointer to connection-failed callback function. More...
 
typedef void(* MPlugsDGModFunction) (MPlugArray &plugs, MDGModifier &modifier, void *clientData)
 Pointer to a callback function which takes an array of MPlugs and an MDGModifier. More...
 
typedef void(* MNodeUuidFunction) (MObject &node, const MUuid &uuid, void *clientData)
 Pointer to a callback function which takes a dependency node and a UUID. More...
 
typedef Action(* MCheckNodeUuidFunction) (bool doAction, MObject &node, MUuid &uuid, void *clientData)
 Pointer to a callback function which takes a dependency node and a UUID, and returns a result. More...
 
typedef void(* MObjectFileFunction) (const MObject &object, const MFileObject &file, void *clientData)
 Pointer to a callback function which takes an object and a file object. More...
 
typedef void(* MCheckObjectFileFunction) (bool *retCode, const MObject &referenceNode, MFileObject &file, void *clientData)
 Pointer to a callback function which takes an object and a file object and returns a result. More...
 
typedef void(* MRenderTileFunction) (int originX, int originY, int tileMaxX, int tileMaxY, const void *tileData)
 Pointer to a callback function which receives origin, size and image data. More...
 

Member Function Documentation

MCallbackId addTimeChangeCallback ( MMessage::MTimeFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever the time changes in the dependency graph.

Parameters
[in]functhe callback function
  • time the new time
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
+ Examples:
MCallbackId addDelayedTimeChangeCallback ( MMessage::MTimeFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever the time changes in the dependency graph, but after the time changed callback.

Parameters
[in]functhe callback function
  • time the new time
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
MCallbackId addDelayedTimeChangeRunupCallback ( MMessage::MTimeFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever the time changes in the dependency graph, but after the other time changed callbacks which can be used to invoke a dynamics solve or runup if needed.

Parameters
[in]functhe callback function
  • time the new time
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
MCallbackId addForceUpdateCallback ( MMessage::MTimeFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called after the time changes and after all nodes have been evaluated in the dependency graph.

Parameters
[in]functhe callback function
  • time the new time
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
MCallbackId addNodeAddedCallback ( MMessage::MNodeFunction  func,
const MString nodeType = kDefaultNodeType,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever a new node is added to the dependency graph.

The nodeType argument allows you to specify the type of nodes that will trigger the callback. The default node type is "dependNode" which matches all nodes.

Parameters
[in]functhe callback function
  • node the new node
  • clientData User defined data passed to the callback function
[in]nodeTypeType of node that will trigger the callback
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
+ Examples:
MCallbackId addNodeRemovedCallback ( MMessage::MNodeFunction  func,
const MString nodeType = kDefaultNodeType,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever a new node is removed from the dependency graph.

The nodeType argument allows you to specify the type of nodes that will trigger the callback. The default node type is "dependNode" which matches all nodes.

Parameters
[in]functhe callback function
  • node the node being removed
  • clientData User defined data passed to the callback function
[in]nodeTypeType of node that will trigger the callback
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
+ Examples:
MCallbackId addConnectionCallback ( MMessage::MPlugFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever a connection is made or broken in the dependency graph.

This callback is triggered after the given connection has been made or broken, unlike the addPreConnectionCallback which is triggered before the operation.

Parameters
[in]functhe callback function
  • srcPlug Source plug of the connection
  • destPlug Destination plug of the connection
  • made true if a new connection was made, false if broken.
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
MCallbackId addPreConnectionCallback ( MMessage::MPlugFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever any connection is made or broken in the dependency graph.

This callback is triggered before the given connection has been made or broken, unlike the addConnectionCallback which is triggered after the operation.

Parameters
[in]functhe callback function
  • srcPlug Source plug of the connection
  • destPlug Destination plug of the connection
  • made true if a new connection will be made, false if it will be broken.
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:
MCallbackId addNodeChangeUuidCheckCallback ( MMessage::MCheckNodeUuidFunction  func,
void *  clientData = NULL,
MStatus ReturnStatus = NULL 
)
static

This method registers a callback that is called whenever a node may have its UUID changed.

Possible causes include the 'rename' command, and the UUID for a node being read from a file during file I/O.

Note that nodes are assigned a UUID when they are created; this does not invoke this callback. During file I/O the stored UUID is applied as a separate step after creation (which does invoke this callback).

Depending on the situation Maya may or may not use the new UUID by default. For example, when importing a file, Maya reads the UUID from the file but does not use it. The boolean argument to the callback function lets the callback know whether Maya is intending to use the UUID or not.

The callback returns a MMessage::Action enum:

  • kDefaultAction The callback does not want to change whether the UUID is used or not.
  • kDoNotDoAction Do not use the new UUID.
  • kDoAction Use the new UUID.

In any case, the callback may leave the new uuid as is, or may provide a new uuid of its own choosing to be used instead.

Parameters
[in]functhe callback function
  • doAction Whether the UUID will be applied
  • node The node whose UUID may be changed
  • uuid The UUID that may be applied to the node (typically the one read from the file, during file I/O) The callback may provide its own uuid to be applied by changing this parameter.
  • clientData User defined data passed to the callback function
[in]clientDataUser defined data passed to the callback function
[out]ReturnStatusstatus code
Returns
Identifier used for removing the callback.
Status Codes:

The documentation for this class was generated from the following files:
  • MDGMessage.h
  • MDGMessage.cpp