Skip to content

M8.12: Perspective Selection tool scales, copies, moves perpendicular and nudges in perspective - #189

Merged
bflatastic merged 2 commits into
mainfrom
m8-perspective-selection
Oct 6, 2026
Merged

bflatastic merged 2 commits into
mainfrom
m8-perspective-selection

Conversation

@bflatastic

Copy link
Copy Markdown
Member

The Perspective Selection tool now scales, copies, moves perpendicular to the plane and nudges in perspective, and Transform Again repeats perspective moves.

M8.12: Perspective Selection tool

  • Bounding box: the box follows the perspective, and its handles scale the object in plane space (new perspective.transform).
  • Alt-drag makes a copy, and the copy stays attached to the plane.
  • Pressing 5 while dragging moves the object perpendicular to the plane. This adds a new ToolKey::Digit, wired through the canvas and MCP press_key.
  • Arrow keys nudge the object in perspective (new perspective.nudge).
  • Ctrl+D (Transform Again) repeats the last perspective move or scale in plane space. perspective.move gains copy and perpendicular params.
  • Hint bar text for the tool.
  • Model:
    • New field Node.perspective {plane, depth} (append-only), so objects keep their attachment.
    • Copies, duplicates and pastes stay attached.
    • The old grid's attached maps are adopted on load.
  • Code: Homography moved to vectorcraft-geom, and the tools crate re-exports it. The plane homographies are built from per-axis columns that use M8.8's foreshortening, so grids with a viewing angle foreshorten each axis correctly. A test checks the depth and perpendicular maps on an angled grid.
  • ROADMAP: the M8 row lists this change.

Checks

🤖 Generated with Claude Code

bflatastic and others added 2 commits October 6, 2026 11:00
… and nudges in perspective

The Perspective Selection tool shows the selection's bounding box in perspective; its handles
scale in plane space (perspective.transform; Shift proportional, Alt from the centre). Alt-drag
moves copies that stay attached, pressing 5 while dragging moves along the plane's normal
(ToolKey::Digit, delivered by the canvas and MCP press_key), and the arrow keys nudge in
perspective (perspective.nudge). Transform Again repeats the last perspective move or scale in
plane space. Attachments (plane and depth) now live on the objects (Node.perspective), so copies,
duplicates and pastes keep them; grids from older files hand theirs over. Homography moves to
vectorcraft-geom. Hint-bar text for the tool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bflatastic
bflatastic merged commit 5157dc8 into main Oct 6, 2026
@bflatastic
bflatastic deleted the m8-perspective-selection branch October 6, 2026 04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant