Added DoubleSlider::epsilon() to get a permissible error for layer height

This commit is contained in:
YuSanka 2019-09-04 13:16:44 +02:00
parent 200ac4c35e
commit aab3001b24
3 changed files with 9 additions and 6 deletions

View file

@ -634,7 +634,7 @@ void Preview::update_double_slider(const std::vector<double>& layers_z, bool kee
bool force_sliders_full_range = was_empty;
if (!keep_z_range)
{
bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > 1e-6;
bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > DoubleSlider::epsilon()/*1e-6*/;
force_sliders_full_range |= span_changed;
}
bool snap_to_min = force_sliders_full_range || m_slider->is_lower_at_min();
@ -650,12 +650,12 @@ void Preview::update_double_slider(const std::vector<double>& layers_z, bool kee
int idx_high = m_slider->GetMaxValue();
if (! layers_z.empty()) {
if (! snap_to_min) {
int idx_new = find_close_layer_idx(layers_z, z_low, 1e-6);
int idx_new = find_close_layer_idx(layers_z, z_low, DoubleSlider::epsilon()/*1e-6*/);
if (idx_new != -1)
idx_low = idx_new;
}
if (! snap_to_max) {
int idx_new = find_close_layer_idx(layers_z, z_high, 1e-6);
int idx_new = find_close_layer_idx(layers_z, z_high, DoubleSlider::epsilon()/*1e-6*/);
if (idx_new != -1)
idx_high = idx_new;
}
@ -695,7 +695,7 @@ void Preview::fill_slider_values(std::vector<std::pair<int, double>> &values,
{
return (values.back().second < val &&
// we can't ignore tick on last layer
fabs(values.back().second - val) > EPSILON);
fabs(values.back().second - val) > DoubleSlider::epsilon());
}),
ticks_from_config.end());
if (ticks_from_config.size() != old_size)