UNPKG

@cornerstonejs/core

Version:
161 lines (160 loc) • 6.95 kB
import { InterpolationType } from '../enums/index.js'; import type { BoundsIJK, Mat3, Point3, PixelDataTypedArray, IImage, RGB, CPUImageData, IVoxelManager, IRLEVoxelMap, Point2 } from '../types/index.js'; import type vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData'; type VoxelVolumeGeometry = { origin: Point3; spacing: Point3; direction: Mat3; }; type SampleableVoxelVolume = VoxelVolumeGeometry & { dimensions: Point3; voxelManager?: IVoxelManager<number> | IVoxelManager<RGB>; }; export default class VoxelManager<T> { modifiedSlices: Set<number>; private boundsIJK; map: Map<number, T> | IRLEVoxelMap<T>; sourceVoxelManager: IVoxelManager<T>; isInObject: (pointLPS: any, pointIJK: any) => boolean; readonly dimensions: Point3; readonly numberOfComponents: number; getCompleteScalarDataArray?: () => ArrayLike<number>; setCompleteScalarDataArray?: (scalarData: ArrayLike<number>) => void; invalidateCache?: () => void; getRange: () => [number, number]; private scalarData; private _scalarDataIsCachedExpansion; private _sliceDataCache; readonly _id: string; points: Set<number>; width: number; frameSize: number; readonly _get: (index: number) => T; readonly _set: (index: number, v: T) => boolean; readonly _getConstructor?: () => new (length: number) => PixelDataTypedArray; _getScalarDataLength?: () => number; _getScalarData?: () => ArrayLike<number>; _updateScalarData?: (scalarData: ArrayLike<number>) => PixelDataTypedArray; _getSliceData: (args: { sliceIndex: number; slicePlane: number; }) => PixelDataTypedArray; get id(): string; constructor(dimensions: any, options: { _get: (index: number) => T; _set?: (index: number, v: T) => boolean; _getScalarData?: () => ArrayLike<number>; _id?: string; _updateScalarData?: (scalarData: ArrayLike<number>) => PixelDataTypedArray; numberOfComponents?: number; scalarData?: ArrayLike<number>; _getConstructor?: () => new (length: number) => PixelDataTypedArray; }); getAtIJK: (i: any, j: any, k: any) => T; setAtIJK: (i: number, j: number, k: number, v: any) => boolean; getAtIJKPoint: ([i, j, k]: [any, any, any]) => T; setAtIJKPoint: ([i, j, k]: Point3, v: any) => void; getAtIndex: (index: any) => T; getMinMax(): { min: any; max: any; }; setAtIndex: (index: any, v: any) => boolean; private invalidateCachedScalarExpansion; toIJK(index: number): Point3; getMiddleSliceData: () => PixelDataTypedArray; toIndex(ijk: Point3): number; getDefaultBounds(): BoundsIJK; getBoundsIJK(): BoundsIJK; forEach: (callback: (args: { value: unknown; index: number; pointIJK: Point3; pointLPS: Point3; }) => void, options?: { boundsIJK?: BoundsIJK; isInObject?: (pointLPS: any, pointIJK: any) => boolean; returnPoints?: boolean; imageData?: vtkImageData | CPUImageData; }) => void | any[]; rleForEach(callback: any, options?: any): void; getScalarData(storeScalarData?: boolean): PixelDataTypedArray; setScalarData(newScalarData: PixelDataTypedArray): void; getScalarDataLength(): number; get sizeInBytes(): number; get bytePerVoxel(): number; clearBounds(): void; clear(): void; getConstructor(): new (length: number) => PixelDataTypedArray; getArrayOfModifiedSlices(): number[]; resetModifiedSlices(): void; setBounds(bounds: BoundsIJK): void; static addBounds(bounds: BoundsIJK, point: Point3): void; private static getWorldToIndexTransform; static worldToIndexContinuous(volumeGeometry: VoxelVolumeGeometry, worldPos: Point3): Point3; static sampleAtWorldCoordinates(volume: SampleableVoxelVolume, worldX: number, worldY: number, worldZ: number, interpolationType?: InterpolationType): number; static sampleAtWorld(volume: SampleableVoxelVolume, worldPos: Point3, interpolationType?: InterpolationType): number; static sampleAtContinuousIndex(voxelManager: IVoxelManager<number> | IVoxelManager<RGB>, dimensions: Point3, continuousIndex: Point3, interpolationType?: InterpolationType): number; private static sampleAtContinuousCoordinates; private static sampleNearestAtContinuousCoordinates; private static sampleLinearAtContinuousCoordinates; addPoint(point: Point3 | number): void; getPoints(): Point3[]; getSliceData: ({ sliceIndex, slicePlane, }: { sliceIndex: number; slicePlane: number; }) => PixelDataTypedArray; private setSliceDataValue; private toNumber; private static _createRGBScalarVolumeVoxelManager; static createImageVolumeVoxelManager({ dimensions, imageIds, numberOfComponents, id, }: { dimensions: Point3; imageIds: string[]; numberOfComponents: number; id?: string; }): IVoxelManager<number> | IVoxelManager<RGB>; static createScalarVolumeVoxelManager({ dimensions, scalarData, numberOfComponents, id, }: { dimensions: Point3; scalarData: any; numberOfComponents?: number; id?: string; }): IVoxelManager<number> | IVoxelManager<RGB>; static createScalarDynamicVolumeVoxelManager({ imageIdGroups, dimensions, dimensionGroupNumber, timePoint, numberOfComponents, id, }: { imageIdGroups: string[][]; dimensions: Point3; dimensionGroupNumber?: number; timePoint?: number; numberOfComponents?: number; id?: string; }): IVoxelManager<number> | IVoxelManager<RGB>; static createImageVoxelManager({ width, height, scalarData, numberOfComponents, id, }: { width: number; height: number; scalarData: PixelDataTypedArray; numberOfComponents?: number; id?: string; }): IVoxelManager<number> | IVoxelManager<RGB>; private static _createNumberVolumeVoxelManager; static createMapVoxelManager<T>({ dimension, id, }: { dimension: Point3; id?: string; }): IVoxelManager<T>; static createHistoryVoxelManager<T>(sourceVoxelManager: VoxelManager<T>, id?: string): VoxelManager<T>; static createRLEHistoryVoxelManager<T>(sourceVoxelManager: VoxelManager<T>, id?: string): VoxelManager<T>; static createLazyVoxelManager<T>({ dimensions, planeFactory, id, }: { dimensions: Point3; planeFactory: (width: number, height: number) => T; id?: string; }): VoxelManager<T>; static createRLEVolumeVoxelManager<T>({ dimensions, id, }: { dimensions: Point3; id?: string; }): VoxelManager<T>; static createRLEImageVoxelManager<T>({ dimensions, id, }: { dimensions: Point2; id?: string; }): VoxelManager<T>; static addInstanceToImage(image: IImage): void; static: any; } export type { VoxelManager };