feat(snap): dashed extension guide line for the Extension osnap (#238)
The Extension object snap worked but drew no tracking path, so it was easy to miss — users had to keep the cursor exactly on the invisible extension line without any visual cue. When an Extension snap is active, draw a dashed guide line from the endpoint it extends from, through the snap point and a little beyond, and orient the three-dot marker along that direction. SnapResult carries the endpoint screen position (filled once the winning snap is known); the overlay renders the guide. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
53a4882c7f
commit
1614fd9ab2
4 changed files with 97 additions and 2 deletions
|
|
@ -193,6 +193,7 @@ impl OpenCADStudio {
|
|||
let selection_overlay = {
|
||||
let sel = tab.scene.selection.borrow().clone();
|
||||
let snap_info = tab.snap_result.map(|s| (s.screen, s.snap_type));
|
||||
let snap_ext_base = tab.snap_result.and_then(|s| s.extension_base);
|
||||
|
||||
let grips: Vec<crate::ui::overlay::GripMarker> =
|
||||
if tab.active_cmd.is_none() && !tab.selected_grips.is_empty() {
|
||||
|
|
@ -397,6 +398,7 @@ impl OpenCADStudio {
|
|||
crate::ui::overlay::selection_overlay(
|
||||
sel,
|
||||
snap_info,
|
||||
snap_ext_base,
|
||||
grips,
|
||||
ucs_icons,
|
||||
ost_points,
|
||||
|
|
|
|||
Loading…
Reference in a new issue