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