diff options
| author | untodesu <kirill@untode.su> | 2025-03-15 16:22:09 +0500 |
|---|---|---|
| committer | untodesu <kirill@untode.su> | 2025-03-15 16:22:09 +0500 |
| commit | 3bf42c6ff3805a0d42bbc661794a95ff31bedc26 (patch) | |
| tree | 05049955847504808d6bed2bb7b155f8b03807bb /deps/include/glm/ext/matrix_common.inl | |
| parent | 02294547dcde0d4ad76e229106702261e9f10a51 (diff) | |
| download | voxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.tar.bz2 voxelius-3bf42c6ff3805a0d42bbc661794a95ff31bedc26.zip | |
Add whatever I was working on for the last month
Diffstat (limited to 'deps/include/glm/ext/matrix_common.inl')
| -rw-r--r-- | deps/include/glm/ext/matrix_common.inl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/deps/include/glm/ext/matrix_common.inl b/deps/include/glm/ext/matrix_common.inl new file mode 100644 index 0000000..1be4222 --- /dev/null +++ b/deps/include/glm/ext/matrix_common.inl @@ -0,0 +1,34 @@ +#include "../matrix.hpp" + +#include "_matrix_vectorize.hpp" + +namespace glm +{ + template<length_t C, length_t R, typename T, typename U, qualifier Q> + GLM_FUNC_QUALIFIER mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, U a) + { + return mat<C, R, U, Q>(x) * (static_cast<U>(1) - a) + mat<C, R, U, Q>(y) * a; + } + + template<length_t C, length_t R, typename T, typename U, qualifier Q> + GLM_FUNC_QUALIFIER mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, mat<C, R, U, Q> const& a) + { + return matrixCompMult(mat<C, R, U, Q>(x), static_cast<U>(1) - a) + matrixCompMult(mat<C, R, U, Q>(y), a); + } + + template<length_t C, length_t R, typename T, qualifier Q, bool Aligned> + struct compute_abs_matrix + { + GLM_FUNC_QUALIFIER GLM_CONSTEXPR static mat<C, R, T, Q> call(mat<C, R, T, Q> const& x) + { + return detail::matrix_functor_1<mat, C, R, T, T, Q>::call(abs, x); + } + }; + + template<length_t C, length_t R, typename T, qualifier Q> + GLM_FUNC_DECL GLM_CONSTEXPR mat<C, R, T, Q> abs(mat<C, R, T, Q> const& x) + { + return compute_abs_matrix<C, R, T, Q, detail::is_aligned<Q>::value>::call(x); + } + +}//namespace glm |
