GLM Version 0.9.0

type_precision.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2009-06-04
00005 // Updated : 2009-06-04
00006 // Licence : This source is under MIT License
00007 // File    : glm/gtc/type_precision.hpp
00009 // Dependency:
00010 // - GLM core
00011 // - GLM_GTC_half
00012 // - GLM_GTC_double
00013 // - GLM_GTC_quaternion
00015 
00016 #ifndef glm_gtc_type_precision
00017 #define glm_gtc_type_precision
00018 
00019 // Dependency:
00020 #include "../glm.hpp"
00021 #include "../gtc/half_float.hpp"
00022 #include "../gtc/double_float.hpp"
00023 #include "../gtc/quaternion.hpp"
00024 
00025 namespace glm
00026 {
00027         namespace test{
00028                 bool main_gtc_type_precision();
00029         }//namespace test
00030 
00031         namespace gtc{
00033         namespace type_precision
00034         {
00036                 // Dependences
00037 
00038                 using namespace gtc::half_float;
00039                 using namespace gtc::double_float;
00040                 using namespace gtc::quaternion;
00041 
00043                 // Signed int vector types 
00044 
00045                 typedef detail::int8                                            int8;         
00046                 typedef detail::int16                                           int16;        
00047                 typedef detail::int32                                           int32;        
00048                 typedef detail::int64                                           int64;        
00049 
00050                 typedef int8                                                            i8;         
00051                 typedef int16                                                           i16;        
00052                 typedef int32                                                           i32;        
00053                 typedef int64                                                           i64;        
00054 
00055                 //typedef i8                                                                    i8vec1;         //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)
00056                 typedef detail::tvec2<i8>                                       i8vec2;     
00057                 typedef detail::tvec3<i8>                                       i8vec3;     
00058                 typedef detail::tvec4<i8>                                       i8vec4;     
00059 
00060                 //typedef i16                                                                   i16vec1;        //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)
00061                 typedef detail::tvec2<i16>                                      i16vec2;    
00062                 typedef detail::tvec3<i16>                                      i16vec3;    
00063                 typedef detail::tvec4<i16>                                      i16vec4;    
00064 
00065                 //typedef i32                                                                   i32vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
00066                 typedef detail::tvec2<i32>                                      i32vec2;    
00067                 typedef detail::tvec3<i32>                                      i32vec3;    
00068                 typedef detail::tvec4<i32>                                      i32vec4;    
00069 
00070                 //typedef i64                                                                   i64vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
00071                 typedef detail::tvec2<i64>                                      i64vec2;    
00072                 typedef detail::tvec3<i64>                                      i64vec3;    
00073                 typedef detail::tvec4<i64>                                      i64vec4;    
00074 
00076                 // Unsigned int vector types 
00077 
00078                 typedef detail::uint8                                           uint8;         
00079                 typedef detail::uint16                                          uint16;        
00080                 typedef detail::uint32                                          uint32;        
00081                 typedef detail::uint64                                          uint64;        
00082 
00083                 typedef uint8                                                           u8;         
00084                 typedef uint16                                                          u16;        
00085                 typedef uint32                                                          u32;        
00086                 typedef uint64                                                          u64;        
00087 
00088                 //typedef u8                                                                    u8vec1;         //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00089                 typedef detail::tvec2<u8>                                       u8vec2;     
00090                 typedef detail::tvec3<u8>                                       u8vec3;     
00091                 typedef detail::tvec4<u8>                                       u8vec4;     
00092 
00093                 //typedef u16                                                                   u16vec1;    //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00094                 typedef detail::tvec2<u16>                                      u16vec2;    
00095                 typedef detail::tvec3<u16>                                      u16vec3;    
00096                 typedef detail::tvec4<u16>                                      u16vec4;    
00097 
00098                 //typedef u32                                                                   u32vec1;    //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00099                 typedef detail::tvec2<u32>                                      u32vec2;    
00100                 typedef detail::tvec3<u32>                                      u32vec3;    
00101                 typedef detail::tvec4<u32>                                      u32vec4;    
00102 
00103                 //typedef u64                                                                   u64vec1;    //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
00104                 typedef detail::tvec2<u64>                                      u64vec2;    
00105                 typedef detail::tvec3<u64>                                      u64vec3;    
00106                 typedef detail::tvec4<u64>                                      u64vec4;    
00107 
00109                 // Float vector types 
00110 
00111                 typedef detail::float16                                         float16;        
00112                 typedef detail::float32                                         float32;        
00113                 typedef detail::float64                                         float64;        
00114 
00115                 typedef float16                                                         f16;        
00116                 typedef float32                                                         f32;        
00117                 typedef float64                                                         f64;        
00118 
00119                 //typedef f16                                                                   f16vec1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00120                 typedef detail::tvec2<f16>                                      f16vec2;    
00121                 typedef detail::tvec3<f16>                                      f16vec3;    
00122                 typedef detail::tvec4<f16>                                      f16vec4;    
00123 
00124                 //typedef f32                                                                   f32vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00125                 typedef detail::tvec2<f32>                                      f32vec2;    
00126                 typedef detail::tvec3<f32>                                      f32vec3;    
00127                 typedef detail::tvec4<f32>                                      f32vec4;    
00128 
00129                 //typedef f64                                                                   f64vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00130                 typedef detail::tvec2<f64>                                      f64vec2;    
00131                 typedef detail::tvec3<f64>                                      f64vec3;    
00132                 typedef detail::tvec4<f64>                                      f64vec4;    
00133 
00135                 // Float matrix types 
00136 
00137                 //typedef f16                                                                   f16mat1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00138                 typedef detail::tmat2x2<f16>                            f16mat2;        
00139                 typedef detail::tmat3x3<f16>                            f16mat3;        
00140                 typedef detail::tmat4x4<f16>                            f16mat4;        
00141 
00142                 //typedef f16                                                                   f16mat1x1;      //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00143                 typedef detail::tmat2x2<f16>                            f16mat2x2;      
00144                 typedef detail::tmat2x3<f16>                            f16mat2x3;      
00145                 typedef detail::tmat2x4<f16>                            f16mat2x4;      
00146                 typedef detail::tmat3x2<f16>                            f16mat3x2;      
00147                 typedef detail::tmat3x3<f16>                            f16mat3x3;      
00148                 typedef detail::tmat3x4<f16>                            f16mat3x4;      
00149                 typedef detail::tmat4x2<f16>                            f16mat4x2;      
00150                 typedef detail::tmat4x3<f16>                            f16mat4x3;      
00151                 typedef detail::tmat4x4<f16>                            f16mat4x4;      
00152 
00153                 //typedef f32                                                                   f32mat1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00154                 typedef detail::tmat2x2<f32>                            f32mat2;        
00155                 typedef detail::tmat3x3<f32>                            f32mat3;        
00156                 typedef detail::tmat4x4<f32>                            f32mat4;        
00157 
00158                 //typedef f32                                                                   f32mat1x1;      //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00159                 typedef detail::tmat2x2<f32>                            f32mat2x2;  
00160                 typedef detail::tmat2x3<f32>                            f32mat2x3;      
00161                 typedef detail::tmat2x4<f32>                            f32mat2x4;      
00162                 typedef detail::tmat3x2<f32>                            f32mat3x2;      
00163                 typedef detail::tmat3x3<f32>                            f32mat3x3;      
00164                 typedef detail::tmat3x4<f32>                            f32mat3x4;      
00165                 typedef detail::tmat4x2<f32>                            f32mat4x2;      
00166                 typedef detail::tmat4x3<f32>                            f32mat4x3;      
00167                 typedef detail::tmat4x4<f32>                            f32mat4x4;      
00168 
00169                 //typedef f64                                                                   f64mat1;        //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00170                 typedef detail::tmat2x2<f64>                            f64mat2;        
00171                 typedef detail::tmat3x3<f64>                            f64mat3;        
00172                 typedef detail::tmat4x4<f64>                            f64mat4;        
00173 
00174                 //typedef f64                                                                   f64mat1x1;      //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
00175                 typedef detail::tmat2x2<f64>                            f64mat2x2;      
00176                 typedef detail::tmat2x3<f64>                            f64mat2x3;      
00177                 typedef detail::tmat2x4<f64>                            f64mat2x4;      
00178                 typedef detail::tmat3x2<f64>                            f64mat3x2;      
00179                 typedef detail::tmat3x3<f64>                            f64mat3x3;      
00180                 typedef detail::tmat3x4<f64>                            f64mat3x4;      
00181                 typedef detail::tmat4x2<f64>                            f64mat4x2;      
00182                 typedef detail::tmat4x3<f64>                            f64mat4x3;      
00183                 typedef detail::tmat4x4<f64>                            f64mat4x4;      
00184 
00186                 // Float quaternion types 
00187 
00188                 typedef detail::tquat<f16>                                      f16quat;    
00189                 typedef detail::tquat<f32>                                      f32quat;    
00190                 typedef detail::tquat<f64>                                      f64quat;    
00191 
00192         }//namespace type_precision
00193         }//namespace gtc
00194 }//namespace glm
00195 
00196 #include "type_precision.inl"
00197 
00198 namespace glm{using namespace gtc::type_precision;}
00199 
00200 #endif//glm_gtc_type_precision