@itwin/core-frontend
Version:
iTwin.js frontend components
34 lines • 2.2 kB
TypeScript
/** @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