add matrix transform overloads

This commit is contained in:
BlackMATov
2020-11-29 06:26:21 +07:00
parent 987071fbb1
commit 0841b7a1f0
4 changed files with 130 additions and 101 deletions

View File

@@ -1066,9 +1066,15 @@ constexpr mat<T, Size> column(const mat<T, Size>& m, size_t index, const vec<T,
### Matrix Transform 3D
```cpp
template < typename T >
constexpr mat<T, 4> translate(T x, T y, T z);
template < typename T >
constexpr mat<T, 4> translate(const vec<T, 3>& v);
template < typename T >
constexpr mat<T, 4> translate(const mat<T, 4>& m, T x, T y, T z);
template < typename T >
constexpr mat<T, 4> translate(const mat<T, 4>& m, const vec<T, 3>& v);
@@ -1078,12 +1084,20 @@ mat<T, 4> rotate(T angle, const vec<T, 3>& axis);
template < typename T >
mat<T, 4> rotate(const mat<T, 4>& m, T angle, const vec<T, 3>& axis);
template < typename T >
constexpr mat<T, 4> scale(T x, T y, T z);
template < typename T >
constexpr mat<T, 4> scale(const vec<T, 3>& v);
template < typename T >
constexpr mat<T, 4> scale(const mat<T, 4>& m, T x, T y, T z);
template < typename T >
constexpr mat<T, 4> scale(const mat<T, 4>& m, const vec<T, 3>& v);
// look_at
template < typename T >
mat<T, 4> look_at_lh(const vec<T, 3>& eye, const vec<T, 3>& at, const vec<T, 3>& up);
@@ -1094,9 +1108,15 @@ mat<T, 4> look_at_rh(const vec<T, 3>& eye, const vec<T, 3>& at, const vec<T, 3>&
### Matrix Transform 2D
```cpp
template < typename T >
constexpr mat<T, 3> translate(T x, T y);
template < typename T >
constexpr mat<T, 3> translate(const vec<T, 2>& v);
template < typename T >
constexpr mat<T, 3> translate(const mat<T, 3>& m, T x, T y);
template < typename T >
constexpr mat<T, 3> translate(const mat<T, 3>& m, const vec<T, 2>& v);
@@ -1106,15 +1126,27 @@ mat<T, 3> rotate(T angle);
template < typename T >
mat<T, 3> rotate(const mat<T, 3>& m, T angle);
template < typename T >
constexpr mat<T, 3> scale(T x, T y);
template < typename T >
constexpr mat<T, 3> scale(const vec<T, 2>& v);
template < typename T >
constexpr mat<T, 3> scale(const mat<T, 3>& m, T x, T y);
template < typename T >
constexpr mat<T, 3> scale(const mat<T, 3>& m, const vec<T, 2>& v);
template < typename T >
constexpr mat<T, 3> shear(T x, T y);
template < typename T >
constexpr mat<T, 3> shear(const vec<T, 2>& v);
template < typename T >
constexpr mat<T, 3> shear(const mat<T, 3>& m, T x, T y);
template < typename T >
constexpr mat<T, 3> shear(const mat<T, 3>& m, const vec<T, 2>& v);