Antkeeper  0.0.1
Namespaces | Enumerations | Functions
euler-angles.hpp File Reference
#include <engine/math/numbers.hpp>
#include <engine/math/quaternion.hpp>
#include <engine/math/vector.hpp>
#include <cmath>
#include <cstdint>
#include <concepts>
#include <utility>

Go to the source code of this file.

Namespaces

 math
 Mathematical functions and data types.
 

Enumerations

enum class  math::rotation_sequence : std::uint8_t {
  math::zxz = 0b100010 , math::xyx = 0b000100 , math::yzy = 0b011001 , math::zyz = 0b100110 ,
  math::xzx = 0b001000 , math::yxy = 0b010001 , math::xyz = 0b100100 , math::yzx = 0b001001 ,
  math::zxy = 0b010010 , math::xzy = 0b011000 , math::zyx = 0b000110 , math::yxz = 0b100001
}
 Rotation sequences of proper Euler and Tait-Bryan angles. More...
 

Functions

template<std::integral T>
constexpr vec3< T > math::rotation_axes (rotation_sequence sequence) noexcept
 Returns the indices of the axes of a rotation sequence. More...
 
template<rotation_sequence Sequence, class T >
vec3< T > math::euler_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_zxz_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_xyx_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_yzy_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_zyz_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_xzx_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_yxy_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_xyz_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_yzx_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_zxy_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_xzy_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_zyx_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_yxz_from_quat (const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<class T >
vec3< T > math::euler_from_quat (rotation_sequence sequence, const quat< T > &q, T tolerance=T{1e-6})
 Derives Euler angles from a unit quaternion. More...
 
template<rotation_sequence Sequence, class T >
quat< T > math::euler_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_zxz_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_xyx_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_yzy_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_zyz_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_xzx_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_yxy_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_xyz_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_yzx_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_zxy_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_xzy_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_zyx_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_yxz_to_quat (const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...
 
template<class T >
quat< T > math::euler_to_quat (rotation_sequence sequence, const vec3< T > &angles)
 Constructs a quaternion from Euler angles. More...