C++ API Reference
MTransformationMatrix Class Reference

Transformation matrix. More...

#include <MTransformationMatrix.h>

Public Types

enum  RotationOrder {
  kInvalid, kXYZ, kYZX, kZXY,
  kXZY, kYXZ, kZYX, kLast
}
 Order of rotation. More...
 

Public Member Functions

 ~MTransformationMatrix ()
 Class Destructor.
 
 MTransformationMatrix ()
 Class Constructor.
 
 MTransformationMatrix (const MTransformationMatrix &src)
 Class Copy Constructor. More...
 
 MTransformationMatrix (const MMatrix &src)
 Class Constructor. More...
 
MTransformationMatrixoperator= (const MTransformationMatrix &src)
 Copy operator. More...
 
MTransformationMatrixoperator= (const MMatrix &src)
 Copy operator. More...
 
MMatrix asMatrix () const
 Returns the four by four matrix that describes this transformation. More...
 
MMatrix asMatrix (double percent) const
 Returns a matrix that represents the specified percentage of this transformation matrix. More...
 
MMatrix asMatrixInverse () const
 Returns the inverse of the four by four matrix that describes this transformation. More...
 
MMatrix asScaleMatrix () const
 Returns scale space matrix. More...
 
MMatrix asRotateMatrix () const
 Returns rotate space matrix. More...
 
MStatus getScale (double scale[3], MSpace::Space space) const
 Get the scale component of the transformation matrix. More...
 
MStatus setScale (const double scale[3], MSpace::Space space)
 Set the scale component of the transformation matrix. More...
 
MStatus addScale (const double scale[3], MSpace::Space space)
 Add to the scale component by scaling relative to the existing transformation. More...
 
MQuaternion rotation () const
 Returns the rotation component of the transformation matrix as a quaternion. More...
 
MTransformationMatrixrotateTo (const MQuaternion &q)
 Sets the rotation component of the transformation matrix using a quaternion. More...
 
MTransformationMatrixrotateBy (const MQuaternion &q, MSpace::Space space, MStatus *ReturnStatus=NULL)
 Adds to the rotation component of the rotation matrix by rotating relative to the existing transformation using a quaternion. More...
 
MEulerRotation eulerRotation () const
 Returns the rotation component of the transformation matrix as an euler rotation. More...
 
MTransformationMatrixrotateTo (const MEulerRotation &e)
 Sets the rotation component of the transformation matrix using an euler rotation. More...
 
MTransformationMatrixrotateBy (const MEulerRotation &e, MSpace::Space space, MStatus *ReturnStatus=NULL)
 Adds to the rotation component of the rotation matrix by rotating relative to the existing transformation using an euler rotation. More...
 
MStatus getRotationQuaternion (double &x, double &y, double &z, double &w) const
 Get the rotation component of the transformation matrix as a quaternion. More...
 
MStatus setRotationQuaternion (double x, double y, double z, double w)
 Set the rotation component of the transformation matrix using a quaternion. More...
 
MStatus addRotationQuaternion (double x, double y, double z, double w, MSpace::Space)
 Add to the rotation component by rotating relative to the existing transformation. More...
 
MStatus getRotation (double[3], RotationOrder &order) const
 Get the rotation component of the transformation matrix in radians. More...
 
MStatus setRotation (const double rotation[3], RotationOrder order)
 Set the rotation component of the transformation matrix. More...
 
MStatus addRotation (const double rotation[3], RotationOrder order, MSpace::Space)
 Add to the rotation component by rotating relative to the existing transformation. More...
 
RotationOrder rotationOrder (MStatus *ReturnStatus=NULL) const
 Returns the rotation order for the transform matrix. More...
 
MStatus reorderRotation (const RotationOrder &order)
 Reorders the x, y, and z components of the rotation of this transform. More...
 
MStatus setToRotationAxis (const MVector &axis, double rotation)
 Sets the rotation given an axis and a rotation about it. More...
 
MQuaternion rotationOrientation () const
 Returns the rotation orientation for the transformation matrix. More...
 
MTransformationMatrixsetRotationOrientation (const MQuaternion &q)
 Sets the rotation orientation for the transformation matrix. More...
 
MVector getTranslation (MSpace::Space, MStatus *ReturnStatus=NULL) const
 Returns the translation component of the translation as a vector in centimeters. More...
 
MStatus setTranslation (const MVector &vector, MSpace::Space)
 Set the translation component of the transformation matrix in centimeters. More...
 
MStatus addTranslation (const MVector &vector, MSpace::Space)
 Add to the translation component by translating relative to the existing transformation. More...
 
MStatus setShear (const double shear[3], MSpace::Space space)
 Set the shear component of the transformation matrix. More...
 
MStatus getShear (double shear[3], MSpace::Space space) const
 Get the shear component of the transformation matrix. More...
 
MStatus addShear (const double shear[3], MSpace::Space space)
 Add to the shear component by shearing relative to the existing transformation. More...
 
MPoint scalePivot (MSpace::Space, MStatus *ReturnStatus=NULL) const
 Returns the pivot around which the scale is applied. More...
 
MStatus setScalePivot (const MPoint &, MSpace::Space, bool balance)
 Set the pivot around which the scale is applied. More...
 
MVector scalePivotTranslation (MSpace::Space, MStatus *ReturnStatus=NULL) const
 Returns the scale pivot translation. More...
 
MStatus setScalePivotTranslation (const MVector &vector, MSpace::Space)
 Set the pivot translation. More...
 
MPoint rotatePivot (MSpace::Space, MStatus *ReturnStatus=NULL) const
 Returns the pivot around which the rotation is applied. More...
 
MStatus setRotatePivot (const MPoint &point, MSpace::Space, bool balance)
 Set the pivot around which the rotation is applied. More...
 
MVector rotatePivotTranslation (MSpace::Space space, MStatus *ReturnStatus=NULL) const
 Returns the rotation pivot translation. More...
 
MStatus setRotatePivotTranslation (const MVector &vector, MSpace::Space space)
 Set the pivot translation. More...
 
bool isEquivalent (const MTransformationMatrix &other, double tolerance=MTransformationMatrix_kTol) const
 Returns true if this transform matrix is equivalent to the one passed in within a certain tolerance. More...
 
bool operator== (const MTransformationMatrix &other) const
 Equality operator. More...
 
bool operator!= (const MTransformationMatrix &other) const
 Inequality operator. More...
 
MStatus getRotation (double[3], RotationOrder &order, MSpace::Space) const
 Deprecated in 2019.0 More...
 
MStatus setRotation (const double rotation[3], RotationOrder order, MSpace::Space)
 Deprecated in 2019.0 More...
 
MStatus getRotationQuaternion (double &x, double &y, double &z, double &w, MSpace::Space) const
 Deprecated in 2019.0 More...
 
MStatus setRotationQuaternion (double x, double y, double z, double w, MSpace::Space)
 Deprecated in 2019.0 More...
 
MVector translation (MSpace::Space, MStatus *ReturnStatus=NULL) const
 Deprecated in 2019.0 More...
 

Static Public Member Functions

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

Static Public Attributes

static const MTransformationMatrix identity
 The identity transformation matrix.
 

Detailed Description

Transformation matrix.

An MTransformationMatrix allows the manipulation of the individual transformation components (eg scale, rotation, shear, etc) of a four by four transformation matrix.

The transformation in the node is represented as a 4x4 transformation matrix. This class allows access to the whole matrix, or the individual components (eg scale, rotation, shear, etc) of the transformation. 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:

  • 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 objects 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 exisitng rotate transformations when moving pivot. This is used to prevent the object from moving when the objects pivot point is not at the origin and the pivot is moved. [Rt]
  • Translate translation in x, y, z axes [T]

Note that the default RotationOrder is kXYZ.

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 |
Examples:
AbcBullet/MayaTransformCollectionWriter.h, AbcImport/XformHelper.cpp, apiMeshShape/apiMeshShape.cpp, apiMeshShape/apiMeshShape.h, buildRotationNode/buildRotationNode.cpp, constraintEvaluator/constraintEvaluator.cpp, dagPoseInfoCmd/dagPoseInfoCmd.cpp, manipOverride/rockingTransform2.cpp, motionPathNode/motionPathNode.cpp, moveManip/moveManip.cpp, scanDagCmd/scanDagCmd.cpp, scanDagSyntax/scanDagSyntax.cpp, simpleFluidEmitter/simpleFluidEmitter.cpp, surfaceBumpManip/surfaceBumpManip.cpp, and transformDrawNode/transformDrawNode.cpp.

Member Enumeration Documentation

Order of rotation.

Enumerator
kInvalid 

 

kXYZ 

 

kYZX 

 

kZXY 

 

kXZY 

 

kYXZ 

 

kZYX 

 

kLast 

 

Examples:
motionPathNode/motionPathNode.cpp.

Constructor & Destructor Documentation

Class Copy Constructor.

Parameters
[in]srctransform matrix to be copied
MTransformationMatrix ( const MMatrix src)

Class Constructor.

Parameters
[in]srcmatrix to be copied

Member Function Documentation

MTransformationMatrix & operator= ( const MTransformationMatrix src)

Copy operator.

Parameters
[in]srctransform matrix to be copied
MTransformationMatrix & operator= ( const MMatrix src)

Copy operator.

Parameters
[in]srcmatrix to be copied
Returns
This transformation matrix
MMatrix asMatrix ( ) const

Returns the four by four matrix that describes this transformation.

Returns
The matrix
Examples:
apiMeshShape/apiMeshShape.cpp, buildRotationNode/buildRotationNode.cpp, and dagPoseInfoCmd/dagPoseInfoCmd.cpp.
MMatrix asMatrix ( double  percent) const

Returns a matrix that represents the specified percentage of this transformation matrix.

Parameters
[in]percentpercent of the transformation to return
Returns
The percentage matrix
MMatrix asMatrixInverse ( ) const

Returns the inverse of the four by four matrix that describes this transformation.

Returns
The matrix
MMatrix asScaleMatrix ( ) const

Returns scale space matrix.

The scale space matrix takes points from object space to the space immediately following scale and shear transformations.

Returns
The scale space matrix
MMatrix asRotateMatrix ( ) const

Returns rotate space matrix.

The rotate space matrix takes points from object space to the space immediately following the scale/shear/rotation transformations.

Returns
The rotate space matrix
MStatus getScale ( double  scale[3],
MSpace::Space  space 
) const

Get the scale component of the transformation matrix.

Parameters
[out]scalestorage for the scale component
[in]spacetransform space in which to get the scale
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus setScale ( const double  scale[3],
MSpace::Space  space 
)

Set the scale component of the transformation matrix.

Parameters
[in]scalenew scale component
[in]spacetransform space in which to perform the scale
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus addScale ( const double  scale[3],
MSpace::Space  space 
)

Add to the scale component by scaling relative to the existing transformation.

Parameters
[in]scalerelative value to scale by
[in]spacetransform space in which to perform the scale
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MQuaternion rotation ( ) const

Returns the rotation component of the transformation matrix as a quaternion.

The rotation is returned in MSpace::kTransform space.

Returns
Quaternion that is the rotation component of the transformation matrix
MTransformationMatrix & rotateTo ( const MQuaternion q)

Sets the rotation component of the transformation matrix using a quaternion.

The rotation is performed in MSpace::kTransform space.

Parameters
[in]qthe quaternion to which the rotation component of the transformation matrix should be set
Returns
A reference to the resulting transformation matrix
MTransformationMatrix & rotateBy ( const MQuaternion q,
MSpace::Space  space,
MStatus ReturnStatus = NULL 
)

Adds to the rotation component of the rotation matrix by rotating relative to the existing transformation using a quaternion.

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

Parameters
[in]qthe quaternion that indicates how much the transformation matrix will be rotated by
[in]spacethe space in which the rotation is performed
[out]ReturnStatusreturn status
Returns
A reference to the resulting transformation matrix
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid space
MEulerRotation eulerRotation ( ) const

Returns the rotation component of the transformation matrix as an euler rotation.

Returns
Euler rotation that is the rotation component of the transformation matrix
MTransformationMatrix & rotateTo ( const MEulerRotation e)

Sets the rotation component of the transformation matrix using an euler rotation.

The rotation is performed in MSpace::kTransform space.

Parameters
[in]ethe euler rotation to which the rotation component of the transformation matrix should be set
Returns
A reference to the resulting transformation matrix
MTransformationMatrix & rotateBy ( const MEulerRotation e,
MSpace::Space  space,
MStatus ReturnStatus = NULL 
)

Adds to the rotation component of the rotation matrix by rotating relative to the existing transformation using an euler rotation.

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

Parameters
[in]ethe euler rotation that indicates how much the transformation matrix will be rotated by
[in]spacethe space in which the rotation is performed
[out]ReturnStatusreturn status
Returns
A reference to the resulting transformation matrix
Status Codes:
  • MS::kSuccess operation successful
  • MS::kInvalidParameter invalid space
MStatus getRotationQuaternion ( double &  x,
double &  y,
double &  z,
double &  w 
) const

Get the rotation component of the transformation matrix as a quaternion.

The rotation is retrieved in MSpace::kTransform space.

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
Returns
Return status
Status Codes:
  • MS::kSuccess Success
MStatus setRotationQuaternion ( double  x,
double  y,
double  z,
double  w 
)

Set the rotation component of the transformation matrix using a quaternion.

The rotation is set in MSpace::kTransform space.

Parameters
[in]xx component of new quaternion
[in]yy component of new quaternion
[in]zz component of new quaternion
[in]ww component of new quaternion
Returns
Return status
Status Codes:
  • MS::kSuccess Success
MStatus addRotationQuaternion ( double  x,
double  y,
double  z,
double  w,
MSpace::Space  space 
)

Add to the rotation component by rotating relative to the existing transformation.

Rotation is a quaternion. The only valid transformation spaces for this method are MSpace::kTransform and MSpace::kPreTransform. All other spaces are treated as being equivalent to MSpace::kTransform.

Parameters
[in]xx component of quaternion
[in]yy component of quaternion
[in]zz component of quaternion
[in]ww component of quaternion
[in]spacetransformation space in which to perform the operation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus getRotation ( double  rot[3],
RotationOrder order 
) const

Get the rotation component of the transformation matrix in radians.

The rotation is retrieved in MSpace::kTransform space.

Parameters
[out]rotstorage for the rotation in radians
[out]orderstorage for the rotation order
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter NULL double array
Examples:
buildRotationNode/buildRotationNode.cpp, motionPathNode/motionPathNode.cpp, and moveManip/moveManip.cpp.
MStatus setRotation ( const double  rot[3],
RotationOrder  order 
)

Set the rotation component of the transformation matrix.

The rotation is set in MSpace::kTransform space.

Parameters
[in]rotnew rotation component in radians
[in]orderorder in which to apply rotations
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter NULL double array or rotation order is invalid
MStatus addRotation ( const double  rot[3],
RotationOrder  order,
MSpace::Space  space 
)

Add to the rotation component by rotating relative to the existing transformation.

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

Parameters
[in]rotrelative value to rotate by
[in]orderorder in which to apply the rotation components
[in]spacetransform space in which to perform the rotation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MTransformationMatrix::RotationOrder rotationOrder ( MStatus ReturnStatus = NULL) const

Returns the rotation order for the transform matrix.

That is 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
MStatus reorderRotation ( const RotationOrder order)

Reorders the x, y, and z components of the rotation of this transform.

The overall rotation will remain the same. This operation is not unique, so spin information will be lost.

Parameters
[in]ordernew order of the rotations
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid rotation order
Examples:
buildRotationNode/buildRotationNode.cpp.
MStatus setToRotationAxis ( const MVector axis,
double  rotation 
)

Sets the rotation given an axis and a rotation about it.

Parameters
[in]axisaxis to rotate about
[in]rotationrotation in radians
Returns
Return status
Status Codes:
  • MS::kSuccess Success
Examples:
buildRotationNode/buildRotationNode.cpp.
MQuaternion rotationOrientation ( ) const

Returns the rotation orientation for the transformation matrix.

The rotation orientation is the rotation that orients the local rotation space. The rotation is returned in MSpace::kTransform space.

Returns
Rotation orientation
MTransformationMatrix & setRotationOrientation ( const MQuaternion q)

Sets the rotation orientation for the transformation matrix.

The rotation orientation is the rotation that orients the local rotation space. The rotation is set in MSpace::kTransform space.

Parameters
[in]qRotation quaternion.
Returns
Rotation orientation
MVector getTranslation ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Returns the translation component of the translation as a vector in centimeters.

Parameters
[in]spacespace in which to perform the translation
[out]ReturnStatusreturn status
Returns
Translation vector in centimeters
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
Examples:
scanDagCmd/scanDagCmd.cpp, and scanDagSyntax/scanDagSyntax.cpp.
MStatus setTranslation ( const MVector vector,
MSpace::Space  space 
)

Set the translation component of the transformation matrix in centimeters.

Parameters
[in]vectornew translation component in centimeters.
[in]spacetransform space in which to perform the translation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus addTranslation ( const MVector vector,
MSpace::Space  space 
)

Add to the translation component by translating relative to the existing transformation.

Parameters
[in]vectorrelative value to translate by
[in]spacetransform space in which to perform the scale
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus setShear ( const double  shear[3],
MSpace::Space  space 
)

Set the shear component of the transformation matrix.

The shear values represent (xy, xz, yx).

Parameters
[in]shearnew shear component
[in]spacetransform space in which to perform the shear
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus getShear ( double  shear[3],
MSpace::Space  space 
) const

Get the shear component of the transformation matrix.

Parameters
[out]shearShear.
[in]spaceTransform space in which to get the shear.
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus addShear ( const double  shear[3],
MSpace::Space  space 
)

Add to the shear component by shearing relative to the existing transformation.

Parameters
[in]shearrelative value to shear by
[in]spacetransform space in which to perform the shear
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MPoint scalePivot ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Returns the pivot around which the scale is applied.

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

Set the pivot around which the scale is applied.

If balance if true, then the overall transformation matrix will not change and a compensating transformation will be added to the scale transformation to achieve this.

Parameters
[in]pointnew scale pivot
[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
MVector scalePivotTranslation ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Returns the scale pivot translation.

This is the translation that is used to compensate for the movement of the scale pivot.

Parameters
[in]spacespace in which to get the pivot
[out]ReturnStatusreturn status
Returns
Scale pivot translation
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus setScalePivotTranslation ( const MVector vector,
MSpace::Space  space 
)

Set the pivot translation.

This component is used to preserve existing scale transformations when moving pivot. This method will only be useful to advanced users.

Parameters
[in]vectornew scale pivot translation
[in]spacetransform space in which to set the scale translation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MPoint rotatePivot ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Returns the pivot around which the rotation is applied.

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

Set the pivot around which the rotation is applied.

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

Parameters
[in]pointnew rotation pivot
[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
MVector rotatePivotTranslation ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Returns the rotation pivot translation.

This is the translation that is used to compensate for the movement of the rotation pivot.

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

Set the pivot translation.

This component is used to preserve existing transformations when moving pivot. This method will only be useful to advanced users.

Parameters
[in]vectornew rotation pivot translation
[in]spacetransform space in which to set the rotation translation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
bool isEquivalent ( const MTransformationMatrix other,
double  tol = MTransformationMatrix_kTol 
) const

Returns true if this transform matrix is equivalent to the one passed in within a certain tolerance.

Parameters
[in]othertransform matrix to test against
[in]toltolerance to test using
Returns
True if equivalent
bool operator== ( const MTransformationMatrix other) const

Equality operator.

Parameters
[in]othertransform matrix to test against
Returns
True if equal
bool operator!= ( const MTransformationMatrix other) const

Inequality operator.

Parameters
[in]othertransform matrix to test against
Returns
True if not equal
MStatus getRotation ( double  rot[3],
RotationOrder order,
MSpace::Space  space 
) const

Deprecated in 2019.0

This method will be removed in a future Maya release.

Deprecated:
Use the other MTransformationMatrix::getRotation method instead.
2019.0:
Deprecated in this version.

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

Get the rotation component in radians of the transformation matrix.

Parameters
[out]rotstorage for the rotation in radians
[out]orderstorage for the rotation order
[in]spacetransform space in which to get the rotation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus setRotation ( const double  rot[3],
RotationOrder  order,
MSpace::Space  space 
)

Deprecated in 2019.0

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

Deprecated:
Use the other MTransformationMatrix::setRotation method instead.
2019.0:
Deprecated in this version.

Set the rotation component of the transformation matrix.

Parameters
[in]rotnew rotation component
[in]orderorder in which to apply rotations
[in]spacetransform space in which to perform the rotation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space or NULL double array
MStatus getRotationQuaternion ( double &  x,
double &  y,
double &  z,
double &  w,
MSpace::Space  space 
) const

Deprecated in 2019.0

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

Deprecated:
Use the other MTransformationMatrix::getRotationQuaternion method instead.
2019.0:
Deprecated in this version.

Get the rotation component of the transformation matrix as a quaternion.

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
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MStatus setRotationQuaternion ( double  x,
double  y,
double  z,
double  w,
MSpace::Space  space 
)

Deprecated in 2019.0

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

Deprecated:
Use the other MTransformationMatrix::setRotationQuaternion method instead.
2019.0:
Deprecated in this version.

Set the rotation component of the transformation matrix using a quaternion.

Parameters
[in]xx component of new quaternion
[in]yy component of new quaternion
[in]zz component of new quaternion
[in]ww component of new quaternion
[in]spacetransform space in which to perform the rotation
Returns
Return status
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
MVector translation ( MSpace::Space  space,
MStatus ReturnStatus = NULL 
) const

Deprecated in 2019.0

Returns the translation component of the translation as a vector in centimeters.

Deprecated:
Use MTransformationMatrix::getTranslation method instead.
2019.0:
Deprecated in this version.
Parameters
[in]spacespace in which to perform the translation
[out]ReturnStatusreturn status
Returns
Translation vector in centimeters
Status Codes:
  • MS::kSuccess Success
  • MS::kInvalidParameter Invalid space
const char * className ( )
static

Returns the name of this class.

Returns
Name of this class.

The documentation for this class was generated from the following files: