type.hpp
Go to the documentation of this file.
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