From a7f462cc2973f1ac44a80e7d7cb7f5eb3881d938 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 20 Mar 2026 11:47:21 +0000 Subject: [PATCH] fix: align tape body so tape exit slot is at click point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tape measure body was centered on the first click, putting the tape exit slot half a body-width away from the clicked position. Shift the body drawing so x=0 of the Group is the tape exit slot — the body now sits entirely behind/left of that point. Rotation already happened around the Group origin (a.x, a.y) which is the first click, so rotating around the tape exit is preserved. Measurements remain from start (exit slot) to end (hook). https://claude.ai/code/session_017EcqVMAodBUKgzMeEGwjxq --- src/components/Canvas/MeasureOverlay.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/Canvas/MeasureOverlay.tsx b/src/components/Canvas/MeasureOverlay.tsx index 0cf8ed4..38fcaaf 100644 --- a/src/components/Canvas/MeasureOverlay.tsx +++ b/src/components/Canvas/MeasureOverlay.tsx @@ -13,7 +13,7 @@ const TAPE_YELLOW = '#f5c518'; const TAPE_EDGE = '#c4961a'; const BODY_OUTLINE = '#5a4000'; -/** Small tape measure body icon centered at origin, tape slot facing +x. */ +/** Small tape measure body icon with tape slot at origin (+x), body extending -x. */ function TapeBody({ bw, bh, @@ -29,9 +29,9 @@ function TapeBody({ }) { return ( <> - {/* Main yellow housing */} + {/* Main yellow housing — right edge (tape exit) at x=0 */} {/* Dark grip strip on right side */} {/* Tape slot (dark slot the tape exits from on the right) */}