blob: 9fba848c599702fc56f53877de656d08ca843c1c [file] [log] [blame]
Tony-LunarGb0b195d2015-05-13 15:01:06 -06001///////////////////////////////////////////////////////////////////////////////////
2/// OpenGL Mathematics (glm.g-truc.net)
3///
4/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
5/// Permission is hereby granted, free of charge, to any person obtaining a copy
6/// of this software and associated documentation files (the "Software"), to deal
7/// in the Software without restriction, including without limitation the rights
8/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9/// copies of the Software, and to permit persons to whom the Software is
10/// furnished to do so, subject to the following conditions:
11///
12/// The above copyright notice and this permission notice shall be included in
13/// all copies or substantial portions of the Software.
14///
15/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21/// THE SOFTWARE.
22///
23/// @ref core
24/// @file glm/fwd.hpp
25/// @date 2013-03-30 / 2013-03-31
26/// @author Christophe Riccio
27///////////////////////////////////////////////////////////////////////////////////
28
29#ifndef GLM_FWD_INCLUDED
30#define GLM_FWD_INCLUDED
31
32#include "detail/type_int.hpp"
33#include "detail/type_float.hpp"
34#include "detail/type_vec.hpp"
35#include "detail/type_mat.hpp"
36
37//////////////////////
38// GLM_GTC_quaternion
39namespace glm{
40namespace detail
41{
42 template <typename T, precision P> struct tquat;
43}//namespace detail
44
45
46 /// Quaternion of low single-precision floating-point numbers.
47 ///
48 /// @see gtc_quaternion
49 typedef detail::tquat<float, lowp> lowp_quat;
50
51 /// Quaternion of medium single-precision floating-point numbers.
52 ///
53 /// @see gtc_quaternion
54 typedef detail::tquat<float, mediump> mediump_quat;
55
56 /// Quaternion of high single-precision floating-point numbers.
57 ///
58 /// @see gtc_quaternion
59 typedef detail::tquat<float, highp> highp_quat;
60
61#if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
62 typedef highp_quat quat;
63#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
64 typedef mediump_quat quat;
65#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
66 typedef lowp_quat quat;
67#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
68 /// Quaternion of default single-precision floating-point numbers.
69 typedef highp_quat quat;
70#endif
71
72 /// Quaternion of low single-precision floating-point numbers.
73 ///
74 /// @see gtc_quaternion
75 typedef lowp_quat lowp_fquat;
76
77 /// Quaternion of medium single-precision floating-point numbers.
78 ///
79 /// @see gtc_quaternion
80 typedef mediump_quat mediump_fquat;
81
82 /// Quaternion of high single-precision floating-point numbers.
83 ///
84 /// @see gtc_quaternion
85 typedef highp_quat highp_fquat;
86
87 /// Quaternion of default single-precision floating-point numbers.
88 ///
89 /// @see gtc_quaternion
90 typedef quat fquat;
91
92
93 /// Quaternion of low double-precision floating-point numbers.
94 ///
95 /// @see gtc_quaternion
96 typedef detail::tquat<double, lowp> lowp_dquat;
97
98 /// Quaternion of medium double-precision floating-point numbers.
99 ///
100 /// @see gtc_quaternion
101 typedef detail::tquat<double, mediump> mediump_dquat;
102
103 /// Quaternion of high double-precision floating-point numbers.
104 ///
105 /// @see gtc_quaternion
106 typedef detail::tquat<double, highp> highp_dquat;
107
108#if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
109 typedef highp_dquat dquat;
110#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
111 typedef mediump_dquat dquat;
112#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
113 typedef lowp_dquat dquat;
114#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
115 /// Quaternion of default double-precision floating-point numbers.
116 ///
117 /// @see gtc_quaternion
118 typedef highp_dquat dquat;
119#endif
120
121}//namespace glm
122
123//////////////////////
124// GLM_GTC_precision
125namespace glm
126{
127 /// @addtogroup gtc_type_precision
128 /// @{
129
130 /// Low precision 8 bit signed integer type.
131 /// @see gtc_type_precision
132 typedef detail::int8 lowp_int8;
133
134 /// Low precision 16 bit signed integer type.
135 /// @see gtc_type_precision
136 typedef detail::int16 lowp_int16;
137
138 /// Low precision 32 bit signed integer type.
139 /// @see gtc_type_precision
140 typedef detail::int32 lowp_int32;
141
142 /// Low precision 64 bit signed integer type.
143 /// @see gtc_type_precision
144 typedef detail::int64 lowp_int64;
145
146 /// Low precision 8 bit signed integer type.
147 /// @see gtc_type_precision
148 typedef detail::int8 lowp_int8_t;
149
150 /// Low precision 16 bit signed integer type.
151 /// @see gtc_type_precision
152 typedef detail::int16 lowp_int16_t;
153
154 /// Low precision 32 bit signed integer type.
155 /// @see gtc_type_precision
156 typedef detail::int32 lowp_int32_t;
157
158 /// Low precision 64 bit signed integer type.
159 /// @see gtc_type_precision
160 typedef detail::int64 lowp_int64_t;
161
162 /// Low precision 8 bit signed integer type.
163 /// @see gtc_type_precision
164 typedef detail::int8 lowp_i8;
165
166 /// Low precision 16 bit signed integer type.
167 /// @see gtc_type_precision
168 typedef detail::int16 lowp_i16;
169
170 /// Low precision 32 bit signed integer type.
171 /// @see gtc_type_precision
172 typedef detail::int32 lowp_i32;
173
174 /// Low precision 64 bit signed integer type.
175 /// @see gtc_type_precision
176 typedef detail::int64 lowp_i64;
177
178 /// Medium precision 8 bit signed integer type.
179 /// @see gtc_type_precision
180 typedef detail::int8 mediump_int8;
181
182 /// Medium precision 16 bit signed integer type.
183 /// @see gtc_type_precision
184 typedef detail::int16 mediump_int16;
185
186 /// Medium precision 32 bit signed integer type.
187 /// @see gtc_type_precision
188 typedef detail::int32 mediump_int32;
189
190 /// Medium precision 64 bit signed integer type.
191 /// @see gtc_type_precision
192 typedef detail::int64 mediump_int64;
193
194 /// Medium precision 8 bit signed integer type.
195 /// @see gtc_type_precision
196 typedef detail::int8 mediump_int8_t;
197
198 /// Medium precision 16 bit signed integer type.
199 /// @see gtc_type_precision
200 typedef detail::int16 mediump_int16_t;
201
202 /// Medium precision 32 bit signed integer type.
203 /// @see gtc_type_precision
204 typedef detail::int32 mediump_int32_t;
205
206 /// Medium precision 64 bit signed integer type.
207 /// @see gtc_type_precision
208 typedef detail::int64 mediump_int64_t;
209
210 /// Medium precision 8 bit signed integer type.
211 /// @see gtc_type_precision
212 typedef detail::int8 mediump_i8;
213
214 /// Medium precision 16 bit signed integer type.
215 /// @see gtc_type_precision
216 typedef detail::int16 mediump_i16;
217
218 /// Medium precision 32 bit signed integer type.
219 /// @see gtc_type_precision
220 typedef detail::int32 mediump_i32;
221
222 /// Medium precision 64 bit signed integer type.
223 /// @see gtc_type_precision
224 typedef detail::int64 mediump_i64;
225
226 /// High precision 8 bit signed integer type.
227 /// @see gtc_type_precision
228 typedef detail::int8 highp_int8;
229
230 /// High precision 16 bit signed integer type.
231 /// @see gtc_type_precision
232 typedef detail::int16 highp_int16;
233
234 /// High precision 32 bit signed integer type.
235 /// @see gtc_type_precision
236 typedef detail::int32 highp_int32;
237
238 /// High precision 64 bit signed integer type.
239 /// @see gtc_type_precision
240 typedef detail::int64 highp_int64;
241
242 /// High precision 8 bit signed integer type.
243 /// @see gtc_type_precision
244 typedef detail::int8 highp_int8_t;
245
246 /// High precision 16 bit signed integer type.
247 /// @see gtc_type_precision
248 typedef detail::int16 highp_int16_t;
249
250 /// 32 bit signed integer type.
251 /// @see gtc_type_precision
252 typedef detail::int32 highp_int32_t;
253
254 /// High precision 64 bit signed integer type.
255 /// @see gtc_type_precision
256 typedef detail::int64 highp_int64_t;
257
258 /// High precision 8 bit signed integer type.
259 /// @see gtc_type_precision
260 typedef detail::int8 highp_i8;
261
262 /// High precision 16 bit signed integer type.
263 /// @see gtc_type_precision
264 typedef detail::int16 highp_i16;
265
266 /// High precision 32 bit signed integer type.
267 /// @see gtc_type_precision
268 typedef detail::int32 highp_i32;
269
270 /// High precision 64 bit signed integer type.
271 /// @see gtc_type_precision
272 typedef detail::int64 highp_i64;
273
274
275 /// 8 bit signed integer type.
276 /// @see gtc_type_precision
277 typedef detail::int8 int8;
278
279 /// 16 bit signed integer type.
280 /// @see gtc_type_precision
281 typedef detail::int16 int16;
282
283 /// 32 bit signed integer type.
284 /// @see gtc_type_precision
285 typedef detail::int32 int32;
286
287 /// 64 bit signed integer type.
288 /// @see gtc_type_precision
289 typedef detail::int64 int64;
290
291 /// 8 bit signed integer type.
292 /// @see gtc_type_precision
293 typedef detail::int8 int8_t;
294
295 /// 16 bit signed integer type.
296 /// @see gtc_type_precision
297 typedef detail::int16 int16_t;
298
299 /// 32 bit signed integer type.
300 /// @see gtc_type_precision
301 typedef detail::int32 int32_t;
302
303 /// 64 bit signed integer type.
304 /// @see gtc_type_precision
305 typedef detail::int64 int64_t;
306
307 /// 8 bit signed integer type.
308 /// @see gtc_type_precision
309 typedef detail::int8 i8;
310
311 /// 16 bit signed integer type.
312 /// @see gtc_type_precision
313 typedef detail::int16 i16;
314
315 /// 32 bit signed integer type.
316 /// @see gtc_type_precision
317 typedef detail::int32 i32;
318
319 /// 64 bit signed integer type.
320 /// @see gtc_type_precision
321 typedef detail::int64 i64;
322
323
324
325 /// Low precision 8 bit signed integer scalar type.
326 /// @see gtc_type_precision
327 typedef detail::tvec1<i8, lowp> lowp_i8vec1;
328
329 /// Low precision 8 bit signed integer vector of 2 components type.
330 /// @see gtc_type_precision
331 typedef detail::tvec2<i8, lowp> lowp_i8vec2;
332
333 /// Low precision 8 bit signed integer vector of 3 components type.
334 /// @see gtc_type_precision
335 typedef detail::tvec3<i8, lowp> lowp_i8vec3;
336
337 /// Low precision 8 bit signed integer vector of 4 components type.
338 /// @see gtc_type_precision
339 typedef detail::tvec4<i8, lowp> lowp_i8vec4;
340
341
342 /// Medium precision 8 bit signed integer scalar type.
343 /// @see gtc_type_precision
344 typedef detail::tvec1<i8, mediump> mediump_i8vec1;
345
346 /// Medium precision 8 bit signed integer vector of 2 components type.
347 /// @see gtc_type_precision
348 typedef detail::tvec2<i8, mediump> mediump_i8vec2;
349
350 /// Medium precision 8 bit signed integer vector of 3 components type.
351 /// @see gtc_type_precision
352 typedef detail::tvec3<i8, mediump> mediump_i8vec3;
353
354 /// Medium precision 8 bit signed integer vector of 4 components type.
355 /// @see gtc_type_precision
356 typedef detail::tvec4<i8, mediump> mediump_i8vec4;
357
358
359 /// High precision 8 bit signed integer scalar type.
360 /// @see gtc_type_precision
361 typedef detail::tvec1<i8, highp> highp_i8vec1;
362
363 /// High precision 8 bit signed integer vector of 2 components type.
364 /// @see gtc_type_precision
365 typedef detail::tvec2<i8, highp> highp_i8vec2;
366
367 /// High precision 8 bit signed integer vector of 3 components type.
368 /// @see gtc_type_precision
369 typedef detail::tvec3<i8, highp> highp_i8vec3;
370
371 /// High precision 8 bit signed integer vector of 4 components type.
372 /// @see gtc_type_precision
373 typedef detail::tvec4<i8, highp> highp_i8vec4;
374
375#if(defined(GLM_PRECISION_LOWP_INT))
376 typedef lowp_i8vec1 i8vec1;
377 typedef lowp_i8vec2 i8vec2;
378 typedef lowp_i8vec3 i8vec3;
379 typedef lowp_i8vec4 i8vec4;
380#elif(defined(GLM_PRECISION_MEDIUMP_INT))
381 typedef mediump_i8vec1 i8vec1;
382 typedef mediump_i8vec2 i8vec2;
383 typedef mediump_i8vec3 i8vec3;
384 typedef mediump_i8vec4 i8vec4;
385#else
386 /// Default precision 8 bit signed integer scalar type.
387 /// @see gtc_type_precision
388 typedef highp_i8vec1 i8vec1;
389
390 /// Default precision 8 bit signed integer vector of 2 components type.
391 /// @see gtc_type_precision
392 typedef highp_i8vec2 i8vec2;
393
394 /// Default precision 8 bit signed integer vector of 3 components type.
395 /// @see gtc_type_precision
396 typedef highp_i8vec3 i8vec3;
397
398 /// Default precision 8 bit signed integer vector of 4 components type.
399 /// @see gtc_type_precision
400 typedef highp_i8vec4 i8vec4;
401#endif
402
403
404 /// Low precision 16 bit signed integer scalar type.
405 /// @see gtc_type_precision
406 typedef detail::tvec1<i16, lowp> lowp_i16vec1;
407
408 /// Low precision 16 bit signed integer vector of 2 components type.
409 /// @see gtc_type_precision
410 typedef detail::tvec2<i16, lowp> lowp_i16vec2;
411
412 /// Low precision 16 bit signed integer vector of 3 components type.
413 /// @see gtc_type_precision
414 typedef detail::tvec3<i16, lowp> lowp_i16vec3;
415
416 /// Low precision 16 bit signed integer vector of 4 components type.
417 /// @see gtc_type_precision
418 typedef detail::tvec4<i16, lowp> lowp_i16vec4;
419
420
421 /// Medium precision 16 bit signed integer scalar type.
422 /// @see gtc_type_precision
423 typedef detail::tvec1<i16, mediump> mediump_i16vec1;
424
425 /// Medium precision 16 bit signed integer vector of 2 components type.
426 /// @see gtc_type_precision
427 typedef detail::tvec2<i16, mediump> mediump_i16vec2;
428
429 /// Medium precision 16 bit signed integer vector of 3 components type.
430 /// @see gtc_type_precision
431 typedef detail::tvec3<i16, mediump> mediump_i16vec3;
432
433 /// Medium precision 16 bit signed integer vector of 4 components type.
434 /// @see gtc_type_precision
435 typedef detail::tvec4<i16, mediump> mediump_i16vec4;
436
437
438 /// High precision 16 bit signed integer scalar type.
439 /// @see gtc_type_precision
440 typedef detail::tvec1<i16, highp> highp_i16vec1;
441
442 /// High precision 16 bit signed integer vector of 2 components type.
443 /// @see gtc_type_precision
444 typedef detail::tvec2<i16, highp> highp_i16vec2;
445
446 /// High precision 16 bit signed integer vector of 3 components type.
447 /// @see gtc_type_precision
448 typedef detail::tvec3<i16, highp> highp_i16vec3;
449
450 /// High precision 16 bit signed integer vector of 4 components type.
451 /// @see gtc_type_precision
452 typedef detail::tvec4<i16, highp> highp_i16vec4;
453
454
455#if(defined(GLM_PRECISION_LOWP_INT))
456 typedef lowp_i16vec1 i16vec1;
457 typedef lowp_i16vec2 i16vec2;
458 typedef lowp_i16vec3 i16vec3;
459 typedef lowp_i16vec4 i16vec4;
460#elif(defined(GLM_PRECISION_MEDIUMP_INT))
461 typedef mediump_i16vec1 i16vec1;
462 typedef mediump_i16vec2 i16vec2;
463 typedef mediump_i16vec3 i16vec3;
464 typedef mediump_i16vec4 i16vec4;
465#else
466 /// Default precision 16 bit signed integer scalar type.
467 /// @see gtc_type_precision
468 typedef highp_i16vec1 i16vec1;
469
470 /// Default precision 16 bit signed integer vector of 2 components type.
471 /// @see gtc_type_precision
472 typedef highp_i16vec2 i16vec2;
473
474 /// Default precision 16 bit signed integer vector of 3 components type.
475 /// @see gtc_type_precision
476 typedef highp_i16vec3 i16vec3;
477
478 /// Default precision 16 bit signed integer vector of 4 components type.
479 /// @see gtc_type_precision
480 typedef highp_i16vec4 i16vec4;
481#endif
482
483
484 /// Low precision 32 bit signed integer scalar type.
485 /// @see gtc_type_precision
486 typedef detail::tvec1<i32, lowp> lowp_i32vec1;
487
488 /// Low precision 32 bit signed integer vector of 2 components type.
489 /// @see gtc_type_precision
490 typedef detail::tvec2<i32, lowp> lowp_i32vec2;
491
492 /// Low precision 32 bit signed integer vector of 3 components type.
493 /// @see gtc_type_precision
494 typedef detail::tvec3<i32, lowp> lowp_i32vec3;
495
496 /// Low precision 32 bit signed integer vector of 4 components type.
497 /// @see gtc_type_precision
498 typedef detail::tvec4<i32, lowp> lowp_i32vec4;
499
500
501 /// Medium precision 32 bit signed integer scalar type.
502 /// @see gtc_type_precision
503 typedef detail::tvec1<i32, mediump> mediump_i32vec1;
504
505 /// Medium precision 32 bit signed integer vector of 2 components type.
506 /// @see gtc_type_precision
507 typedef detail::tvec2<i32, mediump> mediump_i32vec2;
508
509 /// Medium precision 32 bit signed integer vector of 3 components type.
510 /// @see gtc_type_precision
511 typedef detail::tvec3<i32, mediump> mediump_i32vec3;
512
513 /// Medium precision 32 bit signed integer vector of 4 components type.
514 /// @see gtc_type_precision
515 typedef detail::tvec4<i32, mediump> mediump_i32vec4;
516
517
518 /// High precision 32 bit signed integer scalar type.
519 /// @see gtc_type_precision
520 typedef detail::tvec1<i32, highp> highp_i32vec1;
521
522 /// High precision 32 bit signed integer vector of 2 components type.
523 /// @see gtc_type_precision
524 typedef detail::tvec2<i32, highp> highp_i32vec2;
525
526 /// High precision 32 bit signed integer vector of 3 components type.
527 /// @see gtc_type_precision
528 typedef detail::tvec3<i32, highp> highp_i32vec3;
529
530 /// High precision 32 bit signed integer vector of 4 components type.
531 /// @see gtc_type_precision
532 typedef detail::tvec4<i32, highp> highp_i32vec4;
533
534#if(defined(GLM_PRECISION_LOWP_INT))
535 typedef lowp_i32vec1 i32vec1;
536 typedef lowp_i32vec2 i32vec2;
537 typedef lowp_i32vec3 i32vec3;
538 typedef lowp_i32vec4 i32vec4;
539#elif(defined(GLM_PRECISION_MEDIUMP_INT))
540 typedef mediump_i32vec1 i32vec1;
541 typedef mediump_i32vec2 i32vec2;
542 typedef mediump_i32vec3 i32vec3;
543 typedef mediump_i32vec4 i32vec4;
544#else
545 /// Default precision 32 bit signed integer scalar type.
546 /// @see gtc_type_precision
547 typedef highp_i32vec1 i32vec1;
548
549 /// Default precision 32 bit signed integer vector of 2 components type.
550 /// @see gtc_type_precision
551 typedef highp_i32vec2 i32vec2;
552
553 /// Default precision 32 bit signed integer vector of 3 components type.
554 /// @see gtc_type_precision
555 typedef highp_i32vec3 i32vec3;
556
557 /// Default precision 32 bit signed integer vector of 4 components type.
558 /// @see gtc_type_precision
559 typedef highp_i32vec4 i32vec4;
560#endif
561
562
563 /// Low precision 32 bit signed integer scalar type.
564 /// @see gtc_type_precision
565 typedef detail::tvec1<i32, lowp> lowp_i32vec1;
566
567 /// Low precision 32 bit signed integer vector of 2 components type.
568 /// @see gtc_type_precision
569 typedef detail::tvec2<i32, lowp> lowp_i32vec2;
570
571 /// Low precision 32 bit signed integer vector of 3 components type.
572 /// @see gtc_type_precision
573 typedef detail::tvec3<i32, lowp> lowp_i32vec3;
574
575 /// Low precision 32 bit signed integer vector of 4 components type.
576 /// @see gtc_type_precision
577 typedef detail::tvec4<i32, lowp> lowp_i32vec4;
578
579
580 /// Medium precision 32 bit signed integer scalar type.
581 /// @see gtc_type_precision
582 typedef detail::tvec1<i32, mediump> mediump_i32vec1;
583
584 /// Medium precision 32 bit signed integer vector of 2 components type.
585 /// @see gtc_type_precision
586 typedef detail::tvec2<i32, mediump> mediump_i32vec2;
587
588 /// Medium precision 32 bit signed integer vector of 3 components type.
589 /// @see gtc_type_precision
590 typedef detail::tvec3<i32, mediump> mediump_i32vec3;
591
592 /// Medium precision 32 bit signed integer vector of 4 components type.
593 /// @see gtc_type_precision
594 typedef detail::tvec4<i32, mediump> mediump_i32vec4;
595
596
597 /// High precision 32 bit signed integer scalar type.
598 /// @see gtc_type_precision
599 typedef detail::tvec1<i32, highp> highp_i32vec1;
600
601 /// High precision 32 bit signed integer vector of 2 components type.
602 /// @see gtc_type_precision
603 typedef detail::tvec2<i32, highp> highp_i32vec2;
604
605 /// High precision 32 bit signed integer vector of 3 components type.
606 /// @see gtc_type_precision
607 typedef detail::tvec3<i32, highp> highp_i32vec3;
608
609 /// High precision 32 bit signed integer vector of 4 components type.
610 /// @see gtc_type_precision
611 typedef detail::tvec4<i32, highp> highp_i32vec4;
612
613#if(defined(GLM_PRECISION_LOWP_INT))
614 typedef lowp_i32vec1 i32vec1;
615 typedef lowp_i32vec2 i32vec2;
616 typedef lowp_i32vec3 i32vec3;
617 typedef lowp_i32vec4 i32vec4;
618#elif(defined(GLM_PRECISION_MEDIUMP_INT))
619 typedef mediump_i32vec1 i32vec1;
620 typedef mediump_i32vec2 i32vec2;
621 typedef mediump_i32vec3 i32vec3;
622 typedef mediump_i32vec4 i32vec4;
623#else
624 /// Default precision 32 bit signed integer scalar type.
625 /// @see gtc_type_precision
626 typedef highp_i32vec1 i32vec1;
627
628 /// Default precision 32 bit signed integer vector of 2 components type.
629 /// @see gtc_type_precision
630 typedef highp_i32vec2 i32vec2;
631
632 /// Default precision 32 bit signed integer vector of 3 components type.
633 /// @see gtc_type_precision
634 typedef highp_i32vec3 i32vec3;
635
636 /// Default precision 32 bit signed integer vector of 4 components type.
637 /// @see gtc_type_precision
638 typedef highp_i32vec4 i32vec4;
639#endif
640
641
642
643 /// Low precision 64 bit signed integer scalar type.
644 /// @see gtc_type_precision
645 typedef detail::tvec1<i64, lowp> lowp_i64vec1;
646
647 /// Low precision 64 bit signed integer vector of 2 components type.
648 /// @see gtc_type_precision
649 typedef detail::tvec2<i64, lowp> lowp_i64vec2;
650
651 /// Low precision 64 bit signed integer vector of 3 components type.
652 /// @see gtc_type_precision
653 typedef detail::tvec3<i64, lowp> lowp_i64vec3;
654
655 /// Low precision 64 bit signed integer vector of 4 components type.
656 /// @see gtc_type_precision
657 typedef detail::tvec4<i64, lowp> lowp_i64vec4;
658
659
660 /// Medium precision 64 bit signed integer scalar type.
661 /// @see gtc_type_precision
662 typedef detail::tvec1<i64, mediump> mediump_i64vec1;
663
664 /// Medium precision 64 bit signed integer vector of 2 components type.
665 /// @see gtc_type_precision
666 typedef detail::tvec2<i64, mediump> mediump_i64vec2;
667
668 /// Medium precision 64 bit signed integer vector of 3 components type.
669 /// @see gtc_type_precision
670 typedef detail::tvec3<i64, mediump> mediump_i64vec3;
671
672 /// Medium precision 64 bit signed integer vector of 4 components type.
673 /// @see gtc_type_precision
674 typedef detail::tvec4<i64, mediump> mediump_i64vec4;
675
676
677 /// High precision 64 bit signed integer scalar type.
678 /// @see gtc_type_precision
679 typedef detail::tvec1<i64, highp> highp_i64vec1;
680
681 /// High precision 64 bit signed integer vector of 2 components type.
682 /// @see gtc_type_precision
683 typedef detail::tvec2<i64, highp> highp_i64vec2;
684
685 /// High precision 64 bit signed integer vector of 3 components type.
686 /// @see gtc_type_precision
687 typedef detail::tvec3<i64, highp> highp_i64vec3;
688
689 /// High precision 64 bit signed integer vector of 4 components type.
690 /// @see gtc_type_precision
691 typedef detail::tvec4<i64, highp> highp_i64vec4;
692
693#if(defined(GLM_PRECISION_LOWP_INT))
694 typedef lowp_i64vec1 i64vec1;
695 typedef lowp_i64vec2 i64vec2;
696 typedef lowp_i64vec3 i64vec3;
697 typedef lowp_i64vec4 i64vec4;
698#elif(defined(GLM_PRECISION_MEDIUMP_INT))
699 typedef mediump_i64vec1 i64vec1;
700 typedef mediump_i64vec2 i64vec2;
701 typedef mediump_i64vec3 i64vec3;
702 typedef mediump_i64vec4 i64vec4;
703#else
704 /// Default precision 64 bit signed integer scalar type.
705 /// @see gtc_type_precision
706 typedef highp_i64vec1 i64vec1;
707
708 /// Default precision 64 bit signed integer vector of 2 components type.
709 /// @see gtc_type_precision
710 typedef highp_i64vec2 i64vec2;
711
712 /// Default precision 64 bit signed integer vector of 3 components type.
713 /// @see gtc_type_precision
714 typedef highp_i64vec3 i64vec3;
715
716 /// Default precision 64 bit signed integer vector of 4 components type.
717 /// @see gtc_type_precision
718 typedef highp_i64vec4 i64vec4;
719#endif
720
721
722 /////////////////////////////
723 // Unsigned int vector types
724
725 /// Low precision 8 bit unsigned integer type.
726 /// @see gtc_type_precision
727 typedef detail::uint8 lowp_uint8;
728
729 /// Low precision 16 bit unsigned integer type.
730 /// @see gtc_type_precision
731 typedef detail::uint16 lowp_uint16;
732
733 /// Low precision 32 bit unsigned integer type.
734 /// @see gtc_type_precision
735 typedef detail::uint32 lowp_uint32;
736
737 /// Low precision 64 bit unsigned integer type.
738 /// @see gtc_type_precision
739 typedef detail::uint64 lowp_uint64;
740
741
742 /// Low precision 8 bit unsigned integer type.
743 /// @see gtc_type_precision
744 typedef detail::uint8 lowp_uint8_t;
745
746 /// Low precision 16 bit unsigned integer type.
747 /// @see gtc_type_precision
748 typedef detail::uint16 lowp_uint16_t;
749
750 /// Low precision 32 bit unsigned integer type.
751 /// @see gtc_type_precision
752 typedef detail::uint32 lowp_uint32_t;
753
754 /// Low precision 64 bit unsigned integer type.
755 /// @see gtc_type_precision
756 typedef detail::uint64 lowp_uint64_t;
757
758
759 /// Low precision 8 bit unsigned integer type.
760 /// @see gtc_type_precision
761 typedef detail::uint8 lowp_u8;
762
763 /// Low precision 16 bit unsigned integer type.
764 /// @see gtc_type_precision
765 typedef detail::uint16 lowp_u16;
766
767 /// Low precision 32 bit unsigned integer type.
768 /// @see gtc_type_precision
769 typedef detail::uint32 lowp_u32;
770
771 /// Low precision 64 bit unsigned integer type.
772 /// @see gtc_type_precision
773 typedef detail::uint64 lowp_u64;
774
775
776
777 /// Medium precision 8 bit unsigned integer type.
778 /// @see gtc_type_precision
779 typedef detail::uint8 mediump_uint8;
780
781 /// Medium precision 16 bit unsigned integer type.
782 /// @see gtc_type_precision
783 typedef detail::uint16 mediump_uint16;
784
785 /// Medium precision 32 bit unsigned integer type.
786 /// @see gtc_type_precision
787 typedef detail::uint32 mediump_uint32;
788
789 /// Medium precision 64 bit unsigned integer type.
790 /// @see gtc_type_precision
791 typedef detail::uint64 mediump_uint64;
792
793 /// Medium precision 8 bit unsigned integer type.
794 /// @see gtc_type_precision
795 typedef detail::uint8 mediump_uint8_t;
796
797 /// Medium precision 16 bit unsigned integer type.
798 /// @see gtc_type_precision
799 typedef detail::uint16 mediump_uint16_t;
800
801 /// Medium precision 32 bit unsigned integer type.
802 /// @see gtc_type_precision
803 typedef detail::uint32 mediump_uint32_t;
804
805 /// Medium precision 64 bit unsigned integer type.
806 /// @see gtc_type_precision
807 typedef detail::uint64 mediump_uint64_t;
808
809 /// Medium precision 8 bit unsigned integer type.
810 /// @see gtc_type_precision
811 typedef detail::uint8 mediump_u8;
812
813 /// Medium precision 16 bit unsigned integer type.
814 /// @see gtc_type_precision
815 typedef detail::uint16 mediump_u16;
816
817 /// Medium precision 32 bit unsigned integer type.
818 /// @see gtc_type_precision
819 typedef detail::uint32 mediump_u32;
820
821 /// Medium precision 64 bit unsigned integer type.
822 /// @see gtc_type_precision
823 typedef detail::uint64 mediump_u64;
824
825
826
827 /// Medium precision 8 bit unsigned integer type.
828 /// @see gtc_type_precision
829 typedef detail::uint8 highp_uint8;
830
831 /// Medium precision 16 bit unsigned integer type.
832 /// @see gtc_type_precision
833 typedef detail::uint16 highp_uint16;
834
835 /// Medium precision 32 bit unsigned integer type.
836 /// @see gtc_type_precision
837 typedef detail::uint32 highp_uint32;
838
839 /// Medium precision 64 bit unsigned integer type.
840 /// @see gtc_type_precision
841 typedef detail::uint64 highp_uint64;
842
843 /// Medium precision 8 bit unsigned integer type.
844 /// @see gtc_type_precision
845 typedef detail::uint8 highp_uint8_t;
846
847 /// Medium precision 16 bit unsigned integer type.
848 /// @see gtc_type_precision
849 typedef detail::uint16 highp_uint16_t;
850
851 /// Medium precision 32 bit unsigned integer type.
852 /// @see gtc_type_precision
853 typedef detail::uint32 highp_uint32_t;
854
855 /// Medium precision 64 bit unsigned integer type.
856 /// @see gtc_type_precision
857 typedef detail::uint64 highp_uint64_t;
858
859 /// Medium precision 8 bit unsigned integer type.
860 /// @see gtc_type_precision
861 typedef detail::uint8 highp_u8;
862
863 /// Medium precision 16 bit unsigned integer type.
864 /// @see gtc_type_precision
865 typedef detail::uint16 highp_u16;
866
867 /// Medium precision 32 bit unsigned integer type.
868 /// @see gtc_type_precision
869 typedef detail::uint32 highp_u32;
870
871 /// Medium precision 64 bit unsigned integer type.
872 /// @see gtc_type_precision
873 typedef detail::uint64 highp_u64;
874
875
876
877 /// 8 bit unsigned integer type.
878 /// @see gtc_type_precision
879 typedef detail::uint8 uint8;
880
881 /// 16 bit unsigned integer type.
882 /// @see gtc_type_precision
883 typedef detail::uint16 uint16;
884
885 /// 32 bit unsigned integer type.
886 /// @see gtc_type_precision
887 typedef detail::uint32 uint32;
888
889 /// 64 bit unsigned integer type.
890 /// @see gtc_type_precision
891 typedef detail::uint64 uint64;
892
893 /// 8 bit unsigned integer type.
894 /// @see gtc_type_precision
895 typedef detail::uint8 uint8_t;
896
897 /// 16 bit unsigned integer type.
898 /// @see gtc_type_precision
899 typedef detail::uint16 uint16_t;
900
901 /// 32 bit unsigned integer type.
902 /// @see gtc_type_precision
903 typedef detail::uint32 uint32_t;
904
905 /// 64 bit unsigned integer type.
906 /// @see gtc_type_precision
907 typedef detail::uint64 uint64_t;
908
909 /// 8 bit unsigned integer type.
910 /// @see gtc_type_precision
911 typedef detail::uint8 u8;
912
913 /// 16 bit unsigned integer type.
914 /// @see gtc_type_precision
915 typedef detail::uint16 u16;
916
917 /// 32 bit unsigned integer type.
918 /// @see gtc_type_precision
919 typedef detail::uint32 u32;
920
921 /// 64 bit unsigned integer type.
922 /// @see gtc_type_precision
923 typedef detail::uint64 u64;
924
925
926
927
928 /// Low precision 8 bit unsigned integer scalar type.
929 /// @see gtc_type_precision
930 typedef detail::tvec1<u8, lowp> lowp_u8vec1;
931
932 /// Low precision 8 bit unsigned integer vector of 2 components type.
933 /// @see gtc_type_precision
934 typedef detail::tvec2<u8, lowp> lowp_u8vec2;
935
936 /// Low precision 8 bit unsigned integer vector of 3 components type.
937 /// @see gtc_type_precision
938 typedef detail::tvec3<u8, lowp> lowp_u8vec3;
939
940 /// Low precision 8 bit unsigned integer vector of 4 components type.
941 /// @see gtc_type_precision
942 typedef detail::tvec4<u8, lowp> lowp_u8vec4;
943
944
945 /// Medium precision 8 bit unsigned integer scalar type.
946 /// @see gtc_type_precision
947 typedef detail::tvec1<u8, mediump> mediump_u8vec1;
948
949 /// Medium precision 8 bit unsigned integer vector of 2 components type.
950 /// @see gtc_type_precision
951 typedef detail::tvec2<u8, mediump> mediump_u8vec2;
952
953 /// Medium precision 8 bit unsigned integer vector of 3 components type.
954 /// @see gtc_type_precision
955 typedef detail::tvec3<u8, mediump> mediump_u8vec3;
956
957 /// Medium precision 8 bit unsigned integer vector of 4 components type.
958 /// @see gtc_type_precision
959 typedef detail::tvec4<u8, mediump> mediump_u8vec4;
960
961
962 /// High precision 8 bit unsigned integer scalar type.
963 /// @see gtc_type_precision
964 typedef detail::tvec1<u8, highp> highp_u8vec1;
965
966 /// High precision 8 bit unsigned integer vector of 2 components type.
967 /// @see gtc_type_precision
968 typedef detail::tvec2<u8, highp> highp_u8vec2;
969
970 /// High precision 8 bit unsigned integer vector of 3 components type.
971 /// @see gtc_type_precision
972 typedef detail::tvec3<u8, highp> highp_u8vec3;
973
974 /// High precision 8 bit unsigned integer vector of 4 components type.
975 /// @see gtc_type_precision
976 typedef detail::tvec4<u8, highp> highp_u8vec4;
977
978#if(defined(GLM_PRECISION_LOWP_INT))
979 typedef lowp_u8vec1 u8vec1;
980 typedef lowp_u8vec2 u8vec2;
981 typedef lowp_u8vec3 u8vec3;
982 typedef lowp_u8vec4 u8vec4;
983#elif(defined(GLM_PRECISION_MEDIUMP_INT))
984 typedef mediump_u8vec1 u8vec1;
985 typedef mediump_u8vec2 u8vec2;
986 typedef mediump_u8vec3 u8vec3;
987 typedef mediump_u8vec4 u8vec4;
988#else
989 /// Default precision 8 bit unsigned integer scalar type.
990 /// @see gtc_type_precision
991 typedef highp_u8vec1 u8vec1;
992
993 /// Default precision 8 bit unsigned integer vector of 2 components type.
994 /// @see gtc_type_precision
995 typedef highp_u8vec2 u8vec2;
996
997 /// Default precision 8 bit unsigned integer vector of 3 components type.
998 /// @see gtc_type_precision
999 typedef highp_u8vec3 u8vec3;
1000
1001 /// Default precision 8 bit unsigned integer vector of 4 components type.
1002 /// @see gtc_type_precision
1003 typedef highp_u8vec4 u8vec4;
1004#endif
1005
1006
1007 /// Low precision 16 bit unsigned integer scalar type.
1008 /// @see gtc_type_precision
1009 typedef detail::tvec1<u16, lowp> lowp_u16vec1;
1010
1011 /// Low precision 16 bit unsigned integer vector of 2 components type.
1012 /// @see gtc_type_precision
1013 typedef detail::tvec2<u16, lowp> lowp_u16vec2;
1014
1015 /// Low precision 16 bit unsigned integer vector of 3 components type.
1016 /// @see gtc_type_precision
1017 typedef detail::tvec3<u16, lowp> lowp_u16vec3;
1018
1019 /// Low precision 16 bit unsigned integer vector of 4 components type.
1020 /// @see gtc_type_precision
1021 typedef detail::tvec4<u16, lowp> lowp_u16vec4;
1022
1023
1024 /// Medium precision 16 bit unsigned integer scalar type.
1025 /// @see gtc_type_precision
1026 typedef detail::tvec1<u16, mediump> mediump_u16vec1;
1027
1028 /// Medium precision 16 bit unsigned integer vector of 2 components type.
1029 /// @see gtc_type_precision
1030 typedef detail::tvec2<u16, mediump> mediump_u16vec2;
1031
1032 /// Medium precision 16 bit unsigned integer vector of 3 components type.
1033 /// @see gtc_type_precision
1034 typedef detail::tvec3<u16, mediump> mediump_u16vec3;
1035
1036 /// Medium precision 16 bit unsigned integer vector of 4 components type.
1037 /// @see gtc_type_precision
1038 typedef detail::tvec4<u16, mediump> mediump_u16vec4;
1039
1040
1041 /// High precision 16 bit unsigned integer scalar type.
1042 /// @see gtc_type_precision
1043 typedef detail::tvec1<u16, highp> highp_u16vec1;
1044
1045 /// High precision 16 bit unsigned integer vector of 2 components type.
1046 /// @see gtc_type_precision
1047 typedef detail::tvec2<u16, highp> highp_u16vec2;
1048
1049 /// High precision 16 bit unsigned integer vector of 3 components type.
1050 /// @see gtc_type_precision
1051 typedef detail::tvec3<u16, highp> highp_u16vec3;
1052
1053 /// High precision 16 bit unsigned integer vector of 4 components type.
1054 /// @see gtc_type_precision
1055 typedef detail::tvec4<u16, highp> highp_u16vec4;
1056
1057
1058#if(defined(GLM_PRECISION_LOWP_INT))
1059 typedef lowp_u16vec1 u16vec1;
1060 typedef lowp_u16vec2 u16vec2;
1061 typedef lowp_u16vec3 u16vec3;
1062 typedef lowp_u16vec4 u16vec4;
1063#elif(defined(GLM_PRECISION_MEDIUMP_INT))
1064 typedef mediump_u16vec1 u16vec1;
1065 typedef mediump_u16vec2 u16vec2;
1066 typedef mediump_u16vec3 u16vec3;
1067 typedef mediump_u16vec4 u16vec4;
1068#else
1069 /// Default precision 16 bit unsigned integer scalar type.
1070 /// @see gtc_type_precision
1071 typedef highp_u16vec1 u16vec1;
1072
1073 /// Default precision 16 bit unsigned integer vector of 2 components type.
1074 /// @see gtc_type_precision
1075 typedef highp_u16vec2 u16vec2;
1076
1077 /// Default precision 16 bit unsigned integer vector of 3 components type.
1078 /// @see gtc_type_precision
1079 typedef highp_u16vec3 u16vec3;
1080
1081 /// Default precision 16 bit unsigned integer vector of 4 components type.
1082 /// @see gtc_type_precision
1083 typedef highp_u16vec4 u16vec4;
1084#endif
1085
1086
1087 /// Low precision 32 bit unsigned integer scalar type.
1088 /// @see gtc_type_precision
1089 typedef detail::tvec1<u32, lowp> lowp_u32vec1;
1090
1091 /// Low precision 32 bit unsigned integer vector of 2 components type.
1092 /// @see gtc_type_precision
1093 typedef detail::tvec2<u32, lowp> lowp_u32vec2;
1094
1095 /// Low precision 32 bit unsigned integer vector of 3 components type.
1096 /// @see gtc_type_precision
1097 typedef detail::tvec3<u32, lowp> lowp_u32vec3;
1098
1099 /// Low precision 32 bit unsigned integer vector of 4 components type.
1100 /// @see gtc_type_precision
1101 typedef detail::tvec4<u32, lowp> lowp_u32vec4;
1102
1103
1104 /// Medium precision 32 bit unsigned integer scalar type.
1105 /// @see gtc_type_precision
1106 typedef detail::tvec1<u32, mediump> mediump_u32vec1;
1107
1108 /// Medium precision 32 bit unsigned integer vector of 2 components type.
1109 /// @see gtc_type_precision
1110 typedef detail::tvec2<u32, mediump> mediump_u32vec2;
1111
1112 /// Medium precision 32 bit unsigned integer vector of 3 components type.
1113 /// @see gtc_type_precision
1114 typedef detail::tvec3<u32, mediump> mediump_u32vec3;
1115
1116 /// Medium precision 32 bit unsigned integer vector of 4 components type.
1117 /// @see gtc_type_precision
1118 typedef detail::tvec4<u32, mediump> mediump_u32vec4;
1119
1120
1121 /// High precision 32 bit unsigned integer scalar type.
1122 /// @see gtc_type_precision
1123 typedef detail::tvec1<u32, highp> highp_u32vec1;
1124
1125 /// High precision 32 bit unsigned integer vector of 2 components type.
1126 /// @see gtc_type_precision
1127 typedef detail::tvec2<u32, highp> highp_u32vec2;
1128
1129 /// High precision 32 bit unsigned integer vector of 3 components type.
1130 /// @see gtc_type_precision
1131 typedef detail::tvec3<u32, highp> highp_u32vec3;
1132
1133 /// High precision 32 bit unsigned integer vector of 4 components type.
1134 /// @see gtc_type_precision
1135 typedef detail::tvec4<u32, highp> highp_u32vec4;
1136
1137#if(defined(GLM_PRECISION_LOWP_INT))
1138 typedef lowp_u32vec1 u32vec1;
1139 typedef lowp_u32vec2 u32vec2;
1140 typedef lowp_u32vec3 u32vec3;
1141 typedef lowp_u32vec4 u32vec4;
1142#elif(defined(GLM_PRECISION_MEDIUMP_INT))
1143 typedef mediump_u32vec1 u32vec1;
1144 typedef mediump_u32vec2 u32vec2;
1145 typedef mediump_u32vec3 u32vec3;
1146 typedef mediump_u32vec4 u32vec4;
1147#else
1148 /// Default precision 32 bit unsigned integer scalar type.
1149 /// @see gtc_type_precision
1150 typedef highp_u32vec1 u32vec1;
1151
1152 /// Default precision 32 bit unsigned integer vector of 2 components type.
1153 /// @see gtc_type_precision
1154 typedef highp_u32vec2 u32vec2;
1155
1156 /// Default precision 32 bit unsigned integer vector of 3 components type.
1157 /// @see gtc_type_precision
1158 typedef highp_u32vec3 u32vec3;
1159
1160 /// Default precision 32 bit unsigned integer vector of 4 components type.
1161 /// @see gtc_type_precision
1162 typedef highp_u32vec4 u32vec4;
1163#endif
1164
1165
1166 /// Low precision 32 bit unsigned integer scalar type.
1167 /// @see gtc_type_precision
1168 typedef detail::tvec1<u32, lowp> lowp_u32vec1;
1169
1170 /// Low precision 32 bit unsigned integer vector of 2 components type.
1171 /// @see gtc_type_precision
1172 typedef detail::tvec2<u32, lowp> lowp_u32vec2;
1173
1174 /// Low precision 32 bit unsigned integer vector of 3 components type.
1175 /// @see gtc_type_precision
1176 typedef detail::tvec3<u32, lowp> lowp_u32vec3;
1177
1178 /// Low precision 32 bit unsigned integer vector of 4 components type.
1179 /// @see gtc_type_precision
1180 typedef detail::tvec4<u32, lowp> lowp_u32vec4;
1181
1182
1183 /// Medium precision 32 bit unsigned integer scalar type.
1184 /// @see gtc_type_precision
1185 typedef detail::tvec1<u32, mediump> mediump_u32vec1;
1186
1187 /// Medium precision 32 bit unsigned integer vector of 2 components type.
1188 /// @see gtc_type_precision
1189 typedef detail::tvec2<u32, mediump> mediump_u32vec2;
1190
1191 /// Medium precision 32 bit unsigned integer vector of 3 components type.
1192 /// @see gtc_type_precision
1193 typedef detail::tvec3<u32, mediump> mediump_u32vec3;
1194
1195 /// Medium precision 32 bit unsigned integer vector of 4 components type.
1196 /// @see gtc_type_precision
1197 typedef detail::tvec4<u32, mediump> mediump_u32vec4;
1198
1199
1200 /// High precision 32 bit unsigned integer scalar type.
1201 /// @see gtc_type_precision
1202 typedef detail::tvec1<u32, highp> highp_u32vec1;
1203
1204 /// High precision 32 bit unsigned integer vector of 2 components type.
1205 /// @see gtc_type_precision
1206 typedef detail::tvec2<u32, highp> highp_u32vec2;
1207
1208 /// High precision 32 bit unsigned integer vector of 3 components type.
1209 /// @see gtc_type_precision
1210 typedef detail::tvec3<u32, highp> highp_u32vec3;
1211
1212 /// High precision 32 bit unsigned integer vector of 4 components type.
1213 /// @see gtc_type_precision
1214 typedef detail::tvec4<u32, highp> highp_u32vec4;
1215
1216#if(defined(GLM_PRECISION_LOWP_INT))
1217 typedef lowp_u32vec1 u32vec1;
1218 typedef lowp_u32vec2 u32vec2;
1219 typedef lowp_u32vec3 u32vec3;
1220 typedef lowp_u32vec4 u32vec4;
1221#elif(defined(GLM_PRECISION_MEDIUMP_INT))
1222 typedef mediump_u32vec1 u32vec1;
1223 typedef mediump_u32vec2 u32vec2;
1224 typedef mediump_u32vec3 u32vec3;
1225 typedef mediump_u32vec4 u32vec4;
1226#else
1227 /// Default precision 32 bit unsigned integer scalar type.
1228 /// @see gtc_type_precision
1229 typedef highp_u32vec1 u32vec1;
1230
1231 /// Default precision 32 bit unsigned integer vector of 2 components type.
1232 /// @see gtc_type_precision
1233 typedef highp_u32vec2 u32vec2;
1234
1235 /// Default precision 32 bit unsigned integer vector of 3 components type.
1236 /// @see gtc_type_precision
1237 typedef highp_u32vec3 u32vec3;
1238
1239 /// Default precision 32 bit unsigned integer vector of 4 components type.
1240 /// @see gtc_type_precision
1241 typedef highp_u32vec4 u32vec4;
1242#endif
1243
1244
1245
1246 /// Low precision 64 bit unsigned integer scalar type.
1247 /// @see gtc_type_precision
1248 typedef detail::tvec1<u64, lowp> lowp_u64vec1;
1249
1250 /// Low precision 64 bit unsigned integer vector of 2 components type.
1251 /// @see gtc_type_precision
1252 typedef detail::tvec2<u64, lowp> lowp_u64vec2;
1253
1254 /// Low precision 64 bit unsigned integer vector of 3 components type.
1255 /// @see gtc_type_precision
1256 typedef detail::tvec3<u64, lowp> lowp_u64vec3;
1257
1258 /// Low precision 64 bit unsigned integer vector of 4 components type.
1259 /// @see gtc_type_precision
1260 typedef detail::tvec4<u64, lowp> lowp_u64vec4;
1261
1262
1263 /// Medium precision 64 bit unsigned integer scalar type.
1264 /// @see gtc_type_precision
1265 typedef detail::tvec1<u64, mediump> mediump_u64vec1;
1266
1267 /// Medium precision 64 bit unsigned integer vector of 2 components type.
1268 /// @see gtc_type_precision
1269 typedef detail::tvec2<u64, mediump> mediump_u64vec2;
1270
1271 /// Medium precision 64 bit unsigned integer vector of 3 components type.
1272 /// @see gtc_type_precision
1273 typedef detail::tvec3<u64, mediump> mediump_u64vec3;
1274
1275 /// Medium precision 64 bit unsigned integer vector of 4 components type.
1276 /// @see gtc_type_precision
1277 typedef detail::tvec4<u64, mediump> mediump_u64vec4;
1278
1279
1280 /// High precision 64 bit unsigned integer scalar type.
1281 /// @see gtc_type_precision
1282 typedef detail::tvec1<u64, highp> highp_u64vec1;
1283
1284 /// High precision 64 bit unsigned integer vector of 2 components type.
1285 /// @see gtc_type_precision
1286 typedef detail::tvec2<u64, highp> highp_u64vec2;
1287
1288 /// High precision 64 bit unsigned integer vector of 3 components type.
1289 /// @see gtc_type_precision
1290 typedef detail::tvec3<u64, highp> highp_u64vec3;
1291
1292 /// High precision 64 bit unsigned integer vector of 4 components type.
1293 /// @see gtc_type_precision
1294 typedef detail::tvec4<u64, highp> highp_u64vec4;
1295
1296#if(defined(GLM_PRECISION_LOWP_UINT))
1297 typedef lowp_u64vec1 u64vec1;
1298 typedef lowp_u64vec2 u64vec2;
1299 typedef lowp_u64vec3 u64vec3;
1300 typedef lowp_u64vec4 u64vec4;
1301#elif(defined(GLM_PRECISION_MEDIUMP_UINT))
1302 typedef mediump_u64vec1 u64vec1;
1303 typedef mediump_u64vec2 u64vec2;
1304 typedef mediump_u64vec3 u64vec3;
1305 typedef mediump_u64vec4 u64vec4;
1306#else
1307 /// Default precision 64 bit unsigned integer scalar type.
1308 /// @see gtc_type_precision
1309 typedef highp_u64vec1 u64vec1;
1310
1311 /// Default precision 64 bit unsigned integer vector of 2 components type.
1312 /// @see gtc_type_precision
1313 typedef highp_u64vec2 u64vec2;
1314
1315 /// Default precision 64 bit unsigned integer vector of 3 components type.
1316 /// @see gtc_type_precision
1317 typedef highp_u64vec3 u64vec3;
1318
1319 /// Default precision 64 bit unsigned integer vector of 4 components type.
1320 /// @see gtc_type_precision
1321 typedef highp_u64vec4 u64vec4;
1322#endif
1323
1324
1325 //////////////////////
1326 // Float vector types
1327
1328 /// Low 32 bit single-precision floating-point scalar.
1329 /// @see gtc_type_precision
1330 typedef detail::float32 lowp_float32;
1331
1332 /// Low 64 bit double-precision floating-point scalar.
1333 /// @see gtc_type_precision
1334 typedef detail::float64 lowp_float64;
1335
1336 /// Low 32 bit single-precision floating-point scalar.
1337 /// @see gtc_type_precision
1338 typedef detail::float32 lowp_float32_t;
1339
1340 /// Low 64 bit double-precision floating-point scalar.
1341 /// @see gtc_type_precision
1342 typedef detail::float64 lowp_float64_t;
1343
1344 /// Low 32 bit single-precision floating-point scalar.
1345 /// @see gtc_type_precision
1346 typedef float32 lowp_f32;
1347
1348 /// Low 64 bit double-precision floating-point scalar.
1349 /// @see gtc_type_precision
1350 typedef float64 lowp_f64;
1351
1352 /// Low 32 bit single-precision floating-point scalar.
1353 /// @see gtc_type_precision
1354 typedef detail::float32 lowp_float32;
1355
1356 /// Low 64 bit double-precision floating-point scalar.
1357 /// @see gtc_type_precision
1358 typedef detail::float64 lowp_float64;
1359
1360 /// Low 32 bit single-precision floating-point scalar.
1361 /// @see gtc_type_precision
1362 typedef detail::float32 lowp_float32_t;
1363
1364 /// Low 64 bit double-precision floating-point scalar.
1365 /// @see gtc_type_precision
1366 typedef detail::float64 lowp_float64_t;
1367
1368 /// Low 32 bit single-precision floating-point scalar.
1369 /// @see gtc_type_precision
1370 typedef float32 lowp_f32;
1371
1372 /// Low 64 bit double-precision floating-point scalar.
1373 /// @see gtc_type_precision
1374 typedef float64 lowp_f64;
1375
1376
1377 /// Low 32 bit single-precision floating-point scalar.
1378 /// @see gtc_type_precision
1379 typedef detail::float32 lowp_float32;
1380
1381 /// Low 64 bit double-precision floating-point scalar.
1382 /// @see gtc_type_precision
1383 typedef detail::float64 lowp_float64;
1384
1385 /// Low 32 bit single-precision floating-point scalar.
1386 /// @see gtc_type_precision
1387 typedef detail::float32 lowp_float32_t;
1388
1389 /// Low 64 bit double-precision floating-point scalar.
1390 /// @see gtc_type_precision
1391 typedef detail::float64 lowp_float64_t;
1392
1393 /// Low 32 bit single-precision floating-point scalar.
1394 /// @see gtc_type_precision
1395 typedef float32 lowp_f32;
1396
1397 /// Low 64 bit double-precision floating-point scalar.
1398 /// @see gtc_type_precision
1399 typedef float64 lowp_f64;
1400
1401
1402 /// Medium 32 bit single-precision floating-point scalar.
1403 /// @see gtc_type_precision
1404 typedef detail::float32 mediump_float32;
1405
1406 /// Medium 64 bit double-precision floating-point scalar.
1407 /// @see gtc_type_precision
1408 typedef detail::float64 mediump_float64;
1409
1410 /// Medium 32 bit single-precision floating-point scalar.
1411 /// @see gtc_type_precision
1412 typedef detail::float32 mediump_float32_t;
1413
1414 /// Medium 64 bit double-precision floating-point scalar.
1415 /// @see gtc_type_precision
1416 typedef detail::float64 mediump_float64_t;
1417
1418 /// Medium 32 bit single-precision floating-point scalar.
1419 /// @see gtc_type_precision
1420 typedef float32 mediump_f32;
1421
1422 /// Medium 64 bit double-precision floating-point scalar.
1423 /// @see gtc_type_precision
1424 typedef float64 mediump_f64;
1425
1426
1427 /// High 32 bit single-precision floating-point scalar.
1428 /// @see gtc_type_precision
1429 typedef detail::float32 highp_float32;
1430
1431 /// High 64 bit double-precision floating-point scalar.
1432 /// @see gtc_type_precision
1433 typedef detail::float64 highp_float64;
1434
1435 /// High 32 bit single-precision floating-point scalar.
1436 /// @see gtc_type_precision
1437 typedef detail::float32 highp_float32_t;
1438
1439 /// High 64 bit double-precision floating-point scalar.
1440 /// @see gtc_type_precision
1441 typedef detail::float64 highp_float64_t;
1442
1443 /// High 32 bit single-precision floating-point scalar.
1444 /// @see gtc_type_precision
1445 typedef float32 highp_f32;
1446
1447 /// High 64 bit double-precision floating-point scalar.
1448 /// @see gtc_type_precision
1449 typedef float64 highp_f64;
1450
1451
1452#if(defined(GLM_PRECISION_LOWP_FLOAT))
1453 /// Default 32 bit single-precision floating-point scalar.
1454 /// @see gtc_type_precision
1455 typedef lowp_float32 float32;
1456
1457 /// Default 64 bit double-precision floating-point scalar.
1458 /// @see gtc_type_precision
1459 typedef lowp_float64 float64;
1460
1461 /// Default 32 bit single-precision floating-point scalar.
1462 /// @see gtc_type_precision
1463 typedef lowp_float32_t float32_t;
1464
1465 /// Default 64 bit double-precision floating-point scalar.
1466 /// @see gtc_type_precision
1467 typedef lowp_float64_t float64_t;
1468
1469 /// Default 32 bit single-precision floating-point scalar.
1470 /// @see gtc_type_precision
1471 typedef lowp_f32 f32;
1472
1473 /// Default 64 bit double-precision floating-point scalar.
1474 /// @see gtc_type_precision
1475 typedef lowp_f64 f64;
1476
1477#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
1478
1479 /// Default 32 bit single-precision floating-point scalar.
1480 /// @see gtc_type_precision
1481 typedef mediump_float32 float32;
1482
1483 /// Default 64 bit double-precision floating-point scalar.
1484 /// @see gtc_type_precision
1485 typedef mediump_float64 float64;
1486
1487 /// Default 32 bit single-precision floating-point scalar.
1488 /// @see gtc_type_precision
1489 typedef mediump_float32 float32_t;
1490
1491 /// Default 64 bit double-precision floating-point scalar.
1492 /// @see gtc_type_precision
1493 typedef mediump_float64 float64_t;
1494
1495 /// Default 32 bit single-precision floating-point scalar.
1496 /// @see gtc_type_precision
1497 typedef mediump_float32 f32;
1498
1499 /// Default 64 bit double-precision floating-point scalar.
1500 /// @see gtc_type_precision
1501 typedef mediump_float64 f64;
1502
1503#else//(defined(GLM_PRECISION_HIGHP_FLOAT))
1504
1505 /// Default 32 bit single-precision floating-point scalar.
1506 /// @see gtc_type_precision
1507 typedef highp_float32 float32;
1508
1509 /// Default 64 bit double-precision floating-point scalar.
1510 /// @see gtc_type_precision
1511 typedef highp_float64 float64;
1512
1513 /// Default 32 bit single-precision floating-point scalar.
1514 /// @see gtc_type_precision
1515 typedef highp_float32_t float32_t;
1516
1517 /// Default 64 bit double-precision floating-point scalar.
1518 /// @see gtc_type_precision
1519 typedef highp_float64_t float64_t;
1520
1521 /// Default 32 bit single-precision floating-point scalar.
1522 /// @see gtc_type_precision
1523 typedef highp_float32_t f32;
1524
1525 /// Default 64 bit double-precision floating-point scalar.
1526 /// @see gtc_type_precision
1527 typedef highp_float64_t f64;
1528#endif
1529
1530
1531 /// Low single-precision floating-point vector of 1 component.
1532 /// @see gtc_type_precision
1533 typedef detail::tvec1<float, lowp> lowp_vec1;
1534
1535 /// Low single-precision floating-point vector of 2 components.
1536 /// @see gtc_type_precision
1537 typedef detail::tvec2<float, lowp> lowp_vec2;
1538
1539 /// Low single-precision floating-point vector of 3 components.
1540 /// @see gtc_type_precision
1541 typedef detail::tvec3<float, lowp> lowp_vec3;
1542
1543 /// Low single-precision floating-point vector of 4 components.
1544 /// @see gtc_type_precision
1545 typedef detail::tvec4<float, lowp> lowp_vec4;
1546
1547 /// Low single-precision floating-point vector of 1 component.
1548 /// @see gtc_type_precision
1549 typedef detail::tvec1<float, lowp> lowp_fvec1;
1550
1551 /// Low single-precision floating-point vector of 2 components.
1552 /// @see gtc_type_precision
1553 typedef detail::tvec2<float, lowp> lowp_fvec2;
1554
1555 /// Low single-precision floating-point vector of 3 components.
1556 /// @see gtc_type_precision
1557 typedef detail::tvec3<float, lowp> lowp_fvec3;
1558
1559 /// Low single-precision floating-point vector of 4 components.
1560 /// @see gtc_type_precision
1561 typedef detail::tvec4<float, lowp> lowp_fvec4;
1562
1563
1564
1565 /// Medium single-precision floating-point vector of 1 component.
1566 /// @see gtc_type_precision
1567 typedef detail::tvec1<float, mediump> mediump_vec1;
1568
1569 /// Medium Single-precision floating-point vector of 2 components.
1570 /// @see gtc_type_precision
1571 typedef detail::tvec2<float, mediump> mediump_vec2;
1572
1573 /// Medium Single-precision floating-point vector of 3 components.
1574 /// @see gtc_type_precision
1575 typedef detail::tvec3<float, mediump> mediump_vec3;
1576
1577 /// Medium Single-precision floating-point vector of 4 components.
1578 /// @see gtc_type_precision
1579 typedef detail::tvec4<float, mediump> mediump_vec4;
1580
1581 /// Medium single-precision floating-point vector of 1 component.
1582 /// @see gtc_type_precision
1583 typedef detail::tvec1<float, mediump> mediump_fvec1;
1584
1585 /// Medium Single-precision floating-point vector of 2 components.
1586 /// @see gtc_type_precision
1587 typedef detail::tvec2<float, mediump> mediump_fvec2;
1588
1589 /// Medium Single-precision floating-point vector of 3 components.
1590 /// @see gtc_type_precision
1591 typedef detail::tvec3<float, mediump> mediump_fvec3;
1592
1593 /// Medium Single-precision floating-point vector of 4 components.
1594 /// @see gtc_type_precision
1595 typedef detail::tvec4<float, mediump> mediump_fvec4;
1596
1597
1598
1599 /// High single-precision floating-point vector of 1 component.
1600 /// @see gtc_type_precision
1601 typedef detail::tvec1<float, highp> highp_vec1;
1602
1603 /// High Single-precision floating-point vector of 2 components.
1604 /// @see gtc_type_precision
1605 typedef detail::tvec2<float, highp> highp_vec2;
1606
1607 /// High Single-precision floating-point vector of 3 components.
1608 /// @see gtc_type_precision
1609 typedef detail::tvec3<float, highp> highp_vec3;
1610
1611 /// High Single-precision floating-point vector of 4 components.
1612 /// @see gtc_type_precision
1613 typedef detail::tvec4<float, highp> highp_vec4;
1614
1615 /// High single-precision floating-point vector of 1 component.
1616 /// @see gtc_type_precision
1617 typedef detail::tvec1<float, highp> highp_fvec1;
1618
1619 /// High Single-precision floating-point vector of 2 components.
1620 /// @see gtc_type_precision
1621 typedef detail::tvec2<float, highp> highp_fvec2;
1622
1623 /// High Single-precision floating-point vector of 3 components.
1624 /// @see gtc_type_precision
1625 typedef detail::tvec3<float, highp> highp_fvec3;
1626
1627 /// High Single-precision floating-point vector of 4 components.
1628 /// @see gtc_type_precision
1629 typedef detail::tvec4<float, highp> highp_fvec4;
1630
1631
1632 /// Low single-precision floating-point vector of 1 component.
1633 /// @see gtc_type_precision
1634 typedef detail::tvec1<f32, lowp> lowp_f32vec1;
1635
1636 /// Low single-precision floating-point vector of 2 components.
1637 /// @see gtc_type_precision
1638 typedef detail::tvec2<f32, lowp> lowp_f32vec2;
1639
1640 /// Low single-precision floating-point vector of 3 components.
1641 /// @see gtc_type_precision
1642 typedef detail::tvec3<f32, lowp> lowp_f32vec3;
1643
1644 /// Low single-precision floating-point vector of 4 components.
1645 /// @see gtc_type_precision
1646 typedef detail::tvec4<f32, lowp> lowp_f32vec4;
1647
1648 /// Medium single-precision floating-point vector of 1 component.
1649 /// @see gtc_type_precision
1650 typedef detail::tvec1<f32, mediump> mediump_f32vec1;
1651
1652 /// Medium single-precision floating-point vector of 2 components.
1653 /// @see gtc_type_precision
1654 typedef detail::tvec2<f32, mediump> mediump_f32vec2;
1655
1656 /// Medium single-precision floating-point vector of 3 components.
1657 /// @see gtc_type_precision
1658 typedef detail::tvec3<f32, mediump> mediump_f32vec3;
1659
1660 /// Medium single-precision floating-point vector of 4 components.
1661 /// @see gtc_type_precision
1662 typedef detail::tvec4<f32, mediump> mediump_f32vec4;
1663
1664 /// High single-precision floating-point vector of 1 component.
1665 /// @see gtc_type_precision
1666 typedef detail::tvec1<f32, highp> highp_f32vec1;
1667
1668 /// High single-precision floating-point vector of 2 components.
1669 /// @see gtc_type_precision
1670 typedef detail::tvec2<f32, highp> highp_f32vec2;
1671
1672 /// High single-precision floating-point vector of 3 components.
1673 /// @see gtc_type_precision
1674 typedef detail::tvec3<f32, highp> highp_f32vec3;
1675
1676 /// High single-precision floating-point vector of 4 components.
1677 /// @see gtc_type_precision
1678 typedef detail::tvec4<f32, highp> highp_f32vec4;
1679
1680
1681 /// Low double-precision floating-point vector of 1 component.
1682 /// @see gtc_type_precision
1683 typedef detail::tvec1<f64, lowp> lowp_f64vec1;
1684
1685 /// Low double-precision floating-point vector of 2 components.
1686 /// @see gtc_type_precision
1687 typedef detail::tvec2<f64, lowp> lowp_f64vec2;
1688
1689 /// Low double-precision floating-point vector of 3 components.
1690 /// @see gtc_type_precision
1691 typedef detail::tvec3<f64, lowp> lowp_f64vec3;
1692
1693 /// Low double-precision floating-point vector of 4 components.
1694 /// @see gtc_type_precision
1695 typedef detail::tvec4<f64, lowp> lowp_f64vec4;
1696
1697 /// Medium double-precision floating-point vector of 1 component.
1698 /// @see gtc_type_precision
1699 typedef detail::tvec1<f64, mediump> mediump_f64vec1;
1700
1701 /// Medium double-precision floating-point vector of 2 components.
1702 /// @see gtc_type_precision
1703 typedef detail::tvec2<f64, mediump> mediump_f64vec2;
1704
1705 /// Medium double-precision floating-point vector of 3 components.
1706 /// @see gtc_type_precision
1707 typedef detail::tvec3<f64, mediump> mediump_f64vec3;
1708
1709 /// Medium double-precision floating-point vector of 4 components.
1710 /// @see gtc_type_precision
1711 typedef detail::tvec4<f64, mediump> mediump_f64vec4;
1712
1713 /// High double-precision floating-point vector of 1 component.
1714 /// @see gtc_type_precision
1715 typedef detail::tvec1<f64, highp> highp_f64vec1;
1716
1717 /// High double-precision floating-point vector of 2 components.
1718 /// @see gtc_type_precision
1719 typedef detail::tvec2<f64, highp> highp_f64vec2;
1720
1721 /// High double-precision floating-point vector of 3 components.
1722 /// @see gtc_type_precision
1723 typedef detail::tvec3<f64, highp> highp_f64vec3;
1724
1725 /// High double-precision floating-point vector of 4 components.
1726 /// @see gtc_type_precision
1727 typedef detail::tvec4<f64, highp> highp_f64vec4;
1728
1729
1730 //////////////////////
1731 // Float matrix types
1732
1733 /// Low single-precision floating-point 1x1 matrix.
1734 /// @see gtc_type_precision
1735 //typedef lowp_f32 lowp_fmat1x1;
1736
1737 /// Low single-precision floating-point 2x2 matrix.
1738 /// @see gtc_type_precision
1739 typedef detail::tmat2x2<f32, lowp> lowp_fmat2x2;
1740
1741 /// Low single-precision floating-point 2x3 matrix.
1742 /// @see gtc_type_precision
1743 typedef detail::tmat2x3<f32, lowp> lowp_fmat2x3;
1744
1745 /// Low single-precision floating-point 2x4 matrix.
1746 /// @see gtc_type_precision
1747 typedef detail::tmat2x4<f32, lowp> lowp_fmat2x4;
1748
1749 /// Low single-precision floating-point 3x2 matrix.
1750 /// @see gtc_type_precision
1751 typedef detail::tmat3x2<f32, lowp> lowp_fmat3x2;
1752
1753 /// Low single-precision floating-point 3x3 matrix.
1754 /// @see gtc_type_precision
1755 typedef detail::tmat3x3<f32, lowp> lowp_fmat3x3;
1756
1757 /// Low single-precision floating-point 3x4 matrix.
1758 /// @see gtc_type_precision
1759 typedef detail::tmat3x4<f32, lowp> lowp_fmat3x4;
1760
1761 /// Low single-precision floating-point 4x2 matrix.
1762 /// @see gtc_type_precision
1763 typedef detail::tmat4x2<f32, lowp> lowp_fmat4x2;
1764
1765 /// Low single-precision floating-point 4x3 matrix.
1766 /// @see gtc_type_precision
1767 typedef detail::tmat4x3<f32, lowp> lowp_fmat4x3;
1768
1769 /// Low single-precision floating-point 4x4 matrix.
1770 /// @see gtc_type_precision
1771 typedef detail::tmat4x4<f32, lowp> lowp_fmat4x4;
1772
1773 /// Low single-precision floating-point 1x1 matrix.
1774 /// @see gtc_type_precision
1775 //typedef lowp_fmat1x1 lowp_fmat1;
1776
1777 /// Low single-precision floating-point 2x2 matrix.
1778 /// @see gtc_type_precision
1779 typedef lowp_fmat2x2 lowp_fmat2;
1780
1781 /// Low single-precision floating-point 3x3 matrix.
1782 /// @see gtc_type_precision
1783 typedef lowp_fmat3x3 lowp_fmat3;
1784
1785 /// Low single-precision floating-point 4x4 matrix.
1786 /// @see gtc_type_precision
1787 typedef lowp_fmat4x4 lowp_fmat4;
1788
1789
1790 /// Medium single-precision floating-point 1x1 matrix.
1791 /// @see gtc_type_precision
1792 //typedef mediump_f32 mediump_fmat1x1;
1793
1794 /// Medium single-precision floating-point 2x2 matrix.
1795 /// @see gtc_type_precision
1796 typedef detail::tmat2x2<f32, mediump> mediump_fmat2x2;
1797
1798 /// Medium single-precision floating-point 2x3 matrix.
1799 /// @see gtc_type_precision
1800 typedef detail::tmat2x3<f32, mediump> mediump_fmat2x3;
1801
1802 /// Medium single-precision floating-point 2x4 matrix.
1803 /// @see gtc_type_precision
1804 typedef detail::tmat2x4<f32, mediump> mediump_fmat2x4;
1805
1806 /// Medium single-precision floating-point 3x2 matrix.
1807 /// @see gtc_type_precision
1808 typedef detail::tmat3x2<f32, mediump> mediump_fmat3x2;
1809
1810 /// Medium single-precision floating-point 3x3 matrix.
1811 /// @see gtc_type_precision
1812 typedef detail::tmat3x3<f32, mediump> mediump_fmat3x3;
1813
1814 /// Medium single-precision floating-point 3x4 matrix.
1815 /// @see gtc_type_precision
1816 typedef detail::tmat3x4<f32, mediump> mediump_fmat3x4;
1817
1818 /// Medium single-precision floating-point 4x2 matrix.
1819 /// @see gtc_type_precision
1820 typedef detail::tmat4x2<f32, mediump> mediump_fmat4x2;
1821
1822 /// Medium single-precision floating-point 4x3 matrix.
1823 /// @see gtc_type_precision
1824 typedef detail::tmat4x3<f32, mediump> mediump_fmat4x3;
1825
1826 /// Medium single-precision floating-point 4x4 matrix.
1827 /// @see gtc_type_precision
1828 typedef detail::tmat4x4<f32, mediump> mediump_fmat4x4;
1829
1830 /// Medium single-precision floating-point 1x1 matrix.
1831 /// @see gtc_type_precision
1832 //typedef mediump_fmat1x1 mediump_fmat1;
1833
1834 /// Medium single-precision floating-point 2x2 matrix.
1835 /// @see gtc_type_precision
1836 typedef mediump_fmat2x2 mediump_fmat2;
1837
1838 /// Medium single-precision floating-point 3x3 matrix.
1839 /// @see gtc_type_precision
1840 typedef mediump_fmat3x3 mediump_fmat3;
1841
1842 /// Medium single-precision floating-point 4x4 matrix.
1843 /// @see gtc_type_precision
1844 typedef mediump_fmat4x4 mediump_fmat4;
1845
1846
1847
1848 /// High single-precision floating-point 1x1 matrix.
1849 /// @see gtc_type_precision
1850 //typedef highp_f32 highp_fmat1x1;
1851
1852 /// High single-precision floating-point 2x2 matrix.
1853 /// @see gtc_type_precision
1854 typedef detail::tmat2x2<f32, highp> highp_fmat2x2;
1855
1856 /// High single-precision floating-point 2x3 matrix.
1857 /// @see gtc_type_precision
1858 typedef detail::tmat2x3<f32, highp> highp_fmat2x3;
1859
1860 /// High single-precision floating-point 2x4 matrix.
1861 /// @see gtc_type_precision
1862 typedef detail::tmat2x4<f32, highp> highp_fmat2x4;
1863
1864 /// High single-precision floating-point 3x2 matrix.
1865 /// @see gtc_type_precision
1866 typedef detail::tmat3x2<f32, highp> highp_fmat3x2;
1867
1868 /// High single-precision floating-point 3x3 matrix.
1869 /// @see gtc_type_precision
1870 typedef detail::tmat3x3<f32, highp> highp_fmat3x3;
1871
1872 /// High single-precision floating-point 3x4 matrix.
1873 /// @see gtc_type_precision
1874 typedef detail::tmat3x4<f32, highp> highp_fmat3x4;
1875
1876 /// High single-precision floating-point 4x2 matrix.
1877 /// @see gtc_type_precision
1878 typedef detail::tmat4x2<f32, highp> highp_fmat4x2;
1879
1880 /// High single-precision floating-point 4x3 matrix.
1881 /// @see gtc_type_precision
1882 typedef detail::tmat4x3<f32, highp> highp_fmat4x3;
1883
1884 /// High single-precision floating-point 4x4 matrix.
1885 /// @see gtc_type_precision
1886 typedef detail::tmat4x4<f32, highp> highp_fmat4x4;
1887
1888 /// High single-precision floating-point 1x1 matrix.
1889 /// @see gtc_type_precision
1890 //typedef highp_fmat1x1 highp_fmat1;
1891
1892 /// High single-precision floating-point 2x2 matrix.
1893 /// @see gtc_type_precision
1894 typedef highp_fmat2x2 highp_fmat2;
1895
1896 /// High single-precision floating-point 3x3 matrix.
1897 /// @see gtc_type_precision
1898 typedef highp_fmat3x3 highp_fmat3;
1899
1900 /// High single-precision floating-point 4x4 matrix.
1901 /// @see gtc_type_precision
1902 typedef highp_fmat4x4 highp_fmat4;
1903
1904
1905 /// Low single-precision floating-point 1x1 matrix.
1906 /// @see gtc_type_precision
1907 //typedef f32 lowp_f32mat1x1;
1908
1909 /// Low single-precision floating-point 2x2 matrix.
1910 /// @see gtc_type_precision
1911 typedef detail::tmat2x2<f32, lowp> lowp_f32mat2x2;
1912
1913 /// Low single-precision floating-point 2x3 matrix.
1914 /// @see gtc_type_precision
1915 typedef detail::tmat2x3<f32, lowp> lowp_f32mat2x3;
1916
1917 /// Low single-precision floating-point 2x4 matrix.
1918 /// @see gtc_type_precision
1919 typedef detail::tmat2x4<f32, lowp> lowp_f32mat2x4;
1920
1921 /// Low single-precision floating-point 3x2 matrix.
1922 /// @see gtc_type_precision
1923 typedef detail::tmat3x2<f32, lowp> lowp_f32mat3x2;
1924
1925 /// Low single-precision floating-point 3x3 matrix.
1926 /// @see gtc_type_precision
1927 typedef detail::tmat3x3<f32, lowp> lowp_f32mat3x3;
1928
1929 /// Low single-precision floating-point 3x4 matrix.
1930 /// @see gtc_type_precision
1931 typedef detail::tmat3x4<f32, lowp> lowp_f32mat3x4;
1932
1933 /// Low single-precision floating-point 4x2 matrix.
1934 /// @see gtc_type_precision
1935 typedef detail::tmat4x2<f32, lowp> lowp_f32mat4x2;
1936
1937 /// Low single-precision floating-point 4x3 matrix.
1938 /// @see gtc_type_precision
1939 typedef detail::tmat4x3<f32, lowp> lowp_f32mat4x3;
1940
1941 /// Low single-precision floating-point 4x4 matrix.
1942 /// @see gtc_type_precision
1943 typedef detail::tmat4x4<f32, lowp> lowp_f32mat4x4;
1944
1945 /// Low single-precision floating-point 1x1 matrix.
1946 /// @see gtc_type_precision
1947 //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
1948
1949 /// Low single-precision floating-point 2x2 matrix.
1950 /// @see gtc_type_precision
1951 typedef lowp_f32mat2x2 lowp_f32mat2;
1952
1953 /// Low single-precision floating-point 3x3 matrix.
1954 /// @see gtc_type_precision
1955 typedef lowp_f32mat3x3 lowp_f32mat3;
1956
1957 /// Low single-precision floating-point 4x4 matrix.
1958 /// @see gtc_type_precision
1959 typedef lowp_f32mat4x4 lowp_f32mat4;
1960
1961
1962
1963 /// High single-precision floating-point 1x1 matrix.
1964 /// @see gtc_type_precision
1965 //typedef f32 mediump_f32mat1x1;
1966
1967 /// Low single-precision floating-point 2x2 matrix.
1968 /// @see gtc_type_precision
1969 typedef detail::tmat2x2<f32, mediump> mediump_f32mat2x2;
1970
1971 /// Medium single-precision floating-point 2x3 matrix.
1972 /// @see gtc_type_precision
1973 typedef detail::tmat2x3<f32, mediump> mediump_f32mat2x3;
1974
1975 /// Medium single-precision floating-point 2x4 matrix.
1976 /// @see gtc_type_precision
1977 typedef detail::tmat2x4<f32, mediump> mediump_f32mat2x4;
1978
1979 /// Medium single-precision floating-point 3x2 matrix.
1980 /// @see gtc_type_precision
1981 typedef detail::tmat3x2<f32, mediump> mediump_f32mat3x2;
1982
1983 /// Medium single-precision floating-point 3x3 matrix.
1984 /// @see gtc_type_precision
1985 typedef detail::tmat3x3<f32, mediump> mediump_f32mat3x3;
1986
1987 /// Medium single-precision floating-point 3x4 matrix.
1988 /// @see gtc_type_precision
1989 typedef detail::tmat3x4<f32, mediump> mediump_f32mat3x4;
1990
1991 /// Medium single-precision floating-point 4x2 matrix.
1992 /// @see gtc_type_precision
1993 typedef detail::tmat4x2<f32, mediump> mediump_f32mat4x2;
1994
1995 /// Medium single-precision floating-point 4x3 matrix.
1996 /// @see gtc_type_precision
1997 typedef detail::tmat4x3<f32, mediump> mediump_f32mat4x3;
1998
1999 /// Medium single-precision floating-point 4x4 matrix.
2000 /// @see gtc_type_precision
2001 typedef detail::tmat4x4<f32, mediump> mediump_f32mat4x4;
2002
2003 /// Medium single-precision floating-point 1x1 matrix.
2004 /// @see gtc_type_precision
2005 //typedef detail::tmat1x1<f32, mediump> f32mat1;
2006
2007 /// Medium single-precision floating-point 2x2 matrix.
2008 /// @see gtc_type_precision
2009 typedef mediump_f32mat2x2 mediump_f32mat2;
2010
2011 /// Medium single-precision floating-point 3x3 matrix.
2012 /// @see gtc_type_precision
2013 typedef mediump_f32mat3x3 mediump_f32mat3;
2014
2015 /// Medium single-precision floating-point 4x4 matrix.
2016 /// @see gtc_type_precision
2017 typedef mediump_f32mat4x4 mediump_f32mat4;
2018
2019
2020
2021
2022 /// High single-precision floating-point 1x1 matrix.
2023 /// @see gtc_type_precision
2024 //typedef f32 highp_f32mat1x1;
2025
2026 /// High single-precision floating-point 2x2 matrix.
2027 /// @see gtc_type_precision
2028 typedef detail::tmat2x2<f32, highp> highp_f32mat2x2;
2029
2030 /// High single-precision floating-point 2x3 matrix.
2031 /// @see gtc_type_precision
2032 typedef detail::tmat2x3<f32, highp> highp_f32mat2x3;
2033
2034 /// High single-precision floating-point 2x4 matrix.
2035 /// @see gtc_type_precision
2036 typedef detail::tmat2x4<f32, highp> highp_f32mat2x4;
2037
2038 /// High single-precision floating-point 3x2 matrix.
2039 /// @see gtc_type_precision
2040 typedef detail::tmat3x2<f32, highp> highp_f32mat3x2;
2041
2042 /// High single-precision floating-point 3x3 matrix.
2043 /// @see gtc_type_precision
2044 typedef detail::tmat3x3<f32, highp> highp_f32mat3x3;
2045
2046 /// High single-precision floating-point 3x4 matrix.
2047 /// @see gtc_type_precision
2048 typedef detail::tmat3x4<f32, highp> highp_f32mat3x4;
2049
2050 /// High single-precision floating-point 4x2 matrix.
2051 /// @see gtc_type_precision
2052 typedef detail::tmat4x2<f32, highp> highp_f32mat4x2;
2053
2054 /// High single-precision floating-point 4x3 matrix.
2055 /// @see gtc_type_precision
2056 typedef detail::tmat4x3<f32, highp> highp_f32mat4x3;
2057
2058 /// High single-precision floating-point 4x4 matrix.
2059 /// @see gtc_type_precision
2060 typedef detail::tmat4x4<f32, highp> highp_f32mat4x4;
2061
2062 /// High single-precision floating-point 1x1 matrix.
2063 /// @see gtc_type_precision
2064 //typedef detail::tmat1x1<f32, highp> f32mat1;
2065
2066 /// High single-precision floating-point 2x2 matrix.
2067 /// @see gtc_type_precision
2068 typedef highp_f32mat2x2 highp_f32mat2;
2069
2070 /// High single-precision floating-point 3x3 matrix.
2071 /// @see gtc_type_precision
2072 typedef highp_f32mat3x3 highp_f32mat3;
2073
2074 /// High single-precision floating-point 4x4 matrix.
2075 /// @see gtc_type_precision
2076 typedef highp_f32mat4x4 highp_f32mat4;
2077
2078
2079
2080 /// Low double-precision floating-point 1x1 matrix.
2081 /// @see gtc_type_precision
2082 //typedef f64 lowp_f64mat1x1;
2083
2084 /// Low double-precision floating-point 2x2 matrix.
2085 /// @see gtc_type_precision
2086 typedef detail::tmat2x2<f64, lowp> lowp_f64mat2x2;
2087
2088 /// Low double-precision floating-point 2x3 matrix.
2089 /// @see gtc_type_precision
2090 typedef detail::tmat2x3<f64, lowp> lowp_f64mat2x3;
2091
2092 /// Low double-precision floating-point 2x4 matrix.
2093 /// @see gtc_type_precision
2094 typedef detail::tmat2x4<f64, lowp> lowp_f64mat2x4;
2095
2096 /// Low double-precision floating-point 3x2 matrix.
2097 /// @see gtc_type_precision
2098 typedef detail::tmat3x2<f64, lowp> lowp_f64mat3x2;
2099
2100 /// Low double-precision floating-point 3x3 matrix.
2101 /// @see gtc_type_precision
2102 typedef detail::tmat3x3<f64, lowp> lowp_f64mat3x3;
2103
2104 /// Low double-precision floating-point 3x4 matrix.
2105 /// @see gtc_type_precision
2106 typedef detail::tmat3x4<f64, lowp> lowp_f64mat3x4;
2107
2108 /// Low double-precision floating-point 4x2 matrix.
2109 /// @see gtc_type_precision
2110 typedef detail::tmat4x2<f64, lowp> lowp_f64mat4x2;
2111
2112 /// Low double-precision floating-point 4x3 matrix.
2113 /// @see gtc_type_precision
2114 typedef detail::tmat4x3<f64, lowp> lowp_f64mat4x3;
2115
2116 /// Low double-precision floating-point 4x4 matrix.
2117 /// @see gtc_type_precision
2118 typedef detail::tmat4x4<f64, lowp> lowp_f64mat4x4;
2119
2120 /// Low double-precision floating-point 1x1 matrix.
2121 /// @see gtc_type_precision
2122 //typedef lowp_f64mat1x1 lowp_f64mat1;
2123
2124 /// Low double-precision floating-point 2x2 matrix.
2125 /// @see gtc_type_precision
2126 typedef lowp_f64mat2x2 lowp_f64mat2;
2127
2128 /// Low double-precision floating-point 3x3 matrix.
2129 /// @see gtc_type_precision
2130 typedef lowp_f64mat3x3 lowp_f64mat3;
2131
2132 /// Low double-precision floating-point 4x4 matrix.
2133 /// @see gtc_type_precision
2134 typedef lowp_f64mat4x4 lowp_f64mat4;
2135
2136
2137
2138 /// Medium double-precision floating-point 1x1 matrix.
2139 /// @see gtc_type_precision
2140 //typedef f64 Highp_f64mat1x1;
2141
2142 /// Medium double-precision floating-point 2x2 matrix.
2143 /// @see gtc_type_precision
2144 typedef detail::tmat2x2<f64, mediump> mediump_f64mat2x2;
2145
2146 /// Medium double-precision floating-point 2x3 matrix.
2147 /// @see gtc_type_precision
2148 typedef detail::tmat2x3<f64, mediump> mediump_f64mat2x3;
2149
2150 /// Medium double-precision floating-point 2x4 matrix.
2151 /// @see gtc_type_precision
2152 typedef detail::tmat2x4<f64, mediump> mediump_f64mat2x4;
2153
2154 /// Medium double-precision floating-point 3x2 matrix.
2155 /// @see gtc_type_precision
2156 typedef detail::tmat3x2<f64, mediump> mediump_f64mat3x2;
2157
2158 /// Medium double-precision floating-point 3x3 matrix.
2159 /// @see gtc_type_precision
2160 typedef detail::tmat3x3<f64, mediump> mediump_f64mat3x3;
2161
2162 /// Medium double-precision floating-point 3x4 matrix.
2163 /// @see gtc_type_precision
2164 typedef detail::tmat3x4<f64, mediump> mediump_f64mat3x4;
2165
2166 /// Medium double-precision floating-point 4x2 matrix.
2167 /// @see gtc_type_precision
2168 typedef detail::tmat4x2<f64, mediump> mediump_f64mat4x2;
2169
2170 /// Medium double-precision floating-point 4x3 matrix.
2171 /// @see gtc_type_precision
2172 typedef detail::tmat4x3<f64, mediump> mediump_f64mat4x3;
2173
2174 /// Medium double-precision floating-point 4x4 matrix.
2175 /// @see gtc_type_precision
2176 typedef detail::tmat4x4<f64, mediump> mediump_f64mat4x4;
2177
2178 /// Medium double-precision floating-point 1x1 matrix.
2179 /// @see gtc_type_precision
2180 //typedef mediump_f64mat1x1 mediump_f64mat1;
2181
2182 /// Medium double-precision floating-point 2x2 matrix.
2183 /// @see gtc_type_precision
2184 typedef mediump_f64mat2x2 mediump_f64mat2;
2185
2186 /// Medium double-precision floating-point 3x3 matrix.
2187 /// @see gtc_type_precision
2188 typedef mediump_f64mat3x3 mediump_f64mat3;
2189
2190 /// Medium double-precision floating-point 4x4 matrix.
2191 /// @see gtc_type_precision
2192 typedef mediump_f64mat4x4 mediump_f64mat4;
2193
2194 /// High double-precision floating-point 1x1 matrix.
2195 /// @see gtc_type_precision
2196 //typedef f64 highp_f64mat1x1;
2197
2198 /// High double-precision floating-point 2x2 matrix.
2199 /// @see gtc_type_precision
2200 typedef detail::tmat2x2<f64, highp> highp_f64mat2x2;
2201
2202 /// High double-precision floating-point 2x3 matrix.
2203 /// @see gtc_type_precision
2204 typedef detail::tmat2x3<f64, highp> highp_f64mat2x3;
2205
2206 /// High double-precision floating-point 2x4 matrix.
2207 /// @see gtc_type_precision
2208 typedef detail::tmat2x4<f64, highp> highp_f64mat2x4;
2209
2210 /// High double-precision floating-point 3x2 matrix.
2211 /// @see gtc_type_precision
2212 typedef detail::tmat3x2<f64, highp> highp_f64mat3x2;
2213
2214 /// High double-precision floating-point 3x3 matrix.
2215 /// @see gtc_type_precision
2216 typedef detail::tmat3x3<f64, highp> highp_f64mat3x3;
2217
2218 /// High double-precision floating-point 3x4 matrix.
2219 /// @see gtc_type_precision
2220 typedef detail::tmat3x4<f64, highp> highp_f64mat3x4;
2221
2222 /// High double-precision floating-point 4x2 matrix.
2223 /// @see gtc_type_precision
2224 typedef detail::tmat4x2<f64, highp> highp_f64mat4x2;
2225
2226 /// High double-precision floating-point 4x3 matrix.
2227 /// @see gtc_type_precision
2228 typedef detail::tmat4x3<f64, highp> highp_f64mat4x3;
2229
2230 /// High double-precision floating-point 4x4 matrix.
2231 /// @see gtc_type_precision
2232 typedef detail::tmat4x4<f64, highp> highp_f64mat4x4;
2233
2234 /// High double-precision floating-point 1x1 matrix.
2235 /// @see gtc_type_precision
2236 //typedef highp_f64mat1x1 highp_f64mat1;
2237
2238 /// High double-precision floating-point 2x2 matrix.
2239 /// @see gtc_type_precision
2240 typedef highp_f64mat2x2 highp_f64mat2;
2241
2242 /// High double-precision floating-point 3x3 matrix.
2243 /// @see gtc_type_precision
2244 typedef highp_f64mat3x3 highp_f64mat3;
2245
2246 /// High double-precision floating-point 4x4 matrix.
2247 /// @see gtc_type_precision
2248 typedef highp_f64mat4x4 highp_f64mat4;
2249
2250 //////////////////////////
2251 // Quaternion types
2252
2253 /// Low single-precision floating-point quaternion.
2254 /// @see gtc_type_precision
2255 typedef detail::tquat<f32, lowp> lowp_f32quat;
2256
2257 /// Low double-precision floating-point quaternion.
2258 /// @see gtc_type_precision
2259 typedef detail::tquat<f64, lowp> lowp_f64quat;
2260
2261 /// Medium single-precision floating-point quaternion.
2262 /// @see gtc_type_precision
2263 typedef detail::tquat<f32, mediump> mediump_f32quat;
2264
2265 /// Medium double-precision floating-point quaternion.
2266 /// @see gtc_type_precision
2267 typedef detail::tquat<f64, mediump> mediump_f64quat;
2268
2269 /// High single-precision floating-point quaternion.
2270 /// @see gtc_type_precision
2271 typedef detail::tquat<f32, highp> highp_f32quat;
2272
2273 /// High double-precision floating-point quaternion.
2274 /// @see gtc_type_precision
2275 typedef detail::tquat<f64, highp> highp_f64quat;
2276
2277
2278#if(defined(GLM_PRECISION_LOWP_FLOAT))
2279 typedef lowp_f32vec1 fvec1;
2280 typedef lowp_f32vec2 fvec2;
2281 typedef lowp_f32vec3 fvec3;
2282 typedef lowp_f32vec4 fvec4;
2283 typedef lowp_f32mat2 fmat2;
2284 typedef lowp_f32mat3 fmat3;
2285 typedef lowp_f32mat4 fmat4;
2286 typedef lowp_f32mat2x2 fmat2x2;
2287 typedef lowp_f32mat3x2 fmat3x2;
2288 typedef lowp_f32mat4x2 fmat4x2;
2289 typedef lowp_f32mat2x3 fmat2x3;
2290 typedef lowp_f32mat3x3 fmat3x3;
2291 typedef lowp_f32mat4x3 fmat4x3;
2292 typedef lowp_f32mat2x4 fmat2x4;
2293 typedef lowp_f32mat3x4 fmat3x4;
2294 typedef lowp_f32mat4x4 fmat4x4;
2295 typedef lowp_f32quat fquat;
2296
2297 typedef lowp_f32vec1 f32vec1;
2298 typedef lowp_f32vec2 f32vec2;
2299 typedef lowp_f32vec3 f32vec3;
2300 typedef lowp_f32vec4 f32vec4;
2301 typedef lowp_f32mat2 f32mat2;
2302 typedef lowp_f32mat3 f32mat3;
2303 typedef lowp_f32mat4 f32mat4;
2304 typedef lowp_f32mat2x2 f32mat2x2;
2305 typedef lowp_f32mat3x2 f32mat3x2;
2306 typedef lowp_f32mat4x2 f32mat4x2;
2307 typedef lowp_f32mat2x3 f32mat2x3;
2308 typedef lowp_f32mat3x3 f32mat3x3;
2309 typedef lowp_f32mat4x3 f32mat4x3;
2310 typedef lowp_f32mat2x4 f32mat2x4;
2311 typedef lowp_f32mat3x4 f32mat3x4;
2312 typedef lowp_f32mat4x4 f32mat4x4;
2313 typedef lowp_f32quat f32quat;
2314#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
2315 typedef mediump_f32vec1 fvec1;
2316 typedef mediump_f32vec2 fvec2;
2317 typedef mediump_f32vec3 fvec3;
2318 typedef mediump_f32vec4 fvec4;
2319 typedef mediump_f32mat2 fmat2;
2320 typedef mediump_f32mat3 fmat3;
2321 typedef mediump_f32mat4 fmat4;
2322 typedef mediump_f32mat2x2 fmat2x2;
2323 typedef mediump_f32mat3x2 fmat3x2;
2324 typedef mediump_f32mat4x2 fmat4x2;
2325 typedef mediump_f32mat2x3 fmat2x3;
2326 typedef mediump_f32mat3x3 fmat3x3;
2327 typedef mediump_f32mat4x3 fmat4x3;
2328 typedef mediump_f32mat2x4 fmat2x4;
2329 typedef mediump_f32mat3x4 fmat3x4;
2330 typedef mediump_f32mat4x4 fmat4x4;
2331 typedef mediump_f32quat fquat;
2332
2333 typedef mediump_f32vec1 f32vec1;
2334 typedef mediump_f32vec2 f32vec2;
2335 typedef mediump_f32vec3 f32vec3;
2336 typedef mediump_f32vec4 f32vec4;
2337 typedef mediump_f32mat2 f32mat2;
2338 typedef mediump_f32mat3 f32mat3;
2339 typedef mediump_f32mat4 f32mat4;
2340 typedef mediump_f32mat2x2 f32mat2x2;
2341 typedef mediump_f32mat3x2 f32mat3x2;
2342 typedef mediump_f32mat4x2 f32mat4x2;
2343 typedef mediump_f32mat2x3 f32mat2x3;
2344 typedef mediump_f32mat3x3 f32mat3x3;
2345 typedef mediump_f32mat4x3 f32mat4x3;
2346 typedef mediump_f32mat2x4 f32mat2x4;
2347 typedef mediump_f32mat3x4 f32mat3x4;
2348 typedef mediump_f32mat4x4 f32mat4x4;
2349 typedef mediump_f32quat f32quat;
2350#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))
2351 /// Default single-precision floating-point vector of 1 components.
2352 /// @see gtc_type_precision
2353 typedef highp_f32vec1 fvec1;
2354
2355 /// Default single-precision floating-point vector of 2 components.
2356 /// @see gtc_type_precision
2357 typedef highp_f32vec2 fvec2;
2358
2359 /// Default single-precision floating-point vector of 3 components.
2360 /// @see gtc_type_precision
2361 typedef highp_f32vec3 fvec3;
2362
2363 /// Default single-precision floating-point vector of 4 components.
2364 /// @see gtc_type_precision
2365 typedef highp_f32vec4 fvec4;
2366
2367 /// Default single-precision floating-point 2x2 matrix.
2368 /// @see gtc_type_precision
2369 typedef highp_f32mat2x2 fmat2x2;
2370
2371 /// Default single-precision floating-point 2x3 matrix.
2372 /// @see gtc_type_precision
2373 typedef highp_f32mat2x3 fmat2x3;
2374
2375 /// Default single-precision floating-point 2x4 matrix.
2376 /// @see gtc_type_precision
2377 typedef highp_f32mat2x4 fmat2x4;
2378
2379 /// Default single-precision floating-point 3x2 matrix.
2380 /// @see gtc_type_precision
2381 typedef highp_f32mat3x2 fmat3x2;
2382
2383 /// Default single-precision floating-point 3x3 matrix.
2384 /// @see gtc_type_precision
2385 typedef highp_f32mat3x3 fmat3x3;
2386
2387 /// Default single-precision floating-point 3x4 matrix.
2388 /// @see gtc_type_precision
2389 typedef highp_f32mat3x4 fmat3x4;
2390
2391 /// Default single-precision floating-point 4x2 matrix.
2392 /// @see gtc_type_precision
2393 typedef highp_f32mat4x2 fmat4x2;
2394
2395 /// Default single-precision floating-point 4x3 matrix.
2396 /// @see gtc_type_precision
2397 typedef highp_f32mat4x3 fmat4x3;
2398
2399 /// Default single-precision floating-point 4x4 matrix.
2400 /// @see gtc_type_precision
2401 typedef highp_f32mat4x4 fmat4x4;
2402
2403 /// Default single-precision floating-point 2x2 matrix.
2404 /// @see gtc_type_precision
2405 typedef fmat2x2 fmat2;
2406
2407 /// Default single-precision floating-point 3x3 matrix.
2408 /// @see gtc_type_precision
2409 typedef fmat3x3 fmat3;
2410
2411 /// Default single-precision floating-point 4x4 matrix.
2412 /// @see gtc_type_precision
2413 typedef fmat4x4 fmat4;
2414
2415 /// Default single-precision floating-point quaternion.
2416 /// @see gtc_type_precision
2417 typedef highp_fquat fquat;
2418
2419
2420
2421 /// Default single-precision floating-point vector of 1 components.
2422 /// @see gtc_type_precision
2423 typedef highp_f32vec1 f32vec1;
2424
2425 /// Default single-precision floating-point vector of 2 components.
2426 /// @see gtc_type_precision
2427 typedef highp_f32vec2 f32vec2;
2428
2429 /// Default single-precision floating-point vector of 3 components.
2430 /// @see gtc_type_precision
2431 typedef highp_f32vec3 f32vec3;
2432
2433 /// Default single-precision floating-point vector of 4 components.
2434 /// @see gtc_type_precision
2435 typedef highp_f32vec4 f32vec4;
2436
2437 /// Default single-precision floating-point 2x2 matrix.
2438 /// @see gtc_type_precision
2439 typedef highp_f32mat2x2 f32mat2x2;
2440
2441 /// Default single-precision floating-point 2x3 matrix.
2442 /// @see gtc_type_precision
2443 typedef highp_f32mat2x3 f32mat2x3;
2444
2445 /// Default single-precision floating-point 2x4 matrix.
2446 /// @see gtc_type_precision
2447 typedef highp_f32mat2x4 f32mat2x4;
2448
2449 /// Default single-precision floating-point 3x2 matrix.
2450 /// @see gtc_type_precision
2451 typedef highp_f32mat3x2 f32mat3x2;
2452
2453 /// Default single-precision floating-point 3x3 matrix.
2454 /// @see gtc_type_precision
2455 typedef highp_f32mat3x3 f32mat3x3;
2456
2457 /// Default single-precision floating-point 3x4 matrix.
2458 /// @see gtc_type_precision
2459 typedef highp_f32mat3x4 f32mat3x4;
2460
2461 /// Default single-precision floating-point 4x2 matrix.
2462 /// @see gtc_type_precision
2463 typedef highp_f32mat4x2 f32mat4x2;
2464
2465 /// Default single-precision floating-point 4x3 matrix.
2466 /// @see gtc_type_precision
2467 typedef highp_f32mat4x3 f32mat4x3;
2468
2469 /// Default single-precision floating-point 4x4 matrix.
2470 /// @see gtc_type_precision
2471 typedef highp_f32mat4x4 f32mat4x4;
2472
2473 /// Default single-precision floating-point 2x2 matrix.
2474 /// @see gtc_type_precision
2475 typedef f32mat2x2 f32mat2;
2476
2477 /// Default single-precision floating-point 3x3 matrix.
2478 /// @see gtc_type_precision
2479 typedef f32mat3x3 f32mat3;
2480
2481 /// Default single-precision floating-point 4x4 matrix.
2482 /// @see gtc_type_precision
2483 typedef f32mat4x4 f32mat4;
2484
2485 /// Default single-precision floating-point quaternion.
2486 /// @see gtc_type_precision
2487 typedef highp_f32quat f32quat;
2488#endif
2489
2490
2491#if(defined(GLM_PRECISION_LOWP_DOUBLE))
2492 typedef lowp_f64vec1 f64vec1;
2493 typedef lowp_f64vec2 f64vec2;
2494 typedef lowp_f64vec3 f64vec3;
2495 typedef lowp_f64vec4 f64vec4;
2496 typedef lowp_f64mat2 f64mat2;
2497 typedef lowp_f64mat3 f64mat3;
2498 typedef lowp_f64mat4 f64mat4;
2499 typedef lowp_f64mat2x2 f64mat2x2;
2500 typedef lowp_f64mat3x2 f64mat3x2;
2501 typedef lowp_f64mat4x2 f64mat4x2;
2502 typedef lowp_f64mat2x3 f64mat2x3;
2503 typedef lowp_f64mat3x3 f64mat3x3;
2504 typedef lowp_f64mat4x3 f64mat4x3;
2505 typedef lowp_f64mat2x4 f64mat2x4;
2506 typedef lowp_f64mat3x4 f64mat3x4;
2507 typedef lowp_f64mat4x4 f64mat4x4;
2508 typedef lowp_f64quat f64quat;
2509#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
2510 typedef mediump_f64vec1 f64vec1;
2511 typedef mediump_f64vec2 f64vec2;
2512 typedef mediump_f64vec3 f64vec3;
2513 typedef mediump_f64vec4 f64vec4;
2514 typedef mediump_f64mat2 f64mat2;
2515 typedef mediump_f64mat3 f64mat3;
2516 typedef mediump_f64mat4 f64mat4;
2517 typedef mediump_f64mat2x2 f64mat2x2;
2518 typedef mediump_f64mat3x2 f64mat3x2;
2519 typedef mediump_f64mat4x2 f64mat4x2;
2520 typedef mediump_f64mat2x3 f64mat2x3;
2521 typedef mediump_f64mat3x3 f64mat3x3;
2522 typedef mediump_f64mat4x3 f64mat4x3;
2523 typedef mediump_f64mat2x4 f64mat2x4;
2524 typedef mediump_f64mat3x4 f64mat3x4;
2525 typedef mediump_f64mat4x4 f64mat4x4;
2526 typedef mediump_f64quat f64quat;
2527#else
2528 /// Default double-precision floating-point vector of 1 components.
2529 /// @see gtc_type_precision
2530 typedef highp_f64vec1 f64vec1;
2531
2532 /// Default double-precision floating-point vector of 2 components.
2533 /// @see gtc_type_precision
2534 typedef highp_f64vec2 f64vec2;
2535
2536 /// Default double-precision floating-point vector of 3 components.
2537 /// @see gtc_type_precision
2538 typedef highp_f64vec3 f64vec3;
2539
2540 /// Default double-precision floating-point vector of 4 components.
2541 /// @see gtc_type_precision
2542 typedef highp_f64vec4 f64vec4;
2543
2544 /// Default double-precision floating-point 2x2 matrix.
2545 /// @see gtc_type_precision
2546 typedef highp_f64mat2x2 f64mat2x2;
2547
2548 /// Default double-precision floating-point 2x3 matrix.
2549 /// @see gtc_type_precision
2550 typedef highp_f64mat2x3 f64mat2x3;
2551
2552 /// Default double-precision floating-point 2x4 matrix.
2553 /// @see gtc_type_precision
2554 typedef highp_f64mat2x4 f64mat2x4;
2555
2556 /// Default double-precision floating-point 3x2 matrix.
2557 /// @see gtc_type_precision
2558 typedef highp_f64mat3x2 f64mat3x2;
2559
2560 /// Default double-precision floating-point 3x3 matrix.
2561 /// @see gtc_type_precision
2562 typedef highp_f64mat3x3 f64mat3x3;
2563
2564 /// Default double-precision floating-point 3x4 matrix.
2565 /// @see gtc_type_precision
2566 typedef highp_f64mat3x4 f64mat3x4;
2567
2568 /// Default double-precision floating-point 4x2 matrix.
2569 /// @see gtc_type_precision
2570 typedef highp_f64mat4x2 f64mat4x2;
2571
2572 /// Default double-precision floating-point 4x3 matrix.
2573 /// @see gtc_type_precision
2574 typedef highp_f64mat4x3 f64mat4x3;
2575
2576 /// Default double-precision floating-point 4x4 matrix.
2577 /// @see gtc_type_precision
2578 typedef highp_f64mat4x4 f64mat4x4;
2579
2580 /// Default double-precision floating-point 2x2 matrix.
2581 /// @see gtc_type_precision
2582 typedef f64mat2x2 f64mat2;
2583
2584 /// Default double-precision floating-point 3x3 matrix.
2585 /// @see gtc_type_precision
2586 typedef f64mat3x3 f64mat3;
2587
2588 /// Default double-precision floating-point 4x4 matrix.
2589 /// @see gtc_type_precision
2590 typedef f64mat4x4 f64mat4;
2591
2592 /// Default double-precision floating-point quaternion.
2593 /// @see gtc_type_precision
2594 typedef highp_f64quat f64quat;
2595#endif
2596}//namespace glm
2597
2598#endif//GLM_FWD_INCLUDED