00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 #ifndef glm_core_type 00030 #define glm_core_type 00031 00032 #include "type_half.hpp" 00033 #include "type_float.hpp" 00034 #include "type_int.hpp" 00035 00036 #include "type_gentype.hpp" 00037 00038 #include "type_vec1.hpp" 00039 #include "type_vec2.hpp" 00040 #include "type_vec3.hpp" 00041 #include "type_vec4.hpp" 00042 00043 #include "type_mat2x2.hpp" 00044 #include "type_mat2x3.hpp" 00045 #include "type_mat2x4.hpp" 00046 #include "type_mat3x2.hpp" 00047 #include "type_mat3x3.hpp" 00048 #include "type_mat3x4.hpp" 00049 #include "type_mat4x2.hpp" 00050 #include "type_mat4x3.hpp" 00051 #include "type_mat4x4.hpp" 00052 00053 namespace glm 00054 { 00057 00059 // Float definition 00060 00061 #if(defined(GLM_PRECISION_HIGHP_FLOAT)) 00062 typedef highp_vec2 vec2; 00063 typedef highp_vec3 vec3; 00064 typedef highp_vec4 vec4; 00065 typedef highp_mat2x2 mat2x2; 00066 typedef highp_mat2x3 mat2x3; 00067 typedef highp_mat2x4 mat2x4; 00068 typedef highp_mat3x2 mat3x2; 00069 typedef highp_mat3x3 mat3x3; 00070 typedef highp_mat3x4 mat3x4; 00071 typedef highp_mat4x2 mat4x2; 00072 typedef highp_mat4x3 mat4x3; 00073 typedef highp_mat4x4 mat4x4; 00074 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 00075 typedef mediump_vec2 vec2; 00076 typedef mediump_vec3 vec3; 00077 typedef mediump_vec4 vec4; 00078 typedef mediump_mat2x2 mat2x2; 00079 typedef mediump_mat2x3 mat2x3; 00080 typedef mediump_mat2x4 mat2x4; 00081 typedef mediump_mat3x2 mat3x2; 00082 typedef mediump_mat3x3 mat3x3; 00083 typedef mediump_mat3x4 mat3x4; 00084 typedef mediump_mat4x2 mat4x2; 00085 typedef mediump_mat4x3 mat4x3; 00086 typedef mediump_mat4x4 mat4x4; 00087 #elif(defined(GLM_PRECISION_LOWP_FLOAT)) 00088 typedef lowp_vec2 vec2; 00089 typedef lowp_vec3 vec3; 00090 typedef lowp_vec4 vec4; 00091 typedef lowp_mat2x2 mat2x2; 00092 typedef lowp_mat2x3 mat2x3; 00093 typedef lowp_mat2x4 mat2x4; 00094 typedef lowp_mat3x2 mat3x2; 00095 typedef lowp_mat3x3 mat3x3; 00096 typedef lowp_mat3x4 mat3x4; 00097 typedef lowp_mat4x2 mat4x2; 00098 typedef lowp_mat4x3 mat4x3; 00099 typedef lowp_mat4x4 mat4x4; 00100 #else 00101 00102 00103 00104 typedef mediump_vec2 vec2; 00105 00109 typedef mediump_vec3 vec3; 00110 00114 typedef mediump_vec4 vec4; 00115 00119 typedef mediump_mat2x2 mat2x2; 00120 00124 typedef mediump_mat2x3 mat2x3; 00125 00129 typedef mediump_mat2x4 mat2x4; 00130 00134 typedef mediump_mat3x2 mat3x2; 00135 00139 typedef mediump_mat3x3 mat3x3; 00140 00144 typedef mediump_mat3x4 mat3x4; 00145 00149 typedef mediump_mat4x2 mat4x2; 00150 00154 typedef mediump_mat4x3 mat4x3; 00155 00159 typedef mediump_mat4x4 mat4x4; 00160 00161 #endif//GLM_PRECISION 00162 00166 typedef mat2x2 mat2; 00167 00171 typedef mat3x3 mat3; 00172 00176 typedef mat4x4 mat4; 00177 00179 // Signed integer definition 00180 00181 #if(defined(GLM_PRECISION_HIGHP_INT)) 00182 typedef highp_ivec2 ivec2; 00183 typedef highp_ivec3 ivec3; 00184 typedef highp_ivec4 ivec4; 00185 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 00186 typedef mediump_ivec2 ivec2; 00187 typedef mediump_ivec3 ivec3; 00188 typedef mediump_ivec4 ivec4; 00189 #elif(defined(GLM_PRECISION_LOWP_INT)) 00190 typedef lowp_ivec2 ivec2; 00191 typedef lowp_ivec3 ivec3; 00192 typedef lowp_ivec4 ivec4; 00193 #else 00194 00195 00196 00197 typedef mediump_ivec2 ivec2; 00198 00202 typedef mediump_ivec3 ivec3; 00203 00207 typedef mediump_ivec4 ivec4; 00208 #endif//GLM_PRECISION 00209 00211 // Unsigned integer definition 00212 00213 #if(defined(GLM_PRECISION_HIGHP_UINT)) 00214 typedef highp_uvec2 uvec2; 00215 typedef highp_uvec3 uvec3; 00216 typedef highp_uvec4 uvec4; 00217 #elif(defined(GLM_PRECISION_MEDIUMP_UINT)) 00218 typedef mediump_uvec2 uvec2; 00219 typedef mediump_uvec3 uvec3; 00220 typedef mediump_uvec4 uvec4; 00221 #elif(defined(GLM_PRECISION_LOWP_UINT)) 00222 typedef lowp_uvec2 uvec2; 00223 typedef lowp_uvec3 uvec3; 00224 typedef lowp_uvec4 uvec4; 00225 #else 00226 00227 00228 00229 typedef mediump_uvec2 uvec2; 00230 00234 typedef mediump_uvec3 uvec3; 00235 00239 typedef mediump_uvec4 uvec4; 00240 #endif//GLM_PRECISION 00241 00243 // Boolean definition 00244 00248 typedef detail::tvec2<bool> bvec2; 00249 00253 typedef detail::tvec3<bool> bvec3; 00254 00258 typedef detail::tvec4<bool> bvec4; 00259 00261 // Double definition 00262 00266 typedef detail::tvec2<double> dvec2; 00267 00271 typedef detail::tvec3<double> dvec3; 00272 00276 typedef detail::tvec4<double> dvec4; 00277 00281 typedef detail::tmat2x2<double> dmat2; 00282 00286 typedef detail::tmat3x3<double> dmat3; 00287 00291 typedef detail::tmat4x4<double> dmat4; 00292 00296 typedef detail::tmat2x2<double> dmat2x2; 00297 00301 typedef detail::tmat2x3<double> dmat2x3; 00302 00306 typedef detail::tmat2x4<double> dmat2x4; 00307 00311 typedef detail::tmat3x2<double> dmat3x2; 00312 00316 typedef detail::tmat3x3<double> dmat3x3; 00317 00321 typedef detail::tmat3x4<double> dmat3x4; 00322 00326 typedef detail::tmat4x2<double> dmat4x2; 00327 00331 typedef detail::tmat4x3<double> dmat4x3; 00332 00336 typedef detail::tmat4x4<double> dmat4x4; 00337 00339 }//namespace glm 00340 00341 #endif//glm_core_type