master
ブランチ master
ShaderPlayground / deps / glm / glm / gtx / type_aligned.hpp
32.5 KB、982行 生 Blame 履歴
1/// @ref gtx_type_aligned
2/// @file glm/gtx/type_aligned.hpp
3///
4/// @see core (dependence)
5/// @see gtc_quaternion (dependence)
6///
7/// @defgroup gtx_type_aligned GLM_GTX_type_aligned
8/// @ingroup gtx
9///
10/// Include <glm/gtx/type_aligned.hpp> to use the features of this extension.
11///
12/// Defines aligned types.
13
14#pragma once
15
16// Dependency:
17#include "../gtc/type_precision.hpp"
18#include "../gtc/quaternion.hpp"
19
20#ifndef GLM_ENABLE_EXPERIMENTAL
21# error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
22#endif
23
24#if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
25# pragma message("GLM: GLM_GTX_type_aligned extension included")
26#endif
27
28namespace glm
29{
30 ///////////////////////////
31 // Signed int vector types
32
33 /// @addtogroup gtx_type_aligned
34 /// @{
35
36 /// Low qualifier 8 bit signed integer aligned scalar type.
37 /// @see gtx_type_aligned
38 GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1);
39
40 /// Low qualifier 16 bit signed integer aligned scalar type.
41 /// @see gtx_type_aligned
42 GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2);
43
44 /// Low qualifier 32 bit signed integer aligned scalar type.
45 /// @see gtx_type_aligned
46 GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4);
47
48 /// Low qualifier 64 bit signed integer aligned scalar type.
49 /// @see gtx_type_aligned
50 GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8);
51
52
53 /// Low qualifier 8 bit signed integer aligned scalar type.
54 /// @see gtx_type_aligned
55 GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1);
56
57 /// Low qualifier 16 bit signed integer aligned scalar type.
58 /// @see gtx_type_aligned
59 GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2);
60
61 /// Low qualifier 32 bit signed integer aligned scalar type.
62 /// @see gtx_type_aligned
63 GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4);
64
65 /// Low qualifier 64 bit signed integer aligned scalar type.
66 /// @see gtx_type_aligned
67 GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8);
68
69
70 /// Low qualifier 8 bit signed integer aligned scalar type.
71 /// @see gtx_type_aligned
72 GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1);
73
74 /// Low qualifier 16 bit signed integer aligned scalar type.
75 /// @see gtx_type_aligned
76 GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2);
77
78 /// Low qualifier 32 bit signed integer aligned scalar type.
79 /// @see gtx_type_aligned
80 GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4);
81
82 /// Low qualifier 64 bit signed integer aligned scalar type.
83 /// @see gtx_type_aligned
84 GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8);
85
86
87 /// Medium qualifier 8 bit signed integer aligned scalar type.
88 /// @see gtx_type_aligned
89 GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1);
90
91 /// Medium qualifier 16 bit signed integer aligned scalar type.
92 /// @see gtx_type_aligned
93 GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2);
94
95 /// Medium qualifier 32 bit signed integer aligned scalar type.
96 /// @see gtx_type_aligned
97 GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4);
98
99 /// Medium qualifier 64 bit signed integer aligned scalar type.
100 /// @see gtx_type_aligned
101 GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8);
102
103
104 /// Medium qualifier 8 bit signed integer aligned scalar type.
105 /// @see gtx_type_aligned
106 GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1);
107
108 /// Medium qualifier 16 bit signed integer aligned scalar type.
109 /// @see gtx_type_aligned
110 GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2);
111
112 /// Medium qualifier 32 bit signed integer aligned scalar type.
113 /// @see gtx_type_aligned
114 GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4);
115
116 /// Medium qualifier 64 bit signed integer aligned scalar type.
117 /// @see gtx_type_aligned
118 GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8);
119
120
121 /// Medium qualifier 8 bit signed integer aligned scalar type.
122 /// @see gtx_type_aligned
123 GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1);
124
125 /// Medium qualifier 16 bit signed integer aligned scalar type.
126 /// @see gtx_type_aligned
127 GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2);
128
129 /// Medium qualifier 32 bit signed integer aligned scalar type.
130 /// @see gtx_type_aligned
131 GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4);
132
133 /// Medium qualifier 64 bit signed integer aligned scalar type.
134 /// @see gtx_type_aligned
135 GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8);
136
137
138 /// High qualifier 8 bit signed integer aligned scalar type.
139 /// @see gtx_type_aligned
140 GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1);
141
142 /// High qualifier 16 bit signed integer aligned scalar type.
143 /// @see gtx_type_aligned
144 GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2);
145
146 /// High qualifier 32 bit signed integer aligned scalar type.
147 /// @see gtx_type_aligned
148 GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4);
149
150 /// High qualifier 64 bit signed integer aligned scalar type.
151 /// @see gtx_type_aligned
152 GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8);
153
154
155 /// High qualifier 8 bit signed integer aligned scalar type.
156 /// @see gtx_type_aligned
157 GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1);
158
159 /// High qualifier 16 bit signed integer aligned scalar type.
160 /// @see gtx_type_aligned
161 GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2);
162
163 /// High qualifier 32 bit signed integer aligned scalar type.
164 /// @see gtx_type_aligned
165 GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4);
166
167 /// High qualifier 64 bit signed integer aligned scalar type.
168 /// @see gtx_type_aligned
169 GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8);
170
171
172 /// High qualifier 8 bit signed integer aligned scalar type.
173 /// @see gtx_type_aligned
174 GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1);
175
176 /// High qualifier 16 bit signed integer aligned scalar type.
177 /// @see gtx_type_aligned
178 GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2);
179
180 /// High qualifier 32 bit signed integer aligned scalar type.
181 /// @see gtx_type_aligned
182 GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4);
183
184 /// High qualifier 64 bit signed integer aligned scalar type.
185 /// @see gtx_type_aligned
186 GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8);
187
188
189 /// Default qualifier 8 bit signed integer aligned scalar type.
190 /// @see gtx_type_aligned
191 GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1);
192
193 /// Default qualifier 16 bit signed integer aligned scalar type.
194 /// @see gtx_type_aligned
195 GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2);
196
197 /// Default qualifier 32 bit signed integer aligned scalar type.
198 /// @see gtx_type_aligned
199 GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4);
200
201 /// Default qualifier 64 bit signed integer aligned scalar type.
202 /// @see gtx_type_aligned
203 GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8);
204
205
206 /// Default qualifier 8 bit signed integer aligned scalar type.
207 /// @see gtx_type_aligned
208 GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1);
209
210 /// Default qualifier 16 bit signed integer aligned scalar type.
211 /// @see gtx_type_aligned
212 GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2);
213
214 /// Default qualifier 32 bit signed integer aligned scalar type.
215 /// @see gtx_type_aligned
216 GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4);
217
218 /// Default qualifier 64 bit signed integer aligned scalar type.
219 /// @see gtx_type_aligned
220 GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8);
221
222
223 /// Default qualifier 8 bit signed integer aligned scalar type.
224 /// @see gtx_type_aligned
225 GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1);
226
227 /// Default qualifier 16 bit signed integer aligned scalar type.
228 /// @see gtx_type_aligned
229 GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2);
230
231 /// Default qualifier 32 bit signed integer aligned scalar type.
232 /// @see gtx_type_aligned
233 GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4);
234
235 /// Default qualifier 64 bit signed integer aligned scalar type.
236 /// @see gtx_type_aligned
237 GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8);
238
239
240 /// Default qualifier 32 bit signed integer aligned scalar type.
241 /// @see gtx_type_aligned
242 GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4);
243
244 /// Default qualifier 32 bit signed integer aligned vector of 2 components type.
245 /// @see gtx_type_aligned
246 GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8);
247
248 /// Default qualifier 32 bit signed integer aligned vector of 3 components type.
249 /// @see gtx_type_aligned
250 GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16);
251
252 /// Default qualifier 32 bit signed integer aligned vector of 4 components type.
253 /// @see gtx_type_aligned
254 GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16);
255
256
257 /// Default qualifier 8 bit signed integer aligned scalar type.
258 /// @see gtx_type_aligned
259 GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1);
260
261 /// Default qualifier 8 bit signed integer aligned vector of 2 components type.
262 /// @see gtx_type_aligned
263 GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2);
264
265 /// Default qualifier 8 bit signed integer aligned vector of 3 components type.
266 /// @see gtx_type_aligned
267 GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4);
268
269 /// Default qualifier 8 bit signed integer aligned vector of 4 components type.
270 /// @see gtx_type_aligned
271 GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4);
272
273
274 /// Default qualifier 16 bit signed integer aligned scalar type.
275 /// @see gtx_type_aligned
276 GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2);
277
278 /// Default qualifier 16 bit signed integer aligned vector of 2 components type.
279 /// @see gtx_type_aligned
280 GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4);
281
282 /// Default qualifier 16 bit signed integer aligned vector of 3 components type.
283 /// @see gtx_type_aligned
284 GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8);
285
286 /// Default qualifier 16 bit signed integer aligned vector of 4 components type.
287 /// @see gtx_type_aligned
288 GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8);
289
290
291 /// Default qualifier 32 bit signed integer aligned scalar type.
292 /// @see gtx_type_aligned
293 GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4);
294
295 /// Default qualifier 32 bit signed integer aligned vector of 2 components type.
296 /// @see gtx_type_aligned
297 GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8);
298
299 /// Default qualifier 32 bit signed integer aligned vector of 3 components type.
300 /// @see gtx_type_aligned
301 GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16);
302
303 /// Default qualifier 32 bit signed integer aligned vector of 4 components type.
304 /// @see gtx_type_aligned
305 GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16);
306
307
308 /// Default qualifier 64 bit signed integer aligned scalar type.
309 /// @see gtx_type_aligned
310 GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8);
311
312 /// Default qualifier 64 bit signed integer aligned vector of 2 components type.
313 /// @see gtx_type_aligned
314 GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16);
315
316 /// Default qualifier 64 bit signed integer aligned vector of 3 components type.
317 /// @see gtx_type_aligned
318 GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32);
319
320 /// Default qualifier 64 bit signed integer aligned vector of 4 components type.
321 /// @see gtx_type_aligned
322 GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32);
323
324
325 /////////////////////////////
326 // Unsigned int vector types
327
328 /// Low qualifier 8 bit unsigned integer aligned scalar type.
329 /// @see gtx_type_aligned
330 GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1);
331
332 /// Low qualifier 16 bit unsigned integer aligned scalar type.
333 /// @see gtx_type_aligned
334 GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2);
335
336 /// Low qualifier 32 bit unsigned integer aligned scalar type.
337 /// @see gtx_type_aligned
338 GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4);
339
340 /// Low qualifier 64 bit unsigned integer aligned scalar type.
341 /// @see gtx_type_aligned
342 GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8);
343
344
345 /// Low qualifier 8 bit unsigned integer aligned scalar type.
346 /// @see gtx_type_aligned
347 GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1);
348
349 /// Low qualifier 16 bit unsigned integer aligned scalar type.
350 /// @see gtx_type_aligned
351 GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2);
352
353 /// Low qualifier 32 bit unsigned integer aligned scalar type.
354 /// @see gtx_type_aligned
355 GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4);
356
357 /// Low qualifier 64 bit unsigned integer aligned scalar type.
358 /// @see gtx_type_aligned
359 GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8);
360
361
362 /// Low qualifier 8 bit unsigned integer aligned scalar type.
363 /// @see gtx_type_aligned
364 GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1);
365
366 /// Low qualifier 16 bit unsigned integer aligned scalar type.
367 /// @see gtx_type_aligned
368 GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2);
369
370 /// Low qualifier 32 bit unsigned integer aligned scalar type.
371 /// @see gtx_type_aligned
372 GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4);
373
374 /// Low qualifier 64 bit unsigned integer aligned scalar type.
375 /// @see gtx_type_aligned
376 GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8);
377
378
379 /// Medium qualifier 8 bit unsigned integer aligned scalar type.
380 /// @see gtx_type_aligned
381 GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1);
382
383 /// Medium qualifier 16 bit unsigned integer aligned scalar type.
384 /// @see gtx_type_aligned
385 GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2);
386
387 /// Medium qualifier 32 bit unsigned integer aligned scalar type.
388 /// @see gtx_type_aligned
389 GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4);
390
391 /// Medium qualifier 64 bit unsigned integer aligned scalar type.
392 /// @see gtx_type_aligned
393 GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8);
394
395
396 /// Medium qualifier 8 bit unsigned integer aligned scalar type.
397 /// @see gtx_type_aligned
398 GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1);
399
400 /// Medium qualifier 16 bit unsigned integer aligned scalar type.
401 /// @see gtx_type_aligned
402 GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2);
403
404 /// Medium qualifier 32 bit unsigned integer aligned scalar type.
405 /// @see gtx_type_aligned
406 GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4);
407
408 /// Medium qualifier 64 bit unsigned integer aligned scalar type.
409 /// @see gtx_type_aligned
410 GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8);
411
412
413 /// Medium qualifier 8 bit unsigned integer aligned scalar type.
414 /// @see gtx_type_aligned
415 GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1);
416
417 /// Medium qualifier 16 bit unsigned integer aligned scalar type.
418 /// @see gtx_type_aligned
419 GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2);
420
421 /// Medium qualifier 32 bit unsigned integer aligned scalar type.
422 /// @see gtx_type_aligned
423 GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4);
424
425 /// Medium qualifier 64 bit unsigned integer aligned scalar type.
426 /// @see gtx_type_aligned
427 GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8);
428
429
430 /// High qualifier 8 bit unsigned integer aligned scalar type.
431 /// @see gtx_type_aligned
432 GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1);
433
434 /// High qualifier 16 bit unsigned integer aligned scalar type.
435 /// @see gtx_type_aligned
436 GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2);
437
438 /// High qualifier 32 bit unsigned integer aligned scalar type.
439 /// @see gtx_type_aligned
440 GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4);
441
442 /// High qualifier 64 bit unsigned integer aligned scalar type.
443 /// @see gtx_type_aligned
444 GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8);
445
446
447 /// High qualifier 8 bit unsigned integer aligned scalar type.
448 /// @see gtx_type_aligned
449 GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1);
450
451 /// High qualifier 16 bit unsigned integer aligned scalar type.
452 /// @see gtx_type_aligned
453 GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2);
454
455 /// High qualifier 32 bit unsigned integer aligned scalar type.
456 /// @see gtx_type_aligned
457 GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4);
458
459 /// High qualifier 64 bit unsigned integer aligned scalar type.
460 /// @see gtx_type_aligned
461 GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8);
462
463
464 /// High qualifier 8 bit unsigned integer aligned scalar type.
465 /// @see gtx_type_aligned
466 GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1);
467
468 /// High qualifier 16 bit unsigned integer aligned scalar type.
469 /// @see gtx_type_aligned
470 GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2);
471
472 /// High qualifier 32 bit unsigned integer aligned scalar type.
473 /// @see gtx_type_aligned
474 GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4);
475
476 /// High qualifier 64 bit unsigned integer aligned scalar type.
477 /// @see gtx_type_aligned
478 GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8);
479
480
481 /// Default qualifier 8 bit unsigned integer aligned scalar type.
482 /// @see gtx_type_aligned
483 GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1);
484
485 /// Default qualifier 16 bit unsigned integer aligned scalar type.
486 /// @see gtx_type_aligned
487 GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2);
488
489 /// Default qualifier 32 bit unsigned integer aligned scalar type.
490 /// @see gtx_type_aligned
491 GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4);
492
493 /// Default qualifier 64 bit unsigned integer aligned scalar type.
494 /// @see gtx_type_aligned
495 GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8);
496
497
498 /// Default qualifier 8 bit unsigned integer aligned scalar type.
499 /// @see gtx_type_aligned
500 GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1);
501
502 /// Default qualifier 16 bit unsigned integer aligned scalar type.
503 /// @see gtx_type_aligned
504 GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2);
505
506 /// Default qualifier 32 bit unsigned integer aligned scalar type.
507 /// @see gtx_type_aligned
508 GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4);
509
510 /// Default qualifier 64 bit unsigned integer aligned scalar type.
511 /// @see gtx_type_aligned
512 GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8);
513
514
515 /// Default qualifier 8 bit unsigned integer aligned scalar type.
516 /// @see gtx_type_aligned
517 GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1);
518
519 /// Default qualifier 16 bit unsigned integer aligned scalar type.
520 /// @see gtx_type_aligned
521 GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2);
522
523 /// Default qualifier 32 bit unsigned integer aligned scalar type.
524 /// @see gtx_type_aligned
525 GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4);
526
527 /// Default qualifier 64 bit unsigned integer aligned scalar type.
528 /// @see gtx_type_aligned
529 GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8);
530
531
532 /// Default qualifier 32 bit unsigned integer aligned scalar type.
533 /// @see gtx_type_aligned
534 GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4);
535
536 /// Default qualifier 32 bit unsigned integer aligned vector of 2 components type.
537 /// @see gtx_type_aligned
538 GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8);
539
540 /// Default qualifier 32 bit unsigned integer aligned vector of 3 components type.
541 /// @see gtx_type_aligned
542 GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16);
543
544 /// Default qualifier 32 bit unsigned integer aligned vector of 4 components type.
545 /// @see gtx_type_aligned
546 GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16);
547
548
549 /// Default qualifier 8 bit unsigned integer aligned scalar type.
550 /// @see gtx_type_aligned
551 GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1);
552
553 /// Default qualifier 8 bit unsigned integer aligned vector of 2 components type.
554 /// @see gtx_type_aligned
555 GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2);
556
557 /// Default qualifier 8 bit unsigned integer aligned vector of 3 components type.
558 /// @see gtx_type_aligned
559 GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4);
560
561 /// Default qualifier 8 bit unsigned integer aligned vector of 4 components type.
562 /// @see gtx_type_aligned
563 GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4);
564
565
566 /// Default qualifier 16 bit unsigned integer aligned scalar type.
567 /// @see gtx_type_aligned
568 GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2);
569
570 /// Default qualifier 16 bit unsigned integer aligned vector of 2 components type.
571 /// @see gtx_type_aligned
572 GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4);
573
574 /// Default qualifier 16 bit unsigned integer aligned vector of 3 components type.
575 /// @see gtx_type_aligned
576 GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8);
577
578 /// Default qualifier 16 bit unsigned integer aligned vector of 4 components type.
579 /// @see gtx_type_aligned
580 GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8);
581
582
583 /// Default qualifier 32 bit unsigned integer aligned scalar type.
584 /// @see gtx_type_aligned
585 GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4);
586
587 /// Default qualifier 32 bit unsigned integer aligned vector of 2 components type.
588 /// @see gtx_type_aligned
589 GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8);
590
591 /// Default qualifier 32 bit unsigned integer aligned vector of 3 components type.
592 /// @see gtx_type_aligned
593 GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16);
594
595 /// Default qualifier 32 bit unsigned integer aligned vector of 4 components type.
596 /// @see gtx_type_aligned
597 GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16);
598
599
600 /// Default qualifier 64 bit unsigned integer aligned scalar type.
601 /// @see gtx_type_aligned
602 GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8);
603
604 /// Default qualifier 64 bit unsigned integer aligned vector of 2 components type.
605 /// @see gtx_type_aligned
606 GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16);
607
608 /// Default qualifier 64 bit unsigned integer aligned vector of 3 components type.
609 /// @see gtx_type_aligned
610 GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32);
611
612 /// Default qualifier 64 bit unsigned integer aligned vector of 4 components type.
613 /// @see gtx_type_aligned
614 GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32);
615
616
617 //////////////////////
618 // Float vector types
619
620 /// 32 bit single-qualifier floating-point aligned scalar.
621 /// @see gtx_type_aligned
622 GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4);
623
624 /// 32 bit single-qualifier floating-point aligned scalar.
625 /// @see gtx_type_aligned
626 GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4);
627
628 /// 32 bit single-qualifier floating-point aligned scalar.
629 /// @see gtx_type_aligned
630 GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4);
631
632# ifndef GLM_FORCE_SINGLE_ONLY
633
634 /// 64 bit double-qualifier floating-point aligned scalar.
635 /// @see gtx_type_aligned
636 GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8);
637
638 /// 64 bit double-qualifier floating-point aligned scalar.
639 /// @see gtx_type_aligned
640 GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8);
641
642 /// 64 bit double-qualifier floating-point aligned scalar.
643 /// @see gtx_type_aligned
644 GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8);
645
646# endif//GLM_FORCE_SINGLE_ONLY
647
648
649 /// Single-qualifier floating-point aligned vector of 1 component.
650 /// @see gtx_type_aligned
651 GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4);
652
653 /// Single-qualifier floating-point aligned vector of 2 components.
654 /// @see gtx_type_aligned
655 GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8);
656
657 /// Single-qualifier floating-point aligned vector of 3 components.
658 /// @see gtx_type_aligned
659 GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16);
660
661 /// Single-qualifier floating-point aligned vector of 4 components.
662 /// @see gtx_type_aligned
663 GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16);
664
665
666 /// Single-qualifier floating-point aligned vector of 1 component.
667 /// @see gtx_type_aligned
668 GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4);
669
670 /// Single-qualifier floating-point aligned vector of 2 components.
671 /// @see gtx_type_aligned
672 GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8);
673
674 /// Single-qualifier floating-point aligned vector of 3 components.
675 /// @see gtx_type_aligned
676 GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16);
677
678 /// Single-qualifier floating-point aligned vector of 4 components.
679 /// @see gtx_type_aligned
680 GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16);
681
682
683 /// Single-qualifier floating-point aligned vector of 1 component.
684 /// @see gtx_type_aligned
685 GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4);
686
687 /// Single-qualifier floating-point aligned vector of 2 components.
688 /// @see gtx_type_aligned
689 GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8);
690
691 /// Single-qualifier floating-point aligned vector of 3 components.
692 /// @see gtx_type_aligned
693 GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16);
694
695 /// Single-qualifier floating-point aligned vector of 4 components.
696 /// @see gtx_type_aligned
697 GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16);
698
699
700 /// Double-qualifier floating-point aligned vector of 1 component.
701 /// @see gtx_type_aligned
702 GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8);
703
704 /// Double-qualifier floating-point aligned vector of 2 components.
705 /// @see gtx_type_aligned
706 GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16);
707
708 /// Double-qualifier floating-point aligned vector of 3 components.
709 /// @see gtx_type_aligned
710 GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32);
711
712 /// Double-qualifier floating-point aligned vector of 4 components.
713 /// @see gtx_type_aligned
714 GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32);
715
716
717# ifndef GLM_FORCE_SINGLE_ONLY
718
719 /// Double-qualifier floating-point aligned vector of 1 component.
720 /// @see gtx_type_aligned
721 GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8);
722
723 /// Double-qualifier floating-point aligned vector of 2 components.
724 /// @see gtx_type_aligned
725 GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16);
726
727 /// Double-qualifier floating-point aligned vector of 3 components.
728 /// @see gtx_type_aligned
729 GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32);
730
731 /// Double-qualifier floating-point aligned vector of 4 components.
732 /// @see gtx_type_aligned
733 GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32);
734
735# endif//GLM_FORCE_SINGLE_ONLY
736
737 //////////////////////
738 // Float matrix types
739
740 /// Single-qualifier floating-point aligned 1x1 matrix.
741 /// @see gtx_type_aligned
742 //typedef detail::tmat1<f32> mat1;
743
744 /// Single-qualifier floating-point aligned 2x2 matrix.
745 /// @see gtx_type_aligned
746 GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16);
747
748 /// Single-qualifier floating-point aligned 3x3 matrix.
749 /// @see gtx_type_aligned
750 GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16);
751
752 /// Single-qualifier floating-point aligned 4x4 matrix.
753 /// @see gtx_type_aligned
754 GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16);
755
756
757 /// Single-qualifier floating-point aligned 1x1 matrix.
758 /// @see gtx_type_aligned
759 //typedef detail::tmat1x1<f32> mat1;
760
761 /// Single-qualifier floating-point aligned 2x2 matrix.
762 /// @see gtx_type_aligned
763 GLM_ALIGNED_TYPEDEF(mat2x2, aligned_mat2x2, 16);
764
765 /// Single-qualifier floating-point aligned 3x3 matrix.
766 /// @see gtx_type_aligned
767 GLM_ALIGNED_TYPEDEF(mat3x3, aligned_mat3x3, 16);
768
769 /// Single-qualifier floating-point aligned 4x4 matrix.
770 /// @see gtx_type_aligned
771 GLM_ALIGNED_TYPEDEF(mat4x4, aligned_mat4x4, 16);
772
773
774 /// Single-qualifier floating-point aligned 1x1 matrix.
775 /// @see gtx_type_aligned
776 //typedef detail::tmat1x1<f32> fmat1;
777
778 /// Single-qualifier floating-point aligned 2x2 matrix.
779 /// @see gtx_type_aligned
780 GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16);
781
782 /// Single-qualifier floating-point aligned 3x3 matrix.
783 /// @see gtx_type_aligned
784 GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16);
785
786 /// Single-qualifier floating-point aligned 4x4 matrix.
787 /// @see gtx_type_aligned
788 GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16);
789
790
791 /// Single-qualifier floating-point aligned 1x1 matrix.
792 /// @see gtx_type_aligned
793 //typedef f32 fmat1x1;
794
795 /// Single-qualifier floating-point aligned 2x2 matrix.
796 /// @see gtx_type_aligned
797 GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16);
798
799 /// Single-qualifier floating-point aligned 2x3 matrix.
800 /// @see gtx_type_aligned
801 GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16);
802
803 /// Single-qualifier floating-point aligned 2x4 matrix.
804 /// @see gtx_type_aligned
805 GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16);
806
807 /// Single-qualifier floating-point aligned 3x2 matrix.
808 /// @see gtx_type_aligned
809 GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16);
810
811 /// Single-qualifier floating-point aligned 3x3 matrix.
812 /// @see gtx_type_aligned
813 GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16);
814
815 /// Single-qualifier floating-point aligned 3x4 matrix.
816 /// @see gtx_type_aligned
817 GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16);
818
819 /// Single-qualifier floating-point aligned 4x2 matrix.
820 /// @see gtx_type_aligned
821 GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16);
822
823 /// Single-qualifier floating-point aligned 4x3 matrix.
824 /// @see gtx_type_aligned
825 GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16);
826
827 /// Single-qualifier floating-point aligned 4x4 matrix.
828 /// @see gtx_type_aligned
829 GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16);
830
831
832 /// Single-qualifier floating-point aligned 1x1 matrix.
833 /// @see gtx_type_aligned
834 //typedef detail::tmat1x1<f32, defaultp> f32mat1;
835
836 /// Single-qualifier floating-point aligned 2x2 matrix.
837 /// @see gtx_type_aligned
838 GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16);
839
840 /// Single-qualifier floating-point aligned 3x3 matrix.
841 /// @see gtx_type_aligned
842 GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16);
843
844 /// Single-qualifier floating-point aligned 4x4 matrix.
845 /// @see gtx_type_aligned
846 GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16);
847
848
849 /// Single-qualifier floating-point aligned 1x1 matrix.
850 /// @see gtx_type_aligned
851 //typedef f32 f32mat1x1;
852
853 /// Single-qualifier floating-point aligned 2x2 matrix.
854 /// @see gtx_type_aligned
855 GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16);
856
857 /// Single-qualifier floating-point aligned 2x3 matrix.
858 /// @see gtx_type_aligned
859 GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16);
860
861 /// Single-qualifier floating-point aligned 2x4 matrix.
862 /// @see gtx_type_aligned
863 GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16);
864
865 /// Single-qualifier floating-point aligned 3x2 matrix.
866 /// @see gtx_type_aligned
867 GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16);
868
869 /// Single-qualifier floating-point aligned 3x3 matrix.
870 /// @see gtx_type_aligned
871 GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16);
872
873 /// Single-qualifier floating-point aligned 3x4 matrix.
874 /// @see gtx_type_aligned
875 GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16);
876
877 /// Single-qualifier floating-point aligned 4x2 matrix.
878 /// @see gtx_type_aligned
879 GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16);
880
881 /// Single-qualifier floating-point aligned 4x3 matrix.
882 /// @see gtx_type_aligned
883 GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16);
884
885 /// Single-qualifier floating-point aligned 4x4 matrix.
886 /// @see gtx_type_aligned
887 GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16);
888
889
890# ifndef GLM_FORCE_SINGLE_ONLY
891
892 /// Double-qualifier floating-point aligned 1x1 matrix.
893 /// @see gtx_type_aligned
894 //typedef detail::tmat1x1<f64, defaultp> f64mat1;
895
896 /// Double-qualifier floating-point aligned 2x2 matrix.
897 /// @see gtx_type_aligned
898 GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32);
899
900 /// Double-qualifier floating-point aligned 3x3 matrix.
901 /// @see gtx_type_aligned
902 GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32);
903
904 /// Double-qualifier floating-point aligned 4x4 matrix.
905 /// @see gtx_type_aligned
906 GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32);
907
908
909 /// Double-qualifier floating-point aligned 1x1 matrix.
910 /// @see gtx_type_aligned
911 //typedef f64 f64mat1x1;
912
913 /// Double-qualifier floating-point aligned 2x2 matrix.
914 /// @see gtx_type_aligned
915 GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32);
916
917 /// Double-qualifier floating-point aligned 2x3 matrix.
918 /// @see gtx_type_aligned
919 GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32);
920
921 /// Double-qualifier floating-point aligned 2x4 matrix.
922 /// @see gtx_type_aligned
923 GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32);
924
925 /// Double-qualifier floating-point aligned 3x2 matrix.
926 /// @see gtx_type_aligned
927 GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32);
928
929 /// Double-qualifier floating-point aligned 3x3 matrix.
930 /// @see gtx_type_aligned
931 GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32);
932
933 /// Double-qualifier floating-point aligned 3x4 matrix.
934 /// @see gtx_type_aligned
935 GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32);
936
937 /// Double-qualifier floating-point aligned 4x2 matrix.
938 /// @see gtx_type_aligned
939 GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32);
940
941 /// Double-qualifier floating-point aligned 4x3 matrix.
942 /// @see gtx_type_aligned
943 GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32);
944
945 /// Double-qualifier floating-point aligned 4x4 matrix.
946 /// @see gtx_type_aligned
947 GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32);
948
949# endif//GLM_FORCE_SINGLE_ONLY
950
951
952 //////////////////////////
953 // Quaternion types
954
955 /// Single-qualifier floating-point aligned quaternion.
956 /// @see gtx_type_aligned
957 GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16);
958
959 /// Single-qualifier floating-point aligned quaternion.
960 /// @see gtx_type_aligned
961 GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16);
962
963 /// Double-qualifier floating-point aligned quaternion.
964 /// @see gtx_type_aligned
965 GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32);
966
967 /// Single-qualifier floating-point aligned quaternion.
968 /// @see gtx_type_aligned
969 GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16);
970
971# ifndef GLM_FORCE_SINGLE_ONLY
972
973 /// Double-qualifier floating-point aligned quaternion.
974 /// @see gtx_type_aligned
975 GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32);
976
977# endif//GLM_FORCE_SINGLE_ONLY
978
979 /// @}
980}//namespace glm
981
982#include "type_aligned.inl"