From 667849750c7225931c94e9c0198922f8f582d050 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sun, 5 Apr 2026 02:54:51 +0200 Subject: [PATCH] Add geometry to transform session command and update box brush transform command --- src/commands/commit-transform-session-command.ts | 3 +++ src/commands/set-box-brush-transform-command.ts | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/commands/commit-transform-session-command.ts b/src/commands/commit-transform-session-command.ts index e7d5bbf1..331ba0b3 100644 --- a/src/commands/commit-transform-session-command.ts +++ b/src/commands/commit-transform-session-command.ts @@ -92,6 +92,7 @@ export function createCommitTransformSessionCommand(document: SceneDocument, ses center: session.preview.center, rotationDegrees: session.preview.rotationDegrees, size: session.preview.size, + geometry: session.preview.geometry, label: createTransformCommandLabel(session) }); case "brushEdge": @@ -108,6 +109,7 @@ export function createCommitTransformSessionCommand(document: SceneDocument, ses center: session.preview.center, rotationDegrees: session.preview.rotationDegrees, size: session.preview.size, + geometry: session.preview.geometry, label: createTransformCommandLabel(session) }); case "brushVertex": @@ -124,6 +126,7 @@ export function createCommitTransformSessionCommand(document: SceneDocument, ses center: session.preview.center, rotationDegrees: session.preview.rotationDegrees, size: session.preview.size, + geometry: session.preview.geometry, label: createTransformCommandLabel(session) }); case "modelInstance": { diff --git a/src/commands/set-box-brush-transform-command.ts b/src/commands/set-box-brush-transform-command.ts index 01db6014..73cc8879 100644 --- a/src/commands/set-box-brush-transform-command.ts +++ b/src/commands/set-box-brush-transform-command.ts @@ -3,7 +3,7 @@ import type { ToolMode } from "../core/tool-mode"; import { createOpaqueId } from "../core/ids"; import type { EditorSelection } from "../core/selection"; import type { Vec3 } from "../core/vector"; -import { cloneBoxBrushGeometry, scaleBoxBrushGeometryToSize } from "../document/brushes"; +import { cloneBoxBrushGeometry, deriveBoxBrushSizeFromGeometry, scaleBoxBrushGeometryToSize, type BoxBrushGeometry } from "../document/brushes"; import { cloneSelectionForCommand, @@ -28,6 +28,7 @@ interface SetBoxBrushTransformCommandOptions { center: Vec3; rotationDegrees: Vec3; size: Vec3; + geometry?: BoxBrushGeometry; label?: string; } @@ -105,14 +106,17 @@ export function createSetBoxBrushTransformCommand(options: SetBoxBrushTransformC previousToolMode = context.getToolMode(); } - const nextGeometry = scaleBoxBrushGeometryToSize(brush.geometry, options.size); + const nextGeometry = options.geometry === undefined ? scaleBoxBrushGeometryToSize(brush.geometry, options.size) : cloneBoxBrushGeometry(options.geometry); + const nextSize = deriveBoxBrushSizeFromGeometry(nextGeometry); + + assertPositiveSize(nextSize); context.setDocument( replaceBrush(currentDocument, { ...brush, center: cloneVec3(options.center), rotationDegrees: cloneVec3(options.rotationDegrees), - size: cloneVec3(options.size), + size: nextSize, geometry: nextGeometry }) );