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

template class for four-element vectors More...

#include <cs237-types.hxx>

Public Member Functions

 vec4 ()
 
 vec4 (vec4 const &v)
 
 vec4 (T xx)
 
 vec4 (T xx, T yy)
 
 vec4 (T xx, T yy, T zz)
 
 vec4 (T xx, T yy, T zz, T ww)
 
 vec4 (vec2< T > const &v)
 
 vec4 (vec2< T > const &v, T zz)
 
 vec4 (vec2< T > const &v, T zz, T ww)
 
 vec4 (vec3< T > const &v)
 
 vec4 (vec3< T > const &v, T ww)
 
vec4operator= (vec4 const &v)
 
vec4operator+= (T const &s)
 add a scalar to this vector More...
 
vec4operator+= (vec4 const &v)
 add a vector to this vector More...
 
vec4operator-= (T const &s)
 subtract a scalar from this vector More...
 
vec4operator-= (vec4 const &v)
 subtract a vector from this vector More...
 
vec4operator*= (T const &s)
 multiply this vector by a scalar More...
 
vec4operator*= (vec4 const &v)
 component-wise vector multiplication More...
 
vec4operator/= (T const &s)
 divide this vector by a scalar More...
 
length () const
 the length (magnitude) of the vector More...
 
vec4normalize ()
 normalize the vector More...
 
T & operator[] (unsigned int const &i)
 
T const & operator[] (unsigned int const &i) const
 

Public Attributes

x
 
y
 
z
 
w
 

Detailed Description

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

template class for four-element vectors

Constructor & Destructor Documentation

template<typename T>
cs237::__detail::vec4< T >::vec4 ( )
inline
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec4< T > const &  v)
inline
template<typename T>
cs237::__detail::vec4< T >::vec4 ( xx)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( xx,
yy 
)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( xx,
yy,
zz 
)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( xx,
yy,
zz,
ww 
)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec2< T > const &  v)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec2< T > const &  v,
zz 
)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec2< T > const &  v,
zz,
ww 
)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec3< T > const &  v)
inlineexplicit
template<typename T>
cs237::__detail::vec4< T >::vec4 ( vec3< T > const &  v,
ww 
)
inlineexplicit

Member Function Documentation

template<typename T >
T cs237::__detail::vec4< T >::length ( ) const
inline

the length (magnitude) of the vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::normalize ( )
inline

normalize the vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator*= ( T const &  s)
inline

multiply this vector by a scalar

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator*= ( vec4< T > const &  v)
inline

component-wise vector multiplication

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator+= ( T const &  s)
inline

add a scalar to this vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator+= ( vec4< T > const &  v)
inline

add a vector to this vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator-= ( T const &  s)
inline

subtract a scalar from this vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator-= ( vec4< T > const &  v)
inline

subtract a vector from this vector

template<typename T >
vec4< T > & cs237::__detail::vec4< T >::operator/= ( T const &  s)
inline

divide this vector by a scalar

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

return the ith element of the vector

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

Member Data Documentation

template<typename T>
T cs237::__detail::vec4< T >::w
template<typename T>
T cs237::__detail::vec4< T >::x
template<typename T>
T cs237::__detail::vec4< T >::y
template<typename T>
T cs237::__detail::vec4< T >::z

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