Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
C4x4TMatrix< TYPE > Class Template Reference

The class defines a 4x4 row major order matrix. More...

Detailed Description

template<class TYPE>
class C4x4TMatrix< TYPE >

The class defines a 4x4 row major order matrix.

Template Parameters
TYPEcan be float (C4x4Matrix or C4x4MatrixF) or double (C4x4MatrixD)

#include <4x4Matrix.h>

Public Member Functions

 C4x4TMatrix (bool init)
 
template<class TYPE2 >
 C4x4TMatrix (const C4x4TMatrix< TYPE2 > &matrix)
 
template<class TYPE2 >
 C4x4TMatrix (const TYPE2 *values, bool rotate)
 
 C4x4TMatrix (const CQuaternion &quat)
 Init the matrix from a CQuaternion.
 
void Init ()
 
template<class TYPE2 >
void LoadMatrix (const TYPE2 *matrix)
 
template<class TYPE2 >
void SaveMatrix (TYPE2 *matrix) const
 
bool IsIdentity (double precision=FLOAT_EPSILON2) const
 Check that matrix is Identity (FLOAT_EPSILON3 limit)
 
bool IsSimilar (const C4x4TMatrix< TYPE > &compmat, double precision=FLOAT_EPSILON2) const
 Check that both matrix are similar (FLOAT_EPSILON2 limit by default)
 
bool IsAnormal () const
 Check some validity about the matrix (inf / nan values...)
 
virtual void Serialize (CXArchive &ar)
 
template<class TYPE2 >
C4DTVector< TYPE2operator* (const C4DTVector< TYPE2 > &) const
 
void operator*= (TYPE value)
 
C4x4TMatrixoperator*= (const C4x4TMatrix &matrix1)
 
C4x4TMatrix operator* (const C4x4TMatrix &) const
 
bool operator== (const C4x4TMatrix &) const
 
bool operator!= (const C4x4TMatrix &) const
 
C4DTVector< TYPEMult (double, double, double) const
 
C4x4TMatrixoperator= (const C4x4TMatrix &)
 
template<class TYPE2 >
C4x4TMatrixoperator= (const C4x4TMatrix< TYPE2 > &)
 
C4x4TMatrixoperator= (const CQuaternion &quaternion)
 
void operator= (const TYPE *newmatrix)
 
void InitTranslation (double, double, double)
 
template<class TYPE2 >
void InitTranslation (const C3DTVector< TYPE2 > &vect)
 
void InitTranslation (const C4x4TMatrix< TYPE > &matrix)
 
void NoTranslation ()
 
void InitRotation (double, double, double, double)
 
void InitRotation (const C4x4TMatrix< TYPE > &matrix)
 
void InitScale (double, double, double)
 
template<class TYPE2 >
void InitScale (const C3DTVector< TYPE2 > &vect)
 
template<class TYPE2 >
void GetTranslation (C3DTVector< TYPE2 > &vect) const
 
template<class TYPE2 >
void GetTranslation (C3DTPoint< TYPE2 > &position) const
 
void PreScale (double x, double y, double z)
 This affect the translation vector.
 
template<class TYPE2 >
void PreScale (const C3DTVector< TYPE2 > &vect)
 
void PostScale (double x, double y, double z)
 Does not affect translation vector.
 
template<class TYPE2 >
void PostScale (const C3DTVector< TYPE2 > &vect)
 
template<class TYPE2 >
void GetScale (C3DTVector< TYPE2 > &vect) const
 
void NoScale ()
 
void Translate (double, double, double)
 
template<class TYPE2 >
void Translate (const C3DTVector< TYPE2 > &vect)
 
void Rotate (double angle, double x, double y, double z)
 
void SetHPBAngles (double heading, double pitch, double bank)
 
bool GetHPBAngles (double &heading, double &pitch, double &bank) const
 Return true if angle can be retrieved without singularity, meaning that the matrix could be recompose safely using SetHPBAngle.
 
void Transpose (C4x4TMatrix &transMat) const
 
void Transpose ()
 
void Decompose (MatrixDecomposition &components) const
 
void Recompose (const MatrixDecomposition &components)
 
bool IsTrsDecomposable () const
 
C3DTVector< TYPEGetRow (int i) const
 
void SetRow (int i, const C3DTVector< TYPE > &vector)
 
C3DTVector< TYPEGetColumn (int i) const
 
void SetColumn (int i, const C3DTVector< TYPE > &vector)
 
bool SelfInverse ()
 
bool Inverse (C4x4TMatrix &invertedMatrix) const
 
double GetDeterminant () const
 
bool HasReflection () const
 
const TYPEValPtr () const
 
TYPEValPtr ()
 
 operator TYPE * ()
 
 operator const TYPE * () const
 
unsigned int SizeOf () const
 
TYPEoperator() (int i, int j)
 
TYPE operator() (int i, int j) const
 
void operator-= (const C4x4TMatrix &submatrix)
 
void operator+= (const C4x4TMatrix &matrix)
 
template<class TYPE2 >
C4x4TMatrix< TYPE > & operator= (const C4x4TMatrix< TYPE2 > &refmatrix)
 
void Decompose (MatrixDecomposition &components) const
 
bool IsTrsDecomposable () const
 

Public Attributes

TYPE matrix [4][4]
 

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