diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index 193f135f..b1e736bc 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -6887,6 +6887,21 @@ export class ViewportHost { this.whiteboxHoverLabelChangeHandler?.(label); } + private refreshSelectionPresentation() { + if (this.currentDocument === null) { + return; + } + + this.refreshBrushPresentation(); + this.refreshTerrainPresentation(); + this.rebuildPaths(this.currentDocument, this.currentSelection); + this.rebuildEntityMarkers(this.currentDocument, this.currentSelection); + this.rebuildModelInstances(this.currentDocument, this.currentSelection); + this.applyTransformPreview(); + this.syncTransformGizmo(); + this.syncTerrainBrushPreview(); + } + private setHoveredSelection(selection: EditorSelection) { if (areEditorSelectionsEqual(this.hoveredSelection, selection)) { return; diff --git a/tests/unit/app-project-persistence.integration.test.tsx b/tests/unit/app-project-persistence.integration.test.tsx index a256d611..a1dd33cc 100644 --- a/tests/unit/app-project-persistence.integration.test.tsx +++ b/tests/unit/app-project-persistence.integration.test.tsx @@ -11,6 +11,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setViewMode: ReturnType; setDisplayMode: ReturnType; @@ -40,6 +41,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setViewMode = vi.fn(); setDisplayMode = vi.fn(); setGridVisible = vi.fn(); diff --git a/tests/unit/app-scene-transition.integration.test.tsx b/tests/unit/app-scene-transition.integration.test.tsx index e9ef535e..1f29c772 100644 --- a/tests/unit/app-scene-transition.integration.test.tsx +++ b/tests/unit/app-scene-transition.integration.test.tsx @@ -19,6 +19,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateWorld: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; updateSimulation: ReturnType; setPanelId: ReturnType; setViewMode: ReturnType; @@ -48,6 +49,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateWorld = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); updateSimulation = vi.fn(); setViewMode = vi.fn(); setDisplayMode = vi.fn(); diff --git a/tests/unit/interaction-links.inspector.integration.test.tsx b/tests/unit/interaction-links.inspector.integration.test.tsx index c231ef96..6f18bf5e 100644 --- a/tests/unit/interaction-links.inspector.integration.test.tsx +++ b/tests/unit/interaction-links.inspector.integration.test.tsx @@ -10,6 +10,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setRenderEnabled: ReturnType; setViewMode: ReturnType; @@ -39,6 +40,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setPanelId = vi.fn(); setRenderEnabled = vi.fn(); setViewMode = vi.fn(); diff --git a/tests/unit/light-volume.integration.test.tsx b/tests/unit/light-volume.integration.test.tsx index c0546f3f..d46771dd 100644 --- a/tests/unit/light-volume.integration.test.tsx +++ b/tests/unit/light-volume.integration.test.tsx @@ -19,6 +19,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setRenderEnabled: ReturnType; setGridVisible: ReturnType; setViewMode: ReturnType; @@ -48,6 +49,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setRenderEnabled = vi.fn(); setGridVisible = vi.fn(); setViewMode = vi.fn(); diff --git a/tests/unit/path-inspector.integration.test.tsx b/tests/unit/path-inspector.integration.test.tsx index a62c241b..6ecab95f 100644 --- a/tests/unit/path-inspector.integration.test.tsx +++ b/tests/unit/path-inspector.integration.test.tsx @@ -9,6 +9,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setRenderEnabled: ReturnType; setViewMode: ReturnType; @@ -38,6 +39,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setPanelId = vi.fn(); setRenderEnabled = vi.fn(); setViewMode = vi.fn(); diff --git a/tests/unit/path-point-editing.integration.test.tsx b/tests/unit/path-point-editing.integration.test.tsx index ddc21004..00b78553 100644 --- a/tests/unit/path-point-editing.integration.test.tsx +++ b/tests/unit/path-point-editing.integration.test.tsx @@ -20,6 +20,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setRenderEnabled: ReturnType; setViewMode: ReturnType; @@ -50,6 +51,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setPanelId = vi.fn((panelId: string) => { this.panelId = panelId; }); diff --git a/tests/unit/player-start-inspector.integration.test.tsx b/tests/unit/player-start-inspector.integration.test.tsx index 1f2ec683..e6247180 100644 --- a/tests/unit/player-start-inspector.integration.test.tsx +++ b/tests/unit/player-start-inspector.integration.test.tsx @@ -10,6 +10,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setRenderEnabled: ReturnType; setViewMode: ReturnType; @@ -39,6 +40,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setPanelId = vi.fn(); setRenderEnabled = vi.fn(); setViewMode = vi.fn(); diff --git a/tests/unit/terrain-foundation.integration.test.tsx b/tests/unit/terrain-foundation.integration.test.tsx index 67b7150d..d21669d8 100644 --- a/tests/unit/terrain-foundation.integration.test.tsx +++ b/tests/unit/terrain-foundation.integration.test.tsx @@ -9,6 +9,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setPanelId: ReturnType; setRenderEnabled: ReturnType; setViewMode: ReturnType; @@ -38,6 +39,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setPanelId = vi.fn(); setRenderEnabled = vi.fn(); setViewMode = vi.fn(); diff --git a/tests/unit/transform-foundation.integration.test.tsx b/tests/unit/transform-foundation.integration.test.tsx index c3159003..03b5bf40 100644 --- a/tests/unit/transform-foundation.integration.test.tsx +++ b/tests/unit/transform-foundation.integration.test.tsx @@ -29,6 +29,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setViewMode: ReturnType; setDisplayMode: ReturnType; setCameraState: ReturnType; @@ -61,6 +62,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setViewMode = vi.fn(); setDisplayMode = vi.fn(); setCameraState = vi.fn(); diff --git a/tests/unit/viewport-canvas.test.tsx b/tests/unit/viewport-canvas.test.tsx index 0fbba7cf..3bf41281 100644 --- a/tests/unit/viewport-canvas.test.tsx +++ b/tests/unit/viewport-canvas.test.tsx @@ -32,6 +32,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setViewMode: ReturnType; setDisplayMode: ReturnType; setCameraState: ReturnType; @@ -63,6 +64,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setViewMode = vi.fn(); setDisplayMode = vi.fn(); setCameraState = vi.fn(); diff --git a/tests/unit/water-volume.integration.test.tsx b/tests/unit/water-volume.integration.test.tsx index 06ab8a75..673456f5 100644 --- a/tests/unit/water-volume.integration.test.tsx +++ b/tests/unit/water-volume.integration.test.tsx @@ -17,6 +17,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation: ReturnType; updateAssets: ReturnType; updateDocument: ReturnType; + updateSelection: ReturnType; setRenderEnabled: ReturnType; setGridVisible: ReturnType; setViewMode: ReturnType; @@ -45,6 +46,7 @@ const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => { updateSimulation = vi.fn(); updateAssets = vi.fn(); updateDocument = vi.fn(); + updateSelection = vi.fn(); setRenderEnabled = vi.fn(); setGridVisible = vi.fn(); setViewMode = vi.fn();