From 664441f688b72aa8091d4476a291db48fd0225b1 Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Wed, 15 Jan 2025 21:28:58 +0100 Subject: [PATCH] Fixed elements placing position --- src/ui/panes/pid_drawing_tool.rs | 6 ++++-- src/ui/panes/pid_drawing_tool/elements.rs | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs index 68a47de..4fcbcf9 100644 --- a/src/ui/panes/pid_drawing_tool.rs +++ b/src/ui/panes/pid_drawing_tool.rs @@ -242,8 +242,10 @@ impl PidPane { ui.menu_button("Symbols", |ui| { for symbol in Symbol::iter() { if ui.button(symbol.to_string()).clicked() { - self.elements - .push(Element::new(self.grid.screen_to_grid(pointer_pos), symbol)); + self.elements.push(Element::new( + self.grid.screen_to_grid(pointer_pos).round(), + symbol, + )); self.action.take(); ui.close_menu(); } diff --git a/src/ui/panes/pid_drawing_tool/elements.rs b/src/ui/panes/pid_drawing_tool/elements.rs index 179f523..e3748a1 100644 --- a/src/ui/panes/pid_drawing_tool/elements.rs +++ b/src/ui/panes/pid_drawing_tool/elements.rs @@ -25,9 +25,9 @@ pub struct Element { } impl Element { - pub fn new(position: Vec2, symbol: Symbol) -> Self { + pub fn new(center: Vec2, symbol: Symbol) -> Self { Self { - position, + position: center - symbol.size() / 2.0, rotation: 0.0, anchor_points: symbol.anchor_points(), symbol, @@ -54,7 +54,7 @@ impl Element { let rotm_e_to_g = Mat2::from_angle(self.rotation); // Center in grid's frame - let center_g = rotm_e_to_g * self.symbol.size() / 2.0; + let center_g = rotm_e_to_g * self.size() / 2.0; self.position = p_g - center_g; } -- GitLab