29 #ifndef glm_core_type_mat3x2
30 #define glm_core_type_mat3x2
37 template <
typename T>
struct tvec1;
38 template <
typename T>
struct tvec2;
39 template <
typename T>
struct tvec3;
40 template <
typename T>
struct tvec4;
41 template <
typename T>
struct tmat2x2;
42 template <
typename T>
struct tmat2x3;
43 template <
typename T>
struct tmat2x4;
44 template <
typename T>
struct tmat3x2;
45 template <
typename T>
struct tmat3x3;
46 template <
typename T>
struct tmat3x4;
47 template <
typename T>
struct tmat4x2;
48 template <
typename T>
struct tmat4x3;
49 template <
typename T>
struct tmat4x4;
56 typedef std::size_t size_type;
57 typedef tvec2<T> col_type;
58 typedef tvec3<T> row_type;
59 typedef tmat3x2<T> type;
60 typedef tmat2x3<T> transpose_type;
62 static GLM_FUNC_DECL size_type col_size();
63 static GLM_FUNC_DECL size_type row_size();
65 GLM_FUNC_DECL GLM_CONSTEXPR size_type
length()
const;
73 GLM_FUNC_DECL tmat3x2();
74 GLM_FUNC_DECL tmat3x2(tmat3x2
const & m);
76 GLM_FUNC_DECL
explicit tmat3x2(
78 GLM_FUNC_DECL
explicit tmat3x2(
79 value_type
const & s);
80 GLM_FUNC_DECL
explicit tmat3x2(
81 value_type
const & x0, value_type
const & y0,
82 value_type
const & x1, value_type
const & y1,
83 value_type
const & x2, value_type
const & y2);
84 GLM_FUNC_DECL
explicit tmat3x2(
92 GLM_FUNC_DECL
explicit tmat3x2(
97 typename X1,
typename Y1,
98 typename X2,
typename Y2,
99 typename X3,
typename Y3
101 GLM_FUNC_DECL
explicit tmat3x2(
102 X1
const & x1, Y1
const & y1,
103 X2
const & x2, Y2
const & y2,
104 X3
const & x3, Y3
const & y3);
106 template <
typename V1,
typename V2,
typename V3>
107 GLM_FUNC_DECL
explicit tmat3x2(
108 tvec2<V1>
const & v1,
109 tvec2<V2>
const & v2,
110 tvec2<V3>
const & v3);
113 template <
typename U>
114 GLM_FUNC_DECL
explicit tmat3x2(tmat3x2<U>
const & m);
116 GLM_FUNC_DECL
explicit tmat3x2(tmat2x2<T>
const & x);
117 GLM_FUNC_DECL
explicit tmat3x2(tmat3x3<T>
const & x);
118 GLM_FUNC_DECL
explicit tmat3x2(tmat4x4<T>
const & x);
119 GLM_FUNC_DECL
explicit tmat3x2(tmat2x3<T>
const & x);
120 GLM_FUNC_DECL
explicit tmat3x2(tmat2x4<T>
const & x);
121 GLM_FUNC_DECL
explicit tmat3x2(tmat3x4<T>
const & x);
122 GLM_FUNC_DECL
explicit tmat3x2(tmat4x2<T>
const & x);
123 GLM_FUNC_DECL
explicit tmat3x2(tmat4x3<T>
const & x);
126 GLM_FUNC_DECL col_type & operator[](size_type i);
127 GLM_FUNC_DECL col_type
const & operator[](size_type i)
const;
130 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<T>
const & m);
131 template <
typename U>
132 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<U>
const & m);
133 template <
typename U>
134 GLM_FUNC_DECL tmat3x2<T> & operator+= (U
const & s);
135 template <
typename U>
136 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U>
const & m);
137 template <
typename U>
138 GLM_FUNC_DECL tmat3x2<T> & operator-= (U
const & s);
139 template <
typename U>
140 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U>
const & m);
141 template <
typename U>
142 GLM_FUNC_DECL tmat3x2<T> & operator*= (U
const & s);
143 template <
typename U>
144 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U>
const & m);
145 template <
typename U>
146 GLM_FUNC_DECL tmat3x2<T> & operator/= (U
const & s);
148 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
149 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
153 template <
typename T>
154 tmat3x2<T> operator+ (
155 tmat3x2<T>
const & m,
156 typename tmat3x2<T>::value_type
const & s);
158 template <
typename T>
159 tmat3x2<T> operator+ (
160 tmat3x2<T>
const & m1,
161 tmat3x2<T>
const & m2);
163 template <
typename T>
164 tmat3x2<T> operator- (
165 tmat3x2<T>
const & m,
166 typename tmat3x2<T>::value_type
const & s);
168 template <
typename T>
169 tmat3x2<T> operator- (
170 tmat3x2<T>
const & m1,
171 tmat3x2<T>
const & m2);
173 template <
typename T>
174 tmat3x2<T> operator* (
175 tmat3x2<T>
const & m,
176 typename tmat3x2<T>::value_type
const & s);
178 template <
typename T>
179 tmat3x2<T> operator* (
180 typename tmat3x2<T>::value_type
const & s,
181 tmat3x2<T>
const & m);
183 template <
typename T>
184 typename tmat3x2<T>::col_type operator* (
185 tmat3x2<T>
const & m,
186 typename tmat3x2<T>::row_type
const & v);
188 template <
typename T>
189 typename tmat3x2<T>::row_type operator* (
190 typename tmat3x2<T>::col_type
const & v,
191 tmat3x2<T>
const & m);
193 template <
typename T>
194 tmat2x2<T> operator* (
195 tmat3x2<T>
const & m1,
196 tmat2x3<T>
const & m2);
198 template <
typename T>
199 tmat3x2<T> operator* (
200 tmat3x2<T>
const & m1,
201 tmat3x3<T>
const & m2);
203 template <
typename T>
204 tmat4x2<T> operator* (
205 tmat3x2<T>
const & m1,
206 tmat4x3<T>
const & m2);
208 template <
typename T>
209 tmat3x2<T> operator/ (
210 tmat3x2<T>
const & m,
211 typename tmat3x2<T>::value_type
const & s);
213 template <
typename T>
214 tmat3x2<T> operator/ (
215 typename tmat3x2<T>::value_type
const & s,
216 tmat3x2<T>
const & m);
219 template <
typename T>
220 tmat3x2<T>
const operator- (
221 tmat3x2<T>
const & m);
223 template <
typename T>
224 tmat3x2<T>
const operator-- (
225 tmat3x2<T>
const & m,
228 template <
typename T>
229 tmat3x2<T>
const operator++ (
230 tmat3x2<T>
const & m,
261 #ifndef GLM_EXTERNAL_TEMPLATE
262 #include "type_mat3x2.inl"
265 #endif //glm_core_type_mat3x2