class MFnDagNode

Jump to documentation

: public MFnDependencyNode DAG Node Function Set. (OpenMaya) (OpenMaya.py)

Inheritance:

MFnDagNode < MFnDependencyNode < MFnBase

public members:

kNextPos
used by addChild to indicate the next empty position in the list.
MFnDagNode ()
MFnDagNode ( MObject & object, MStatus * ret = NULL )
MFnDagNode ( const MDagPath & object, MStatus * ret = NULL )
MObject create ( const MTypeId &typeId, MObject & parent = MObject::kNullObj , MStatus * ReturnStatus = NULL )
MObject create ( const MTypeId &typeId, const MString &name, MObject & parent = MObject::kNullObj , MStatus * ReturnStatus = NULL )
MObject create ( const MString &type, MObject & parent = MObject::kNullObj , MStatus * ReturnStatus = NULL )
MObject create ( const MString &type, const MString &name, MObject & parent = MObject::kNullObj , MStatus * ReturnStatus = NULL )
unsigned int parentCount ( MStatus * ReturnStatus = NULL ) const
MObject parent ( unsigned int i, MStatus * ReturnStatus = NULL ) const
MStatus addChild ( MObject & child , unsigned int index = kNextPos , bool keepExistingParents = false )
MStatus removeChild ( MObject & child )
MStatus removeChildAt ( unsigned int index )
unsigned int childCount ( MStatus * ReturnStatus = NULL ) const
MObject child ( unsigned int i, MStatus * ReturnStatus = NULL ) const
MObject dagRoot ( MStatus * ReturnStatus = NULL )
bool hasParent ( const MObject & node, MStatus * ReturnStatus = NULL ) const
bool hasChild (const MObject & node, MStatus * ReturnStatus = NULL ) const
bool isChildOf (const MObject & node, MStatus * ReturnStatus = NULL ) const
bool isParentOf (const MObject & node, MStatus * ReturnStatus = NULL ) const
bool inUnderWorld ( MStatus * ReturnStatus = NULL ) const
bool inModel ( MStatus * ReturnStatus = NULL ) const
bool isInstanceable ( MStatus * ReturnStatus=NULL ) const
MStatus setInstanceable ( const bool how )
bool isInstanced ( bool indirect = true, MStatus * ReturnStatus = NULL ) const
bool isInstancedAttribute ( const MObject & attr, MStatus * ReturnStatus = NULL ) const
unsigned int instanceCount ( bool total, MStatus * ReturnStatus = NULL ) const
MObject duplicate ( bool instance = false, bool instanceLeaf = false, MStatus * ReturnStatus = NULL ) const
MStatus getPath ( MDagPath & path )
MStatus getAllPaths ( MDagPathArray & paths )
MString fullPathName ( MStatus *ReturnStatus = NULL)
MString partialPathName ( MStatus *ReturnStatus = NULL)
MMatrix transformationMatrix ( MStatus * ReturnStatus = NULL ) const
bool isIntermediateObject ( MStatus * ReturnStatus = NULL ) const
MStatus setIntermediateObject ( bool isIntermediate )
int objectColor ( MStatus * ReturnStatus = NULL ) const
MStatus setObjectColor ( int color )
bool usingObjectColor ( MStatus * ReturnStatus = NULL ) const
MStatus setUseObjectColor ( bool useObjectColor )
MBoundingBox boundingBox ( MStatus * ReturnStatus = NULL ) const
MDagPath dagPath ( MStatus * ReturnStatus = NULL ) const
virtual MStatus setObject ( const MDagPath & path )
virtual MStatus setObject ( MObject & object )
MObject model ( MStatus * ReturnStatus = NULL ) const
OBSOLETE
MFnDagNode ( const MObject & object, MStatus * ret = NULL )
NO SCRIPT SUPPORT
virtual MStatus setObject ( const MObject & object )
NO SCRIPT SUPPORT

Inherited from MFnDependencyNode:

public members:

virtual MFn::Type type () const
enum MAttrClass
kGlobalDynamicAttr
kLocalDynamicAttr
MObject create ( const MTypeId & typeId , MStatus * ReturnStatus = NULL )
MObject create ( const MTypeId & typeId , const MString & name , MStatus * ReturnStatus = NULL )
MObject create ( const MString & type , MStatus * ReturnStatus = NULL )
MObject create ( const MString & type , const MString & name , MStatus * ReturnStatus = NULL )
MTypeId typeId ( MStatus * ReturnStatus = NULL ) const
MString typeName ( MStatus * ReturnStatus = NULL ) const
MString name ( MStatus * ReturnStatus = NULL ) const
MString setName ( const MString & name , MStatus * ReturnStatus = NULL )
MStatus getConnections ( MPlugArray & array ) const
unsigned int attributeCount ( MStatus * ReturnStatus=NULL) const
MObject attribute ( unsigned int index, MStatus * ReturnStatus=NULL) const
MObject reorderedAttribute ( unsigned int index, MStatus * ReturnStatus=NULL) const
MObject attribute ( const MString & attrName, MStatus * ReturnStatus=NULL) const
MAttrClass attributeClass ( const MObject & attr, MStatus * ReturnStatus=NULL) const
MStatus getAffectedAttributes ( const MObject & attr, MObjectArray & affectedAttributes ) const
MStatus getAffectedByAttributes ( const MObject & attr, MObjectArray & affectedByAttributes ) const
MPlug findPlug ( const MObject & attr, bool wantNetworkedPlug, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MString & attrName, bool wantNetworkedPlug, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MObject & attr, MStatus * ReturnStatus=NULL) const
MPlug findPlug ( const MString & attrName, MStatus * ReturnStatus=NULL) const
MStatus addAttribute ( const MObject & attr, MAttrClass type = kLocalDynamicAttr )
MStatus removeAttribute ( const MObject & attr, MAttrClass type = kLocalDynamicAttr )
MPxNode * userNode ( MStatus * ReturnStatus=NULL ) const
bool isFromReferencedFile ( MStatus * ReturnStatus=NULL) const
bool isShared ( MStatus * ReturnStatus=NULL) const
bool hasUniqueName ( MStatus * ReturnStatus=NULL) const
MString parentNamespace ( MStatus * ReturnStatus=NULL) const
bool isLocked ( MStatus * ReturnStatus=NULL) const
MStatus setLocked ( bool locked )
static MString classification ( const MString & nodeTypeName )
bool isNewAttribute ( const MObject & attr, MStatus * ReturnStatus=NULL) const
static unsigned int allocateFlag ( const MString pluginName, MStatus * ReturnStatus=NULL )
static MStatus deallocateFlag (const MString pluginName, unsigned int flag)
static MStatus deallocateAllFlags (const MString pluginName)
MStatus setFlag (unsigned int flag, bool state)
bool isFlagSet (unsigned int flag, MStatus * ReturnStatus=NULL) const
bool isDefaultNode ( MStatus * ReturnStatus=NULL) const
MStatus setDoNotWrite ( bool flag )
bool canBeWritten ( MStatus * ReturnStatus=NULL) const
bool hasAttribute (const MString & name , MStatus * ReturnStatus=NULL) const
MObject getAliasAttr (bool force, MStatus * ReturnStatus=NULL)
bool setAlias (const MString & alias,const MString & name , const MPlug & plug, bool add=true, MStatus * ReturnStatus=NULL)
bool findAlias (const MString & alias, MObject & attrObj, MStatus * ReturnStatus=NULL) const
bool getAliasList ( MStringArray & strArray, MStatus * ReturnStatus=NULL)
MString plugsAlias (const MPlug & plug, MStatus * ReturnStatus=NULL)
public
bool getPlugsAlias (const MPlug & plug, MString & aliasName, MStatus * ReturnStatus=NULL)

Inherited from MFnBase:

public members:

virtual MFn::Type type () const
bool hasObj ( MFn::Type ) const
bool hasObj ( const MObject & ) const
MObject object ( MStatus * ReturnStatus = NULL ) const
virtual MStatus setObject ( MObject & object )
virtual MStatus setObject ( const MObject & object )

Documentation

Provides methods for attaching Function Sets to, querying, and adding children to DAG Nodes. Particularly useful when used in conjunction with the DAG Iterator class (MItDag).

Description

The MFnDagNode function set is used to query and set the attributes of nodes in the DAG (Directed Acyclic Graph). The DAG is a graph that describes the hierarchy of the objects in the model. At each level of the hierarchy there is a four by four transformation matrix that affects all of the objects beneath it in the DAG.

In the DAG, geometry objects (also known as shapes) do not have transformation information associated with them. Only transform nodes have actual transform matrices (see MFnTransform).

Each node that exists in the DAG is also a dependency node that exists in the dependency graph. This makes it possible to control the attributes of a DAG node based on calculations performed by dependency nodes.

There are two ways to specify a DAG node in Maya. The first is to use an MObject handle, which acts as a pointer to a specific node in the DAG. Given only an MObject, it is not possible to do world space operations on a DAG node because there may be more than one path through the DAG to any given node. In other words, it is not possible to identify a particular instance only given an MObject.

In many cases it is preferable to use a DAG path (MDagPath) to specify a DAG node. A DAG path always refers to a specific instance of an object. This makes it possible to perform unambiguous world space transformations.

It is also possible to iterate over the nodes in the DAG using a DAG iterator (MItDag).

Functions

MFnDagNode:: MFnDagNode ()

Description

Class Constructor

Creates a DAG Node Function Set without an attached DAG Node.

Arguments

  • Nil

Status Codes

  • Nil

MFnDagNode:: MFnDagNode ( MObject &object, MStatus * ret )

Description

Class Constructor

Creates a DAG Node Function Set and attaches it to the given DAG Node.

Arguments

  • object The DAG Node to be attached.
  • ReturnStatus Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for object - not a DAG Node, Node does not exist or no valid pointer to Node

MFnDagNode:: MFnDagNode ( const MObject &object, MStatus * ret )

Description

Class Constructor

Creates a DAG Node Function Set and attaches it to the given read only DAG Node.

Arguments

  • object The read only DAG Node to be attached.
  • ReturnStatus Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for object - not a DAG Node, Node does not exist or no valid pointer to Node

MFnDagNode:: MFnDagNode ( const MDagPath & object, MStatus * ret )

Description

Class Constructor

Creates a DAG Node Function Set and attaches it to the DAG Node that has the given DAG Path.

Arguments

  • object The DAG Path of the Node to be attached.
  • ReturnStatus Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInsufficientMemory Insufficient memory to make working copy of DAG Path
  • MS::kInvalidParameter Invalid parameter passed for object - invalid Path

MFnDagNode:: ~MFnDagNode ()

Description

Class Destructor

Deletes the working copy of the DAG Path to the attached object, if the copy exists.

MObject MFnDagNode:: create ( const MTypeId &typeId, MObject & parent , MStatus * ReturnStatus )

Description

Creates a new DAG node with the given type tag. The new node is placed into the DAG.

If a parent is specified, the new node is parented to it, and the new node is returned. If no parent is specified and the new node is a transform, the new node is returned. Otherwise, a transform created and the new node is automatically parented to it. The returned object is the transform, not the new node.

Arguments

  • typeId type id of the node to be created
  • parent the parent of the node to be created
  • ReturnStatus return status

Return Value

  • a pointer to the new dependency node object or the transform added above it.

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter parent or typeId is not a DAG node
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kInsufficientMemory out of memory
  • MS::kFailure node type is not recognised

MObject MFnDagNode:: create ( const MTypeId &typeId, const MString &name, MObject & parent , MStatus * ReturnStatus )

Description

Creates a new DAG node with the given type tag. The new node is placed into the DAG.

If a parent is specified, the new node is parented to it, and the new node is returned. If no parent is specified and the new node is a transform, the new node is returned. Otherwise, a transform created and the new node is automatically parented to it. The returned object is the transform, not the new node.

Arguments

  • typeId type id of the node to be created
  • name the name to be assigned to the new node If the node's name is not unique, it will be given a unique name by changing its numerical suffix. For example, if this node is called "myNode" and a node by the same name exists, this node will be renamed to "myNode1".
  • parent the parent of the node to be created
  • ReturnStatus return status

Return Value

  • a pointer to the new dependency node object or the transform added above it.

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter parent or typeId is not a DAG node
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kInsufficientMemory out of memory
  • MS::kFailure node type is not recognised

MObject MFnDagNode:: create ( const MString &type, MObject & parent , MStatus * ReturnStatus )

Description

Creates a new DAG node with the given type tag. The new node is placed into the DAG.

If a parent is specified, the new node is parented to it, and the new node is returned. If no parent is specified and the new node is a transform, the new node is returned. Otherwise, a transform created and the new node is automatically parented to it. The returned object is the transform, not the new node.

Arguments

  • type int name for the type of DAG node
  • parent the DAG parent of this node
  • ReturnStatus return status

Return Value

  • a pointer to the new dependency node object or the transform added above it.

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter parent or type is not a DAG node
  • MS::kInsufficientMemory out of memory
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kFailure node type is not recognised

MObject MFnDagNode:: create ( const MString &type, const MString &name, MObject & parent , MStatus * ReturnStatus )

Description

Creates a new DAG node with the given type tag. The new node is placed into the DAG.

If a parent is specified, the new node is parented to it, and the new node is returned. If no parent is specified and the new node is a transform, the new node is returned. Otherwise, a transform created and the new node is automatically parented to it. The returned object is the transform, not the new node.

Arguments

  • type int name for the type of DAG node
  • name the name to be assigned to the new node If the node's name is not unique, it will be given a unique name by changing its numerical suffix. For example, if this node is called "myNode" and a node by the same name exists, this node will be renamed to "myNode1".
  • parent the DAG parent of this node
  • ReturnStatus return status

Return Value

  • a pointer to the new dependency node object or the transform added above it.

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter parent or type is not a DAG node
  • MS::kInsufficientMemory out of memory
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kFailure node type is not recognised

unsigned int MFnDagNode:: parentCount ( MStatus * ReturnStatus ) const

Description

Determines the number of parent Nodes of the Node. Used to determine the upper bound for the parent index (max index = parentCount-1).

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • Number of parent Nodes.

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MObject MFnDagNode:: parent ( unsigned int i, MStatus * ReturnStatus ) const

Description

Queries the DAG Node attached to the Function Set for the parent Node corresponding to the given index.

Arguments

  • i Index to the parent Node
  • ReturnStatus Status Code (see below)

Return Value

  • The parent Node for the given index.

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed fori (index) - index out of range
  • MS::kFailure No valid DAG Node attached to Function Set or failure retrieving parent Node.

MStatus MFnDagNode:: addChild ( MObject & child , unsigned int index, bool keepExistingParents )

Description

Makes the given DAG Node a child of the DAG Node to which this instance of the Function Set is attached.

By default, the child will be added to the end of the child list. If an index is specified, and it is less than or equal to the upper bound, Maya will add the child to the specified index and shift the position of subsequent children onto the next position. If the index is greater than the upper bound, the behavior is undefined.

By default, the child is removed from its existing parents as a result of this operation. If the flag keepExistingParents is set to true, the child will keep its existing parents and a new instance connection will be created for the new node. Any instanced attributes downstream from the new child will be updated with new instance numbers.

Arguments

  • child The node to be added as child
  • index The index that the child should be position. Defaulted to MFnDagNode::kNextPos

Return Value

  • Status Code (See below).

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed as child - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kInsufficientMemory Insufficient memory to add child to model
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: removeChild ( MObject & child )

Description

Removes the given DAG Node from the parent. Once the child is removed, all children at higher indices would shift 1 position to the left.

If the child being removed is an instance, any instance attributes downstream from the node being removed will be updated with the new instance count.

Arguments

  • child The Node to be removed as child

Return Value

  • Status Code (See below).

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed as child - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: removeChildAt ( unsigned int index )

Description

Removes the child at the given index from the parent. Once the child is removed, all children at higher indices would shift 1 position to the left.

If the child being removed is an instance, any instance attributes downstream from the node being removed will be updated with the new instance count.

Arguments

  • index The index of the child.

Return Value

  • Status Code (See below).

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

unsigned int MFnDagNode:: childCount ( MStatus * ReturnStatus ) const

Determines the number of child Nodes of the Node. Used to determine the upper bound for the child index (max index = childCount-1).

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • Number of child Nodes.

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached

MObject MFnDagNode:: child ( unsigned int i, MStatus * ReturnStatus ) const

Description

Queries the DAG Node attached to the Function Set for the child Node corresponding to the given index.

Arguments

  • i Index to the child Node
  • ReturnStatus Status Code (see below)

Return Value

  • The child Node for the given index.

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed fori (index) - index out of range
  • MS::kFailure No valid DAG Node attached to Function Set or failure retrieving child node.

MStatus MFnDagNode:: getPath ( MDagPath & path )

Returns a DAG Path to the DAG Node attached to the Function Set. The difference between this method and the method dagPath below is that this one will not fail if the function set is not attached to a dag path, it will always return a path to the node. dagPath will fail if the function set is not attached to a dag path.

Arguments

  • path The DAG Path that is found (implicit return)

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: getAllPaths ( MDagPathArray & paths )

Determines all DAG Paths to the DAG Node attached to the Function Set.

Arguments

  • path Array of all DAG Paths that are found (implicit return)

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MString MFnDagNode:: fullPathName ( MStatus *ReturnStatus)

Return a string representing the full path from the root of the dag to this object.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • The full path name

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MString MFnDagNode:: partialPathName ( MStatus *ReturnStatus)

Return a string representing the partial path from the root of the dag to this object.

The partial path is the minimum path that is still unique. This string may contain wildcards.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • The partial path name

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MObject MFnDagNode:: dagRoot ( MStatus * ReturnStatus )

Determines the root of the first DAG Path to the DAG Node attached to the Function Set.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • The DAG root

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: hasParent ( const MObject & node, MStatus * ReturnStatus ) const

Determines whether or not the given Node is a parent of the DAG Node attached to the Function Set.

Arguments

  • node Potential parent node
  • ReturnStatus Status Code (see below)

Return Value

  • true = is a parent
  • false = is not a parent

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kInsufficientMemory Insufficient memory to create working copy of potential parent Node
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: hasChild (const MObject & node, MStatus * ReturnStatus ) const

Determines whether or not the given Node is a child of the DAG Node attached to the Function Set.

Arguments

  • node node to check
  • ReturnStatus Status Code (see below)

Return Value

  • true = is a child
  • false = is not a child

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kInsufficientMemory Insufficient memory
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isChildOf (const MObject & node, MStatus * ReturnStatus ) const

Determines whether or not the DAG Node attached to the Function Set is a child of the given node.

Arguments

  • node node to check
  • ReturnStatus Status Code (see below)

Return Value

  • true = is a child
  • false = is not a child

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kInsufficientMemory Insufficient memory
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isParentOf (const MObject & node, MStatus * ReturnStatus ) const

Determines whether or not the DAG Node attached to the Function Set is a parent of the given node.

Arguments

  • node node to check
  • ReturnStatus Status Code (see below)

Return Value

  • true = is a child
  • false = is not a child

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node
  • MS::kInsufficientMemory Insufficient memory
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: inUnderWorld ( MStatus * ReturnStatus ) const

Determines whether or not the DAG Node is an underworld node. (An example of an underworld node is a curve on surface.)

Return Value

  • true = is an underworld node
  • false = is not an underworld node

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: inModel ( MStatus * ReturnStatus ) const

Determines whether or not the DAG Node is in the model.

Return Value

  • true = is in model
  • false = is not in model

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isInstanced ( bool indirect, MStatus * ReturnStatus ) const

Determines whether the DAG Node attached to the Function Set is directly or indirectly instanced.

If indirect instance flag is false, the result is true if and only if the Node itself is multiply instanced (node->parentCount > 1).

If the indirect flag is true, the result is true if and only if the Node itself is multiply instanced (node->parentCount > 1) or if the Node is not multiply instanced, but it has a directly instanced parent (node->parentCount()=1 amd parent->parentCount >1).

Arguments

  • indirect Indirect instance flag
  • ReturnStatus Status Code (see below)

Return Value

  • true = Node is instanced (directly or indirectly according to indirect instance flag)
  • false = Node is not instanced (directly or indirectly according to indirect instance flag)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isInstanceable ( MStatus * ReturnStatus ) const

Description

Returns true if the DAG node can be instanced, and false otherswise.

Arguments

  • ReturnStatus return status

Return Value

  • instanceable true if the DAG node is instanceable

Status Codes

  • MS::kSuccess successfully queried the DAG node
  • MS::kFailure function set does not have a valid DAG node

MStatus MFnDagNode:: setInstanceable ( const bool how )

Description

Sets whether or not the DAG node is instanceable. If the node is marked as noninstanceable, then if Maya attempts to create instances on the node the instancing operation will not succeed and instead an error will be reported. A node cannot be marked non-instanceable if it or any of its children are currently instanced. MS::kFailure will be returned it this occurs. The default instanceable state for newly created nodes if true, meaning that nodes can be instanced by default.

Arguments

  • instanceable true if the node should be made instanceable, false to make the node noninstanceable.

Return Value

  • ReturnStatus status code

Status Codes

  • MS::kSuccess successfully set the instanceable state on the node
  • MS::kFailure function set does not have a valid node, or the node or one of its child nodes is already instanced and you are attempting to flag the node as non-instanceable, or the node is locked.

unsigned int MFnDagNode:: instanceCount ( bool total, MStatus * ReturnStatus ) const

Description

Determines the number of times the Node attached to the Function Set is instanced.

If indirect instance flag is false, the number of direct instances is returned.

If the indirect flag is true, the total number of times the Node is instanced in the DAG above it is returned.

Arguments

  • indirect Indirect instance flag
  • ReturnStatus Status Code (see below)

Return Value

  • Number of instances (direct or indirect according to indirect instance flag).

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isInstancedAttribute ( const MObject & attribute, MStatus * ReturnStatus ) const
Description

Returns true if the specified attribute is instanced. An instanced attribute is an array attribute whose index depends upon which instance of the node is being referred to.

Attributes are not instanced by default.

Arguments

  • attribute The attribute to test.
  • ReturnStatus Return status.

Return Value

  • a boolean value indicating whether the attribute is instanced

Status Codes

  • MS::kSuccess operation successful
  • MS::kInvalidParameter no such attribute on this node
  • MS::kFailure this function set does not have a valid DAG node object

MObject MFnDagNode:: duplicate ( bool instance, bool leafInstance, MStatus * ReturnStatus ) const

Description

This method duplicates the DAG hierarchy rooted at the current node. The copy will have the same parent, if any, as the original node.

If instance is false then a true copy will be made, otherwise a new node will be created which instances the child nodes of the original node. If instance is false then instanceLeaf is ignored.

If instance is true and instanceLeaf is false then the child nodes of the original node are instanced. If instanceLeaf is true, then the results are similar to a copy, but the leaf level objects are instanced.

If the function set is initialized without an MDagPath, then this method uses the first path to the node. This is only a problem if the node has been instanced, in which case the simple solution is to use an MDagPath to initialize the function set.

Arguments

  • instance Duplicate using instancing if true
  • leafInstance Instance only at the leaf level if true
  • ReturnStatus Status Code (see below)

Return Value

  • A reference to the newly created node.

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MMatrix MFnDagNode:: transformationMatrix ( MStatus * ReturnStatus ) const

Returns the object space transformation matrix for this DAG node. In general, only transform nodes have matrices associated with them. Nodes such as shapes (geometry nodes) do not have transform matrices.

The identity matrix will be returned if this node does not have a transformation matrix.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • Object space transformation matrix.

Status Codes

  • MS::kSuccess Success
  • MS::kInsufficientMemory Insufficient memory to create working copy of transformation matrix
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: isIntermediateObject ( MStatus * ReturnStatus ) const

Returns true if this object is an intermediate in a geometry calculation.

When geometry calculations are performed using dependency nodes, it is sometimes necessary to use intermediate objects. These objects are not draw or rendered. For example, deformers use intermediate geometry during their calculations.

This method exists to provide a more convenient way of accessing the intermediateObject attribute of DAG nodes.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • boolean value determining whether this is an intermediate object

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: setIntermediateObject ( bool isIntermediate )

Sets whether this object is an intermediate in a geometry calculation.

When geometry calculations are performed using dependency nodes, it is sometimes necessary to use intermediate objects. These objects are not draw or rendered. For example, deformers use intermediate geometry during their calculations.

This method exists to provide a more convenient way of accessing the intermediateObject attribute of DAG nodes.

Arguments

  • isIntermediate whether to make this an intermediate object

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

int MFnDagNode:: objectColor ( MStatus * ReturnStatus ) const

Determines the index for the current user defined inactive color used by the node. Valid indices are from 0 to 7.

This method is only meaningful for shape or joint nodes (e.g. nurbs curves/surfaces, meshes). It will work for other nodes, but will have no visible effect.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • Index for current user defined inactive color (0 - 7)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: setObjectColor ( int index )

Sets the index for the current user defined inactive color used by the node.

This method is only meaningful for shape or joint nodes (e.g. nurbs curves/surfaces, meshes). It will work for other nodes, but will have no visible effect.

Arguments

  • index Index for current user color (0 - 7)

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

bool MFnDagNode:: usingObjectColor ( MStatus * ReturnStatus ) const

Determines whether or not the user defined inactive color will be used for the node, or whether the default inactive color will be used.

This method is only meaningful for shape or joint nodes (e.g. nurbs curves/surfaces, meshes). It will work for other nodes, but will have no visible effect.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • true if using the user defined inactive object color

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MStatus MFnDagNode:: setUseObjectColor ( bool useObjectColor )

Sets whether or not the user defined inactive object color will be used.

This method is only meaningful for shape or joint nodes (e.g. nurbs curves/surfaces, meshes). It will work for other nodes, but will have no visible effect.

Arguments

  • useObjectColor True means the user defined inactive object color will be used

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MBoundingBox MFnDagNode:: boundingBox ( MStatus * ReturnStatus ) const

Returns the bounding box for the dag node in object space.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • the bounding box for the dag node

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set

MDagPath MFnDagNode:: dagPath ( MStatus * ReturnStatus ) const

Returns the DagPath to which the Function Set is attached. The difference between this method and the method getPath above is that this one will fail if the function set is not attached to a dag path. getPath will find a dag path if the function set is not attached to one.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • an MDagPath that references the object to which the Function Set is attached. If the function set is not attached to a dag path an uninitialized MDagPath will be returned.

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Object Error

MStatus MFnDagNode:: setObject ( MObject & object )

Attaches Function Set to given DAG Node.

Arguments

  • object Target Node for attachment.

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node

MStatus MFnDagNode:: setObject ( const MObject & object )

Attaches Function Set to given read only DAG Node.

Arguments

  • object Target Node for attachment.

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for node - not a DAG Node, Node does not exist or no valid pointer to Node

MStatus MFnDagNode:: setObject ( const MDagPath & objectPath )

Attaches Function Set to the DAG Node that has the given DAG Path.

Arguments

  • object DAG Path to Node to be attached.

Return Value

  • Status Code (see below)

Status Codes

  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid parameter passed for objectPath - invalid Path or target Node is not a DAG Node, does not exist or has no accessible pointer
  • MS::kInsufficientMemory Insufficient memory to create working copy of DAG Path

MObject MFnDagNode:: model ( MStatus * ReturnStatus ) const

Description

THIS IS AN OBSOLETE METHOD

This method will be removed in a future Maya release. The model returned is an unknown type to the API and now the method always returns MObject::kNullObj.

Queries the DAG Node attached to the Function Set for the model in which it resides.

Arguments

  • ReturnStatus Status Code (see below)

Return Value

  • The model in which the DAG Node resides.

Status Codes

  • MS::kSuccess Success
  • MS::kFailure No valid DAG Node attached to Function Set or failure retrieving model.

Direct child classes:

- MFnTransform
- MFnSubd
- MFnPfxGeometry
- MFnParticleSystem
- MFnNurbsSurface
- MFnNurbsCurve
- MFnMesh
- MFnLight
- MFnLattice
- MFnInstancer
- MFnFluid
- MFnField
- MFnCamera

Autodesk® Maya® 2008 © 1997-2007 Autodesk, Inc. All rights reserved. doc++ Copyright