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 { 00056 // Float definition 00057 00058 #if(defined(GLM_PRECISION_HIGHP_FLOAT)) 00059 typedef highp_vec2 vec2; 00060 typedef highp_vec3 vec3; 00061 typedef highp_vec4 vec4; 00062 typedef highp_mat2x2 mat2x2; 00063 typedef highp_mat2x3 mat2x3; 00064 typedef highp_mat2x4 mat2x4; 00065 typedef highp_mat3x2 mat3x2; 00066 typedef highp_mat3x3 mat3x3; 00067 typedef highp_mat3x4 mat3x4; 00068 typedef highp_mat4x2 mat4x2; 00069 typedef highp_mat4x3 mat4x3; 00070 typedef highp_mat4x4 mat4x4; 00071 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 00072 typedef mediump_vec2 vec2; 00073 typedef mediump_vec3 vec3; 00074 typedef mediump_vec4 vec4; 00075 typedef mediump_mat2x2 mat2x2; 00076 typedef mediump_mat2x3 mat2x3; 00077 typedef mediump_mat2x4 mat2x4; 00078 typedef mediump_mat3x2 mat3x2; 00079 typedef mediump_mat3x3 mat3x3; 00080 typedef mediump_mat3x4 mat3x4; 00081 typedef mediump_mat4x2 mat4x2; 00082 typedef mediump_mat4x3 mat4x3; 00083 typedef mediump_mat4x4 mat4x4; 00084 #elif(defined(GLM_PRECISION_LOWP_FLOAT)) 00085 typedef lowp_vec2 vec2; 00086 typedef lowp_vec3 vec3; 00087 typedef lowp_vec4 vec4; 00088 typedef lowp_mat2x2 mat2x2; 00089 typedef lowp_mat2x3 mat2x3; 00090 typedef lowp_mat2x4 mat2x4; 00091 typedef lowp_mat3x2 mat3x2; 00092 typedef lowp_mat3x3 mat3x3; 00093 typedef lowp_mat3x4 mat3x4; 00094 typedef lowp_mat4x2 mat4x2; 00095 typedef lowp_mat4x3 mat4x3; 00096 typedef lowp_mat4x4 mat4x4; 00097 #else 00098 00099 00100 00101 typedef mediump_vec2 vec2; 00102 00106 typedef mediump_vec3 vec3; 00107 00111 typedef mediump_vec4 vec4; 00112 00116 typedef mediump_mat2x2 mat2x2; 00117 00121 typedef mediump_mat2x3 mat2x3; 00122 00126 typedef mediump_mat2x4 mat2x4; 00127 00131 typedef mediump_mat3x2 mat3x2; 00132 00136 typedef mediump_mat3x3 mat3x3; 00137 00141 typedef mediump_mat3x4 mat3x4; 00142 00146 typedef mediump_mat4x2 mat4x2; 00147 00151 typedef mediump_mat4x3 mat4x3; 00152 00156 typedef mediump_mat4x4 mat4x4; 00157 00158 #endif//GLM_PRECISION 00159 00163 typedef mat2x2 mat2; 00164 00168 typedef mat3x3 mat3; 00169 00173 typedef mat4x4 mat4; 00174 00176 // Signed integer definition 00177 00178 #if(defined(GLM_PRECISION_HIGHP_INT)) 00179 typedef highp_ivec2 ivec2; 00180 typedef highp_ivec3 ivec3; 00181 typedef highp_ivec4 ivec4; 00182 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 00183 typedef mediump_ivec2 ivec2; 00184 typedef mediump_ivec3 ivec3; 00185 typedef mediump_ivec4 ivec4; 00186 #elif(defined(GLM_PRECISION_LOWP_INT)) 00187 typedef lowp_ivec2 ivec2; 00188 typedef lowp_ivec3 ivec3; 00189 typedef lowp_ivec4 ivec4; 00190 #else 00191 00192 00193 00194 typedef mediump_ivec2 ivec2; 00195 00199 typedef mediump_ivec3 ivec3; 00200 00204 typedef mediump_ivec4 ivec4; 00205 #endif//GLM_PRECISION 00206 00208 // Unsigned integer definition 00209 00210 #if(defined(GLM_PRECISION_HIGHP_UINT)) 00211 typedef highp_uvec2 uvec2; 00212 typedef highp_uvec3 uvec3; 00213 typedef highp_uvec4 uvec4; 00214 #elif(defined(GLM_PRECISION_MEDIUMP_UINT)) 00215 typedef mediump_uvec2 uvec2; 00216 typedef mediump_uvec3 uvec3; 00217 typedef mediump_uvec4 uvec4; 00218 #elif(defined(GLM_PRECISION_LOWP_UINT)) 00219 typedef lowp_uvec2 uvec2; 00220 typedef lowp_uvec3 uvec3; 00221 typedef lowp_uvec4 uvec4; 00222 #else 00223 00224 00225 00226 typedef mediump_uvec2 uvec2; 00227 00231 typedef mediump_uvec3 uvec3; 00232 00236 typedef mediump_uvec4 uvec4; 00237 #endif//GLM_PRECISION 00238 00240 // Boolean definition 00241 00245 typedef detail::tvec2<bool> bvec2; 00246 00250 typedef detail::tvec3<bool> bvec3; 00251 00255 typedef detail::tvec4<bool> bvec4; 00256 00258 // Double definition 00259 00263 typedef detail::tvec2<double> dvec2; 00264 00268 typedef detail::tvec3<double> dvec3; 00269 00273 typedef detail::tvec4<double> dvec4; 00274 00278 typedef detail::tmat2x2<double> dmat2; 00279 00283 typedef detail::tmat3x3<double> dmat3; 00284 00288 typedef detail::tmat4x4<double> dmat4; 00289 00293 typedef detail::tmat2x2<double> dmat2x2; 00294 00298 typedef detail::tmat2x3<double> dmat2x3; 00299 00303 typedef detail::tmat2x4<double> dmat2x4; 00304 00308 typedef detail::tmat3x2<double> dmat3x2; 00309 00313 typedef detail::tmat3x3<double> dmat3x3; 00314 00318 typedef detail::tmat3x4<double> dmat3x4; 00319 00323 typedef detail::tmat4x2<double> dmat4x2; 00324 00328 typedef detail::tmat4x3<double> dmat4x3; 00329 00333 typedef detail::tmat4x4<double> dmat4x4; 00334 00335 }//namespace glm 00336 00337 #endif//glm_core_type