4D vector More...

#include <size.h>

+ Inheritance diagram for clan::Vec4< Type >:

Public Types

typedef Type datatype
 

Public Member Functions

 Vec4 ()
 
 Vec4 (const Type &p1, const Type &p2, const Type &p3, const Type &p4)
 
 Vec4 (const Type &p1, const Type &p2, const Vec2< Type > &copy34)
 
 Vec4 (const Type &scalar)
 
 Vec4 (const Type *array_xyzw)
 
 Vec4 (const Vec2< Type > &copy, const Type &p3, const Type &p4)
 
 Vec4 (const Vec2< Type > &copy, const Vec2< Type > &copy34)
 
 Vec4 (const Vec3< Type > &copy, const Type &p4)
 
double length3 () const
 
float length3 () const
 
double length4 () const
 
float length4 () const
 
Attributes
void set_xy (const Vec2< Type > &new_v)
 
void set_zw (const Vec2< Type > &new_v)
 
Type length3 () const
 Returns the length (magnitude) of this vector (not taking into account the w ordinate). More...
 
Type length4 () const
 Returns the length (magnitude) of this vector (taking into account the w ordinate). More...
 
Vec4< Type > & normalize3 ()
 Normalizes this vector (not taking into account the w ordinate) More...
 
Vec4< Type > & normalize4 ()
 Normalizes this vector (taking into account the w ordinate) More...
 
Type dot3 (const Vec4< Type > &vector) const
 Dot products this vector with an other vector (not taking into account the w ordinate). More...
 
Type dot4 (const Vec4< Type > &vector) const
 Dot products this vector with an other vector (taking into account the w ordinate). More...
 
Angle angle3 (const Vec4< Type > &vector) const
 Calculate the angle between this vector and an other vector (not taking into account the w ordinate). More...
 
Type distance3 (const Vec4< Type > &vector) const
 Calculate the distance between this vector and an other vector (not taking into account the w ordinate). More...
 
Type distance4 (const Vec4< Type > &vector) const
 Calculate the distance between this vector and an other vector (taking into account the w ordinate). More...
 
Vec4< Type > & cross3 (const Vec4< Type > &vector)
 Calculate the cross product between this vector and an other vector (not taking into account the w ordinate). More...
 
Vec4< Type > & rotate3 (const Angle &angle, const Vec4< Type > &axis)
 Rotate this vector around an axis. Same as glRotate[f|d](angle, a);. More...
 
Vec4< Type > & round ()
 Rounds all components on this vector. More...
 
bool is_equal (const Vec4< Type > &other, Type epsilon) const
 Returns true if equal within the bounds of an epsilon. More...
 
Operators
void operator+= (const Vec4< Type > &vector)
 += operator. More...
 
void operator+= (Type value)
 += operator. More...
 
void operator-= (const Vec4< Type > &vector)
 -= operator. More...
 
void operator-= (Type value)
 -= operator. More...
 
Vec4< Type > operator- () const
 
  • operator.
More...
 
void operator*= (const Vec4< Type > &vector)
 *= operator. More...
 
void operator*= (Type value)
 *= operator. More...
 
void operator/= (const Vec4< Type > &vector)
 /= operator. More...
 
void operator/= (Type value)
 /= operator. More...
 
Vec4< Type > & operator= (const Vec4< Type > &vector)
 = operator. More...
 
bool operator== (const Vec4< Type > &vector) const
 == operator. More...
 
bool operator!= (const Vec4< Type > &vector) const
 != operator. More...
 
bool operator< (const Vec4< Type > &vector) const
 < operator. More...
 

Static Public Member Functions

static Vec4< Type > cross3 (const Vec4< Type > &vector1, const Vec4< Type > &vector2)
 Calculate the cross product between two vectors (not taking into account the w ordinate). More...
 
static Type dot3 (const Vec4< Type > &vector1, const Vec4< Type > &vector2)
 Dot products between two vectors (not taking into account the w ordinate). More...
 
static Type dot4 (const Vec4< Type > &vector1, const Vec4< Type > &vector2)
 Dot products between two vectors (taking into account the w ordinate). More...
 
static bool is_equal (const Vec4< Type > &first, const Vec4< Type > &second, Type epsilon)
 Returns true if equal within the bounds of an epsilon. More...
 
static Vec4< Type > normalize3 (const Vec4< Type > &vector)
 Normalizes a vector (not taking into account the w ordinate) More...
 
static Vec4< Type > normalize4 (const Vec4< Type > &vector)
 Normalizes a vector (taking into account the w ordinate) More...
 
static Vec4< Type > rotate3 (const Vec4< Type > &vector, const Angle &angle, const Vec4< Type > &axis)
 Rotate a vector around an axis. Same as glRotate[f|d](angle, a);. More...
 
static Vec4< Type > round (const Vec4< Type > &vector)
 Rounds all components on a vector. More...
 

Public Attributes

union {
   Type   clan::Vec4< Type >::r
 
   Type   clan::Vec4< Type >::s
 
   Type   clan::Vec4< Type >::x
 
}; 
 
union {
   Type   clan::Vec4< Type >::g
 
   Type   clan::Vec4< Type >::t
 
   Type   clan::Vec4< Type >::y
 
}; 
 
union {
   Type   clan::Vec4< Type >::b
 
   Type   clan::Vec4< Type >::u
 
   Type   clan::Vec4< Type >::z
 
}; 
 
union {
   Type   clan::Vec4< Type >::a
 
   Type   clan::Vec4< Type >::v
 
   Type   clan::Vec4< Type >::w
 
}; 
 

Detailed Description

template<typename Type>
class clan::Vec4< Type >

4D vector

These vector templates are defined for:
char (Vec4c), unsigned char (Vec4uc), short (Vec4s),
unsigned short (Vec4us), int (Vec4i), unsigned int (Vec4ui), float (Vec4f), double (Vec4d)

Member Function Documentation

◆ length3() [1/2]

double clan::Vec4< double >::length3 ( ) const
inline

◆ length3() [2/2]

float clan::Vec4< float >::length3 ( ) const
inline

◆ length4() [1/2]

double clan::Vec4< double >::length4 ( ) const
inline

◆ length4() [2/2]

float clan::Vec4< float >::length4 ( ) const
inline

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