main.cesium.CesiumTerrainProvider.kt Maven / Gradle / Ivy
The newest version!
// Automatically generated - do not modify!
@file:JsModule("cesium")
@file:Suppress(
"VAR_OVERRIDDEN_BY_VAL",
"VAR_TYPE_MISMATCH_ON_OVERRIDE",
"NON_EXTERNAL_DECLARATION_IN_INAPPROPRIATE_FILE",
)
package cesium
/**
* A [TerrainProvider] that accesses terrain data in a Cesium terrain format.
* ```
* // Create Arctic DEM terrain with normals.
* const viewer = new Viewer('cesiumContainer', {
* terrainProvider : new CesiumTerrainProvider({
* url : IonResource.fromAssetId(3956),
* requestVertexNormals : true
* })
* });
* ```
* @see Online Documentation
*/
external class CesiumTerrainProvider(options: ConstructorOptions) : TerrainProvider {
/**
* @property [url] The URL of the Cesium terrain server.
* @property [requestVertexNormals] Flag that indicates if the client should request additional lighting information from the server, in the form of per vertex normals if available.
* Default value - `false`
* @property [requestWaterMask] Flag that indicates if the client should request per tile water masks from the server, if available.
* Default value - `false`
* @property [requestMetadata] Flag that indicates if the client should request per tile metadata from the server, if available.
* Default value - `true`
* @property [ellipsoid] The ellipsoid. If not specified, the WGS84 ellipsoid is used.
* @property [credit] A credit for the data source, which is displayed on the canvas.
*/
interface ConstructorOptions {
var url: dynamic
var requestVertexNormals: Boolean?
var requestWaterMask: Boolean?
var requestMetadata: Boolean?
var ellipsoid: Ellipsoid?
var credit: Credit?
}
/**
* Requests the geometry for a given tile. This function should not be called before
* [CesiumTerrainProvider.ready] returns true. The result must include terrain data and
* may optionally include a water mask and an indication of which child tiles are available.
* @param [x] The X coordinate of the tile for which to request geometry.
* @param [y] The Y coordinate of the tile for which to request geometry.
* @param [level] The level of the tile for which to request geometry.
* @param [request] The request object. Intended for internal use only.
* @return A promise for the requested geometry. If this method
* returns undefined instead of a promise, it is an indication that too many requests are already
* pending and the request will be retried later.
* @see Online Documentation
*/
override fun requestTileGeometry(
x: Double,
y: Double,
level: Int,
request: Request?,
): kotlin.js.Promise?
/**
* Gets an event that is raised when the terrain provider encounters an asynchronous error. By subscribing
* to the event, you will be notified of the error and can potentially recover from it. Event listeners
* are passed an instance of [TileProviderError].
* @see Online Documentation
*/
override val errorEvent: Event
/**
* Gets the credit to display when this terrain provider is active. Typically this is used to credit
* the source of the terrain. This function should not be called before [CesiumTerrainProvider.ready] returns true.
* @see Online Documentation
*/
override val credit: Credit
/**
* Gets the tiling scheme used by this provider. This function should
* not be called before [CesiumTerrainProvider.ready] returns true.
* @see Online Documentation
*/
override val tilingScheme: GeographicTilingScheme
/**
* Gets a value indicating whether or not the provider is ready for use.
* @see Online Documentation
*/
override val ready: Boolean
/**
* Gets a promise that resolves to true when the provider is ready for use.
* @see Online Documentation
*/
override val readyPromise: kotlin.js.Promise
/**
* Gets a value indicating whether or not the provider includes a water mask. The water mask
* indicates which areas of the globe are water rather than land, so they can be rendered
* as a reflective surface with animated waves. This function should not be
* called before [CesiumTerrainProvider.ready] returns true.
* @see Online Documentation
*/
override val hasWaterMask: Boolean
/**
* Gets a value indicating whether or not the requested tiles include vertex normals.
* This function should not be called before [CesiumTerrainProvider.ready] returns true.
* @see Online Documentation
*/
override val hasVertexNormals: Boolean
/**
* Gets a value indicating whether or not the requested tiles include metadata.
* This function should not be called before [CesiumTerrainProvider.ready] returns true.
* @see Online Documentation
*/
val hasMetadata: Boolean
/**
* Boolean flag that indicates if the client should request vertex normals from the server.
* Vertex normals data is appended to the standard tile mesh data only if the client requests the vertex normals and
* if the server provides vertex normals.
* @see Online Documentation
*/
val requestVertexNormals: Boolean
/**
* Boolean flag that indicates if the client should request a watermask from the server.
* Watermask data is appended to the standard tile mesh data only if the client requests the watermask and
* if the server provides a watermask.
* @see Online Documentation
*/
val requestWaterMask: Boolean
/**
* Boolean flag that indicates if the client should request metadata from the server.
* Metadata is appended to the standard tile mesh data only if the client requests the metadata and
* if the server provides a metadata.
* @see Online Documentation
*/
val requestMetadata: Boolean
/**
* Gets an object that can be used to determine availability of terrain from this provider, such as
* at points and in rectangles. This function should not be called before
* [CesiumTerrainProvider.ready] returns true. This property may be undefined if availability
* information is not available. Note that this reflects tiles that are known to be available currently.
* Additional tiles may be discovered to be available in the future, e.g. if availability information
* exists deeper in the tree rather than it all being discoverable at the root. However, a tile that
* is available now will not become unavailable in the future.
* @see Online Documentation
*/
override val availability: TileAvailability
/**
* Gets the maximum geometric error allowed in a tile at a given level.
* @param [level] The tile level for which to get the maximum geometric error.
* @return The maximum geometric error.
* @see Online Documentation
*/
override fun getLevelMaximumGeometricError(level: Int): Double
/**
* Determines whether data for a tile is available to be loaded.
* @param [x] The X coordinate of the tile for which to request geometry.
* @param [y] The Y coordinate of the tile for which to request geometry.
* @param [level] The level of the tile for which to request geometry.
* @return Undefined if not supported or availability is unknown, otherwise true or false.
* @see Online Documentation
*/
override fun getTileDataAvailable(
x: Double,
y: Double,
level: Int,
): Boolean?
/**
* Makes sure we load availability data for a tile
* @param [x] The X coordinate of the tile for which to request geometry.
* @param [y] The Y coordinate of the tile for which to request geometry.
* @param [level] The level of the tile for which to request geometry.
* @return Undefined if nothing need to be loaded or a Promise that resolves when all required tiles are loaded
* @see Online Documentation
*/
override fun loadTileDataAvailability(
x: Double,
y: Double,
level: Int,
): kotlin.js.Promise?
}
inline fun CesiumTerrainProvider(
block: CesiumTerrainProvider.ConstructorOptions.() -> Unit,
): CesiumTerrainProvider {
val options: CesiumTerrainProvider.ConstructorOptions = js("({})")
block(options)
return CesiumTerrainProvider(options)
}