Public Member Functions | Static Public Member Functions | Public Attributes | Friends

MFloatMatrix Class Reference

Search for all occurrences

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, cgfxShaderNode.cpp, D3DResourceManager.cpp, flameShader.cpp, footPrintNode.cpp, hwColorPerVertexShader.cpp, hwPhongShader.cpp, lavaShader.cpp, noiseShader.cpp, sampleCmd.cpp, sampleParticles.cpp, slopeShaderNode.cpp, and solidCheckerShader.cpp.

#include <MFloatMatrix.h>

List of all members.

Public Member Functions

  MFloatMatrix ()
  The default contstructor.
  MFloatMatrix (const MFloatMatrix &src)
  The copy Constructor.
  MFloatMatrix (const double m[4][4])
  Initialize the instance with a 4x4 matrix of doubles.
  MFloatMatrix (const float m[4][4])
  Initialize the instance with a 4x4 matrix of floats.
  ~MFloatMatrix ()
  The class destructor.
MFloatMatrix operator= (const MFloatMatrix &)
  The assignment operator.
float  operator() (unsigned int row, unsigned int col) const
  Index operator.
const float *  operator[] (unsigned int row) const
  Index operator.
MStatus  get (double dest[4][4]) const
  Fill a 4x4 matrix of doubles with the elements from the instance.
MStatus  get (float dest[4][4]) const
  Fill a 4x4 matrix of floats with the elements from the instance.
MFloatMatrix  transpose () const
  Compute and return the transpose of this instance.
MFloatMatrix setToIdentity ()
  Set this instance to the 4x4 identity matrix.
MFloatMatrix setToProduct (const MFloatMatrix &left, const MFloatMatrix &right)
  Set this instance to the inner product of the two argument matrices.
MFloatMatrix operator+= (const MFloatMatrix &right)
  The in place matrix addition operator.
MFloatMatrix  operator+ (const MFloatMatrix &right) const
  The matrix addition operator.
MFloatMatrix operator-= (const MFloatMatrix &right)
  The in place matrix subtraction operator.
MFloatMatrix  operator- (const MFloatMatrix &right) const
  The matrix subtraction operator.
MFloatMatrix operator*= (const MFloatMatrix &right)
  The in place matrix multiplication operator.
MFloatMatrix  operator* (const MFloatMatrix &right) const
  The matrix multiplication operator.
MFloatMatrix operator*= (float)
  The in place matrix multiply by a scalar operator.
MFloatMatrix  operator* (float) const
  The matrix multiply by a scalar operator.
bool  operator== (const MFloatMatrix &other) const
  The matrix equality operator.
bool  operator!= (const MFloatMatrix &other) const
  The matrix inequality operator.
MFloatMatrix  inverse () const
  Compute and return the inverse of this instance.
MFloatMatrix  adjoint () const
  Compute and return the adjoint of this instance.
MFloatMatrix  homogenize () const
  Compute and return a homogenized version of this instance.
float  det4x4 () const
  Compute and return the determinant of this instance.
float  det3x3 () const
  Compute and return the determinant of the upper left 3x3 submatrix of this instance.
bool  isEquivalent (const MFloatMatrix &other, float tolerance=MFloatMatrix_kTol) const
  Determine if the given matrix is equivalent to this instance within the specified tolerance.
float &  operator() (unsigned int row, unsigned int col)
  NO SCRIPT SUPPORT.
float *  operator[] (unsigned int row)
  NO SCRIPT SUPPORT.

Static Public Member Functions

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

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

The default contstructor.

The instance is initialized to the 4x4 identity matrix.

MFloatMatrix ( const MFloatMatrix src )

The copy Constructor.

Parameters:
[in] src the instance to copy data from
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 ( const float  src_matrix[4][4] )

Initialize the instance with a 4x4 matrix of floats.

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

Member Function Documentation

MFloatMatrix & operator= ( const MFloatMatrix src )

The assignment operator.

Parameters:
[in] src The matrix to copy from.
Returns:
A reference to this matrix.
float 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 * 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 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.
Examples:
cgfxShaderNode.cpp.
MStatus 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 transpose ( ) const

Compute and return the transpose of this instance.

Returns:
The transposed matrix
MFloatMatrix & setToIdentity ( )

Set this instance to the 4x4 identity matrix.

Returns:
A reference to this matrix.
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 & operator+= ( const MFloatMatrix right )

The in place matrix addition operator.

Parameters:
[in] right Matrix to add.
Returns:
A reference to the result.
MFloatMatrix operator+ ( const MFloatMatrix right ) const

The matrix addition operator.

Parameters:
[in] right Matrix to add.
Returns:
Sum of both matrices.
MFloatMatrix & operator-= ( const MFloatMatrix right )

The in place matrix subtraction operator.

Parameters:
[in] right Matrix to subtract.
Returns:
A reference to the result.
MFloatMatrix operator- ( const MFloatMatrix right ) const

The matrix subtraction operator.

Parameters:
[in] right Matrix to subtract.
Returns:
Difference of both matrices.
MFloatMatrix & operator*= ( const MFloatMatrix right )

The in place matrix multiplication operator.

Parameters:
[in] right Matrix to multiply.
Returns:
A reference to the result.
MFloatMatrix operator* ( const MFloatMatrix right ) const

The matrix multiplication operator.

Parameters:
[in] right Matrix to multiply.
Returns:
Product of both matrices.
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 operator* ( float  factor ) const

The matrix multiply by a scalar operator.

Parameters:
[in] factor Scaling factor.
Returns:
Scaled matrix.
bool operator== ( const MFloatMatrix other ) const

The matrix equality operator.

Parameters:
[in] other Matrix to test with.
Returns:
True is the matrices are identical.
bool 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 inverse ( ) const

Compute and return the inverse of this instance.

Returns:
The inverted matrix
Examples:
cgfxShaderNode.cpp.
MFloatMatrix adjoint ( ) const

Compute and return the adjoint of this instance.

Returns:
The adjoint of this matrix
MFloatMatrix homogenize ( ) const

Compute and return a homogenized version of this instance.

Returns:
The homogenized matrix
float det4x4 ( ) const

Compute and return the determinant of this instance.

Returns:
The determinant
float det3x3 ( ) const

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

Returns:
The determinant
bool isEquivalent ( const MFloatMatrix other,
float  tolerance = MFloatMatrix_kTol 
) 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 & 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 * 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
const char * className ( ) [static]

Returns the name of this class.

Returns:
The name of this class.

Friends And Related Function Documentation

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

NO SCRIPT SUPPORT.

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.

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.

MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix
MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix MFloatMatrix