@kitware/vtk.js
Version:
Visualization Toolkit for the Web
162 lines (141 loc) • 5.51 kB
TypeScript
import {
vtkAbstractImageMapper,
IAbstractImageMapperInitialValues,
} from './AbstractImageMapper';
import { IClosestIJKAxis } from './ImageMapper';
import { Bounds, Nullable } from './../../types';
import { SlicingMode } from './ImageMapper/Constants';
import { vtkImageData } from './../../Common/DataModel/ImageData';
import { vtkCollection } from './../../Common/DataModel/Collection';
import {
CoincidentTopologyHelper,
StaticCoincidentTopologyMethods,
} from './Mapper/CoincidentTopologyHelper';
interface ISliceToSubSlice {
imageIndex: number;
subSlice: number;
}
export interface IImageArrayMapperInitialValues
extends IAbstractImageMapperInitialValues {
slicingMode: SlicingMode.K;
sliceToSubSliceMap: ISliceToSubSlice[];
}
export interface vtkImageArrayMapper
extends vtkAbstractImageMapper,
CoincidentTopologyHelper {
/**
*
* @param inputData set input as a vtkCollection of vtkImageData objects.
*/
setInputData(inputData: vtkCollection): void;
/**
* Get vtkImageData corresponding to the provided (global) slice number.
* @param slice (global) slice number. If a slice number is not provided,
* the function uses the current slice number (i.e. the output of getSlice()).
*/
getImage(slice?: number): Nullable<vtkImageData>;
/**
* Return currently active image. This depends on the currently active slice number.
*/
getCurrentImage(): Nullable<vtkImageData>;
/**
* Get the bounds for this mapper as [xmin, xmax, ymin, ymax,zmin, zmax].
* @return {Bounds} The bounds for the mapper.
*/
getBounds(): Bounds;
/**
* Get the bounds for a given slice as [xmin, xmax, ymin, ymax,zmin, zmax].
* @param {Number} [slice] The slice index. If undefined, the current slice is considered.
* @param {Number} [halfThickness] Half the slice thickness in index space (unit voxel
* spacing). If undefined, 0 is considered.
* @return {Bounds} The bounds for a given slice.
*/
getBoundsForSlice(slice?: number, halfThickness?: number): Bounds;
/**
* Get the closest IJK axis
* @return {IClosestIJKAxis} The axis object.
*/
getClosestIJKAxis(): IClosestIJKAxis;
/**
* Calculate the total number of slices in the input collection.
*/
computeTotalSlices(): number;
/**
* Fetch the pre-calculated total number of slices in the input collection.
*/
getTotalSlices(): number;
/**
*
* @param {Number} slice The slice index.
*/
setSlice(slice: number): boolean;
/**
* Calculate the global slice number that corresponds to the provided image and subSlice number.
* The global slice number corresponds to the total number of 2D image frames that a collection has.
* @param imageIndex The image number is the index of the vtkImageData object in the input collection.
* @param subSlice The subSlice number is the k-index of a slice within a vtkImageData object in the input collection.
*/
computeSlice(imageIndex: number, subSlice: number): number;
/**
* Get the vtkImageData index corresponding to the provided global slice number.
* @param slice global slice number. If a slice number is not provided,
* the function uses the current slice number (i.e. the output of getSlice()).
*/
getImageIndex(slice?: number): number;
/**
* Given a global slice number, identify the subSlice number (slice k-index within a vtkImageData).
* @param slice global slice number. If a slice number is not provided,
* the function uses the current slice number (i.e. the output of getSlice()).
*/
getSubSlice(slice?: number): number;
/**
* Set the slicing mode.
* @param {Number} mode The slicing mode.
*/
setSlicingMode(mode: number): boolean;
/**
*
* @param {Number[]} p1 The coordinates of the first point.
* @param {Number[]} p2 The coordinates of the second point.
*/
intersectWithLineForPointPicking(p1: number[], p2: number[]): any;
/**
*
* @param {Number[]} p1 The coordinates of the first point.
* @param {Number[]} p2 The coordinates of the second point.
*/
intersectWithLineForCellPicking(p1: number[], p2: number[]): any;
}
/**
* Method use to decorate a given object (publicAPI+model) with vtkImageArrayMapper characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param {IImageArrayMapperInitialValues} [initialValues] (default: {})
*/
export function extend(
publicAPI: object,
model: object,
initialValues?: IImageArrayMapperInitialValues
): void;
/**
* Method use to create a new instance of vtkImageArrayMapper
* @param {IImageArrayMapperInitialValues} [initialValues] for pre-setting some of its content
*/
export function newInstance(
initialValues?: IImageArrayMapperInitialValues
): vtkImageArrayMapper;
/**
* vtkImageArrayMapper provides display support for a collection of single/multi-frame images.
* Images can have variable dimensions (width, height, depth in pixels), can be mixture of
* color (RGB) and grayscale images, origin point and direction cosines.
* It can be associated with a vtkImageSlice prop and placed within a Renderer.
*
* This class resolves coincident topology with the same methods as vtkMapper.
*/
export declare const vtkImageArrayMapper: {
newInstance: typeof newInstance;
extend: typeof extend;
SlicingMode: typeof SlicingMode;
} & StaticCoincidentTopologyMethods;
export default vtkImageArrayMapper;