diff --git a/include/Nazara/Math/Basic.hpp b/include/Nazara/Math/Basic.hpp index bcdba87e8..e2abe5903 100644 --- a/include/Nazara/Math/Basic.hpp +++ b/include/Nazara/Math/Basic.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #ifndef M_PI #define M_PI 3.141592653589793238462643 @@ -35,7 +36,7 @@ unsigned int NzGetNumberLength(double number, nzUInt8 precision = NAZARA_CORE_RE unsigned int NzGetNumberLength(long double number, nzUInt8 precision = NAZARA_CORE_REAL_PRECISION); template T NzLerp(T from, T to, T2 interpolation); template T NzNormalizeAngle(T angle); -template bool NzNumberEquals(T a, T b); +template bool NzNumberEquals(T a, T b, T maxDifference = std::numeric_limits::epsilon()); NzString NzNumberToString(long long number, nzUInt8 radix = 10); template T NzRadians(T radians); template T NzRadianToDegree(T radians); diff --git a/include/Nazara/Math/Basic.inl b/include/Nazara/Math/Basic.inl index a53c950c0..7ff522e88 100644 --- a/include/Nazara/Math/Basic.inl +++ b/include/Nazara/Math/Basic.inl @@ -182,9 +182,9 @@ T NzNormalizeAngle(T angle) } template -bool NzNumberEquals(T a, T b) +bool NzNumberEquals(T a, T b, T maxDifference) { - return std::fabs(a-b) < std::numeric_limits::epsilon(); + return std::fabs(a-b) < maxDifference; } inline NzString NzNumberToString(long long number, nzUInt8 radix)