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

#include <MFloatMatrix.h>

List of all members.


Detailed Description

A matrix math class for 4x4 matrices of floats.

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.

Examples:

animInfoCmd.cpp, anisotropicShader.cpp, cellShader.cpp, D3DResourceManager.cpp, flameShader.cpp, lavaShader.cpp, noiseShader.cpp, sampleCmd.cpp, sampleParticles.cpp, slopeShaderNode.cpp, and solidCheckerShader.cpp.


Public Member Functions

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

Public Attributes

float  matrix [4][4]
  the matrix data

Friends

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

Constructor & Destructor Documentation

MFloatMatrix::MFloatMatrix (  ) 

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

MFloatMatrix::MFloatMatrix ( const MFloatMatrix src  ) 

The copy Constructor.

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

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

Initialize the instance with a 4x4 matrix of doubles

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

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

Initialize the instance with a 4x4 matrix of floats

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

MFloatMatrix::~MFloatMatrix (  ) 

The class destructor.


Member Function Documentation

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

The assignment operator.

Parameters:
[in]  src  The matrix to copy from.
Returns:
A reference to this matrix.

float MFloatMatrix::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 float * MFloatMatrix::operator[] ( unsigned int  row  )  const [inline]

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

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

MStatus MFloatMatrix::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 if successful and MS::kFailure otherwise.

MStatus MFloatMatrix::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 if successful and MS::kFailure otherwise.

MFloatMatrix MFloatMatrix::transpose (  )  const

Compute and return the transpose of this instance.

Returns:
The transposed matrix

MFloatMatrix & MFloatMatrix::setToIdentity (  ) 

Set this instance to the 4x4 identity matrix.

Returns:
A reference to this matrix.

MFloatMatrix & MFloatMatrix::setToProduct ( const MFloatMatrix left,
const MFloatMatrix 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
Returns:
A reference to the result.

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

The in place matrix addition operator.

Parameters:
[in]  right  Matrix to add.
Returns:
A reference to the result.

MFloatMatrix MFloatMatrix::operator+ ( const MFloatMatrix right  )  const

The matrix addition operator.

Parameters:
[in]  right  Matrix to add.
Returns:
Sum of both matrices.

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

The in place matrix subtraction operator.

Parameters:
[in]  right  Matrix to subtract.
Returns:
A reference to the result.

MFloatMatrix MFloatMatrix::operator- ( const MFloatMatrix right  )  const

The matrix subtraction operator.

Parameters:
[in]  right  Matrix to subtract.
Returns:
Difference of both matrices.

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

The in place matrix multiplication operator.

Parameters:
[in]  right  Matrix to multiply.
Returns:
A reference to the result.

MFloatMatrix MFloatMatrix::operator* ( const MFloatMatrix right  )  const

The matrix multiplication operator.

Parameters:
[in]  right  Matrix to multiply.
Returns:
Product of both matrices.

MFloatMatrix & MFloatMatrix::operator*= ( float  factor  ) 

The in place matrix multiply by a scalar operator.

Parameters:
[in]  factor  scaling factor.
Returns:
A reference to the result.

MFloatMatrix MFloatMatrix::operator* ( float  factor  )  const

The matrix multiply by a scalar operator.

Parameters:
[in]  factor  Scaling factor.
Returns:
Scaled matrix.

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

The matrix equality operator.

Parameters:
[in]  other  Matrix to test with.
Returns:
True is the matrices are identical.

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

The matrix inequality operator.

Parameters:
[in]  other  Matrix to test with.
Returns:
True is the matrices are not identical.

MFloatMatrix MFloatMatrix::inverse (  )  const

Compute and return the inverse of this instance.

Returns:
The inverted matrix

MFloatMatrix MFloatMatrix::adjoint (  )  const

Compute and return the adjoint of this instance.

Returns:
The adjoint of this matrix

MFloatMatrix MFloatMatrix::homogenize (  )  const

Compute and return a homogenized version of this instance.

Returns:
The homogenized matrix

float MFloatMatrix::det4x4 (  )  const

Compute and return the determinant of this instance.

Returns:
The determinant

float MFloatMatrix::det3x3 (  )  const

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

Returns:
The determinant

bool MFloatMatrix::isEquivalent ( const MFloatMatrix other,
float  tolerance = 1.0e-5F  
) 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

float & MFloatMatrix::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.

float * MFloatMatrix::operator[] ( unsigned int  row  )  [inline]

NO SCRIPT SUPPORT.

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

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

Friends And Related Function Documentation

OPENMAYA_EXPORT MFloatMatrix operator* ( float  factor,
const MFloatMatrix right  
) [friend]

NO SCRIPT SUPPORT.

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

Parameters:
[in]  factor  Scaling factor.
[in]  right  Matrix to multiply.
Returns:
Scaled matrix.

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

NO SCRIPT SUPPORT.

Print the contents of the given MFloatMatrix 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 MFloatMatrix 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