Public Member Functions | Static Public Member Functions | Friends

MDataHandle Class Reference

This reference page is linked to from the following overview topics: The Dependency Graph, Dependency Graph Plug-ins, Deformer Node Example, Threading and Maya.


Search for all occurrences

Detailed Description

Data handle for information contained in a data block.

An MDataHandle is a smart pointer into a data block (MDataBlock). A data handle corresponds to the data for a particular attribute or plug. For array data (eg CVs of a curve) use an MArrayDataHandle. To get a data handle, request it from the data block.

Some simple numeric data is handled directly by the dependency graph. If the data is more complicated (eg surface geometry), then the data handle can supply a pointer that should be given to the appropriate data function set.

MDataHandle allows the manipulation and setting of generic attributes as created by the MFnGenericAttribute class. It is possible to create numeric generic attributes using two scenarios. A plug-in may request that the generic attribute support singleton types such as MFnNumericData::kFloat or kChar. Or a plug-in may request array types such as MFnNumericData::k2Float k2Double. In the singleton case, getting and setting the attribute using MDataHandle is done with the asGeneric*() or setGeneric*() methods. In the case of the array types, the MDataHandle.data() method can be used to retrieve the MObject for the attribute and to initialize the MFnNumericData function set. A call to MDataHandle::setData() on the updated attribute must be made to pass the information back to Maya. NOTE: It is not possible to distinguish the singleton generic types from one another. There is no method that can be called to return if the singleton generic attribute is a float, char etc.

MDataHandle methods cannot be assumed to be threadsafe.

Examples:

affectsNode.cpp, animCubeNode.cpp, anisotropicShader.cpp, apiMeshCreator.cpp, apiMeshShape.cpp, apiMeshShape.h, arcLenNode.cpp, backfillShader.cpp, blindDataMesh.cpp, blindDataShader.cpp, brickShader.cpp, buildRotationNode.cpp, cellShader.cpp, cgfxShaderNode.cpp, cgfxShaderNode.h, cgfxVector.cpp, checkerShader.cpp, circleNode.cpp, clearcoat.cpp, closestPointOnCurveNode.cpp, compositingShader.cpp, contrastShader.cpp, customImagePlane.cpp, cvColorNode.cpp, cvColorShader.cpp, depthShader.cpp, displacementShader.cpp, dynExprField.cpp, flameShader.cpp, fullLoftNode.cpp, gammaShader.cpp, genericAttributeNode.cpp, geometrySurfaceConstraint.cpp, geomShader.cpp, GLSLShaderNode.cpp, GLSLShaderNode.h, hlslShader.cpp, hlslShader.h, hwColorPerVertexShader.cpp, hwDecalBumpShader_NV20.cpp, hwPhongShader.cpp, hwPhongShader.h, hwReflectBumpShader_NV20.cpp, hwRefractReflectShader_NV20.cpp, hwToonShader_NV20.cpp, hwUnlitShader.cpp, interpShader.cpp, jitterNode.cpp, lambertShader.cpp, latticeNoiseNode.cpp, lavaShader.cpp, lightShader.cpp, meshOpNode.cpp, mixtureShader.cpp, multiCurveNode.cpp, noiseShader.cpp, offsetNode.cpp, ownerEmitter.cpp, ownerEmitter.h, phongShader.cpp, pnTrianglesNode.cpp, pnTrianglesNode.h, pointOnMeshInfoNode.cpp, pointOnSubdNode.cpp, quadricShape.cpp, renderAccessNode.cpp, rockingTransform.cpp, rockingTransform.h, rockingTransformCheck.cpp, shadowMatteShader.cpp, shellNode.cpp, shiftNode.cpp, simpleEmitter.cpp, simpleEmitter.h, simpleFluidEmitter.cpp, simpleLoftNode.cpp, simpleSpring.h, sineNode.cpp, slopeShaderNode.cpp, solidCheckerShader.cpp, splitUVNode.cpp, stringFormatNode.cpp, sweptEmitter.cpp, sweptEmitter.h, testNobjectNode.cpp, torusField.cpp, torusField.h, transCircleNode.cpp, volumeShader.cpp, weightListNode.cpp, and yTwistNode.cpp.

#include <MDataHandle.h>

List of all members.

Public Member Functions

 MDataHandle ()
 Constructor for MDataHandle.
bool isNumeric () const
 Returns true if this handle is for simple numeric data.
bool isGeneric (bool &isNumeric, bool &isNull) const
 Returns true if this handle is for generic data.
MFnNumericData::Type numericType () const
 Returns the type of data represented by this handle.
MFnData::Type type () const
 Returns the type of data represented by this handle.
MTypeId typeId () const
 Returns the type of data represented by this handle as a type id.
MStatus acceptedTypeIds (MUintArray &) const
 This method returns an array of MTypeId ids that the data handle can accept.
MObject data ()
 Returns the data object from this handle.
MStatus copy (const MDataHandle &src)
 Copies the attribute from the src attribute to the attribute referenced by this handle.
void setClean ()
 Marks the data that is represented by this handle as being clean.
bool & asBool () const
 Returns the data represented by this handle in the data block.
char & asChar () const
 Returns the data represented by this handle in the data block.
unsigned char & asUChar () const
 Returns the data represented by this handle in the data block.
short & asShort () const
 Returns the data represented by this handle in the data block.
int & asLong () const
 This method is obsolete.
int & asInt () const
 Returns the data represented by this handle in the data block.
void *& asAddr () const
 Returns the data represented by this handle in the data block.
float & asFloat () const
 Returns the data represented by this handle in the data block.
double & asDouble () const
 Returns the data represented by this handle in the data block.
MDistance asDistance () const
 Returns the data represented by this handle in the data block.
MAngle asAngle () const
 Returns the data represented by this handle in the data block.
MTime asTime () const
 Returns the data represented by this handle in the data block.
short2 & asShort2 () const
 Returns the data represented by this handle in the data block.
long2 & asLong2 () const
 This method is obsolete.
int2 & asInt2 () const
 Returns the data represented by this handle in the data block.
float2 & asFloat2 () const
 Returns the data represented by this handle in the data block.
double2 & asDouble2 () const
 Returns the data represented by this handle in the data block.
short3 & asShort3 () const
 Returns the data represented by this handle in the data block.
long3 & asLong3 () const
 This method is obsolete.
int3 & asInt3 () const
 Returns the data represented by this handle in the data block.
float3 & asFloat3 () const
 Returns the data represented by this handle in the data block.
double3 & asDouble3 () const
 Returns the data represented by this handle in the data block.
MVectorasVector () const
 Returns the data represented by this handle in the data block.
MFloatVectorasFloatVector () const
 Returns the data represented by this handle in the data block.
MMatrixasMatrix () const
 Returns the data represented by this handle in the data block.
MFloatMatrixasFloatMatrix () const
 Returns the data represented by this handle in the data block.
MStringasString () const
 Returns the data represented by this handle in the data block.
MObject asNurbsCurve () const
 Returns the data represented by this handle in the data block.
MObject asNurbsSurface () const
 Returns the data represented by this handle in the data block.
MObject asMesh () const
 Returns the data represented by this handle in the data block.
MObject asSubdSurface () const
 Returns the data represented by this handle in the data block.
MObject asNurbsCurveTransformed () const
 Returns the data represented by this handle in the data block.
MObject asNurbsSurfaceTransformed () const
 Returns the data represented by this handle in the data block.
MObject asMeshTransformed () const
 Returns the data represented by this handle in the data block.
MObject asSubdSurfaceTransformed () const
 Returns the data represented by this handle in the data block.
const MMatrixgeometryTransformMatrix () const
 This method returns a reference to the local-to-world transformation matrix that can accompany a geometry data object.
MPxDataasPluginData () const
 Returns the data represented by this handle in the data block.
void set (bool)
 No script support.
void set (char)
 No script support.
void set (short)
 No script support.
void set (int)
 No script support.
void set (float)
 No script support.
void set (double)
 No script support.
void set (const MMatrix &)
 No script support.
void set (const MFloatMatrix &)
 No script support.
void set (const MVector &)
 No script support.
void set (const MFloatVector &)
 No script support.
void set (const MDistance &)
 No script support.
void set (const MAngle &)
 No script support.
void set (const MTime &)
 No script support.
void set (short, short)
 No script support.
void set (int, int)
 No script support.
void set (float, float)
 No script support.
void set (double, double)
 No script support.
void set (short, short, short)
 No script support.
void set (int, int, int)
 No script support.
void set (float, float, float)
 No script support.
void set (double, double, double)
 No script support.
void set (const MString &)
 No script support.
MStatus set (const MObject &data)
 No script support.
MStatus set (MPxData *data)
 No script support.
void setBool (bool)
 Set the data that this handle represents in the data block.
void setChar (char)
 Set the data that this handle represents in the data block.
void setShort (short)
 Set the data that this handle represents in the data block.
void setInt (int)
 Set the data that this handle represents in the data block.
void setFloat (float)
 Set the data that this handle represents in the data block.
void setDouble (double)
 Set the data that this handle represents in the data block.
void setMMatrix (const MMatrix &)
 Set the data that this handle represents in the data block.
void setMFloatMatrix (const MFloatMatrix &)
 Set the data that this handle represents in the data block.
void setMVector (const MVector &)
 Set the data that this handle represents in the data block.
void setMFloatVector (const MFloatVector &)
 Set the data that this handle represents in the data block.
void setMDistance (const MDistance &)
 Set the data that this handle represents in the data block.
void setMAngle (const MAngle &)
 Set the data that this handle represents in the data block.
void setMTime (const MTime &)
 Set the data that this handle represents in the data block.
void set2Short (short, short)
 Set the data that this handle represents in the data block.
void set2Int (int, int)
 Set the data that this handle represents in the data block.
void set2Float (float, float)
 Set the data that this handle represents in the data block.
void set2Double (double, double)
 Set the data that this handle represents in the data block.
void set3Short (short, short, short)
 Set the data that this handle represents in the data block.
void set3Int (int, int, int)
 Set the data that this handle represents in the data block.
void set3Float (float, float, float)
 Set the data that this handle represents in the data block.
void set3Double (double, double, double)
 Set the data that this handle represents in the data block.
void setString (const MString &)
 Set the data that this handle represents in the data block.
MStatus setMObject (const MObject &data)
 Set the data that this handle represents in the data block.
MStatus setMPxData (MPxData *data)
 Set the data that this handle represents in the data block.
bool asGenericBool () const
 Returns the generic data represented by this handle in the data block.
unsigned char asGenericChar () const
 Returns the generic data represented by this handle in the data block.
double asGenericDouble () const
 Returns the generic data represented by this handle in the data block.
float asGenericFloat () const
 Returns the generic data represented by this handle in the data block.
short asGenericShort () const
 Returns the generic data represented by this handle in the data block.
int asGenericInt () const
 Returns the generic data represented by this handle in the data block.
void setGenericBool (bool value, bool force)
 Set the data that this handle represents in the data block.
void setGenericChar (unsigned char value, bool force)
 Set the data that this handle represents in the data block.
void setGenericDouble (double value, bool force)
 Set the data that this handle represents in the data block.
void setGenericFloat (float value, bool force)
 Set the data that this handle represents in the data block.
void setGenericShort (short value, bool force)
 Set the data that this handle represents in the data block.
void setGenericInt (int value, bool force)
 Set the data that this handle represents in the data block.
MDataHandle child (const MPlug &plug)
 Get a handle to a child of this handle.
MDataHandle child (const MObject &attribute)
 Get a handle to a child of this handle.
MDataHandleoperator= (const MDataHandle &other)
 Assignment operator.
 MDataHandle (const MDataHandle &)
 Copy constructor.

Static Public Member Functions

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

Friends

class MDataBlock
class MArrayDataBuilder
class MArrayDataHandle
class MItGeometry

Constructor & Destructor Documentation

Constructor for MDataHandle.

Typically, data handles will be obtained from the data block (MDataBlock). A user constructed MDataHandle should not be used until a valid data handle has been assigned to it (ie. using the assignment operator).


Member Function Documentation

bool isNumeric ( ) const

Returns true if this handle is for simple numeric data.

That means that the numeric data is directly accessible through the non-generic as*() and set*() methods of this handle. For example, depending on handle initialization, the asBool() may be called but the asGenericBool() should not be called.

Returns:
Whether this handle points to simple numeric data
bool isGeneric ( bool &  isNumeric,
bool &  isNull 
) const

Returns true if this handle is for generic data.

There are 2 forms of generic data. The first is for simple data and is used if the isNumeric parameter returns true. In this case, the asGeneric*() and setGeneric*() methods of this class are used to query and set values. The second form of generic data is for more complex attribute types. As a result the type of the object must be checked and an appropriate attribute function set initialized with the object.

Parameters:
[out]isNumericreturns true if this handle is for simple generic numeric data
[out]isNullreturns true if this handle is not set
Returns:
True will be returned if this handle points to a generic attribute
Examples:
genericAttributeNode.cpp.
MFnNumericData::Type numericType ( ) const

Returns the type of data represented by this handle.

This method is only valid for data handles of simple numeric types.

Returns:
The numeric type
MFnData::Type type ( ) const

Returns the type of data represented by this handle.

Returns:
The data type
MTypeId typeId ( ) const

Returns the type of data represented by this handle as a type id.

A type id is a four character code that is used to identify the data type. If no data exists for this handle, the type id will be 0x0.

Returns:
The data type
MStatus acceptedTypeIds ( MUintArray typids) const

This method returns an array of MTypeId ids that the data handle can accept.

The MTypeId can be reconstructed using the unsigned int in id.

Parameters:
[out]typidsan unsigned int array to copy the ids to
Returns:
Status code
Status Codes:
MObject data ( )

Returns the data object from this handle.

The object returned should be used with the appropriate data function set. This method is not valid for simple numeric types.

Returns:
The data object
Examples:
apiMeshShape.cpp, cgfxVector.cpp, cvColorNode.cpp, dynExprField.cpp, latticeNoiseNode.cpp, meshOpNode.cpp, ownerEmitter.cpp, particleAttrNode.cpp, simpleFluidEmitter.cpp, splitUVNode.cpp, sweptEmitter.cpp, testNobjectNode.cpp, testNucleusNode.cpp, and torusField.cpp.
MStatus copy ( const MDataHandle src)

Copies the attribute from the src attribute to the attribute referenced by this handle.

This is the only method which can completely copy a compound attribute from one handle to another. The construct outputHandle.set (inputHandle.data()) will not work for compound or multi attributes.

Parameters:
[in]srcthe handle to the attribute to copy
Returns:
Status code
Status Codes:
void setClean ( )
bool & asBool ( ) const
char & asChar ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as a char
unsigned char & asUChar ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an unsigned char
short & asShort ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as a short integer
Examples:
apiMeshCreator.cpp, buildRotationNode.cpp, GLSLShaderNode.cpp, meshOpNode.cpp, phongShader.cpp, quadricShape.cpp, and splitUVNode.cpp.
int & asLong ( ) const
int & asInt ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as a int integer
Examples:
affectsNode.cpp, genericAttributeNode.cpp, hwColorPerVertexShader.cpp, hwPhongShader.cpp, particleAttrNode.cpp, and pnTrianglesNode.cpp.
void *& asAddr ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an address
Examples:
cvColorShader.cpp, lightShader.cpp, and phongShader.cpp.
float & asFloat ( ) const
double & asDouble ( ) const
MDistance asDistance ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an Distance
MAngle asAngle ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an MAngle
MTime asTime ( ) const

Returns the data represented by this handle in the data block.

Even though this method does not return a reference to an MTime, modifications to the MTime instance will update the contents of the handle in the data block. The method MDataHandle::setClean should be called after the data block has been modified.

Returns:
The handle's data as an MTime
Examples:
animCubeNode.cpp, latticeNoiseNode.cpp, ownerEmitter.h, simpleEmitter.h, sweptEmitter.h, testNobjectNode.cpp, and testNucleusNode.cpp.
short2 & asShort2 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of two short integers
long2 & asLong2 ( ) const

This method is obsolete.

Deprecated:
Use MDataHandle::asInt2 instead.
Returns:
The handle's data as an array of two int integers
int2 & asInt2 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of two int integers
float2 & asFloat2 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of two floats
Examples:
brickShader.cpp, checkerShader.cpp, and shiftNode.cpp.
double2 & asDouble2 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of two doubles
short3 & asShort3 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of three short integers
long3 & asLong3 ( ) const

This method is obsolete.

Deprecated:
Use MDataHandle::asInt3 instead.
Returns:
The handle's data as an array of three int integers
int3 & asInt3 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of three int integers
float3 & asFloat3 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array of three float values
Examples:
cellShader.cpp, flameShader.cpp, hwColorPerVertexShader.cpp, hwPhongShader.cpp, lavaShader.cpp, noiseShader.cpp, and solidCheckerShader.cpp.
double3 & asDouble3 ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as an array array of three doubles
Examples:
apiMeshShape.cpp, cgfxVector.cpp, ownerEmitter.h, rockingTransformCheck.cpp, simpleEmitter.h, sweptEmitter.h, and transCircleNode.cpp.
MVector & asVector ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as a vector
Examples:
buildRotationNode.cpp.
MFloatVector & asFloatVector ( ) const
MMatrix & asMatrix ( ) const

Returns the data represented by this handle in the data block.

This method is only valid for attributes created using the MFnMatrixAttribute function set.

Returns:
The handle's data as a matrix
Examples:
offsetNode.cpp, ownerEmitter.cpp, simpleEmitter.cpp, and torusField.cpp.
MFloatMatrix & asFloatMatrix ( ) const

Returns the data represented by this handle in the data block.

This method is only valid for attributes created using the MFnMatrixAttribute function set.

Returns:
The handle's data as a matrix of floats
Examples:
anisotropicShader.cpp, cellShader.cpp, flameShader.cpp, lavaShader.cpp, noiseShader.cpp, slopeShaderNode.cpp, and solidCheckerShader.cpp.
MString & asString ( ) const

Returns the data represented by this handle in the data block.

Returns:
The handle's data as a string
Examples:
cgfxShaderNode.cpp, GLSLShaderNode.cpp, hlslShader.cpp, hwColorPerVertexShader.cpp, and stringFormatNode.cpp.
MObject asNurbsCurve ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the nurbs curve function set and iterator. Even though this method does not return a reference to an MObject, modifications to the MObject instance will update the contents of the handle in the data block. The method MDataHandle::setClean should be called after the data block has been modified.

The curve returned by this method will be in local space even if the connection is supplying world space geometry. This occurs mostly for efficiency reasons. In the case of a world space geometry connection, the MObject returned by this method will also contain the world space transformation matrix. This means that world space operations may be performed on this object using the nurbs curve function set and iterator.

It is possible to get the matrix that defines the local to world transformation for this geometry using the MDataHandle::geometryTransformMatrix() method.

Returns:
The handle's data as a nurbs curve
Examples:
closestPointOnCurveNode.cpp, fullLoftNode.cpp, and simpleLoftNode.cpp.
MObject asNurbsSurface ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the nurbs surface function set and iterator. Even though this method does not return a reference to an MObject, modifications to the MObject instance will update the contents of the handle in the data block. The method MDataHandle::setClean should be called after the data block has been modified.

The surface returned by this method will be in local space even if the connection is supplying world space geometry. This occurs mostly for efficiency reasons. In the case of a world space geometry connection, the MObject returned by this method will also contain the world space transformation matrix. This means that world space operations may be performed on this object using the nurbs surface function set and iterator.

It is possible to get the matrix that defines the local to world transformation for this geometry using the MDataHandle::geometryTransformMatrix() method.

Returns:
The handle's data as a nurbs surface
Examples:
cvColorNode.cpp.
MObject asMesh ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the mesh function set and iterators. Even though this method does not return a reference to an MObject, modifications to the MObject instance will update the contents of the handle in the data block. The method MDataHandle::setClean should be called after the data block has been modified.

The surface returned by this method will be in local space even if the connection is supplying world space geometry. This occurs mostly for efficiency reasons. In the case of a world space geometry connection, the MObject returned by this method will also contain the world space transformation matrix. This means that world space operations may be performed on this object using the mesh function set and iterators.

It is possible to get the matrix that defines the local to world transformation for this geometry using the MDataHandle::geometryTransformMatrix() method.

Returns:
The handle's data as a mesh (polygonal surface)
Examples:
geometrySurfaceConstraint.cpp, meshOpNode.cpp, pointOnMeshInfoNode.cpp, shellNode.cpp, splitUVNode.cpp, and testNobjectNode.cpp.
MObject asSubdSurface ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the subdivision surface function set and iterator. Even though this method does not return a reference to an MObject, modifications to the MObject instance will update the contents of the handle in the data block. The method MDataHandle::setClean should be called after the data block has been modified.

The subdivision surface returned by this method will be in local space even if the connection is supplying world space geometry. This occurs mostly for efficiency reasons. In the case of a world space geometry connection, the MObject returned by this method will also contain the world space transformation matrix. This means that world space operations may be performed on this object using the subdivision surface function set and iterator.

It is possible to get the matrix that defines the local to world transformation for this geometry using the MDataHandle::geometryTransformMatrix() method.

Returns:
The handle's data as a subdivision surface
Examples:
pointOnSubdNode.cpp.
MObject asNurbsCurveTransformed ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the nurbs curve function set (MFnNurbsCurve) or the nurbs curve CV iterator (MItCurveCV).

If the incoming curve comes with world space transformation data, then it will be applied to the data that is returned. In other words, the curve that is returned will be the curve as it exists in world space.

The curve that is returned from this method should not be modified. This method is only provided to make it easier to take world space geometry as input.

Returns:
The handle's data as a nurbs curve
Examples:
arcLenNode.cpp, and multiCurveNode.cpp.
MObject asNurbsSurfaceTransformed ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the nurbs surface function set (MFnNurbsSurface) or the nurbs surface CV iterator (MItSurfaceCV).

If the incoming surface comes with world space transformation data, then it will be applied to the data that is returned. In other words, the surface that is returned will be the surface as it exists in world space.

The surface that is returned from this method should not be modified. This method is only provided to make it easier to take world space geometry as input.

Returns:
The handle's data as a nurbs surface
MObject asMeshTransformed ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the mesh function set (MFnMesh) or any of the mesh iterators.

If the incoming mesh comes with world space transformation data, then it will be applied to the data that is returned. In other words, the mesh that is returned will be the mesh as it exists in world space.

The mesh that is returned from this method should not be modified. This method is only provided to make it easier to take world space geometry as input.

Returns:
The handle's data as a mesh
MObject asSubdSurfaceTransformed ( ) const

Returns the data represented by this handle in the data block.

The object returned by this call may be used directly with the subdivision surface function set (MFnSubdSurface) or the subdivision surface iterators (MItSubdVertex, MItSubdFace, MItSubdEdge).

If the incoming surface comes with world space transformation data, then it will be applied to the data that is returned. In other words, the surface that is returned will be the surface as it exists in world space.

The surface that is returned from this method should not be modified. This method is only provided to make it easier to take world space geometry as input.

Returns:
The handle's data as a subdivision surface
const MMatrix & geometryTransformMatrix ( ) const

This method returns a reference to the local-to-world transformation matrix that can accompany a geometry data object.

Only use this method on handles to geometry data (curves, surfaces, and meshes).

If no local-to-world transformation information has been provided then this will be an identity matrix.

Returns:
The handle's transform data as a 4x4 matrix
MPxData * asPluginData ( ) const

Returns the data represented by this handle in the data block.

The object is returned as plugin data. This should be used to access data types defined by plugins.

Returns:
The handle's data
Examples:
apiMeshShape.cpp.
void set ( bool  val)
void set ( char  val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setChar method instead.

Parameters:
[in]valthe new value
void set ( short  val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setShort method instead.

Parameters:
[in]valthe new value
void set ( int  val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setInt method instead.

Parameters:
[in]valthe new value
void set ( float  val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setFloat method instead.

Parameters:
[in]valthe new value
void set ( double  val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setDouble method instead.

Parameters:
[in]valthe new value
void set ( const MMatrix val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block. This method is only valid for attributes created using the MFnMatrixAttribute function set.

Python Notes

This method is not available from Python. See setMMatrix method instead.

Parameters:
[in]valthe new value
void set ( const MFloatMatrix val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMFloatMatrix method instead.

Parameters:
[in]valthe new value
void set ( const MVector val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMVector method instead.

Parameters:
[in]valthe new value
void set ( const MFloatVector val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMFloatVector method instead.

Parameters:
[in]valthe new value
void set ( const MDistance val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMDistance method instead.

Parameters:
[in]valthe new value
void set ( const MAngle val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMAngle method instead.

Parameters:
[in]valthe new value
void set ( const MTime val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setMTime method instead.

Parameters:
[in]valthe new value
void set ( short  val1,
short  val2 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set2Short method instead.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set ( int  val1,
int  val2 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set2Int method instead.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set ( float  val1,
float  val2 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set2Float method instead.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set ( double  val1,
double  val2 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set2Double method instead.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set ( short  val1,
short  val2,
short  val3 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set3Short method instead.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set ( int  val1,
int  val2,
int  val3 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set3Int method instead.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set ( float  val1,
float  val2,
float  val3 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set3Float method instead.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set ( double  val1,
double  val2,
double  val3 
)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See set3Double method instead.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set ( const MString val)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block.

Python Notes

This method is not available from Python. See setString method instead.

Parameters:
[in]valthe new string value
MStatus set ( const MObject data)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block. This method assumes that the MObject is a dependency graph data object. These objects can be created using the appropriate MFn..Data function set. Note that this method cannot be used to copy compound or multi attributes from one handle to another via the construct outputHandle.set (inputHandle.data()). To copy these user defined attributes, the method MDataHandle::copy must be used.

Python Notes

This method is not available from Python. See setMObject method instead.

Parameters:
[in]datathe data object
Returns:
Status code
Status Codes:
MStatus set ( MPxData data)

No script support.

This method is not available in Python.

Set the data that this handle represents in the data block. This method takes a pointer to a user defined data object. The data block will become the new owner of the data object that you pass in. Do not delete it.

Python Notes

This method is not available from Python. See setMPxData method instead.

Parameters:
[in]datathe data object
Returns:
Status code
Status Codes:
void setBool ( bool  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setChar ( char  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setShort ( short  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setInt ( int  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setFloat ( float  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setDouble ( double  val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMMatrix ( const MMatrix val)

Set the data that this handle represents in the data block.

This method is only valid for attributes created using the MFnMatrixAttribute function set.

Parameters:
[in]valthe new value
void setMFloatMatrix ( const MFloatMatrix val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMVector ( const MVector val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMFloatVector ( const MFloatVector val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMDistance ( const MDistance val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMAngle ( const MAngle val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void setMTime ( const MTime val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new value
void set2Short ( short  val1,
short  val2 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set2Int ( int  val1,
int  val2 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set2Float ( float  val1,
float  val2 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set2Double ( double  val1,
double  val2 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the two element array
[in]val2the second value in the two element array
void set3Short ( short  val1,
short  val2,
short  val3 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set3Int ( int  val1,
int  val2,
int  val3 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set3Float ( float  val1,
float  val2,
float  val3 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void set3Double ( double  val1,
double  val2,
double  val3 
)

Set the data that this handle represents in the data block.

Parameters:
[in]val1the first value in the three element array
[in]val2the second value in the three element array
[in]val3the third value in the three element array
void setString ( const MString val)

Set the data that this handle represents in the data block.

Parameters:
[in]valthe new string value
MStatus setMObject ( const MObject data)

Set the data that this handle represents in the data block.

This method assumes that the MObject is a dependency graph data object. These objects can be created using the appropriate MFn..Data function set. Note that this method cannot be used to copy compound or multi attributes from one handle to another via the construct outputHandle.set (inputHandle.data()). To copy these user defined attributes, the method MDataHandle::copy must be used.

Parameters:
[in]datathe data object
Returns:
Status code
Status Codes:
Examples:
geometrySurfaceConstraint.cpp.
MStatus setMPxData ( MPxData data)

Set the data that this handle represents in the data block.

This method takes a pointer to a user defined data object. The data block will become the new owner of the data object that you pass in. Do not delete it.

Parameters:
[in]datathe data object
Returns:
Status code
Status Codes:
bool asGenericBool ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a bool
unsigned char asGenericChar ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a char
double asGenericDouble ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a double
float asGenericFloat ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a float
short asGenericShort ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a short
int asGenericInt ( ) const

Returns the generic data represented by this handle in the data block.

Returns:
The generic handle's data as a int
void setGenericBool ( bool  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new bool value
[in]forceforce the new type of the attribute to be bool
Examples:
genericAttributeNode.cpp.
void setGenericChar ( unsigned char  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new char value
[in]forceforce the new type of the attribute to be char
Examples:
genericAttributeNode.cpp.
void setGenericDouble ( double  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new double value
[in]forceforce the new type of the attribute to be double
Examples:
genericAttributeNode.cpp.
void setGenericFloat ( float  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new float value
[in]forceforce the new type of the attribute to be float
Examples:
genericAttributeNode.cpp.
void setGenericShort ( short  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new short value
[in]forceforce the new type of the attribute to be short
Examples:
genericAttributeNode.cpp.
void setGenericInt ( int  value,
bool  force 
)

Set the data that this handle represents in the data block.

Parameters:
[in]valuethe new int value
[in]forceforce the new type of the attribute to be int
Examples:
genericAttributeNode.cpp.
MDataHandle child ( const MPlug plug)

Get a handle to a child of this handle.

This is used if you have a handle to a compound attribute.

Parameters:
[in]plugthe plug of the child
Returns:
The data handle for the child
Examples:
anisotropicShader.cpp, backfillShader.cpp, dynExprField.cpp, geometrySurfaceConstraint.cpp, lambertShader.cpp, lightShader.cpp, phongShader.cpp, shadowMatteShader.cpp, torusField.cpp, and weightListNode.cpp.
MDataHandle child ( const MObject attribute)

Get a handle to a child of this handle.

This is used if you have a handle to a compound attribute.

Parameters:
[in]attributethe attribute of the child
Returns:
The data handle for the child
MDataHandle & operator= ( const MDataHandle other) [inline]

Assignment operator.

Parameters:
[in]otherData handle to copy from.
const char * className ( ) [static]

Returns the name of this class.

Returns:
Name of this class.

MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle
MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle MDataHandle