From b40c557f25393e9dcb61462f59c123d60f00ef22 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 30 Aug 2018 00:16:14 +0200 Subject: [PATCH] Improved EXT extensions documentation --- glm/ext/scalar_double.hpp | 77 --------------------------------------- manual.md | 39 +++++++++++++------- 2 files changed, 26 insertions(+), 90 deletions(-) delete mode 100644 glm/ext/scalar_double.hpp diff --git a/glm/ext/scalar_double.hpp b/glm/ext/scalar_double.hpp deleted file mode 100644 index d8e8fc9a..00000000 --- a/glm/ext/scalar_double.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/// @ref ext_scalar_double -/// @file glm/ext/scalar_double.hpp -/// -/// @see core (dependence) -/// -/// @defgroup ext_scalar_double GLM_EXT_scalar_double -/// @ingroup ext -/// -/// Include to use the features of this extension. -/// -/// Exposes double scalar type. - -#pragma once - -#include "setup.hpp" - -namespace glm{ -namespace detail -{ - typedef float float32; - -# ifndef GLM_FORCE_SINGLE_ONLY - typedef double float64; -# endif//GLM_FORCE_SINGLE_ONLY -}//namespace detail - - typedef float lowp_float_t; - typedef float mediump_float_t; - typedef double highp_float_t; - - /// @addtogroup core_precision - /// @{ - - /// Low qualifier floating-point numbers. - /// There is no guarantee on the actual qualifier. - /// - /// @see GLSL 4.20.8 specification, section 4.1.4 Floats - /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef lowp_float_t lowp_float; - - /// Medium qualifier floating-point numbers. - /// There is no guarantee on the actual qualifier. - /// - /// @see GLSL 4.20.8 specification, section 4.1.4 Floats - /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef mediump_float_t mediump_float; - - /// High qualifier floating-point numbers. - /// There is no guarantee on the actual qualifier. - /// - /// @see GLSL 4.20.8 specification, section 4.1.4 Floats - /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier - typedef highp_float_t highp_float; - -#if GLM_CONFIG_PRECISION_FLOAT == GLM_HIGHP - typedef highp_float float_t; -#elif GLM_CONFIG_PRECISION_FLOAT == GLM_MEDIUMP - typedef mediump_float float_t; -#elif GLM_CONFIG_PRECISION_FLOAT == GLM_LOWP - typedef lowp_float float_t; -#endif - - typedef float float32; - -# ifndef GLM_FORCE_SINGLE_ONLY - typedef double float64; -# endif//GLM_FORCE_SINGLE_ONLY - -//////////////////// -// check type sizes -# ifndef GLM_FORCE_SINGLE_ONLY - GLM_STATIC_ASSERT(sizeof(glm::float64) == 8, "float64 size isn't 8 bytes on this platform"); -# endif//GLM_FORCE_SINGLE_ONLY - - /// @} - -}//namespace glm diff --git a/manual.md b/manual.md index 558c19be..9ab3f702 100644 --- a/manual.md +++ b/manual.md @@ -687,21 +687,15 @@ However, defining `GLM_FORCE_UNRESTRICTED_GENTYPE` is not compatible with `GLM_F ### 3.1. Scalar types -#### 3.1.1. GLM_EXT_scalar_float_sized +#### 3.1.1. GLM_EXT_scalar_int_sized -TODO - -Include `` to use these features. - -#### 3.1.2. GLM_EXT_scalar_int_sized - -TODO +This extension exposes sized and signed integer types. Include `` to use these features. -#### 3.1.3. GLM_EXT_scalar_uint_sized +#### 3.1.2. GLM_EXT_scalar_uint_sized -TODO +This extension exposes sized and unsigned integer types. Include `` to use these features. @@ -709,13 +703,32 @@ Include `` to use these features. #### 3.2.1. GLM_EXT_scalar_common -TODO +This extension exposes support for `min` and `max` functions taking more than two scalar arguments. Also, it adds `fmin` and `fmax` variants which prevents `NaN` probagation. + +```cpp +#include + +float PositiveMax(float const a, float const b) +{ + return glm::fmax(a, b, 0.0f); +} +``` Include `` to use these features. #### 3.2.2. GLM_EXT_scalar_relational -TODO +This extension exposes `equal` and `notEqual` variants which takes an epsilon argument. + +```cpp +#include + +bool myEqual(float const a, float const b) +{ + float const CustomEpsilon = 0.0001f; + return glm::equal(a, b, CustomEpsilon); +} +``` Include `` to use these features. @@ -888,7 +901,7 @@ Provide a list of built-in constants. `` need to be included to use these features. -### 4.4. GLM_GTC_epsilon +### 4.4. GLM\_GTC\_epsilon Approximate equality comparisons for floating-point numbers, possibly with a user-defined epsilon.