@giro3d/giro3d
Version:
A JS/WebGL framework for 3D geospatial data visualization
50 lines (38 loc) • 1.34 kB
text/typescript
/*
* Copyright (c) 2015-2018, IGN France.
* Copyright (c) 2018-2026, Giro3D team.
* SPDX-License-Identifier: MIT
*/
import type { BufferGeometry, Vector2, Vector3 } from 'three';
import type Extent from '../../core/geographic/Extent';
import type HeightMap from '../../core/HeightMap';
import type MemoryUsage from '../../core/MemoryUsage';
import type TileCoordinate from './TileCoordinate';
export interface TileGeometry extends BufferGeometry, MemoryUsage {
get vertexCount(): number;
get segments(): number;
set segments(v: number);
get origin(): Vector3;
/**
* Resets the heights of the vertices to zero.
*/
resetHeights(): void;
/**
* Applies the heightmap on the geometry.
* @param heightMap - The heightmap to apply.
* @returns The min and max elevation of vertices after applying the heightmap.
*/
applyHeightMap(heightMap: HeightMap): { min: number; max: number };
/**
* The geometry to use for raycast purposes.
*/
get raycastGeometry(): BufferGeometry;
}
export interface TileGeometryBuilder<T extends TileGeometry = TileGeometry> {
/**
* The number of tiles on each axis at zoom level 0.
*/
get rootTileMatrix(): Vector2;
build(params: { tile: TileCoordinate; extent: Extent }): T;
}
export default TileGeometry;