UNPKG

@openglobus/og

Version:

[openglobus](https://www.openglobus.org/) is a javascript/typescript library designed to display interactive 3d maps and planets with map tiles, imagery and vector data, markers, and 3D objects. It uses the WebGL technology, open source, and completely fr

91 lines (90 loc) 2.78 kB
import { Control } from "./Control"; import type { IControlParams } from "./Control"; import { Key } from "../Lock"; import { Quat } from "../math/Quat"; import { Sphere } from "../bv/Sphere"; import { Vec2 } from "../math/Vec2"; import { Vec3 } from "../math/Vec3"; import type { ITouchState } from "../renderer/RendererEvents"; import { EventsHandler } from "../Events"; interface ITouchNavigationParams extends IControlParams { /** * Inertia factor. * Default: 0.007 */ inertia?: number; /** * Limit for tilt angle. * Default: 0.1 */ minSlope?: number; /** * Limit for touch jerk speed to prevent unexpected camera zooming. * Default: 0.3 */ jerkLimit?: number; } export type TouchNavigationEventsList = [ "inertiamove", "drag", "doubletapzoom" ]; declare class TouchExt { x: number; y: number; prev_x: number; prev_y: number; grabbedPoint: Vec3 | null; grabbedSpheroid: Sphere; protected _vec: Vec2; protected _vecPrev: Vec2; constructor(); get dY(): number; get dX(): number; get vec(): Vec2; get vecPrev(): Vec2; } /** * Touch pad planet camera dragging control. * @class * @extends {Control} * @param {ITouchNavigationParams} [options] - Touch navigation options: * @param {number} [options.inertia] - inertia factor. Default is 0.007 * @param {number} [options.minSlope] - minimal slope for vertical camera movement. Default is 0.1 * @param {number} [options.jerkLimit] - limit for touch jerk speed to prevent unexpected camera movement. Default is 0.08 * @fires og.TouchNavigation#inertiamove * @fires og.TouchNavigation#drag * @fires og.TouchNavigation#doubletapzoom */ export declare class TouchNavigation extends Control { grabbedPoint: Vec3; inertia: number; minSlope: number; jerkLimit: number; events: EventsHandler<TouchNavigationEventsList>; protected grabbedSpheroid: Sphere; protected qRot: Quat; protected scaleRot: number; protected rot: number; protected _eye0: Vec3; protected pointOnEarth: Vec3 | null; protected earthUp: Vec3 | null; protected touches: TouchExt[]; protected _keyLock: Key; protected _touching: boolean; constructor(options?: ITouchNavigationParams); oninit(): void; onadd(): void; onremove(): void; private _onCameraFly; protected onTouchStart(e: ITouchState): void; protected _startTouchOne(e: ITouchState): void; stopRotation(): void; protected onDoubleTouch(e: ITouchState): void; protected onTouchEnd(e: ITouchState): void; protected onTouchCancel(e: ITouchState): void; protected onTouchMove(e: ITouchState): void; protected onDraw(): void; private setLock; } export {};