@speckle/viewer
Version:
A 3d viewer for Speckle, based on threejs.
35 lines (34 loc) • 1.46 kB
TypeScript
import { Box3, Camera, Object3D, Plane, Raycaster, Vector2, Vector3, type Intersection } from 'three';
import { ExtendedMeshIntersection } from '../../objects/SpeckleRaycaster.js';
export declare enum MeasurementState {
HIDDEN = 0,
DANGLING_START = 1,
DANGLING_END = 2,
COMPLETE = 3
}
export declare abstract class Measurement extends Object3D {
startPoint: Vector3;
endPoint: Vector3;
startNormal: Vector3;
endNormal: Vector3;
startLineLength: number;
endLineLength: number;
value: number;
units: string;
precision: number;
protected _state: MeasurementState;
protected renderingCamera: Camera | null;
protected renderingSize: Vector2;
set state(value: MeasurementState);
get state(): MeasurementState;
abstract set isVisible(value: boolean);
get bounds(): Box3;
frameUpdate(camera: Camera | null, size: Vector2, _bounds?: Box3): void;
abstract update(): Promise<void>;
abstract raycast(_raycaster: Raycaster, _intersects: Array<Intersection>): void;
abstract highlight(_value: boolean): void;
abstract updateClippingPlanes(_planes: Plane[]): void;
abstract locationUpdated(point?: Vector3, normal?: Vector3, ndcScreen?: Vector2): void;
abstract locationSelected(point?: Vector3, normal?: Vector3, ndcScreen?: Vector2): void;
snap?(ndcPoint: Vector2, intersection: ExtendedMeshIntersection, outPoint: Vector3, outNormal: Vector3): boolean;
}