diff --git a/src/basics/basics.hh b/src/basics/basics.hh index d6b91e1..a3c8fe4 100644 --- a/src/basics/basics.hh +++ b/src/basics/basics.hh @@ -15,56 +15,9 @@ #include "basics/matrix.hh" #include "basics/ray.hh" #include "basics/types.hh" +#include "basics/util.hh" #include "basics/vector.hh" - -/** - * A very small constant. If a value is between EPSILON and 0.0, it is - * considered to be zero. - */ -const Double EPSILON = 1.0e-10; - -/** - * The maximum distance a ray can travel. This is the maximum value t can be. - */ -const Double MAX_DISTANCE = 1.0e7; - -/** - * Determine if the value is "close enough" to zero. Takes the absolute value - * and compares it to `EPSILON`. - * - * @see EPSILON - * - * @param [in] value The value to check - * @returns `true` if the value is close enough to zero - */ -template -inline bool -NearZero(const T value) -{ - return std::fabs(value) < EPSILON; -} - - -/** - * Determine if two values are "close enough" to be considered equal. Subtracts - * one from the other and checks if the result is near zero. - * - * @see NearZero - * - * @param [in] left The left parameter - * @param [in] right The right parameter - * @returns `true` if the values are close enough to be equal - */ -template -inline bool -NearlyEqual(const T left, - const T right) -{ - return NearZero(left - right); -} - - inline bool TooFar(const Double& value) { diff --git a/src/basics/util.hh b/src/basics/util.hh index d65ff64..2c36c0f 100644 --- a/src/basics/util.hh +++ b/src/basics/util.hh @@ -57,5 +57,12 @@ NearlyEqual(T left, return NearZero(left - right); } + +inline bool +TooFar(const Double& value) +{ + return value > MAX_DISTANCE; +} + #endif /* __BASICS_UTIL_HH__ */