Clutter Engine 0.0.1
Loading...
Searching...
No Matches
matrix_transform_2d.inl
1
3
5
6namespace glm
7{
8
9 template<typename T, qualifier Q>
10 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> translate(
11 mat<3, 3, T, Q> const& m,
12 vec<2, T, Q> const& v)
13 {
14 mat<3, 3, T, Q> Result(m);
15 Result[2] = m[0] * v[0] + m[1] * v[1] + m[2];
16 return Result;
17 }
18
19
20 template<typename T, qualifier Q>
21 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> rotate(
22 mat<3, 3, T, Q> const& m,
23 T angle)
24 {
25 T const a = angle;
26 T const c = cos(a);
27 T const s = sin(a);
28
29 mat<3, 3, T, Q> Result;
30 Result[0] = m[0] * c + m[1] * s;
31 Result[1] = m[0] * -s + m[1] * c;
32 Result[2] = m[2];
33 return Result;
34 }
35
36 template<typename T, qualifier Q>
37 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> scale(
38 mat<3, 3, T, Q> const& m,
39 vec<2, T, Q> const& v)
40 {
41 mat<3, 3, T, Q> Result;
42 Result[0] = m[0] * v[0];
43 Result[1] = m[1] * v[1];
44 Result[2] = m[2];
45 return Result;
46 }
47
48 template<typename T, qualifier Q>
49 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearX(
50 mat<3, 3, T, Q> const& m,
51 T y)
52 {
53 mat<3, 3, T, Q> Result(1);
54 Result[0][1] = y;
55 return m * Result;
56 }
57
58 template<typename T, qualifier Q>
59 GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearY(
60 mat<3, 3, T, Q> const& m,
61 T x)
62 {
63 mat<3, 3, T, Q> Result(1);
64 Result[1][0] = x;
65 return m * Result;
66 }
67
68}//namespace glm
GLM_FUNC_QUALIFIER vec< L, T, Q > sin(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:41
GLM_FUNC_QUALIFIER vec< L, T, Q > cos(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:50
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
Definition matrix_transform.inl:18
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Definition matrix_transform.inl:10
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Definition matrix_transform.inl:78
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Definition quaternion_trigonometric.inl:6
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY(mat< 3, 3, T, Q > const &m, T x)
Definition matrix_transform_2d.inl:59
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX(mat< 3, 3, T, Q > const &m, T y)
Definition matrix_transform_2d.inl:49
Core features
Definition common.hpp:21
Definition qualifier.hpp:36
Definition qualifier.hpp:35