Feat: ALIGN command (AL) — align objects using 1 or 2 point pairs

Workflow: select objects → 1st src/dst pair → 2nd src/dst pair (optional) → Enter.
- 1 pair: pure translation (src1 → dst1)
- 2 pairs: translate + rotate in XZ plane; optional uniform scale (Y/N prompt)

Transform applied as 3 sequential scene.transform_entities calls:
translate to origin → scale → rotate → translate to dst1.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Sonnet 4.6 committed 2026-04-02 23:46:48 +03:00
1 parent f6efe7a06a
commit b27b612b5d
5 files changed
+249 -1

No files matched your search

+8
View File
@@ -109,6 +109,14 @@ pub enum CmdResult {
pick_pt: Vec3,
mode: crate::modules::home::modify::lengthen::LenMode,
},
/// Align selected entities: translate to dst1, rotate by angle_rad, optional scale.
AlignSelected {
handles: Vec<Handle>,
src1: Vec3,
dst1: Vec3,
angle_rad: f32,
scale: f32,
},
}
// ── Trait ─────────────────────────────────────────────────────────────────