diff options
-rw-r--r-- | spline-widget/spline.cpp | 9 | ||||
-rw-r--r-- | spline-widget/spline.hpp | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/spline-widget/spline.cpp b/spline-widget/spline.cpp index 1f457715..2db23c14 100644 --- a/spline-widget/spline.cpp +++ b/spline-widget/spline.cpp @@ -101,14 +101,19 @@ float spline::get_value(double x) return ret; } -float spline::get_value_no_save(double x) +float spline::get_value_no_save(double x) const +{ + return const_cast<spline&>(*this).get_value_no_save_internal(x); +} + +float spline::get_value_no_save_internal(double x) { QMutexLocker foo(&_mutex); if (max_x > 0) x = std::min(max_x, x); - float q = float(x * precision(s->points)); + float q = float(x * precision(s->points)); int xi = (int)q; float yi = get_value_internal(xi); float yiplus1 = get_value_internal(xi+1); diff --git a/spline-widget/spline.hpp b/spline-widget/spline.hpp index d9635397..77b2bdf9 100644 --- a/spline-widget/spline.hpp +++ b/spline-widget/spline.hpp @@ -46,6 +46,7 @@ class OPENTRACK_SPLINE_EXPORT spline final void update_interp_data(); float get_value_internal(int x); void add_lone_point(); + float get_value_no_save_internal(double x); static bool sort_fn(const QPointF& one, const QPointF& two); static QPointF ensure_in_bounds(const QList<QPointF>& points, double max_x, int i); @@ -83,7 +84,7 @@ public: spline(const spline&) = default; float get_value(double x); - float get_value_no_save(double x); + float get_value_no_save(double x) const; DEFUN_WARN_UNUSED bool get_last_value(QPointF& point); void remove_point(int i); void clear(); |