@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
52 lines (51 loc) • 1.61 kB
TypeScript
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",
KeyDown = "key-down",
ContextMenu = "context-menu"
}
export interface InputEventPayload {
[]: Vector2 & {
event: PointerEvent;
};
[]: Vector2 & {
event: PointerEvent;
};
[]: Vector2 & {
event: PointerEvent;
};
[]: void;
[]: WheelEvent;
[]: Vector2 & {
event: PointerEvent;
multiSelect: boolean;
};
[]: Vector2 & {
event: PointerEvent;
multiSelect: boolean;
};
[]: KeyboardEvent;
[]: KeyboardEvent;
[]: PointerEvent;
}
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, restrictKeyInput?: boolean);
on<T extends InputEvent>(eventType: T, listener: (arg: InputEventPayload[T]) => void): void;
_getNormalisedClickPosition(e: MouseEvent | Touch): Vector2;
dispose(): void;
}