MFnTransform Class Reference

#include <MFnTransform.h>

Class Description

Create and access transform nodes.

The MFnTransform function set provides access to transformation DAG nodes called transforms.

DAG nodes are separated into two types, transforms and geometry nodes. All DAG nodes that are not transform nodes must exist as a child of a transform node. Only transforms provide transformation information. Transforms are also commonly used as parent nodes for the purpose of hierarchical grouping.

The transformation in the node is represented as a 4x4 transformation matrix. This function set allows access to the whole matrix, or the individual components (eg scale, rotation, shear, etc) of the transformation. The transform node is made up of many components that make up the final transformation matrix. This breakdown provides animators fine control over the animation of these parameters. Therefore, it is necessary to describe the order in which these attributes are applied to build the final matrix attribute.

A transformation matrix is composed of the following components. All components with units will be in Maya's internal units (radians for rotations and centimeters for translations):

  • Scale pivot point point around which scales are performed [Sp]
  • Scale scaling about x, y, z axes [S]
  • Shear shearing in xy, xz, yx [Sh]
  • Scale pivot translation translation introduced to preserve existing scale transformations when moving pivot. This is used to prevent the object from moving when the object's pivot point is not at the origin and a non-unit scale is applied to the object [St].
  • Rotate pivot point point about which rotations are performed [Rp]
  • Rotation orientation rotation to orient local rotation space [Ro]
  • Rotation rotation [R]
  • Rotate pivot translation translation introduced to preserve existing rotate transformations when moving pivot. This is used to prevent the object from moving when the object's pivot point is not at the origin and the pivot is moved. [Rt]
  • Translate translation in x, y, z axes [T]

The matrices are post-multiplied in Maya. For example, to transform a point P from object-space to world-space (P') you would need to post-multiply by the worldMatrix. (P' = P x WM)

The transformation matrix is then constructed as follows:

-1 -1
[Sp]x[S]x[Sh]x[Sp]x[St]x[Rp]x[Ro]x[R]x[Rp]x[Rt]x[T]

where 'x' denotes matrix multiplication and '-1' denotes matrix inversion

Sp = | 1 0 0 0 | St = | 1 0 0 0 |
| 0 1 0 0 | | 0 1 0 0 |
| 0 0 1 0 | | 0 0 1 0 |
| spx spy spz 1 | | sptx spty sptz 1 |
S = | sx 0 0 0 | Sh = | 1 0 0 0 |
| 0 sy 0 0 | | shxy 1 0 0 |
| 0 0 sz 0 | | shxz shyz 1 0 |
| 0 0 0 1 | | 0 0 0 1 |
Rp = | 1 0 0 0 | Rt = | 1 0 0 0 |
| 0 1 0 0 | | 0 1 0 0 |
| 0 0 1 0 | | 0 0 1 0 |
| rpx rpy rpz 1 | | rptx rpty rptz 1 |
Ro = AX * AY * AZ
AX = | 1 0 0 0 | AY = | cy 0 -sy 0 |
| 0 cx sx 0 | | 0 1 0 0 |
| 0 -sx cx 0 | | sy 0 cy 0 |
| 0 0 0 1 | | 0 0 0 1 |
AZ = | cz sz 0 0 | sx = sin(rax), cx = cos(rax)
| -sz cz 0 0 | sy = sin(ray), cx = cos(ray)
| 0 0 1 0 | sz = sin(raz), cz = cos(raz)
| 0 0 0 1 |
R = RX * RY * RZ (Note: order is determined by rotateOrder)
RX = | 1 0 0 0 | RY = | cy 0 -sy 0 |
| 0 cx sx 0 | | 0 1 0 0 |
| 0 -sx cx 0 | | sy 0 cy 0 |
| 0 0 0 1 | | 0 0 0 1 |
RZ = | cz sz 0 0 | sx = sin(rx), cx = cos(rx)
| -sz cz 0 0 | sy = sin(ry), cx = cos(ry)
| 0 0 1 0 | sz = sin(rz), cz = cos(rz)
| 0 0 0 1 |
T = | 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
| tx ty tz 1 |

Note that internally the Maya transform does not store the individual component values in matrices. It stores them in the data structure which makes the most sense for that component. For example, translation is stored as a vector. The accessor methods on MFnTransform provide the data in their native structure rather than as a matrix.

Additionally, each transform can save a temporary "rest position" matrix using the setRestPosition method. The rest position is not used internally by Maya. It is exclusively for use from the API as a temporary cache, which can be set and restored within a single Maya session. Note that the rest position is not saved with the scene.

+ Examples:
+ Inheritance diagram for MFnTransform:

Public Types

enum  LimitType {
  kScaleMinX, kScaleMaxX, kScaleMinY, kScaleMaxY,
  kScaleMinZ, kScaleMaxZ, kShearMinXY, kShearMaxXY,
  kShearMinXZ, kShearMaxXZ, kShearMinYZ, kShearMaxYZ,
  kRotateMinX, kRotateMaxX, kRotateMinY, kRotateMaxY,
  kRotateMinZ, kRotateMaxZ, kTranslateMinX, kTranslateMaxX,
  kTranslateMinY, kTranslateMaxY, kTranslateMinZ, kTranslateMaxZ
}
 Limit types. More...
 
- Public Types inherited from MFnDagNode
enum  { kNextPos = 0xff }
 Anonymous enum to store constant values. More...
 
enum  MObjectColorType { kUseDefaultColor = 0, kUseIndexColor, kUseRGBColor }
 Enum to set how an object is colored. More...
 
- Public Types inherited from MFnDependencyNode
enum  MAttrClass { kLocalDynamicAttr = 1, kNormalAttr, kExtensionAttr, kInvalidAttr }
 Specifies the scope of the attribute. More...
 
enum  MdgTimerState { kTimerOff, kTimerOn, kTimerUninitialized, kTimerInvalidState }
 Possible states for the node's timer. More...
 
enum  MdgTimerMetric {
  kTimerMetric_callback, kTimerMetric_compute, kTimerMetric_dirty, kTimerMetric_draw,
  kTimerMetric_fetch, kTimerMetric_callbackViaAPI, kTimerMetric_callbackNotViaAPI, kTimerMetric_computeDuringCallback,
  kTimerMetric_computeNotDuringCallback, kTimerMetrics
}
 The different timer metrics which can be queried. More...
 
enum  MdgTimerType { kTimerType_self, kTimerType_inclusive, kTimerType_count, kTimerTypes }
 The types of timers which can be queried. More...
 

Public Member Functions

virtual MFn::Type type () const
 Function set type. More...
 
virtual ~MFnTransform ()
 Destructor. More...
 
 MFnTransform ()
 Default constructor.
 
 MFnTransform (MObject &object, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
 MFnTransform (const MDagPath &object, MStatus *ret=NULL)
 Constructor. More...
 
MObject create (MObject parent=MObject::kNullObj, MStatus *ReturnStatus=nullptr)
 Creates a new transformation node. More...
 
MTransformationMatrix transformation (MStatus *ReturnStatus=nullptr) const
 Retrieve the transformation matrix represented by this transform. More...
 
MStatus set (const MTransformationMatrix &transform)
 Change this transform to equal the given matrix. More...
 
MVector getTranslation (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Retrieve the translation component of this transformation in centimeters. More...
 
MStatus setTranslation (const MVector &vec, MSpace::Space space)
 Change the translation component of this transformation. More...
 
MStatus translateBy (const MVector &vec, MSpace::Space space)
 Relatively change the translation component of this transformation. More...
 
MStatus getScale (double scale[3]) const
 Retrieve the scaling component of this transformation. More...
 
MStatus setScale (const double scale[3])
 Set the scaling component of this transformation. More...
 
MStatus scaleBy (const double scale[3])
 Relatively scale this transformation. More...
 
MPoint scalePivot (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Returns the pivot around which the scale is applied. More...
 
MStatus setScalePivot (const MPoint &point, MSpace::Space space, bool balance)
 Set the pivot around which the scale is applied in centimeters. More...
 
MVector scalePivotTranslation (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Returns the scale pivot translation in centimeters. More...
 
MStatus setScalePivotTranslation (const MVector &vec, MSpace::Space space)
 Set the scale pivot translation in centimeters. More...
 
MStatus getShear (double scale[3]) const
 Retrieve the shearing component of this transformation. More...
 
MStatus setShear (const double shear[3])
 Set the shearing component of this transformation. More...
 
MStatus shearBy (const double shear[3])
 Relatively shear this transformation. More...
 
MStatus getRotation (MQuaternion &quaternion, MSpace::Space=MSpace::kTransform) const
 Retrieve the rotation component of this transformation as a quaternion. More...
 
MStatus setRotation (const MQuaternion &quaternion, MSpace::Space=MSpace::kTransform)
 Change the rotation component of this transformation using a quaternion. More...
 
MStatus rotateBy (const MQuaternion &quaternion, MSpace::Space=MSpace::kTransform)
 Relatively change the rotation of this transformation using a quaternion. More...
 
MStatus getRotation (MEulerRotation &rotation) const
 Retrieve the rotation component of this transformation. More...
 
MStatus setRotation (const MEulerRotation &rotation)
 Change the rotation component of this transformation. More...
 
MStatus rotateBy (const MEulerRotation &rotation, MSpace::Space=MSpace::kTransform)
 Relatively change the rotation component of this transformation. More...
 
MPoint rotatePivot (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Returns the pivot about which the rotation is applied. More...
 
MStatus setRotatePivot (const MPoint &point, MSpace::Space space, bool balance)
 Set the rotate pivot in centimeters about which rotation is applied. More...
 
MVector rotatePivotTranslation (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Return the rotate pivot translation in centimeters. More...
 
MStatus setRotatePivotTranslation (const MVector &vec, MSpace::Space space)
 Set the rotate pivot translation in centimeters. More...
 
MStatus getRotationQuaternion (double &x, double &y, double &z, double &w, MSpace::Space=MSpace::kTransform) const
 Retrieve the rotation component of this transformation as a quaternion. More...
 
MStatus setRotationQuaternion (double x, double y, double z, double w, MSpace::Space=MSpace::kTransform)
 Change the rotation component of this transformation using a quaternion. More...
 
MStatus rotateByQuaternion (double x, double y, double z, double w, MSpace::Space=MSpace::kTransform)
 Relatively change the rotation of this transformation using a quaternion. More...
 
MStatus getRotation (double rotation[3], MTransformationMatrix::RotationOrder &order) const
 Retrieve the rotation component of this transformation. More...
 
MStatus setRotation (const double rotation[3], MTransformationMatrix::RotationOrder order)
 Change the rotation component of this transformation. More...
 
MStatus rotateBy (const double rotation[3], MTransformationMatrix::RotationOrder order, MSpace::Space=MSpace::kTransform)
 Relatively change the rotation component of this transformation. More...
 
MQuaternion rotateOrientation (MSpace::Space space, MStatus *ReturnStatus=nullptr) const
 Returns the rotation used to orient the local rotation space. More...
 
MStatus setRotateOrientation (const MQuaternion &quat, MSpace::Space space, bool balance)
 Set the rotation used to orient the local rotation space. More...
 
MTransformationMatrix::RotationOrder rotationOrder (MStatus *ReturnStatus=nullptr) const
 Returns the rotation order for the transform matrix - the order in which the Euler angles are applied to create the end rotation. More...
 
MStatus setRotationOrder (MTransformationMatrix::RotationOrder order, bool reorder)
 Change the rotation order for the transform - the order in which the Euler angles are applied to create the end rotation. More...
 
MTransformationMatrix restPosition (MStatus *ReturnStatus) const
 Retrieve the saved rest position of this transform. More...
 
MStatus setRestPosition (const MTransformationMatrix &matrix)
 Change the saved rest position of this transform. More...
 
MStatus resetFromRestPosition ()
 Reset the transform to its rest position. More...
 
MStatus clearRestPosition ()
 Clear the saved rest position of this transform. More...
 
bool isLimited (MFnTransform::LimitType type, MStatus *ReturnStatus=nullptr) const
 Determine if the specified limit attribute is enabled or disabled. More...
 
double limitValue (MFnTransform::LimitType type, MStatus *ReturnStatus=nullptr) const
 Determine the current value of the specified limit. More...
 
MStatus setLimit (MFnTransform::LimitType type, double value)
 Change the limit value for the specified limit type, and automatically enable the limit to be true. More...
 
MStatus enableLimit (MFnTransform::LimitType type, bool flag)
 Enable or disable the limit value for the specified limit type. More...
 
 MFnTransform (const MObject &object, MStatus *ret=NULL)
 Constructor. More...
 
MStatus getRotation (double[3], MTransformationMatrix::RotationOrder &order, MSpace::Space space) const
 This method is obsolete. More...
 
MStatus setRotation (const double[3], MTransformationMatrix::RotationOrder, MSpace::Space space)
 This method is obsolete. More...
 
MVector translation (MSpace::Space, MStatus *=nullptr) const
 This method is obsolete. More...
 
- Public Member Functions inherited from MFnDagNode
virtual ~MFnDagNode ()
 Destructor. More...
 
 MFnDagNode ()
 Class Constructor. More...
 
 MFnDagNode (MObject &object, MStatus *ret=NULL)
 This method is not available in Python. More...
 
 MFnDagNode (const MDagPath &object, MStatus *ret=NULL)
 Class Constructor. More...
 
MObject create (const MTypeId &typeId, MObject &parent=MObject::kNullObj, MStatus *ReturnStatus=NULL)
 Creates a new DAG node with the given type tag. More...
 
MObject create (const MTypeId &typeId, const MString &name, MObject &parent=MObject::kNullObj, MStatus *ReturnStatus=NULL)
 Creates a new DAG node with the given type tag. More...
 
MObject create (const MString &type, MObject &parent=MObject::kNullObj, MStatus *ReturnStatus=NULL)
 Creates a new DAG node with the given type tag. More...
 
MObject create (const MString &type, const MString &name, MObject &parent=MObject::kNullObj, MStatus *ReturnStatus=NULL)
 Creates a new DAG node with the given type tag. More...
 
unsigned int parentCount (MStatus *ReturnStatus=NULL) const
 Determines the number of parent Nodes of the Node. More...
 
MObject parent (unsigned int i, MStatus *ReturnStatus=NULL) const
 Queries the DAG Node attached to the Function Set for the parent Node corresponding to the given index. More...
 
MStatus addChild (MObject &child, unsigned int index=kNextPos, bool keepExistingParents=false)
 Makes the given DAG Node a child of the DAG Node to which this instance of the Function Set is attached. More...
 
MStatus removeChild (MObject &child)
 Removes the given DAG Node from the parent. More...
 
MStatus removeChildAt (unsigned int index)
 Removes the child at the given index from the parent. More...
 
unsigned int childCount (MStatus *ReturnStatus=NULL) const
 Determines the number of child Nodes of the Node. More...
 
MObject child (unsigned int i, MStatus *ReturnStatus=NULL) const
 Queries the DAG Node attached to the Function Set for the child Node corresponding to the given index. More...
 
MObject dagRoot (MStatus *ReturnStatus=NULL)
 Determines the root of the first DAG Path to the DAG Node attached to the Function Set. More...
 
bool hasParent (const MObject &node, MStatus *ReturnStatus=NULL) const
 Determines whether or not the given Node is a parent of the DAG Node attached to the Function Set. More...
 
bool hasChild (const MObject &node, MStatus *ReturnStatus=NULL) const
 Determines whether or not the given Node is a child of the DAG Node attached to the Function Set. More...
 
bool isChildOf (const MObject &node, MStatus *ReturnStatus=NULL) const
 Determines whether or not the DAG Node attached to the Function Set is a child of the given node. More...
 
bool isParentOf (const MObject &node, MStatus *ReturnStatus=NULL) const
 Determines whether or not the DAG Node attached to the Function Set is a parent of the given node. More...
 
bool inUnderWorld (MStatus *ReturnStatus=NULL) const
 Determines whether or not the DAG Node is an underworld node. More...
 
bool inModel (MStatus *ReturnStatus=NULL) const
 Determines whether or not the DAG Node is in the model. More...
 
bool isInstanceable (MStatus *ReturnStatus=NULL) const
 Returns true if the DAG node can be instanced, and false otherwise. More...
 
MStatus setInstanceable (const bool how)
 Sets whether or not the DAG node is instanceable. More...
 
bool isInstanced (bool indirect=true, MStatus *ReturnStatus=NULL) const
 Determines whether the DAG Node attached to the Function Set is directly or indirectly instanced. More...
 
bool isInstancedAttribute (const MObject &attr, MStatus *ReturnStatus=NULL) const
 Returns true if the specified attribute is instanced. More...
 
unsigned int instanceCount (bool total, MStatus *ReturnStatus=NULL) const
 Determines the number of times the Node attached to the Function Set is instanced. More...
 
MObject duplicate (bool instance=false, bool instanceLeaf=false, MStatus *ReturnStatus=NULL) const
 This method duplicates the DAG hierarchy rooted at the current node. More...
 
MStatus getPath (MDagPath &path) const
 Returns a DAG Path to the DAG Node attached to the Function Set. More...
 
MStatus getAllPaths (MDagPathArray &paths) const
 Determines all DAG Paths to the DAG Node attached to the Function Set. More...
 
MString fullPathName (MStatus *ReturnStatus=NULL) const
 Return a string representing the full path from the root of the dag to this object. More...
 
MString partialPathName (MStatus *ReturnStatus=NULL) const
 Return a string representing the partial path from the root of the dag to this object. More...
 
MMatrix transformationMatrix (MStatus *ReturnStatus=NULL) const
 Returns the object space transformation matrix for this DAG node. More...
 
bool isIntermediateObject (MStatus *ReturnStatus=NULL) const
 Returns true if this object is an intermediate in a geometry calculation. More...
 
MStatus setIntermediateObject (bool isIntermediate)
 Sets whether this object is an intermediate in a geometry calculation. More...
 
int objectColor (MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MStatus setObjectColor (int color)
 Sets the index for the current user defined inactive color used by the node. More...
 
bool usingObjectColor (MStatus *ReturnStatus=NULL) const
 
MStatus setUseObjectColor (bool useObjectColor)
 
MObjectColorType objectColorType (MStatus *ReturnStatus=NULL) 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. More...
 
MStatus setObjectColorType (MObjectColorType type)
 Sets whether or not the user defined inactive object color will be used. More...
 
MStatus setObjectColor (const MColor &color)
 Sets the color value for the current user defined inactive color used by the node. More...
 
MColor objectColorRGB (MStatus *ReturnStatus=NULL) const
 Determines the RGB color for the current user defined inactive color used by the node. More...
 
int objectColorIndex (MStatus *ReturnStatus=NULL) const
 Determines the index for the current user defined inactive color used by the node. More...
 
MColor hiliteColor (MStatus *ReturnStatus=NULL) const
 Determines the current hilite color used by the node. More...
 
bool usingHiliteColor (MStatus *ReturnStatus=NULL) const
 Determines whether or not the hilite color will be used for the node. More...
 
MColor dormantColor (MStatus *ReturnStatus=NULL) const
 Determines the dormant color used by this node. More...
 
MColor activeColor (MStatus *ReturnStatus=NULL) const
 Determines the active color used by this node. More...
 
bool drawOverrideEnabled (MStatus *ReturnStatus=NULL) const
 Determines whether or not draw override is turned on for this node. More...
 
bool drawOverrideIsReference (MStatus *ReturnStatus=NULL) const
 Determines whether or not Display Type of the draw override is Reference for this node. More...
 
bool drawOverrideIsTemplate (MStatus *ReturnStatus=NULL) const
 Determines whether or not Display Type of the draw override is Template for this node. More...
 
bool drawOverrideColor (MColor &color, MStatus *ReturnStatus=NULL) const
 Determines the draw override color used by this node. More...
 
MStatus getConnectedSetsAndMembers (unsigned int instanceNumber, MObjectArray &sets, MObjectArray &comps, bool renderableSetsOnly) const
 Returns all the sets connected to the specified instance of this DAG object. More...
 
MBoundingBox boundingBox (MStatus *ReturnStatus=NULL) const
 Returns the bounding box for the dag node in object space. More...
 
MDagPath dagPath (MStatus *ReturnStatus=NULL) const
 Returns the DagPath to which the Function Set is attached. More...
 
virtual MStatus setObject (const MDagPath &path)
 Attaches Function Set to the DAG Node that has the given DAG Path. More...
 
virtual MStatus setObject (MObject &object)
 Attaches Function Set to given DAG Node. More...
 
MObject model (MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
 MFnDagNode (const MObject &object, MStatus *ret=NULL)
 No script support. More...
 
virtual MStatus setObject (const MObject &object)
 No script support. More...
 
- Public Member Functions inherited from MFnDependencyNode
virtual ~MFnDependencyNode ()
 Destructor.
 
 MFnDependencyNode ()
 Default constructor.
 
 MFnDependencyNode (MObject &object, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
MObject create (const MTypeId &typeId, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type tag. More...
 
MObject create (const MTypeId &typeId, const MString &name, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type tag. More...
 
MObject create (const MString &type, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type. More...
 
MObject create (const MString &type, const MString &name, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type. More...
 
MTypeId typeId (MStatus *ReturnStatus=NULL) const
 Returns the type id of this node. More...
 
MString typeName (MStatus *ReturnStatus=NULL) const
 Returns the type name of this node. More...
 
MString name (MStatus *ReturnStatus=NULL) const
 Returns the name of this node. More...
 
MString absoluteName (MStatus *ReturnStatus=NULL) const
 Returns the absolute name of this node. More...
 
MString pluginName (MStatus *ReturnStatus=NULL) const
 Returns the name of the plug-in this MFnDependendencyNode was defined in. More...
 
MString setName (const MString &name, bool createNamespace=false, MStatus *ReturnStatus=NULL)
 Sets the name of this node. More...
 
MUuid uuid (MStatus *ReturnStatus=NULL) const
 Returns the node's UUID. More...
 
void setUuid (const MUuid &uuid, MStatus *ReturnStatus=NULL)
 Sets the node's UUID. More...
 
MStatus getConnections (MPlugArray &array) const
 Get all of the current connections to this node as an array of plugs. More...
 
unsigned int attributeCount (MStatus *ReturnStatus=NULL) const
 Returns the number of attributes that this node has. More...
 
MObject attribute (unsigned int index, MStatus *ReturnStatus=NULL) const
 Finds the attribute of this node at the given index. More...
 
MObject reorderedAttribute (unsigned int index, MStatus *ReturnStatus=NULL) const
 Some nodes, such as the various animCurve nodes, require that their attributes be set in a specific order for proper operation. More...
 
MObject attribute (const MString &attrName, MStatus *ReturnStatus=NULL) const
 Finds the attribute of this node that has the given name. More...
 
MAttrClass attributeClass (const MObject &attr, MStatus *ReturnStatus=NULL) const
 Returns the class (normal, dynamic, extension) of the specified attribute. More...
 
MStatus getAffectedAttributes (const MObject &attr, MObjectArray &affectedAttributes) const
 Returns an array of attributes that are affected by the attribute passed in. More...
 
MStatus getAffectedByAttributes (const MObject &attr, MObjectArray &affectedByAttributes) const
 Returns an array of attributes that affect the attribute passed in, attr. More...
 
MPlug findPlug (const MObject &attr, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const
 Attempt to find a plug for the given attribute. More...
 
MPlug findPlug (const MString &attrName, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const
 Attempt to find a plug for the given attribute. More...
 
MPlug findPlug (const MObject &attr, MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MPlug findPlug (const MString &attrName, MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MStatus addAttribute (const MObject &attr)
 Add a new dynamic attibute to this node. More...
 
MStatus removeAttribute (const MObject &attr)
 Remove a dynamic attribute from a node. More...
 
MPxNodeuserNode (MStatus *ReturnStatus=NULL) const
 If the function set's node is a plug-in node, then this method will extract the MPxNode pointer from it. More...
 
bool isFromReferencedFile (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node came from a referenced file. More...
 
bool isShared (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node is shared. More...
 
bool isTrackingEdits (MStatus *ReturnStatus=NULL) const
 Returns whether or not edits on the given node are being tracked by the generalized edit system. More...
 
bool hasUniqueName (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node's name is unique within the scene. More...
 
MString parentNamespace (MStatus *ReturnStatus=NULL) const
 Returns the name of the namespace in which this node resides. More...
 
bool isLocked (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node is locked. More...
 
MStatus setLocked (bool locked)
 Locks or unlocks this node. More...
 
bool isNewAttribute (const MObject &attr, MStatus *ReturnStatus=NULL) const
 Indicates whether or not the specified attribute was added to this node within the current scene. More...
 
MStatus setFlag (unsigned int flag, bool state)
 Sets the state of the specified flag for the node. More...
 
bool isFlagSet (unsigned int flag, MStatus *ReturnStatus=NULL) const
 Retrieves the current state of the specified flag for a node. More...
 
bool isDefaultNode (MStatus *ReturnStatus=NULL) const
 Returns true if the node is a default node. More...
 
MStatus setDoNotWrite (bool flag)
 Use this method to mark the "do not write" state of this node. More...
 
bool canBeWritten (MStatus *ReturnStatus=NULL) const
 Returns the do not write state of the node. More...
 
bool hasAttribute (const MString &name, MStatus *ReturnStatus=NULL) const
 Returns true if the node already has an attribute with the given name. More...
 
MObject getAliasAttr (bool force, MStatus *ReturnStatus=NULL)
 Returns the node's alias attribute, which is a special attribute used to store information about the node's attribute aliases. More...
 
bool setAlias (const MString &alias, const MString &name, const MPlug &plug, bool add=true, MStatus *ReturnStatus=NULL)
 Sets or removes an alias (i.e. More...
 
bool findAlias (const MString &alias, MObject &attrObj, MStatus *ReturnStatus=NULL) const
 Retrieves the attribute with the given alias. More...
 
bool getAliasList (MStringArray &strArray, MStatus *ReturnStatus=NULL)
 Returns a list of all attribute aliases for this node. More...
 
MString plugsAlias (const MPlug &plug, MStatus *ReturnStatus=NULL)
 Returns the alias for the plug's attribute or the empty string if that attribute has no alias. More...
 
MStatus setIcon (const MString &filename)
 Associates a custom icon with the node for display in the Maya UI. More...
 
MString icon (MStatus *ReturnStatus=NULL) const
 Returns the custom icon filename associated with the node. More...
 
MStatus getExternalContent (MExternalContentInfoTable &table) const
 Returns the external content (files) that this node depends on. More...
 
MStatus addExternalContentForFileAttr (MExternalContentInfoTable &table, const MObject &attr) const
 Adds content info to the specified table from a file path attribute. More...
 
MStatus setExternalContentForFileAttr (const MObject &attr, const MExternalContentLocationTable &table)
 Sets content info in the specified attribute from the table. More...
 
MStatus setExternalContent (const MExternalContentLocationTable &table)
 Changes the location of external content. More...
 
MString setName (const MString &name, MStatus *ReturnStatus)
 OBSOLETE FUNCTION, NO SCRIPT SUPPORT. More...
 
 MFnDependencyNode (const MObject &object, MStatus *ReturnStatus=NULL)
 NO SCRIPT SUPPORT. More...
 
bool getPlugsAlias (const MPlug &plug, MString &aliasName, MStatus *ReturnStatus=NULL)
 NO SCRIPT SUPPORT. More...
 
virtual const adsk::Data::Associationsmetadata (MStatus *ReturnStatus=NULL) const
 This method is not available in Python. More...
 
virtual MStatus setMetadata (const adsk::Data::Associations &)
 This method is not available in Python. More...
 
virtual MStatus deleteMetadata ()
 This method is not available in Python. More...
 
virtual MStatus validateMetadata (MString &errors) const
 This method is not available in Python. More...
 
MStatus dgTimerOn ()
 Indicates that this node should collect DG timing data whenever DG timing is enabled. More...
 
MStatus dgTimerOff ()
 Indicates that this node should no longer collect DG timing data when DG timing is enabled. More...
 
MdgTimerState dgTimerQueryState (MStatus *ReturnStatus=NULL)
 The function returns the current on/off state of the node's timer. More...
 
MStatus dgTimerReset ()
 The function resets the dependency graph timers and counters for this node to zero. More...
 
double dgTimer (const MdgTimerMetric timerMetric, const MdgTimerType timerType, MStatus *ReturnStatus=NULL) const
 The function returns the specified timer value for the current node. More...
 
MStatus dgCallbacks (const MdgTimerType type, MStringArray &callbackName, MDoubleArray &value)
 Node callbacks that occur when timing is enabled get logged with the node and can be queried via this method. More...
 
MStatus dgCallbackIds (const MdgTimerType type, const MString &callbackName, MCallbackIdArray &callbackId, MDoubleArray &value)
 This method provides a further breakdown of the per-callback time returned via dgCallbacks() by returning the data on a per-callbackId basis. More...
 
MStatus addAttribute (const MObject &attr, MAttrClass type)
 This method is obsolete. More...
 
MStatus removeAttribute (const MObject &attr, MAttrClass type)
 This method is obsolete. More...
 
- Public Member Functions inherited from MFnBase
virtual ~MFnBase ()
 Class Destructor. More...
 
bool hasObj (MFn::Type) const
 Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system. More...
 
bool hasObj (const MObject &) const
 Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system. More...
 
MObject object (MStatus *ReturnStatus=NULL) const
 Returns the MObject that is attached to the Function Set. More...
 

Protected Member Functions

virtual const char * className () const
 Class name. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MFnDependencyNode
static MString classification (const MString &nodeTypeName)
 Retrieves the classification string for a node type. More...
 
static unsigned int allocateFlag (const MString pluginName, MStatus *ReturnStatus=NULL)
 Allocates a node flag for sole use by the caller. More...
 
static MStatus deallocateFlag (const MString pluginName, unsigned int flag)
 Deallocates a node flag which was previously allocated by a call to allocateFlag. More...
 
static MStatus deallocateAllFlags (const MString pluginName)
 Deallocates all of the node flags which are currently allocated to the specified plugin. More...
 
static void enableDGTiming (bool enable)
 Globally enables or disables the DG node timing mechanism. More...
 
- Static Public Member Functions inherited from MFnBase
static const char * className ()
 Returns the name of this class. More...
 

Member Enumeration Documentation

enum LimitType

Limit types.

Enumerator
kScaleMinX 

 

kScaleMaxX 

 

kScaleMinY 

 

kScaleMaxY 

 

kScaleMinZ 

 

kScaleMaxZ 

 

kShearMinXY 

 

kShearMaxXY 

 

kShearMinXZ 

 

kShearMaxXZ 

 

kShearMinYZ 

 

kShearMaxYZ 

 

kRotateMinX 

 

kRotateMaxX 

 

kRotateMinY 

 

kRotateMaxY 

 

kRotateMinZ 

 

kRotateMaxZ 

 

kTranslateMinX 

 

kTranslateMaxX 

 

kTranslateMinY 

 

kTranslateMaxY 

 

kTranslateMinZ 

 

kTranslateMaxZ 

 

Constructor & Destructor Documentation

~MFnTransform ( )
virtual

Destructor.

Class Destructor.

MFnTransform ( MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:
  • MS::kSuccess if the function set is successfully attached
  • MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject
MFnTransform ( const MDagPath object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given constant MDagPath object.

Parameters
[in]objectThe const MDagPath to attach the function set to
[out]ReturnStatusThe return status
Status Codes:
  • MS::kSuccess if the function set is successfully attached
  • MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject
MFnTransform ( const MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:
  • MS::kSuccess if the function set is successfully attached
  • MS::kInvalidParameter if the MObject does not represent a valid Maya object or if the function set is not allowed to attach to this MObject

Member Function Documentation

OPENMAYA_MAJOR_NAMESPACE_OPEN const char * className ( ) const
protectedvirtual
MObject create ( MObject  parent = MObject::kNullObj,
MStatus ReturnStatus = nullptr 
)

Creates a new transformation node.

The new node is placed in the DAG.

Parameters
[in]parentthe parent of the transform to be created
[out]ReturnStatusstatus code
Returns
The newly created transform node object
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInsufficientMemory out of memory
  • MS::kInvalidParameter parent is not a DAG node
  • MS::kLicenseFailure application not licensed for attempted operation
  • MS::kFailure transform could not be added to DAG
+ Examples:
MTransformationMatrix transformation ( MStatus ReturnStatus = nullptr) const

Retrieve the transformation matrix represented by this transform.

Parameters
[out]ReturnStatusstatus code
Returns
The transformation matrix represented by this transform.
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus set ( const MTransformationMatrix transform)

Change this transform to equal the given matrix.

Parameters
[in]transformthe matrix to copy
Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MVector getTranslation ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Retrieve the translation component of this transformation in centimeters.

Parameters
[in]spacetransform space in which to get the translation
[out]ReturnStatusreturn status
Returns
Translation vector in centimeters
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus setTranslation ( const MVector vector,
MSpace::Space  space 
)

Change the translation component of this transformation.

Parameters
[in]vectorthe new translation vector in centimeters
[in]spacetransform space in which to perform the translation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
+ Examples:
MStatus translateBy ( const MVector vector,
MSpace::Space  space 
)

Relatively change the translation component of this transformation.

Parameters
[in]vectorthe relative translation vector
[in]spacetransform space in which to perform the translation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus getScale ( double  scale[3]) const

Retrieve the scaling component of this transformation.

Parameters
[out]scaleStorage for the scale of the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus setScale ( const double  scale[3])

Set the scaling component of this transformation.

Parameters
[in]scaleThe scale of the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
+ Examples:
MStatus scaleBy ( const double  scale[3])

Relatively scale this transformation.

Parameters
[in]scaleThe ratio by which to scale the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MPoint scalePivot ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Returns the pivot around which the scale is applied.

The pivot will be in centimeters.

Parameters
[in]spacespace in which to get the pivot
[out]ReturnStatusreturn status
Returns
Scale pivot point in centimeters
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
MStatus setScalePivot ( const MPoint point,
MSpace::Space  space,
bool  balance 
)

Set the pivot around which the scale is applied in centimeters.

If balance if true, then the overall transformation matrix will not change and a compensating transformation will be added to the scale pivot translation to to compensate for the new scale pivot.

Parameters
[in]pointnew scale pivot in centimeters
[in]spacetransform space in which to set the scale pivot
[in]balancewhether to balance the matrix
Returns
Return status
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MVector scalePivotTranslation ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Returns the scale pivot translation in centimeters.

This component is used as a compensation by maya when the user moves the scale pivot, or when the balance flag is set to true in the MfnTransform::setScalePivot method. The scale pivot translation serves as a compensation that allows existing transformations to be preserved when the scale pivot is modified. For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

Parameters
[in]spacespace in which to get the scale pivot translation
[out]ReturnStatusreturn status
Returns
Scale pivot translation in centimeters
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
MStatus setScalePivotTranslation ( const MVector vector,
MSpace::Space  space 
)

Set the scale pivot translation in centimeters.

This component is used internally by maya when the user moves the scale pivot, or when the balance flag is set to true in the MfnTransform::setScalePivot method. It serves as a compensation that allows existing transformations to be preserved when the scale pivot is modified. For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

Parameters
[in]vectornew scale pivot translation in centimeters
[in]spacetransform space in which to set the scale translation
Returns
Return status
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MStatus getShear ( double  shear[3]) const

Retrieve the shearing component of this transformation.

Parameters
[out]shearStorage for the shear of the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus setShear ( const double  shear[3])

Set the shearing component of this transformation.

Parameters
[in]shearThe shear of the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
+ Examples:
MStatus shearBy ( const double  shear[3])

Relatively shear this transformation.

Parameters
[in]shearThe ratio by which to shear the transform
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus getRotation ( MQuaternion quaternion,
MSpace::Space  space = MSpace::kTransform 
) const

Retrieve the rotation component of this transformation as a quaternion.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kWorld. All other spaces are treated as being equivalent to MSpace::kTransform.

Parameters
[out]quaternionthe quaternion
[in]spacetransform space in which to get the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
+ Examples:
MStatus setRotation ( const MQuaternion quaternion,
MSpace::Space  space = MSpace::kTransform 
)

Change the rotation component of this transformation using a quaternion.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kWorld. All other spaces are treated as being equivalent to MSpace::kTransform.

Parameters
[in]quaternionthe quaternion
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
+ Examples:
MStatus rotateBy ( const MQuaternion quaternion,
MSpace::Space  space = MSpace::kTransform 
)

Relatively change the rotation of this transformation using a quaternion.

Parameters
[in]quaternionthe quaternion
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus getRotation ( MEulerRotation rotation) const

Retrieve the rotation component of this transformation.

The rotation is retrieved in MSpace::kTransform space.

Parameters
[out]rotationthe euler rotation in radians
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus setRotation ( const MEulerRotation rotation)

Change the rotation component of this transformation.

The rotation is set in MSpace::kTransform space.

Parameters
[in]rotationthe euler rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus rotateBy ( const MEulerRotation rotation,
MSpace::Space  space = MSpace::kTransform 
)

Relatively change the rotation component of this transformation.

Parameters
[in]rotationthe euler rotation
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MPoint rotatePivot ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Returns the pivot about which the rotation is applied.

Parameters
[in]spacespace in which to get the pivot
[out]ReturnStatusreturn status
Returns
Rotation pivot point in centimeters
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
MStatus setRotatePivot ( const MPoint point,
MSpace::Space  space,
bool  balance 
)

Set the rotate pivot in centimeters about which rotation is applied.

If balance if true, then the overall transformation matrix will not change and a compensating transformation will be added to the rotate translate pivot to compensate for the pivot modification.

Parameters
[in]pointnew rotation pivot in centimeters
[in]spacetransform space in which to set the pivot
[in]balancewhether to balance the matrix
Returns
Return status
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MVector rotatePivotTranslation ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Return the rotate pivot translation in centimeters.

This component is used internally by maya when the user moves the rotate pivot, or when the balance flag is set to true in the MfnTransform::setRotatePivot method. It serves as a compensation that allows existing transformations to be preserved. For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

Parameters
[in]spacespace in which to get the pivot translation
[out]ReturnStatusreturn status
Returns
Scale pivot translation in centimeters
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
MStatus setRotatePivotTranslation ( const MVector vector,
MSpace::Space  space 
)

Set the rotate pivot translation in centimeters.

This component is used internally by maya when the user moves the rotate pivot, or when the balance flag is true in the MFnTransform::setRotatePivot method. It serves as a compensation that allows existing transformations to be preserved when the rotate pivot is modified. For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

Parameters
[in]vectornew rotation pivot translation in centimeters
[in]spacetransform space in which to set the rotation pivot translation
Returns
Return status
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MStatus getRotationQuaternion ( double &  x,
double &  y,
double &  z,
double &  w,
MSpace::Space  space = MSpace::kTransform 
) const

Retrieve the rotation component of this transformation as a quaternion.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kWorld. All other spaces are treated as being equivalent to MSpace::kTransform.

Parameters
[out]xstorage for the x component of the quaternion
[out]ystorage for the y component of the quaternion
[out]zstorage for the z component of the quaternion
[out]wstorage for the w component of the quaternion
[in]spacetransform space in which to get the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus setRotationQuaternion ( double  x,
double  y,
double  z,
double  w,
MSpace::Space  space = MSpace::kTransform 
)

Change the rotation component of this transformation using a quaternion.

The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kWorld. All other spaces are treated as being equivalent to MSpace::kTransform.

Parameters
[in]xx component of the quaternion
[in]yy component of the quaternion
[in]zz component of the quaternion
[in]ww component of the quaternion
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus rotateByQuaternion ( double  x,
double  y,
double  z,
double  w,
MSpace::Space  space = MSpace::kTransform 
)

Relatively change the rotation of this transformation using a quaternion.

Parameters
[in]xx component of the quaternion
[in]yy component of the quaternion
[in]zz component of the quaternion
[in]ww component of the quaternion
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus getRotation ( double  rotation[3],
MTransformationMatrix::RotationOrder order 
) const

Retrieve the rotation component of this transformation.

The rotation is retrieved in MSpace::kTransform space.

Parameters
[out]rotationstorage for the rotation components
[out]orderstorage for the order of rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus setRotation ( const double  rotation[3],
MTransformationMatrix::RotationOrder  order 
)

Change the rotation component of this transformation.

The rotation is set in MSpace::kTransform space.

Parameters
[in]rotationthe new rotation components
[in]orderthe order in which to apply the rotations
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kFailure object error
MStatus rotateBy ( const double  rotation[3],
MTransformationMatrix::RotationOrder  order,
MSpace::Space  space = MSpace::kTransform 
)

Relatively change the rotation component of this transformation.

Parameters
[in]rotationthe relative rotation components
[in]orderthe order in which to apply the rotations
[in]spacetransform space in which to perform the rotation
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MQuaternion rotateOrientation ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

Returns the rotation used to orient the local rotation space.

For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

Parameters
[in]spacespace in which to get the rotation orientation. This argument is currently ignored. The rotateOrientation is always returned in local space: MSpace::kTransform.
[out]ReturnStatusreturn status
Returns
Rotateorientation
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MStatus setRotateOrientation ( const MQuaternion quat,
MSpace::Space  space,
bool  balance 
)

Set the rotation used to orient the local rotation space.

For the precise mathematics, refer to the transformation matrix details in the description section of MFnTransform.

If balance if true, then the overall transformation matrix will not change and the rotation will be modified to achieve this.

Parameters
[in]quatnew orientation as a quaternion
[in]spacetransform space in which to set the rotateOrientation. This argument is currently ignored. The rotateOrientation always set in local space: MSpace::kTransform.
[in]balancewhether to balance the overall transformation matrix
Returns
Return status
Status Codes:
  • MS::kSuccess success
  • MS::kInvalidParameter invalid space
  • MS::kFailure object error
+ Examples:
MTransformationMatrix::RotationOrder rotationOrder ( MStatus ReturnStatus = nullptr) const

Returns the rotation order for the transform matrix - the order in which the Euler angles are applied to create the end rotation.

Parameters
[out]ReturnStatusreturn status
Returns
rotation order
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
+ Examples:
MStatus setRotationOrder ( MTransformationMatrix::RotationOrder  order,
bool  reorder 
)

Change the rotation order for the transform - the order in which the Euler angles are applied to create the end rotation.

Parameters
[in]orderthe order in which to apply rotations
[in]reorderflag indicating whether or not rotations should be reordered.
Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
+ Examples:
MTransformationMatrix restPosition ( MStatus ReturnStatus) const

Retrieve the saved rest position of this transform.

Parameters
[out]ReturnStatusstatus code
Returns
The transformation matrix equivalent to the transform's rest position. This rest position will be identity unless the "setRestPosition" method has been called.
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus setRestPosition ( const MTransformationMatrix matrix)

Change the saved rest position of this transform.

The rest position is not used internally by Maya. It is exclusively for use from the API as a temporary cache, which can be set and restored within a single Maya session. Note that the rest position is not saved with the scene.

Parameters
[in]matrixthe new rest position for this transform
Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus resetFromRestPosition ( )

Reset the transform to its rest position.

Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus clearRestPosition ( )

Clear the saved rest position of this transform.

Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
bool isLimited ( MFnTransform::LimitType  type,
MStatus ReturnStatus = nullptr 
) const

Determine if the specified limit attribute is enabled or disabled.

Parameters
[in]typetype to query limit
[out]ReturnStatusstatus code
Returns
True or false, true means the limit is enabled.
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
double limitValue ( MFnTransform::LimitType  type,
MStatus ReturnStatus = nullptr 
) const

Determine the current value of the specified limit.

Parameters
[in]typetype to query limit
[out]ReturnStatusstatus code
Returns
Current value of the specified limit as internal unit.
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus setLimit ( MFnTransform::LimitType  type,
double  value 
)

Change the limit value for the specified limit type, and automatically enable the limit to be true.

Parameters
[in]typetype to apply a limit
[in]valuenew limit value as internal unit
Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus enableLimit ( MFnTransform::LimitType  type,
bool  flag 
)

Enable or disable the limit value for the specified limit type.

Parameters
[in]typetype to apply a limit
[in]flagtrue or false to enable
Returns
status code
Status Codes:
  • MS::kSuccess success
  • MS::kFailure object error
MStatus getRotation ( double  rotation[3],
MTransformationMatrix::RotationOrder order,
MSpace::Space  space 
) const

This method is obsolete.

The transformation space argument was always treated as MSpace::kTransform regardless of the actual argument.

[From Maya 85]

Deprecated:
Use getRotation(double[3], MTransformationMatrix::RotationOrder&) instead.

Retrieve the rotation component of this transformation.

Parameters
[out]rotationStorage for the rotation components.
[out]orderStorage for the order of rotation.
[in]spaceIgnored.
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MStatus setRotation ( const double  rotation[3],
MTransformationMatrix::RotationOrder  order,
MSpace::Space  space 
)

This method is obsolete.

The transformation space argument was always treated as MSpace::kTransform regardless of the actual argument.

[From Maya 85]

Deprecated:
Use setRotation(const double[3], MTransformationMatrix::RotationOrder) instead.

Change the rotation component of this transformation.

Parameters
[in]rotationThe new rotation components.
[in]orderThe order in which to apply the rotations.
[in]spaceIgnored.
Returns
Status code
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error
MVector translation ( MSpace::Space  space,
MStatus ReturnStatus = nullptr 
) const

This method is obsolete.

Retrieve the translation component of this transformation in centimeters.

[From Maya 85]

Deprecated:
Use getTranslation(MSpace::Space, MStatus*) instead.
Parameters
[in]spaceTransform space in which to get the translation.
[out]ReturnStatusReturn status.
Returns
Translation vector in centimeters
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid transform space
  • MS::kFailure object error

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