UNPKG

@giro3d/giro3d

Version:

A JS/WebGL framework for 3D geospatial data visualization

89 lines 3.81 kB
import { Vector2 } from 'three'; import type Context from '../core/Context'; import type HasDefaultPointOfView from '../core/HasDefaultPointOfView'; import type TerrainOptions from '../core/TerrainOptions'; import type { MapSubdivisionStrategy } from './Map'; import type MapLightingOptions from './MapLightingOptions'; import type { TileGeometryBuilder } from './tiles/TileGeometry'; import type TileMesh from './tiles/TileMesh'; import type TileVolume from './tiles/TileVolume'; import CoordinateSystem from '../core/geographic/CoordinateSystem'; import Ellipsoid from '../core/geographic/Ellipsoid'; import Extent from '../core/geographic/Extent'; import Map, { type MapOptions } from './Map'; /** * Always allow subdivision up to LOD 4, then use the default map strategy for subsequent LODs. */ export declare const defaultGlobeSubdivisionStrategy: MapSubdivisionStrategy; /** * Options for Globe terrains. */ export type GlobeTerrainOptions = Omit<TerrainOptions, 'stitching'>; export declare function computeEllipsoidalImageSize(extent: Extent, ellipsoid: Ellipsoid): Vector2; /** * Constructor options for the {@link Globe} entity. */ export interface GlobeOptions extends Omit<MapOptions, 'extent' | 'terrain'> { /** * Which ellipsoid to use. * @defaultValue {@link Ellipsoid.WGS84} */ ellipsoid?: Ellipsoid; /** * The terrain options. */ terrain?: boolean | Partial<GlobeTerrainOptions>; } /** * Displays a Globe. * * The API is mostly identical to the {@link Map} entity. * * The globe uses the [ECEF reference frame](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system), * and the WGS84 spheroid ({@link Ellipsoid.WGS84}) by default. * * The 3 axes of the 3D scene are the following: * - X-axis: the axis that crosses the earth at the (0, 0) geographic position (the intersection * between the greenwich meridian and the equator) * - Y-axis: the axis that crosses the earth at the (90, 0) geographic position (the intersection * between the 90° meridian and the equator). * - Z-axis: The rotation axis of the earth (south/north axis). */ declare class Globe extends Map { readonly isGlobe: true; readonly type: string; private readonly _ellipsoid; private _enableHorizonCulling; private _horizonDistance; /** * The ellipsoid used to draw this globe. */ get ellipsoid(): Ellipsoid; /** * Enables or disable horizon culling. * @defaultValue true */ get horizonCulling(): boolean; set horizonCulling(v: boolean); constructor(options?: GlobeOptions); protected testVisibility(node: TileMesh, context: Context): boolean; private computeHorizonDistance; preUpdate(context: Context, changeSources: Set<unknown>): TileMesh[]; protected testHorizonVisibility(node: TileMesh, context: Context): boolean; protected shouldSubdivide(context: Context, node: TileMesh): boolean; protected getTextureSize(extent: Extent): Vector2; protected getGeometryBuilder(): TileGeometryBuilder; protected createTileVolume(extent: Extent): TileVolume; protected getTileDimensions(extent: Extent): Vector2; protected get isEllipsoidal(): boolean; protected getComposerProjection(): CoordinateSystem; protected getDefaultTerrainOptions(): Readonly<TerrainOptions>; protected getDefaultLightingOptions(): Readonly<Required<MapLightingOptions>>; /** * Looks at the center of the globe from the [0°, 0°] geographic coordinate. */ getDefaultPointOfView(params: Parameters<HasDefaultPointOfView['getDefaultPointOfView']>[0]): ReturnType<HasDefaultPointOfView['getDefaultPointOfView']>; } export declare function isGlobe(obj: unknown): obj is Globe; export default Globe; //# sourceMappingURL=Globe.d.ts.map