API Documentation
Loading...
Searching...
No Matches
Quaternion< t_type > Class Template Reference

https://www.3dgep.com/understanding-quaternions/ More...

#include <Quaternion.hpp>

Inheritance diagram for Quaternion< t_type >:
[legend]
Collaboration diagram for Quaternion< t_type >:
[legend]

Public Member Functions

template<class t_angle_type >
AxisAngle< t_angle_type, t_type > axisAngle () const
 
Quaternion conjugate () const
 
template<class t_angle_type >
Vector< 3, Angle< t_angle_type > > euler () const
 
Quaternion invert () const
 
Quaternion operator* (const Quaternion &q2) const
 
template<class t_vec_type >
Vector< 3, t_vec_type > operator* (const Vector< 3, t_vec_type > &v) const
 
const Quaternion operator/ (t_type s) const
 
constexpr Quaternion ()
 
template<class t_angle_type , class t_axis_type >
constexpr Quaternion (Angle< t_angle_type > angle, Vector< 3, t_axis_type > axis)
 
constexpr Quaternion (const Vector< 4, t_type > &vec)
 
constexpr Quaternion (t_type x)
 
constexpr Quaternion (t_type x, t_type y, t_type z, t_type w)
 
template<class t_angle_type >
void setFromEuler (Vector< 3, Angle< t_angle_type > > euler)
 
Matrix< t_type > toMatrix () const
 
- Public Member Functions inherited from Vector< 4, t_type >
constexpr Vector< t_dims, t_new_type > as () const
 
constexpr Vector< t_new_dim, t_new_type > as () const
 
constexpr Vector< t_new_dim, t_new_type > as (t_new_type extra_fill_value) const
 
constexpr uint01 dimensionalIndex () const
 
constexpr t_type dimensionalValue () const
 
constexpr t_magnitude_type magnitude () const
 
constexpr t_type magnitudeSquared () const
 
constexpr Vector< t_dims, t_norm_type > normalized (Vector< t_dims, t_norm_type > value_if_nan=Constant< Vector< t_dims, t_norm_type > >::Invalid) const
 
constexpr operator const t_type & () const
 
constexpr operator t_type & ()
 
constexpr Vector< t_dims, t_type > operator- () const
 
constexpr Vector< t_dims, t_type > & operator= (const t_type &scaler)
 
constexpr const t_type & operator[] (const uint01 dimension_index) const
 
constexpr t_type & operator[] (uint01 dimension_index)
 
constexpr t_type product () const
 
constexpr t_type sum () const
 
constexpr Vector () noexcept
 
constexpr Vector (const t_type &prefix, typename std::enable_if< tdims >=2, const Vector< t_dims - 1, t_type > & >::type vector)
 
constexpr Vector (const t_type &prefix_a, const t_type &prefix_b, typename std::enable_if< tdims >=3, const Vector< tdims - 1, t_type > & >::type vector)
 
constexpr Vector (const t_type &scaler) noexcept
 
constexpr Vector (const t_type &x, const t_type &y, const t_type &z, const t_type &w, const t_type &v, const t_type &u, const t_type &t, const t_type &s, typename std::enable_if< tdims==9, const t_type & >::type r)
 
constexpr Vector (const t_type &x, const t_type &y, const t_type &z, const t_type &w, const t_type &v, typename std::enable_if< tdims==6, const t_type & >::type u)
 
constexpr Vector (const t_type &x, const t_type &y, const t_type &z, const t_type &w, typename std::enable_if< tdims==5, const t_type & >::type v)
 
constexpr Vector (const t_type &x, const t_type &y, const t_type &z, typename std::enable_if< tdims==4, const t_type & >::type w)
 
constexpr Vector (const t_type &x, const t_type &y, const typename std::enable_if< tdims==3, const t_type & >::type z)
 
constexpr Vector (const t_type &x, typename std::enable_if< tdims==2, const t_type & >::type y)
 
constexpr Vector (const t_type(&vector)[t_dims])
 
constexpr Vector (const Vector< getMax(tdims - 2, 0), t_type > &vector, const t_type &suffix_a, typename std::enable_if< tdims >=3, const t_type & >::type suffix_b)
 
constexpr Vector (const Vector< t_dims, t_vec_type > &vector) noexcept
 
constexpr Vector (const Vector< tdims - 1, t_type > &vector, typename std::enable_if< tdims >=2, const t_type & >::type suffix)
 

Additional Inherited Members

- Static Public Member Functions inherited from Vector< 4, t_type >
static constexpr uint01 NumberOfDimensions ()
 
static constexpr t_type Type ()
 
- Protected Attributes inherited from Vector< 4, t_type >
t_type m_values [t_dims]
 

Detailed Description

template<class t_type>
class NDEVR::Quaternion< t_type >

https://www.3dgep.com/understanding-quaternions/


Constructor & Destructor Documentation

◆ Quaternion() [1/5]

template<class t_type >
Quaternion ( )
inlineconstexpr

◆ Quaternion() [2/5]

template<class t_type >
Quaternion ( const Vector< 4, t_type > & vec)
inlineconstexpr

◆ Quaternion() [3/5]

template<class t_type >
Quaternion ( t_type x,
t_type y,
t_type z,
t_type w )
inlineconstexpr

◆ Quaternion() [4/5]

template<class t_type >
Quaternion ( t_type x)
inlineexplicitconstexpr

◆ Quaternion() [5/5]

template<class t_type >
template<class t_angle_type , class t_axis_type >
Quaternion ( Angle< t_angle_type > angle,
Vector< 3, t_axis_type > axis )
inlineconstexpr

Member Function Documentation

◆ axisAngle()

template<class t_type >
template<class t_angle_type >
AxisAngle< t_angle_type, t_type > axisAngle ( ) const
inline

◆ conjugate()

template<class t_type >
Quaternion conjugate ( ) const
inline

◆ euler()

template<class t_type >
template<class t_angle_type >
Vector< 3, Angle< t_angle_type > > euler ( ) const
inline

◆ invert()

template<class t_type >
Quaternion invert ( ) const
inline

◆ operator*() [1/2]

template<class t_type >
Quaternion operator* ( const Quaternion< t_type > & q2) const
inline

◆ operator*() [2/2]

template<class t_type >
template<class t_vec_type >
Vector< 3, t_vec_type > operator* ( const Vector< 3, t_vec_type > & v) const
inline

◆ operator/()

template<class t_type >
const Quaternion operator/ ( t_type s) const
inline

◆ setFromEuler()

template<class t_type >
template<class t_angle_type >
void setFromEuler ( Vector< 3, Angle< t_angle_type > > euler)
inline

◆ toMatrix()

template<class t_type >
Matrix< t_type > toMatrix ( ) const
inline

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