UNPKG

@speckle/viewer

Version:

A 3d viewer for Speckle, based on threejs.

72 lines (71 loc) 2.69 kB
import SpeckleRenderer from '../../SpeckleRenderer.js'; import { type IViewer } from '../../../IViewer.js'; import { Plane, Raycaster, Vector2, Vector3 } from 'three'; import { Measurement } from './Measurement.js'; import { ExtendedMeshIntersection } from '../../objects/SpeckleRaycaster.js'; import { Extension } from '../Extension.js'; import { CameraController } from '../CameraController.js'; export declare enum MeasurementType { PERPENDICULAR = 0, POINTTOPOINT = 1, AREA = 2, POINT = 3 } export interface MeasurementOptions { visible: boolean; type?: MeasurementType; vertexSnap?: boolean; units?: string; precision?: number; chain?: boolean; } export declare class MeasurementsExtension extends Extension { protected cameraProvider: CameraController; get inject(): (typeof CameraController)[]; protected renderer: SpeckleRenderer; protected measurements: Measurement[]; protected _activeMeasurement: Measurement | null; protected _selectedMeasurement: Measurement | null; protected raycaster: Raycaster; protected _options: MeasurementOptions; private _frameLock; private _paused; private _sceneHit; private pointBuff; private normalBuff; private screenBuff0; private screenBuff1; get enabled(): boolean; set enabled(value: boolean); get options(): MeasurementOptions; set options(options: MeasurementOptions); get selectedMeasurement(): Measurement | null; get activeMeasurement(): Measurement | null; constructor(viewer: IViewer, cameraProvider: CameraController); onLateUpdate(): void; onResize(): void; protected onPointerMove(data: Vector2 & { event: Event; }): void; protected onPointerClick(data: { event: PointerEvent; multiSelect: boolean; } & Vector2): void; protected onPointerDoubleClick(data: Vector2 & { event: PointerEvent; multiSelect: boolean; }): void; protected autoLazerMeasure(data: Vector2): void; protected startMeasurement(): Measurement; protected cancelMeasurement(): void; protected finishMeasurement(): void; removeMeasurement(): void; clearMeasurements(): void; protected flashMeasurement(): void; protected pickMeasurement(data: Vector2): Measurement | null; protected selectMeasurement(measurement: Measurement, value: boolean): void; protected snap(intersection: ExtendedMeshIntersection, outPoint: Vector3, outNormal: Vector3): void; protected updateClippingPlanes(planes: Plane[]): void; protected applyOptions(): void; fromMeasurementData(startPoint: Vector3, endPoint: Vector3): Promise<void>; }