All files / core/src/types CPUIImageData.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59                                                                                                                     
import type { Point3 } from './Point3';
import type { Scaling } from './ScalingParameters';
import type Mat3 from './Mat3';
import type { PixelDataTypedArray } from './PixelDataTypedArray';
import type RGB from './RGB';
import type { VoxelManager } from '../utilities';
import type IImageCalibration from './IImageCalibration';
import type { IVoxelManager } from './IVoxelManager';
 
interface CPUImageData {
  worldToIndex?: (point: Point3) => Point3;
  indexToWorld?: (point: Point3) => Point3;
  getWorldToIndex?: () => Point3;
  getIndexToWorld?: () => Point3;
  /** Last spacing is always EPSILON */
  getSpacing?: () => Point3;
  getDirection?: () => Mat3;
  getScalarData?: () => PixelDataTypedArray;
  /** Last index is always 1 */
  getDimensions?: () => Point3;
  getRange?: () => [number, number];
}
 
interface CPUIImageData {
  dimensions: Point3;
  direction: Mat3;
  spacing: Point3;
  numberOfComponents?: number;
  origin: Point3;
  imageData: CPUImageData;
  metadata: { Modality: string; FrameOfReferenceUID: string };
  scalarData: PixelDataTypedArray;
  scaling?: Scaling;
  /** whether the image has pixel spacing and it is not undefined */
  hasPixelSpacing?: boolean;
  calibration?: IImageCalibration;
 
  voxelManager?: IVoxelManager<number> | IVoxelManager<RGB>;
  preScale?: {
    /** boolean flag to indicate whether the image has been scaled */
    scaled?: boolean;
    /** scaling parameters */
    scalingParameters?: {
      /** modality of the image */
      modality?: string;
      /** rescale slop */
      rescaleSlope?: number;
      /** rescale intercept */
      rescaleIntercept?: number;
      /** PT suvbw */
      suvbw?: number;
    };
  };
}
 
export type { CPUIImageData as default };
 
export type { CPUImageData };