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; 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 {};