UNPKG

@itwin/core-frontend

Version:
34 lines 2.2 kB
/** @packageDocumentation * @module Tiles */ import { TerrainMeshProvider, TerrainMeshProviderOptions } from "../internal"; /** Interface adopted by an object that can supply [[TerrainMeshProvider]]s enabling the display of 3d terrain in a [[Viewport]]. * @see [[TerrainProviderRegistry]] to register or look up a `TerrainProvider` by its name. * @see [TerrainSettings.providerName]($common) to specify the terrain provider used by a [DisplayStyle]($backend). * @public */ export interface TerrainProvider { /** Produce a [[TerrainMeshProvider]] using the specified options. */ createTerrainMeshProvider(options: TerrainMeshProviderOptions): Promise<TerrainMeshProvider | undefined>; } /** A registry of [[TerrainProvider]]s identified by their unique names. The registry can be accessed via [[IModelApp.terrainProviderRegistry]]. * It always includes the built-in provider named "CesiumWorldTerrain", which obtains terrain meshes from [Cesium ION](https://cesium.com/platform/cesium-ion/content/cesium-world-terrain/). That provider requires a valid [[TileAdmin.Props.cesiumIonKey]] to be supplied to [[IModelApp.startup]]. * Any number of additional providers can be [[register]]ed. * * When terrain is enabled for a [[Viewport]], the display system will attempt to look up the [[TerrainProvider]] corresponding to the [TerrainSettings.providerName]($common) specified by the [[Viewport]]'s [DisplayStyleSettings]($common). If a provider by that name is registered, it will be used to obtain terrain meshes; otherwise, the display system will produce flat terrain meshes. * @public */ export declare class TerrainProviderRegistry { private readonly _providers; /** @internal */ constructor(); /** Register a new [[TerrainProvider]]. * @param name The name of the provider. It must be unique among all providers. * @param provider The provider to register. * @see [[find]] to later retrieve the provider by name. */ register(name: string, provider: TerrainProvider): void; /** Look up a [[register]]ed [[TerrainProvider]] by its name. */ find(name: string): TerrainProvider | undefined; } //# sourceMappingURL=TerrainProvider.d.ts.map