#include <quat.hpp>
template<typename value_type, typename quat_type_raw, typename underlying_matrix3x4_type_raw, typename underlying_matrix4x4_type_raw, typename vec3_type, typename mat4x4_type>
move::vectormath::generic_quat struct

Public types

using component_type = value_type
using quat_type = typename quat_type_raw::type
using underlying_matrix3x4_type = typename underlying_matrix3x4_type_raw::type
using underlying_matrix4x4_type = typename underlying_matrix4x4_type_raw::type

Public static variables

static static uint32_t num_components constexpr

Public static functions

static auto slerp(const generic_quat& v1, const generic_quat& v2, value_type t) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto identity() -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto from_pitch_yaw_roll(value_type pitch, value_type yaw, value_type roll) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto from_pitch_yaw_roll(const vec3_type& angles) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto from_axis_angle(const vec3_type& axis, value_type angle) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto from_rotation_normal(const vec3_type& normal_axis, value_type angle) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto from_rotation_axis(const vec3_type& axis, value_type angle) -> MVM_INLINE_NODISCARD generic_quat noexcept
static auto rotation_matrix_to_quaternion(const mat4x4_type& matrix) -> MVM_INLINE_NODISCARD generic_quat noexcept

Public functions

auto generic_quat() -> MVM_INLINE_NODISCARD noexcept
auto generic_quat(value_type x, value_type y = 0, value_type z = 0, value_type w = 0) -> MVM_INLINE_NODISCARD noexcept
auto generic_quat(const quat_type& v) -> MVM_INLINE_NODISCARD noexcept
auto get_internal() const -> MVM_INLINE_NODISCARD quat_type noexcept
template<typename Archive>
auto serialize(Archive& ar) -> MVM_INLINE void
auto operator quat_type&() -> MVM_INLINE_NODISCARD
auto operator==(const generic_quat& v) const -> MVM_INLINE_NODISCARD bool noexcept
auto operator!=(const generic_quat& v) const -> MVM_INLINE_NODISCARD bool noexcept
auto operator=(const generic_quat& v) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto operator*=(const generic_quat& v) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto operator*(const generic_quat& v) const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto operator*(const vec3_type& rhs) const -> MVM_INLINE_NODISCARD vec3_type noexcept
auto operator-() const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto get_component(int index) const -> MVM_INLINE_NODISCARD value_type noexcept
auto set_component(int index, value_type value) -> MVM_INLINE void
auto operator[](int i) const -> MVM_INLINE_NODISCARD value_type noexcept
auto x() const -> MVM_INLINE_NODISCARD value_type noexcept
auto y() const -> MVM_INLINE_NODISCARD value_type noexcept
auto z() const -> MVM_INLINE_NODISCARD value_type noexcept
auto w() const -> MVM_INLINE_NODISCARD value_type noexcept
auto x(value_type value) const -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto y(value_type value) const -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto z(value_type value) const -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto w(value_type value) const -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto set_x(value_type x) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto set_y(value_type y) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto set_z(value_type z) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto set_w(value_type w) -> MVM_INLINE_NODISCARD generic_quat& noexcept
auto is_nan() const -> MVM_INLINE_NODISCARD bool noexcept
auto is_infinite() const -> MVM_INLINE_NODISCARD bool noexcept
auto is_identity() const -> MVM_INLINE_NODISCARD bool noexcept
auto length() const -> MVM_INLINE_NODISCARD value_type noexcept
auto squared_length() const -> MVM_INLINE_NODISCARD value_type noexcept
auto reciprocal_length() const -> MVM_INLINE_NODISCARD value_type noexcept
auto normalized() const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto normalized_approximate() const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto dot(const generic_quat& v) const -> MVM_INLINE_NODISCARD value_type noexcept
auto conjugate() const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto inverse() const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto slerp(const generic_quat& v, value_type t) const -> MVM_INLINE_NODISCARD generic_quat noexcept
auto normalize() -> MVM_INLINE void noexcept