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 {
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