![]() |
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