From d405b91787ecb332d4ecb8740c06ca84f7e8a6b3 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik <sthalik@misaki.pl> Date: Thu, 15 Jun 2017 10:18:47 +0200 Subject: spline: workaround going over the max value --- spline/spline.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'spline') diff --git a/spline/spline.cpp b/spline/spline.cpp index 1fb38014..624ab883 100644 --- a/spline/spline.cpp +++ b/spline/spline.cpp @@ -146,8 +146,11 @@ float spline::get_value_internal(int x) const float sign = signum(x); x = std::abs(x); - const float ret = data[std::min(unsigned(x), unsigned(value_count)-1u)]; - return sign * std::fmax(0, ret); + const float ret_ = data[std::min(unsigned(x), unsigned(value_count)-1u)]; + float ret = sign * std::fmax(0, ret_); + if (max_y > 0) + ret = fmin(max_y, ret); + return ret; } void spline::add_lone_point() -- cgit v1.2.3