@cornerstonejs/core 0.36.3 → 0.36.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RenderingEngine/VolumeViewport3D.d.ts +1 -0
- package/dist/cjs/RenderingEngine/VolumeViewport3D.js +3 -0
- package/dist/cjs/RenderingEngine/VolumeViewport3D.js.map +1 -1
- package/dist/cjs/utilities/getSliceRange.js +2 -1
- package/dist/cjs/utilities/getSliceRange.js.map +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +1 -0
- package/dist/esm/RenderingEngine/VolumeViewport3D.js +3 -0
- package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
- package/dist/esm/utilities/getSliceRange.js +2 -1
- package/dist/esm/utilities/getSliceRange.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -3
- package/src/RenderingEngine/BaseVolumeViewport.ts +847 -0
- package/src/RenderingEngine/RenderingEngine.ts +1364 -0
- package/src/RenderingEngine/StackViewport.ts +2690 -0
- package/src/RenderingEngine/Viewport.ts +1244 -0
- package/src/RenderingEngine/VolumeViewport.ts +420 -0
- package/src/RenderingEngine/VolumeViewport3D.ts +46 -0
- package/src/RenderingEngine/getRenderingEngine.ts +34 -0
- package/src/RenderingEngine/helpers/addVolumesToViewports.ts +52 -0
- package/src/RenderingEngine/helpers/cpuFallback/colors/colormap.ts +343 -0
- package/src/RenderingEngine/helpers/cpuFallback/colors/index.ts +4 -0
- package/src/RenderingEngine/helpers/cpuFallback/colors/lookupTable.ts +469 -0
- package/src/RenderingEngine/helpers/cpuFallback/drawImageSync.ts +58 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.ts +136 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/canvasToPixel.ts +25 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/computeAutoVoi.ts +47 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/correctShift.ts +38 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/createViewport.ts +64 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/doesImageNeedToBeRendered.ts +36 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/fitToWindow.ts +22 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.ts +60 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/generateLut.ts +83 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.ts +88 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getImageFitScale.ts +52 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getImageSize.ts +55 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getLut.ts +53 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getModalityLut.ts +55 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getTransform.ts +17 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/getVOILut.ts +74 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/initializeRenderCanvas.ts +37 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.ts +21 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/now.ts +13 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/pixelToCanvas.ts +22 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.ts +193 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.ts +166 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.ts +203 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/resetCamera.ts +32 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/resize.ts +109 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/saveLastRendered.ts +36 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/setDefaultViewport.ts +17 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/setToPixelCoordinateSystem.ts +32 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.ts +58 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.ts +76 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataColorLUT.ts +60 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.ts +50 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUT.ts +66 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUTPET.ts +68 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.ts +81 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.ts +56 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/transform.ts +126 -0
- package/src/RenderingEngine/helpers/cpuFallback/rendering/validator.ts +31 -0
- package/src/RenderingEngine/helpers/createVolumeActor.ts +103 -0
- package/src/RenderingEngine/helpers/createVolumeMapper.ts +37 -0
- package/src/RenderingEngine/helpers/getOrCreateCanvas.ts +58 -0
- package/src/RenderingEngine/helpers/index.ts +15 -0
- package/src/RenderingEngine/helpers/isRgbaSourceRgbDest.ts +1 -0
- package/src/RenderingEngine/helpers/setDefaultVolumeVOI.ts +227 -0
- package/src/RenderingEngine/helpers/setVolumesForViewports.ts +52 -0
- package/src/RenderingEngine/helpers/viewportTypeToViewportClass.ts +14 -0
- package/src/RenderingEngine/helpers/viewportTypeUsesCustomRenderingPipeline.ts +7 -0
- package/src/RenderingEngine/helpers/volumeNewImageEventDispatcher.ts +75 -0
- package/src/RenderingEngine/index.ts +23 -0
- package/src/RenderingEngine/renderingEngineCache.ts +43 -0
- package/src/RenderingEngine/vtkClasses/index.js +11 -0
- package/src/RenderingEngine/vtkClasses/vtkOffscreenMultiRenderWindow.js +149 -0
- package/src/RenderingEngine/vtkClasses/vtkSharedVolumeMapper.js +52 -0
- package/src/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +781 -0
- package/src/RenderingEngine/vtkClasses/vtkSlabCamera.js +155 -0
- package/src/RenderingEngine/vtkClasses/vtkStreamingOpenGLRenderWindow.js +47 -0
- package/src/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +272 -0
- package/src/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +159 -0
- package/src/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +319 -0
- package/src/Settings.ts +294 -0
- package/src/cache/cache.ts +854 -0
- package/src/cache/classes/Contour.ts +70 -0
- package/src/cache/classes/ContourSet.ts +151 -0
- package/src/cache/classes/ImageVolume.ts +155 -0
- package/src/cache/index.ts +5 -0
- package/src/constants/cpuColormaps.ts +1537 -0
- package/src/constants/epsilon.ts +3 -0
- package/src/constants/index.ts +13 -0
- package/src/constants/mprCameraValues.ts +20 -0
- package/src/constants/rendering.ts +8 -0
- package/src/constants/viewportPresets.ts +357 -0
- package/src/enums/BlendModes.ts +23 -0
- package/src/enums/ContourType.ts +6 -0
- package/src/enums/Events.ts +196 -0
- package/src/enums/GeometryType.ts +5 -0
- package/src/enums/InterpolationType.ts +13 -0
- package/src/enums/OrientationAxis.ts +8 -0
- package/src/enums/RequestType.ts +13 -0
- package/src/enums/SharedArrayBufferModes.ts +11 -0
- package/src/enums/VOILUTFunctionType.ts +10 -0
- package/src/enums/ViewportType.ts +21 -0
- package/src/enums/index.ts +23 -0
- package/src/eventTarget.ts +67 -0
- package/src/getEnabledElement.ts +105 -0
- package/src/global.ts +8 -0
- package/src/index.ts +123 -0
- package/src/init.ts +247 -0
- package/src/loaders/geometryLoader.ts +108 -0
- package/src/loaders/imageLoader.ts +298 -0
- package/src/loaders/volumeLoader.ts +477 -0
- package/src/metaData.ts +84 -0
- package/src/requestPool/imageLoadPoolManager.ts +43 -0
- package/src/requestPool/imageRetrievalPoolManager.ts +25 -0
- package/src/requestPool/requestPoolManager.ts +329 -0
- package/src/types/ActorSliceRange.ts +17 -0
- package/src/types/CPUFallbackColormap.ts +23 -0
- package/src/types/CPUFallbackColormapData.ts +12 -0
- package/src/types/CPUFallbackColormapsData.ts +7 -0
- package/src/types/CPUFallbackEnabledElement.ts +71 -0
- package/src/types/CPUFallbackLUT.ts +5 -0
- package/src/types/CPUFallbackLookupTable.ts +17 -0
- package/src/types/CPUFallbackRenderingTools.ts +25 -0
- package/src/types/CPUFallbackTransform.ts +16 -0
- package/src/types/CPUFallbackViewport.ts +29 -0
- package/src/types/CPUFallbackViewportDisplayedArea.ts +15 -0
- package/src/types/CPUIImageData.ts +47 -0
- package/src/types/ContourData.ts +19 -0
- package/src/types/Cornerstone3DConfig.ts +31 -0
- package/src/types/CustomEventType.ts +14 -0
- package/src/types/EventTypes.ts +403 -0
- package/src/types/FlipDirection.ts +9 -0
- package/src/types/IActor.ts +23 -0
- package/src/types/ICache.ts +28 -0
- package/src/types/ICachedGeometry.ts +13 -0
- package/src/types/ICachedImage.ts +13 -0
- package/src/types/ICachedVolume.ts +12 -0
- package/src/types/ICamera.ts +36 -0
- package/src/types/IContour.ts +18 -0
- package/src/types/IContourSet.ts +56 -0
- package/src/types/IDynamicImageVolume.ts +18 -0
- package/src/types/IEnabledElement.ts +21 -0
- package/src/types/IGeometry.ts +12 -0
- package/src/types/IImage.ts +113 -0
- package/src/types/IImageData.ts +45 -0
- package/src/types/IImageVolume.ts +78 -0
- package/src/types/ILoadObject.ts +36 -0
- package/src/types/IRegisterImageLoader.ts +10 -0
- package/src/types/IRenderingEngine.ts +28 -0
- package/src/types/IStackViewport.ts +138 -0
- package/src/types/IStreamingImageVolume.ts +13 -0
- package/src/types/IStreamingVolumeProperties.ts +14 -0
- package/src/types/IViewport.ts +149 -0
- package/src/types/IViewportId.ts +9 -0
- package/src/types/IVolume.ts +45 -0
- package/src/types/IVolumeInput.ts +36 -0
- package/src/types/IVolumeViewport.ts +141 -0
- package/src/types/ImageLoaderFn.ts +16 -0
- package/src/types/ImageSliceData.ts +6 -0
- package/src/types/Mat3.ts +16 -0
- package/src/types/Metadata.ts +39 -0
- package/src/types/OrientationVectors.ts +36 -0
- package/src/types/Plane.ts +6 -0
- package/src/types/Point2.ts +6 -0
- package/src/types/Point3.ts +6 -0
- package/src/types/Point4.ts +6 -0
- package/src/types/ScalingParameters.ts +27 -0
- package/src/types/StackViewportProperties.ts +25 -0
- package/src/types/TransformMatrix2D.ts +4 -0
- package/src/types/ViewportInputOptions.ts +21 -0
- package/src/types/ViewportPreset.ts +14 -0
- package/src/types/VolumeLoaderFn.ts +18 -0
- package/src/types/VolumeViewportProperties.ts +14 -0
- package/src/types/index.ts +157 -0
- package/src/types/voi.ts +15 -0
- package/src/utilities/actorCheck.ts +24 -0
- package/src/utilities/applyPreset.ts +132 -0
- package/src/utilities/calculateViewportsSpatialRegistration.ts +74 -0
- package/src/utilities/calibratedPixelSpacingMetadataProvider.ts +38 -0
- package/src/utilities/createFloat32SharedArray.ts +45 -0
- package/src/utilities/createInt16SharedArray.ts +43 -0
- package/src/utilities/createLinearRGBTransferFunction.ts +22 -0
- package/src/utilities/createSigmoidRGBTransferFunction.ts +63 -0
- package/src/utilities/createUInt16SharedArray.ts +43 -0
- package/src/utilities/createUint8SharedArray.ts +45 -0
- package/src/utilities/deepFreeze.ts +19 -0
- package/src/utilities/deepMerge.ts +81 -0
- package/src/utilities/getClosestImageId.ts +80 -0
- package/src/utilities/getClosestStackImageIndexForPoint.ts +116 -0
- package/src/utilities/getImageSliceDataForVolumeViewport.ts +61 -0
- package/src/utilities/getMinMax.ts +31 -0
- package/src/utilities/getRuntimeId.ts +54 -0
- package/src/utilities/getScalarDataType.ts +31 -0
- package/src/utilities/getScalingParameters.ts +35 -0
- package/src/utilities/getSliceRange.ts +86 -0
- package/src/utilities/getSpacingInNormalDirection.ts +44 -0
- package/src/utilities/getTargetVolumeAndSpacingInNormalDir.ts +126 -0
- package/src/utilities/getViewportImageCornersInWorld.ts +102 -0
- package/src/utilities/getViewportsWithImageURI.ts +46 -0
- package/src/utilities/getViewportsWithVolumeId.ts +38 -0
- package/src/utilities/getVoiFromSigmoidRGBTransferFunction.ts +23 -0
- package/src/utilities/getVolumeActorCorners.ts +24 -0
- package/src/utilities/getVolumeSliceRangeInfo.ts +52 -0
- package/src/utilities/getVolumeViewportScrollInfo.ts +32 -0
- package/src/utilities/getVolumeViewportsContainingSameVolumes.ts +58 -0
- package/src/utilities/hasNaNValues.ts +12 -0
- package/src/utilities/imageIdToURI.ts +10 -0
- package/src/utilities/imageToWorldCoords.ts +54 -0
- package/src/utilities/index.ts +100 -0
- package/src/utilities/indexWithinDimensions.ts +27 -0
- package/src/utilities/invertRgbTransferFunction.ts +36 -0
- package/src/utilities/isEqual.ts +27 -0
- package/src/utilities/isOpposite.ts +23 -0
- package/src/utilities/isTypedArray.ts +20 -0
- package/src/utilities/loadImageToCanvas.ts +80 -0
- package/src/utilities/planar.ts +91 -0
- package/src/utilities/renderToCanvas.ts +32 -0
- package/src/utilities/scaleRgbTransferFunction.ts +37 -0
- package/src/utilities/snapFocalPointToSlice.ts +78 -0
- package/src/utilities/spatialRegistrationMetadataProvider.ts +50 -0
- package/src/utilities/transformWorldToIndex.ts +16 -0
- package/src/utilities/triggerEvent.ts +38 -0
- package/src/utilities/uuidv4.ts +13 -0
- package/src/utilities/windowLevel.ts +39 -0
- package/src/utilities/worldToImageCoords.ts +64 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import CPUFallbackLUT from './CPUFallbackLUT';
|
|
2
|
+
import CPUFallbackColormap from './CPUFallbackColormap';
|
|
3
|
+
import CPUFallbackEnabledElement from './CPUFallbackEnabledElement';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Cornerstone Image interface, it is used for both CPU and GPU rendering
|
|
7
|
+
*/
|
|
8
|
+
interface IImage {
|
|
9
|
+
/** Image Id */
|
|
10
|
+
imageId: string;
|
|
11
|
+
sharedCacheKey?: string;
|
|
12
|
+
/** Whether the image is Pre-scaled during loading */
|
|
13
|
+
isPreScaled?: boolean;
|
|
14
|
+
/** preScale object */
|
|
15
|
+
preScale?: {
|
|
16
|
+
/** boolean flag to indicate whether the image has been scaled */
|
|
17
|
+
scaled: boolean;
|
|
18
|
+
/** scaling parameters */
|
|
19
|
+
scalingParameters: {
|
|
20
|
+
/** modality of the image */
|
|
21
|
+
modality?: string;
|
|
22
|
+
/** rescale slop */
|
|
23
|
+
rescaleSlope?: number;
|
|
24
|
+
/** rescale intercept */
|
|
25
|
+
rescaleIntercept?: number;
|
|
26
|
+
/** PT suvbw */
|
|
27
|
+
suvbw?: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/** minimum pixel value of the image */
|
|
31
|
+
minPixelValue: number;
|
|
32
|
+
/* maximum pixel value of the image */
|
|
33
|
+
maxPixelValue: number;
|
|
34
|
+
/** slope from metadata for scaling */
|
|
35
|
+
slope: number;
|
|
36
|
+
/** intercept from metadata for scaling */
|
|
37
|
+
intercept: number;
|
|
38
|
+
/** windowCenter from metadata */
|
|
39
|
+
windowCenter: number[] | number;
|
|
40
|
+
/** windowWidth from metadata */
|
|
41
|
+
windowWidth: number[] | number;
|
|
42
|
+
/** voiLUTFunction from metadata */
|
|
43
|
+
voiLUTFunction: string;
|
|
44
|
+
/** function that returns the pixelData as an array */
|
|
45
|
+
getPixelData: () => Array<number>;
|
|
46
|
+
getCanvas: () => HTMLCanvasElement;
|
|
47
|
+
/** image number of rows */
|
|
48
|
+
rows: number;
|
|
49
|
+
/** image number of columns */
|
|
50
|
+
columns: number;
|
|
51
|
+
/** image height */
|
|
52
|
+
height: number;
|
|
53
|
+
/** image width */
|
|
54
|
+
width: number;
|
|
55
|
+
/** is image a color image */
|
|
56
|
+
color: boolean;
|
|
57
|
+
/** is image rgb and alpha */
|
|
58
|
+
rgba: boolean;
|
|
59
|
+
/** number of components in the image */
|
|
60
|
+
numComps: number;
|
|
61
|
+
/** CPU: custom render method for the image */
|
|
62
|
+
render?: (
|
|
63
|
+
enabledElement: CPUFallbackEnabledElement,
|
|
64
|
+
invalidated: boolean
|
|
65
|
+
) => unknown;
|
|
66
|
+
/** column pixel spacing */
|
|
67
|
+
columnPixelSpacing: number;
|
|
68
|
+
/** row pixel spacing */
|
|
69
|
+
rowPixelSpacing: number;
|
|
70
|
+
/** slice thickness */
|
|
71
|
+
sliceThickness?: number;
|
|
72
|
+
/** whether image pixels are inverted in color */
|
|
73
|
+
invert: boolean;
|
|
74
|
+
/** image size in number of bytes */
|
|
75
|
+
sizeInBytes: number;
|
|
76
|
+
/** CPU: custom modality LUT for image */
|
|
77
|
+
modalityLUT?: CPUFallbackLUT;
|
|
78
|
+
/** CPU: custom VOI LUT for image */
|
|
79
|
+
voiLUT?: CPUFallbackLUT;
|
|
80
|
+
/** CPU: custom color map for image */
|
|
81
|
+
colormap?: CPUFallbackColormap;
|
|
82
|
+
/** image scaling metadata - including PT suv values */
|
|
83
|
+
scaling?: {
|
|
84
|
+
PET?: {
|
|
85
|
+
// @TODO: Do these values exist?
|
|
86
|
+
SUVlbmFactor?: number;
|
|
87
|
+
SUVbsaFactor?: number;
|
|
88
|
+
// accessed in ProbeTool
|
|
89
|
+
suvbwToSuvlbm?: number;
|
|
90
|
+
suvbwToSuvbsa?: number;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/** CPU: image statistics for rendering */
|
|
94
|
+
stats?: {
|
|
95
|
+
lastStoredPixelDataToCanvasImageDataTime?: number;
|
|
96
|
+
lastGetPixelDataTime?: number;
|
|
97
|
+
lastPutImageDataTime?: number;
|
|
98
|
+
lastLutGenerateTime?: number;
|
|
99
|
+
lastRenderedViewport?: unknown;
|
|
100
|
+
lastRenderTime?: number;
|
|
101
|
+
};
|
|
102
|
+
/** CPU: image cached LUT */
|
|
103
|
+
cachedLut?: {
|
|
104
|
+
windowWidth?: number | number[];
|
|
105
|
+
windowCenter?: number | number[];
|
|
106
|
+
invert?: boolean;
|
|
107
|
+
lutArray?: Uint8ClampedArray;
|
|
108
|
+
modalityLUT?: unknown;
|
|
109
|
+
voiLUT?: CPUFallbackLUT;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default IImage;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
+
import { Point3, Scaling, Mat3 } from '../types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* IImageData of an image, which stores actual scalarData and metaData about the image.
|
|
6
|
+
* IImageData is different from vtkImageData.
|
|
7
|
+
*/
|
|
8
|
+
interface IImageData {
|
|
9
|
+
/** image dimensions */
|
|
10
|
+
dimensions: Point3;
|
|
11
|
+
/** image direction */
|
|
12
|
+
direction: Mat3;
|
|
13
|
+
/** image spacing */
|
|
14
|
+
spacing: Point3;
|
|
15
|
+
/** image origin */
|
|
16
|
+
origin: Point3;
|
|
17
|
+
/** image scalarData which stores the array of pixelData */
|
|
18
|
+
scalarData: Float32Array | Uint16Array | Uint8Array | Int16Array;
|
|
19
|
+
/** vtkImageData object */
|
|
20
|
+
imageData: vtkImageData;
|
|
21
|
+
/** image metadata - currently only modality */
|
|
22
|
+
metadata: { Modality: string };
|
|
23
|
+
/** image scaling for scaling pixelArray */
|
|
24
|
+
scaling?: Scaling;
|
|
25
|
+
/** whether the image has pixel spacing and it is not undefined */
|
|
26
|
+
hasPixelSpacing?: boolean;
|
|
27
|
+
/** preScale object */
|
|
28
|
+
preScale?: {
|
|
29
|
+
/** boolean flag to indicate whether the image has been scaled */
|
|
30
|
+
scaled?: boolean;
|
|
31
|
+
/** scaling parameters */
|
|
32
|
+
scalingParameters?: {
|
|
33
|
+
/** modality of the image */
|
|
34
|
+
modality?: string;
|
|
35
|
+
/** rescale slop */
|
|
36
|
+
rescaleSlope?: number;
|
|
37
|
+
/** rescale intercept */
|
|
38
|
+
rescaleIntercept?: number;
|
|
39
|
+
/** PT suvbw */
|
|
40
|
+
suvbw?: number;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export default IImageData;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
+
import {
|
|
3
|
+
Metadata,
|
|
4
|
+
VolumeScalarData,
|
|
5
|
+
Point3,
|
|
6
|
+
IImageLoadObject,
|
|
7
|
+
Mat3,
|
|
8
|
+
} from '../types';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Cornerstone ImageVolume interface. Todo: we should define new IVolume class
|
|
12
|
+
* with appropriate typings for the other types of volume that don't have images (nrrd, nifti)
|
|
13
|
+
*/
|
|
14
|
+
interface IImageVolume {
|
|
15
|
+
/** unique identifier of the volume in the cache */
|
|
16
|
+
readonly volumeId: string;
|
|
17
|
+
/** volume dimensions */
|
|
18
|
+
dimensions: Point3;
|
|
19
|
+
/** volume direction */
|
|
20
|
+
direction: Mat3;
|
|
21
|
+
/** volume metadata */
|
|
22
|
+
metadata: Metadata;
|
|
23
|
+
/** volume origin - set to the imagePositionPatient of the last image in the volume */
|
|
24
|
+
origin: Point3;
|
|
25
|
+
/** Whether preScaling has been performed on the volume */
|
|
26
|
+
isPrescaled: boolean;
|
|
27
|
+
/** volume scaling metadata */
|
|
28
|
+
scaling?: {
|
|
29
|
+
PET?: {
|
|
30
|
+
SUVlbmFactor?: number;
|
|
31
|
+
SUVbsaFactor?: number;
|
|
32
|
+
suvbwToSuvlbm?: number;
|
|
33
|
+
suvbwToSuvbsa?: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/** volume size in bytes */
|
|
37
|
+
sizeInBytes?: number;
|
|
38
|
+
/** volume spacing */
|
|
39
|
+
spacing: Point3;
|
|
40
|
+
/** number of voxels in the volume */
|
|
41
|
+
numVoxels: number;
|
|
42
|
+
/** volume image data as vtkImageData */
|
|
43
|
+
imageData?: vtkImageData;
|
|
44
|
+
/** openGL texture for the volume */
|
|
45
|
+
vtkOpenGLTexture: any;
|
|
46
|
+
/** loading status object for the volume containing loaded/loading statuses */
|
|
47
|
+
loadStatus?: Record<string, any>;
|
|
48
|
+
/** imageIds of the volume (if it is built of separate imageIds) */
|
|
49
|
+
imageIds: Array<string>;
|
|
50
|
+
/** volume referencedVolumeId (if it is derived from another volume) */
|
|
51
|
+
referencedVolumeId?: string; // if volume is derived from another volume
|
|
52
|
+
/** whether the metadata for the pixel spacing is not undefined */
|
|
53
|
+
hasPixelSpacing: boolean;
|
|
54
|
+
/** return true if it is a 4D volume or false if it is 3D volume */
|
|
55
|
+
isDynamicVolume(): boolean;
|
|
56
|
+
/** method to convert the volume data in the volume cache, to separate images in the image cache */
|
|
57
|
+
convertToCornerstoneImage?: (
|
|
58
|
+
imageId: string,
|
|
59
|
+
imageIdIndex: number
|
|
60
|
+
) => IImageLoadObject;
|
|
61
|
+
|
|
62
|
+
//cancel load
|
|
63
|
+
cancelLoading?: () => void;
|
|
64
|
+
|
|
65
|
+
/** return the volume scalar data */
|
|
66
|
+
getScalarData(): VolumeScalarData;
|
|
67
|
+
|
|
68
|
+
/** return the index of a given imageId */
|
|
69
|
+
getImageIdIndex(imageId: string): number;
|
|
70
|
+
|
|
71
|
+
/** return the index of a given imageURI */
|
|
72
|
+
getImageURIIndex(imageURI: string): number;
|
|
73
|
+
|
|
74
|
+
/** destroy the volume and make it unusable */
|
|
75
|
+
destroy(): void;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export default IImageVolume;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ImageVolume } from './../cache/classes/ImageVolume';
|
|
2
|
+
import IGeometry from './IGeometry';
|
|
3
|
+
import IImage from './IImage';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* ImageLoadObject interface which any imageLoader should return
|
|
7
|
+
*/
|
|
8
|
+
export interface IImageLoadObject {
|
|
9
|
+
/** promise that resolves to an image */
|
|
10
|
+
promise: Promise<IImage>;
|
|
11
|
+
/** optional cancel function for loading*/
|
|
12
|
+
cancelFn?: () => void;
|
|
13
|
+
/** optional decache function */
|
|
14
|
+
decache?: () => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* VolumeLoadObject interface which any volumeLoader should return
|
|
19
|
+
*/
|
|
20
|
+
export interface IVolumeLoadObject {
|
|
21
|
+
/** promise that resolves to an ImageVolume */
|
|
22
|
+
promise: Promise<ImageVolume>;
|
|
23
|
+
/** optional cancel function for loading*/
|
|
24
|
+
cancelFn?: () => void;
|
|
25
|
+
/** optional decache function */
|
|
26
|
+
decache?: () => void;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface IGeometryLoadObject {
|
|
30
|
+
/** promise that resolves to an ImageVolume */
|
|
31
|
+
promise: Promise<IGeometry>;
|
|
32
|
+
/** optional cancel function for loading*/
|
|
33
|
+
cancelFn?: () => void;
|
|
34
|
+
/** optional decache function */
|
|
35
|
+
decache?: () => void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import IStackViewport from './IStackViewport';
|
|
2
|
+
import { PublicViewportInput } from './IViewport';
|
|
3
|
+
import IVolumeViewport from './IVolumeViewport';
|
|
4
|
+
|
|
5
|
+
export default interface IRenderingEngine {
|
|
6
|
+
id: string;
|
|
7
|
+
hasBeenDestroyed: boolean;
|
|
8
|
+
offscreenMultiRenderWindow: any;
|
|
9
|
+
offScreenCanvasContainer: any;
|
|
10
|
+
setViewports(viewports: Array<PublicViewportInput>): void;
|
|
11
|
+
resize(immediate?: boolean, resetPan?: boolean, resetZoom?: boolean): void;
|
|
12
|
+
getViewport(id: string): IStackViewport | IVolumeViewport;
|
|
13
|
+
getViewports(): Array<IStackViewport | IVolumeViewport>;
|
|
14
|
+
render(): void;
|
|
15
|
+
renderViewports(viewportIds: Array<string>): void;
|
|
16
|
+
renderViewport(viewportId: string): void;
|
|
17
|
+
renderFrameOfReference(FrameOfReferenceUID: string): void;
|
|
18
|
+
fillCanvasWithBackgroundColor(
|
|
19
|
+
canvas: HTMLCanvasElement,
|
|
20
|
+
backgroundColor: [number, number, number]
|
|
21
|
+
): void;
|
|
22
|
+
enableElement(viewportInputEntry: PublicViewportInput): void;
|
|
23
|
+
disableElement(viewportId: string): void;
|
|
24
|
+
getStackViewports(): Array<IStackViewport>;
|
|
25
|
+
getVolumeViewports(): Array<IVolumeViewport>;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
_debugRender(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import CPUFallbackColormapData from './CPUFallbackColormapData';
|
|
2
|
+
import CPUIImageData from './CPUIImageData';
|
|
3
|
+
import ICamera from './ICamera';
|
|
4
|
+
import IImageData from './IImageData';
|
|
5
|
+
import { IViewport } from './IViewport';
|
|
6
|
+
import Point2 from './Point2';
|
|
7
|
+
import Point3 from './Point3';
|
|
8
|
+
import { Scaling } from './ScalingParameters';
|
|
9
|
+
import StackViewportProperties from './StackViewportProperties';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Interface for Stack Viewport
|
|
13
|
+
*/
|
|
14
|
+
export default interface IStackViewport extends IViewport {
|
|
15
|
+
modality: string;
|
|
16
|
+
/** Scaling parameters */
|
|
17
|
+
scaling: Scaling;
|
|
18
|
+
/**
|
|
19
|
+
* Resizes the viewport - only used in CPU fallback for StackViewport. The
|
|
20
|
+
* GPU resizing happens inside the RenderingEngine.
|
|
21
|
+
*/
|
|
22
|
+
resize: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the frame of reference UID, if the image doesn't have imagePlaneModule
|
|
25
|
+
* metadata, it returns undefined, otherwise, frameOfReferenceUID is returned.
|
|
26
|
+
*/
|
|
27
|
+
getFrameOfReferenceUID: () => string;
|
|
28
|
+
/**
|
|
29
|
+
* Sets the properties for the viewport on the default actor. Properties include
|
|
30
|
+
* setting the VOI, inverting the colors and setting the interpolation type, rotation
|
|
31
|
+
*/
|
|
32
|
+
setProperties(
|
|
33
|
+
{ voiRange, invert, interpolationType, rotation }: StackViewportProperties,
|
|
34
|
+
suppressEvents?: boolean
|
|
35
|
+
): void;
|
|
36
|
+
/**
|
|
37
|
+
* Retrieve the viewport properties
|
|
38
|
+
*/
|
|
39
|
+
getProperties: () => StackViewportProperties;
|
|
40
|
+
/**
|
|
41
|
+
* canvasToWorld Returns the world coordinates of the given `canvasPos`
|
|
42
|
+
* projected onto the plane defined by the `Viewport`'s camera.
|
|
43
|
+
*/
|
|
44
|
+
canvasToWorld: (canvasPos: Point2) => Point3;
|
|
45
|
+
/**
|
|
46
|
+
* Returns the canvas coordinates of the given `worldPos`
|
|
47
|
+
* projected onto the `Viewport`'s `canvas`.
|
|
48
|
+
*/
|
|
49
|
+
worldToCanvas: (worldPos: Point3) => Point2;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the index of the imageId being renderer
|
|
52
|
+
*/
|
|
53
|
+
getCurrentImageIdIndex: () => number;
|
|
54
|
+
/**
|
|
55
|
+
* Returns the list of image Ids for the current viewport
|
|
56
|
+
*/
|
|
57
|
+
getImageIds: () => string[];
|
|
58
|
+
/**
|
|
59
|
+
* Returns true if the viewport contains the imageId
|
|
60
|
+
*/
|
|
61
|
+
hasImageId: (imageId: string) => boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Returns true if the viewport contains the imageURI
|
|
64
|
+
*/
|
|
65
|
+
hasImageURI: (imageURI: string) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Returns the currently rendered imageId
|
|
68
|
+
*/
|
|
69
|
+
getCurrentImageId: () => string;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Custom rendering pipeline for the rendering for the CPU fallback
|
|
73
|
+
*/
|
|
74
|
+
customRenderViewportToCanvas: () => {
|
|
75
|
+
canvas: HTMLCanvasElement;
|
|
76
|
+
element: HTMLDivElement;
|
|
77
|
+
viewportId: string;
|
|
78
|
+
renderingEngineId: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Returns the image and its properties that is being shown inside the
|
|
82
|
+
* stack viewport. It returns, the image dimensions, image direction,
|
|
83
|
+
* image scalar data, vtkImageData object, metadata, and scaling (e.g., PET suvbw)
|
|
84
|
+
*/
|
|
85
|
+
getImageData(): IImageData | CPUIImageData;
|
|
86
|
+
/**
|
|
87
|
+
* Reset the viewport properties to the default values
|
|
88
|
+
*/
|
|
89
|
+
resetProperties(): void;
|
|
90
|
+
/**
|
|
91
|
+
* If the user has selected CPU rendering, return the CPU camera, otherwise
|
|
92
|
+
* return the default camera
|
|
93
|
+
*/
|
|
94
|
+
getCamera(): ICamera;
|
|
95
|
+
/**
|
|
96
|
+
* Set the camera based on the provided camera object.
|
|
97
|
+
*/
|
|
98
|
+
setCamera(cameraInterface: ICamera): void;
|
|
99
|
+
/**
|
|
100
|
+
* Sets the imageIds to be visualized inside the stack viewport. It accepts
|
|
101
|
+
* list of imageIds, the index of the first imageId to be viewed. It is a
|
|
102
|
+
* asynchronous function that returns a promise resolving to imageId being
|
|
103
|
+
* displayed in the stack viewport.
|
|
104
|
+
*/
|
|
105
|
+
setStack(
|
|
106
|
+
imageIds: Array<string>,
|
|
107
|
+
currentImageIdIndex?: number
|
|
108
|
+
): Promise<string>;
|
|
109
|
+
/**
|
|
110
|
+
* Centers Pan and resets the zoom for stack viewport.
|
|
111
|
+
*/
|
|
112
|
+
resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Loads the image based on the provided imageIdIndex. It is an Async function which
|
|
115
|
+
* returns a promise that resolves to the imageId.
|
|
116
|
+
*/
|
|
117
|
+
setImageIdIndex(imageIdIndex: number): Promise<string>;
|
|
118
|
+
/**
|
|
119
|
+
* Calibrates the image with new metadata that has been added for imageId. To calibrate
|
|
120
|
+
* a viewport, you should add your calibration data manually to
|
|
121
|
+
* calibratedPixelSpacingMetadataProvider and call viewport.calibrateSpacing
|
|
122
|
+
* for it get applied.
|
|
123
|
+
*/
|
|
124
|
+
calibrateSpacing(imageId: string): void;
|
|
125
|
+
/**
|
|
126
|
+
* If the renderer is CPU based, throw an error. Otherwise, returns the `vtkRenderer` responsible for rendering the `Viewport`.
|
|
127
|
+
*/
|
|
128
|
+
getRenderer(): any;
|
|
129
|
+
/**
|
|
130
|
+
* Sets the colormap for the current viewport.
|
|
131
|
+
* @param colormap - The colormap data to use.
|
|
132
|
+
*/
|
|
133
|
+
setColormap(colormap: CPUFallbackColormapData): void;
|
|
134
|
+
/**
|
|
135
|
+
* It sets the colormap to the default colormap.
|
|
136
|
+
*/
|
|
137
|
+
unsetColormap(): void;
|
|
138
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ImageVolume } from './../cache/classes/ImageVolume';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Cornerstone StreamingImageVolume which extends ImageVolume
|
|
5
|
+
*/
|
|
6
|
+
export default interface IStreamingImageVolume extends ImageVolume {
|
|
7
|
+
/** method to load all the loading requests */
|
|
8
|
+
clearLoadCallbacks(): void;
|
|
9
|
+
/** method to convert the volume data in the volume cache, to separate images in the image cache */
|
|
10
|
+
convertToCornerstoneImage(imageId: string, imageIdIndex: number): any;
|
|
11
|
+
/** method to decache the volume from cache */
|
|
12
|
+
decache(completelyRemove: boolean): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface IStreamingVolumeProperties {
|
|
2
|
+
/** imageIds of the volume */
|
|
3
|
+
imageIds: Array<string>;
|
|
4
|
+
|
|
5
|
+
/** loading status object for the volume containing loaded/loading statuses */
|
|
6
|
+
loadStatus: {
|
|
7
|
+
loaded: boolean;
|
|
8
|
+
loading: boolean;
|
|
9
|
+
cachedFrames: Array<boolean>;
|
|
10
|
+
callbacks: Array<() => void>;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default IStreamingVolumeProperties;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import ICamera from './ICamera';
|
|
2
|
+
import Point2 from './Point2';
|
|
3
|
+
import Point3 from './Point3';
|
|
4
|
+
import ViewportInputOptions from './ViewportInputOptions';
|
|
5
|
+
import { ActorEntry } from './IActor';
|
|
6
|
+
import ViewportType from '../enums/ViewportType';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Viewport interface for cornerstone viewports
|
|
10
|
+
*/
|
|
11
|
+
interface IViewport {
|
|
12
|
+
/** unique identifier of the viewport */
|
|
13
|
+
id: string;
|
|
14
|
+
/** renderingEngineId the viewport belongs to */
|
|
15
|
+
renderingEngineId: string;
|
|
16
|
+
/** viewport type, can be ORTHOGRAPHIC or STACK for now */
|
|
17
|
+
type: ViewportType;
|
|
18
|
+
/** canvas associated to the viewport */
|
|
19
|
+
canvas: HTMLCanvasElement;
|
|
20
|
+
/** public DOM element associated to the viewport */
|
|
21
|
+
element: HTMLDivElement;
|
|
22
|
+
/** sx of the viewport on the offscreen canvas (if rendering using GPU) */
|
|
23
|
+
sx: number;
|
|
24
|
+
/** sy of the viewport on the offscreen canvas (if rendering using GPU) */
|
|
25
|
+
sy: number;
|
|
26
|
+
/** width of the viewport on the offscreen canvas (if rendering using GPU) */
|
|
27
|
+
sWidth: number;
|
|
28
|
+
/** height of the viewport on the offscreen canvas (if rendering using GPU) */
|
|
29
|
+
sHeight: number;
|
|
30
|
+
/** actors rendered in the viewport*/
|
|
31
|
+
_actors: Map<string, any>;
|
|
32
|
+
/** viewport default options including the axis, and background color */
|
|
33
|
+
defaultOptions: any;
|
|
34
|
+
/** viewport options */
|
|
35
|
+
options: ViewportInputOptions;
|
|
36
|
+
/** Suppress events */
|
|
37
|
+
suppressEvents: boolean;
|
|
38
|
+
/** if the viewport has been disabled */
|
|
39
|
+
isDisabled: boolean;
|
|
40
|
+
/** the rotation applied to the view */
|
|
41
|
+
getRotation: () => number;
|
|
42
|
+
/** frameOfReferenceUID the viewport's default actor is rendering */
|
|
43
|
+
getFrameOfReferenceUID: () => string;
|
|
44
|
+
/** method to convert canvas to world coordinates */
|
|
45
|
+
canvasToWorld: (canvasPos: Point2) => Point3;
|
|
46
|
+
/** method to convert world to canvas coordinates */
|
|
47
|
+
worldToCanvas: (worldPos: Point3) => Point2;
|
|
48
|
+
/** get the first actor */
|
|
49
|
+
getDefaultActor(): ActorEntry;
|
|
50
|
+
/** returns all the actor entires for a viewport which is an object containing actor and its uid */
|
|
51
|
+
getActors(): Array<ActorEntry>;
|
|
52
|
+
/** returns specific actor by its uid */
|
|
53
|
+
getActor(actorUID: string): ActorEntry;
|
|
54
|
+
/** returns specific actor uid by array index */
|
|
55
|
+
getActorUIDByIndex(index: number): string;
|
|
56
|
+
/** returns specific actor by array index */
|
|
57
|
+
getActorByIndex(index: number): ActorEntry;
|
|
58
|
+
/** set and overwrite actors in a viewport */
|
|
59
|
+
setActors(actors: Array<ActorEntry>): void;
|
|
60
|
+
/** add actors to the list of actors */
|
|
61
|
+
addActors(actors: Array<ActorEntry>): void;
|
|
62
|
+
/** add one actor */
|
|
63
|
+
addActor(actorEntry: ActorEntry): void;
|
|
64
|
+
/** remove all actors from the viewport */
|
|
65
|
+
removeAllActors(): void;
|
|
66
|
+
/** remove array of uids */
|
|
67
|
+
removeActors(actorUIDs: Array<string>): void;
|
|
68
|
+
/** returns the renderingEngine instance the viewport belongs to */
|
|
69
|
+
getRenderingEngine(): any;
|
|
70
|
+
/** returns the vtkRenderer (for GPU rendering) of the viewport */
|
|
71
|
+
getRenderer(): void;
|
|
72
|
+
/** triggers render for all actors in the viewport */
|
|
73
|
+
render(): void;
|
|
74
|
+
/** set options for the viewport */
|
|
75
|
+
setOptions(options: ViewportInputOptions, immediate: boolean): void;
|
|
76
|
+
/** reset camera and options*/
|
|
77
|
+
reset(immediate: boolean): void;
|
|
78
|
+
/** returns the canvas */
|
|
79
|
+
getCanvas(): HTMLCanvasElement;
|
|
80
|
+
/** returns camera object */
|
|
81
|
+
getCamera(): ICamera;
|
|
82
|
+
/** returns the parallel zoom relative to the default (eg returns 1 after reset) */
|
|
83
|
+
getZoom(): number;
|
|
84
|
+
/** Sets the relative zoom - set to 1 to reset it */
|
|
85
|
+
setZoom(zoom: number, storeAsInitialCamera?: boolean);
|
|
86
|
+
/** Gets the canvas pan value */
|
|
87
|
+
getPan(): Point2;
|
|
88
|
+
/** Sets the canvas pan value */
|
|
89
|
+
setPan(pan: Point2, storeAsInitialCamera?: boolean);
|
|
90
|
+
/** sets the camera */
|
|
91
|
+
setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void;
|
|
92
|
+
/** whether the viewport has custom rendering */
|
|
93
|
+
customRenderViewportToCanvas: () => unknown;
|
|
94
|
+
_getCorners(bounds: Array<number>): Array<number>[];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Public Interface for viewport input to get enabled/disabled or set
|
|
99
|
+
*/
|
|
100
|
+
type PublicViewportInput = {
|
|
101
|
+
/** HTML element in the DOM */
|
|
102
|
+
element: HTMLDivElement;
|
|
103
|
+
/** unique id for the viewport in the renderingEngine */
|
|
104
|
+
viewportId: string;
|
|
105
|
+
/** type of the viewport */
|
|
106
|
+
type: ViewportType;
|
|
107
|
+
/** options for the viewport */
|
|
108
|
+
defaultOptions?: ViewportInputOptions;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
type NormalizedViewportInput = {
|
|
112
|
+
/** HTML element in the DOM */
|
|
113
|
+
element: HTMLDivElement;
|
|
114
|
+
/** unique id for the viewport in the renderingEngine */
|
|
115
|
+
viewportId: string;
|
|
116
|
+
/** type of the viewport */
|
|
117
|
+
type: ViewportType;
|
|
118
|
+
/** options for the viewport */
|
|
119
|
+
defaultOptions: ViewportInputOptions;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
type InternalViewportInput = {
|
|
123
|
+
element: HTMLDivElement;
|
|
124
|
+
canvas: HTMLCanvasElement;
|
|
125
|
+
viewportId: string;
|
|
126
|
+
type: ViewportType;
|
|
127
|
+
defaultOptions: ViewportInputOptions;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
type ViewportInput = {
|
|
131
|
+
id: string;
|
|
132
|
+
element: HTMLDivElement;
|
|
133
|
+
canvas: HTMLCanvasElement;
|
|
134
|
+
renderingEngineId: string;
|
|
135
|
+
type: ViewportType;
|
|
136
|
+
sx: number;
|
|
137
|
+
sy: number;
|
|
138
|
+
sWidth: number;
|
|
139
|
+
sHeight: number;
|
|
140
|
+
defaultOptions: ViewportInputOptions;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export type {
|
|
144
|
+
IViewport,
|
|
145
|
+
ViewportInput,
|
|
146
|
+
PublicViewportInput,
|
|
147
|
+
InternalViewportInput,
|
|
148
|
+
NormalizedViewportInput,
|
|
149
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface to uniquely define a viewport in cornerstone. Note: viewportIds
|
|
3
|
+
* can be shared between different rendering engines, but having a renderingEngineId
|
|
4
|
+
* and a viewportId is required to uniquely define a viewport.
|
|
5
|
+
*/
|
|
6
|
+
export default interface IViewportId {
|
|
7
|
+
renderingEngineId: string;
|
|
8
|
+
viewportId: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
+
import type Point3 from './Point3';
|
|
3
|
+
import type Metadata from './Metadata';
|
|
4
|
+
import Mat3 from './Mat3';
|
|
5
|
+
|
|
6
|
+
type VolumeScalarData = Float32Array | Uint8Array | Uint16Array | Int16Array;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Cornerstone ImageVolume interface.
|
|
10
|
+
*/
|
|
11
|
+
interface IVolume {
|
|
12
|
+
/** unique identifier for the volume in the cache */
|
|
13
|
+
volumeId: string;
|
|
14
|
+
/** volume metadata */
|
|
15
|
+
metadata: Metadata;
|
|
16
|
+
/** volume dimensions */
|
|
17
|
+
dimensions: Point3;
|
|
18
|
+
/** volume spacing */
|
|
19
|
+
spacing: Point3;
|
|
20
|
+
/** volume origin */
|
|
21
|
+
origin: Point3;
|
|
22
|
+
/** volume direction */
|
|
23
|
+
direction: Mat3;
|
|
24
|
+
/** volume scalarData */
|
|
25
|
+
scalarData: VolumeScalarData | Array<VolumeScalarData>;
|
|
26
|
+
/** volume size in bytes */
|
|
27
|
+
sizeInBytes?: number;
|
|
28
|
+
/** volume image data as vtkImageData */
|
|
29
|
+
imageData?: vtkImageData;
|
|
30
|
+
/** referencedVolumeId if volume is derived from another volume */
|
|
31
|
+
referencedVolumeId?: string;
|
|
32
|
+
/** volume scaling metadata */
|
|
33
|
+
scaling?: {
|
|
34
|
+
PET?: {
|
|
35
|
+
// @TODO: Do these values exist?
|
|
36
|
+
SUVlbmFactor?: number;
|
|
37
|
+
SUVbsaFactor?: number;
|
|
38
|
+
// accessed in ProbeTool
|
|
39
|
+
suvbwToSuvlbm?: number;
|
|
40
|
+
suvbwToSuvbsa?: number;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { IVolume as default, IVolume, VolumeScalarData };
|