diff --git a/src/viewport-three/viewport-focus.ts b/src/viewport-three/viewport-focus.ts index 8dac4a6a..dfad8715 100644 --- a/src/viewport-three/viewport-focus.ts +++ b/src/viewport-three/viewport-focus.ts @@ -450,6 +450,10 @@ function getSceneFocusTarget(document: SceneDocument): ViewportFocusTarget | nul includeBrush(bounds, brush); } + for (const terrain of Object.values(document.terrains)) { + includeTerrain(bounds, terrain); + } + for (const modelInstance of Object.values(document.modelInstances)) { includeModelInstance(bounds, modelInstance, document.assets[modelInstance.assetId]); } @@ -505,6 +509,16 @@ export function resolveViewportFocusTarget(document: SceneDocument, selection: E } } + const selectedTerrainId = getSingleSelectedTerrainId(selection); + + if (selectedTerrainId !== null) { + const terrain = document.terrains[selectedTerrainId]; + + if (terrain !== undefined) { + return createTerrainFocusTarget(terrain); + } + } + const selectedPathPoint = getSingleSelectedPathPoint(selection); if (selectedPathPoint !== null) {