This reference page is linked to from the following overview topics: Overview of hardware shading node plug-ins.
DAG Path.
Provides methods for obtaining one or all Paths to a specified DAG Node, determining if a Path is valid and if two Paths are equivalent, obtaining the length, transform, and inclusive and exclusive matrices of a Path, as well as performing Path to Path assignment.
DAG Paths may be used as parameters to some methods in the DAG Node Function Set (MFnDagNode).
It is often useful to combine DAG Paths into DAG Path arrays (MDagPathArray).
Use this DAG Path Class to obtain and query Paths to DAG Nodes. A DAG path is a path from the world node to a particular object in the DAG.
If a DAG object is instanced, then an MDagPath is required to identify a particular instance. DAG paths are also required when doing world space transformations.
Use this class in conjunction with the DAG Iterator (MItDag), DAG Node Function Set (MFnDagNode) and DAG Path Array class (MDagPathArray) to query and edit the DAG.
animExportUtil.cpp, animExportUtil.h, animInfoCmd.cpp, apiMeshShape.cpp, apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, cgfxEffectDef.cpp, cgfxEffectDef.h, cgfxShaderCmd.cpp, cgfxShaderNode.cpp, cgfxShaderNode.h, cleanPerFaceAssignmentCmd.cpp, closestPointCmd.cpp, closestPointOnCurveCmd.cpp, closestPointOnCurveNode.cpp, closestPointOnNurbsSurfaceCmd.cpp, closestTangentUAndDistance.cpp, closestTangentUAndDistance.h, clusterWeightFunction.cpp, componentScaleManip.cpp, convertEdgesToFacesCmd.cpp, convertVerticesToEdgesCmd.cpp, convertVerticesToFacesCmd.cpp, curvedArrowsNode.cpp, customAttrManip.cpp, cvColorNode.cpp, cvColorShader.cpp, cvExpandCmd.cpp, cvPosCmd.cpp, D3DGeometryItem.cpp, D3DGeometryItem.h, D3DResourceManager.cpp, D3DResourceManager.h, D3DViewportRenderer.cpp, D3DViewportRenderer.h, dagMessageCmd.cpp, exportJointClusterDataCmd.cpp, exportSkinClusterDataCmd.cpp, findTexturesPerPolygonCmd.cpp, footPrintManip.cpp, footPrintNode.cpp, getPointAndNormal.cpp, getPointAndNormal.h, GLSLShaderNode.cpp, GLSLShaderNode.h, hairCollisionSolver.cpp, helix2Cmd.cpp, helixTool.cpp, hlslShader.cpp, hwAnisotropicShader_NV20.cpp, hwColorPerVertexShader.cpp, hwDecalBumpShader_NV20.cpp, hwManagedTextureShader.cpp, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.cpp, hwRefractReflectShader_NV20.cpp, hwToonShader_NV20.cpp, hwUnlitShader.h, instanceCallbackCmd.cpp, instancerListCmd.cpp, intersectCmd.cpp, intersectOnNurbsSurfaceCmd.cpp, lassoTool.cpp, lineManip.cpp, lineManip.h, lineManipContainer.cpp, lineManipContainer.h, listLightLinksCmd.cpp, listPolyHolesCmd.cpp, lockEvent.cpp, maTranslator.cpp, meshMapUtils.cpp, meshMapUtils.h, meshOpCmd.cpp, meshRemapCmd.h, meshRemapTool.cpp, meshReorderCmd.h, meshReorderTool.cpp, motionPathCmd.cpp, moveCurveCVsCmd.cpp, moveManip.cpp, moveNumericTool.cpp, moveTool.cpp, narrowPolyViewer.cpp, narrowPolyViewer.h, narrowPolyViewerCmd.cpp, narrowPolyViewerCmd.h, objExport.cpp, OpenGLViewportRenderer.cpp, OpenGLViewportRenderer.h, peltOverlapCmd.cpp, pnTrianglesNode.cpp, pointOnMeshCmd.cpp, pointOnMeshInfoNode.cpp, polyExporter.cpp, polyExporter.h, polyMessageCmd.cpp, polyModifierCmd.cpp, polyModifierCmd.h, polyRawExporter.cpp, polyRawExporter.h, polyRawWriter.cpp, polyRawWriter.h, polyWriter.cpp, polyWriter.h, polyX3DExporter.cpp, polyX3DExporter.h, polyX3DWriter.cpp, polyX3DWriter.h, quadricShape.cpp, renderViewRenderCmd.cpp, renderViewRenderRegionCmd.cpp, rotateManip.cpp, sampleCmd.cpp, sampleParticles.cpp, scanDagCmd.cpp, scanDagSyntax.cpp, ShapeMonitor.cpp, simpleEmitter.cpp, simpleEmitter.h, simpleSolverNode.cpp, spiralAnimCurveCmd.cpp, splitUVCmd.cpp, squareScaleManip.cpp, squareScaleManip.h, squareScaleManipContext.cpp, squareScaleManipContext.h, surfaceBumpManip.cpp, surfaceTwist.cpp, surfaceTwistCmd.cpp, swissArmyManip.cpp, torusField.cpp, torusField.h, translateCmd.cpp, and zoomCameraCmd.cpp.
#include <MDagPath.h>
Public Member Functions |
|
MDagPath () | |
Class Constructor. |
|
MDagPath (const MDagPath &src) | |
Copy constructor. |
|
virtual | ~MDagPath () |
Class Destructor. |
|
bool | hasFn (MFn::Type type, MStatus *ReturnStatus=NULL) const |
Returns true if the object at the end of
this DAG path supports the given function set. |
|
MFn::Type | apiType (MStatus *ReturnStatus=NULL) const |
Returns the type of the object at the end of
the path. |
|
bool | isValid (MStatus *ReturnStatus=NULL) const |
Determines if Path is valid. |
|
MObject | node (MStatus *ReturnStatus=NULL) const |
Retrieves the DAG Node for this DAG Path.
|
|
MObject | transform (MStatus *ReturnStatus=NULL) const |
Retrieves the lowest Transform in the DAG
Path. |
|
unsigned int | length (MStatus *ReturnStatus=NULL) const |
Determines the number of DAG Nodes in the
Path not including the root. |
|
MStatus | extendToShape () |
If the object at the end of this path is a
transform and there is a shape node directly beneath it in the
hierarchy, then the path is extended to that geometry node.
|
|
MStatus | extendToShapeDirectlyBelow (unsigned int) |
This method is used if the end of the path
is a transform and there are shapes directly below the transform.
|
|
MStatus | numberOfShapesDirectlyBelow (unsigned int &) const |
If the object at the end of this path is a
transform, this method will return the number of shapes directly
below the transform. |
|
MStatus | push (const MObject &child) |
Push an object onto the end of the path.
|
|
MStatus | pop (unsigned int num=1) |
Pop the given number of objects off of the
end of the path. |
|
unsigned int | childCount (MStatus *ReturnStatus=NULL) const |
Return the number of children that the
object at the end of the path has. |
|
MObject | child (unsigned int i, MStatus *ReturnStatus=NULL) const |
Return the child object at the given index,
where the parent is the object at the end of the path. |
|
MMatrix | inclusiveMatrix (MStatus *ReturnStatus=NULL) const |
Determines the inclusive matrix of the Path.
|
|
MMatrix | exclusiveMatrix (MStatus *ReturnStatus=NULL) const |
Determines the exclusive matrix of the Path.
|
|
MMatrix | inclusiveMatrixInverse (MStatus *ReturnStatus=NULL) const |
Determines the inverse inclusive matrix of
the Path. |
|
MMatrix | exclusiveMatrixInverse (MStatus *ReturnStatus=NULL) const |
Determines the inverse exclusive matrix of
the Path. |
|
MDagPath & | operator= (const MDagPath &src) |
Assigns the DAG Path on the RHS of the
operator to the DAG Path on the LHS. |
|
bool | operator== (const MDagPath &src) const |
Determines if the DAG Path on the LHS of the
operator is equal to the DAG Path on the RHS. |
|
MStatus | set (const MDagPath &src) |
Sets this DAG Path equal to the specified
DAG Path. |
|
unsigned int | pathCount (MStatus *ReturnStatus=NULL) const |
Return the number of paths which make up
this path. |
|
MStatus | getPath (MDagPath &path, unsigned int i=0) const |
Return the i'th path. |
|
MString | fullPathName (MStatus *ReturnStatus=NULL) const |
Return a string representing the full path
from the root of the dag to this object. |
|
MString | partialPathName (MStatus *ReturnStatus=NULL) const |
Return a string representing the partial
path from the root of the dag to this object. |
|
bool | isInstanced (MStatus *ReturnStatus=NULL) const |
Returns true if the object at the end of the
DAG path is instanced. |
|
unsigned int | instanceNumber (MStatus *ReturnStatus=NULL) const |
For an instanced object, this returns the
instance number that this path represents in the DAG. |
|
Static Public Member Functions |
|
static MStatus | getAllPathsTo (const MObject &node, MDagPathArray &pathArray) |
Determines all Paths to the specified DAG
Node. |
|
static MStatus | getAPathTo (const MObject &node, MDagPath &path) |
Determines the Path to the specified DAG
Node. |
|
static const char * | className () |
Returns the name of this class. |
|
static MDagPath | getAPathTo (const MObject &node, MStatus *ReturnStatus=NULL) |
Obsolete. |
MDagPath | ( | ) |
Class Constructor.
Creates a DAG Path
Copy constructor.
Duplicate the given path.
[in] | src | the path to be copied |
~MDagPath | ( | ) | [virtual] |
Class Destructor.
No additional action.
MStatus getAllPathsTo | ( | const MObject & | node, |
MDagPathArray & | pathArray | ||
) | [static] |
Determines all Paths to the specified DAG Node.
[in] | node | DAG Node for which Paths are determined |
[out] | pathArray | Array containing all DAG Paths to the specified Node (implicit return) |
Determines the Path to the specified DAG Node.
The Path returned is rooted at the World. If the object is instanced and has multiple paths, then the first one that is found is returned.
[in] | node | DAG Node for which Paths are determined |
[out] | path | reference to the path of the specified DAG Node |
Returns true if the object at the end of this DAG path supports the given function set.
If the object at the end of this DAG path is a transform node and has a child that is a shape, then that node will be checked as well. All function sets that take an MDagPath
[in] | type | function set type to check |
[out] | ReturnStatus | status code |
Returns the type of the object at the end of the path.
[out] | ReturnStatus | status code |
bool isValid | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Determines if Path is valid.
[out] | ReturnStatus | status code |
Retrieves the DAG Node for this DAG Path.
[out] | ReturnStatus | Status Code |
Retrieves the lowest Transform in the DAG Path.
[out] | ReturnStatus | Status Code |
unsigned int length | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Determines the number of DAG Nodes in the Path not including the root.
[out] | ReturnStatus | status code |
MStatus extendToShape | ( | ) |
If the object at the end of this path is a transform and there is a shape node directly beneath it in the hierarchy, then the path is extended to that geometry node.
NOTE: This method will fail if there multiple shapes below the transform.
MStatus extendToShapeDirectlyBelow | ( | unsigned int | index | ) |
This method is used if the end of the path is a transform and there are shapes directly below the transform.
The shape to extend to is set by passing in an appropriate index parameter.
Use the numberOfShapesDirectlyBelow() method to determine how many shapes are below
[in] | index | contains the index of the shape to extend the path to |
MStatus numberOfShapesDirectlyBelow | ( | unsigned int & | num | ) | const |
If the object at the end of this path is a transform, this method will return the number of shapes directly below the transform.
[in] | num | on success, this parameter will be set to the number of shapes directly underneath the transform |
Push an object onto the end of the path.
The object must be a child of the object that is currently at the end of the path.
[in] | child | child object to push onto the path |
MStatus pop | ( | unsigned int | num = 1 |
) |
Pop the given number of objects off of the end of the path.
[in] | num | number of objects to pop off of the path |
unsigned int childCount | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Return the number of children that the object at the end of the path has.
[out] | ReturnStatus | status code |
Return the child object at the given index, where the parent is the object at the end of the path.
[in] | index | child's index |
[out] | ReturnStatus | status code |
Determines the inclusive matrix of the Path.
[out] | ReturnStatus | status code |
Determines the exclusive matrix of the Path.
[out] | ReturnStatus | status code |
Determines the inverse inclusive matrix of the Path.
[out] | ReturnStatus | status code |
Determines the inverse exclusive matrix of the Path.
[out] | ReturnStatus | status code |
Assigns the DAG Path on the RHS of the operator to the DAG Path on the LHS.
[in] | src | the path to be copied |
bool operator== | ( | const MDagPath & | src | ) | const |
Determines if the DAG Path on the LHS of the operator is equal to the DAG Path on the RHS.
[in] | src | The path to be compared. |
Sets this DAG Path equal to the specified DAG Path.
[in] | src | DAG Path to be copied. |
unsigned int pathCount | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Return the number of paths which make up this path.
[out] | ReturnStatus | status code |
Return the i'th path.
The zero'th path is the top-most path and must be rooted by the world. Additional paths are paths in the underworld of the object at the end of the previous path (path i-1).
[out] | path | reference to the destination path |
[in] | i | the index of the path to retrieve |
Return a string representing the full path from the root of the dag to this object.
[out] | ReturnStatus | status code |
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.
[out] | ReturnStatus | status code |
bool isInstanced | ( | MStatus * | ReturnStatus =
NULL |
) | const |
Returns true if the object at the end of the DAG path is instanced.
It is instanced if there is more than one path to the node from the top of the DAG. Each instance of the node will be drawn separately in the view, but the geometry will be shared.
[out] | ReturnStatus | status code |
unsigned int instanceNumber | ( | MStatus * | ReturnStatus =
NULL |
) | const |
For an instanced object, this returns the instance number that this path represents in the DAG.
The instance number can be used to determine which element of the world space array attributes of a DAG node to connect to get information regarding this instance.
[out] | ReturnStatus | status code |
const char * className | ( | ) | [static] |
Obsolete.
This method is obsolete.
Please use the other MDagPath::getAPathTo method instead.
Determines the Path to the specified DAG Node. The Path returned is rooted at the World. If the object is instanced and has multiple paths, then the first one that is found is returned.
[in] | node | DAG Node for which Paths are determined |
[out] | ReturnStatus | Status Code |