13 requires std::is_floating_point_v<T>
17 requires std::is_floating_point_v<T>
18 class alignas(sizeof(T) * 4U)
Quat
31 return Components_[0];
35 return Components_[1];
39 return Components_[2];
43 return Components_[3];
88 const Quat&,
const Quat&)
noexcept =
default;
94 requires std::is_floating_point_v<U>
101 template <
typename T>
109 template <
typename T>
115 template <
typename T>
121 template <
typename T>
139 return std::isfinite(
result.X()) && std::isfinite(
result.Y()) &&
141 ? std::optional<Quat<T>>(
result)
145 template <
typename T>
169 return std::isfinite(
result.X()) && std::isfinite(
result.Y()) &&
171 ? std::optional<Quat<T>>(
result)
175 template <
typename T>
190static_assert(std::is_trivially_copyable_v<mv::math::Quatf>);
191static_assert(std::is_standard_layout_v<mv::math::Quatf>);
constexpr T Z() const noexcept
constexpr Quat operator-() const noexcept
constexpr Quat() noexcept
constexpr T X() const noexcept
constexpr Quat operator*(const Quat &right) const noexcept
friend constexpr bool operator==(const Quat &, const Quat &) noexcept=default
constexpr Quat(T x, T y, T z, T w) noexcept
constexpr T Y() const noexcept
constexpr Quat operator/(T scalar) const noexcept
constexpr Quat operator*(T scalar) const noexcept
constexpr T W() const noexcept
constexpr Quat operator+(const Quat &other) const noexcept
constexpr Quat operator-(const Quat &other) const noexcept
constexpr T Dot(const Quat< T > &left, const Quat< T > &right) noexcept
std::optional< Quat< T > > TryInverse(const Quat< T > &value) noexcept
bool IsNearlyEqual(const Quat< T > &left, const Quat< T > &right, Tolerance< T > tolerance=Tolerance< T >::Default()) noexcept
constexpr T LengthSquared(const Quat< T > &value) noexcept
T Length(const Quat< T > &value) noexcept
std::optional< Quat< T > > TryNormalize(const Quat< T > &value) noexcept