@inweb/viewer-three
Version:
JavaScript library for rendering CAD and BIM files in a browser using Three.js
46 lines (45 loc) • 1.53 kB
TypeScript
import { IDraggersRegistry } from "@inweb/viewer-core";
/**
* Viewer draggers registry. Use this registry to register custom draggers.
*
* To implement custom dragger:
*
* 1. Define a dragger class implements {@link IDragger}.
* 2. Define a constructor with a `viewer` parameter and add mouse event listeners for the specified viewer.
* 3. Define the dragger logic in the event listeners. For example, listen for the `mousemove` event and
* zoom in/out when the left mouse button is pressed.
* 4. Override {@link IDragger.dispose} and remove mouse event listeners from the viewer.
* 5. Register dragger provider in the draggers registry by calling the {@link draggers.registerDragger}.
*
* @example Implementing a custom dragger.
*
* ```javascript
* import { IDragger, draggers, Viewer } from "@inweb/viewer-three";
*
* class MyDragger implements IDragger {
* protected viewer: Viewer;
*
* constructor(viewer: Viewer) {
* this.viewer = viewer;
* this.viewer.addEventListener("pointermove", this.onPointerMove);
* }
*
* override dispose() {
* this.viewer.removeEventListener("pointermove", this.onPointerMove);
* }
*
* onPointerMove = (event: PointerEvent) => {
* // place custom logic here
* };
* }
*
* draggers.registerDragger("MyDragger", (viewer): IDragger => new MyDragger(viewer));
* ```
*
* @example Activating a custom dragger.
*
* ```javascript
* viewer.setActiveDragger("MyDragger");
* ```
*/
export declare const draggers: IDraggersRegistry;