# GLM: type_precision.hpp Source File

- Main Page
- Namespaces
- Files

- File List

# type_precision.hpp

    00001
    00002 // OpenGL Mathematics Copyright (c) 2005 - 2009 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 #define GLM_GTC_type_precision  namespace gtc::type_precision
    00197
    00198 #ifndef GLM_GTC_GLOBAL
    00199 namespace glm {using GLM_GTC_type_precision;}
    00200 #endif//GLM_GTC_GLOBAL
    00201
    00202 #include "type_precision.inl"
    00203
    00204 #endif//glm_gtc_type_precision