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, meshRemapTool.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 ()
MMatrix operator= (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
MMatrix setToIdentity ()
MMatrix setToProduct (const MMatrix &left, const MMatrix &right)
MMatrix operator+= (const MMatrix &right)
MMatrix  operator+ (const MMatrix &right) const
MMatrix operator-= (const MMatrix &right)
MMatrix  operator- (const MMatrix &right) const
MMatrix operator*= (const MMatrix &right)
MMatrix  operator* (const MMatrix &right) const
MMatrix operator*= (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.

Static Public Attributes

static const MMatrix  identity
  The identity matrix.

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® 2011 © 1997-2010 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6