@xeokit/xeokit-sdk
Version:
3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision
103 lines (92 loc) • 3.52 kB
TypeScript
import {AngleMeasurementsControl} from "./AngleMeasurementsControl.js";
import {AngleMeasurementsPlugin} from "./AngleMeasurementsPlugin";
import {PointerLens} from "../../extras/";
import {AngleMeasurement} from "./AngleMeasurement";
/**
* Creates {@link AngleMeasurement}s in an {@link AngleMeasurementsPlugin} from mouse input.
*
* @example
* import { Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens } from "xeokit-sdk.es.js";
*
* const viewer = new Viewer({
* canvasId: "myCanvas",
* });
*
* viewer.camera.eye = [-3.93, 2.85, 27.01];
* viewer.camera.look = [4.40, 3.72, 8.89];
* viewer.camera.up = [-0.01, 0.99, 0.039];
*
* const xktLoader = new XKTLoaderPlugin(viewer);
*
* const sceneModel = xktLoader.load({
* id: "myModel",
* src: "Duplex.xkt"
* });
*
* const angleMeasurements = new AngleMeasurementsPlugin(viewer);
*
* const pointerLens = new PointerLens(viewer); // Create a PointerLens instance
*
* const angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {
* pointerLens: pointerLens,
* snapping: true
* });
*
* angleMeasurementsMouseControl.activate();
*/
export class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
/**
* Creates a new AngleMeasurementsMouseControl.
*
* @param {AngleMeasurementsPlugin} angleMeasurementsPlugin The AngleMeasurementsPlugin to control.
* @param {Object} [cfg] Configuration options.
* @param {PointerLens} [cfg.pointerLens] A PointerLens to use for providing a magnified view of the cursor when snapping is enabled.
* @param {function} [cfg.canvasToPagePos] Optional function to map canvas-space coordinates to page coordinates.
* @param {boolean} [cfg.snapping=true] Whether to initially enable snap-to-vertex and snap-to-edge for this AngleMeasurementsMouseControl.
*/
constructor(angleMeasurementsPlugin: AngleMeasurementsPlugin, cfg?: {
pointerLens?: PointerLens;
snapping?: boolean;
canvasToPagePos? : Function;
});
/**
* Gets whether this AngleMeasurementsMouseControl is currently active, responding to input.
*
* @returns {boolean} True if active, false otherwise.
*/
get active(): boolean;
/**
* Sets whether snap-to-vertex and snap-to-edge are enabled for this AngleMeasurementsMouseControl.
*
* @param {boolean} snapping True to enable snap-to-vertex and snap-to-edge, false to disable.
*/
set snapping(snapping: boolean);
/**
* Gets whether snap-to-vertex and snap-to-edge are enabled for this AngleMeasurementsMouseControl.
*
* @returns {boolean} True if snap-to-vertex and snap-to-edge are enabled, false otherwise.
*/
get snapping(): boolean;
/**
* Activates this AngleMeasurementsMouseControl, making it responsive to input.
*/
activate(): void;
/**
* Deactivates this AngleMeasurementsMouseControl, making it unresponsive to input.
*/
deactivate(): void;
/**
* Resets this AngleMeasurementsMouseControl, destroying any AngleMeasurement under construction.
*/
reset(): void;
/**
* Gets the {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl, if any.
*
* @returns {null|AngleMeasurement}
*/
get currentMeasurement() : AngleMeasurement
/**
* Destroys this AngleMeasurementsMouseControl.
*/
destroy(): void;
}