type_precision.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 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 #ifndef GLM_GTC_type_precision
00044 #define GLM_GTC_type_precision GLM_VERSION
00045 
00046 // Dependency:
00047 #include "../glm.hpp"
00048 #include "../gtc/half_float.hpp"
00049 #include "../gtc/quaternion.hpp"
00050 
00051 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00052 #       pragma message("GLM: GLM_GTC_type_precision extension included")
00053 #endif
00054 
00055 namespace glm
00056 {
00058         // Signed int vector types 
00059 
00062 
00063         typedef detail::int8                                            int8;         
00064         typedef detail::int16                                           int16;        
00065         typedef detail::int32                                           int32;        
00066         typedef detail::int64                                           int64;        
00067 
00068         typedef detail::int8                                            int8_t;         
00069         typedef detail::int16                                           int16_t;        
00070         typedef detail::int32                                           int32_t;        
00071         typedef detail::int64                                           int64_t;        
00072 
00073         typedef int8                                                            i8;         
00074         typedef int16                                                           i16;        
00075         typedef int32                                                           i32;        
00076         typedef int64                                                           i64;        
00077 
00078         typedef detail::tvec1<i8>                                       i8vec1;         
00079         typedef detail::tvec2<i8>                                       i8vec2;     
00080         typedef detail::tvec3<i8>                                       i8vec3;     
00081         typedef detail::tvec4<i8>                                       i8vec4;     
00082 
00083         typedef detail::tvec1<i16>                                      i16vec1;        
00084         typedef detail::tvec2<i16>                                      i16vec2;    
00085         typedef detail::tvec3<i16>                                      i16vec3;    
00086         typedef detail::tvec4<i16>                                      i16vec4;    
00087 
00088         typedef detail::tvec1<i32>                                      i32vec1;        
00089         typedef detail::tvec2<i32>                                      i32vec2;    
00090         typedef detail::tvec3<i32>                                      i32vec3;    
00091         typedef detail::tvec4<i32>                                      i32vec4;    
00092 
00093         typedef detail::tvec1<i64>                                      i64vec1;        
00094         typedef detail::tvec2<i64>                                      i64vec2;    
00095         typedef detail::tvec3<i64>                                      i64vec3;    
00096         typedef detail::tvec4<i64>                                      i64vec4;    
00097 
00099         // Unsigned int vector types 
00100 
00101         typedef detail::uint8                                           uint8;         
00102         typedef detail::uint16                                          uint16;        
00103         typedef detail::uint32                                          uint32;        
00104         typedef detail::uint64                                          uint64;        
00105 
00106         typedef detail::uint8                                           uint8_t;         
00107         typedef detail::uint16                                          uint16_t;        
00108         typedef detail::uint32                                          uint32_t;        
00109         typedef detail::uint64                                          uint64_t;        
00110 
00111         typedef uint8                                                           u8;         
00112         typedef uint16                                                          u16;        
00113         typedef uint32                                                          u32;        
00114         typedef uint64                                                          u64;        
00115 
00116         typedef detail::tvec1<u8>                                       u8vec1;         
00117         typedef detail::tvec2<u8>                                       u8vec2;     
00118         typedef detail::tvec3<u8>                                       u8vec3;     
00119         typedef detail::tvec4<u8>                                       u8vec4;     
00120 
00121         typedef detail::tvec1<u16>                                      u16vec1;    
00122         typedef detail::tvec2<u16>                                      u16vec2;    
00123         typedef detail::tvec3<u16>                                      u16vec3;    
00124         typedef detail::tvec4<u16>                                      u16vec4;    
00125 
00126         typedef detail::tvec1<u32>                                      u32vec1;    
00127         typedef detail::tvec2<u32>                                      u32vec2;    
00128         typedef detail::tvec3<u32>                                      u32vec3;    
00129         typedef detail::tvec4<u32>                                      u32vec4;    
00130 
00131         typedef detail::tvec1<u64>                                      u64vec1;    
00132         typedef detail::tvec2<u64>                                      u64vec2;    
00133         typedef detail::tvec3<u64>                                      u64vec3;    
00134         typedef detail::tvec4<u64>                                      u64vec4;    
00135 
00137         // Float vector types 
00138 
00139         typedef detail::float16                                         float16;        
00140         typedef detail::float32                                         float32;        
00141         typedef detail::float64                                         float64;        
00142 
00143         typedef detail::float16                                         float16_t;      
00144         typedef detail::float32                                         float32_t;      
00145         typedef detail::float64                                         float64_t;      
00146 
00147         typedef float16                                                         f16;        
00148         typedef float32                                                         f32;        
00149         typedef float64                                                         f64;        
00150 
00151         typedef detail::tvec2<float>                            fvec2;          
00152         typedef detail::tvec3<float>                            fvec3;          
00153         typedef detail::tvec4<float>                            fvec4;          
00154 
00155         typedef detail::tvec1<f16>                                      f16vec1;    
00156         typedef detail::tvec2<f16>                                      f16vec2;    
00157         typedef detail::tvec3<f16>                                      f16vec3;    
00158         typedef detail::tvec4<f16>                                      f16vec4;    
00159 
00160         typedef detail::tvec1<f32>                                      f32vec1;    
00161         typedef detail::tvec2<f32>                                      f32vec2;    
00162         typedef detail::tvec3<f32>                                      f32vec3;    
00163         typedef detail::tvec4<f32>                                      f32vec4;    
00164 
00165         typedef detail::tvec1<f64>                                      f64vec1;    
00166         typedef detail::tvec2<f64>                                      f64vec2;    
00167         typedef detail::tvec3<f64>                                      f64vec3;    
00168         typedef detail::tvec4<f64>                                      f64vec4;    
00169 
00171         // Float matrix types 
00172 
00173         //typedef f32                                                                   fmat1;  //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00174         typedef detail::tmat2x2<f32>                            fmat2;  
00175         typedef detail::tmat3x3<f32>                            fmat3;  
00176         typedef detail::tmat4x4<f32>                            fmat4;  
00177 
00178         //typedef f32                                                                   fmat1x1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00179         typedef detail::tmat2x2<f32>                            fmat2x2;  
00180         typedef detail::tmat2x3<f32>                            fmat2x3;        
00181         typedef detail::tmat2x4<f32>                            fmat2x4;        
00182         typedef detail::tmat3x2<f32>                            fmat3x2;        
00183         typedef detail::tmat3x3<f32>                            fmat3x3;        
00184         typedef detail::tmat3x4<f32>                            fmat3x4;        
00185         typedef detail::tmat4x2<f32>                            fmat4x2;        
00186         typedef detail::tmat4x3<f32>                            fmat4x3;        
00187         typedef detail::tmat4x4<f32>                            fmat4x4;        
00188 
00189         //typedef f16                                                                   f16mat1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00190         typedef detail::tmat2x2<f16>                            f16mat2;        
00191         typedef detail::tmat3x3<f16>                            f16mat3;        
00192         typedef detail::tmat4x4<f16>                            f16mat4;        
00193 
00194         //typedef f16                                                                   f16mat1x1;      //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00195         typedef detail::tmat2x2<f16>                            f16mat2x2;      
00196         typedef detail::tmat2x3<f16>                            f16mat2x3;      
00197         typedef detail::tmat2x4<f16>                            f16mat2x4;      
00198         typedef detail::tmat3x2<f16>                            f16mat3x2;      
00199         typedef detail::tmat3x3<f16>                            f16mat3x3;      
00200         typedef detail::tmat3x4<f16>                            f16mat3x4;      
00201         typedef detail::tmat4x2<f16>                            f16mat4x2;      
00202         typedef detail::tmat4x3<f16>                            f16mat4x3;      
00203         typedef detail::tmat4x4<f16>                            f16mat4x4;      
00204 
00205         //typedef f32                                                                   f32mat1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00206         typedef detail::tmat2x2<f32>                            f32mat2;        
00207         typedef detail::tmat3x3<f32>                            f32mat3;        
00208         typedef detail::tmat4x4<f32>                            f32mat4;        
00209 
00210         //typedef f32                                                                   f32mat1x1;      //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00211         typedef detail::tmat2x2<f32>                            f32mat2x2;  
00212         typedef detail::tmat2x3<f32>                            f32mat2x3;      
00213         typedef detail::tmat2x4<f32>                            f32mat2x4;      
00214         typedef detail::tmat3x2<f32>                            f32mat3x2;      
00215         typedef detail::tmat3x3<f32>                            f32mat3x3;      
00216         typedef detail::tmat3x4<f32>                            f32mat3x4;      
00217         typedef detail::tmat4x2<f32>                            f32mat4x2;      
00218         typedef detail::tmat4x3<f32>                            f32mat4x3;      
00219         typedef detail::tmat4x4<f32>                            f32mat4x4;      
00220 
00221         //typedef f64                                                                   f64mat1;        //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00222         typedef detail::tmat2x2<f64>                            f64mat2;        
00223         typedef detail::tmat3x3<f64>                            f64mat3;        
00224         typedef detail::tmat4x4<f64>                            f64mat4;        
00225 
00226         //typedef f64                                                                   f64mat1x1;      //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00227         typedef detail::tmat2x2<f64>                            f64mat2x2;      
00228         typedef detail::tmat2x3<f64>                            f64mat2x3;      
00229         typedef detail::tmat2x4<f64>                            f64mat2x4;      
00230         typedef detail::tmat3x2<f64>                            f64mat3x2;      
00231         typedef detail::tmat3x3<f64>                            f64mat3x3;      
00232         typedef detail::tmat3x4<f64>                            f64mat3x4;      
00233         typedef detail::tmat4x2<f64>                            f64mat4x2;      
00234         typedef detail::tmat4x3<f64>                            f64mat4x3;      
00235         typedef detail::tmat4x4<f64>                            f64mat4x4;      
00236 
00238         // Float quaternion types 
00239 
00240         typedef detail::tquat<f16>                                      f16quat;    
00241         typedef detail::tquat<f32>                                      f32quat;    
00242         typedef detail::tquat<f64>                                      f64quat;    
00243 
00245 }//namespace glm
00246 
00247 #include "type_precision.inl"
00248 
00249 #endif//GLM_GTC_type_precision