CMSC23700 Common Code Library
Support code for CS23700 programming projects
cs237::__detail::mat4x4< T > Struct Template Reference

template class for 4x4 matrices More...

#include <cs237-mat4x4.hxx>

Public Member Functions

 mat4x4 ()
 create an uninitialized matrix More...
 
 mat4x4 (mat4x4 const &m)
 copy constructor More...
 
 mat4x4 (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)
 construct a matrix from individual elements given in column-major order More...
 
 mat4x4 (vec4< T > const &c0, vec4< T > const &c1, vec4< T > const &c2, vec4< T > const &c3)
 construct a matrix from column vectors More...
 
 mat4x4 (T const &x)
 construct a diagonal matrix with diagonal elements initialized to x More...
 
mat4x4 & operator= (mat4x4 const &mm)
 
mat4x4 & operator+= (T const &s)
 
mat4x4 & operator+= (mat4x4 const &mm)
 
mat4x4 & operator-= (T const &s)
 
mat4x4 & operator-= (mat4x4 const &mm)
 
mat4x4 & operator*= (T const &s)
 
mat4x4 & operator*= (mat4x4 const &mm)
 
mat4x4 inverse () const
 return the inverse of this matrix More...
 
mat4x4 transpose () const
 return the transpose of this matrix More...
 
T determinant () const
 return the determiniant of this matrix More...
 
mat3x3< T > normalMatrix () const
 
vec4< T > & operator[] (unsigned int const &i)
 return the i'th column vector More...
 
vec4< T > const & operator[] (unsigned int const &i) const
 

Public Attributes

vec4< T > cv [4]
 

Detailed Description

template<typename T>
struct cs237::__detail::mat4x4< T >

template class for 4x4 matrices

Constructor & Destructor Documentation

template<typename T>
cs237::__detail::mat4x4< T >::mat4x4 ( )
inline

create an uninitialized matrix

template<typename T >
cs237::__detail::mat4x4< T >::mat4x4 ( mat4x4< T > const &  m)
inline

copy constructor

template<typename T >
cs237::__detail::mat4x4< T >::mat4x4 ( 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 
)
inlineexplicit

construct a matrix from individual elements given in column-major order

template<typename T >
cs237::__detail::mat4x4< T >::mat4x4 ( vec4< T > const &  c0,
vec4< T > const &  c1,
vec4< T > const &  c2,
vec4< T > const &  c3 
)
inlineexplicit

construct a matrix from column vectors

template<typename T >
cs237::__detail::mat4x4< T >::mat4x4 ( T const &  x)
inlineexplicit

construct a diagonal matrix with diagonal elements initialized to x

Member Function Documentation

template<typename T>
T cs237::__detail::mat4x4< T >::determinant ( ) const

return the determiniant of this matrix

template<typename T>
mat4x4 cs237::__detail::mat4x4< T >::inverse ( ) const

return the inverse of this matrix

template<typename T>
mat3x3<T> cs237::__detail::mat4x4< T >::normalMatrix ( ) const

extract a 3x3 "normal" transform matrix from a 4x4 affine transform matrix, which is the inverse transpose of the upper-left 3x3 submatrix.

template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator*= ( T const &  s)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator*= ( mat4x4< T > const &  mm)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator+= ( T const &  s)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator+= ( mat4x4< T > const &  mm)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator-= ( T const &  s)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator-= ( mat4x4< T > const &  mm)
inline
template<typename T >
mat4x4< T > & cs237::__detail::mat4x4< T >::operator= ( mat4x4< T > const &  mm)
inline
template<typename T >
vec4< T > & cs237::__detail::mat4x4< T >::operator[] ( unsigned int const &  i)
inline

return the i'th column vector

return the i'th column vector of the matrix

template<typename T >
vec4< T > const & cs237::__detail::mat4x4< T >::operator[] ( unsigned int const &  i) const
inline
template<typename T >
mat4x4< T > cs237::__detail::mat4x4< T >::transpose ( ) const
inline

return the transpose of this matrix

Member Data Documentation

template<typename T>
vec4<T> cs237::__detail::mat4x4< T >::cv[4]

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