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 ()
MFloatMatrixoperator= (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
MFloatMatrixsetToIdentity ()
MFloatMatrixsetToProduct (const MFloatMatrix &left, const MFloatMatrix &right)
MFloatMatrixoperator+= (const MFloatMatrix &right)
MFloatMatrix operator+ (const MFloatMatrix &right) const
MFloatMatrixoperator-= (const MFloatMatrix &right)
MFloatMatrix operator- (const MFloatMatrix &right) const
MFloatMatrixoperator*= (const MFloatMatrix &right)
MFloatMatrix operator* (const MFloatMatrix &right) const
MFloatMatrixoperator*= (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® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6