diff --git a/utilities/utilities.h b/utilities/utilities.h index b0ad2e61..88fabbd3 100644 --- a/utilities/utilities.h +++ b/utilities/utilities.h @@ -299,12 +299,12 @@ template T min_speed(T const Left, T const Right) return std::min(Left, Right); } -template Type_ smoothInterpolate(Type_ const &First, Type_ const &Second, double Factor) +template T smoothInterpolate(T const &First, T const &Second, double Factor) { // Apply smoothing (ease-in-out quadratic) Factor = Factor * Factor * (3 - 2 * Factor); - return static_cast((First * (1.0 - Factor)) + (Second * Factor)); + return First + (Second - First) * Factor; } // tests whether provided points form a degenerate triangle