template <class T>
class vtb::geometry::Unit_quaternion
Base classes
Types
Methods
template <class T>
class vtb::geometry::Quaternion
Derived classes
Types
  • using vec3 = Vertex< T, 3 >
  • using vec4 = Vertex< T, 4 >
Fields
  • vec4 _data
Methods
  • 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)
Friends
  • operator>>
  • operator<<
template <class T>
class vtb::geometry::Quaternion_coordinate_system
Types
  • using quaternion_type = Quaternion< T >
  • using vertex_type = Vertex< T, 3 >
  • using scalar_type = T
Methods
  • 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 >