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/gtc/epsilon.inl | 125 ++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 depedencies/include/glm/gtc/epsilon.inl (limited to 'depedencies/include/glm/gtc/epsilon.inl') diff --git a/depedencies/include/glm/gtc/epsilon.inl b/depedencies/include/glm/gtc/epsilon.inl new file mode 100644 index 0000000..b5577d9 --- /dev/null +++ b/depedencies/include/glm/gtc/epsilon.inl @@ -0,0 +1,125 @@ +/// @ref gtc_epsilon +/// @file glm/gtc/epsilon.inl + +// Dependency: +#include "quaternion.hpp" +#include "../vector_relational.hpp" +#include "../common.hpp" +#include "../vec2.hpp" +#include "../vec3.hpp" +#include "../vec4.hpp" + +namespace glm +{ + template <> + GLM_FUNC_QUALIFIER bool epsilonEqual + ( + float const & x, + float const & y, + float const & epsilon + ) + { + return abs(x - y) < epsilon; + } + + template <> + GLM_FUNC_QUALIFIER bool epsilonEqual + ( + double const & x, + double const & y, + double const & epsilon + ) + { + return abs(x - y) < epsilon; + } + + template <> + GLM_FUNC_QUALIFIER bool epsilonNotEqual + ( + float const & x, + float const & y, + float const & epsilon + ) + { + return abs(x - y) >= epsilon; + } + + template <> + GLM_FUNC_QUALIFIER bool epsilonNotEqual + ( + double const & x, + double const & y, + double const & epsilon + ) + { + return abs(x - y) >= epsilon; + } + + template class vecType> + GLM_FUNC_QUALIFIER vecType epsilonEqual + ( + vecType const & x, + vecType const & y, + T const & epsilon + ) + { + return lessThan(abs(x - y), vecType(epsilon)); + } + + template class vecType> + GLM_FUNC_QUALIFIER vecType epsilonEqual + ( + vecType const & x, + vecType const & y, + vecType const & epsilon + ) + { + return lessThan(abs(x - y), vecType(epsilon)); + } + + template class vecType> + GLM_FUNC_QUALIFIER vecType epsilonNotEqual + ( + vecType const & x, + vecType const & y, + T const & epsilon + ) + { + return greaterThanEqual(abs(x - y), vecType(epsilon)); + } + + template class vecType> + GLM_FUNC_QUALIFIER vecType epsilonNotEqual + ( + vecType const & x, + vecType const & y, + vecType const & epsilon + ) + { + return greaterThanEqual(abs(x - y), vecType(epsilon)); + } + + template + GLM_FUNC_QUALIFIER tvec4 epsilonEqual + ( + tquat const & x, + tquat const & y, + T const & epsilon + ) + { + tvec4 v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w); + return lessThan(abs(v), tvec4(epsilon)); + } + + template + GLM_FUNC_QUALIFIER tvec4 epsilonNotEqual + ( + tquat const & x, + tquat const & y, + T const & epsilon + ) + { + tvec4 v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w); + return greaterThanEqual(abs(v), tvec4(epsilon)); + } +}//namespace glm -- cgit v1.2.3