20 #ifndef ANTKEEPER_MATH_TRANSFORM_FUNCTIONS_HPP
21 #define ANTKEEPER_MATH_TRANSFORM_FUNCTIONS_HPP
34 [[nodiscard]] transform<T>
inverse(
const transform<T>& t);
43 [[nodiscard]] matrix<T, 4, 4>
matrix_cast(
const transform<T>& t);
53 [[nodiscard]] transform<T>
mul(
const transform<T>& x,
const transform<T>& y);
63 [[nodiscard]] vector<T, 3>
mul(
const transform<T>& t,
const vector<T, 3>& v);
69 inverse_t.
scale = {T(1) / t.scale.x(), T(1) / t.scale.y(), T(1) / t.scale.z()};
79 transformation[3] = {t.translation[0], t.translation[1], t.translation[2], T(1)};
80 return scale(transformation, t.scale);
88 mul(x, y.translation),
97 return add(t.translation, (
mul(t.rotation,
mul(v, t.scale))));
Mathematical functions and data types.
constexpr matrix< T, 4, 4 > scale(const matrix< T, 4, 4 > &m, const vector< T, 3 > &v)
Scales a matrix.
constexpr matrix< T, P, M > mul(const matrix< T, N, M > &a, const matrix< T, P, N > &b) noexcept
Multiplies two matrices.
quaternion< T > normalize(const quaternion< T > &q)
Normalizes a quaternion.
constexpr matrix< T, N, M > add(const matrix< T, N, M > &a, const matrix< T, N, M > &b) noexcept
Adds two matrices.
matrix< T, 4, 4 > matrix_cast(const transform< T > &t)
Converts a transform to a transformation matrix.
constexpr quaternion< T > conjugate(const quaternion< T > &q) noexcept
Calculates the conjugate of a quaternion.
constexpr matrix< T, N, N > inverse(const matrix< T, N, N > &m) noexcept
Calculates the inverse of a square matrix.
constexpr quaternion< T > negate(const quaternion< T > &q) noexcept
Negates a quaternion.
n by m column-major matrix.