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::Matrix33< T > Class Template Reference

#include <Matrix33.h>

Public Types

typedef T TYPE
 
typedef T value_type
 

Public Member Functions

 Matrix33 ()
 
 Matrix33 (T s)
 
 Matrix33 (const T *dt, bool srcIsRowMajor=false)
 
 Matrix33 (T d0, T d1, T d2, T d3, T d4, T d5, T d6, T d7, T d8, bool srcIsRowMajor=false)
 
 Matrix33 (const Vec3< T > &vx, const Vec3< T > &vy, const Vec3< T > &vz)
 
template<typename FromT >
 Matrix33 (const Matrix33< FromT > &src)
 
 Matrix33 (const Matrix22< T > &src)
 
 Matrix33 (const Matrix33< T > &src)
 
 operator T * ()
 
 operator const T * () const
 
Matrix33< T > & operator= (const Matrix33< T > &rhs)
 
Matrix33< T > & operator= (T rhs)
 
template<typename FromT >
Matrix33< T > & operator= (const Matrix33< FromT > &rhs)
 
Matrix33< T > & operator= (const Matrix22< T > &rhs)
 
bool equalCompare (const Matrix33< T > &rhs, T epsilon) const
 
bool operator== (const Matrix33< T > &rhs) const
 
bool operator!= (const Matrix33< T > &rhs) const
 
Matrix33< T > & operator*= (const Matrix33< T > &rhs)
 
Matrix33< T > & operator+= (const Matrix33< T > &rhs)
 
Matrix33< T > & operator-= (const Matrix33< T > &rhs)
 
Matrix33< T > & operator*= (T s)
 
Matrix33< T > & operator/= (T s)
 
Matrix33< T > & operator+= (T s)
 
Matrix33< T > & operator-= (T s)
 
const Matrix33< T > operator* (const Matrix33< T > &rhs) const
 
const Matrix33< T > operator+ (const Matrix33< T > &rhs) const
 
const Matrix33< T > operator- (const Matrix33< T > &rhs) const
 
const Vec3< T > operator* (const Vec3< T > &rhs) const
 
const Matrix33< T > operator* (T rhs) const
 
const Matrix33< T > operator/ (T rhs) const
 
const Matrix33< T > operator+ (T rhs) const
 
const Matrix33< 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, bool srcIsRowMajor=false)
 
Vec3< T > getColumn (int col) const
 
void setColumn (int col, const Vec3< T > &v)
 
Vec3< T > getRow (int row) const
 
void setRow (int row, const Vec3< T > &v)
 
void getColumns (Vec3< T > *c0, Vec3< T > *c1, Vec3< T > *c2) const
 
void setColumns (const Vec3< T > &c0, const Vec3< T > &c1, const Vec3< T > &c2)
 
void getRows (Vec3< T > *r0, Vec3< T > *r1, Vec3< T > *r2) const
 
void setRows (const Vec3< T > &r0, const Vec3< T > &r1, const Vec3< T > &r2)
 
Matrix22< T > subMatrix22 (int row, int col) const
 
void setToNull ()
 
void setToIdentity ()
 
determinant () const
 
trace () const
 
Matrix33< T > diagonal () const
 
Matrix33< T > lowerTriangular () const
 
Matrix33< T > upperTriangular () const
 
void transpose ()
 
Matrix33< T > transposed () const
 
void invert (T epsilon=FLT_MIN)
 
Matrix33< T > inverted (T epsilon=FLT_MIN) const
 
Vec3< T > preMultiply (const Vec3< T > &v) const
 
Vec3< T > postMultiply (const Vec3< T > &v) const
 
Vec3< T > transformVec (const Vec3< T > &v) const
 
template<template< typename > class VecT>
void rotate (const VecT< T > &axis, T radians)
 
template<template< typename > class VecT>
void rotate (const VecT< T > &eulerRadians)
 
template<template< typename > class VecT>
void rotate (const VecT< T > &from, const VecT< T > &to, const VecT< T > &worldUp)
 
Matrix33< T > invertTransform () const
 

Static Public Member Functions

static Matrix33< T > identity ()
 
static Matrix33< T > one ()
 
static Matrix33< T > zero ()
 
static Matrix33< T > createRotation (const Vec3< T > &axis, T radians)
 
static Matrix33< T > createRotation (const Vec3< T > &from, const Vec3< T > &to, const Vec3< T > &worldUp)
 
static Matrix33< T > createRotation (const Vec3< T > &eulerRadians)
 
static Matrix33< T > createScale (T s)
 
static Matrix33< T > createScale (const Vec2< T > &v)
 
static Matrix33< T > createScale (const Vec3< T > &v)
 
static Matrix33< T > alignZAxisWithTarget (Vec3< T > targetDir, Vec3< T > upDir)
 

Public Attributes

union {
   T   m [9]
 
   struct {
      T   m00
 
      T   m10
 
      T   m20
 
      T   m01
 
      T   m11
 
      T   m21
 
      T   m02
 
      T   m12
 
      T   m22
 
   } 
 
   T   mcols [3][3]
 
}; 
 

Static Public Attributes

static const size_t DIM = 3
 
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 Matrix33< T > &rhs)
 

Member Typedef Documentation

template<typename T>
typedef T cinder::Matrix33< T >::TYPE
template<typename T>
typedef T cinder::Matrix33< T >::value_type

Constructor & Destructor Documentation

template<typename T >
cinder::Matrix33< T >::Matrix33 ( )
template<typename T >
cinder::Matrix33< T >::Matrix33 ( s)
template<typename T >
cinder::Matrix33< T >::Matrix33 ( const T *  dt,
bool  srcIsRowMajor = false 
)
template<typename T >
cinder::Matrix33< T >::Matrix33 ( d0,
d1,
d2,
d3,
d4,
d5,
d6,
d7,
d8,
bool  srcIsRowMajor = false 
)
template<typename T >
cinder::Matrix33< T >::Matrix33 ( const Vec3< T > &  vx,
const Vec3< T > &  vy,
const Vec3< T > &  vz 
)
template<typename T >
template<typename FromT >
cinder::Matrix33< T >::Matrix33 ( const Matrix33< FromT > &  src)
template<typename T >
cinder::Matrix33< T >::Matrix33 ( const Matrix22< T > &  src)
template<typename T >
cinder::Matrix33< T >::Matrix33 ( const Matrix33< T > &  src)

Member Function Documentation

template<typename T>
cinder::Matrix33< T >::operator T * ( )
template<typename T>
cinder::Matrix33< T >::operator const T * ( ) const
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator= ( const Matrix33< T > &  rhs)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator= ( rhs)
template<typename T >
template<typename FromT >
Matrix33< T > & cinder::Matrix33< T >::operator= ( const Matrix33< FromT > &  rhs)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator= ( const Matrix22< T > &  rhs)
template<typename T >
bool cinder::Matrix33< T >::equalCompare ( const Matrix33< T > &  rhs,
epsilon 
) const
template<typename T>
bool cinder::Matrix33< T >::operator== ( const Matrix33< T > &  rhs) const
template<typename T>
bool cinder::Matrix33< T >::operator!= ( const Matrix33< T > &  rhs) const
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator*= ( const Matrix33< T > &  rhs)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator+= ( const Matrix33< T > &  rhs)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator-= ( const Matrix33< T > &  rhs)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator*= ( s)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator/= ( s)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator+= ( s)
template<typename T >
Matrix33< T > & cinder::Matrix33< T >::operator-= ( s)
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator* ( const Matrix33< T > &  rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator+ ( const Matrix33< T > &  rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator- ( const Matrix33< T > &  rhs) const
template<typename T >
const Vec3< T > cinder::Matrix33< T >::operator* ( const Vec3< T > &  rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator* ( rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator/ ( rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator+ ( rhs) const
template<typename T >
const Matrix33< T > cinder::Matrix33< T >::operator- ( rhs) const
template<typename T >
T & cinder::Matrix33< T >::at ( int  row,
int  col 
)
template<typename T >
const T & cinder::Matrix33< T >::at ( int  row,
int  col 
) const
template<typename T >
void cinder::Matrix33< T >::set ( const T *  dt,
bool  srcIsRowMajor = false 
)
template<typename T >
void cinder::Matrix33< T >::set ( d0,
d1,
d2,
d3,
d4,
d5,
d6,
d7,
d8,
bool  srcIsRowMajor = false 
)
template<typename T >
Vec3< T > cinder::Matrix33< T >::getColumn ( int  col) const
template<typename T >
void cinder::Matrix33< T >::setColumn ( int  col,
const Vec3< T > &  v 
)
template<typename T >
Vec3< T > cinder::Matrix33< T >::getRow ( int  row) const
template<typename T >
void cinder::Matrix33< T >::setRow ( int  row,
const Vec3< T > &  v 
)
template<typename T >
void cinder::Matrix33< T >::getColumns ( Vec3< T > *  c0,
Vec3< T > *  c1,
Vec3< T > *  c2 
) const
template<typename T >
void cinder::Matrix33< T >::setColumns ( const Vec3< T > &  c0,
const Vec3< T > &  c1,
const Vec3< T > &  c2 
)
template<typename T >
void cinder::Matrix33< T >::getRows ( Vec3< T > *  r0,
Vec3< T > *  r1,
Vec3< T > *  r2 
) const
template<typename T >
void cinder::Matrix33< T >::setRows ( const Vec3< T > &  r0,
const Vec3< T > &  r1,
const Vec3< T > &  r2 
)
template<typename T >
Matrix22< T > cinder::Matrix33< T >::subMatrix22 ( int  row,
int  col 
) const
template<typename T >
void cinder::Matrix33< T >::setToNull ( )
template<typename T >
void cinder::Matrix33< T >::setToIdentity ( )
template<typename T >
T cinder::Matrix33< T >::determinant ( ) const
template<typename T >
T cinder::Matrix33< T >::trace ( ) const
template<typename T >
Matrix33< T > cinder::Matrix33< T >::diagonal ( ) const
template<typename T >
Matrix33< T > cinder::Matrix33< T >::lowerTriangular ( ) const
template<typename T >
Matrix33< T > cinder::Matrix33< T >::upperTriangular ( ) const
template<typename T >
void cinder::Matrix33< T >::transpose ( )
template<typename T >
Matrix33< T > cinder::Matrix33< T >::transposed ( ) const
template<typename T>
void cinder::Matrix33< T >::invert ( epsilon = FLT_MIN)
template<typename T >
Matrix33< T > cinder::Matrix33< T >::inverted ( epsilon = FLT_MIN) const
template<typename T >
Vec3< T > cinder::Matrix33< T >::preMultiply ( const Vec3< T > &  v) const
template<typename T >
Vec3< T > cinder::Matrix33< T >::postMultiply ( const Vec3< T > &  v) const
template<typename T>
Vec3<T> cinder::Matrix33< T >::transformVec ( const Vec3< T > &  v) const
template<typename T>
template<template< typename > class VecT>
void cinder::Matrix33< T >::rotate ( const VecT< T > &  axis,
radians 
)
template<typename T>
template<template< typename > class VecT>
void cinder::Matrix33< T >::rotate ( const VecT< T > &  eulerRadians)
template<typename T>
template<template< typename > class VecT>
void cinder::Matrix33< T >::rotate ( const VecT< T > &  from,
const VecT< T > &  to,
const VecT< T > &  worldUp 
)
template<typename T >
Matrix33< T > cinder::Matrix33< T >::invertTransform ( ) const
template<typename T>
static Matrix33<T> cinder::Matrix33< T >::identity ( )
static
template<typename T>
static Matrix33<T> cinder::Matrix33< T >::one ( )
static
template<typename T>
static Matrix33<T> cinder::Matrix33< T >::zero ( )
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createRotation ( const Vec3< T > &  axis,
radians 
)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createRotation ( const Vec3< T > &  from,
const Vec3< T > &  to,
const Vec3< T > &  worldUp 
)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createRotation ( const Vec3< T > &  eulerRadians)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createScale ( s)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createScale ( const Vec2< T > &  v)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::createScale ( const Vec3< T > &  v)
static
template<typename T >
Matrix33< T > cinder::Matrix33< T >::alignZAxisWithTarget ( Vec3< T >  targetDir,
Vec3< T >  upDir 
)
static

Friends And Related Function Documentation

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

Member Data Documentation

template<typename T>
const size_t cinder::Matrix33< T >::DIM = 3
static
template<typename T>
const size_t cinder::Matrix33< T >::DIM_SQ = DIM*DIM
static
template<typename T>
const size_t cinder::Matrix33< T >::MEM_LEN = sizeof(T)*DIM_SQ
static
template<typename T>
T cinder::Matrix33< T >::m[9]
template<typename T>
T cinder::Matrix33< T >::m00
template<typename T>
T cinder::Matrix33< T >::m10
template<typename T>
T cinder::Matrix33< T >::m20
template<typename T>
T cinder::Matrix33< T >::m01
template<typename T>
T cinder::Matrix33< T >::m11
template<typename T>
T cinder::Matrix33< T >::m21
template<typename T>
T cinder::Matrix33< T >::m02
template<typename T>
T cinder::Matrix33< T >::m12
template<typename T>
T cinder::Matrix33< T >::m22
template<typename T>
T cinder::Matrix33< T >::mcols[3][3]
union { ... }

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