MMatrix Class Reference
[OpenMaya - API module for common classes]

#include <MMatrix.h>

Collaboration diagram for MMatrix:

Collaboration graph
[legend]

List of all members.


Detailed Description

A matrix math class for 4x4 matrices of doubles.

This class provides access to Maya's internal matrix math library allowing matrices to be handled easily, and in a manner compatible with internal Maya data structures.

All methods that query the matrix are threadsafe, all methods that modify the matrix are not threadsafe.

Examples:

apiMeshShape.cpp, apiMeshShape.h, apiMeshShapeUI.cpp, apiSimpleShapeUI.cpp, cgfxAttrDef.cpp, cgfxAttrDef.h, cgfxShaderNode.cpp, cgfxVector.cpp, closestPointCmd.cpp, closestPointOnNurbsSurfaceCmd.cpp, cvColorNode.cpp, D3DViewportRenderer.cpp, D3DViewportRenderer.h, dagPoseInfoCmd.cpp, GLSLShaderNode.cpp, hlslShader.cpp, hwAnisotropicShader_NV20.cpp, hwReflectBumpShader_NV20.cpp, hwReflectBumpShader_NV20.h, hwRefractReflectShader_NV20.cpp, hwToonShader_NV20.cpp, instancerListCmd.cpp, intersectOnNurbsSurfaceCmd.cpp, offsetNode.cpp, OpenGLViewportRenderer.cpp, ownerEmitter.cpp, rockingTransform.cpp, rockingTransform.h, sampleCmd.cpp, sampleParticles.cpp, simpleEmitter.cpp, simpleFluidEmitter.cpp, simpleFluidEmitter.h, squareScaleManipContext.cpp, surfaceTwist.cpp, surfaceTwistCmd.cpp, sweptEmitter.cpp, torusField.cpp, and yTwistNode.cpp.


Public Member Functions

 MMatrix ()
 MMatrix (const MMatrix &src)
 MMatrix (const double m[4][4])
 MMatrix (const float m[4][4])
 ~MMatrix ()
MMatrixoperator= (const MMatrix &)
double operator() (unsigned int row, unsigned int col) const
const double * operator[] (unsigned int row) const
MStatus get (double dest[4][4]) const
MStatus get (float dest[4][4]) const
MMatrix transpose () const
MMatrixsetToIdentity ()
MMatrixsetToProduct (const MMatrix &left, const MMatrix &right)
MMatrixoperator+= (const MMatrix &right)
MMatrix operator+ (const MMatrix &right) const
MMatrixoperator-= (const MMatrix &right)
MMatrix operator- (const MMatrix &right) const
MMatrixoperator*= (const MMatrix &right)
MMatrix operator* (const MMatrix &right) const
MMatrixoperator*= (double)
MMatrix operator* (double) const
bool operator== (const MMatrix &other) const
bool operator!= (const MMatrix &other) const
MMatrix inverse () const
MMatrix adjoint () const
MMatrix homogenize () const
double det4x4 () const
double det3x3 () const
bool isEquivalent (const MMatrix &other, double tolerance=1.0e-10) const
bool isSingular () const
double & operator() (unsigned int row, unsigned int col)
 NO SCRIPT SUPPORT.
double * operator[] (unsigned int row)
 NO SCRIPT SUPPORT.

Public Attributes

double matrix [4][4]
 the matrix data

Friends

OPENMAYA_EXPORT MMatrix operator* (double, const MMatrix &right)
 NO SCRIPT SUPPORT.
OPENMAYA_EXPORT std::ostream & operator<< (std::ostream &os, const MMatrix &m)
 NO SCRIPT SUPPORT.

Constructor & Destructor Documentation

MMatrix::MMatrix (  ) 

The default contstructor. The instance is initialized to the 4x4 identity matrix.

MMatrix::MMatrix ( const MMatrix src  ) 

The copy Constructor.

Parameters:
[in] src the instance to copy data from

MMatrix::MMatrix ( const double  src_matrix[4][4]  ) 

Initialize the instance with a 4x4 matrix of doubles

Parameters:
[in] src_matrix a 4x4 matrix of doubles

MMatrix::MMatrix ( const float  src_matrix[4][4]  ) 

Initialize the instance with a 4x4 matrix of floats

Parameters:
[in] src_matrix a 4x4 matrix of floats

MMatrix::~MMatrix (  ) 

The class destructor.


Member Function Documentation

MMatrix & MMatrix::operator= ( const MMatrix src  ) 

The assignment operator.

double MMatrix::operator() ( unsigned int  row,
unsigned int  col 
) const [inline]

Index operator. Given row and column indices, it will return the value at the specified location in the matrix.

Parameters:
[in] row index of the row to access
[in] col index of the column to access
Returns:
  • the value at the specified location in the matrix.

const double * MMatrix::operator[] ( unsigned int  row  )  const [inline]

Index operator. Returns an entire row of the matrix as an array of doubles.

Parameters:
[in] row index of the row to access
Returns:
  • double array containing the values of the specified row

MStatus MMatrix::get ( double  dest[4][4]  )  const

Fill a 4x4 matrix of doubles with the elements from the instance.

Parameters:
[out] dest the 4x4 matrix of doubles to populate
Returns:
MS::kSuccess when success, MS::kFailure otherwise
Examples:

MStatus MMatrix::get ( float  dest[4][4]  )  const

Fill a 4x4 matrix of floats with the elements from the instance.

Parameters:
[out] dest the 4x4 matrix of floats to populate
Returns:
MS::kSuccess when success, MS::kFailure otherwise

MMatrix MMatrix::transpose (  )  const

Compute and return the transpose of this instance.

Returns:
The transposed matrix
Examples:

MMatrix & MMatrix::setToIdentity (  ) 

Set this instance to the 4x4 identity matrix.

Examples:

MMatrix & MMatrix::setToProduct ( const MMatrix left,
const MMatrix right 
)

Set this instance to the inner product of the two argument matrices.

Parameters:
[in] left the left hand matrix for the operation
[in] right the right hand matrix for the operation

MMatrix & MMatrix::operator+= ( const MMatrix right  ) 

The in place matrix addition operator.

MMatrix MMatrix::operator+ ( const MMatrix right  )  const

The matrix addition operator.

MMatrix & MMatrix::operator-= ( const MMatrix right  ) 

The in place matrix subtraction operator.

MMatrix MMatrix::operator- ( const MMatrix right  )  const

The matrix subtraction operator.

MMatrix & MMatrix::operator*= ( const MMatrix right  ) 

The in place matrix multiplication operator.

MMatrix MMatrix::operator* ( const MMatrix right  )  const

The matrix multiplication operator.

MMatrix & MMatrix::operator*= ( double  factor  ) 

The in place matrix multiply by a scalar operator.

MMatrix MMatrix::operator* ( double  factor  )  const

The matrix multiply by a scalar operator.

bool MMatrix::operator== ( const MMatrix other  )  const

The matrix equality operator. The matrices must be identical.

bool MMatrix::operator!= ( const MMatrix other  )  const

The matrix inequality operator.

MMatrix MMatrix::inverse (  )  const

Compute and return the inverse of this instance.

Returns:
The inverted matrix
Examples:

MMatrix MMatrix::adjoint (  )  const

Compute and return the adjoint of this instance.

Returns:
The adjoint of this matrix

MMatrix MMatrix::homogenize (  )  const

Compute and return a homogenized version of this instance.

Returns:
The homogenized matrix

double MMatrix::det4x4 (  )  const

Compute and return the determinant of this instance

Returns:
The determinant

double MMatrix::det3x3 (  )  const

Compute and return the determinant of the upper left 3x3 submatrix of this instance

Returns:
The determinant

bool MMatrix::isEquivalent ( const MMatrix other,
double  tolerance = 1.0e-10 
) const

Determine if the given matrix is equivalent to this instance within the specified tolerance.

Parameters:
[in] other the matrix to compare to
[in] tolerance the tolerance to use during the comparison
Returns:
true if the matrices are equivalent and false otherwise

bool MMatrix::isSingular (  )  const

Determines if the given matrix is singular.

Returns:
true if the matrix is singular and false otherwise

double & MMatrix::operator() ( unsigned int  row,
unsigned int  col 
) [inline]

NO SCRIPT SUPPORT.

Index operator. Given row and column indices, it will return the value at the specified location in the matrix.

Parameters:
[in] row index of the row to access
[in] col index of the column to access
Returns:
  • the value at the specified location in the matrix.

double * MMatrix::operator[] ( unsigned int  row  )  [inline]

NO SCRIPT SUPPORT.

Index operator. Returns an entire row of the matrix as an array of doubles.

Parameters:
[in] row index of the row to access
Returns:
  • double array containing the values of the specified row


Friends And Related Function Documentation

OPENMAYA_EXPORT MMatrix operator* ( double  factor,
const MMatrix right 
) [friend]

NO SCRIPT SUPPORT.

The multiplication operator that allows the scalar value to preceed the matrix.

OPENMAYA_EXPORT std::ostream& operator<< ( std::ostream &  os,
const MMatrix m 
) [friend]

NO SCRIPT SUPPORT.

Print the contents of the given MMatrix on the given ostream. The format used is [[r11, r12, r13, r14] [r21, r22, r23, r24] [r31, r32, r33, r34] [r41, r42, r43, r44]].

Parameters:
[in] os the ostream to print to
[in] m the MMatrix whose value is to be printed
Returns:
The ostream reference, s, provided as the first parameter.


Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6