diff options
| author | Arne Dußin | 2021-01-06 22:50:14 +0100 |
|---|---|---|
| committer | GitHub | 2021-01-06 22:50:14 +0100 |
| commit | d8123704ea4fe4f1fb677db31ecac53c9c40096e (patch) | |
| tree | e0a365444784efaaeb1eea6373b34559b6d57fbc /src/gui/position_indicator.rs | |
| parent | 30b23db9e86fdf72a4e7de72213df274ce19123e (diff) | |
| parent | fa1afb6be3ba2d521eb0791edc0bb8e631a85327 (diff) | |
| download | graf_karto-d8123704ea4fe4f1fb677db31ecac53c9c40096e.tar.gz graf_karto-d8123704ea4fe4f1fb677db31ecac53c9c40096e.zip | |
Merge pull request #27 from LordSentox/snapping
Add snapping module to replace the rigid grid snapping
Diffstat (limited to 'src/gui/position_indicator.rs')
| -rw-r--r-- | src/gui/position_indicator.rs | 16 |
1 files changed, 11 insertions, 5 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, ); |
