CL_Vec4< Type > Class Template Reference
[clanCore Math]

4D vector More...

#include <vec4.h>

List of all members.

Public Types

typedef Type datatype

Public Member Functions

 CL_Vec4 ()
 CL_Vec4 (const CL_Vec1< Type > &copy)
 CL_Vec4 (const CL_Vec2< Type > &copy)
 CL_Vec4 (const CL_Vec3< Type > &copy)
 CL_Vec4 (const Type &p1, const Type &p2=0, const Type &p3=0, const Type &p4=0)
Attributes
*Type length3 () const
 Returns the length (magnitude) of this vector (not taking into account the w ordinate).
*Type length4 () const
 Returns the length (magnitude) of this vector (taking into account the w ordinate).
CL_Vec4< Type > & normalize3 ()
 Normalizes this vector (not taking into account the w ordinate).
CL_Vec4< Type > & normalize4 ()
 Normalizes this vector (taking into account the w ordinate).
Type dot3 (const CL_Vec4< Type > &vector) const
 Dot products this vector with an other vector (not taking into account the w ordinate).
Type dot4 (const CL_Vec4< Type > &vector) const
 Dot products this vector with an other vector (taking into account the w ordinate).
CL_Angle angle3 (const CL_Vec4< Type > &vector) const
 Calculate the angle between this vector and an other vector (not taking into account the w ordinate).
Type distance3 (const CL_Vec4< Type > &vector) const
 Calculate the distance between this vector and an other vector (not taking into account the w ordinate).
Type distance4 (const CL_Vec4< Type > &vector) const
 Calculate the distance between this vector and an other vector (taking into account the w ordinate).
CL_Vec4< Type > & cross3 (const CL_Vec4< Type > &vector)
 Calculate the cross product between this vector and an other vector (not taking into account the w ordinate).
CL_Vec4< Type > & rotate3 (const CL_Angle &angle, const CL_Vec4< Type > &axis)
 Rotate this vector around an axis. Same as glRotate[f|d](angle, a);.
CL_Vec4< Type > & round ()
 Rounds all components on this vector.
Operators
const Type & operator[] (unsigned int i) const
Type & operator[] (unsigned int i)
 operator Type * ()
 operator Type *const () const
void operator+= (const CL_Vec4< Type > &vector)
 += operator.
void operator+= (Type value)
 += operator.
CL_Vec4< Type > operator+ (const CL_Vec4< Type > &vector) const
 + operator.
CL_Vec4< Type > operator+ (Type value) const
 + operator.
void operator-= (const CL_Vec4< Type > &vector)
 -= operator.
void operator-= (Type value)
 -= operator.
CL_Vec4< Type > operator- (const CL_Vec4< Type > &vector) const
 
  • operator.

CL_Vec4< Type > operator- (Type value) const
 
  • operator.

void operator *= (const CL_Vec4< Type > &vector)
 *= operator.
void operator *= (Type value)
 *= operator.
CL_Vec4< Type > operator * (const CL_Vec4< Type > &vector) const
 * operator.
CL_Vec4< Type > operator * (Type value) const
 * operator.
void operator/= (const CL_Vec4< Type > &vector)
 /= operator.
void operator/= (Type value)
 /= operator.
CL_Vec4< Type > operator/ (const CL_Vec4< Type > &vector) const
 / operator.
CL_Vec4< Type > operator/ (Type value) const
 / operator.
CL_Vec4< Type > & operator= (const CL_Vec4< Type > &vector)
 = operator.
bool operator== (const CL_Vec4< Type > &vector) const
 == operator.
bool operator!= (const CL_Vec4< Type > &vector) const
 != operator.

Static Public Member Functions

static CL_Vec4< Type > normalize3 (const CL_Vec4< Type > &vector)
 Normalizes a vector (not taking into account the w ordinate).
static CL_Vec4< Type > normalize4 (const CL_Vec4< Type > &vector)
 Normalizes a vector (taking into account the w ordinate).
static Type dot3 (const CL_Vec4< Type > &vector1, const CL_Vec4< Type > &vector2)
 Dot products between two vectors (not taking into account the w ordinate).
static Type dot4 (const CL_Vec4< Type > &vector1, const CL_Vec4< Type > &vector2)
 Dot products between two vectors (taking into account the w ordinate).
static CL_Vec4< Type > cross3 (const CL_Vec4< Type > &vector1, const CL_Vec4< Type > &vector2)
 Calculate the cross product between two vectors (not taking into account the w ordinate).
static CL_Vec4< Type > rotate3 (const CL_Vec4< Type > &vector, const CL_Angle &angle, const CL_Vec4< Type > &axis)
 Rotate a vector around an axis. Same as glRotate[f|d](angle, a);.
static CL_Vec4< Type > round (const CL_Vec4< Type > &vector)
 Rounds all components on a vector.


Detailed Description

template<typename Type>
class CL_Vec4< Type >

4D vector

These vector templates are defined for:
char (CL_Vec4c), unsigned char (CL_Vec4uc), short (CL_Vec4s),
unsigned short (CL_Vec4us), int (CL_Vec4i), unsigned int (CL_Vec4ui), float (CL_Vec4f), double (CL_Vec4d)


Member Typedef Documentation

template<typename Type>
typedef Type CL_Vec4< Type >::datatype
 


Constructor & Destructor Documentation

template<typename Type>
CL_Vec4< Type >::CL_Vec4  )  [inline]
 

template<typename Type>
CL_Vec4< Type >::CL_Vec4 const CL_Vec1< Type > &  copy  )  [inline]
 

template<typename Type>
CL_Vec4< Type >::CL_Vec4 const CL_Vec2< Type > &  copy  )  [inline]
 

template<typename Type>
CL_Vec4< Type >::CL_Vec4 const CL_Vec3< Type > &  copy  )  [inline]
 

template<typename Type>
CL_Vec4< Type >::CL_Vec4 const Type &  p1,
const Type &  p2 = 0,
const Type &  p3 = 0,
const Type &  p4 = 0
[inline]
 


Member Function Documentation

template<typename Type>
CL_Angle CL_Vec4< Type >::angle3 const CL_Vec4< Type > &  vector  )  const
 

Calculate the angle between this vector and an other vector (not taking into account the w ordinate).

Parameters:
vector = Second vector used to calculate angle.
Returns:
The angle between the two vectors.

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::cross3 const CL_Vec4< Type > &  vector  ) 
 

Calculate the cross product between this vector and an other vector (not taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector Second vector used to perform the calculation.
Returns:
reference to this object

template<typename Type>
static CL_Vec4<Type> CL_Vec4< Type >::cross3 const CL_Vec4< Type > &  vector1,
const CL_Vec4< Type > &  vector2
[static]
 

Calculate the cross product between two vectors (not taking into account the w ordinate).

= The first vector = The second vector

Returns:
= Cross product

template<typename Type>
Type CL_Vec4< Type >::distance3 const CL_Vec4< Type > &  vector  )  const
 

Calculate the distance between this vector and an other vector (not taking into account the w ordinate).

Parameters:
vector = Second vector used to calculate distance.
Returns:
The distance between the two vectors.

template<typename Type>
Type CL_Vec4< Type >::distance4 const CL_Vec4< Type > &  vector  )  const
 

Calculate the distance between this vector and an other vector (taking into account the w ordinate).

Parameters:
vector = Second vector used to calculate distance.
Returns:
The distance between the two vectors.

template<typename Type>
Type CL_Vec4< Type >::dot3 const CL_Vec4< Type > &  vector  )  const [inline]
 

Dot products this vector with an other vector (not taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector Second vector used for the dot product.
Returns:
The resulting dot product of the two vectors.

template<typename Type>
static Type CL_Vec4< Type >::dot3 const CL_Vec4< Type > &  vector1,
const CL_Vec4< Type > &  vector2
[inline, static]
 

Dot products between two vectors (not taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector Second vector used for the dot product.
Returns:
The resulting dot product of the two vectors.

template<typename Type>
Type CL_Vec4< Type >::dot4 const CL_Vec4< Type > &  vector  )  const [inline]
 

Dot products this vector with an other vector (taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector Second vector used for the dot product.
Returns:
The resulting dot product of the two vectors.

template<typename Type>
static Type CL_Vec4< Type >::dot4 const CL_Vec4< Type > &  vector1,
const CL_Vec4< Type > &  vector2
[inline, static]
 

Dot products between two vectors (taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector Second vector used for the dot product.
Returns:
The resulting dot product of the two vectors.

template<typename Type>
* Type CL_Vec4< Type >::length3  )  const
 

Returns the length (magnitude) of this vector (not taking into account the w ordinate).

Operates in the native datatype

Returns:
the length of the vector

template<typename Type>
* Type CL_Vec4< Type >::length4  )  const
 

Returns the length (magnitude) of this vector (taking into account the w ordinate).

Operates in the native datatype

Returns:
the length of the vector

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::normalize3  ) 
 

Normalizes this vector (not taking into account the w ordinate).

Operates in the native datatype

Returns:
reference to this object

template<typename Type>
static CL_Vec4<Type> CL_Vec4< Type >::normalize3 const CL_Vec4< Type > &  vector  )  [static]
 

Normalizes a vector (not taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector = The vector to use
Returns:
the normalized vector

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::normalize4  ) 
 

Normalizes this vector (taking into account the w ordinate).

Operates in the native datatype

Returns:
reference to this object

template<typename Type>
static CL_Vec4<Type> CL_Vec4< Type >::normalize4 const CL_Vec4< Type > &  vector  )  [static]
 

Normalizes a vector (taking into account the w ordinate).

Operates in the native datatype

Parameters:
vector = The vector to use
Returns:
the normalized vector

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator * Type  value  )  const [inline]
 

* operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator * const CL_Vec4< Type > &  vector  )  const [inline]
 

* operator.

template<typename Type>
void CL_Vec4< Type >::operator *= Type  value  )  [inline]
 

*= operator.

template<typename Type>
void CL_Vec4< Type >::operator *= const CL_Vec4< Type > &  vector  )  [inline]
 

*= operator.

template<typename Type>
CL_Vec4< Type >::operator Type *  )  [inline]
 

template<typename Type>
CL_Vec4< Type >::operator Type *const  )  const [inline]
 

template<typename Type>
bool CL_Vec4< Type >::operator!= const CL_Vec4< Type > &  vector  )  const [inline]
 

!= operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator+ Type  value  )  const [inline]
 

+ operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator+ const CL_Vec4< Type > &  vector  )  const [inline]
 

+ operator.

template<typename Type>
void CL_Vec4< Type >::operator+= Type  value  )  [inline]
 

+= operator.

template<typename Type>
void CL_Vec4< Type >::operator+= const CL_Vec4< Type > &  vector  )  [inline]
 

+= operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator- Type  value  )  const [inline]
 

  • operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator- const CL_Vec4< Type > &  vector  )  const [inline]
 

  • operator.

template<typename Type>
void CL_Vec4< Type >::operator-= Type  value  )  [inline]
 

-= operator.

template<typename Type>
void CL_Vec4< Type >::operator-= const CL_Vec4< Type > &  vector  )  [inline]
 

-= operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator/ Type  value  )  const [inline]
 

/ operator.

template<typename Type>
CL_Vec4<Type> CL_Vec4< Type >::operator/ const CL_Vec4< Type > &  vector  )  const [inline]
 

/ operator.

template<typename Type>
void CL_Vec4< Type >::operator/= Type  value  )  [inline]
 

/= operator.

template<typename Type>
void CL_Vec4< Type >::operator/= const CL_Vec4< Type > &  vector  )  [inline]
 

/= operator.

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::operator= const CL_Vec4< Type > &  vector  )  [inline]
 

= operator.

template<typename Type>
bool CL_Vec4< Type >::operator== const CL_Vec4< Type > &  vector  )  const [inline]
 

== operator.

template<typename Type>
Type& CL_Vec4< Type >::operator[] unsigned int  i  )  [inline]
 

template<typename Type>
const Type& CL_Vec4< Type >::operator[] unsigned int  i  )  const [inline]
 

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::rotate3 const CL_Angle angle,
const CL_Vec4< Type > &  axis
 

Rotate this vector around an axis. Same as glRotate[f|d](angle, a);.

Not taking into account the w ordinate
The w ordinate is not modified

Parameters:
angle Angle to rotate
axis Rotation axis.
Returns:
reference to this object

template<typename Type>
static CL_Vec4<Type> CL_Vec4< Type >::rotate3 const CL_Vec4< Type > &  vector,
const CL_Angle angle,
const CL_Vec4< Type > &  axis
[static]
 

Rotate a vector around an axis. Same as glRotate[f|d](angle, a);.

Not taking into account the w ordinate
The w ordinate is not modified

Parameters:
vector = The vector to use
angle Angle to rotate
axis Rotation axis.
Returns:
The rotated vector

template<typename Type>
CL_Vec4<Type>& CL_Vec4< Type >::round  ) 
 

Rounds all components on this vector.

Includes the w ordinate
Uses Asymmetric Arithmetic Rounding

Returns:
reference to this object

template<typename Type>
static CL_Vec4<Type> CL_Vec4< Type >::round const CL_Vec4< Type > &  vector  )  [static]
 

Rounds all components on a vector.

Includes the w ordinate
Uses Asymmetric Arithmetic Rounding

Parameters:
vector = The vector to use
Returns:
The rounded vector


Member Data Documentation

template<typename Type>
Type CL_Vec4< Type >::a
 

template<typename Type>
Type CL_Vec4< Type >::b
 

template<typename Type>
Type CL_Vec4< Type >::g
 

template<typename Type>
Type CL_Vec4< Type >::r
 

template<typename Type>
Type CL_Vec4< Type >::s
 

template<typename Type>
Type CL_Vec4< Type >::t
 

template<typename Type>
Type CL_Vec4< Type >::u
 

template<typename Type>
Type CL_Vec4< Type >::v
 

template<typename Type>
Type CL_Vec4< Type >::w
 

template<typename Type>
Type CL_Vec4< Type >::x
 

template<typename Type>
Type CL_Vec4< Type >::y
 

template<typename Type>
Type CL_Vec4< Type >::z
 


The documentation for this class was generated from the following file:
Generated on Thu Dec 3 02:39:42 2009 for ClanLib by  doxygen 1.4.6