cinder::Matrix44< T > Class Template Reference

#include <Matrix44.h>

List of all members.

Public Types

typedef T TYPE

Public Member Functions

 Matrix44 ()
 Matrix44 (T s)
 Matrix44 (const T *dt, bool srcIsRowMajor=false)
 Matrix44 (T d0, T d1, T d2, T d3, T d4, T d5, T d6, T d7, T d8, T d9, T d10, T d11, T d12, T d13, T d14, T d15, bool srcIsRowMajor=false)
 Matrix44 (const Vec3< T > &vx, const Vec3< T > &vy, const Vec3< T > &vz)
 Matrix44 (const Vec4< T > &vx, const Vec4< T > &vy, const Vec4< T > &vz, const Vec4< T > &vw=Vec4< T >(0, 0, 0, 1))
template<typename FromT >
 Matrix44 (const Matrix44< FromT > &src)
 Matrix44 (const Matrix22< T > &src)
 Matrix44 (const Matrix33< T > &src)
 Matrix44 (const Matrix44< T > &src)
 operator T * ()
 operator const T * () const
Matrix44< T > & operator= (const Matrix44< T > &rhs)
Matrix44< T > & operator= (T rhs)
template<typename FromT >
Matrix44< T > & operator= (const Matrix44< FromT > &rhs)
Matrix44< T > & operator= (const Matrix22< T > &rhs)
Matrix44< T > & operator= (const Matrix33< T > &rhs)
bool equalCompare (const Matrix44< T > &rhs, T epsilon) const
bool operator== (const Matrix44< T > &rhs) const
bool operator!= (const Matrix44< T > &rhs) const
Matrix44< T > & operator*= (const Matrix44< T > &rhs)
Matrix44< T > & operator+= (const Matrix44< T > &rhs)
Matrix44< T > & operator-= (const Matrix44< T > &rhs)
Matrix44< T > & operator*= (T rhs)
Matrix44< T > & operator/= (T rhs)
Matrix44< T > & operator+= (T rhs)
Matrix44< T > & operator-= (T rhs)
const Matrix44< T > operator* (const Matrix44< T > &rhs) const
const Matrix44< T > operator+ (const Matrix44< T > &rhs) const
const Matrix44< T > operator- (const Matrix44< T > &rhs) const
const Vec3< T > operator* (const Vec3< T > &rhs) const
const Vec4< T > operator* (const Vec4< T > &rhs) const
const Matrix44< T > operator* (T rhs) const
const Matrix44< T > operator/ (T rhs) const
const Matrix44< T > operator+ (T rhs) const
const Matrix44< T > operator- (T rhs) const
T & at (int row, int col)
const T & at (int row, int col) const
void set (const T *dt, bool srcIsRowMajor=false)
void set (T d0, T d1, T d2, T d3, T d4, T d5, T d6, T d7, T d8, T d9, T d10, T d11, T d12, T d13, T d14, T d15, bool srcIsRowMajor=false)
Vec4< T > getColumn (int col) const
void setColumn (int col, const Vec4< T > &v)
Vec4< T > getRow (int row) const
void setRow (int row, const Vec4< T > &v)
void getColumns (Vec4< T > *c0, Vec4< T > *c1, Vec4< T > *c2, Vec4< T > *c3) const
void setColumns (const Vec4< T > &c0, const Vec4< T > &c1, const Vec4< T > &c2, const Vec4< T > &c3)
void getRows (Vec4< T > *r0, Vec4< T > *r1, Vec4< T > *r2, Vec4< T > *r3) const
void setRows (const Vec4< T > &r0, const Vec4< T > &r1, const Vec4< T > &r2, const Vec4< T > &r3)
Matrix22< T > subMatrix22 (int row, int col) const
Matrix33< T > subMatrix33 (int row, int col) const
void setToNull ()
void setToIdentity ()
determinant () const
trace (bool fullTrace=false) const
Matrix44< T > diagonal () const
Matrix44< T > lowerTriangular () const
Matrix44< T > upperTriangular () const
void transpose ()
Matrix44< T > transposed () const
void invert (T epsilon=EPSILON)
Matrix44< T > inverted (T epsilon=EPSILON) const
Vec3< T > preMultiply (const Vec3< T > &v) const
Vec4< T > preMultiply (const Vec4< T > &v) const
Vec3< T > postMultiply (const Vec3< T > &v) const
Vec4< T > postMultiply (const Vec4< T > &v) const
void affineInvert ()
Matrix44< T > affineInverted () const
Vec3< T > transformPoint (const Vec3< T > &rhs) const
Vec3< T > transformPointAffine (const Vec3< T > &rhs) const
Vec3< T > transformVec (const Vec3< T > &rhs) const
Vec4< T > transformVec (const Vec4< T > &rhs) const
Vec4< T > getTranslate () const
void setTranslate (const Vec3< T > &v)
void setTranslate (const Vec4< T > &v)
void translate (const Vec3< T > &tr)
void translate (const Vec4< T > &tr)
void rotate (const Vec3< T > &axis, T radians)
void rotate (const Vec4< T > &axis, T radians)
void rotate (const Vec3< T > &eulerRadians)
void rotate (const Vec4< T > &eulerRadians)
void rotate (const Vec3< T > &from, const Vec3< T > &to, const Vec3< T > &worldUp)
void rotate (const Vec4< T > &from, const Vec4< T > &to, const Vec4< T > &worldUp)
void scale (T s)
void scale (const Vec2< T > &v)
void scale (const Vec3< T > &v)
void scale (const Vec4< T > &v)
Matrix44< T > invertTransform () const

Static Public Member Functions

static Matrix44< T > identity ()
static Matrix44< T > one ()
static Matrix44< T > zero ()
static Matrix44< T > createTranslation (const Vec3< T > &v, T w=1)
static Matrix44< T > createTranslation (const Vec4< T > &v)
static Matrix44< T > createRotation (const Vec3< T > &axis, T radians)
static Matrix44< T > createRotation (const Vec4< T > &axis, T radians)
static Matrix44< T > createRotation (const Vec3< T > &from, const Vec3< T > &to, const Vec3< T > &worldUp)
static Matrix44< T > createRotation (const Vec4< T > &from, const Vec4< T > &to, const Vec4< T > &worldUp)
static Matrix44< T > createRotation (const Vec3< T > &eulerRadians)
static Matrix44< T > createRotation (const Vec4< T > &eulerRadians)
static Matrix44< T > createScale (T s)
static Matrix44< T > createScale (const Vec2< T > &v)
static Matrix44< T > createScale (const Vec3< T > &v)
static Matrix44< T > createScale (const Vec4< T > &v)
static Matrix44< T > alignZAxisWithTarget (Vec3< T > targetDir, Vec3< T > upDir)
static Matrix44< T > alignZAxisWithTarget (Vec4< T > targetDir, Vec4< T > upDir)

Public Attributes

union {
   T   m [16]
   struct {
      T   m00
      T   m10
      T   m20
      T   m30
      T   m01
      T   m11
      T   m21
      T   m31
      T   m02
      T   m12
      T   m22
      T   m32
      T   m03
      T   m13
      T   m23
      T   m33
   } 
   T   mcols [4][4]
}; 

Static Public Attributes

static const size_t DIM = 4
static const size_t DIM_SQ = DIM*DIM
static const size_t MEM_LEN = sizeof(T)*DIM_SQ

Friends

std::ostream & operator<< (std::ostream &lhs, const Matrix44< T > &rhs)

template<typename T>
class cinder::Matrix44< T >


Member Typedef Documentation

template<typename T>
typedef T cinder::Matrix44< T >::TYPE

Constructor & Destructor Documentation

template<typename T >
cinder::Matrix44< T >::Matrix44 (  ) 
template<typename T>
cinder::Matrix44< T >::Matrix44 ( s  ) 
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const T *  dt,
bool  srcIsRowMajor = false 
)
template<typename T>
cinder::Matrix44< T >::Matrix44 ( d0,
d1,
d2,
d3,
d4,
d5,
d6,
d7,
d8,
d9,
d10,
d11,
d12,
d13,
d14,
d15,
bool  srcIsRowMajor = false 
)
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const Vec3< T > &  vx,
const Vec3< T > &  vy,
const Vec3< T > &  vz 
)
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const Vec4< T > &  vx,
const Vec4< T > &  vy,
const Vec4< T > &  vz,
const Vec4< T > &  vw = Vec4<T>( 0, 0, 0, 1 ) 
)
template<typename T >
template<typename FromT >
cinder::Matrix44< T >::Matrix44 ( const Matrix44< FromT > &  src  ) 
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const Matrix22< T > &  src  ) 
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const Matrix33< T > &  src  ) 
template<typename T>
cinder::Matrix44< T >::Matrix44 ( const Matrix44< T > &  src  ) 

Member Function Documentation

template<typename T>
cinder::Matrix44< T >::operator T * (  ) 
template<typename T>
cinder::Matrix44< T >::operator const T * (  )  const
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator= ( const Matrix44< T > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator= ( rhs  ) 
template<typename T >
template<typename FromT >
Matrix44< T > & cinder::Matrix44< T >::operator= ( const Matrix44< FromT > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator= ( const Matrix22< T > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator= ( const Matrix33< T > &  rhs  ) 
template<typename T>
bool cinder::Matrix44< T >::equalCompare ( const Matrix44< T > &  rhs,
epsilon 
) const
template<typename T>
bool cinder::Matrix44< T >::operator== ( const Matrix44< T > &  rhs  )  const
template<typename T>
bool cinder::Matrix44< T >::operator!= ( const Matrix44< T > &  rhs  )  const
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator*= ( const Matrix44< T > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator+= ( const Matrix44< T > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator-= ( const Matrix44< T > &  rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator*= ( rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator/= ( rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator+= ( rhs  ) 
template<typename T>
Matrix44< T > & cinder::Matrix44< T >::operator-= ( rhs  ) 
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator* ( const Matrix44< T > &  rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator+ ( const Matrix44< T > &  rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator- ( const Matrix44< T > &  rhs  )  const
template<typename T>
const Vec3< T > cinder::Matrix44< T >::operator* ( const Vec3< T > &  rhs  )  const
template<typename T>
const Vec4< T > cinder::Matrix44< T >::operator* ( const Vec4< T > &  rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator* ( rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator/ ( rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator+ ( rhs  )  const
template<typename T>
const Matrix44< T > cinder::Matrix44< T >::operator- ( rhs  )  const
template<typename T >
T & cinder::Matrix44< T >::at ( int  row,
int  col 
)
template<typename T >
const T & cinder::Matrix44< T >::at ( int  row,
int  col 
) const
template<typename T>
void cinder::Matrix44< T >::set ( const T *  dt,
bool  srcIsRowMajor = false 
)
template<typename T>
void cinder::Matrix44< T >::set ( d0,
d1,
d2,
d3,
d4,
d5,
d6,
d7,
d8,
d9,
d10,
d11,
d12,
d13,
d14,
d15,
bool  srcIsRowMajor = false 
)
template<typename T >
Vec4< T > cinder::Matrix44< T >::getColumn ( int  col  )  const
template<typename T>
void cinder::Matrix44< T >::setColumn ( int  col,
const Vec4< T > &  v 
)
template<typename T >
Vec4< T > cinder::Matrix44< T >::getRow ( int  row  )  const
template<typename T>
void cinder::Matrix44< T >::setRow ( int  row,
const Vec4< T > &  v 
)
template<typename T>
void cinder::Matrix44< T >::getColumns ( Vec4< T > *  c0,
Vec4< T > *  c1,
Vec4< T > *  c2,
Vec4< T > *  c3 
) const
template<typename T>
void cinder::Matrix44< T >::setColumns ( const Vec4< T > &  c0,
const Vec4< T > &  c1,
const Vec4< T > &  c2,
const Vec4< T > &  c3 
)
template<typename T>
void cinder::Matrix44< T >::getRows ( Vec4< T > *  r0,
Vec4< T > *  r1,
Vec4< T > *  r2,
Vec4< T > *  r3 
) const
template<typename T>
void cinder::Matrix44< T >::setRows ( const Vec4< T > &  r0,
const Vec4< T > &  r1,
const Vec4< T > &  r2,
const Vec4< T > &  r3 
)
template<typename T >
Matrix22< T > cinder::Matrix44< T >::subMatrix22 ( int  row,
int  col 
) const
template<typename T >
Matrix33< T > cinder::Matrix44< T >::subMatrix33 ( int  row,
int  col 
) const
template<typename T >
void cinder::Matrix44< T >::setToNull (  ) 
template<typename T >
void cinder::Matrix44< T >::setToIdentity (  ) 
template<typename T >
T cinder::Matrix44< T >::determinant (  )  const
template<typename T >
T cinder::Matrix44< T >::trace ( bool  fullTrace = false  )  const
template<typename T >
Matrix44< T > cinder::Matrix44< T >::diagonal (  )  const
template<typename T >
Matrix44< T > cinder::Matrix44< T >::lowerTriangular (  )  const
template<typename T >
Matrix44< T > cinder::Matrix44< T >::upperTriangular (  )  const
template<typename T >
void cinder::Matrix44< T >::transpose (  ) 
template<typename T >
Matrix44< T > cinder::Matrix44< T >::transposed (  )  const
template<typename T>
void cinder::Matrix44< T >::invert ( epsilon = EPSILON  ) 
template<typename T>
Matrix44< T > cinder::Matrix44< T >::inverted ( epsilon = EPSILON  )  const
template<typename T>
Vec3< T > cinder::Matrix44< T >::preMultiply ( const Vec3< T > &  v  )  const
template<typename T>
Vec4< T > cinder::Matrix44< T >::preMultiply ( const Vec4< T > &  v  )  const
template<typename T>
Vec3< T > cinder::Matrix44< T >::postMultiply ( const Vec3< T > &  v  )  const
template<typename T>
Vec4< T > cinder::Matrix44< T >::postMultiply ( const Vec4< T > &  v  )  const
template<typename T>
void cinder::Matrix44< T >::affineInvert (  ) 
template<typename T >
Matrix44< T > cinder::Matrix44< T >::affineInverted (  )  const
template<typename T>
Vec3< T > cinder::Matrix44< T >::transformPoint ( const Vec3< T > &  rhs  )  const
template<typename T>
Vec3< T > cinder::Matrix44< T >::transformPointAffine ( const Vec3< T > &  rhs  )  const
template<typename T>
Vec3< T > cinder::Matrix44< T >::transformVec ( const Vec3< T > &  rhs  )  const
template<typename T>
Vec4<T> cinder::Matrix44< T >::transformVec ( const Vec4< T > &  rhs  )  const
template<typename T>
Vec4<T> cinder::Matrix44< T >::getTranslate (  )  const
template<typename T>
void cinder::Matrix44< T >::setTranslate ( const Vec3< T > &  v  ) 
template<typename T>
void cinder::Matrix44< T >::setTranslate ( const Vec4< T > &  v  ) 
template<typename T>
void cinder::Matrix44< T >::translate ( const Vec3< T > &  tr  ) 
template<typename T>
void cinder::Matrix44< T >::translate ( const Vec4< T > &  tr  ) 
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec3< T > &  axis,
radians 
)
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec4< T > &  axis,
radians 
)
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec3< T > &  eulerRadians  ) 
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec4< T > &  eulerRadians  ) 
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec3< T > &  from,
const Vec3< T > &  to,
const Vec3< T > &  worldUp 
)
template<typename T>
void cinder::Matrix44< T >::rotate ( const Vec4< T > &  from,
const Vec4< T > &  to,
const Vec4< T > &  worldUp 
)
template<typename T>
void cinder::Matrix44< T >::scale ( s  ) 
template<typename T>
void cinder::Matrix44< T >::scale ( const Vec2< T > &  v  ) 
template<typename T>
void cinder::Matrix44< T >::scale ( const Vec3< T > &  v  ) 
template<typename T>
void cinder::Matrix44< T >::scale ( const Vec4< T > &  v  ) 
template<typename T >
Matrix44< T > cinder::Matrix44< T >::invertTransform (  )  const
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::identity (  )  [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::one (  )  [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::zero (  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createTranslation ( const Vec3< T > &  v,
w = 1 
) [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::createTranslation ( const Vec4< T > &  v  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createRotation ( const Vec3< T > &  axis,
radians 
) [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::createRotation ( const Vec4< T > &  axis,
radians 
) [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createRotation ( const Vec3< T > &  from,
const Vec3< T > &  to,
const Vec3< T > &  worldUp 
) [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::createRotation ( const Vec4< T > &  from,
const Vec4< T > &  to,
const Vec4< T > &  worldUp 
) [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createRotation ( const Vec3< T > &  eulerRadians  )  [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::createRotation ( const Vec4< T > &  eulerRadians  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createScale ( s  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createScale ( const Vec2< T > &  v  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createScale ( const Vec3< T > &  v  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::createScale ( const Vec4< T > &  v  )  [static]
template<typename T>
Matrix44< T > cinder::Matrix44< T >::alignZAxisWithTarget ( Vec3< T >  targetDir,
Vec3< T >  upDir 
) [static]
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::alignZAxisWithTarget ( Vec4< T >  targetDir,
Vec4< T >  upDir 
) [static]

Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  lhs,
const Matrix44< T > &  rhs 
) [friend]

Member Data Documentation

template<typename T>
const size_t cinder::Matrix44< T >::DIM = 4 [static]
template<typename T>
const size_t cinder::Matrix44< T >::DIM_SQ = DIM*DIM [static]
template<typename T>
const size_t cinder::Matrix44< T >::MEM_LEN = sizeof(T)*DIM_SQ [static]
template<typename T>
T cinder::Matrix44< T >::m[16]
template<typename T>
T cinder::Matrix44< T >::m00
template<typename T>
T cinder::Matrix44< T >::m10
template<typename T>
T cinder::Matrix44< T >::m20
template<typename T>
T cinder::Matrix44< T >::m30
template<typename T>
T cinder::Matrix44< T >::m01
template<typename T>
T cinder::Matrix44< T >::m11
template<typename T>
T cinder::Matrix44< T >::m21
template<typename T>
T cinder::Matrix44< T >::m31
template<typename T>
T cinder::Matrix44< T >::m02
template<typename T>
T cinder::Matrix44< T >::m12
template<typename T>
T cinder::Matrix44< T >::m22
template<typename T>
T cinder::Matrix44< T >::m32
template<typename T>
T cinder::Matrix44< T >::m03
template<typename T>
T cinder::Matrix44< T >::m13
template<typename T>
T cinder::Matrix44< T >::m23
template<typename T>
T cinder::Matrix44< T >::m33
template<typename T>
T cinder::Matrix44< T >::mcols[4][4]
union { ... }

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