diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index c9e652e6..4ca1a6ea 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -929,6 +929,7 @@ export class ViewportHost { private currentTerrainBrushState: ArmedTerrainBrushState | null = null; private terrainBrushHover: TerrainBrushHit | null = null; private activeTerrainBrushStroke: ActiveTerrainBrushStroke | null = null; + private terrainLodGridVisibleTerrainIds = new Set(); private currentTransformPreviewTargetIds: TransformPreviewTargetIds | null = null; private creationPreviewTargetKey: string | null = null; @@ -1584,6 +1585,22 @@ export class ViewportHost { } } + setTerrainLodGridVisibleTerrainIds(terrainIds: readonly string[]) { + const nextTerrainIds = new Set(terrainIds); + + if ( + nextTerrainIds.size === this.terrainLodGridVisibleTerrainIds.size && + [...nextTerrainIds].every((terrainId) => + this.terrainLodGridVisibleTerrainIds.has(terrainId) + ) + ) { + return; + } + + this.terrainLodGridVisibleTerrainIds = nextTerrainIds; + this.updateTerrainLodVisibility(); + } + setViewMode(viewMode: ViewportViewMode) { if (this.viewMode === viewMode) { return;