Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clan::Vec4< Type > Class Template Reference
clanCore Math

4D vector More...

`#include <size.h>`

Inheritance diagram for clan::Vec4< Type >:

## Public Types
typedef Type | datatype

## Public Member Functions
| Vec4 ()
| Vec4 (const Type &scalar)
| 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)
| 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 *array_xyzw)
template<>
double | length3 () const
template<>
float | length3 () const
template<>
double | length4 () const
template<>
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

template<>

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

References clan::x, clan::y, and clan::z.

template<>

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

References clan::x, clan::y, and clan::z.

template<>

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

References clan::w, clan::x, clan::y, and clan::z.

template<>

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

References clan::w, clan::x, clan::y, and clan::z.

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

- size.h
- vec4.h