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 100
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 int8                                                            i8;         
00069         typedef int16                                                           i16;        
00070         typedef int32                                                           i32;        
00071         typedef int64                                                           i64;        
00072 
00073         //typedef i8                                                                    i8vec1;         //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)
00074         typedef detail::tvec2<i8>                                       i8vec2;     
00075         typedef detail::tvec3<i8>                                       i8vec3;     
00076         typedef detail::tvec4<i8>                                       i8vec4;     
00077 
00078         //typedef i16                                                                   i16vec1;        //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)
00079         typedef detail::tvec2<i16>                                      i16vec2;    
00080         typedef detail::tvec3<i16>                                      i16vec3;    
00081         typedef detail::tvec4<i16>                                      i16vec4;    
00082 
00083         //typedef i32                                                                   i32vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
00084         typedef detail::tvec2<i32>                                      i32vec2;    
00085         typedef detail::tvec3<i32>                                      i32vec3;    
00086         typedef detail::tvec4<i32>                                      i32vec4;    
00087 
00088         //typedef i64                                                                   i64vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
00089         typedef detail::tvec2<i64>                                      i64vec2;    
00090         typedef detail::tvec3<i64>                                      i64vec3;    
00091         typedef detail::tvec4<i64>                                      i64vec4;    
00092 
00094         // Unsigned int vector types 
00095 
00096         typedef detail::uint8                                           uint8;         
00097         typedef detail::uint16                                          uint16;        
00098         typedef detail::uint32                                          uint32;        
00099         typedef detail::uint64                                          uint64;        
00100 
00101         typedef uint8                                                           u8;         
00102         typedef uint16                                                          u16;        
00103         typedef uint32                                                          u32;        
00104         typedef uint64                                                          u64;        
00105 
00106         //typedef u8                                                                    u8vec1;         //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00107         typedef detail::tvec2<u8>                                       u8vec2;     
00108         typedef detail::tvec3<u8>                                       u8vec3;     
00109         typedef detail::tvec4<u8>                                       u8vec4;     
00110 
00111         //typedef u16                                                                   u16vec1;    //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00112         typedef detail::tvec2<u16>                                      u16vec2;    
00113         typedef detail::tvec3<u16>                                      u16vec3;    
00114         typedef detail::tvec4<u16>                                      u16vec4;    
00115 
00116         //typedef u32                                                                   u32vec1;    //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00117         typedef detail::tvec2<u32>                                      u32vec2;    
00118         typedef detail::tvec3<u32>                                      u32vec3;    
00119         typedef detail::tvec4<u32>                                      u32vec4;    
00120 
00121         //typedef u64                                                                   u64vec1;    //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00122         typedef detail::tvec2<u64>                                      u64vec2;    
00123         typedef detail::tvec3<u64>                                      u64vec3;    
00124         typedef detail::tvec4<u64>                                      u64vec4;    
00125 
00127         // Float vector types 
00128 
00129         typedef detail::float16                                         float16;        
00130         typedef detail::float32                                         float32;        
00131         typedef detail::float64                                         float64;        
00132 
00133         typedef float16                                                         f16;        
00134         typedef float32                                                         f32;        
00135         typedef float64                                                         f64;        
00136 
00137         typedef detail::tvec2<float>                            fvec2;          
00138         typedef detail::tvec3<float>                            fvec3;          
00139         typedef detail::tvec4<float>                            fvec4;          
00140 
00141         //typedef f16                                                                   f16vec1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00142         typedef detail::tvec2<f16>                                      f16vec2;    
00143         typedef detail::tvec3<f16>                                      f16vec3;    
00144         typedef detail::tvec4<f16>                                      f16vec4;    
00145 
00146         //typedef f32                                                                   f32vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00147         typedef detail::tvec2<f32>                                      f32vec2;    
00148         typedef detail::tvec3<f32>                                      f32vec3;    
00149         typedef detail::tvec4<f32>                                      f32vec4;    
00150 
00151         //typedef f64                                                                   f64vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00152         typedef detail::tvec2<f64>                                      f64vec2;    
00153         typedef detail::tvec3<f64>                                      f64vec3;    
00154         typedef detail::tvec4<f64>                                      f64vec4;    
00155 
00157         // Float matrix types 
00158 
00159         //typedef f32                                                                   fmat1;  //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00160         typedef detail::tmat2x2<f32>                            fmat2;  
00161         typedef detail::tmat3x3<f32>                            fmat3;  
00162         typedef detail::tmat4x4<f32>                            fmat4;  
00163 
00164         //typedef f32                                                                   fmat1x1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00165         typedef detail::tmat2x2<f32>                            fmat2x2;  
00166         typedef detail::tmat2x3<f32>                            fmat2x3;        
00167         typedef detail::tmat2x4<f32>                            fmat2x4;        
00168         typedef detail::tmat3x2<f32>                            fmat3x2;        
00169         typedef detail::tmat3x3<f32>                            fmat3x3;        
00170         typedef detail::tmat3x4<f32>                            fmat3x4;        
00171         typedef detail::tmat4x2<f32>                            fmat4x2;        
00172         typedef detail::tmat4x3<f32>                            fmat4x3;        
00173         typedef detail::tmat4x4<f32>                            fmat4x4;        
00174 
00175         //typedef f16                                                                   f16mat1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00176         typedef detail::tmat2x2<f16>                            f16mat2;        
00177         typedef detail::tmat3x3<f16>                            f16mat3;        
00178         typedef detail::tmat4x4<f16>                            f16mat4;        
00179 
00180         //typedef f16                                                                   f16mat1x1;      //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00181         typedef detail::tmat2x2<f16>                            f16mat2x2;      
00182         typedef detail::tmat2x3<f16>                            f16mat2x3;      
00183         typedef detail::tmat2x4<f16>                            f16mat2x4;      
00184         typedef detail::tmat3x2<f16>                            f16mat3x2;      
00185         typedef detail::tmat3x3<f16>                            f16mat3x3;      
00186         typedef detail::tmat3x4<f16>                            f16mat3x4;      
00187         typedef detail::tmat4x2<f16>                            f16mat4x2;      
00188         typedef detail::tmat4x3<f16>                            f16mat4x3;      
00189         typedef detail::tmat4x4<f16>                            f16mat4x4;      
00190 
00191         //typedef f32                                                                   f32mat1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00192         typedef detail::tmat2x2<f32>                            f32mat2;        
00193         typedef detail::tmat3x3<f32>                            f32mat3;        
00194         typedef detail::tmat4x4<f32>                            f32mat4;        
00195 
00196         //typedef f32                                                                   f32mat1x1;      //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00197         typedef detail::tmat2x2<f32>                            f32mat2x2;  
00198         typedef detail::tmat2x3<f32>                            f32mat2x3;      
00199         typedef detail::tmat2x4<f32>                            f32mat2x4;      
00200         typedef detail::tmat3x2<f32>                            f32mat3x2;      
00201         typedef detail::tmat3x3<f32>                            f32mat3x3;      
00202         typedef detail::tmat3x4<f32>                            f32mat3x4;      
00203         typedef detail::tmat4x2<f32>                            f32mat4x2;      
00204         typedef detail::tmat4x3<f32>                            f32mat4x3;      
00205         typedef detail::tmat4x4<f32>                            f32mat4x4;      
00206 
00207         //typedef f64                                                                   f64mat1;        //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00208         typedef detail::tmat2x2<f64>                            f64mat2;        
00209         typedef detail::tmat3x3<f64>                            f64mat3;        
00210         typedef detail::tmat4x4<f64>                            f64mat4;        
00211 
00212         //typedef f64                                                                   f64mat1x1;      //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00213         typedef detail::tmat2x2<f64>                            f64mat2x2;      
00214         typedef detail::tmat2x3<f64>                            f64mat2x3;      
00215         typedef detail::tmat2x4<f64>                            f64mat2x4;      
00216         typedef detail::tmat3x2<f64>                            f64mat3x2;      
00217         typedef detail::tmat3x3<f64>                            f64mat3x3;      
00218         typedef detail::tmat3x4<f64>                            f64mat3x4;      
00219         typedef detail::tmat4x2<f64>                            f64mat4x2;      
00220         typedef detail::tmat4x3<f64>                            f64mat4x3;      
00221         typedef detail::tmat4x4<f64>                            f64mat4x4;      
00222 
00224         // Float quaternion types 
00225 
00226         typedef detail::tquat<f16>                                      f16quat;    
00227         typedef detail::tquat<f32>                                      f32quat;    
00228         typedef detail::tquat<f64>                                      f64quat;    
00229 
00231 }//namespace glm
00232 
00233 #include "type_precision.inl"
00234 
00235 #endif//GLM_GTC_type_precision