27#ifndef LIBSBX_MATH_MATRIX_CAST_HPP_
28#define LIBSBX_MATH_MATRIX_CAST_HPP_
36#include <libsbx/math/matrix3x3.hpp>
37#include <libsbx/math/matrix4x4.hpp>
38#include <libsbx/math/quaternion.hpp>
49template<
typename Type,
typename Return,
typename... Args>
51 { std::remove_cvref_t<Type>::invoke(std::declval<Args>()...) } -> std::same_as<Return>;
63template<
typename To,
typename From>
64struct matrix_cast_impl;
79template<
typename To,
typename From>
80requires (dispatcher_for<detail::matrix_cast_impl<To, std::remove_cvref_t<From>>, To, From>)
81[[nodiscard]]
constexpr auto matrix_cast(
const From& from) -> To;
103#include <libsbx/math/matrix_cast.ipp>
Definition: matrix4x4.hpp:26
Definition: quaternion.hpp:25
Definition: vector3.hpp:23
Concept describing a valid dispatcher implementation.
Definition: matrix_cast.hpp:50
Core numeric concepts and type traits.
Generic fixed-size matrix type.
Result of matrix decomposition.
Definition: matrix_cast.hpp:86