True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

TA::Mat33 Class Reference
[Vector Maths]

#include "TA/Common/Matrix.h"


Detailed Description

A 3 by 3 matrix.

Not fully documented. Prior knowledge of vector and matrix maths is assumed. It is left to the user to work out what the functions do from there names, parameters and return values.


Public Types

enum  RotationAxis {
  ROTATION_AXIS_X = 0,
  ROTATION_AXIS_Y,
  ROTATION_AXIS_Z
}

Public Member Functions

float &  M11 ()
float &  M12 ()
float &  M13 ()
float &  M21 ()
float &  M22 ()
float &  M23 ()
float &  M31 ()
float &  M32 ()
float &  M33 ()
const float &  M11 () const
const float &  M12 () const
const float &  M13 () const
const float &  M21 () const
const float &  M22 () const
const float &  M23 () const
const float &  M31 () const
const float &  M32 () const
const float &  M33 () const
float  GetDeterminant () const
void  Invert ()
Mat33  GetInverse () const
void  Orthogonalise ()
bool  IsOrthogonal () const
void  SetToIdentity ()
void  Transpose ()
Mat33  GetTranspose () const
void  TransposeAsInvert ()
Mat33  GetTransposeAsInverse () const
void  GetRotationAxisAndMagnitude (Vec3 &v3Axis, float &fAngle) const
void  PreRotate (RotationAxis eRotationAxis, float fAngle)
Initialisation
 Mat33 (const Mat33 &m33Value)
 Mat33 (float f11, float f12, float f13, float f21, float f22, float f23, float f31, float f32, float f33)
 Mat33 (const EulerAngles &eulerAngles)
 Mat33 (const Vec3 &v3Axis, float fAngle)
 Mat33 (RotationAxis eRotationAxis, float fAngle)
void  Initialise (const EulerAngles &eulerAngles)
void  Initialise (const Vec3 &v3Axis, float fAngle)
void  Initialise (RotationAxis eRotationAxis, float fAngle)
void  SetToLookDownVector (const Vec3 &v3Vector)
void  SetToLookAt (const Vec3 &v3Vector, const Vec3 &v3UpVector)
void  Interpolate (const Mat33 &m33A, const Mat33 &m33B, float fT)
void  Initialise (D3DXMATRIX *pD3DMatrix)
void  GetAsD3DMatrix (D3DXMATRIX *pD3DMatrix) const
Access grants
float &  operator() (int nRow, int nCol)
float  operator() (int nRow, int nCol) const
Vec3 &  operator[] (int nRow)
const Vec3 &  operator[] (int nRow) const
Assignment operators
Mat33 &  operator *= (const Mat33 &m33Value)
Mat33 &  operator/= (const Mat33 &m33Value)
Mat33 &  operator+= (const Mat33 &m33Value)
Mat33 &  operator-= (const Mat33 &m33Value)
Mat33 &  operator *= (float fValue)
Mat33 &  operator/= (float fValue)
Unary operators
const Mat33 &  operator+ () const
Mat33  operator- () const
Binary operators
Mat33  operator * (const Mat33 &m33Value) const
Mat33  operator/ (const Mat33 &m33Value) const
Mat33  operator+ (const Mat33 &m33Value) const
Mat33  operator- (const Mat33 &m33Value) const
Mat33  operator * (float fValue) const
Mat33  operator/ (float fValue) const
Comparison operators
bool  operator== (const Mat33 &m33Value) const
bool  operator!= (const Mat33 &m33Value) const

Static Public Member Functions

static float TAC_CALL  GetDeterminant (const Mat33 &m33Value)
static Mat33 TAC_CALL  GetInverse (const Mat33 &m33Value)
static Mat33 TAC_CALL  GetIdentity ()
static Mat33 TAC_CALL  GetTranspose (const Mat33 &m33Value)
static Mat33 TAC_CALL  GetTransposeAsInverse (const Mat33 &m33Value)
static void TA_FAST_CALL  Mul (const Mat33 &m33A, const Mat33 &m33B, Mat33 &m33Dst)
static void TA_FAST_CALL  MulInPlace (Mat33 &m33A, const Mat33 &m33B)
static void TA_FAST_CALL  MulByTranspose (const Mat33 &m33A, const Mat33 &m33B, Mat33 &m33Dst)
static void TA_FAST_CALL  MulByTransposeInPlace (Mat33 &m33A, const Mat33 &m33B)
static void TA_FAST_CALL  MulByTranspose (const Vec3 &v3A, const Mat33 &m33B, Vec3 &v3Dst)

Data Fields

Vec3  v3X
Vec3  v3Y
Vec3  v3Z

Friends

Mat33  operator * (float fValue, const Mat33 &m33Value)
Vec3 TA_FAST_CALL  operator * (const Vec3 &v3A, const Mat33 &m33B)
Vec3  operator/ (const Vec3 &v3A, const Mat33 &m33B)
Vec3 &  operator *= (Vec3 &v3A, const Mat33 &m33B)
Vec3 &  operator/= (Vec3 &v3A, const Mat33 &m33B)

Related Functions

(Note that these are not member functions.)

Vector Maths
 k_m33Identity


© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.