From 43394c8a8908442982e3a7e25975c31b3c952923 Mon Sep 17 00:00:00 2001 From: Nikolas Date: Sun, 27 Oct 2024 12:52:55 +0200 Subject: root --- 3rdparty/include/glm/gtx/associated_min_max.hpp | 231 ++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 3rdparty/include/glm/gtx/associated_min_max.hpp (limited to '3rdparty/include/glm/gtx/associated_min_max.hpp') diff --git a/3rdparty/include/glm/gtx/associated_min_max.hpp b/3rdparty/include/glm/gtx/associated_min_max.hpp new file mode 100644 index 0000000..84c1322 --- /dev/null +++ b/3rdparty/include/glm/gtx/associated_min_max.hpp @@ -0,0 +1,231 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// Restrictions: +/// By making use of the Software for military purposes, you choose to make +/// a Bunny unhappy. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref gtx_associated_min_max +/// @file glm/gtx/associated_min_max.hpp +/// @date 2008-03-10 / 2014-10-11 +/// @author Christophe Riccio +/// +/// @see core (dependence) +/// @see gtx_extented_min_max (dependence) +/// +/// @defgroup gtx_associated_min_max GLM_GTX_associated_min_max +/// @ingroup gtx +/// +/// @brief Min and max functions that return associated values not the compared onces. +/// need to be included to use these functionalities. +/////////////////////////////////////////////////////////////////////////////////// + +#pragma once + +// Dependency: +#include "../glm.hpp" + +#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) +# pragma message("GLM: GLM_GTX_associated_min_max extension included") +#endif + +namespace glm +{ + /// @addtogroup gtx_associated_min_max + /// @{ + + /// Minimum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b); + + /// Minimum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL tvec2 associatedMin( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b); + + /// Minimum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + T x, const vecType& a, + T y, const vecType& b); + + /// Minimum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + vecType const & x, U a, + vecType const & y, U b); + + /// Minimum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMin( + T x, U a, + T y, U b, + T z, U c); + + /// Minimum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c); + + /// Minimum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMin( + T x, U a, + T y, U b, + T z, U c, + T w, U d); + + /// Minimum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c, + vecType const & w, vecType const & d); + + /// Minimum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c, + T w, vecType const & d); + + /// Minimum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMin( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c, + vecType const & w, U d); + + /// Maximum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b); + + /// Maximum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL tvec2 associatedMax( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b); + + /// Maximum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + T x, vecType const & a, + T y, vecType const & b); + + /// Maximum comparison between 2 variables and returns 2 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + vecType const & x, U a, + vecType const & y, U b); + + /// Maximum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMax( + T x, U a, + T y, U b, + T z, U c); + + /// Maximum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c); + + /// Maximum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c); + + /// Maximum comparison between 3 variables and returns 3 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c); + + /// Maximum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template + GLM_FUNC_DECL U associatedMax( + T x, U a, + T y, U b, + T z, U c, + T w, U d); + + /// Maximum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c, + vecType const & w, vecType const & d); + + /// Maximum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c, + T w, vecType const & d); + + /// Maximum comparison between 4 variables and returns 4 associated variable values + /// @see gtx_associated_min_max + template class vecType> + GLM_FUNC_DECL vecType associatedMax( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c, + vecType const & w, U d); + + /// @} +} //namespace glm + +#include "associated_min_max.inl" -- cgit v1.2.3