Cinder  0.8.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
cinder::Matrix44< T > Class Template Reference

#include <Matrix44.h>

Public Types

typedef T TYPE
 
typedef T value_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 MatrixAffine2< 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 MatrixAffine2< 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=FLT_MIN)
 
Matrix44< T > inverted (T epsilon=FLT_MIN) 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 ()
 Computes inverse; assumes the matrix is affine, i.e. the bottom row is [0 0 0 1]. More...
 
Matrix44< T > affineInverted () const
 
void orthonormalInvert ()
 Computes inverse; assumes the matrix is orthonormal. More...
 
Matrix44< T > orthonormalInverted () 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 > createRotationOnb (const Vec3< T > &u, const Vec3< T > &v, const Vec3< T > &w)
 
static Matrix44< T > createRotationOnb (const Vec4< T > &u, const Vec4< T > &v, const Vec4< T > &w)
 
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)
 

Member Typedef Documentation

template<typename T>
typedef T cinder::Matrix44< T >::TYPE
template<typename T>
typedef T cinder::Matrix44< T >::value_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 MatrixAffine2< T > &  src)
explicit
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 MatrixAffine2< 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 = FLT_MIN)
template<typename T>
Matrix44< T > cinder::Matrix44< T >::inverted ( epsilon = FLT_MIN) 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 ( )

Computes inverse; assumes the matrix is affine, i.e. the bottom row is [0 0 0 1].

template<typename T >
Matrix44< T > cinder::Matrix44< T >::affineInverted ( ) const
template<typename T >
void cinder::Matrix44< T >::orthonormalInvert ( )

Computes inverse; assumes the matrix is orthonormal.

template<typename T>
Matrix44<T> cinder::Matrix44< T >::orthonormalInverted ( ) 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 >::createRotationOnb ( const Vec3< T > &  u,
const Vec3< T > &  v,
const Vec3< T > &  w 
)
static
template<typename T>
static Matrix44<T> cinder::Matrix44< T >::createRotationOnb ( const Vec4< T > &  u,
const Vec4< T > &  v,
const Vec4< T > &  w 
)
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: