/// @ref gtx_common /// @file glm/gtx/common.hpp /// /// @see core (dependence) /// /// @defgroup gtx_common GLM_GTX_common /// @ingroup gtx /// /// Include to use the features of this extension. /// /// @brief Provide functions to increase the compatibility with Cg and HLSL languages #pragma once // Dependencies: #include "../vec2.hpp" #include "../vec3.hpp" #include "../vec4.hpp" #include "../gtc/vec1.hpp" #ifndef GLM_ENABLE_EXPERIMENTAL # error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." #endif #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) # pragma message("GLM: GLM_GTX_common extension included") #endif namespace glm { /// @addtogroup gtx_common /// @{ /// Returns true if x is a denormalized number /// Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. /// This format is less precise but can represent values closer to zero. /// /// @tparam genType Floating-point scalar or vector types. /// /// @see GLSL isnan man page /// @see GLSL 4.20.8 specification, section 8.3 Common Functions template GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const& x); /// Similar to 'mod' but with a different rounding and integer support. /// Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)' /// /// @see GLSL mod vs HLSL fmod /// @see GLSL mod man page template GLM_FUNC_DECL vec fmod(vec const& v); /// Returns whether vector components values are within an interval. A open interval excludes its endpoints, and is denoted with square brackets. /// /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector /// @tparam T Floating-point or integer scalar types /// @tparam Q Value from qualifier enum /// /// @see ext_vector_relational template GLM_FUNC_DECL vec openBounded(vec const& Value, vec const& Min, vec const& Max); /// Returns whether vector components values are within an interval. A closed interval includes its endpoints, and is denoted with square brackets. /// /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector /// @tparam T Floating-point or integer scalar types /// @tparam Q Value from qualifier enum /// /// @see ext_vector_relational template GLM_FUNC_DECL vec closeBounded(vec const& Value, vec const& Min, vec const& Max); /// @} }//namespace glm #include "common.inl"