9#include "translate.hpp"
12#include "perspective.hpp"
15namespace hi::inline
v1 {
namespace geo {
18[[nodiscard]]
constexpr matrix<D> operator*(identity
const &lhs, matrix<D>
const &rhs)
noexcept
23template<
typename T,
int D>
24[[nodiscard]]
constexpr translate<T, D> operator*(identity
const &lhs, translate<T, D>
const &rhs)
noexcept
30[[nodiscard]]
constexpr scale<D> operator*(identity
const &lhs, scale<D>
const &rhs)
noexcept
36[[nodiscard]]
constexpr rotate<D> operator*(identity
const &lhs, rotate<D>
const &rhs)
noexcept
42[[nodiscard]]
constexpr auto operator*(translate<float, D>
const &lhs, scale<E>
const &rhs)
noexcept
44 hi_axiom(lhs.holds_invariant() && rhs.holds_invariant());
46 static_cast<f32x4
>(rhs).x000(),
47 static_cast<f32x4
>(rhs)._0y00(),
48 static_cast<f32x4
>(rhs)._00z0(),
49 static_cast<f32x4
>(lhs).xyz1()};
53[[nodiscard]]
constexpr auto operator*(scale<D>
const &lhs, translate<float, E>
const &rhs)
noexcept
55 hi_axiom(lhs.holds_invariant() && rhs.holds_invariant());
57 static_cast<f32x4
>(lhs).x000(),
58 static_cast<f32x4
>(lhs)._0y00(),
59 static_cast<f32x4
>(lhs)._00z0(),
60 static_cast<f32x4
>(lhs) *
static_cast<f32x4
>(rhs).xyz1()};
Defines geo::matrix, matrix2 and matrix3.
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:238
DOXYGEN BUG.
Definition algorithm.hpp:13
Definition transform.hpp:64
Definition translate.hpp:15
Definition transform.hpp:84