Skip to content

KBE3D / KBCore / Cesium / QuantizedMeshTerrainData

类: QuantizedMeshTerrainData

Terrain data for a single tile where the terrain data is represented as a quantized mesh. A quantized mesh consists of three vertex attributes, longitude, latitude, and height. All attributes are expressed as 16-bit values in the range 0 to 32767. Longitude and latitude are zero at the southwest corner of the tile and 32767 at the northeast corner. Height is zero at the minimum height in the tile and 32767 at the maximum height in the tile.

示例

ts
const data = new Cesium.QuantizedMeshTerrainData({
    minimumHeight : -100,
    maximumHeight : 2101,
    quantizedVertices : new Uint16Array([// order is SW NW SE NE
                                         // longitude
                                         0, 0, 32767, 32767,
                                         // latitude
                                         0, 32767, 0, 32767,
                                         // heights
                                         16384, 0, 32767, 16384]),
    indices : new Uint16Array([0, 3, 1,
                               0, 2, 3]),
    boundingSphere : new Cesium.BoundingSphere(new Cesium.Cartesian3(1.0, 2.0, 3.0), 10000),
    orientedBoundingBox : new Cesium.OrientedBoundingBox(new Cesium.Cartesian3(1.0, 2.0, 3.0), Cesium.Matrix3.fromRotationX(Cesium.Math.PI, new Cesium.Matrix3())),
    horizonOcclusionPoint : new Cesium.Cartesian3(3.0, 2.0, 1.0),
    westIndices : [0, 1],
    southIndices : [0, 1],
    eastIndices : [2, 3],
    northIndices : [1, 3],
    westSkirtHeight : 1.0,
    southSkirtHeight : 1.0,
    eastSkirtHeight : 1.0,
    northSkirtHeight : 1.0
});

参数

Object with the following properties:

参数

The buffer containing the quantized mesh.

参数

The indices specifying how the quantized vertices are linked together into triangles. Each three indices specifies one triangle.

参数

The minimum terrain height within the tile, in meters above the ellipsoid.

参数

The maximum terrain height within the tile, in meters above the ellipsoid.

参数

A sphere bounding all of the vertices in the mesh.

参数

An OrientedBoundingBox bounding all of the vertices in the mesh.

参数

The horizon occlusion point of the mesh. If this point is below the horizon, the entire tile is assumed to be below the horizon as well. The point is expressed in ellipsoid-scaled coordinates.

参数

The indices of the vertices on the western edge of the tile.

参数

The indices of the vertices on the southern edge of the tile.

参数

The indices of the vertices on the eastern edge of the tile.

参数

The indices of the vertices on the northern edge of the tile.

参数

The height of the skirt to add on the western edge of the tile.

参数

The height of the skirt to add on the southern edge of the tile.

参数

The height of the skirt to add on the eastern edge of the tile.

参数

The height of the skirt to add on the northern edge of the tile.

参数

A bit mask indicating which of this tile's four children exist. If a child's bit is set, geometry will be requested for that tile as well when it is needed. If the bit is cleared, the child tile is not requested and geometry is instead upsampled from the parent. The bit values are as follows: <table> <tr><th>Bit Position</th><th>Bit Value</th><th>Child Tile</th></tr> <tr><td>0</td><td>1</td><td>Southwest</td></tr> <tr><td>1</td><td>2</td><td>Southeast</td></tr> <tr><td>2</td><td>4</td><td>Northwest</td></tr> <tr><td>3</td><td>8</td><td>Northeast</td></tr> </table>

参数

True if this instance was created by upsampling another instance; otherwise, false.

参数

The buffer containing per vertex normals, encoded using 'oct' encoding

参数

The buffer containing the watermask.

参数

Array of credits for this tile.

属性

credits

credits: Credit[]

An array of credits for this tile.


waterMask

waterMask: HTMLCanvasElement | HTMLImageElement | Uint8Array<ArrayBufferLike> | undefined

The water mask included in this terrain data, if any. A water mask is a rectangular Uint8Array or image where a value of 255 indicates water and a value of 0 indicates land. Values in between 0 and 255 are allowed as well to smoothly blend between land and water.

方法

upsample()

upsample(tilingScheme: TilingScheme, thisX: number, thisY: number, thisLevel: number, descendantX: number, descendantY: number, descendantLevel: number): Promise<QuantizedMeshTerrainData> | undefined

Upsamples this terrain data for use by a descendant tile. The resulting instance will contain a subset of the vertices in this instance, interpolated if necessary.

参数

tilingScheme

TilingScheme

The tiling scheme of this terrain data.

thisX

number

The X coordinate of this tile in the tiling scheme.

thisY

number

The Y coordinate of this tile in the tiling scheme.

thisLevel

number

The level of this tile in the tiling scheme.

descendantX

number

The X coordinate within the tiling scheme of the descendant tile for which we are upsampling.

descendantY

number

The Y coordinate within the tiling scheme of the descendant tile for which we are upsampling.

descendantLevel

number

The level within the tiling scheme of the descendant tile for which we are upsampling.

返回

Promise<QuantizedMeshTerrainData> | undefined

A promise for upsampled heightmap terrain data for the descendant tile, or undefined if too many asynchronous upsample operations are in progress and the request has been deferred.


interpolateHeight()

interpolateHeight(rectangle: Rectangle, longitude: number, latitude: number): number

Computes the terrain height at a specified longitude and latitude.

参数

rectangle

Rectangle

The rectangle covered by this terrain data.

longitude

number

The longitude in radians.

latitude

number

The latitude in radians.

返回

number

The terrain height at the specified position. The position is clamped to the rectangle, so expect incorrect results for positions far outside the rectangle.


isChildAvailable()

isChildAvailable(thisX: number, thisY: number, childX: number, childY: number): boolean

Determines if a given child tile is available, based on the QuantizedMeshTerrainData.childTileMask. The given child tile coordinates are assumed to be one of the four children of this tile. If non-child tile coordinates are given, the availability of the southeast child tile is returned.

参数

thisX

number

The tile X coordinate of this (the parent) tile.

thisY

number

The tile Y coordinate of this (the parent) tile.

childX

number

The tile X coordinate of the child tile to check for availability.

childY

number

The tile Y coordinate of the child tile to check for availability.

返回

boolean

True if the child tile is available; otherwise, false.


wasCreatedByUpsampling()

wasCreatedByUpsampling(): boolean

Gets a value indicating whether or not this terrain data was created by upsampling lower resolution terrain data. If this value is false, the data was obtained from some other source, such as by downloading it from a remote server. This method should return true for instances returned from a call to HeightmapTerrainData#upsample.

返回

boolean

True if this instance was created by upsampling; otherwise, false.

构造函数

构造函数

new QuantizedMeshTerrainData(options: { quantizedVertices: Uint16Array; indices: Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>; minimumHeight: number; maximumHeight: number; boundingSphere: BoundingSphere; horizonOcclusionPoint: Cartesian3; westIndices: number[]; southIndices: number[]; eastIndices: number[]; northIndices: number[]; westSkirtHeight: number; southSkirtHeight: number; eastSkirtHeight: number; northSkirtHeight: number; orientedBoundingBox?: OrientedBoundingBox; childTileMask?: number; createdByUpsampling?: boolean; encodedNormals?: Uint8Array<ArrayBufferLike>; waterMask?: Uint8Array<ArrayBufferLike>; credits?: Credit[]; }): QuantizedMeshTerrainData

参数

options
quantizedVertices

Uint16Array

indices

Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>

minimumHeight

number

maximumHeight

number

boundingSphere

BoundingSphere

horizonOcclusionPoint

Cartesian3

westIndices

number[]

southIndices

number[]

eastIndices

number[]

northIndices

number[]

westSkirtHeight

number

southSkirtHeight

number

eastSkirtHeight

number

northSkirtHeight

number

orientedBoundingBox?

OrientedBoundingBox

childTileMask?

number

createdByUpsampling?

boolean

encodedNormals?

Uint8Array<ArrayBufferLike>

waterMask?

Uint8Array<ArrayBufferLike>

credits?

Credit[]

返回

QuantizedMeshTerrainData

KBE3D @3.0.0 Copyright © 2024-present KBE3D