type.hpp
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 #ifndef glm_core_type
30 #define glm_core_type
31 
32 #include "type_half.hpp"
33 #include "type_float.hpp"
34 #include "type_int.hpp"
35 
36 #include "type_gentype.hpp"
37 
38 #include "type_vec1.hpp"
39 #include "type_vec2.hpp"
40 #include "type_vec3.hpp"
41 #include "type_vec4.hpp"
42 
43 #include "type_mat2x2.hpp"
44 #include "type_mat2x3.hpp"
45 #include "type_mat2x4.hpp"
46 #include "type_mat3x2.hpp"
47 #include "type_mat3x3.hpp"
48 #include "type_mat3x4.hpp"
49 #include "type_mat4x2.hpp"
50 #include "type_mat4x3.hpp"
51 #include "type_mat4x4.hpp"
52 
53 namespace glm
54 {
57 
59  // Float definition
60 
61 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
62  typedef highp_vec2 vec2;
63  typedef highp_vec3 vec3;
64  typedef highp_vec4 vec4;
65  typedef highp_mat2x2 mat2x2;
66  typedef highp_mat2x3 mat2x3;
67  typedef highp_mat2x4 mat2x4;
68  typedef highp_mat3x2 mat3x2;
69  typedef highp_mat3x3 mat3x3;
70  typedef highp_mat3x4 mat3x4;
71  typedef highp_mat4x2 mat4x2;
72  typedef highp_mat4x3 mat4x3;
73  typedef highp_mat4x4 mat4x4;
74 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
75  typedef mediump_vec2 vec2;
76  typedef mediump_vec3 vec3;
77  typedef mediump_vec4 vec4;
78  typedef mediump_mat2x2 mat2x2;
79  typedef mediump_mat2x3 mat2x3;
80  typedef mediump_mat2x4 mat2x4;
81  typedef mediump_mat3x2 mat3x2;
82  typedef mediump_mat3x3 mat3x3;
83  typedef mediump_mat3x4 mat3x4;
84  typedef mediump_mat4x2 mat4x2;
85  typedef mediump_mat4x3 mat4x3;
86  typedef mediump_mat4x4 mat4x4;
87 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
88  typedef lowp_vec2 vec2;
89  typedef lowp_vec3 vec3;
90  typedef lowp_vec4 vec4;
91  typedef lowp_mat2x2 mat2x2;
92  typedef lowp_mat2x3 mat2x3;
93  typedef lowp_mat2x4 mat2x4;
94  typedef lowp_mat3x2 mat3x2;
95  typedef lowp_mat3x3 mat3x3;
96  typedef lowp_mat3x4 mat3x4;
97  typedef lowp_mat4x2 mat4x2;
98  typedef lowp_mat4x3 mat4x3;
99  typedef lowp_mat4x4 mat4x4;
100 #else
101 
102 
103 
105 
110 
115 
120 
125 
130 
135 
139  typedef mediump_mat3x3 mat3x3;
140 
145 
150 
155 
159  typedef mediump_mat4x4 mat4x4;
160 
161 #endif//GLM_PRECISION
162 
166  typedef mat2x2 mat2;
167 
171  typedef mat3x3 mat3;
172 
176  typedef mat4x4 mat4;
177 
179  // Signed integer definition
180 
181 #if(defined(GLM_PRECISION_HIGHP_INT))
182  typedef highp_ivec2 ivec2;
183  typedef highp_ivec3 ivec3;
184  typedef highp_ivec4 ivec4;
185 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
186  typedef mediump_ivec2 ivec2;
187  typedef mediump_ivec3 ivec3;
188  typedef mediump_ivec4 ivec4;
189 #elif(defined(GLM_PRECISION_LOWP_INT))
190  typedef lowp_ivec2 ivec2;
191  typedef lowp_ivec3 ivec3;
192  typedef lowp_ivec4 ivec4;
193 #else
194 
195 
196 
198 
203 
208 #endif//GLM_PRECISION
209 
211  // Unsigned integer definition
212 
213 #if(defined(GLM_PRECISION_HIGHP_UINT))
214  typedef highp_uvec2 uvec2;
215  typedef highp_uvec3 uvec3;
216  typedef highp_uvec4 uvec4;
217 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
218  typedef mediump_uvec2 uvec2;
219  typedef mediump_uvec3 uvec3;
220  typedef mediump_uvec4 uvec4;
221 #elif(defined(GLM_PRECISION_LOWP_UINT))
222  typedef lowp_uvec2 uvec2;
223  typedef lowp_uvec3 uvec3;
224  typedef lowp_uvec4 uvec4;
225 #else
226 
227 
228 
230 
235 
240 #endif//GLM_PRECISION
241 
243  // Boolean definition
244 
248  typedef detail::tvec2<bool> bvec2;
249 
253  typedef detail::tvec3<bool> bvec3;
254 
258  typedef detail::tvec4<bool> bvec4;
259 
261  // Double definition
262 
266  typedef detail::tvec2<double> dvec2;
267 
271  typedef detail::tvec3<double> dvec3;
272 
276  typedef detail::tvec4<double> dvec4;
277 
281  typedef detail::tmat2x2<double> dmat2;
282 
286  typedef detail::tmat3x3<double> dmat3;
287 
291  typedef detail::tmat4x4<double> dmat4;
292 
296  typedef detail::tmat2x2<double> dmat2x2;
297 
301  typedef detail::tmat2x3<double> dmat2x3;
302 
306  typedef detail::tmat2x4<double> dmat2x4;
307 
311  typedef detail::tmat3x2<double> dmat3x2;
312 
316  typedef detail::tmat3x3<double> dmat3x3;
317 
321  typedef detail::tmat3x4<double> dmat3x4;
322 
326  typedef detail::tmat4x2<double> dmat4x2;
327 
331  typedef detail::tmat4x3<double> dmat4x3;
332 
336  typedef detail::tmat4x4<double> dmat4x4;
337 
339 }//namespace glm
340 
341 #endif//glm_core_type