import vtkPolyData from '@kitware/vtk.js/Common/DataModel/PolyData'; import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import type vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper'; import { BaseTool } from './base'; import type { Types } from '@cornerstonejs/core'; import type { EventTypes, PublicToolProps, ToolProps } from '../types'; import { type ClippingPlane } from '../utilities/volumeCropping'; declare class VolumeCroppingTool extends BaseTool { static toolName: any; seriesInstanceUID?: string; touchDragCallback: (evt: EventTypes.InteractionEventType) => void; mouseDragCallback: (evt: EventTypes.InteractionEventType) => void; cleanUp: () => void; _resizeObservers: Map; _viewportAddedListener: (evt: any) => void; _hasResolutionChanged: boolean; originalClippingPlanes: ClippingPlane[]; draggingSphereIndex: number | null; rotatePlanesOnDrag: boolean; suppressPlaneRotationForCurrentDrag: boolean; cornerDragOffset: [number, number, number] | null; faceDragOffset: number | null; volumeDirectionVectors: { xDir: Types.Point3; yDir: Types.Point3; zDir: Types.Point3; } | null; sphereStates: { point: Types.Point3; axis: string; uid: string; sphereSource: any; sphereActor: any; isCorner: boolean; color: number[]; }[]; edgeLines: { [uid: string]: { actor: vtkActor; source: vtkPolyData; key1: string; key2: string; }; }; constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps); onSetToolActive(): void; onSetToolConfiguration: () => void; onSetToolEnabled: () => void; onSetToolDisabled(): void; onCameraModified: (evt: any) => void; preMouseDownCallback: (evt: EventTypes.InteractionEventType) => boolean; setHandlesVisible(visible: boolean): void; getHandlesVisible(): any; setHandleRadius(radius: number): void; getClippingPlanesVisible(): any; setClippingPlanesVisible(visible: boolean): void; getRotatePlanesOnDrag(): boolean; setRotatePlanesOnDrag(enable: boolean): void; _dragCallback(evt: EventTypes.InteractionEventType): void; _onMouseMoveSphere: (evt: any) => boolean; _onControlToolChange: (evt: any) => void; _updateClippingPlanes(viewport: any): void; _updateHandlesVisibility(): void; _getViewportsInfo: () => any[]; _addSphere(viewport: Types.IVolumeViewport, point: Types.Point3, axis: string, position: string, cornerKey: string | null, adaptiveRadius: number): void; _getDirectionVectorForAxis(axis: string): Types.Point3; _initialize3DViewports: (viewportsInfo: Types.IViewportId[]) => void; _getViewportAndWorldCoords: (evt: any) => { viewport: import("@cornerstonejs/core").VolumeViewport; world: Types.Point3; }; _getViewport: () => Types.IVolumeViewport | null; _getVolumeActor(viewport?: Types.IVolumeViewport): Types.VolumeActor | undefined; _getVolumeMapper(viewport?: Types.IVolumeViewport): vtkVolumeMapper | undefined; _applyClippingPlanesToMapper(mapper: vtkVolumeMapper): void; _updateClippingPlanesFromFaceSpheres(viewport: any): void; _updateCornerSpheresFromFaces(): void; _updateFaceSpheresFromCorners(): void; _updateCornerSpheres(): void; _onNewVolume: () => void; _unsubscribeToViewportNewVolumeSet(viewportsInfo: any): void; _subscribeToViewportNewVolumeSet(viewports: any): void; _rotateClippingPlanes: (evt: EventTypes.InteractionEventType) => void; _getDirectionVectors(): { xDir: Types.Point3; yDir: Types.Point3; zDir: Types.Point3; }; _updateSpherePosition(sphereIndex: number, newPoint: Types.Point3): void; _updateFaceSpheresFromClippingPlanes(): void; _averagePoints(points: Types.Point3[]): Types.Point3; _notifyClippingPlanesChanged(viewport?: any): void; _calculateCornerFromFaces(faceX: Types.Point3, faceY: Types.Point3, faceZ: Types.Point3, xDir: Types.Point3, yDir: Types.Point3, zDir: Types.Point3): Types.Point3; _calculateCornerFromProjection(faceX: Types.Point3, faceY: Types.Point3, faceZ: Types.Point3, xDir: Types.Point3, yDir: Types.Point3, zDir: Types.Point3): Types.Point3; _updateEdgeLines(): void; _rotateCamera: (viewport: any, centerWorld: any, axis: any, angle: any) => void; } export default VolumeCroppingTool;