00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2008-01-08 00005 // Updated : 2008-01-08 00006 // Licence : This source is under MIT License 00007 // File : glm/core/type.hpp 00009 00010 #ifndef glm_core_type 00011 #define glm_core_type 00012 00013 #include "type_half.hpp" 00014 #include "type_float.hpp" 00015 #include "type_int.hpp" 00016 00017 #include "type_gentype.hpp" 00018 00019 #include "type_vec1.hpp" 00020 #include "type_vec2.hpp" 00021 #include "type_vec3.hpp" 00022 #include "type_vec4.hpp" 00023 00024 #include "type_mat2x2.hpp" 00025 #include "type_mat2x3.hpp" 00026 #include "type_mat2x4.hpp" 00027 #include "type_mat3x2.hpp" 00028 #include "type_mat3x3.hpp" 00029 #include "type_mat3x4.hpp" 00030 #include "type_mat4x2.hpp" 00031 #include "type_mat4x3.hpp" 00032 #include "type_mat4x4.hpp" 00033 00034 namespace glm{ 00035 namespace core{ 00036 namespace type 00037 { 00039 // Float definition 00040 00041 #if(defined(GLM_PRECISION_HIGHP_FLOAT)) 00042 typedef precision::highp_vec2 vec2; 00043 typedef precision::highp_vec3 vec3; 00044 typedef precision::highp_vec4 vec4; 00045 typedef precision::highp_mat2x2 mat2x2; 00046 typedef precision::highp_mat2x3 mat2x3; 00047 typedef precision::highp_mat2x4 mat2x4; 00048 typedef precision::highp_mat3x2 mat3x2; 00049 typedef precision::highp_mat3x3 mat3x3; 00050 typedef precision::highp_mat3x4 mat3x4; 00051 typedef precision::highp_mat4x2 mat4x2; 00052 typedef precision::highp_mat4x3 mat4x3; 00053 typedef precision::highp_mat4x4 mat4x4; 00054 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT)) 00055 typedef precision::mediump_vec2 vec2; 00056 typedef precision::mediump_vec3 vec3; 00057 typedef precision::mediump_vec4 vec4; 00058 typedef precision::mediump_mat2x2 mat2x2; 00059 typedef precision::mediump_mat2x3 mat2x3; 00060 typedef precision::mediump_mat2x4 mat2x4; 00061 typedef precision::mediump_mat3x2 mat3x2; 00062 typedef precision::mediump_mat3x3 mat3x3; 00063 typedef precision::mediump_mat3x4 mat3x4; 00064 typedef precision::mediump_mat4x2 mat4x2; 00065 typedef precision::mediump_mat4x3 mat4x3; 00066 typedef precision::mediump_mat4x4 mat4x4; 00067 #elif(defined(GLM_PRECISION_LOWP_FLOAT)) 00068 typedef precision::lowp_vec2 vec2; 00069 typedef precision::lowp_vec3 vec3; 00070 typedef precision::lowp_vec4 vec4; 00071 typedef precision::lowp_mat2x2 mat2x2; 00072 typedef precision::lowp_mat2x3 mat2x3; 00073 typedef precision::lowp_mat2x4 mat2x4; 00074 typedef precision::lowp_mat3x2 mat3x2; 00075 typedef precision::lowp_mat3x3 mat3x3; 00076 typedef precision::lowp_mat3x4 mat3x4; 00077 typedef precision::lowp_mat4x2 mat4x2; 00078 typedef precision::lowp_mat4x3 mat4x3; 00079 typedef precision::lowp_mat4x4 mat4x4; 00080 #else 00081 00082 00083 00084 typedef precision::mediump_vec2 vec2; 00085 00089 typedef precision::mediump_vec3 vec3; 00090 00094 typedef precision::mediump_vec4 vec4; 00095 00099 typedef precision::mediump_mat2x2 mat2x2; 00100 00104 typedef precision::mediump_mat2x3 mat2x3; 00105 00109 typedef precision::mediump_mat2x4 mat2x4; 00110 00114 typedef precision::mediump_mat3x2 mat3x2; 00115 00119 typedef precision::mediump_mat3x3 mat3x3; 00120 00124 typedef precision::mediump_mat3x4 mat3x4; 00125 00129 typedef precision::mediump_mat4x2 mat4x2; 00130 00134 typedef precision::mediump_mat4x3 mat4x3; 00135 00139 typedef precision::mediump_mat4x4 mat4x4; 00140 00141 #endif//GLM_PRECISION 00142 00146 typedef mat2x2 mat2; 00147 00151 typedef mat3x3 mat3; 00152 00156 typedef mat4x4 mat4; 00157 00159 // Signed integer definition 00160 00161 #if(defined(GLM_PRECISION_HIGHP_INT)) 00162 typedef precision::highp_ivec2 ivec2; 00163 typedef precision::highp_ivec3 ivec3; 00164 typedef precision::highp_ivec4 ivec4; 00165 #elif(defined(GLM_PRECISION_MEDIUMP_INT)) 00166 typedef precision::mediump_ivec2 ivec2; 00167 typedef precision::mediump_ivec3 ivec3; 00168 typedef precision::mediump_ivec4 ivec4; 00169 #elif(defined(GLM_PRECISION_LOWP_INT)) 00170 typedef precision::lowp_ivec2 ivec2; 00171 typedef precision::lowp_ivec3 ivec3; 00172 typedef precision::lowp_ivec4 ivec4; 00173 #else 00174 00175 00176 00177 typedef precision::mediump_ivec2 ivec2; 00178 00182 typedef precision::mediump_ivec3 ivec3; 00183 00187 typedef precision::mediump_ivec4 ivec4; 00188 #endif//GLM_PRECISION 00189 00191 // Unsigned integer definition 00192 00193 #if(defined(GLM_PRECISION_HIGHP_UINT)) 00194 typedef precision::highp_uvec2 uvec2; 00195 typedef precision::highp_uvec3 uvec3; 00196 typedef precision::highp_uvec4 uvec4; 00197 #elif(defined(GLM_PRECISION_MEDIUMP_UINT)) 00198 typedef precision::mediump_uvec2 uvec2; 00199 typedef precision::mediump_uvec3 uvec3; 00200 typedef precision::mediump_uvec4 uvec4; 00201 #elif(defined(GLM_PRECISION_LOWP_UINT)) 00202 typedef precision::lowp_uvec2 uvec2; 00203 typedef precision::lowp_uvec3 uvec3; 00204 typedef precision::lowp_uvec4 uvec4; 00205 #else 00206 00207 00208 00209 typedef precision::mediump_uvec2 uvec2; 00210 00214 typedef precision::mediump_uvec3 uvec3; 00215 00219 typedef precision::mediump_uvec4 uvec4; 00220 #endif//GLM_PRECISION 00221 00223 // Boolean definition 00224 00228 typedef detail::tvec2<bool> bvec2; 00229 00233 typedef detail::tvec3<bool> bvec3; 00234 00238 typedef detail::tvec4<bool> bvec4; 00239 00241 // Double definition 00242 00246 typedef detail::tvec2<double> dvec2; 00247 00251 typedef detail::tvec3<double> dvec3; 00252 00256 typedef detail::tvec4<double> dvec4; 00257 00261 typedef detail::tmat2x2<double> dmat2; 00262 00266 typedef detail::tmat3x3<double> dmat3; 00267 00271 typedef detail::tmat4x4<double> dmat4; 00272 00276 typedef detail::tmat2x2<double> dmat2x2; 00277 00281 typedef detail::tmat2x3<double> dmat2x3; 00282 00286 typedef detail::tmat2x4<double> dmat2x4; 00287 00291 typedef detail::tmat3x2<double> dmat3x2; 00292 00296 typedef detail::tmat3x3<double> dmat3x3; 00297 00301 typedef detail::tmat3x4<double> dmat3x4; 00302 00306 typedef detail::tmat4x2<double> dmat4x2; 00307 00311 typedef detail::tmat4x3<double> dmat4x3; 00312 00316 typedef detail::tmat4x4<double> dmat4x4; 00317 00318 }//namespace type 00319 }//namespace core 00320 }//namespace glm 00321 00322 #endif//glm_core_type