From 2877f4eda3d1b0c7431039e3142ecf1a282a34b1 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Tue, 21 Aug 2018 20:40:38 +0500 Subject: Update glm to 0.9.9.0 --- external/include/glm/gtx/extended_min_max.hpp | 227 ++++++++++++++++++-------- 1 file changed, 160 insertions(+), 67 deletions(-) (limited to 'external/include/glm/gtx/extended_min_max.hpp') diff --git a/external/include/glm/gtx/extended_min_max.hpp b/external/include/glm/gtx/extended_min_max.hpp index f4d8859..b061bc8 100644 --- a/external/include/glm/gtx/extended_min_max.hpp +++ b/external/include/glm/gtx/extended_min_max.hpp @@ -2,130 +2,223 @@ /// @file glm/gtx/extended_min_max.hpp /// /// @see core (dependence) -/// @see gtx_half_float (dependence) /// -/// @defgroup gtx_extented_min_max GLM_GTX_extented_min_max +/// @defgroup gtx_extended_min_max GLM_GTX_extented_min_max /// @ingroup gtx /// -/// Min and max functions for 3 to 4 parameters. +/// Include to use the features of this extension. /// -/// need to be included to use these functionalities. +/// Min and max functions for 3 to 4 parameters. #pragma once // Dependency: #include "../glm.hpp" +#ifndef GLM_ENABLE_EXPERIMENTAL +# error "GLM: GLM_GTX_extented_min_max 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_extented_min_max extension included") #endif namespace glm { - /// @addtogroup gtx_extented_min_max + /// @addtogroup gtx_extended_min_max /// @{ - /// Return the minimum component-wise values of 3 inputs + /// Return the minimum component-wise values of 3 inputs /// @see gtx_extented_min_max - template + template GLM_FUNC_DECL T min( - T const & x, - T const & y, - T const & z); + T const& x, + T const& y, + T const& z); /// Return the minimum component-wise values of 3 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C min( - C const & x, - typename C::T const & y, - typename C::T const & z); + C const& x, + typename C::T const& y, + typename C::T const& z); - /// Return the minimum component-wise values of 3 inputs + /// Return the minimum component-wise values of 3 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C min( - C const & x, - C const & y, - C const & z); + C const& x, + C const& y, + C const& z); - /// Return the minimum component-wise values of 4 inputs + /// Return the minimum component-wise values of 4 inputs /// @see gtx_extented_min_max - template + template GLM_FUNC_DECL T min( - T const & x, - T const & y, - T const & z, - T const & w); + T const& x, + T const& y, + T const& z, + T const& w); - /// Return the minimum component-wise values of 4 inputs + /// Return the minimum component-wise values of 4 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C min( - C const & x, - typename C::T const & y, - typename C::T const & z, - typename C::T const & w); + C const& x, + typename C::T const& y, + typename C::T const& z, + typename C::T const& w); /// Return the minimum component-wise values of 4 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C min( - C const & x, - C const & y, - C const & z, - C const & w); + C const& x, + C const& y, + C const& z, + C const& w); - /// Return the maximum component-wise values of 3 inputs + /// Return the maximum component-wise values of 3 inputs /// @see gtx_extented_min_max - template + template GLM_FUNC_DECL T max( - T const & x, - T const & y, - T const & z); + T const& x, + T const& y, + T const& z); /// Return the maximum component-wise values of 3 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C max( - C const & x, - typename C::T const & y, - typename C::T const & z); + C const& x, + typename C::T const& y, + typename C::T const& z); - /// Return the maximum component-wise values of 3 inputs + /// Return the maximum component-wise values of 3 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C max( - C const & x, - C const & y, - C const & z); + C const& x, + C const& y, + C const& z); /// Return the maximum component-wise values of 4 inputs /// @see gtx_extented_min_max - template + template GLM_FUNC_DECL T max( - T const & x, - T const & y, - T const & z, - T const & w); + T const& x, + T const& y, + T const& z, + T const& w); - /// Return the maximum component-wise values of 4 inputs + /// Return the maximum component-wise values of 4 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C max( - C const & x, - typename C::T const & y, - typename C::T const & z, - typename C::T const & w); + C const& x, + typename C::T const& y, + typename C::T const& z, + typename C::T const& w); - /// Return the maximum component-wise values of 4 inputs + /// Return the maximum component-wise values of 4 inputs /// @see gtx_extented_min_max - template class C> + template class C> GLM_FUNC_DECL C max( - C const & x, - C const & y, - C const & z, - C const & w); + C const& x, + C const& y, + C const& z, + C const& w); + + /// Returns y if y < x; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam genType Floating-point or integer; scalar or vector types. + /// + /// @see gtx_extented_min_max + template + GLM_FUNC_DECL genType fmin(genType x, genType y); + + /// Returns y if y < x; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + /// @see std::fmin documentation + template + GLM_FUNC_DECL vec fmin(vec const& x, T y); + + /// Returns y if y < x; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + /// @see std::fmin documentation + template + GLM_FUNC_DECL vec fmin(vec const& x, vec const& y); + + /// Returns y if x < y; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam genType Floating-point; scalar or vector types. + /// + /// @see gtx_extented_min_max + /// @see std::fmax documentation + template + GLM_FUNC_DECL genType fmax(genType x, genType y); + + /// Returns y if x < y; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + /// @see std::fmax documentation + template + GLM_FUNC_DECL vec fmax(vec const& x, T y); + + /// Returns y if x < y; otherwise, it returns x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + /// @see std::fmax documentation + template + GLM_FUNC_DECL vec fmax(vec const& x, vec const& y); + + /// Returns min(max(x, minVal), maxVal) for each component in x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see gtx_extented_min_max + template + GLM_FUNC_DECL genType fclamp(genType x, genType minVal, genType maxVal); + + /// Returns min(max(x, minVal), maxVal) for each component in x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + template + GLM_FUNC_DECL vec fclamp(vec const& x, T minVal, T maxVal); + + /// Returns min(max(x, minVal), maxVal) for each component in x. If one of the two arguments is NaN, the value of the other argument is returned. + /// + /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector + /// @tparam T Floating-point scalar types + /// @tparam Q Value from qualifier enum + /// + /// @see gtx_extented_min_max + template + GLM_FUNC_DECL vec fclamp(vec const& x, vec const& minVal, vec const& maxVal); + /// @} }//namespace glm -- cgit v1.2.3