Feat/lasso worldspace and toolbar polish - #138
Merged
harleensachdev merged 14 commits intoAug 13, 2026
Merged
Conversation
Adds canvasPointToWorld/worldToCanvasPoint so points can be stored in world space (mm) instead of camera-dependent canvas pixels, preventing drift on zoom/pan. Also refines the live-wire Dijkstra path with a sub-voxel gradient-peak snap: the raw grid-locked path was biased toward the inside of intensity transitions on convex boundary stretches; this walks along the local gradient and locates the true edge with a parabolic sub-voxel fit.
…pixels Prevents lasso/scissors corners and fill path from drifting off the anatomy when the user zooms or pans mid-draw.
Same drift issue as the lasso/scissors fix, applied to the foreground/background scribble markers.
Adds cameraVersion param so the cached preview outline refreshes immediately on zoom instead of waiting for the next mousemove. Also adds a fading 'click here to close the lasso' nudge shown the first time the cursor gets within closing range of the polygon's first point.
Popup previously fell back to the Custom tab whenever no catalog organ was already active.
Directs visual focus to the open ribbon instead of two equally-loud toolbars competing for attention.
…eveal - Shows a first-use shortcuts card when the annotation toolbar opens - Shows a one-time Continue/Start over/Exit explainer the first time a guided flow (Grow from Seeds, Copy/Fill-across-slices, Islands) surfaces those controls - Swaps localStorage for sessionStorage on these intro hints so they reappear each session instead of being dismissed forever - Ribbon now visually branches off the Annotate button via a clip-path circle reveal with a matching pointer triangle
… click Adds a Hopkins-blue pointer connecting each flyout panel back to the ribbon icon it opened from. Also stops a mousedown race where clicking the arrow to close an already-open flyout appeared to do nothing on the first press.
…, cursor hint on blocked click, white text
… popup alongside Continue button
…yout for add/edit; drop TargetBadge
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes zoom/pan drift in the annotation tools (lasso, scissors, smart
fill, level tracing) by storing interaction points in world space
instead of canvas pixels, adds sub-voxel accuracy to the live-wire
edge snap, and polishes the annotation toolbar's onboarding and
visual connection to the Annotate button.
Bug fixes
stored in world space (mm) instead of canvas pixels, so they no
longer drift off the anatomy when zooming/panning mid-draw
zoom instead of waiting for the next mousemove
back to Custom
lasso/scissors/level-tracing clicks
instead of leaving them lingering invisibly
sessionStorage instead of localStorage, so they reappear each
session rather than being dismissed forever
an already-open panel appeared to do nothing on the first press
New features / polish
a systematic inward bias on curved boundaries from the raw
grid-locked Dijkstra path
anchor, plus a matching highlight on the anchor dot itself
(matches the sidebar's existing jump-to-organ behavior)
toolbar opens
flow (Grow from Seeds, Copy/Fill across slices, Islands) surfaces
those controls
a clip-path circle reveal with a matching pointer arrow, instead of
a flat fade-in
that opened them
attention on it
Testing