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...
 
mat4x4operator= (mat4x4 const &mm)
 
mat4x4operator+= (T const &s)
 
mat4x4operator+= (mat4x4 const &mm)
 
mat4x4operator-= (T const &s)
 
mat4x4operator-= (mat4x4 const &mm)
 
mat4x4operator*= (T const &s)
 
mat4x4operator*= (mat4x4 const &mm)
 
mat4x4 inverse () const
 return the inverse of this matrix More...
 
mat4x4 transpose () const
 return the transpose of this matrix More...
 
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 ( m00,
m10,
m20,
m30,
m01,
m11,
m21,
m31,
m02,
m12,
m22,
m32,
m03,
m13,
m23,
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: