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