UNPKG

@speckle/viewer

Version:

A 3d viewer for Speckle, based on threejs.

48 lines (47 loc) 1.44 kB
import { Vector2 } from 'three'; import EventEmitter from '../EventEmitter.js'; export declare enum InputEvent { PointerDown = "pointer-down", PointerUp = "pointer-up", PointerMove = "pointer-move", PointerCancel = "pointer-cancel", Wheel = "wheel", Click = "click", DoubleClick = "double-click", KeyUp = "key-up" } export interface InputEventPayload { [InputEvent.PointerDown]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerUp]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerMove]: Vector2 & { event: PointerEvent; }; [InputEvent.PointerCancel]: void; [InputEvent.Wheel]: WheelEvent; [InputEvent.Click]: Vector2 & { event: PointerEvent; multiSelect: boolean; }; [InputEvent.DoubleClick]: Vector2 & { event: PointerEvent; multiSelect: boolean; }; [InputEvent.KeyUp]: KeyboardEvent; } export default class Input extends EventEmitter { private static readonly MAX_DOUBLE_CLICK_TIMING; private static readonly MIN_CLICK_TIMING; private tapTimeout; private lastTap; private lastClick; private touchLocation; private container; constructor(container: HTMLElement); on<T extends InputEvent>(eventType: T, listener: (arg: InputEventPayload[T]) => void): void; _getNormalisedClickPosition(e: MouseEvent | Touch): Vector2; dispose(): void; }