using vec4 = typename Quaternion< T >::vec4
using vec3 = typename Quaternion< T >::vec3
operator=(Unit_quaternion &&) -> Unit_quaternion &
Unit_quaternion(Unit_quaternion &&)
operator=(const Unit_quaternion &) -> Unit_quaternion &
Unit_quaternion(const Unit_quaternion &)
~Unit_quaternion()
Unit_quaternion()
operator=(Quaternion< T > && q) -> Unit_quaternion &
operator=(const Quaternion< T > & q) -> Unit_quaternion &
Unit_quaternion(Quaternion< T > && q)
Unit_quaternion(const Quaternion< T > & q)
Unit_quaternion(T re, const vec3 & im)
Unit_quaternion(const vec4 & q)
Unit_quaternion(T s, T x, T y, T z)
exp(const vec3 & v) -> Quaternion
data() const -> const vec4 &
operator[](int i) const -> T
operator()(int i) const -> T
imag() const -> vec3
real() const -> T
clear() -> void
z() const -> T
y() const -> T
x() const -> T
w() const -> T
operator=(Quaternion &&) -> Quaternion &
Quaternion(Quaternion &&)
operator=(const Quaternion &) -> Quaternion &
Quaternion(const Quaternion &)
~Quaternion()
Quaternion()
Quaternion(T re, const vec3 & im)
Quaternion(const vec4 & q)
Quaternion(T s, T x, T y, T z)
using quaternion_type = Quaternion< T >
using vertex_type = Vertex< T, 3 >
using scalar_type = T
clear() -> void
origin(const vertex_type & rhs) -> void
origin() const -> const vertex_type &
quaternion(const quaternion_type & rhs) -> void
quaternion_conj() const -> const quaternion_type &
quaternion() const -> const quaternion_type &
Quaternion_coordinate_system(const quaternion_type & q, const vertex_type & origin)
Quaternion_coordinate_system(const quaternion_type & q, const quaternion_type & q_conj, const vertex_type & origin)
Quaternion_coordinate_system()
template <class T>
to(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T>
rotation_matrix(const Quaternion< T > & q) -> Rotation_matrix< T, 3 >
Rotation matrix for a quaternion. The matrix is computed as follows. Here are quaternion components.
template <class T>
make_coordinate_system(const Quaternion< T > & q, const Quaternion< T > & q_conj, const Vertex< T, 3 > & origin) -> Quaternion_coordinate_system< T >
template <class T>
operator*=(Quaternion< T > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
to_vector(const Quaternion< T > & q) -> Quaternion< T >
template <class T>
operator*(const Quaternion< T > & a, const Vertex< T, 3 > & b) -> Quaternion< T >
template <class T>
operator*(const Vertex< T, 3 > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
operator*(const Quaternion< T > & a, T b) -> Quaternion< T >
template <class T>
imag(const Quaternion< T > & q) -> Vertex< T, 3 >
template <class T>
length(const Quaternion< T > & q) -> T
template <class T>
from(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T>
vector_from(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T>
operator+=(Quaternion< T > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
conj(const Quaternion< T > & q) -> Quaternion< T >
template <class T>
from_euler_angles(const Vertex< T, 3 > & angles) -> Quaternion< T >
template <class T>
operator*(T a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
operator<<(std::ostream & out, const Quaternion< T > & q) -> std::ostream &
template <class T>
operator+(Quaternion< T > & a, const Quaternion< T > & b) -> Quaternion< T >
template <class T>
operator*(const Quaternion< T > & a, const Quaternion< T > & b) -> Quaternion< T >
Hamilton product.
template <class T>
rotate(const Vertex< T, 3 > & v, const Quaternion< T > & q) -> Vertex< T, 3 >
template <class T>
operator/(const Quaternion< T > & a, T b) -> Quaternion< T >
template <class T>
real(const Quaternion< T > & q) -> T
template <class T>
vector_to(const Quaternion_coordinate_system< T > & cs, const Vertex< T, 3 > & v) -> Vertex< T, 3 >
template <class T>
make_coordinate_system(const Quaternion< T > & q, const Vertex< T, 3 > & origin) -> Quaternion_coordinate_system< T >
template <class T>
to_euler_angles(const Quaternion< T > & q) -> Vertex< T, 3 >
Convert quaternion to Euler angles.
template <class T>
from_vector(const Quaternion< T > & q) -> Quaternion< T >
template <class T>
unit(const Quaternion< T > & q) -> Quaternion< T >