29 #ifndef glm_core_detail 30 #define glm_core_detail 34 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) 43 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available 44 typedef int64_t sint64;
45 typedef uint64_t uint64;
46 #elif(GLM_COMPILER & GLM_COMPILER_VC) 47 typedef signed __int64 sint64;
48 typedef unsigned __int64 uint64;
49 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG)) 50 __extension__
typedef signed long long sint64;
51 __extension__
typedef unsigned long long uint64;
52 #elif(GLM_COMPILER & GLM_COMPILER_BC) 54 typedef Uint64 uint64;
55 #else//unknown compiler 56 typedef signed long long sint64;
57 typedef unsigned long long uint64;
63 template<
typename F,
typename T>
64 static GLM_FUNC_QUALIFIER T apply(F functor,
const T& val)
73 template<
typename F,
typename T>
74 static GLM_FUNC_QUALIFIER T apply(F,
const T& val)
135 GLM_FUNC_QUALIFIER
uif32() :
139 GLM_FUNC_QUALIFIER uif32(
float f) :
143 GLM_FUNC_QUALIFIER uif32(
unsigned int i) :
153 GLM_FUNC_QUALIFIER
uif64() :
157 GLM_FUNC_QUALIFIER uif64(
double f) :
161 GLM_FUNC_QUALIFIER uif64(uint64 i) :
174 template <
typename T>
184 #define GLM_DETAIL_IS_INT(T) \ 198 template <
typename T>
208 #define GLM_DETAIL_IS_UINT(T) \ 224 template <
typename T>
234 #define GLM_DETAIL_IS_FLOAT(T) \ 246 GLM_DETAIL_IS_FLOAT(
float);
247 GLM_DETAIL_IS_FLOAT(
double);
248 GLM_DETAIL_IS_FLOAT(
long double);
253 template <
typename T>
276 template <
typename T>
286 # define GLM_DETAIL_IS_VECTOR(TYPE) \ 287 template <typename T> \ 288 struct is_vector<TYPE<T> > \ 290 enum is_vector_enum \ 300 template <
typename T>
310 #define GLM_DETAIL_IS_MATRIX(T) \ 314 enum is_matrix_enum \ 324 template <
typename T>
339 typedef signed char int8;
340 typedef signed short int16;
341 typedef signed int int32;
342 typedef detail::sint64 int64;
344 typedef unsigned char uint8;
345 typedef unsigned short uint16;
346 typedef unsigned int uint32;
347 typedef detail::uint64 uint64;
350 typedef float float32;
351 typedef double float64;
366 template <
typename T>
369 enum{ID = float_or_int_value::GLM_ERROR};
375 enum{ID = float_or_int_value::GLM_INT};
381 enum{ID = float_or_int_value::GLM_INT};
387 enum{ID = float_or_int_value::GLM_INT};
393 enum{ID = float_or_int_value::GLM_INT};
399 enum{ID = float_or_int_value::GLM_INT};
405 enum{ID = float_or_int_value::GLM_INT};
411 enum{ID = float_or_int_value::GLM_INT};
417 enum{ID = float_or_int_value::GLM_INT};
423 enum{ID = float_or_int_value::GLM_FLOAT};
429 enum{ID = float_or_int_value::GLM_FLOAT};
435 enum{ID = float_or_int_value::GLM_FLOAT};
441 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) 442 # define GLM_DEPRECATED __declspec(deprecated) 443 # define GLM_ALIGN(x) __declspec(align(x)) 444 # define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct 445 # define GLM_RESTRICT __declspec(restrict) 446 # define GLM_RESTRICT_VAR __restrict 447 #elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) 448 # define GLM_DEPRECATED __attribute__((__deprecated__)) 449 # define GLM_ALIGN(x) __attribute__((aligned(x))) 450 # define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) 451 # if(GLM_COMPILER >= GLM_COMPILER_GCC33) 452 # define GLM_RESTRICT __restrict__ 453 # define GLM_RESTRICT_VAR __restrict__ 455 # define GLM_RESTRICT 456 # define GLM_RESTRICT_VAR 458 # define GLM_RESTRICT __restrict__ 459 # define GLM_RESTRICT_VAR __restrict__ 461 # define GLM_DEPRECATED 463 # define GLM_ALIGNED_STRUCT(x) 464 # define GLM_RESTRICT 465 # define GLM_RESTRICT_VAR 468 #endif//glm_core_detail Definition: _detail.hpp:61
Definition: _detail.hpp:254
Definition: _detail.hpp:301
Definition: _detail.hpp:38
detail::half half
Type for half-precision floating-point numbers.
Definition: half_float.hpp:357
Definition: _detail.hpp:225
Definition: _detail.hpp:367
OpenGL Mathematics (glm.g-truc.net)
Definition: _detail.hpp:277
Definition: _detail.hpp:199
16-bit floating point type.
Definition: type_half.hpp:44
Definition: _detail.hpp:151
Definition: _detail.hpp:356
Definition: _detail.hpp:175
Definition: _detail.hpp:325
Definition: _detail.hpp:133