diff options
| -rw-r--r-- | src/gui/position_indicator.rs | 16 | ||||
| -rw-r--r-- | src/main.rs | 3 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/gui/position_indicator.rs b/src/gui/position_indicator.rs index b6d0dac..737a427 100644 --- a/src/gui/position_indicator.rs +++ b/src/gui/position_indicator.rs @@ -8,6 +8,7 @@ use crate::colours::DEFAULT_COLOURS; use crate::math::Vec2; +use crate::snapping::Snapper; use crate::transform::Transform; use raylib::drawing::{RaylibDraw, RaylibDrawHandle}; @@ -17,14 +18,19 @@ pub fn position_indicator_draw( rld: &mut RaylibDrawHandle, mouse_pos_px: Vec2<f64>, transform: &Transform, + snapper: &Snapper, ) { - let mouse_pos_m = transform.point_px_to_m(&mouse_pos_px); + let mouse_pos_snapped_m = snapper.snap(transform.point_px_to_m(&mouse_pos_px)); + let mouse_pos_snapped_px = transform.point_m_to_px(&mouse_pos_snapped_m); - rld.draw_circle_v(mouse_pos_px, 2., DEFAULT_COLOURS.position_indicator); + rld.draw_circle_v(mouse_pos_snapped_px, 2., DEFAULT_COLOURS.position_indicator); rld.draw_text( - &format!("({:.3}m, {:.3}m)", mouse_pos_m.x, mouse_pos_m.y), - mouse_pos_px.x as i32 - 30, - mouse_pos_px.y as i32 - 30, + &format!( + "({:.3}m, {:.3}m)", + mouse_pos_snapped_m.x, mouse_pos_snapped_m.y + ), + mouse_pos_snapped_px.x as i32 - 30, + mouse_pos_snapped_px.y as i32 - 30, 20, DEFAULT_COLOURS.position_text, ); diff --git a/src/main.rs b/src/main.rs index c9ebe48..345477b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -134,9 +134,8 @@ fn main() { tool_sidebar.draw(screen_height as u16, &mut d, &mut editor); snapper.draw(&mut d); - gui::position_indicator_draw(&mut d, last_mouse_pos.into(), &transform); + gui::position_indicator_draw(&mut d, last_mouse_pos.into(), &transform, &snapper); dimension_indicator.draw(&mut d, &transform); - tool_sidebar.draw(screen_height as u16, &mut d, &mut editor); } } } |
