Skip to content

Commit a8812e0

Browse files
committed
Reuse operators to implement other operators for glm::mat
1 parent 0543133 commit a8812e0

27 files changed

+808
-2427
lines changed
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
#pragma once
3+
#include "qualifier.hpp"
4+
#include "mat_common_operators.hpp"
5+
namespace glm {
6+
7+
8+
template<length_t R, typename T, qualifier Q>
9+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q> operator-(mat<2,R,T,Q> const& m);
10+
11+
template<length_t R, typename T, qualifier Q>
12+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q>& operator++(mat<2,R,T,Q>& m);
13+
14+
template<length_t R, typename T, qualifier Q>
15+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q>& operator--(mat<2,R,T,Q>& m);
16+
17+
template<length_t R, typename T, qualifier Q>
18+
GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2);
19+
20+
template<length_t R, typename T, qualifier Q>
21+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q> operator+(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2);
22+
template<length_t R, typename T, qualifier Q,typename U>
23+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q>& operator+=(mat<2,R,T,Q>& m1, mat<2,R,U,Q> const& m2);
24+
25+
template<length_t R, typename T, qualifier Q>
26+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q> operator-(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2);
27+
template<length_t R, typename T, qualifier Q,typename U>
28+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R,T,Q>& operator-=(mat<2,R,T,Q>& m1, mat<2,R,U,Q> const& m2);
29+
30+
template<length_t R, typename T, qualifier Q>
31+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator+(mat<2,R, T, Q> const& m, T scalar);
32+
template<length_t R, typename T, qualifier Q>
33+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator+(T scalar,mat<2,R, T, Q> const& m);
34+
35+
template<length_t R, typename T, qualifier Q>
36+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator-(mat<2,R, T, Q> const& m, T scalar);
37+
template<length_t R, typename T, qualifier Q>
38+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator-(T scalar,mat<2,R, T, Q> const& m);
39+
40+
template<length_t R, typename T, qualifier Q>
41+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator*(mat<2,R, T, Q> const& m, T scalar);
42+
template<length_t R, typename T, qualifier Q>
43+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator*(T scalar,mat<2,R, T, Q> const& m);
44+
45+
template<length_t R, typename T, qualifier Q>
46+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator/(mat<2,R, T, Q> const& m, T scalar);
47+
template<length_t R, typename T, qualifier Q>
48+
GLM_FUNC_DECL GLM_CONSTEXPR mat<2,R, T, Q> operator/(T scalar,mat<2,R, T, Q> const& m);
49+
50+
}
51+
#ifndef GLM_EXTERNAL_TEMPLATE
52+
#include "mat2xR_common_operators.inl"
53+
#endif
54+
+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
2+
namespace glm {
3+
4+
5+
template<length_t R, typename T, qualifier Q>
6+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q> operator-(mat<2,R,T,Q> const& m) {
7+
return mat<2,R,T,Q>(-m[0],-m[1]);
8+
}
9+
10+
template<length_t R, typename T, qualifier Q>
11+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator++(mat<2,R,T,Q>& m) {
12+
++m[0];
13+
++m[1];
14+
return m;
15+
}
16+
17+
template<length_t R, typename T, qualifier Q>
18+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator--(mat<2,R,T,Q>& m) {
19+
--m[0];
20+
--m[1];
21+
return m;
22+
}
23+
24+
template<length_t R, typename T, qualifier Q>
25+
GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2) {
26+
return (m1[0] == m2[0]) && (m1[1] == m2[1]);
27+
}
28+
29+
template<length_t R, typename T, qualifier Q>
30+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q> operator+(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2) {
31+
return mat<2,R,T,Q>(m1[0] + m2[0],m1[1] + m2[1]);
32+
}
33+
template<length_t R, typename T, qualifier Q,typename U>
34+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator+=(mat<2,R,T,Q>& m1, mat<2,R,U,Q> const& m2) {
35+
m1[0] += m2[0];
36+
m1[1] += m2[1];
37+
return m1;
38+
}
39+
40+
template<length_t R, typename T, qualifier Q>
41+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q> operator-(mat<2,R,T,Q> const& m1, mat<2,R,T,Q> const& m2) {
42+
return mat<2,R,T,Q>(m1[0] - m2[0],m1[1] - m2[1]);
43+
}
44+
template<length_t R, typename T, qualifier Q,typename U>
45+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator-=(mat<2,R,T,Q>& m1, mat<2,R,U,Q> const& m2) {
46+
m1[0] -= m2[0];
47+
m1[1] -= m2[1];
48+
return m1;
49+
}
50+
51+
template<length_t R, typename T, qualifier Q>
52+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator+(mat<2,R, T, Q> const& m, T scalar) {
53+
return mat<2,R,T,Q>(m[0] + scalar,m[1] + scalar);
54+
}
55+
template<length_t R, typename T, qualifier Q>
56+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator+(T scalar,mat<2,R, T, Q> const& m) {
57+
return mat<2,R,T,Q>(scalar + m[0],scalar + m[1]);
58+
}
59+
template<length_t R, typename T, qualifier Q,typename U>
60+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator+=(mat<2,R,T,Q>& m, U scalar) {
61+
m[0] += scalar;
62+
m[1] += scalar;
63+
return m;
64+
}
65+
66+
template<length_t R, typename T, qualifier Q>
67+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator-(mat<2,R, T, Q> const& m, T scalar) {
68+
return mat<2,R,T,Q>(m[0] - scalar,m[1] - scalar);
69+
}
70+
template<length_t R, typename T, qualifier Q>
71+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator-(T scalar,mat<2,R, T, Q> const& m) {
72+
return mat<2,R,T,Q>(scalar - m[0],scalar - m[1]);
73+
}
74+
template<length_t R, typename T, qualifier Q,typename U>
75+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator-=(mat<2,R,T,Q>& m, U scalar) {
76+
m[0] -= scalar;
77+
m[1] -= scalar;
78+
return m;
79+
}
80+
81+
template<length_t R, typename T, qualifier Q>
82+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator*(mat<2,R, T, Q> const& m, T scalar) {
83+
return mat<2,R,T,Q>(m[0] * scalar,m[1] * scalar);
84+
}
85+
template<length_t R, typename T, qualifier Q>
86+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator*(T scalar,mat<2,R, T, Q> const& m) {
87+
return mat<2,R,T,Q>(scalar * m[0],scalar * m[1]);
88+
}
89+
template<length_t R, typename T, qualifier Q,typename U>
90+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator*=(mat<2,R,T,Q>& m, U scalar) {
91+
m[0] *= scalar;
92+
m[1] *= scalar;
93+
return m;
94+
}
95+
96+
template<length_t R, typename T, qualifier Q>
97+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator/(mat<2,R, T, Q> const& m, T scalar) {
98+
return mat<2,R,T,Q>(m[0] / scalar,m[1] / scalar);
99+
}
100+
template<length_t R, typename T, qualifier Q>
101+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R, T, Q> operator/(T scalar,mat<2,R, T, Q> const& m) {
102+
return mat<2,R,T,Q>(scalar / m[0],scalar / m[1]);
103+
}
104+
template<length_t R, typename T, qualifier Q,typename U>
105+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<2,R,T,Q>& operator/=(mat<2,R,T,Q>& m, U scalar) {
106+
m[0] /= scalar;
107+
m[1] /= scalar;
108+
return m;
109+
}
110+
111+
}
112+
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
#pragma once
3+
#include "qualifier.hpp"
4+
#include "mat_common_operators.hpp"
5+
namespace glm {
6+
7+
8+
template<length_t R, typename T, qualifier Q>
9+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q> operator-(mat<3,R,T,Q> const& m);
10+
11+
template<length_t R, typename T, qualifier Q>
12+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q>& operator++(mat<3,R,T,Q>& m);
13+
14+
template<length_t R, typename T, qualifier Q>
15+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q>& operator--(mat<3,R,T,Q>& m);
16+
17+
template<length_t R, typename T, qualifier Q>
18+
GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2);
19+
20+
template<length_t R, typename T, qualifier Q>
21+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q> operator+(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2);
22+
template<length_t R, typename T, qualifier Q,typename U>
23+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q>& operator+=(mat<3,R,T,Q>& m1, mat<3,R,U,Q> const& m2);
24+
25+
template<length_t R, typename T, qualifier Q>
26+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q> operator-(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2);
27+
template<length_t R, typename T, qualifier Q,typename U>
28+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R,T,Q>& operator-=(mat<3,R,T,Q>& m1, mat<3,R,U,Q> const& m2);
29+
30+
template<length_t R, typename T, qualifier Q>
31+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator+(mat<3,R, T, Q> const& m, T scalar);
32+
template<length_t R, typename T, qualifier Q>
33+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator+(T scalar,mat<3,R, T, Q> const& m);
34+
35+
template<length_t R, typename T, qualifier Q>
36+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator-(mat<3,R, T, Q> const& m, T scalar);
37+
template<length_t R, typename T, qualifier Q>
38+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator-(T scalar,mat<3,R, T, Q> const& m);
39+
40+
template<length_t R, typename T, qualifier Q>
41+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator*(mat<3,R, T, Q> const& m, T scalar);
42+
template<length_t R, typename T, qualifier Q>
43+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator*(T scalar,mat<3,R, T, Q> const& m);
44+
45+
template<length_t R, typename T, qualifier Q>
46+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator/(mat<3,R, T, Q> const& m, T scalar);
47+
template<length_t R, typename T, qualifier Q>
48+
GLM_FUNC_DECL GLM_CONSTEXPR mat<3,R, T, Q> operator/(T scalar,mat<3,R, T, Q> const& m);
49+
50+
}
51+
#ifndef GLM_EXTERNAL_TEMPLATE
52+
#include "mat3xR_common_operators.inl"
53+
#endif
54+
+120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
2+
namespace glm {
3+
4+
5+
template<length_t R, typename T, qualifier Q>
6+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q> operator-(mat<3,R,T,Q> const& m) {
7+
return mat<3,R,T,Q>(-m[0],-m[1],-m[2]);
8+
}
9+
10+
template<length_t R, typename T, qualifier Q>
11+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator++(mat<3,R,T,Q>& m) {
12+
++m[0];
13+
++m[1];
14+
++m[2];
15+
return m;
16+
}
17+
18+
template<length_t R, typename T, qualifier Q>
19+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator--(mat<3,R,T,Q>& m) {
20+
--m[0];
21+
--m[1];
22+
--m[2];
23+
return m;
24+
}
25+
26+
template<length_t R, typename T, qualifier Q>
27+
GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2) {
28+
return (m1[0] == m2[0]) && (m1[1] == m2[1]) && (m1[2] == m2[2]);
29+
}
30+
31+
template<length_t R, typename T, qualifier Q>
32+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q> operator+(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2) {
33+
return mat<3,R,T,Q>(m1[0] + m2[0],m1[1] + m2[1],m1[2] + m2[2]);
34+
}
35+
template<length_t R, typename T, qualifier Q,typename U>
36+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator+=(mat<3,R,T,Q>& m1, mat<3,R,U,Q> const& m2) {
37+
m1[0] += m2[0];
38+
m1[1] += m2[1];
39+
m1[2] += m2[2];
40+
return m1;
41+
}
42+
43+
template<length_t R, typename T, qualifier Q>
44+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q> operator-(mat<3,R,T,Q> const& m1, mat<3,R,T,Q> const& m2) {
45+
return mat<3,R,T,Q>(m1[0] - m2[0],m1[1] - m2[1],m1[2] - m2[2]);
46+
}
47+
template<length_t R, typename T, qualifier Q,typename U>
48+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator-=(mat<3,R,T,Q>& m1, mat<3,R,U,Q> const& m2) {
49+
m1[0] -= m2[0];
50+
m1[1] -= m2[1];
51+
m1[2] -= m2[2];
52+
return m1;
53+
}
54+
55+
template<length_t R, typename T, qualifier Q>
56+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator+(mat<3,R, T, Q> const& m, T scalar) {
57+
return mat<3,R,T,Q>(m[0] + scalar,m[1] + scalar,m[2] + scalar);
58+
}
59+
template<length_t R, typename T, qualifier Q>
60+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator+(T scalar,mat<3,R, T, Q> const& m) {
61+
return mat<3,R,T,Q>(scalar + m[0],scalar + m[1],scalar + m[2]);
62+
}
63+
template<length_t R, typename T, qualifier Q,typename U>
64+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator+=(mat<3,R,T,Q>& m, U scalar) {
65+
m[0] += scalar;
66+
m[1] += scalar;
67+
m[2] += scalar;
68+
return m;
69+
}
70+
71+
template<length_t R, typename T, qualifier Q>
72+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator-(mat<3,R, T, Q> const& m, T scalar) {
73+
return mat<3,R,T,Q>(m[0] - scalar,m[1] - scalar,m[2] - scalar);
74+
}
75+
template<length_t R, typename T, qualifier Q>
76+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator-(T scalar,mat<3,R, T, Q> const& m) {
77+
return mat<3,R,T,Q>(scalar - m[0],scalar - m[1],scalar - m[2]);
78+
}
79+
template<length_t R, typename T, qualifier Q,typename U>
80+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator-=(mat<3,R,T,Q>& m, U scalar) {
81+
m[0] -= scalar;
82+
m[1] -= scalar;
83+
m[2] -= scalar;
84+
return m;
85+
}
86+
87+
template<length_t R, typename T, qualifier Q>
88+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator*(mat<3,R, T, Q> const& m, T scalar) {
89+
return mat<3,R,T,Q>(m[0] * scalar,m[1] * scalar,m[2] * scalar);
90+
}
91+
template<length_t R, typename T, qualifier Q>
92+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator*(T scalar,mat<3,R, T, Q> const& m) {
93+
return mat<3,R,T,Q>(scalar * m[0],scalar * m[1],scalar * m[2]);
94+
}
95+
template<length_t R, typename T, qualifier Q,typename U>
96+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator*=(mat<3,R,T,Q>& m, U scalar) {
97+
m[0] *= scalar;
98+
m[1] *= scalar;
99+
m[2] *= scalar;
100+
return m;
101+
}
102+
103+
template<length_t R, typename T, qualifier Q>
104+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator/(mat<3,R, T, Q> const& m, T scalar) {
105+
return mat<3,R,T,Q>(m[0] / scalar,m[1] / scalar,m[2] / scalar);
106+
}
107+
template<length_t R, typename T, qualifier Q>
108+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R, T, Q> operator/(T scalar,mat<3,R, T, Q> const& m) {
109+
return mat<3,R,T,Q>(scalar / m[0],scalar / m[1],scalar / m[2]);
110+
}
111+
template<length_t R, typename T, qualifier Q,typename U>
112+
GLM_FUNC_QUALIFIER GLM_CONSTEXPR mat<3,R,T,Q>& operator/=(mat<3,R,T,Q>& m, U scalar) {
113+
m[0] /= scalar;
114+
m[1] /= scalar;
115+
m[2] /= scalar;
116+
return m;
117+
}
118+
119+
}
120+
+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
#pragma once
3+
#include "qualifier.hpp"
4+
#include "mat_common_operators.hpp"
5+
namespace glm {
6+
7+
8+
template<length_t R, typename T, qualifier Q>
9+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q> operator-(mat<4,R,T,Q> const& m);
10+
11+
template<length_t R, typename T, qualifier Q>
12+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q>& operator++(mat<4,R,T,Q>& m);
13+
14+
template<length_t R, typename T, qualifier Q>
15+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q>& operator--(mat<4,R,T,Q>& m);
16+
17+
template<length_t R, typename T, qualifier Q>
18+
GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<4,R,T,Q> const& m1, mat<4,R,T,Q> const& m2);
19+
20+
template<length_t R, typename T, qualifier Q>
21+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q> operator+(mat<4,R,T,Q> const& m1, mat<4,R,T,Q> const& m2);
22+
template<length_t R, typename T, qualifier Q,typename U>
23+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q>& operator+=(mat<4,R,T,Q>& m1, mat<4,R,U,Q> const& m2);
24+
25+
template<length_t R, typename T, qualifier Q>
26+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q> operator-(mat<4,R,T,Q> const& m1, mat<4,R,T,Q> const& m2);
27+
template<length_t R, typename T, qualifier Q,typename U>
28+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R,T,Q>& operator-=(mat<4,R,T,Q>& m1, mat<4,R,U,Q> const& m2);
29+
30+
template<length_t R, typename T, qualifier Q>
31+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator+(mat<4,R, T, Q> const& m, T scalar);
32+
template<length_t R, typename T, qualifier Q>
33+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator+(T scalar,mat<4,R, T, Q> const& m);
34+
35+
template<length_t R, typename T, qualifier Q>
36+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator-(mat<4,R, T, Q> const& m, T scalar);
37+
template<length_t R, typename T, qualifier Q>
38+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator-(T scalar,mat<4,R, T, Q> const& m);
39+
40+
template<length_t R, typename T, qualifier Q>
41+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator*(mat<4,R, T, Q> const& m, T scalar);
42+
template<length_t R, typename T, qualifier Q>
43+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator*(T scalar,mat<4,R, T, Q> const& m);
44+
45+
template<length_t R, typename T, qualifier Q>
46+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator/(mat<4,R, T, Q> const& m, T scalar);
47+
template<length_t R, typename T, qualifier Q>
48+
GLM_FUNC_DECL GLM_CONSTEXPR mat<4,R, T, Q> operator/(T scalar,mat<4,R, T, Q> const& m);
49+
50+
}
51+
#ifndef GLM_EXTERNAL_TEMPLATE
52+
#include "mat4xR_common_operators.inl"
53+
#endif
54+

0 commit comments

Comments
 (0)