UNPKG

@giro3d/giro3d

Version:

A JS/WebGL framework for 3D geospatial data visualization

113 lines 3.13 kB
import type { Object3D, OrthographicCamera, PerspectiveCamera } from 'three'; import { EventDispatcher } from 'three'; import Ellipsoid from '../core/geographic/Ellipsoid'; export interface GlobeControlsEvents { start: unknown; end: unknown; change: unknown; } export interface GlobeControlsOptions { /** * The scene to navigate around. * Can be the root object of the Giro3D instance, or a particular globe's root object. */ scene: Object3D; /** * The camera to control. */ camera: PerspectiveCamera | OrthographicCamera; /** * The DOM element to listen to. */ domElement: HTMLElement; /** * The ellipsoid to navigate around. * @defaultValue {@link Ellipsoid.WGS84} */ ellipsoid?: Ellipsoid; /** * The zoom speed * @defaultValue 1 */ zoomSpeed?: number; /** * Enables damping * @defaultValue false */ enableDamping?: boolean; /** * The damping factor. * @defaultValue 0.15 */ dampingFactor?: number; /** * The minimum distance to the ellipsoid. * @defaultValue 10 */ minDistance?: number; /** * The maximum distance to the ellipsoid. * @defaultValue infinity */ maxDistance?: number; } /** * Camera controls for a {@link entities.Globe}. Internally, this wraps `3d-tiles-renderer`'s own `GlobeControls`. */ export declare class GlobeControls extends EventDispatcher<GlobeControlsEvents> { private readonly _controls; private readonly _camera; private readonly _domElement; private readonly _eventListeners; constructor(params: GlobeControlsOptions); get enabled(): boolean; set enabled(v: boolean); get enableDamping(): boolean; set enableDamping(v: boolean); get dampingFactor(): number; set dampingFactor(v: number); get minAltitude(): number; set minAltitude(v: number); /** * The zoom speed. * @defaultValue 1 */ get zoomSpeed(): number; set zoomSpeed(v: number); /** * The minimal distance to the ellipsoid surface allowed for the controls. * @defaultValue 0 (the ellipsoid surface) */ get minDistance(): number; set minDistance(v: number); /** * The maximal distance to the ellipsoid surface allowed for the controls. * @defaultValue infinity */ get maxDistance(): number; set maxDistance(v: number); /** * The maximum zoom value (orthographic cameras only). */ get maxZoom(): number; set maxZoom(v: number); /** * The minimum zoom value (orthographic cameras only). */ get minZoom(): number; set minZoom(v: number); update(deltaTime?: number): void; /** * Attaches event listeners to the DOM element. * If the event listeners are already attached, this will throw an error. */ attach(): void; /** * Detaches event listeners from the DOM element. */ detach(): void; dispose(): void; resetState(): void; } export default GlobeControls; //# sourceMappingURL=GlobeControls.d.ts.map