MEvaluationNode Class Reference

#include <MEvaluationNode.h>

Class Description

Provides access to Evaluation Manager node information.

See also
MEvaluationNodeIterator

An evaluation node and the connections between them form an evaluation graph. Each evaluation context uses a unique evaluation graph with its own set of evaluation nodes. Evaluation graphs are scheduled to speed up the operations within Maya.

This class contains methods for querying which attributes or plugs on a node will be set dirty prior to evaluation by the evaluation manager.

It is sometimes necessary to know the dirty state of plugs/attributes if your node is handling custom information. This handling would be done in the MPxNode preEvaluation()/postEvaluation() methods.

If you need to access the list of dirty plugs in the evaluation node then use the internal iterator:

for( MEvaluationNodeIterator nodeIt = theNode.iterator(); ! nodeIt.isDone(); nodeIt.next() ) { doSomePlugThing( nodeIt.plug() ); }

+ Examples:

Public Member Functions

 ~MEvaluationNode ()
 Destructor.
 
 MEvaluationNode (const MEvaluationNode &evalNode)
 Copy Constructor. More...
 
int parentCount () const
 Returns the number of parent nodes this evaluation node has. More...
 
MEvaluationNode parent (int index) const
 Returns the parent node of this evaluation node at given index. More...
 
int childCount () const
 Returns the number of children nodes this evaluation node has. More...
 
MEvaluationNode child (int index) const
 Returns the child node of this evaluation node at given index. More...
 
MEvaluationNodeIterator iterator (MStatus *ReturnStatus=nullptr) const
 Returns an iterator at the beginning of the dirty plug list. More...
 
bool dirtyPlugExists (const MObject &attribute, MStatus *ReturnStatus=nullptr) const
 Returns true if the specified attribute has a dirty plug. More...
 
MPlug dirtyPlug (const MObject &attribute, MStatus *ReturnStatus=nullptr) const
 Returns the top-most plug for the specified attribute if the attribute has dirty plugs. More...
 
void connect (MEvaluationNode &child, MStatus *ReturnStatus=nullptr)
 Connect two generic evaluation nodes. More...
 

Static Public Member Functions

static const char * className ()
 Returns the name of this class. More...
 

Friends

class MEvaluationNodeIterator
 
class MGraphNodeIterator
 
class MEvaluationGraph
 

Constructor & Destructor Documentation

MEvaluationNode ( const MEvaluationNode evalNode)

Copy Constructor.

Parameters
[in]evalNodeAn existing evaluation node

Member Function Documentation

int parentCount ( ) const

Returns the number of parent nodes this evaluation node has.

Returns
The number of parent nodes this evauation node has.
+ Examples:
MEvaluationNode parent ( int  index) const

Returns the parent node of this evaluation node at given index.

Parameters
[in]indexIndex of the parent evaluation node to access. No bound check is done so respect parentCount.
Returns
The MEvaluationNode parent object at given index.
+ Examples:
int childCount ( ) const

Returns the number of children nodes this evaluation node has.

Returns
The number of children nodes this evauation node has.
+ Examples:
MEvaluationNode child ( int  index) const

Returns the child node of this evaluation node at given index.

Parameters
[in]indexIndex of the child evaluation node to access. No bound check is done so respect childCount.
Returns
The MEvaluationNode child object at given index.
+ Examples:
MEvaluationNodeIterator iterator ( MStatus ReturnStatus = nullptr) const

Returns an iterator at the beginning of the dirty plug list.

Parameters
[out]ReturnStatusStatus Code
Returns
Iterator positioned at the beginning of the evaluation node's dirty plug list
Status Codes:
  • MS::kSuccess The operation succeeded
  • MS::kFailure Object error - no evaluation node
bool dirtyPlugExists ( const MObject attribute,
MStatus ReturnStatus = nullptr 
) const

Returns true if the specified attribute has a dirty plug.

This call should be made from MPxNode::preEvaluation() and MPxNode::postEvaluation() to verify which plugs are going to be dirty and computed.

Note
Dirty plug is storing top-most array/parent of the plug tree in which given attribute exists. When a new computation starts with the evaluation manager, everything under a dirty plug is considered as dirty and will be computed.
Parameters
[in]attributeAttribute whose root plug is to be checked for membership in the dirty plug list
[out]ReturnStatusStatus Code
Returns
True if the attribute exists in the dirty plug list, otherwise false.
Status Codes:
  • MS::kSuccess The operation succeeded
  • MS::kInvalidParameter MObject parameter is not an attribute
  • MS::kFailure Object error - no plug
+ Examples:
MPlug dirtyPlug ( const MObject attribute,
MStatus ReturnStatus = nullptr 
) const

Returns the top-most plug for the specified attribute if the attribute has dirty plugs.

This call should be made from MPxNode::preEvaluation() and MPxNode::postEvaluation() to access a networked plug which is going to be dirty and computed.

Note
Dirty plug is storing top-most array/parent of the plug tree in which given attribute exists. When a new computation starts with the evaluation manager, everything under a dirty plug is considered as dirty and will be computed.
Parameters
[in]attributeAttribute whose root plug is returned if it is in the dirty plug list
[out]ReturnStatusStatus Code
Returns
The top-most dirty plug for the specified attribute if it exists, a null plug otherwise.
Status Codes:
  • MS::kSuccess The operation succeeded
  • MS::kInvalidParameter MObject parameter is not an attribute
  • MS::kFailure Object error - no plug
void connect ( MEvaluationNode child,
MStatus ReturnStatus = nullptr 
)

Connect two generic evaluation nodes.

Generic evaluation nodes are explicitly created by topology evaluators to override topology of base layer evaluation nodes claimed by topology cluster nodes.

Parameters
[in]childGeneric evaluation node to connect as a child
[out]ReturnStatusStatus Code
Status Codes:
  • MS::kSuccess Nodes were connected in evaluation graph
  • MS::kFailure Object error, trying to connect non-generic evaluation nodes
+ Examples:
const char * className ( )
static

Returns the name of this class.

Returns
Name of this class.

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