diff --git a/crates/egui_plot/src/lib.rs b/crates/egui_plot/src/lib.rs index c145e134..17ec89e0 100644 --- a/crates/egui_plot/src/lib.rs +++ b/crates/egui_plot/src/lib.rs @@ -961,6 +961,7 @@ impl<'a> Plot<'a> { mem.auto_bounds = false.into(); } BoundsModification::Translate(delta) => { + let delta = (delta.x as f64, delta.y as f64); bounds.translate(delta); mem.auto_bounds = false.into(); } @@ -1034,7 +1035,8 @@ impl<'a> Plot<'a> { if !allow_drag.y { delta.y = 0.0; } - mem.transform.translate_bounds(delta); + mem.transform + .translate_bounds((delta.x as f64, delta.y as f64)); mem.auto_bounds = mem.auto_bounds.and(!allow_drag); } @@ -1123,7 +1125,8 @@ impl<'a> Plot<'a> { scroll_delta.y = 0.0; } if scroll_delta != Vec2::ZERO { - mem.transform.translate_bounds(-scroll_delta); + mem.transform + .translate_bounds((-scroll_delta.x as f64, -scroll_delta.y as f64)); mem.auto_bounds = false.into(); } } diff --git a/crates/egui_plot/src/transform.rs b/crates/egui_plot/src/transform.rs index d4b7ed40..3c592155 100644 --- a/crates/egui_plot/src/transform.rs +++ b/crates/egui_plot/src/transform.rs @@ -184,9 +184,9 @@ impl PlotBounds { } #[inline] - pub fn translate(&mut self, delta: Vec2) { - self.translate_x(delta.x as f64); - self.translate_y(delta.y as f64); + pub fn translate(&mut self, delta: (f64, f64)) { + self.translate_x(delta.0); + self.translate_y(delta.1); } #[inline] @@ -321,16 +321,16 @@ impl PlotTransform { self.bounds = bounds; } - pub fn translate_bounds(&mut self, mut delta_pos: Vec2) { + pub fn translate_bounds(&mut self, mut delta_pos: (f64, f64)) { if self.x_centered { - delta_pos.x = 0.; + delta_pos.0 = 0.; } if self.y_centered { - delta_pos.y = 0.; + delta_pos.1 = 0.; } - delta_pos.x *= self.dvalue_dpos()[0] as f32; - delta_pos.y *= self.dvalue_dpos()[1] as f32; - self.bounds.translate(delta_pos); + delta_pos.0 *= self.dvalue_dpos()[0]; + delta_pos.1 *= self.dvalue_dpos()[1]; + self.bounds.translate((delta_pos.0, delta_pos.1)); } /// Zoom by a relative factor with the given screen position as center.