Quaternion - Float. More...

#include <quaternion.h>

+ Inheritance diagram for clan::Quaternionf:

Public Member Functions

 Quaternionf ()
 
 Quaternionf (const Quaternionx< float > &copy)
 
 Quaternionf (const Mat4< float > &rotation_matrix)
 
 Quaternionf (float real, float i, float j, float k)
 
 Quaternionf (float real, const Vec3< float > &imag)
 
 Quaternionf (float euler_x, float euler_y, float euler_z, AngleUnit unit, EulerOrder order)
 
 Quaternionf (const Vec3< float > &euler, AngleUnit unit, EulerOrder order)
 
 Quaternionf (const Angle &euler_x, const Angle &euler_y, const Angle &euler_z, EulerOrder order)
 
Attributes
Mat4< float > to_matrix () const
 Convert the quaternion to a rotation matrix. More...
 
float magnitude () const
 Get the quaternion magnitude. More...
 
Operators
Quaternionx< float > operator* (const Quaternionx< float > &mult) const
 Multiplication operator. More...
 
Quaternionx< float > operator* (const Mat4< float > &matrix) const
 
bool operator< (const Quaternionx< float > &other) const
 Less operator. More...
 
bool operator> (const Quaternionx< float > &other) const
 Greater operator. More...
 
bool operator<= (const Quaternionx< float > &other) const
 Less equal operator. More...
 
bool operator>= (const Quaternionx< float > &other) const
 Greater equal operator. More...
 
bool operator== (const Quaternionx< float > &other) const
 Equal operator. More...
 
bool operator!= (const Quaternionx< float > &other) const
 Not equal operator. More...
 

Static Public Member Functions

static Quaternionx< float > axis_angle (const Angle &angle, const Vec3f &axis)
 
static Quaternionx< float > lerp (const Quaternionx< float > &quaternion_initial, const Quaternionx< float > &quaternion_final, floatlerp_time)
 Linear Quaternion Interpolation. More...
 
static Quaternionx< float > multiply (const Quaternionx< float > &quaternion_1, const Quaternionx< float > &quaternion_2)
 
static Quaternionx< float > rotation_between (Vec3< float > v0, Vec3< float > v1)
 Calculates the shortest arc quaternion between two vectors. More...
 
static Quaternionx< float > rotation_between (Vec4< float > v0, Vec4< float > v1)
 Calculates the shortest arc quaternion between two vectors. More...
 
static Quaternionx< float > slerp (const Quaternionx< float > &quaternion_initial, const Quaternionx< float > &quaternion_final, floatslerp_time)
 Spherical Quaternion Interpolation. More...
 

Public Attributes

union {
   Type   clan::Quaternionx< Type >::i
 
   Type   clan::Quaternionx< Type >::x
 
}; 
 The imaginary vector part. More...
 
union {
   Type   clan::Quaternionx< Type >::j
 
   Type   clan::Quaternionx< Type >::y
 
}; 
 
union {
   Type   clan::Quaternionx< Type >::k
 
   Type   clan::Quaternionx< Type >::z
 
}; 
 
float i
 
float j
 
float k
 
float w
 The real scalar part. More...
 
float x
 
float y
 
float z
 

Operations

void set (floateuler_x, floateuler_y, floateuler_z, AngleUnit unit, EulerOrder order)
 
void set (const Vec3< float > &euler, AngleUnit unit, EulerOrder order)
 
void set (const Angle &euler_x, const Angle &euler_y, const Angle &euler_z, EulerOrder order)
 
Quaternionx< float > & rotate (const Angle &angle, const Vec3f &axis)
 
Quaternionx< float > & rotate (const Angle &euler_x, const Angle &euler_y, const Angle &euler_z, EulerOrder order)
 
Quaternionx< float > & normalize ()
 Normalizes this quaternion. More...
 
Quaternionx< float > & inverse ()
 Inverse this quaternion. More...
 
Vec3< float > rotate_vector (const Vec3< float > &v) const
 Rotates vector by this quaternion. More...
 
Vec4< float > rotate_vector (const Vec4< float > &v) const
 
static Quaternionx< float > normalize (Quaternionx< float > q)
 Normalizes this quaternion. More...
 
static Quaternionx< float > inverse (Quaternionx< float > q)
 Inverse this quaternion. More...
 

Detailed Description

Quaternion - Float.

Member Function Documentation

static Quaternionx<float > clan::Quaternionx< float >::axis_angle ( const Angle angle,
const Vec3f axis 
)
staticinherited
Quaternionx<float >& clan::Quaternionx< float >::inverse ( )
inherited

Inverse this quaternion.

This is the same as the conjugate of a quaternion

Returns
reference to this object
static Quaternionx<float > clan::Quaternionx< float >::inverse ( Quaternionx< float >  q)
inlinestaticinherited

Inverse this quaternion.

This is the same as the conjugate of a quaternion

Returns
reference to this object
static Quaternionx<float > clan::Quaternionx< float >::lerp ( const Quaternionx< float > &  quaternion_initial,
const Quaternionx< float > &  quaternion_final,
float  lerp_time 
)
staticinherited

Linear Quaternion Interpolation.

Parameters
quaternion_initial= Source quaternion
quaternion_final= Destination quaternion
lerp_time= Time in the range of 0.0 to 1.0

Referenced by clan::ModelDataAnimationTimeline< Type >::get_value().

float clan::Quaternionx< float >::magnitude ( ) const
inherited

Get the quaternion magnitude.

static Quaternionx<float > clan::Quaternionx< float >::multiply ( const Quaternionx< float > &  quaternion_1,
const Quaternionx< float > &  quaternion_2 
)
staticinherited
Quaternionx<float >& clan::Quaternionx< float >::normalize ( )
inherited

Normalizes this quaternion.

Returns
reference to this object
static Quaternionx<float > clan::Quaternionx< float >::normalize ( Quaternionx< float >  q)
inlinestaticinherited

Normalizes this quaternion.

Returns
reference to this object
bool clan::Quaternionx< float >::operator!= ( const Quaternionx< float > &  other) const
inlineinherited
Quaternionx<float > clan::Quaternionx< float >::operator* ( const Quaternionx< float > &  mult) const
inlineinherited

Multiplication operator.

References clan::Quaternionx< Type >::multiply().

Quaternionx<float > clan::Quaternionx< float >::operator* ( const Mat4< float > &  matrix) const
inherited
bool clan::Quaternionx< float >::operator< ( const Quaternionx< float > &  other) const
inlineinherited
bool clan::Quaternionx< float >::operator<= ( const Quaternionx< float > &  other) const
inlineinherited

Less equal operator.

bool clan::Quaternionx< float >::operator== ( const Quaternionx< float > &  other) const
inlineinherited
bool clan::Quaternionx< float >::operator> ( const Quaternionx< float > &  other) const
inlineinherited
bool clan::Quaternionx< float >::operator>= ( const Quaternionx< float > &  other) const
inlineinherited

Greater equal operator.

Quaternionx<float >& clan::Quaternionx< float >::rotate ( const Angle angle,
const Vec3f axis 
)
inherited
Quaternionx<float >& clan::Quaternionx< float >::rotate ( const Angle euler_x,
const Angle euler_y,
const Angle euler_z,
EulerOrder  order 
)
inherited
Vec3<float > clan::Quaternionx< float >::rotate_vector ( const Vec3< float > &  v) const
inherited

Rotates vector by this quaternion.

Parameters
v= Vertex to rotate
Returns
rotated vector
Vec4<float > clan::Quaternionx< float >::rotate_vector ( const Vec4< float > &  v) const
inherited
static Quaternionx<float > clan::Quaternionx< float >::rotation_between ( Vec3< float >  v0,
Vec3< float >  v1 
)
staticinherited

Calculates the shortest arc quaternion between two vectors.

static Quaternionx<float > clan::Quaternionx< float >::rotation_between ( Vec4< float >  v0,
Vec4< float >  v1 
)
staticinherited

Calculates the shortest arc quaternion between two vectors.

void clan::Quaternionx< float >::set ( float  euler_x,
float  euler_y,
float  euler_z,
AngleUnit  unit,
EulerOrder  order 
)
inherited
void clan::Quaternionx< float >::set ( const Vec3< float > &  euler,
AngleUnit  unit,
EulerOrder  order 
)
inherited
void clan::Quaternionx< float >::set ( const Angle euler_x,
const Angle euler_y,
const Angle euler_z,
EulerOrder  order 
)
inherited
static Quaternionx<float > clan::Quaternionx< float >::slerp ( const Quaternionx< float > &  quaternion_initial,
const Quaternionx< float > &  quaternion_final,
float  slerp_time 
)
staticinherited

Spherical Quaternion Interpolation.

Parameters
quaternion_initial= Source quaternion
quaternion_final= Destination quaternion
slerp_time= Time in the range of 0.0 to 1.0
Mat4<float > clan::Quaternionx< float >::to_matrix ( ) const
inherited

Convert the quaternion to a rotation matrix.

This function assumes that the quarternion is normalized.

Member Data Documentation

union { ... }

The imaginary vector part.

union { ... }
union { ... }
float clan::Quaternionx< float >::i
inherited
float clan::Quaternionx< float >::j
inherited
float clan::Quaternionx< float >::k
inherited
float clan::Quaternionx< float >::w
inherited

The real scalar part.

float clan::Quaternionx< float >::x
inherited
float clan::Quaternionx< float >::y
inherited
float clan::Quaternionx< float >::z
inherited

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