diff options
Diffstat (limited to 'compat/slider.cpp')
-rw-r--r-- | compat/slider.cpp | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/compat/slider.cpp b/compat/slider.cpp deleted file mode 100644 index be1aaeb8..00000000 --- a/compat/slider.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "slider.hpp" -#include <cmath> - -namespace options { - -slider_value::slider_value(double cur, double min, double max) : - cur_(cur), - min_(min), - max_(max) -{ - if (min_ > max_) - min_ = max_; - if (cur_ > max_) - cur_ = max; - if (cur_ < min_) - cur_ = min_; -} - -slider_value::slider_value(const slider_value& v) : slider_value(v.cur(), v.min(), v.max()) -{ -} - -slider_value::slider_value() : slider_value(0, 0, 0) -{ -} - -slider_value& slider_value::operator=(const slider_value& v) -{ - cur_ = v.cur_; - - min_ = v.min_; - max_ = v.max_; - - return *this; -} - -bool slider_value::operator==(const slider_value& v) const -{ - using std::fabs; - - static constexpr double eps = 1e-3; - - return (fabs(v.cur_ - cur_) < eps && - fabs(v.min_ - min_) < eps && - fabs(v.max_ - max_) < eps); -} - -slider_value slider_value::update_from_slider(int pos, int q_min, int q_max) const -{ - slider_value v(*this); - - const int q_diff = q_max - q_min; - const double sv_pos = q_diff == 0 - ? -1e6 - : (((pos - q_min) * (v.max() - v.min())) / q_diff + v.min()); - - if (sv_pos < v.min()) - v = slider_value(v.min(), v.min(), v.max()); - else if (sv_pos > v.max()) - v = slider_value(v.max(), v.min(), v.max()); - else - v = slider_value(sv_pos, v.min(), v.max()); - return v; -} - -int slider_value::to_slider_pos(int q_min, int q_max) const -{ - const int q_diff = q_max - q_min; - - return int(std::round(((cur() - min() * q_diff) / (max() - min())) + q_min)); -} - -} // end ns options |