import Composition from '../../Composition'; import VoxelCloud from '../../annotation/VoxelCloud'; import DraggableTool from '../DraggableTool'; import Viewer from '../../viewer/Viewer'; import ViewerEvent from '../../viewer/ViewerEvent'; import { Vector2, Vector3 } from 'three'; /** * VoxelCloudToolBase is a base tool that affects VoxelCloud annotations. */ export default class VoxelCloudToolBase extends DraggableTool { protected usePointerLockAPI: boolean; protected activeCloud: VoxelCloud | null; protected pX: number | undefined; protected pY: number | undefined; constructor(); activate(viewer: Viewer): void; deactivate(viewer: Viewer): void; protected convertViewerPoint(point: Vector2, viewer: Viewer): Vector3; protected draw3DLineWithValue(viewer: Viewer, start: Vector2, end: Vector2, value: number): void; protected draw3DLineWithValueAndWidth(viewer: Viewer, start: Vector2, end: Vector2, value: number, width?: number): void; /** * Find the active VoxelCloud annotation in a composition * @return If there is only one active VoxelCloud instance, returns it. */ protected getActiveCloud(composition: Composition): VoxelCloud | null; mouseMoveHandler(ev: ViewerEvent): void; dragStartHandler(ev: ViewerEvent): void; dragDraw(ev: ViewerEvent, value: number, width: number): void; dragEndHandler(ev: ViewerEvent): void; }