threepipe
Version:
A 3D viewer framework built on top of three.js in TypeScript with a focus on quality rendering, modularity and extensibility.
61 lines • 2.59 kB
TypeScript
import { Event, EventDispatcher, Intersection, Raycaster, Vector2 } from 'three';
import { JSUndoManager } from 'ts-browser-helpers';
import { ICamera, IObject3D } from '../../core';
export declare class ObjectPicker extends EventDispatcher<Event, 'hoverObjectChanged' | 'selectedObjectChanged' | 'hitObject'> {
private _firstHit;
hoverEnabled: boolean;
/**
* Time threshold for a pointer click event
*/
static PointerClickMaxTime: number;
/**
* Distance threshold for a pointer click event
*/
static PointerClickMaxDistance: number;
undoManager?: JSUndoManager;
private _root;
private _camera;
private _mouseDownTime;
private _mouseDownPos;
private _mouseUpTime;
private _time;
selectionCondition: (o: IObject3D) => boolean;
raycaster: Raycaster;
mouse: Vector2;
private _selected;
private _hovering;
cursorStyles: {
default: string;
down: string;
};
domElement: HTMLElement;
constructor(root: IObject3D, domElement: HTMLElement, camera: ICamera, selectionCondition?: (o: IObject3D) => boolean);
dispose(): void;
get camera(): ICamera<import('../../core').ICameraEvent, import('../../core').ICameraEventTypes>;
set camera(value: ICamera<import('../../core').ICameraEvent, import('../../core').ICameraEventTypes>);
get selectedObject(): IObject3D | null;
set selectedObject(object: IObject3D | null);
private _setSelected;
get hoverObject(): IObject3D | null;
set hoverObject(object: IObject3D | IObject3D[] | null);
get time(): number;
get isMouseDown(): boolean;
get mouseDownDeltaTime(): number;
private _onPointerMove;
private _onPointerLeave;
private _onPointerEnter;
private _onPointerCancel;
updateMouseFromEvent(event: PointerEvent): void;
private _onPointerDown;
private _onPointerUp;
private _onPointerClick;
checkIntersection(): {
selectedObject: IObject3D<import('../../core').IObject3DEvent<import('../../core').IObject3DEventTypes>, import('../../core').IObject3DEventTypes>;
intersect: Intersection<IObject3D<import('../../core').IObject3DEvent<import('../../core').IObject3DEventTypes>, import('../../core').IObject3DEventTypes>>;
intersects: Intersection<IObject3D<import('../../core').IObject3DEvent<import('../../core').IObject3DEventTypes>, import('../../core').IObject3DEventTypes>>[];
mouse: import('three').Vector2Tuple;
} | null;
isHovering(): boolean;
isSelected(): boolean;
}
//# sourceMappingURL=ObjectPicker.d.ts.map