@shopware-ag/dive
Version:
Shopware Spatial Framework
49 lines (48 loc) • 1.89 kB
TypeScript
import { Intersection, Object3D, Raycaster, Vector2, Vector3 } from 'three';
import { DIVEScene } from '../scene/Scene';
import { default as DIVEOrbitControls } from '../controls/OrbitControls';
import { DIVEDraggable } from '../interface/Draggable';
import { DIVEHoverable } from '../interface/Hoverable';
export type DraggableEvent = {
dragStart: Vector3;
dragCurrent: Vector3;
dragEnd: Vector3;
dragDelta: Vector3;
};
export declare abstract class DIVEBaseTool {
readonly POINTER_DRAG_THRESHOLD: number;
name: string;
protected _canvas: HTMLElement;
protected _scene: DIVEScene;
protected _controller: DIVEOrbitControls;
protected _pointer: Vector2;
protected get _pointerAnyDown(): boolean;
protected _pointerPrimaryDown: boolean;
protected _pointerMiddleDown: boolean;
protected _pointerSecondaryDown: boolean;
protected _lastPointerDown: Vector2;
protected _lastPointerUp: Vector2;
protected _raycaster: Raycaster;
protected _intersects: Intersection[];
protected _hovered: (Object3D & DIVEHoverable) | null;
protected _dragging: boolean;
protected _dragStart: Vector3;
protected _dragCurrent: Vector3;
protected _dragEnd: Vector3;
protected _dragDelta: Vector3;
protected _draggable: DIVEDraggable | null;
protected _dragRaycastOnObjects: Object3D[] | null;
protected constructor(scene: DIVEScene, controller: DIVEOrbitControls);
Activate(): void;
Deactivate(): void;
onPointerDown(e: PointerEvent): void;
onDragStart(e: PointerEvent): void;
onPointerMove(e: PointerEvent): void;
onDrag(e: PointerEvent): void;
onPointerUp(e: PointerEvent): void;
onClick(e: PointerEvent): void;
onDragEnd(e: PointerEvent): void;
onWheel(e: WheelEvent): void;
protected raycast(objects?: Object3D[]): Intersection[];
private pointerWasDragged;
}