From 18bc0997ac7e6515b7027304dc4feb64ad1993de Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 15 Apr 2026 07:58:16 +0200 Subject: [PATCH] Refactor brush geometry handling and update types --- src/viewport-three/viewport-host.ts | 56 +++++++++++++++-------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index bade8673..b20570b7 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -127,36 +127,39 @@ import { type SpotLightEntity } from "../entities/entity-instances"; import { - BOX_EDGE_IDS, - BOX_FACE_IDS, - BOX_VERTEX_IDS, - cloneBoxBrushGeometry, - deriveBoxBrushSizeFromGeometry, - scaleBoxBrushGeometryToSize, + cloneBrushGeometry, + deriveBrushSizeFromGeometry, + scaleBrushGeometryToSize, + updateBrush, DEFAULT_BOX_BRUSH_SIZE, + type Brush, + type BrushGeometry, type BoxBrush, - type BoxBrushGeometry, - type BoxEdgeId, - type BoxFaceId, - type BoxVertexId + type WhiteboxEdgeId, + type WhiteboxFaceId, + type WhiteboxVertexId } from "../document/brushes"; import { - getBoxBrushEdgeAxis, - getBoxBrushEdgeTransformMeta, - getBoxBrushEdgeWorldSegment, - getBoxBrushFaceAxis, - getBoxBrushFaceTransformMeta, - getBoxBrushFaceWorldCenter, - getBoxBrushVertexWorldPosition, - transformBoxBrushWorldPointToLocal, - transformBoxBrushWorldVectorToLocal -} from "../geometry/box-brush-components"; + getBrushEdgeAxis, + getBrushEdgeScaleAxes, + getBrushEdgeWorldSegment, + getBrushFaceAxis, + getBrushFaceWorldCenter, + getBrushLocalVertexPosition, + getBrushVertexWorldPosition, + transformBrushWorldPointToLocal, + transformBrushWorldVectorToLocal +} from "../geometry/whitebox-brush"; import { - buildBoxBrushDerivedMeshData, - getBoxBrushEdgeVertexIds, - getBoxBrushFaceVertexIds, - getBoxBrushLocalVertexPosition + buildBoxBrushDerivedMeshData } from "../geometry/box-brush-mesh"; +import { + getBrushEdgeIds, + getBrushEdgeVertexIds, + getBrushFaceIds, + getBrushFaceVertexIds, + getBrushVertexIds +} from "../geometry/whitebox-topology"; import { createModelColliderDebugGroup } from "../geometry/model-instance-collider-debug-mesh"; import { buildGeneratedModelCollider } from "../geometry/model-instance-collider-generation"; import { DEFAULT_GRID_SIZE, snapValueToGrid } from "../geometry/grid-snapping"; @@ -216,13 +219,14 @@ import { interface BrushRenderObjects { mesh: Mesh; + faceIdsInOrder: WhiteboxFaceId[]; edges: LineSegments; edgeHelpers: Array<{ - id: BoxEdgeId; + id: WhiteboxEdgeId; line: Line; }>; vertexHelpers: Array<{ - id: BoxVertexId; + id: WhiteboxVertexId; mesh: Mesh; }>; }