import type { mat4 } from 'gl-matrix'; import type { BlendModes, InterpolationType } from '../enums'; import { OrientationAxis } from '../enums'; import type { ActorEntry, FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, ICamera } from '../types'; import type { VoiModifiedEventDetail } from '../types/EventTypes'; import type { PlaneRestriction, ViewportInput } from '../types/IViewport'; import type { TransferFunctionNodes } from '../types/ITransferFunctionNode'; import Viewport from './Viewport'; import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer'; declare abstract class BaseVolumeViewport extends Viewport { useCPURendering: boolean; private _FrameOfReferenceUID; private sharpening; private smoothing; protected initialTransferFunctionNodes: TransferFunctionNodes; private globalDefaultProperties; private perVolumeIdDefaultProperties; protected initialViewUp: Point3; protected viewportProperties: VolumeViewportProperties; private volumeIds; constructor(props: ViewportInput); static get useCustomRenderingPipeline(): boolean; isOrientationChangeable(): boolean; getSliceViewInfo(): { width: number; height: number; sliceIndex: number; slicePlane: number; sliceToIndexMatrix: mat4; indexToSliceMatrix: mat4; }; protected applyViewOrientation(orientation: OrientationAxis | OrientationVectors, resetCamera?: boolean, suppressEvents?: boolean): void; private initializeVolumeNewImageEventDispatcher; private setVOILUTFunction; private setColormap; private setOpacity; private setInvert; protected getVOIModifiedEventDetail(volumeId: string): VoiModifiedEventDetail; private _getOrCreateColorTransferFunction; protected setInterpolationType(interpolationType: InterpolationType, volumeId?: string): void; private setVOI; protected setRotation: (rotation: number) => void; private rotateCamera; setDefaultProperties(ViewportProperties: VolumeViewportProperties, volumeId?: string): void; clearDefaultProperties(volumeId?: string): void; getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference; isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean; scroll(delta?: number): void; abstract isInAcquisitionPlane(): boolean; setBestOrentation(inPlaneVector1: any, inPlaneVector2: any): void; setViewPlane(planeRestriction: PlaneRestriction): void; setViewReference(viewRef: ViewReference): void; private setThreshold; setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, sampleDistanceMultiplier, sharpening, smoothing, }?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void; private setSharpening; private setSmoothing; protected shouldUseCustomRenderPass(): boolean; getRenderPasses: () => any[]; protected _restoreVolumeRenderingDefaults(volumeActor: ActorEntry, volumeId: string): void; resetToDefaultProperties(volumeId: string): void; private setPreset; setSampleDistanceMultiplier(multiplier: number): void; getDefaultProperties: (volumeId?: string) => VolumeViewportProperties; getProperties: (volumeId?: string) => VolumeViewportProperties; private getColormap; setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise; addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise; removeVolumeActors(actorUIDs: string[], immediate?: boolean): void; setOrientation(_orientation: OrientationAxis | OrientationVectors, _immediate?: boolean, _suppressEvents?: boolean): void; private initializeColorTransferFunction; private _getApplicableVolumeActor; private _isValidVolumeInputArray; getRotation: () => number; getBounds(): number[]; flip(flipDirection: FlipDirection): void; getFrameOfReferenceUID: () => string; hasVolumeId(volumeId: string): boolean; hasVolumeURI(volumeURI: string): boolean; getImageData(volumeId?: string): IImageData | undefined; protected setCameraClippingRange(): void; getSliceIndex(): number; setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void; private _setVolumeActors; canvasToWorldTiled: (canvasPos: Point2) => Point3; canvasToWorldContextPool: (canvasPos: Point2) => Point3; getVtkDisplayCoordsTiled: (canvasPos: Point2) => Point3; getVtkDisplayCoordsContextPool: (canvasPos: Point2) => Point3; worldToCanvasTiled: (worldPos: Point3) => Point2; worldToCanvasContextPool: (worldPos: Point3) => Point2; getRendererContextPool(): vtkRenderer; getRendererTiled(): vtkRenderer; hasImageURI: (imageURI: string) => boolean; protected _getViewUp(viewPlaneNormal: any): Point3; protected _getOrientationVectors(orientation: OrientationAxis | OrientationVectors): OrientationVectors; protected _getAcquisitionPlaneOrientation(): OrientationVectors; getSlabThickness(): number; getIntensityFromWorld(point: Point3): number; getImageIds: (volumeId?: string) => string[]; abstract getCurrentImageId(): string | undefined; getVolumeId(specifier?: ViewReferenceSpecifier): string; getViewReferenceId(specifier?: ViewReferenceSpecifier): string; private _addVolumeId; abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void; abstract setSlabThickness(slabThickness: number, filterActorUIDs?: string[]): void; abstract resetSlabThickness(): void; abstract resetProperties(volumeId?: string): void; getAllVolumeIds(): string[]; private _configureRenderingPipeline; protected renderingPipelineFunctions: { worldToCanvas: { tiled: (worldPos: Point3) => Point2; contextPool: (worldPos: Point3) => Point2; }; canvasToWorld: { tiled: (canvasPos: Point2) => Point3; contextPool: (canvasPos: Point2) => Point3; }; getVtkDisplayCoords: { tiled: (canvasPos: Point2) => Point3; contextPool: (canvasPos: Point2) => Point3; }; getRenderer: { tiled: () => vtkRenderer; contextPool: () => vtkRenderer; }; }; } export default BaseVolumeViewport;