• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /// @ref gtc_matrix_integer
2 /// @file glm/gtc/matrix_integer.hpp
3 ///
4 /// @see core (dependence)
5 ///
6 /// @defgroup gtc_matrix_integer GLM_GTC_matrix_integer
7 /// @ingroup gtc
8 ///
9 /// Defines a number of matrices with integer types.
10 /// <glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.
11 
12 #pragma once
13 
14 // Dependency:
15 #include "../mat2x2.hpp"
16 #include "../mat2x3.hpp"
17 #include "../mat2x4.hpp"
18 #include "../mat3x2.hpp"
19 #include "../mat3x3.hpp"
20 #include "../mat3x4.hpp"
21 #include "../mat4x2.hpp"
22 #include "../mat4x3.hpp"
23 #include "../mat4x4.hpp"
24 
25 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
26 #	pragma message("GLM: GLM_GTC_matrix_integer extension included")
27 #endif
28 
29 namespace glm
30 {
31 	/// @addtogroup gtc_matrix_integer
32 	/// @{
33 
34 	/// High-precision signed integer 2x2 matrix.
35 	/// @see gtc_matrix_integer
36 	typedef tmat2x2<int, highp>				highp_imat2;
37 
38 	/// High-precision signed integer 3x3 matrix.
39 	/// @see gtc_matrix_integer
40 	typedef tmat3x3<int, highp>				highp_imat3;
41 
42 	/// High-precision signed integer 4x4 matrix.
43 	/// @see gtc_matrix_integer
44 	typedef tmat4x4<int, highp>				highp_imat4;
45 
46 	/// High-precision signed integer 2x2 matrix.
47 	/// @see gtc_matrix_integer
48 	typedef tmat2x2<int, highp>				highp_imat2x2;
49 
50 	/// High-precision signed integer 2x3 matrix.
51 	/// @see gtc_matrix_integer
52 	typedef tmat2x3<int, highp>				highp_imat2x3;
53 
54 	/// High-precision signed integer 2x4 matrix.
55 	/// @see gtc_matrix_integer
56 	typedef tmat2x4<int, highp>				highp_imat2x4;
57 
58 	/// High-precision signed integer 3x2 matrix.
59 	/// @see gtc_matrix_integer
60 	typedef tmat3x2<int, highp>				highp_imat3x2;
61 
62 	/// High-precision signed integer 3x3 matrix.
63 	/// @see gtc_matrix_integer
64 	typedef tmat3x3<int, highp>				highp_imat3x3;
65 
66 	/// High-precision signed integer 3x4 matrix.
67 	/// @see gtc_matrix_integer
68 	typedef tmat3x4<int, highp>				highp_imat3x4;
69 
70 	/// High-precision signed integer 4x2 matrix.
71 	/// @see gtc_matrix_integer
72 	typedef tmat4x2<int, highp>				highp_imat4x2;
73 
74 	/// High-precision signed integer 4x3 matrix.
75 	/// @see gtc_matrix_integer
76 	typedef tmat4x3<int, highp>				highp_imat4x3;
77 
78 	/// High-precision signed integer 4x4 matrix.
79 	/// @see gtc_matrix_integer
80 	typedef tmat4x4<int, highp>				highp_imat4x4;
81 
82 
83 	/// Medium-precision signed integer 2x2 matrix.
84 	/// @see gtc_matrix_integer
85 	typedef tmat2x2<int, mediump>			mediump_imat2;
86 
87 	/// Medium-precision signed integer 3x3 matrix.
88 	/// @see gtc_matrix_integer
89 	typedef tmat3x3<int, mediump>			mediump_imat3;
90 
91 	/// Medium-precision signed integer 4x4 matrix.
92 	/// @see gtc_matrix_integer
93 	typedef tmat4x4<int, mediump>			mediump_imat4;
94 
95 
96 	/// Medium-precision signed integer 2x2 matrix.
97 	/// @see gtc_matrix_integer
98 	typedef tmat2x2<int, mediump>			mediump_imat2x2;
99 
100 	/// Medium-precision signed integer 2x3 matrix.
101 	/// @see gtc_matrix_integer
102 	typedef tmat2x3<int, mediump>			mediump_imat2x3;
103 
104 	/// Medium-precision signed integer 2x4 matrix.
105 	/// @see gtc_matrix_integer
106 	typedef tmat2x4<int, mediump>			mediump_imat2x4;
107 
108 	/// Medium-precision signed integer 3x2 matrix.
109 	/// @see gtc_matrix_integer
110 	typedef tmat3x2<int, mediump>			mediump_imat3x2;
111 
112 	/// Medium-precision signed integer 3x3 matrix.
113 	/// @see gtc_matrix_integer
114 	typedef tmat3x3<int, mediump>			mediump_imat3x3;
115 
116 	/// Medium-precision signed integer 3x4 matrix.
117 	/// @see gtc_matrix_integer
118 	typedef tmat3x4<int, mediump>			mediump_imat3x4;
119 
120 	/// Medium-precision signed integer 4x2 matrix.
121 	/// @see gtc_matrix_integer
122 	typedef tmat4x2<int, mediump>			mediump_imat4x2;
123 
124 	/// Medium-precision signed integer 4x3 matrix.
125 	/// @see gtc_matrix_integer
126 	typedef tmat4x3<int, mediump>			mediump_imat4x3;
127 
128 	/// Medium-precision signed integer 4x4 matrix.
129 	/// @see gtc_matrix_integer
130 	typedef tmat4x4<int, mediump>			mediump_imat4x4;
131 
132 
133 	/// Low-precision signed integer 2x2 matrix.
134 	/// @see gtc_matrix_integer
135 	typedef tmat2x2<int, lowp>				lowp_imat2;
136 
137 	/// Low-precision signed integer 3x3 matrix.
138 	/// @see gtc_matrix_integer
139 	typedef tmat3x3<int, lowp>				lowp_imat3;
140 
141 	/// Low-precision signed integer 4x4 matrix.
142 	/// @see gtc_matrix_integer
143 	typedef tmat4x4<int, lowp>				lowp_imat4;
144 
145 
146 	/// Low-precision signed integer 2x2 matrix.
147 	/// @see gtc_matrix_integer
148 	typedef tmat2x2<int, lowp>				lowp_imat2x2;
149 
150 	/// Low-precision signed integer 2x3 matrix.
151 	/// @see gtc_matrix_integer
152 	typedef tmat2x3<int, lowp>				lowp_imat2x3;
153 
154 	/// Low-precision signed integer 2x4 matrix.
155 	/// @see gtc_matrix_integer
156 	typedef tmat2x4<int, lowp>				lowp_imat2x4;
157 
158 	/// Low-precision signed integer 3x2 matrix.
159 	/// @see gtc_matrix_integer
160 	typedef tmat3x2<int, lowp>				lowp_imat3x2;
161 
162 	/// Low-precision signed integer 3x3 matrix.
163 	/// @see gtc_matrix_integer
164 	typedef tmat3x3<int, lowp>				lowp_imat3x3;
165 
166 	/// Low-precision signed integer 3x4 matrix.
167 	/// @see gtc_matrix_integer
168 	typedef tmat3x4<int, lowp>				lowp_imat3x4;
169 
170 	/// Low-precision signed integer 4x2 matrix.
171 	/// @see gtc_matrix_integer
172 	typedef tmat4x2<int, lowp>				lowp_imat4x2;
173 
174 	/// Low-precision signed integer 4x3 matrix.
175 	/// @see gtc_matrix_integer
176 	typedef tmat4x3<int, lowp>				lowp_imat4x3;
177 
178 	/// Low-precision signed integer 4x4 matrix.
179 	/// @see gtc_matrix_integer
180 	typedef tmat4x4<int, lowp>				lowp_imat4x4;
181 
182 
183 	/// High-precision unsigned integer 2x2 matrix.
184 	/// @see gtc_matrix_integer
185 	typedef tmat2x2<uint, highp>				highp_umat2;
186 
187 	/// High-precision unsigned integer 3x3 matrix.
188 	/// @see gtc_matrix_integer
189 	typedef tmat3x3<uint, highp>				highp_umat3;
190 
191 	/// High-precision unsigned integer 4x4 matrix.
192 	/// @see gtc_matrix_integer
193 	typedef tmat4x4<uint, highp>				highp_umat4;
194 
195 	/// High-precision unsigned integer 2x2 matrix.
196 	/// @see gtc_matrix_integer
197 	typedef tmat2x2<uint, highp>				highp_umat2x2;
198 
199 	/// High-precision unsigned integer 2x3 matrix.
200 	/// @see gtc_matrix_integer
201 	typedef tmat2x3<uint, highp>				highp_umat2x3;
202 
203 	/// High-precision unsigned integer 2x4 matrix.
204 	/// @see gtc_matrix_integer
205 	typedef tmat2x4<uint, highp>				highp_umat2x4;
206 
207 	/// High-precision unsigned integer 3x2 matrix.
208 	/// @see gtc_matrix_integer
209 	typedef tmat3x2<uint, highp>				highp_umat3x2;
210 
211 	/// High-precision unsigned integer 3x3 matrix.
212 	/// @see gtc_matrix_integer
213 	typedef tmat3x3<uint, highp>				highp_umat3x3;
214 
215 	/// High-precision unsigned integer 3x4 matrix.
216 	/// @see gtc_matrix_integer
217 	typedef tmat3x4<uint, highp>				highp_umat3x4;
218 
219 	/// High-precision unsigned integer 4x2 matrix.
220 	/// @see gtc_matrix_integer
221 	typedef tmat4x2<uint, highp>				highp_umat4x2;
222 
223 	/// High-precision unsigned integer 4x3 matrix.
224 	/// @see gtc_matrix_integer
225 	typedef tmat4x3<uint, highp>				highp_umat4x3;
226 
227 	/// High-precision unsigned integer 4x4 matrix.
228 	/// @see gtc_matrix_integer
229 	typedef tmat4x4<uint, highp>				highp_umat4x4;
230 
231 
232 	/// Medium-precision unsigned integer 2x2 matrix.
233 	/// @see gtc_matrix_integer
234 	typedef tmat2x2<uint, mediump>			mediump_umat2;
235 
236 	/// Medium-precision unsigned integer 3x3 matrix.
237 	/// @see gtc_matrix_integer
238 	typedef tmat3x3<uint, mediump>			mediump_umat3;
239 
240 	/// Medium-precision unsigned integer 4x4 matrix.
241 	/// @see gtc_matrix_integer
242 	typedef tmat4x4<uint, mediump>			mediump_umat4;
243 
244 
245 	/// Medium-precision unsigned integer 2x2 matrix.
246 	/// @see gtc_matrix_integer
247 	typedef tmat2x2<uint, mediump>			mediump_umat2x2;
248 
249 	/// Medium-precision unsigned integer 2x3 matrix.
250 	/// @see gtc_matrix_integer
251 	typedef tmat2x3<uint, mediump>			mediump_umat2x3;
252 
253 	/// Medium-precision unsigned integer 2x4 matrix.
254 	/// @see gtc_matrix_integer
255 	typedef tmat2x4<uint, mediump>			mediump_umat2x4;
256 
257 	/// Medium-precision unsigned integer 3x2 matrix.
258 	/// @see gtc_matrix_integer
259 	typedef tmat3x2<uint, mediump>			mediump_umat3x2;
260 
261 	/// Medium-precision unsigned integer 3x3 matrix.
262 	/// @see gtc_matrix_integer
263 	typedef tmat3x3<uint, mediump>			mediump_umat3x3;
264 
265 	/// Medium-precision unsigned integer 3x4 matrix.
266 	/// @see gtc_matrix_integer
267 	typedef tmat3x4<uint, mediump>			mediump_umat3x4;
268 
269 	/// Medium-precision unsigned integer 4x2 matrix.
270 	/// @see gtc_matrix_integer
271 	typedef tmat4x2<uint, mediump>			mediump_umat4x2;
272 
273 	/// Medium-precision unsigned integer 4x3 matrix.
274 	/// @see gtc_matrix_integer
275 	typedef tmat4x3<uint, mediump>			mediump_umat4x3;
276 
277 	/// Medium-precision unsigned integer 4x4 matrix.
278 	/// @see gtc_matrix_integer
279 	typedef tmat4x4<uint, mediump>			mediump_umat4x4;
280 
281 
282 	/// Low-precision unsigned integer 2x2 matrix.
283 	/// @see gtc_matrix_integer
284 	typedef tmat2x2<uint, lowp>				lowp_umat2;
285 
286 	/// Low-precision unsigned integer 3x3 matrix.
287 	/// @see gtc_matrix_integer
288 	typedef tmat3x3<uint, lowp>				lowp_umat3;
289 
290 	/// Low-precision unsigned integer 4x4 matrix.
291 	/// @see gtc_matrix_integer
292 	typedef tmat4x4<uint, lowp>				lowp_umat4;
293 
294 
295 	/// Low-precision unsigned integer 2x2 matrix.
296 	/// @see gtc_matrix_integer
297 	typedef tmat2x2<uint, lowp>				lowp_umat2x2;
298 
299 	/// Low-precision unsigned integer 2x3 matrix.
300 	/// @see gtc_matrix_integer
301 	typedef tmat2x3<uint, lowp>				lowp_umat2x3;
302 
303 	/// Low-precision unsigned integer 2x4 matrix.
304 	/// @see gtc_matrix_integer
305 	typedef tmat2x4<uint, lowp>				lowp_umat2x4;
306 
307 	/// Low-precision unsigned integer 3x2 matrix.
308 	/// @see gtc_matrix_integer
309 	typedef tmat3x2<uint, lowp>				lowp_umat3x2;
310 
311 	/// Low-precision unsigned integer 3x3 matrix.
312 	/// @see gtc_matrix_integer
313 	typedef tmat3x3<uint, lowp>				lowp_umat3x3;
314 
315 	/// Low-precision unsigned integer 3x4 matrix.
316 	/// @see gtc_matrix_integer
317 	typedef tmat3x4<uint, lowp>				lowp_umat3x4;
318 
319 	/// Low-precision unsigned integer 4x2 matrix.
320 	/// @see gtc_matrix_integer
321 	typedef tmat4x2<uint, lowp>				lowp_umat4x2;
322 
323 	/// Low-precision unsigned integer 4x3 matrix.
324 	/// @see gtc_matrix_integer
325 	typedef tmat4x3<uint, lowp>				lowp_umat4x3;
326 
327 	/// Low-precision unsigned integer 4x4 matrix.
328 	/// @see gtc_matrix_integer
329 	typedef tmat4x4<uint, lowp>				lowp_umat4x4;
330 
331 #if(defined(GLM_PRECISION_HIGHP_INT))
332 	typedef highp_imat2								imat2;
333 	typedef highp_imat3								imat3;
334 	typedef highp_imat4								imat4;
335 	typedef highp_imat2x2							imat2x2;
336 	typedef highp_imat2x3							imat2x3;
337 	typedef highp_imat2x4							imat2x4;
338 	typedef highp_imat3x2							imat3x2;
339 	typedef highp_imat3x3							imat3x3;
340 	typedef highp_imat3x4							imat3x4;
341 	typedef highp_imat4x2							imat4x2;
342 	typedef highp_imat4x3							imat4x3;
343 	typedef highp_imat4x4							imat4x4;
344 #elif(defined(GLM_PRECISION_LOWP_INT))
345 	typedef lowp_imat2								imat2;
346 	typedef lowp_imat3								imat3;
347 	typedef lowp_imat4								imat4;
348 	typedef lowp_imat2x2							imat2x2;
349 	typedef lowp_imat2x3							imat2x3;
350 	typedef lowp_imat2x4							imat2x4;
351 	typedef lowp_imat3x2							imat3x2;
352 	typedef lowp_imat3x3							imat3x3;
353 	typedef lowp_imat3x4							imat3x4;
354 	typedef lowp_imat4x2							imat4x2;
355 	typedef lowp_imat4x3							imat4x3;
356 	typedef lowp_imat4x4							imat4x4;
357 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
358 
359 	/// Signed integer 2x2 matrix.
360 	/// @see gtc_matrix_integer
361 	typedef mediump_imat2							imat2;
362 
363 	/// Signed integer 3x3 matrix.
364 	/// @see gtc_matrix_integer
365 	typedef mediump_imat3							imat3;
366 
367 	/// Signed integer 4x4 matrix.
368 	/// @see gtc_matrix_integer
369 	typedef mediump_imat4							imat4;
370 
371 	/// Signed integer 2x2 matrix.
372 	/// @see gtc_matrix_integer
373 	typedef mediump_imat2x2							imat2x2;
374 
375 	/// Signed integer 2x3 matrix.
376 	/// @see gtc_matrix_integer
377 	typedef mediump_imat2x3							imat2x3;
378 
379 	/// Signed integer 2x4 matrix.
380 	/// @see gtc_matrix_integer
381 	typedef mediump_imat2x4							imat2x4;
382 
383 	/// Signed integer 3x2 matrix.
384 	/// @see gtc_matrix_integer
385 	typedef mediump_imat3x2							imat3x2;
386 
387 	/// Signed integer 3x3 matrix.
388 	/// @see gtc_matrix_integer
389 	typedef mediump_imat3x3							imat3x3;
390 
391 	/// Signed integer 3x4 matrix.
392 	/// @see gtc_matrix_integer
393 	typedef mediump_imat3x4							imat3x4;
394 
395 	/// Signed integer 4x2 matrix.
396 	/// @see gtc_matrix_integer
397 	typedef mediump_imat4x2							imat4x2;
398 
399 	/// Signed integer 4x3 matrix.
400 	/// @see gtc_matrix_integer
401 	typedef mediump_imat4x3							imat4x3;
402 
403 	/// Signed integer 4x4 matrix.
404 	/// @see gtc_matrix_integer
405 	typedef mediump_imat4x4							imat4x4;
406 #endif//GLM_PRECISION
407 
408 #if(defined(GLM_PRECISION_HIGHP_UINT))
409 	typedef highp_umat2								umat2;
410 	typedef highp_umat3								umat3;
411 	typedef highp_umat4								umat4;
412 	typedef highp_umat2x2							umat2x2;
413 	typedef highp_umat2x3							umat2x3;
414 	typedef highp_umat2x4							umat2x4;
415 	typedef highp_umat3x2							umat3x2;
416 	typedef highp_umat3x3							umat3x3;
417 	typedef highp_umat3x4							umat3x4;
418 	typedef highp_umat4x2							umat4x2;
419 	typedef highp_umat4x3							umat4x3;
420 	typedef highp_umat4x4							umat4x4;
421 #elif(defined(GLM_PRECISION_LOWP_UINT))
422 	typedef lowp_umat2								umat2;
423 	typedef lowp_umat3								umat3;
424 	typedef lowp_umat4								umat4;
425 	typedef lowp_umat2x2							umat2x2;
426 	typedef lowp_umat2x3							umat2x3;
427 	typedef lowp_umat2x4							umat2x4;
428 	typedef lowp_umat3x2							umat3x2;
429 	typedef lowp_umat3x3							umat3x3;
430 	typedef lowp_umat3x4							umat3x4;
431 	typedef lowp_umat4x2							umat4x2;
432 	typedef lowp_umat4x3							umat4x3;
433 	typedef lowp_umat4x4							umat4x4;
434 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
435 
436 	/// Unsigned integer 2x2 matrix.
437 	/// @see gtc_matrix_integer
438 	typedef mediump_umat2							umat2;
439 
440 	/// Unsigned integer 3x3 matrix.
441 	/// @see gtc_matrix_integer
442 	typedef mediump_umat3							umat3;
443 
444 	/// Unsigned integer 4x4 matrix.
445 	/// @see gtc_matrix_integer
446 	typedef mediump_umat4							umat4;
447 
448 	/// Unsigned integer 2x2 matrix.
449 	/// @see gtc_matrix_integer
450 	typedef mediump_umat2x2							umat2x2;
451 
452 	/// Unsigned integer 2x3 matrix.
453 	/// @see gtc_matrix_integer
454 	typedef mediump_umat2x3							umat2x3;
455 
456 	/// Unsigned integer 2x4 matrix.
457 	/// @see gtc_matrix_integer
458 	typedef mediump_umat2x4							umat2x4;
459 
460 	/// Unsigned integer 3x2 matrix.
461 	/// @see gtc_matrix_integer
462 	typedef mediump_umat3x2							umat3x2;
463 
464 	/// Unsigned integer 3x3 matrix.
465 	/// @see gtc_matrix_integer
466 	typedef mediump_umat3x3							umat3x3;
467 
468 	/// Unsigned integer 3x4 matrix.
469 	/// @see gtc_matrix_integer
470 	typedef mediump_umat3x4							umat3x4;
471 
472 	/// Unsigned integer 4x2 matrix.
473 	/// @see gtc_matrix_integer
474 	typedef mediump_umat4x2							umat4x2;
475 
476 	/// Unsigned integer 4x3 matrix.
477 	/// @see gtc_matrix_integer
478 	typedef mediump_umat4x3							umat4x3;
479 
480 	/// Unsigned integer 4x4 matrix.
481 	/// @see gtc_matrix_integer
482 	typedef mediump_umat4x4							umat4x4;
483 #endif//GLM_PRECISION
484 
485 	/// @}
486 }//namespace glm
487