From e62817b8252974b8a98393275874ee303840bf13 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Fri, 12 May 2017 18:49:50 +0500 Subject: 2017-05-12 --- depedencies/include/glm/gtx/associated_min_max.inl | 355 +++++++++++++++++++++ 1 file changed, 355 insertions(+) create mode 100644 depedencies/include/glm/gtx/associated_min_max.inl (limited to 'depedencies/include/glm/gtx/associated_min_max.inl') diff --git a/depedencies/include/glm/gtx/associated_min_max.inl b/depedencies/include/glm/gtx/associated_min_max.inl new file mode 100644 index 0000000..6a57d48 --- /dev/null +++ b/depedencies/include/glm/gtx/associated_min_max.inl @@ -0,0 +1,355 @@ +/// @ref gtx_associated_min_max +/// @file glm/gtx/associated_min_max.inl + +namespace glm{ + +// Min comparison between 2 variables +template +GLM_FUNC_QUALIFIER U associatedMin(T x, U a, T y, U b) +{ + return x < y ? a : b; +} + +template class vecType> +GLM_FUNC_QUALIFIER tvec2 associatedMin +( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] < y[i] ? a[i] : b[i]; + return Result; +} + +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMin +( + T x, const vecType& a, + T y, const vecType& b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x < y ? a[i] : b[i]; + return Result; +} + +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMin +( + vecType const & x, U a, + vecType const & y, U b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] < y[i] ? a : b; + return Result; +} + +// Min comparison between 3 variables +template +GLM_FUNC_QUALIFIER U associatedMin +( + T x, U a, + T y, U b, + T z, U c +) +{ + U Result = x < y ? (x < z ? a : c) : (y < z ? b : c); + return Result; +} + +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMin +( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] < y[i] ? (x[i] < z[i] ? a[i] : c[i]) : (y[i] < z[i] ? b[i] : c[i]); + return Result; +} + +// Min comparison between 4 variables +template +GLM_FUNC_QUALIFIER U associatedMin +( + T x, U a, + T y, U b, + T z, U c, + T w, U d +) +{ + T Test1 = min(x, y); + T Test2 = min(z, w);; + U Result1 = x < y ? a : b; + U Result2 = z < w ? c : d; + U Result = Test1 < Test2 ? Result1 : Result2; + return Result; +} + +// Min comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER 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 +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = min(x[i], y[i]); + T Test2 = min(z[i], w[i]); + U Result1 = x[i] < y[i] ? a[i] : b[i]; + U Result2 = z[i] < w[i] ? c[i] : d[i]; + Result[i] = Test1 < Test2 ? Result1 : Result2; + } + return Result; +} + +// Min comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMin +( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c, + T w, vecType const & d +) +{ + T Test1 = min(x, y); + T Test2 = min(z, w); + + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + U Result1 = x < y ? a[i] : b[i]; + U Result2 = z < w ? c[i] : d[i]; + Result[i] = Test1 < Test2 ? Result1 : Result2; + } + return Result; +} + +// Min comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMin +( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c, + vecType const & w, U d +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = min(x[i], y[i]); + T Test2 = min(z[i], w[i]);; + U Result1 = x[i] < y[i] ? a : b; + U Result2 = z[i] < w[i] ? c : d; + Result[i] = Test1 < Test2 ? Result1 : Result2; + } + return Result; +} + +// Max comparison between 2 variables +template +GLM_FUNC_QUALIFIER U associatedMax(T x, U a, T y, U b) +{ + return x > y ? a : b; +} + +// Max comparison between 2 variables +template class vecType> +GLM_FUNC_QUALIFIER tvec2 associatedMax +( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] > y[i] ? a[i] : b[i]; + return Result; +} + +// Max comparison between 2 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + T x, vecType const & a, + T y, vecType const & b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x > y ? a[i] : b[i]; + return Result; +} + +// Max comparison between 2 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + vecType const & x, U a, + vecType const & y, U b +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] > y[i] ? a : b; + return Result; +} + +// Max comparison between 3 variables +template +GLM_FUNC_QUALIFIER U associatedMax +( + T x, U a, + T y, U b, + T z, U c +) +{ + U Result = x > y ? (x > z ? a : c) : (y > z ? b : c); + return Result; +} + +// Max comparison between 3 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + vecType const & x, vecType const & a, + vecType const & y, vecType const & b, + vecType const & z, vecType const & c +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a[i] : c[i]) : (y[i] > z[i] ? b[i] : c[i]); + return Result; +} + +// Max comparison between 3 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x > y ? (x > z ? a[i] : c[i]) : (y > z ? b[i] : c[i]); + return Result; +} + +// Max comparison between 3 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a : c) : (y[i] > z[i] ? b : c); + return Result; +} + +// Max comparison between 4 variables +template +GLM_FUNC_QUALIFIER U associatedMax +( + T x, U a, + T y, U b, + T z, U c, + T w, U d +) +{ + T Test1 = max(x, y); + T Test2 = max(z, w);; + U Result1 = x > y ? a : b; + U Result2 = z > w ? c : d; + U Result = Test1 > Test2 ? Result1 : Result2; + return Result; +} + +// Max comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER 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 +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = max(x[i], y[i]); + T Test2 = max(z[i], w[i]); + U Result1 = x[i] > y[i] ? a[i] : b[i]; + U Result2 = z[i] > w[i] ? c[i] : d[i]; + Result[i] = Test1 > Test2 ? Result1 : Result2; + } + return Result; +} + +// Max comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + T x, vecType const & a, + T y, vecType const & b, + T z, vecType const & c, + T w, vecType const & d +) +{ + T Test1 = max(x, y); + T Test2 = max(z, w); + + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + U Result1 = x > y ? a[i] : b[i]; + U Result2 = z > w ? c[i] : d[i]; + Result[i] = Test1 > Test2 ? Result1 : Result2; + } + return Result; +} + +// Max comparison between 4 variables +template class vecType> +GLM_FUNC_QUALIFIER vecType associatedMax +( + vecType const & x, U a, + vecType const & y, U b, + vecType const & z, U c, + vecType const & w, U d +) +{ + vecType Result(uninitialize); + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = max(x[i], y[i]); + T Test2 = max(z[i], w[i]);; + U Result1 = x[i] > y[i] ? a : b; + U Result2 = z[i] > w[i] ? c : d; + Result[i] = Test1 > Test2 ? Result1 : Result2; + } + return Result; +} +}//namespace glm -- cgit v1.2.3