import { Tile } from '../types'; import * as THREE from "three"; import type * as maptilersdk from "@maptiler/sdk"; type InitProps = { map: maptilersdk.Map; minZoom: number; maxZoom: number; }; declare class GlobeTilesService { readonly object3D: THREE.Group; readonly helpersObject3D: THREE.Group; private map; currentTiles: Array; /** * Tiles mesh for data which can be tiled. */ readonly currentTilesMeshes: Map>; /** * Mesh for visible tiles area - e.g. to display particles */ visibleTilesAreaMesh: THREE.Mesh; /** * Rows of vertices, rowId is a abstract identifier (related to tile but not exactly the same). * This is used to create full area mesh. */ private areaGeometryVerticesRows; /** * Min zoom level for tiles */ private minZoom; /** * Max zoom level for tiles * 0-24 - https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapOptions/#maxzoom */ private maxZoom; /** * Flag to check if geometry needs to be recreated (after visible tiles change). */ private isGeometryNeedRefresh; constructor(); /** * Initialize the service. * Using it to create the object at the beginning and initialize it map is ready. * The idea is to simplify calling the `update` method. */ init({ map, minZoom, maxZoom }: InitProps): void; /** * Update list of tiles to display. */ update(): void; /** * Recreate: * - each tile mesh * - area mesh */ recreateGlobeMeshes(): void; /** * Recreate tiles meshes. * Used for tiling friendly data (temperature, pressure, etc.). */ private recreateGlobeTiles; /** * Recreate single mesh for visible tiles area. * Used for particles display. */ private recreateAreaMesh; } export { GlobeTilesService };