Quaternion - Double. More...

#include <quaternion.h>

+ Inheritance diagram for clan::Quaterniond:

Public Member Functions

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

Static Public Member Functions

static Quaternionx< double > axis_angle (const Angle &angle, const Vec3f &axis)
 
static Quaternionx< double > lerp (const Quaternionx< double > &quaternion_initial, const Quaternionx< double > &quaternion_final, doublelerp_time)
 Linear Quaternion Interpolation. More...
 
static Quaternionx< double > multiply (const Quaternionx< double > &quaternion_1, const Quaternionx< double > &quaternion_2)
 
static Quaternionx< double > rotation_between (Vec3< double > v0, Vec3< double > v1)
 Calculates the shortest arc quaternion between two vectors. More...
 
static Quaternionx< double > rotation_between (Vec4< double > v0, Vec4< double > v1)
 Calculates the shortest arc quaternion between two vectors. More...
 
static Quaternionx< double > slerp (const Quaternionx< double > &quaternion_initial, const Quaternionx< double > &quaternion_final, doubleslerp_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
 
}; 
 
double i
 
double j
 
double k
 
double w
 The real scalar part. More...
 
double x
 
double y
 
double z
 

Operations

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

Detailed Description

Quaternion - Double.

Member Function Documentation

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

Inverse this quaternion.

This is the same as the conjugate of a quaternion

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

Inverse this quaternion.

This is the same as the conjugate of a quaternion

Returns
reference to this object
static Quaternionx<double > clan::Quaternionx< double >::lerp ( const Quaternionx< double > &  quaternion_initial,
const Quaternionx< double > &  quaternion_final,
double  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
double clan::Quaternionx< double >::magnitude ( ) const
inherited

Get the quaternion magnitude.

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

Normalizes this quaternion.

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

Normalizes this quaternion.

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

Not equal operator.

Quaternionx<double > clan::Quaternionx< double >::operator* ( const Quaternionx< double > &  mult) const
inlineinherited

Multiplication operator.

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

Less operator.

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

Less equal operator.

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

Equal operator.

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

Greater operator.

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

Greater equal operator.

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

Rotates vector by this quaternion.

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

Calculates the shortest arc quaternion between two vectors.

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

Calculates the shortest arc quaternion between two vectors.

void clan::Quaternionx< double >::set ( double  euler_x,
double  euler_y,
double  euler_z,
AngleUnit  unit,
EulerOrder  order 
)
inherited
void clan::Quaternionx< double >::set ( const Vec3< double > &  euler,
AngleUnit  unit,
EulerOrder  order 
)
inherited
void clan::Quaternionx< double >::set ( const Angle euler_x,
const Angle euler_y,
const Angle euler_z,
EulerOrder  order 
)
inherited
static Quaternionx<double > clan::Quaternionx< double >::slerp ( const Quaternionx< double > &  quaternion_initial,
const Quaternionx< double > &  quaternion_final,
double  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<double > clan::Quaternionx< double >::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 { ... }
double clan::Quaternionx< double >::i
inherited
double clan::Quaternionx< double >::j
inherited
double clan::Quaternionx< double >::k
inherited
double clan::Quaternionx< double >::w
inherited

The real scalar part.

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

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