39template <
class DT> 
class Tvec2;
 
   40template <
class DT> 
class Tvec3;
 
   41template <
class DT> 
class Tmat3;
 
   42template <
class DT> 
class Tmat4;
 
   77  inline Tvec4(
const DT x, 
const DT y, 
const DT z, 
const DT w)
 
   79    Superclass::_buffer[0] = x;
 
   80    Superclass::_buffer[1] = y;
 
   81    Superclass::_buffer[2] = z;
 
   82    Superclass::_buffer[3] = w;
 
 
   88    Superclass::_buffer[0] = v[0];
 
   89    Superclass::_buffer[1] = v[1];
 
   90    Superclass::_buffer[2] = z;
 
   91    Superclass::_buffer[3] = w;
 
 
   97    Superclass::_buffer[0] = v[0];
 
   98    Superclass::_buffer[1] = v[1];
 
   99    Superclass::_buffer[2] = v[2];
 
  100    Superclass::_buffer[3] = w;
 
 
  104  inline void assign(
const DT x, 
const DT y, 
const DT z, 
const DT c)
 
  106    Superclass::_buffer[0] = x;
 
  107    Superclass::_buffer[1] = y;
 
  108    Superclass::_buffer[2] = z;
 
  109    Superclass::_buffer[3] = c;
 
 
  118    const DT lastComp = Superclass::_buffer[3];
 
  121    const DT div = 
static_cast<DT
>(1) / lastComp;
 
  122    return Tvec4<DT>(Superclass::_buffer[0] * div,
 
  123                     Superclass::_buffer[1] * div,
 
  124                     Superclass::_buffer[2] * div, 1);
 
 
 
  130#define _ML_VEC4_RC(i) a[i][0]*v[0] + a[i][1]*v[1] + a[i][2]*v[2] + a[i][3]*v[3] 
Template class for vector arithmetic with floating point datatypes.
 
A 4x4 matrix class consisting of four row vectors.
 
Tmat4< DT > transpose() const
Returns the transposed *this.
 
Declaration of float vector type traits.
 
Forward declarations to resolve header file dependencies.
 
Forward declarations to resolve header file dependencies.
 
Tvec4(const DT value=0)
Default and value constructor. Sets all entries to a user given value.
 
FloatingPointVector< DT, 4 > Superclass
A typedef as a shorthand for the base class.
 
void assign(const DT x, const DT y, const DT z, const DT c)
Sets all components to the passed values.
 
Tvec4(const Tvec2< DT > &v, const DT z, const DT w)
Casts Vector2 to Tvec4. Sets last two entries are given by z and w.
 
Tvec4< DT > divideByLastComp() const
Divides all vector components by its last component and returns it as Tvec4, which then has a 1 as la...
 
Tvec4(const DT x, const DT y, const DT z, const DT w)
Builds the vector from the scalars x, y, z, and w to the components 0 to 3, respectively.
 
Tvec4(const Tvec3< DT > &v, const DT w)
Casts Vector3 to Tvec4. Sets last entry to the passed value w.
 
DT ComponentType
A typedef to 'export' the type of components.
 
Tvec4(const Superclass &v)
Copy constructor from FloatingPointVector.
 
#define ML_CHECK_FLOAT_THROW(x)
 
#define _ML_VEC4_RC(i)
Internal helper macro for tMat4 with Tvec4 multiplications. Do not use.
 
T operator*(const FloatingPointVector< T, size, DataContainer > &a, const FloatingPointVector< T, size, DataContainer > &b)
Dot product, returns a.dot(b).