CMSC23700 Common Code Library
Support code for CS23700 programming projects
cs237::__detail Namespace Reference

Classes

struct  AABB
 Axis-Aligned Bounding Box. More...
 
class  image_base
 
struct  mat2x2
 template class for 2x2 matrices More...
 
struct  mat2x3
 template class for 2x3 matrices More...
 
struct  mat2x4
 
struct  mat3x2
 template class for 3x2 matrices More...
 
struct  mat3x3
 template class for 3x3 matrices More...
 
struct  mat3x4
 
struct  mat4x2
 
struct  mat4x3
 
struct  mat4x4
 template class for 4x4 matrices More...
 
struct  quat
 template class for quaternions More...
 
class  Shader
 
class  texture_base
 
struct  vec2
 template class for two-element vectors More...
 
struct  vec3
 template class for three-element vectors More...
 
struct  vec4
 template class for four-element vectors More...
 

Functions

template<typename T >
std::ostream & operator<< (std::ostream &s, __detail::AABB< T > const &bb)
 print the axis-aligned bounding box to the output stream More...
 
template<typename T >
AABB< T > operator+ (AABB< T > const &bb1, AABB< T > &bb2)
 
unsigned char const * valuePtr (color3ub const &c)
 
unsigned char const * valuePtr (color4ub const &c)
 
float const * valuePtr (color3f const &c)
 
float const * valuePtr (color4f const &c)
 
template<typename T >
std::ostream & operator<< (std::ostream &s, mat2x2< T > const &m)
 output the matrix to a stream as a sequence of column vectors More...
 
template<typename T >
mat2x2< T > operator+ (T const &s, mat2x2< T > const &m)
 
template<typename T >
mat2x2< T > operator+ (mat2x2< T > const &m, T const &s)
 
template<typename T >
mat2x2< T > operator+ (mat2x2< T > const &m1, mat2x2< T > const &m2)
 
template<typename T >
mat2x2< T > operator- (T const &s, mat2x2< T > const &m)
 
template<typename T >
mat2x2< T > operator- (mat2x2< T > const &m, T const &s)
 
template<typename T >
mat2x2< T > operator- (mat2x2< T > const &m1, mat2x2< T > const &m2)
 
template<typename T >
mat2x2< T > operator* (T const &s, mat2x2< T > const &m)
 
template<typename T >
mat2x2< T > operator* (mat2x2< T > const &m, T const &s)
 
template<typename T >
vec2< T > operator* (vec2< T > const &v, mat2x2< T > const &m)
 
template<typename T >
vec2< T > operator* (mat2x2< T > const &m, vec2< T > const &v)
 
template<typename T >
mat2x2< T > operator* (mat2x2< T > const &m1, mat2x2< T > const &m2)
 
template<typename T >
mat2x2< T > operator- (mat2x2< T > const &m)
 unary negation More...
 
template<typename T >
mat2x2< T > outerProduct (vec2< T > const &cv, vec2< T > const &rv)
 
template<typename T >
T const * valuePtr (mat2x2< T > const &m)
 get a pointer to the matrix's data (in column-major order) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, mat2x3< T > const &m)
 output the matrix to a stream as a sequence of column vectors More...
 
template<typename T >
mat2x3< T > operator+ (T const &s, mat2x3< T > const &m)
 
template<typename T >
mat2x3< T > operator+ (mat2x3< T > const &m, T const &s)
 
template<typename T >
mat2x3< T > operator+ (mat2x3< T > const &m1, mat2x3< T > const &m2)
 
template<typename T >
mat2x3< T > operator- (T const &s, mat2x3< T > const &m)
 
template<typename T >
mat2x3< T > operator- (mat2x3< T > const &m, T const &s)
 
template<typename T >
mat2x3< T > operator- (mat2x3< T > const &m1, mat2x3< T > const &m2)
 
template<typename T >
mat2x3< T > operator* (T const &s, mat2x3< T > const &m)
 
template<typename T >
mat2x3< T > operator* (mat2x3< T > const &m, T const &s)
 
template<typename T >
vec2< T > operator* (vec3< T > const &v, mat2x3< T > const &m)
 
template<typename T >
vec3< T > operator* (mat2x3< T > const &m, vec2< T > const &v)
 
template<typename T >
mat2x3< T > operator- (mat2x3< T > const &m)
 unary negation More...
 
template<typename T >
mat2x3< T > outerProduct (vec3< T > const &cv, vec2< T > const &rv)
 
template<typename T >
T const * valuePtr (mat2x3< T > const &m)
 get a pointer to the matrix's data (in column-major order) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, mat3x2< T > const &m)
 output the matrix to a stream as a sequence of column vectors More...
 
template<typename T >
mat3x2< T > operator+ (T const &s, mat3x2< T > const &m)
 
template<typename T >
mat3x2< T > operator+ (mat3x2< T > const &m, T const &s)
 
template<typename T >
mat3x2< T > operator+ (mat3x2< T > const &m1, mat3x2< T > const &m2)
 
template<typename T >
mat3x2< T > operator- (T const &s, mat3x2< T > const &m)
 
template<typename T >
mat3x2< T > operator- (mat3x2< T > const &m, T const &s)
 
template<typename T >
mat3x2< T > operator- (mat3x2< T > const &m1, mat3x2< T > const &m2)
 
template<typename T >
mat3x2< T > operator* (T const &s, mat3x2< T > const &m)
 
template<typename T >
mat3x2< T > operator* (mat3x2< T > const &m, T const &s)
 
template<typename T >
vec3< T > operator* (vec2< T > const &v, mat3x2< T > const &m)
 
template<typename T >
vec2< T > operator* (mat3x2< T > const &m, vec3< T > const &v)
 
template<typename T >
mat3x2< T > operator* (mat2x2< T > const &m1, mat3x2< T > const &m2)
 multiply a 2x2 matrix times a 3x2 matrix, producing a 3x2 matrix More...
 
template<typename T >
mat3x2< T > operator* (mat3x2< T > const &m1, mat3x3< T > const &m2)
 multiply a 3x2 matrix times a 3x3 matrix, producing a 3x2 matrix More...
 
template<typename T >
mat3x2< T > operator- (mat3x2< T > const &m)
 unary negation More...
 
template<typename T >
mat3x2< T > outerProduct (vec2< T > const &cv, vec3< T > const &rv)
 
template<typename T >
T const * valuePtr (mat3x2< T > const &m)
 get a pointer to the matrix's data (in column-major order) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, mat3x3< T > const &m)
 output the matrix to a stream as a sequence of column vectors More...
 
template<typename T >
mat3x3< T > operator+ (T const &s, mat3x3< T > const &m)
 
template<typename T >
mat3x3< T > operator+ (mat3x3< T > const &m, T const &s)
 
template<typename T >
mat3x3< T > operator+ (mat3x3< T > const &m1, mat3x3< T > const &m2)
 
template<typename T >
mat3x3< T > operator- (T const &s, mat3x3< T > const &m)
 
template<typename T >
mat3x3< T > operator- (mat3x3< T > const &m, T const &s)
 
template<typename T >
mat3x3< T > operator- (mat3x3< T > const &m1, mat3x3< T > const &m2)
 
template<typename T >
mat3x3< T > operator* (T const &s, mat3x3< T > const &m)
 
template<typename T >
mat3x3< T > operator* (mat3x3< T > const &m, T const &s)
 
template<typename T >
vec3< T > operator* (vec3< T > const &v, mat3x3< T > const &m)
 
template<typename T >
vec3< T > operator* (mat3x3< T > const &m, vec3< T > const &v)
 
template<typename T >
mat3x3< T > operator* (mat3x3< T > const &m1, mat3x3< T > const &m2)
 
template<typename T >
__detail::mat3x3< T > operator- (__detail::mat3x3< T > const &m)
 unary negation More...
 
template<typename T >
__detail::mat3x3< T > outerProduct (__detail::vec3< T > const &cv, __detail::vec3< T > const &rv)
 
template<typename T >
T const * valuePtr (mat3x3< T > const &m)
 get a pointer to the matrix's data (in column-major order) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, mat4x4< T > const &m)
 output the matrix to a stream as a sequence of column vectors More...
 
template<typename T >
mat4x4< T > operator+ (T const &s, mat4x4< T > const &m)
 
template<typename T >
mat4x4< T > operator+ (mat4x4< T > const &m, T const &s)
 
template<typename T >
mat4x4< T > operator+ (mat4x4< T > const &m1, mat4x4< T > const &m2)
 
template<typename T >
mat4x4< T > operator- (T const &s, mat4x4< T > const &m)
 
template<typename T >
mat4x4< T > operator- (mat4x4< T > const &m, T const &s)
 
template<typename T >
mat4x4< T > operator- (mat4x4< T > const &m1, mat4x4< T > const &m2)
 
template<typename T >
mat4x4< T > operator* (T const &s, mat4x4< T > const &m)
 
template<typename T >
mat4x4< T > operator* (mat4x4< T > const &m, T const &s)
 
template<typename T >
vec4< T > operator* (vec4< T > const &v, mat4x4< T > const &m)
 
template<typename T >
vec4< T > operator* (mat4x4< T > const &m, vec4< T > const &v)
 
template<typename T >
mat4x4< T > operator* (mat4x4< T > const &m1, mat4x4< T > const &m2)
 
template<typename T >
mat4x4< T > operator- (mat4x4< T > const &m)
 unary negation More...
 
template<typename T >
mat4x4< T > outerProduct (vec4< T > const &cv, vec4< T > const &rv)
 
template<typename T >
T const * valuePtr (mat4x4< T > const &m)
 get a pointer to the matrix's data (in column-major order) More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, quat< T > const &v)
 output the vector to a stream More...
 
template<typename T >
quat< T > operator+ (quat< T > const &v1, quat< T > const &v2)
 
template<typename T >
quat< T > operator- (quat< T > const &v1, quat< T > const &v2)
 
template<typename T >
quat< T > operator* (T const &s, quat< T > const &v)
 
template<typename T >
quat< T > operator* (quat< T > const &v, T const &s)
 
template<typename T >
quat< T > operator* (quat< T > const &q1, quat< T > const &q2)
 
template<typename T >
quat< T > operator* (quat< T > const &q, vec3< T > const &v)
 
template<typename T >
quat< T > operator/ (quat< T > const &q, T const &s)
 
template<typename T >
quat< T > operator- (quat< T > const &q)
 
template<typename T >
length (quat< T > const &v)
 
template<typename T >
quat< T > normalize (quat< T > const &v)
 
template<typename T >
dot (quat< T > const &q1, quat< T > const &q2)
 
template<typename T >
T const * valuePtr (quat< T > const &q)
 
template<typename T >
quat< T > mix (quat< T > const &q1, T t, quat< T > const &q2)
 
template<typename T >
quat< T > nlerp (quat< T > const &q1, T t, quat< T > const &q2)
 normalized linear interpolation of unit quats More...
 
template<typename T >
quat< T > slerp (quat< T > const &a, T t, quat< T > const &b)
 spherical linear interpolation of quats More...
 
float toFloat (unsigned char b)
 
unsigned char toByte (float f)
 
void ReportError (GLenum err, const char *file, int line, const char *msg)
 
void checkError (const char *file, int line, const char *msg)
 
template<typename T >
std::ostream & operator<< (std::ostream &s, vec2< T > const &v)
 output the vector to a stream More...
 
template<typename T >
vec2< T > operator+ (T const &s, vec2< T > const &v)
 
template<typename T >
vec2< T > operator+ (vec2< T > const &v, T const &s)
 
template<typename T >
vec2< T > operator+ (vec2< T > const &v1, vec2< T > const &v2)
 
template<typename T >
vec2< T > operator- (T const &s, vec2< T > const &v)
 
template<typename T >
vec2< T > operator- (vec2< T > const &v, T const &s)
 
template<typename T >
vec2< T > operator- (vec2< T > const &v1, vec2< T > const &v2)
 
template<typename T >
vec2< T > operator* (T const &s, vec2< T > const &v)
 
template<typename T >
vec2< T > operator* (vec2< T > const &v, T const &s)
 
template<typename T >
vec2< T > operator* (vec2< T > const &v1, vec2< T > const &v2)
 
template<typename T >
vec2< T > operator/ (vec2< T > const &v, T const &s)
 
template<typename T >
vec2< T > operator- (vec2< T > const &v)
 
template<typename T >
length (vec2< T > const &v)
 
template<typename T >
vec2< T > normalize (vec2< T > const &v)
 
template<typename T >
distance (vec2< T > const &p1, vec2< T > const &p2)
 
template<typename T >
dot (vec2< T > const &v1, vec2< T > const &v2)
 
template<typename T >
T const * valuePtr (vec2< T > const &v)
 
template<typename T >
vec2< T > mix (vec2< T > const &a, T t, vec2< T > const &b)
 linear interpolation of 2D vectors More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, vec3< T > const &v)
 output the vector to a stream More...
 
template<typename T >
vec3< T > operator+ (T const &s, vec3< T > const &v)
 
template<typename T >
vec3< T > operator+ (vec3< T > const &v, T const &s)
 
template<typename T >
vec3< T > operator+ (vec3< T > const &v1, vec3< T > const &v2)
 
template<typename T >
vec3< T > operator- (T const &s, vec3< T > const &v)
 
template<typename T >
vec3< T > operator- (vec3< T > const &v, T const &s)
 
template<typename T >
vec3< T > operator- (vec3< T > const &v1, vec3< T > const &v2)
 
template<typename T >
vec3< T > operator* (T const &s, vec3< T > const &v)
 
template<typename T >
vec3< T > operator* (vec3< T > const &v, T const &s)
 
template<typename T >
vec3< T > operator* (vec3< T > const &v1, vec3< T > const &v2)
 
template<typename T >
vec3< T > operator/ (vec3< T > const &v, T const &s)
 
template<typename T >
vec3< T > operator- (vec3< T > const &v)
 
template<typename T >
length (__detail::vec3< T > const &v)
 
template<typename T >
vec3< T > normalize (vec3< T > const &v)
 
template<typename T >
distance (vec3< T > const &p1, vec3< T > const &p2)
 
template<typename T >
dot (vec3< T > const &v1, vec3< T > const &v2)
 
template<typename T >
vec3< T > cross (vec3< T > const &v1, vec3< T > const &v2)
 
template<typename T >
T const * valuePtr (vec3< T > const &v)
 
template<typename T >
vec3< T > mix (vec3< T > const &a, T t, vec3< T > const &b)
 linear interpolation of 3D vectors More...
 
template<typename T >
std::ostream & operator<< (std::ostream &s, vec4< T > const &v)
 output the vector to a stream More...
 
template<typename T >
vec4< T > operator+ (T const &s, vec4< T > const &v)
 
template<typename T >
vec4< T > operator+ (vec4< T > const &v, T const &s)
 
template<typename T >
vec4< T > operator+ (vec4< T > const &v1, vec4< T > const &v2)
 
template<typename T >
vec4< T > operator- (T const &s, vec4< T > const &v)
 
template<typename T >
vec4< T > operator- (vec4< T > const &v, T const &s)
 
template<typename T >
vec4< T > operator- (vec4< T > const &v1, vec4< T > const &v2)
 
template<typename T >
vec4< T > operator* (T const &s, vec4< T > const &v)
 
template<typename T >
vec4< T > operator* (vec4< T > const &v, T const &s)
 
template<typename T >
vec4< T > operator* (vec4< T > const &v1, vec4< T > const &v2)
 
template<typename T >
vec4< T > operator/ (vec4< T > const &v, T const &s)
 
template<typename T >
vec4< T > operator- (vec4< T > const &v)
 
template<typename T >
length (vec4< T > const &v)
 
template<typename T >
vec4< T > normalize (vec4< T > const &v)
 
template<typename T >
distance (vec4< T > const &p1, vec4< T > const &p2)
 
template<typename T >
dot (vec4< T > const &v1, vec4< T > const &v2)
 
template<typename T >
T const * valuePtr (vec4< T > const &v)
 
template<typename T >
vec4< T > mix (vec4< T > const &a, T t, vec4< T > const &b)
 linear interpolation of 4D vectors More...
 

Function Documentation

void cs237::__detail::checkError ( const char *  file,
int  line,
const char *  msg 
)
inline
template<typename T >
vec3<T> cs237::__detail::cross ( vec3< T > const &  v1,
vec3< T > const &  v2 
)
inline
template<typename T >
T cs237::__detail::distance ( vec2< T > const &  p1,
vec2< T > const &  p2 
)
inline
template<typename T >
T cs237::__detail::distance ( vec3< T > const &  p1,
vec3< T > const &  p2 
)
inline
template<typename T >
T cs237::__detail::distance ( vec4< T > const &  p1,
vec4< T > const &  p2 
)
inline
template<typename T >
T cs237::__detail::dot ( vec2< T > const &  v1,
vec2< T > const &  v2 
)
inline
template<typename T >
T cs237::__detail::dot ( vec3< T > const &  v1,
vec3< T > const &  v2 
)
inline
template<typename T >
T cs237::__detail::dot ( vec4< T > const &  v1,
vec4< T > const &  v2 
)
inline
template<typename T >
T cs237::__detail::dot ( quat< T > const &  q1,
quat< T > const &  q2 
)
inline
template<typename T >
T cs237::__detail::length ( vec2< T > const &  v)
inline
template<typename T >
T cs237::__detail::length ( __detail::vec3< T > const &  v)
inline
template<typename T >
T cs237::__detail::length ( vec4< T > const &  v)
inline
template<typename T >
T cs237::__detail::length ( quat< T > const &  v)
inline
template<typename T >
vec2<T> cs237::__detail::mix ( vec2< T > const &  a,
t,
vec2< T > const &  b 
)
inline

linear interpolation of 2D vectors

Parameters
avalue for t = 0
tinterpolation factor
bvalue for t = 1
template<typename T >
vec4<T> cs237::__detail::mix ( vec4< T > const &  a,
t,
vec4< T > const &  b 
)
inline

linear interpolation of 4D vectors

Parameters
avalue for t = 0
tinterpolation factor
bvalue for t = 1
template<typename T >
vec3<T> cs237::__detail::mix ( vec3< T > const &  a,
t,
vec3< T > const &  b 
)
inline

linear interpolation of 3D vectors

Parameters
avalue for t = 0
tinterpolation factor
bvalue for t = 1
template<typename T >
quat<T> cs237::__detail::mix ( quat< T > const &  q1,
t,
quat< T > const &  q2 
)
inline
template<typename T >
quat<T> cs237::__detail::nlerp ( quat< T > const &  q1,
t,
quat< T > const &  q2 
)
inline

normalized linear interpolation of unit quats

template<typename T >
vec2<T> cs237::__detail::normalize ( vec2< T > const &  v)
inline
template<typename T >
vec3<T> cs237::__detail::normalize ( vec3< T > const &  v)
inline
template<typename T >
vec4<T> cs237::__detail::normalize ( vec4< T > const &  v)
inline
template<typename T >
quat<T> cs237::__detail::normalize ( quat< T > const &  v)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( T const &  s,
vec2< T > const &  v 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( T const &  s,
vec3< T > const &  v 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( vec2< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator* ( T const &  s,
vec4< T > const &  v 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( vec3< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( vec2< T > const &  v1,
vec2< T > const &  v2 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator* ( T const &  s,
mat2x3< T > const &  m 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator* ( vec4< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( vec3< T > const &  v1,
vec3< T > const &  v2 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator* ( vec4< T > const &  v1,
vec4< T > const &  v2 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator* ( T const &  s,
mat3x2< T > const &  m 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator* ( mat2x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator* ( mat3x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( vec3< T > const &  v,
mat2x3< T > const &  m 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( mat2x3< T > const &  m,
vec2< T > const &  v 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( vec2< T > const &  v,
mat3x2< T > const &  m 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( mat3x2< T > const &  m,
vec3< T > const &  v 
)
inline
template<typename T >
quat<T> cs237::__detail::operator* ( T const &  s,
quat< T > const &  v 
)
inline
template<typename T >
quat<T> cs237::__detail::operator* ( quat< T > const &  v,
T const &  s 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator* ( mat2x2< T > const &  m1,
mat3x2< T > const &  m2 
)
inline

multiply a 2x2 matrix times a 3x2 matrix, producing a 3x2 matrix

template<typename T >
quat<T> cs237::__detail::operator* ( quat< T > const &  q1,
quat< T > const &  q2 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator* ( T const &  s,
mat2x2< T > const &  m 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator* ( mat3x2< T > const &  m1,
mat3x3< T > const &  m2 
)
inline

multiply a 3x2 matrix times a 3x3 matrix, producing a 3x2 matrix

template<typename T >
quat<T> cs237::__detail::operator* ( quat< T > const &  q,
vec3< T > const &  v 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator* ( mat2x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator* ( T const &  s,
mat4x4< T > const &  m 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator* ( mat4x4< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( vec2< T > const &  v,
mat2x2< T > const &  m 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator* ( mat2x2< T > const &  m,
vec2< T > const &  v 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator* ( vec4< T > const &  v,
mat4x4< T > const &  m 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator* ( T const &  s,
mat3x3< T > const &  m 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator* ( mat4x4< T > const &  m,
vec4< T > const &  v 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator* ( mat2x2< T > const &  m1,
mat2x2< T > const &  m2 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator* ( mat3x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( vec3< T > const &  v,
mat3x3< T > const &  m 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator* ( mat4x4< T > const &  m1,
mat4x4< T > const &  m2 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator* ( mat3x3< T > const &  m,
vec3< T > const &  v 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator* ( mat3x3< T > const &  m1,
mat3x3< T > const &  m2 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator+ ( T const &  s,
vec2< T > const &  v 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator+ ( T const &  s,
mat2x3< T > const &  m 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator+ ( T const &  s,
vec3< T > const &  v 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator+ ( vec2< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator+ ( T const &  s,
vec4< T > const &  v 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator+ ( vec3< T > const &  v,
T const &  s 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator+ ( T const &  s,
mat3x2< T > const &  m 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator+ ( vec2< T > const &  v1,
vec2< T > const &  v2 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator+ ( mat2x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator+ ( vec4< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator+ ( vec3< T > const &  v1,
vec3< T > const &  v2 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator+ ( mat3x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator+ ( vec4< T > const &  v1,
vec4< T > const &  v2 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator+ ( mat2x3< T > const &  m1,
mat2x3< T > const &  m2 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator+ ( mat3x2< T > const &  m1,
mat3x2< T > const &  m2 
)
inline
template<typename T >
AABB<T> cs237::__detail::operator+ ( AABB< T > const &  bb1,
AABB< T > &  bb2 
)
inline

compute the union of two axis-aligned bounding boxes

Parameters
bb1an axis-aligned bounding box
bb2an axis-aligned bounding box
Returns
the smallest AABB that contains both
  • bb1 and
  • bb2.
template<typename T >
mat2x2<T> cs237::__detail::operator+ ( T const &  s,
mat2x2< T > const &  m 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator+ ( mat2x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator+ ( T const &  s,
mat4x4< T > const &  m 
)
inline
template<typename T >
quat<T> cs237::__detail::operator+ ( quat< T > const &  v1,
quat< T > const &  v2 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator+ ( mat2x2< T > const &  m1,
mat2x2< T > const &  m2 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator+ ( mat4x4< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator+ ( mat4x4< T > const &  m1,
mat4x4< T > const &  m2 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator+ ( T const &  s,
mat3x3< T > const &  m 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator+ ( mat3x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator+ ( mat3x3< T > const &  m1,
mat3x3< T > const &  m2 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator- ( T const &  s,
vec2< T > const &  v 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator- ( T const &  s,
vec3< T > const &  v 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator- ( vec2< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator- ( T const &  s,
vec4< T > const &  v 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator- ( T const &  s,
mat2x3< T > const &  m 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator- ( vec3< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator- ( vec2< T > const &  v1,
vec2< T > const &  v2 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator- ( vec4< T > const &  v,
T const &  s 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator- ( T const &  s,
mat3x2< T > const &  m 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator- ( vec3< T > const &  v1,
vec3< T > const &  v2 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator- ( mat2x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator- ( vec4< T > const &  v1,
vec4< T > const &  v2 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator- ( mat3x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator- ( mat2x3< T > const &  m1,
mat2x3< T > const &  m2 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator- ( mat3x2< T > const &  m1,
mat3x2< T > const &  m2 
)
inline
template<typename T >
vec2<T> cs237::__detail::operator- ( vec2< T > const &  v)
inline
template<typename T >
vec3<T> cs237::__detail::operator- ( vec3< T > const &  v)
inline
template<typename T >
vec4<T> cs237::__detail::operator- ( vec4< T > const &  v)
inline
template<typename T >
quat<T> cs237::__detail::operator- ( quat< T > const &  v1,
quat< T > const &  v2 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator- ( T const &  s,
mat2x2< T > const &  m 
)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator- ( mat2x2< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator- ( T const &  s,
mat4x4< T > const &  m 
)
inline
template<typename T >
mat2x3<T> cs237::__detail::operator- ( mat2x3< T > const &  m)
inline

unary negation

template<typename T >
mat2x2<T> cs237::__detail::operator- ( mat2x2< T > const &  m1,
mat2x2< T > const &  m2 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator- ( mat4x4< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat4x4<T> cs237::__detail::operator- ( mat4x4< T > const &  m1,
mat4x4< T > const &  m2 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator- ( T const &  s,
mat3x3< T > const &  m 
)
inline
template<typename T >
mat3x3<T> cs237::__detail::operator- ( mat3x3< T > const &  m,
T const &  s 
)
inline
template<typename T >
mat3x2<T> cs237::__detail::operator- ( mat3x2< T > const &  m)
inline

unary negation

template<typename T >
mat3x3<T> cs237::__detail::operator- ( mat3x3< T > const &  m1,
mat3x3< T > const &  m2 
)
inline
template<typename T >
quat<T> cs237::__detail::operator- ( quat< T > const &  q)
inline
template<typename T >
mat2x2<T> cs237::__detail::operator- ( mat2x2< T > const &  m)
inline

unary negation

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

unary negation

template<typename T >
__detail::mat3x3<T> cs237::__detail::operator- ( __detail::mat3x3< T > const &  m)
inline

unary negation

template<typename T >
vec2<T> cs237::__detail::operator/ ( vec2< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec3<T> cs237::__detail::operator/ ( vec3< T > const &  v,
T const &  s 
)
inline
template<typename T >
vec4<T> cs237::__detail::operator/ ( vec4< T > const &  v,
T const &  s 
)
inline
template<typename T >
quat<T> cs237::__detail::operator/ ( quat< T > const &  q,
T const &  s 
)
inline
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
mat2x3< T > const &  m 
)

output the matrix to a stream as a sequence of column vectors

Parameters
sthe stream to print to
mthe matrix to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
mat3x2< T > const &  m 
)

output the matrix to a stream as a sequence of column vectors

Parameters
sthe stream to print to
mthe matrix to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
vec2< T > const &  v 
)

output the vector to a stream

Parameters
sthe stream to print to
vthe vector to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
vec3< T > const &  v 
)

output the vector to a stream

Parameters
sthe stream to print to
vthe vector to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
quat< T > const &  v 
)

output the vector to a stream

Parameters
sthe stream to print to
vthe vector to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
vec4< T > const &  v 
)

output the vector to a stream

Parameters
sthe stream to print to
vthe vector to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
mat2x2< T > const &  m 
)

output the matrix to a stream as a sequence of column vectors

Parameters
sthe stream to print to
mthe matrix to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
mat4x4< T > const &  m 
)

output the matrix to a stream as a sequence of column vectors

Parameters
sthe stream to print to
mthe matrix to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
mat3x3< T > const &  m 
)

output the matrix to a stream as a sequence of column vectors

Parameters
sthe stream to print to
mthe matrix to print
template<typename T >
std::ostream& cs237::__detail::operator<< ( std::ostream &  s,
__detail::AABB< T > const &  bb 
)

print the axis-aligned bounding box to the output stream

template<typename T >
mat2x3<T> cs237::__detail::outerProduct ( vec3< T > const &  cv,
vec2< T > const &  rv 
)
inline

outer product of column vector * row vector

Parameters
cva row vector
rva column vector
template<typename T >
mat3x2<T> cs237::__detail::outerProduct ( vec2< T > const &  cv,
vec3< T > const &  rv 
)
inline

outer product of column vector * row vector

Parameters
cva row vector
rva column vector
template<typename T >
mat2x2<T> cs237::__detail::outerProduct ( vec2< T > const &  cv,
vec2< T > const &  rv 
)
inline

outer product of column vector * row vector

Parameters
cva row vector
rva column vector
template<typename T >
mat4x4<T> cs237::__detail::outerProduct ( vec4< T > const &  cv,
vec4< T > const &  rv 
)
inline

outer product of column vector * row vector

Parameters
cva row vector
rva column vector
template<typename T >
__detail::mat3x3<T> cs237::__detail::outerProduct ( __detail::vec3< T > const &  cv,
__detail::vec3< T > const &  rv 
)
inline

outer product of column vector * row vector

Parameters
cva row vector
rva column vector
void cs237::__detail::ReportError ( GLenum  err,
const char *  file,
int  line,
const char *  msg 
)
template<typename T >
quat<T> cs237::__detail::slerp ( quat< T > const &  a,
t,
quat< T > const &  b 
)
inline

spherical linear interpolation of quats

Parameters
avalue for t = 0
tinterpolation factor
bvalue for t = 1
unsigned char cs237::__detail::toByte ( float  f)
inline
float cs237::__detail::toFloat ( unsigned char  b)
inline
unsigned char const* cs237::__detail::valuePtr ( color3ub const &  c)
inline
unsigned char const* cs237::__detail::valuePtr ( color4ub const &  c)
inline
float const* cs237::__detail::valuePtr ( color3f const &  c)
inline
float const* cs237::__detail::valuePtr ( color4f const &  c)
inline
template<typename T >
T const* cs237::__detail::valuePtr ( vec2< T > const &  v)
inline
template<typename T >
T const* cs237::__detail::valuePtr ( mat2x3< T > const &  m)
inline

get a pointer to the matrix's data (in column-major order)

template<typename T >
T const* cs237::__detail::valuePtr ( vec4< T > const &  v)
inline
template<typename T >
T const* cs237::__detail::valuePtr ( vec3< T > const &  v)
inline
template<typename T >
T const* cs237::__detail::valuePtr ( mat3x2< T > const &  m)
inline

get a pointer to the matrix's data (in column-major order)

template<typename T >
T const* cs237::__detail::valuePtr ( quat< T > const &  q)
inline
template<typename T >
T const* cs237::__detail::valuePtr ( mat2x2< T > const &  m)
inline

get a pointer to the matrix's data (in column-major order)

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

get a pointer to the matrix's data (in column-major order)

template<typename T >
T const* cs237::__detail::valuePtr ( mat3x3< T > const &  m)
inline

get a pointer to the matrix's data (in column-major order)