opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
osc::Qua< T > Struct Template Reference

#include <qua.h>

Collaboration diagram for osc::Qua< T >:
[legend]

Public Types

using value_type = T
 
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using reference = T &
 
using const_reference = const T &
 
using pointer = T *
 
using const_pointer = const T *
 
using iterator = T *
 
using const_iterator = const T *
 
using type = Qua< T >
 

Public Member Functions

constexpr Qua ()=default
 
constexpr Qua (T s, const Vector< T, 3 > &v)
 
constexpr Qua (T w_, T x_, T y_, T z_)
 
template<typename U >
constexpr Qua (const Qua< U > &q)
 
 Qua (const Vector< T, 3 > &u, const Vector< T, 3 > &v)
 
 Qua (const EulerAngles &euler_angles)
 
 Qua (const Matrix< T, 3, 3 > &m)
 
 Qua (const Matrix< T, 4, 4 > &m)
 
constexpr size_type size () const
 
constexpr pointer data ()
 
constexpr const_pointer data () const
 
constexpr iterator begin ()
 
constexpr const_iterator begin () const
 
constexpr iterator end ()
 
constexpr const_iterator end () const
 
constexpr reference operator[] (size_type pos)
 
constexpr const_reference operator[] (size_type pos) const
 
template<typename U >
constexpr Qua< T > & operator= (const Qua< U > &q)
 
template<typename U >
constexpr Qua< T > & operator+= (const Qua< U > &q)
 
template<typename U >
constexpr Qua< T > & operator-= (const Qua< U > &q)
 
template<typename U >
constexpr Qua< T > & operator*= (const Qua< U > &r)
 
template<typename U >
constexpr Qua< T > & operator*= (U s)
 
template<typename U >
constexpr Qua< T > & operator/= (U s)
 

Static Public Member Functions

static constexpr Qua< Twxyz (T w, T x, T y, T z)
 

Public Attributes

T w = T(1)
 
T x = T{}
 
T y = T{}
 
T z = T{}
 

Friends

constexpr bool operator== (const Qua &, const Qua &)=default
 

Member Typedef Documentation

◆ const_iterator

template<typename T >
using osc::Qua< T >::const_iterator = const T*

◆ const_pointer

template<typename T >
using osc::Qua< T >::const_pointer = const T*

◆ const_reference

template<typename T >
using osc::Qua< T >::const_reference = const T&

◆ difference_type

template<typename T >
using osc::Qua< T >::difference_type = ptrdiff_t

◆ iterator

template<typename T >
using osc::Qua< T >::iterator = T*

◆ pointer

template<typename T >
using osc::Qua< T >::pointer = T*

◆ reference

template<typename T >
using osc::Qua< T >::reference = T&

◆ size_type

template<typename T >
using osc::Qua< T >::size_type = size_t

◆ type

template<typename T >
using osc::Qua< T >::type = Qua<T>

◆ value_type

template<typename T >
using osc::Qua< T >::value_type = T

Constructor & Destructor Documentation

◆ Qua() [1/8]

template<typename T >
constexpr osc::Qua< T >::Qua ( )
constexprdefault

◆ Qua() [2/8]

template<typename T >
constexpr osc::Qua< T >::Qua ( T  s,
const Vector< T, 3 > &  v 
)
inlineconstexpr

◆ Qua() [3/8]

template<typename T >
constexpr osc::Qua< T >::Qua ( T  w_,
T  x_,
T  y_,
T  z_ 
)
inlineconstexpr

◆ Qua() [4/8]

template<typename T >
template<typename U >
constexpr osc::Qua< T >::Qua ( const Qua< U > &  q)
inlineexplicitconstexpr

◆ Qua() [5/8]

template<typename T >
osc::Qua< T >::Qua ( const Vector< T, 3 > &  u,
const Vector< T, 3 > &  v 
)
inline

constructs a Qua from two normalized axis

Parameters
uA first normalized axis
vA second normalized axis
See also
gtc_Quaternion
http://lolengine.net/blog/2013/09/18/beautiful-maths-Quaternion-from-Vectors

◆ Qua() [6/8]

template<typename T >
osc::Qua< T >::Qua ( const EulerAngles euler_angles)
inlineexplicit

◆ Qua() [7/8]

template<typename T >
osc::Qua< T >::Qua ( const Matrix< T, 3, 3 > &  m)
inlineexplicit

◆ Qua() [8/8]

template<typename T >
osc::Qua< T >::Qua ( const Matrix< T, 4, 4 > &  m)
inlineexplicit

Member Function Documentation

◆ begin() [1/2]

template<typename T >
constexpr iterator osc::Qua< T >::begin ( )
inlineconstexpr

◆ begin() [2/2]

template<typename T >
constexpr const_iterator osc::Qua< T >::begin ( ) const
inlineconstexpr

◆ data() [1/2]

template<typename T >
constexpr pointer osc::Qua< T >::data ( )
inlineconstexpr

◆ data() [2/2]

template<typename T >
constexpr const_pointer osc::Qua< T >::data ( ) const
inlineconstexpr

◆ end() [1/2]

template<typename T >
constexpr iterator osc::Qua< T >::end ( )
inlineconstexpr

◆ end() [2/2]

template<typename T >
constexpr const_iterator osc::Qua< T >::end ( ) const
inlineconstexpr

◆ operator*=() [1/2]

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator*= ( const Qua< U > &  r)
inlineconstexpr

◆ operator*=() [2/2]

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator*= ( U  s)
inlineconstexpr

◆ operator+=()

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator+= ( const Qua< U > &  q)
inlineconstexpr

◆ operator-=()

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator-= ( const Qua< U > &  q)
inlineconstexpr

◆ operator/=()

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator/= ( U  s)
inlineconstexpr

◆ operator=()

template<typename T >
template<typename U >
constexpr Qua< T > & osc::Qua< T >::operator= ( const Qua< U > &  q)
inlineconstexpr

◆ operator[]() [1/2]

template<typename T >
constexpr reference osc::Qua< T >::operator[] ( size_type  pos)
inlineconstexpr

◆ operator[]() [2/2]

template<typename T >
constexpr const_reference osc::Qua< T >::operator[] ( size_type  pos) const
inlineconstexpr

◆ size()

template<typename T >
constexpr size_type osc::Qua< T >::size ( ) const
inlineconstexpr

◆ wxyz()

template<typename T >
static constexpr Qua< T > osc::Qua< T >::wxyz ( T  w,
T  x,
T  y,
T  z 
)
inlinestaticconstexpr

Friends And Related Symbol Documentation

◆ operator==

template<typename T >
constexpr bool operator== ( const Qua< T > &  ,
const Qua< T > &   
)
friend

Member Data Documentation

◆ w

template<typename T >
T osc::Qua< T >::w = T(1)

◆ x

template<typename T >
T osc::Qua< T >::x = T{}

◆ y

template<typename T >
T osc::Qua< T >::y = T{}

◆ z

template<typename T >
T osc::Qua< T >::z = T{}

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