SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
Public Member Functions | Private Attributes | Friends | List of all members
deMatrix3 Class Reference

3x3 matrix classThis is a C++ wrapper class of deMatrix3f. More...

#include <TaoDeMatrix3.h>

Public Member Functions

 deMatrix3 ()
 
 operator deFloat * ()
 
 operator const deFloat * () const
 
deFloat * operator[] (const deInt row)
 
const deFloat * operator[] (const deInt row) const
 
deFloat & elementAt (const deInt i, const deInt j)
 
const deFloat & elementAt (const deInt i, const deInt j) const
 
DE_MATH_API void operator= (const deMatrix3 &m)
 this = m More...
 
DE_MATH_API void zero ()
 this = zero matrix More...
 
DE_MATH_API void identity ()
 this = identity matrix More...
 
DE_MATH_API void negate (const deMatrix3 &m)
 this = -m More...
 
DE_MATH_API void add (const deMatrix3 &m1, const deMatrix3 &m2)
 this = m1 + m2 More...
 
DE_MATH_API void subtract (const deMatrix3 &m1, const deMatrix3 &m2)
 this = m1 - m2 More...
 
DE_MATH_API void multiply (const deMatrix3 &m1, const deMatrix3 &m2)
 this = m1 * m2 More...
 
DE_MATH_API void transposedMultiply (const deMatrix3 &m1, const deMatrix3 &m2)
 this = m1^T * m2 More...
 
DE_MATH_API void multiplyTransposed (const deMatrix3 &m1, const deMatrix3 &m2)
 this = m1 * m2^T More...
 
DE_MATH_API void multiply (const deMatrix3 &m, const deFloat s)
 this = m1 * m2^T More...
 
DE_MATH_API void operator+= (const deMatrix3 &m)
 this += m More...
 
DE_MATH_API void operator-= (const deMatrix3 &m)
 this -= m More...
 
DE_MATH_API void operator*= (const deFloat s)
 this *= s More...
 
DE_MATH_API void diagonal (const deFloat x, const deFloat y, const deFloat z)
 diag(this) = (x, y, z), offdiag(this) = 0 More...
 
DE_MATH_API void diagonal (const deVector3 &v)
 diag(this) = v, offdiag(this) = 0 More...
 
DE_MATH_API deFloat det () const
 
DE_MATH_API void inverseDet (const deMatrix3 &m)
 this = m^-1 using determinent More...
 
DE_MATH_API void inverseDetSPD (const deMatrix3 &m)
 this = m^-1 using determinent where m is SPD More...
 
DE_MATH_API void ludecomp (const deMatrix3 &m)
 this = LU decomposition of m More...
 
DE_MATH_API void transpose (const deMatrix3 &m)
 this = m^T More...
 
DE_MATH_API void multiplyTransposed (const deVector3 &v1, const deVector3 &v2)
 this = v1 * v2^T More...
 
DE_MATH_API void crossMultiply (const deVector3 &v, const deMatrix3 &m)
 this = (v x) * m More...
 
DE_MATH_API void cross (const deVector3 &v)
 this = (v x) More...
 
DE_MATH_API void multiplyCross (const deMatrix3 &m, const deVector3 &v)
 this = m * (v x) More...
 
Rotation matrix only
DE_MATH_API void eulerXYZ (const deFloat x, const deFloat y, const deFloat z)
 this = X-Y-Z Euler angles More...
 
DE_MATH_API void eulerZYX (const deFloat x, const deFloat y, const deFloat z)
 this = Z-Y-X Euler angles More...
 
DE_MATH_API void set (const deQuaternion &q)
 this = q More...
 
DE_MATH_API void set (const deInt axis, const deFloat angle)
 this = rotation matrix of axis-angle representation More...
 
DE_MATH_API void set (const deVector3 &axis, const deFloat angle)
 this = rotation matrix of axis-angle representation More...
 
DE_MATH_API void set (const deFloat a0, const deFloat a1, const deFloat a2, const deFloat a3, const deFloat a4, const deFloat a5, const deFloat a6, const deFloat a7, const deFloat a8)
 this = [a0 ... a8] More...
 

Private Attributes

deFloat _data [DE_MATRIX3_ROW][DE_MATRIX3_COL]
 

Friends

class deVector3
 
class deQuaternion
 

Detailed Description

3x3 matrix class

This is a C++ wrapper class of deMatrix3f.

Remarks
this matrix is also used as a rotation matrix in deTransformation.
See Also
deMatrix3f.h, deQuaternion, deTransform

Constructor & Destructor Documentation

deMatrix3::deMatrix3 ( )
inline

default ctor zeros all elements

Member Function Documentation

DE_MATH_API void deMatrix3::add ( const deMatrix3 m1,
const deMatrix3 m2 
)

this = m1 + m2

DE_MATH_API void deMatrix3::cross ( const deVector3 v)

this = (v x)

DE_MATH_API void deMatrix3::crossMultiply ( const deVector3 v,
const deMatrix3 m 
)

this = (v x) * m

DE_MATH_API deFloat deMatrix3::det ( ) const
Returns
det(this)
DE_MATH_API void deMatrix3::diagonal ( const deFloat  x,
const deFloat  y,
const deFloat  z 
)

diag(this) = (x, y, z), offdiag(this) = 0

DE_MATH_API void deMatrix3::diagonal ( const deVector3 v)

diag(this) = v, offdiag(this) = 0

deFloat& deMatrix3::elementAt ( const deInt  i,
const deInt  j 
)
inline
Returns
this[i][j]
const deFloat& deMatrix3::elementAt ( const deInt  i,
const deInt  j 
) const
inline
Returns
this[i][j]
DE_MATH_API void deMatrix3::eulerXYZ ( const deFloat  x,
const deFloat  y,
const deFloat  z 
)

this = X-Y-Z Euler angles

DE_MATH_API void deMatrix3::eulerZYX ( const deFloat  x,
const deFloat  y,
const deFloat  z 
)

this = Z-Y-X Euler angles

DE_MATH_API void deMatrix3::identity ( )

this = identity matrix

DE_MATH_API void deMatrix3::inverseDet ( const deMatrix3 m)

this = m^-1 using determinent

DE_MATH_API void deMatrix3::inverseDetSPD ( const deMatrix3 m)

this = m^-1 using determinent where m is SPD

DE_MATH_API void deMatrix3::ludecomp ( const deMatrix3 m)

this = LU decomposition of m

DE_MATH_API void deMatrix3::multiply ( const deMatrix3 m1,
const deMatrix3 m2 
)

this = m1 * m2

DE_MATH_API void deMatrix3::multiply ( const deMatrix3 m,
const deFloat  s 
)

this = m1 * m2^T

DE_MATH_API void deMatrix3::multiplyCross ( const deMatrix3 m,
const deVector3 v 
)

this = m * (v x)

DE_MATH_API void deMatrix3::multiplyTransposed ( const deMatrix3 m1,
const deMatrix3 m2 
)

this = m1 * m2^T

DE_MATH_API void deMatrix3::multiplyTransposed ( const deVector3 v1,
const deVector3 v2 
)

this = v1 * v2^T

DE_MATH_API void deMatrix3::negate ( const deMatrix3 m)

this = -m

deMatrix3::operator const deFloat * ( ) const
inline
Note
BEWARE that the underlying data is not necessarily 3x3, the actual dimensions depend on the precompiler switches in TaoDeMath.h! Thus, it is more portable to use elementAt() for accessing the matrix elements.
deMatrix3::operator deFloat * ( )
inline
Note
BEWARE that the underlying data is not necessarily 3x3, the actual dimensions depend on the precompiler switches in TaoDeMath.h! Thus, it is more portable to use elementAt() for accessing the matrix elements.
DE_MATH_API void deMatrix3::operator*= ( const deFloat  s)

this *= s

DE_MATH_API void deMatrix3::operator+= ( const deMatrix3 m)

this += m

DE_MATH_API void deMatrix3::operator-= ( const deMatrix3 m)

this -= m

DE_MATH_API void deMatrix3::operator= ( const deMatrix3 m)

this = m

deFloat* deMatrix3::operator[] ( const deInt  row)
inline
Returns
row
const deFloat* deMatrix3::operator[] ( const deInt  row) const
inline
Returns
row
DE_MATH_API void deMatrix3::set ( const deQuaternion q)

this = q

DE_MATH_API void deMatrix3::set ( const deInt  axis,
const deFloat  angle 
)

this = rotation matrix of axis-angle representation

DE_MATH_API void deMatrix3::set ( const deVector3 axis,
const deFloat  angle 
)

this = rotation matrix of axis-angle representation

DE_MATH_API void deMatrix3::set ( const deFloat  a0,
const deFloat  a1,
const deFloat  a2,
const deFloat  a3,
const deFloat  a4,
const deFloat  a5,
const deFloat  a6,
const deFloat  a7,
const deFloat  a8 
)

this = [a0 ... a8]

DE_MATH_API void deMatrix3::subtract ( const deMatrix3 m1,
const deMatrix3 m2 
)

this = m1 - m2

DE_MATH_API void deMatrix3::transpose ( const deMatrix3 m)

this = m^T

DE_MATH_API void deMatrix3::transposedMultiply ( const deMatrix3 m1,
const deMatrix3 m2 
)

this = m1^T * m2

DE_MATH_API void deMatrix3::zero ( )

this = zero matrix


The documentation for this class was generated from the following files: