@cornerstonejs/core 2.0.0-beta.20 → 2.0.0-beta.22
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/esm/RenderingEngine/BaseVolumeViewport.d.ts +23 -13
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +52 -50
- package/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.d.ts +1 -1
- package/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.d.ts +1 -1
- package/dist/esm/RenderingEngine/CanvasActor/index.js +2 -1
- package/dist/esm/RenderingEngine/RenderingEngine.d.ts +8 -10
- package/dist/esm/RenderingEngine/RenderingEngine.js +20 -18
- package/dist/esm/RenderingEngine/StackViewport.d.ts +28 -19
- package/dist/esm/RenderingEngine/StackViewport.js +81 -58
- package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
- package/dist/esm/RenderingEngine/VideoViewport.js +61 -24
- package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
- package/dist/esm/RenderingEngine/Viewport.js +24 -15
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
- package/dist/esm/RenderingEngine/VolumeViewport.js +95 -10
- package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +3 -3
- package/dist/esm/RenderingEngine/VolumeViewport3D.js +10 -3
- package/dist/esm/RenderingEngine/WSIViewport.d.ts +58 -0
- package/dist/esm/RenderingEngine/WSIViewport.js +414 -0
- package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/addImageSlicesToViewports.js +3 -3
- package/dist/esm/RenderingEngine/helpers/addVolumesToViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/colormap.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/cpuFallback/colors/lookupTable.js +15 -5
- package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/calculateTransform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/canvasToPixel.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +3 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/createViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/doesImageNeedToBeRendered.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/fitToWindow.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateColorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/generateLut.js +2 -2
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getDefaultViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageFitScale.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getImageSize.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getLut.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/getTransform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/initializeRenderCanvas.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.d.ts +2 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/lutMatches.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/pixelToCanvas.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderColorImage.js +3 -4
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderGrayscaleImage.js +2 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js +3 -3
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resetCamera.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/resize.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/saveLastRendered.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setDefaultViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/setToPixelCoordinateSystem.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedColorPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataColorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPET.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUT.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataPseudocolorLUTPET.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedPixelDataToCanvasImageDataRGBA.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/storedRGBAPixelDataToCanvasImageData.js +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/validator.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +3 -3
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +4 -7
- package/dist/esm/RenderingEngine/helpers/createVolumeMapper.d.ts +4 -1
- package/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js +5 -4
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +2 -2
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +13 -37
- package/dist/esm/RenderingEngine/helpers/setVolumesForViewports.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.d.ts +2 -0
- package/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js +2 -0
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/volumeNewImageEventDispatcher.js +4 -4
- package/dist/esm/RenderingEngine/renderingEngineCache.d.ts +1 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkSlabCamera.d.ts +4 -2
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLTexture.js +87 -78
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLViewNodeFactory.js +1 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkStreamingOpenGLVolumeMapper.js +83 -42
- package/dist/esm/Settings.d.ts +1 -1
- package/dist/esm/cache/cache.d.ts +15 -19
- package/dist/esm/cache/cache.js +112 -57
- package/dist/esm/cache/classes/Contour.d.ts +4 -4
- package/dist/esm/cache/classes/ContourSet.d.ts +3 -3
- package/dist/esm/cache/classes/ImageVolume.d.ts +19 -19
- package/dist/esm/cache/classes/ImageVolume.js +49 -254
- package/dist/esm/cache/classes/Surface.d.ts +3 -3
- package/dist/esm/cache/index.d.ts +1 -2
- package/dist/esm/cache/index.js +1 -2
- package/dist/esm/constants/cpuColormaps.d.ts +1 -1
- package/dist/esm/constants/viewportPresets.d.ts +1 -1
- package/dist/esm/enums/GenerateImageType.d.ts +5 -0
- package/dist/esm/enums/GenerateImageType.js +6 -0
- package/dist/esm/enums/MetadataModules.d.ts +2 -1
- package/dist/esm/enums/MetadataModules.js +1 -0
- package/dist/esm/enums/ViewportType.d.ts +2 -1
- package/dist/esm/enums/ViewportType.js +1 -0
- package/dist/esm/enums/index.d.ts +2 -2
- package/dist/esm/enums/index.js +2 -2
- package/dist/esm/eventTarget.js +2 -3
- package/dist/esm/getEnabledElement.d.ts +1 -1
- package/dist/esm/global.d.ts +0 -1
- package/dist/esm/index.d.ts +9 -5
- package/dist/esm/index.js +8 -4
- package/dist/esm/init.d.ts +5 -8
- package/dist/esm/init.js +22 -83
- package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
- package/dist/esm/loaders/ProgressiveRetrieveImages.js +7 -3
- package/dist/esm/loaders/configuration/interleavedRetrieve.d.ts +1 -1
- package/dist/esm/loaders/fillNearbyFrames.d.ts +2 -2
- package/dist/esm/loaders/geometryLoader.d.ts +3 -3
- package/dist/esm/loaders/geometryLoader.js +1 -1
- package/dist/esm/loaders/imageLoader.d.ts +12 -17
- package/dist/esm/loaders/imageLoader.js +179 -96
- package/dist/esm/loaders/utils/contourSet/createContourSet.d.ts +1 -1
- package/dist/esm/loaders/utils/contourSet/validateContourSet.d.ts +1 -1
- package/dist/esm/loaders/utils/surface/createSurface.d.ts +1 -1
- package/dist/esm/loaders/utils/surface/validateSurface.d.ts +1 -1
- package/dist/esm/loaders/volumeLoader.d.ts +15 -22
- package/dist/esm/loaders/volumeLoader.js +88 -207
- package/dist/esm/metaData.d.ts +2 -4
- package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
- package/dist/esm/requestPool/requestPoolManager.js +1 -1
- package/dist/esm/types/AABB2.d.ts +2 -2
- package/dist/esm/types/AABB3.d.ts +2 -2
- package/dist/esm/types/ActorSliceRange.d.ts +5 -5
- package/dist/esm/types/BoundsIJK.d.ts +1 -1
- package/dist/esm/types/BoundsLPS.d.ts +1 -1
- package/dist/esm/types/CPUFallbackColormap.d.ts +3 -3
- package/dist/esm/types/CPUFallbackColormapData.d.ts +4 -4
- package/dist/esm/types/CPUFallbackColormapsData.d.ts +3 -5
- package/dist/esm/types/CPUFallbackEnabledElement.d.ts +2 -37
- package/dist/esm/types/CPUFallbackLUT.d.ts +4 -3
- package/dist/esm/types/CPUFallbackLookupTable.d.ts +2 -2
- package/dist/esm/types/CPUFallbackRenderingTools.d.ts +5 -5
- package/dist/esm/types/CPUFallbackTransform.d.ts +3 -3
- package/dist/esm/types/CPUFallbackViewport.d.ts +6 -6
- package/dist/esm/types/CPUFallbackViewportDisplayedArea.d.ts +3 -3
- package/dist/esm/types/CPUIImageData.d.ts +17 -9
- package/dist/esm/types/Color.d.ts +1 -1
- package/dist/esm/types/Colormap.d.ts +7 -7
- package/dist/esm/types/ContourData.d.ts +6 -6
- package/dist/esm/types/Cornerstone3DConfig.d.ts +7 -7
- package/dist/esm/types/CustomEventType.d.ts +2 -2
- package/dist/esm/types/EventTypes.d.ts +55 -55
- package/dist/esm/types/FlipDirection.d.ts +3 -3
- package/dist/esm/types/IActor.d.ts +3 -3
- package/dist/esm/types/ICache.d.ts +4 -4
- package/dist/esm/types/ICachedGeometry.d.ts +3 -3
- package/dist/esm/types/ICachedImage.d.ts +3 -2
- package/dist/esm/types/ICachedVolume.d.ts +3 -2
- package/dist/esm/types/ICamera.d.ts +3 -3
- package/dist/esm/types/IContour.d.ts +4 -3
- package/dist/esm/types/IContourSet.d.ts +5 -2
- package/dist/esm/types/IDynamicImageVolume.d.ts +3 -3
- package/dist/esm/types/IEnabledElement.d.ts +2 -2
- package/dist/esm/types/IGeometry.d.ts +4 -4
- package/dist/esm/types/IImage.d.ts +48 -11
- package/dist/esm/types/IImageCalibration.d.ts +2 -2
- package/dist/esm/types/IImageData.d.ts +11 -4
- package/dist/esm/types/IImageFrame.d.ts +42 -0
- package/dist/esm/types/IImageFrame.js +1 -0
- package/dist/esm/types/IImageVolume.d.ts +17 -14
- package/dist/esm/types/ILoadObject.d.ts +3 -3
- package/dist/esm/types/IPointsManager.d.ts +23 -0
- package/dist/esm/types/IPointsManager.js +1 -0
- package/dist/esm/types/IRLEVoxelMap.d.ts +16 -0
- package/dist/esm/types/IRLEVoxelMap.js +1 -0
- package/dist/esm/types/IRegisterImageLoader.d.ts +2 -2
- package/dist/esm/types/IRenderingEngine.d.ts +11 -12
- package/dist/esm/types/IRetrieveConfiguration.d.ts +6 -6
- package/dist/esm/types/IStackInput.d.ts +1 -1
- package/dist/esm/types/IStackViewport.d.ts +69 -2
- package/dist/esm/types/IStreamingImageVolume.d.ts +3 -4
- package/dist/esm/types/IStreamingVolumeProperties.d.ts +5 -5
- package/dist/esm/types/ISurface.d.ts +1 -1
- package/dist/esm/types/ITransferFunctionNode.d.ts +9 -0
- package/dist/esm/types/ITransferFunctionNode.js +1 -0
- package/dist/esm/types/IVideoViewport.d.ts +40 -2
- package/dist/esm/types/IViewport.d.ts +62 -41
- package/dist/esm/types/IVolume.d.ts +2 -2
- package/dist/esm/types/IVolumeInput.d.ts +2 -2
- package/dist/esm/types/IVolumeViewport.d.ts +17 -16
- package/dist/esm/types/IVoxelManager.d.ts +54 -0
- package/dist/esm/types/IVoxelManager.js +1 -0
- package/dist/esm/types/IWSIViewport.d.ts +16 -0
- package/dist/esm/types/IWSIViewport.js +1 -0
- package/dist/esm/types/ImageLoadListener.d.ts +2 -2
- package/dist/esm/types/ImageLoaderFn.d.ts +3 -3
- package/dist/esm/types/ImagePixelModule.d.ts +1 -1
- package/dist/esm/types/ImagePlaneModule.d.ts +2 -2
- package/dist/esm/types/ImageSliceData.d.ts +3 -3
- package/dist/esm/types/ImageVolumeProps.d.ts +4 -4
- package/dist/esm/types/Mat3.d.ts +1 -1
- package/dist/esm/types/Metadata.d.ts +6 -6
- package/dist/esm/types/MetadataModuleTypes.d.ts +65 -0
- package/dist/esm/types/MetadataModuleTypes.js +1 -0
- package/dist/esm/types/OrientationVectors.d.ts +4 -4
- package/dist/esm/types/Plane.d.ts +1 -1
- package/dist/esm/types/Point2.d.ts +1 -1
- package/dist/esm/types/Point3.d.ts +3 -3
- package/dist/esm/types/Point4.d.ts +1 -1
- package/dist/esm/types/RGB.d.ts +1 -1
- package/dist/esm/types/ScalingParameters.d.ts +7 -7
- package/dist/esm/types/StackViewportProperties.d.ts +3 -3
- package/dist/esm/types/SurfaceData.d.ts +5 -5
- package/dist/esm/types/TransformMatrix2D.d.ts +1 -1
- package/dist/esm/types/VideoViewportProperties.d.ts +3 -3
- package/dist/esm/types/VideoViewportTypes.d.ts +7 -7
- package/dist/esm/types/ViewportInputOptions.d.ts +7 -7
- package/dist/esm/types/ViewportPreset.d.ts +1 -1
- package/dist/esm/types/ViewportProperties.d.ts +5 -5
- package/dist/esm/types/VolumeLoaderFn.d.ts +4 -3
- package/dist/esm/types/VolumeProps.d.ts +10 -5
- package/dist/esm/types/VolumeViewportProperties.d.ts +3 -3
- package/dist/esm/types/WSIViewportProperties.d.ts +3 -0
- package/dist/esm/types/WSIViewportProperties.js +1 -0
- package/dist/esm/types/WSIViewportTypes.d.ts +13 -0
- package/dist/esm/types/WSIViewportTypes.js +1 -0
- package/dist/esm/types/displayArea.d.ts +4 -4
- package/dist/esm/types/index.d.ts +16 -8
- package/dist/esm/types/voi.d.ts +4 -4
- package/dist/esm/utilities/PointsManager.d.ts +8 -10
- package/dist/esm/utilities/ProgressiveIterator.d.ts +1 -1
- package/dist/esm/utilities/ProgressiveIterator.js +3 -1
- package/dist/esm/utilities/RLEVoxelMap.d.ts +3 -8
- package/dist/esm/utilities/RLEVoxelMap.js +19 -19
- package/dist/esm/utilities/VoxelManager.d.ts +82 -20
- package/dist/esm/utilities/VoxelManager.js +466 -60
- package/dist/esm/utilities/actorCheck.d.ts +1 -1
- package/dist/esm/utilities/applyPreset.d.ts +2 -2
- package/dist/esm/utilities/calculateViewportsSpatialRegistration.d.ts +1 -1
- package/dist/esm/utilities/calculateViewportsSpatialRegistration.js +5 -5
- package/dist/esm/utilities/calibratedPixelSpacingMetadataProvider.d.ts +1 -1
- package/dist/esm/utilities/colormap.d.ts +1 -1
- package/dist/esm/utilities/convertStackToVolumeViewport.d.ts +2 -2
- package/dist/esm/utilities/convertStackToVolumeViewport.js +4 -4
- package/dist/esm/utilities/convertVolumeToStackViewport.d.ts +1 -1
- package/dist/esm/utilities/convertVolumeToStackViewport.js +3 -2
- package/dist/esm/utilities/createLinearRGBTransferFunction.d.ts +1 -1
- package/dist/esm/utilities/createLinearRGBTransferFunction.js +1 -3
- package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -3
- package/dist/esm/utilities/createSigmoidRGBTransferFunction.js +8 -7
- package/dist/esm/utilities/decimate.d.ts +1 -1
- package/dist/esm/utilities/eventListener/TargetEventListeners.js +5 -3
- package/dist/esm/utilities/generateVolumePropsFromImageIds.d.ts +1 -1
- package/dist/esm/utilities/generateVolumePropsFromImageIds.js +33 -80
- package/dist/esm/utilities/genericMetadataProvider.d.ts +9 -2
- package/dist/esm/utilities/genericMetadataProvider.js +7 -1
- package/dist/esm/utilities/getBufferConfiguration.d.ts +2 -3
- package/dist/esm/utilities/getBufferConfiguration.js +5 -15
- package/dist/esm/utilities/getClosestImageId.js +1 -1
- package/dist/esm/utilities/getClosestStackImageIndexForPoint.d.ts +1 -1
- package/dist/esm/utilities/getClosestStackImageIndexForPoint.js +2 -2
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.d.ts +4 -5
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +8 -58
- package/dist/esm/utilities/getImageLegacy.d.ts +1 -1
- package/dist/esm/utilities/getImageLegacy.js +1 -1
- package/dist/esm/utilities/getImageSliceDataForVolumeViewport.d.ts +1 -1
- package/dist/esm/utilities/getMinMax.d.ts +2 -1
- package/dist/esm/utilities/getScalingParameters.d.ts +1 -1
- package/dist/esm/utilities/getScalingParameters.js +4 -4
- package/dist/esm/utilities/getSpacingInNormalDirection.d.ts +2 -2
- package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.d.ts +1 -1
- package/dist/esm/utilities/getTargetVolumeAndSpacingInNormalDir.js +2 -2
- package/dist/esm/utilities/getViewportImageCornersInWorld.d.ts +1 -1
- package/dist/esm/utilities/getViewportImageIds.d.ts +1 -1
- package/dist/esm/utilities/getViewportImageIds.js +1 -1
- package/dist/esm/utilities/getViewportModality.d.ts +7 -3
- package/dist/esm/utilities/getViewportModality.js +9 -6
- package/dist/esm/utilities/getViewportsWithImageURI.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +2 -2
- package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -7
- package/dist/esm/utilities/getVoiFromSigmoidRGBTransferFunction.d.ts +1 -1
- package/dist/esm/utilities/getVolumeActorCorners.d.ts +2 -2
- package/dist/esm/utilities/getVolumeId.js +2 -2
- package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +1 -1
- package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +1 -1
- package/dist/esm/utilities/getVolumeViewportsContainingSameVolumes.d.ts +2 -2
- package/dist/esm/utilities/hasFloatScalingParameters.d.ts +1 -1
- package/dist/esm/utilities/imageRetrieveMetadataProvider.d.ts +1 -1
- package/dist/esm/utilities/imageToWorldCoords.d.ts +1 -1
- package/dist/esm/utilities/imageToWorldCoords.js +2 -2
- package/dist/esm/utilities/index.d.ts +3 -8
- package/dist/esm/utilities/index.js +4 -8
- package/dist/esm/utilities/indexWithinDimensions.d.ts +1 -1
- package/dist/esm/utilities/invertRgbTransferFunction.d.ts +2 -1
- package/dist/esm/utilities/isEqual.js +6 -1
- package/dist/esm/utilities/isPTPrescaledWithSUV.d.ts +1 -1
- package/dist/esm/utilities/isPTPrescaledWithSUV.js +1 -1
- package/dist/esm/utilities/isValidVolume.js +1 -1
- package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
- package/dist/esm/utilities/loadImageToCanvas.js +1 -1
- package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
- package/dist/esm/utilities/makeVolumeMetadata.js +5 -5
- package/dist/esm/utilities/planar.d.ts +2 -2
- package/dist/esm/utilities/renderToCanvasCPU.d.ts +1 -1
- package/dist/esm/utilities/renderToCanvasGPU.d.ts +2 -2
- package/dist/esm/utilities/renderToCanvasGPU.js +1 -1
- package/dist/esm/utilities/scaleRgbTransferFunction.d.ts +2 -1
- package/dist/esm/utilities/snapFocalPointToSlice.d.ts +1 -1
- package/dist/esm/utilities/sortImageIdsAndGetSpacing.d.ts +5 -5
- package/dist/esm/utilities/sortImageIdsAndGetSpacing.js +2 -1
- package/dist/esm/utilities/transformCanvasToIJK.d.ts +2 -2
- package/dist/esm/utilities/transformIJKToCanvas.d.ts +1 -1
- package/dist/esm/utilities/triggerEvent.js +1 -1
- package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.d.ts +2 -2
- package/dist/esm/utilities/updateVTKImageDataWithCornerstoneImage.js +1 -1
- package/dist/esm/utilities/uuidv4.js +3 -1
- package/dist/esm/utilities/worldToImageCoords.d.ts +1 -1
- package/dist/esm/utilities/worldToImageCoords.js +2 -2
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/esm/cache/utils/restoreImagesFromBuffer.d.ts +0 -2
- package/dist/esm/cache/utils/restoreImagesFromBuffer.js +0 -28
- package/dist/esm/enums/SharedArrayBufferModes.d.ts +0 -6
- package/dist/esm/enums/SharedArrayBufferModes.js +0 -7
- package/dist/esm/utilities/cacheUtils.d.ts +0 -2
- package/dist/esm/utilities/cacheUtils.js +0 -86
- package/dist/esm/utilities/createFloat32SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createFloat32SharedArray.js +0 -27
- package/dist/esm/utilities/createInt16SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createInt16SharedArray.js +0 -11
- package/dist/esm/utilities/createUInt16SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createUInt16SharedArray.js +0 -11
- package/dist/esm/utilities/createUint8SharedArray.d.ts +0 -2
- package/dist/esm/utilities/createUint8SharedArray.js +0 -12
- package/dist/esm/utilities/getScalarDataType.d.ts +0 -2
- package/dist/esm/utilities/getScalarDataType.js +0 -19
- package/dist/esm/utilities/isTypedArray.d.ts +0 -1
- package/dist/esm/utilities/isTypedArray.js +0 -11
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { mat4 } from 'gl-matrix';
|
|
2
|
+
import type { BlendModes, InterpolationType, OrientationAxis } from '../enums';
|
|
2
3
|
import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, IVolumeViewport } from '../types';
|
|
3
|
-
import { VoiModifiedEventDetail } from '../types/EventTypes';
|
|
4
|
+
import type { VoiModifiedEventDetail } from '../types/EventTypes';
|
|
4
5
|
import type { ViewportInput } from '../types/IViewport';
|
|
6
|
+
import type { TransferFunctionNodes } from '../types/ITransferFunctionNode';
|
|
5
7
|
import Viewport from './Viewport';
|
|
6
8
|
declare abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
|
|
7
9
|
useCPURendering: boolean;
|
|
8
|
-
useNativeDataType: boolean;
|
|
9
10
|
private _FrameOfReferenceUID;
|
|
10
|
-
protected initialTransferFunctionNodes:
|
|
11
|
+
protected initialTransferFunctionNodes: TransferFunctionNodes;
|
|
11
12
|
private globalDefaultProperties;
|
|
12
13
|
private perVolumeIdDefaultProperties;
|
|
13
14
|
protected initialViewUp: Point3;
|
|
14
15
|
protected viewportProperties: VolumeViewportProperties;
|
|
16
|
+
private volumeIds;
|
|
15
17
|
constructor(props: ViewportInput);
|
|
16
18
|
static get useCustomRenderingPipeline(): boolean;
|
|
19
|
+
getSliceViewInfo(): {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
sliceIndex: number;
|
|
23
|
+
slicePlane: number;
|
|
24
|
+
sliceToIndexMatrix: mat4;
|
|
25
|
+
indexToSliceMatrix: mat4;
|
|
26
|
+
};
|
|
17
27
|
protected applyViewOrientation(orientation: OrientationAxis | OrientationVectors, resetCamera?: boolean): void;
|
|
18
28
|
private initializeVolumeNewImageEventDispatcher;
|
|
19
|
-
protected resetVolumeViewportClippingRange(): void;
|
|
20
29
|
private setVOILUTFunction;
|
|
21
30
|
private setColormap;
|
|
22
31
|
private setOpacity;
|
|
@@ -39,9 +48,9 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
39
48
|
getDefaultProperties: (volumeId?: string) => VolumeViewportProperties;
|
|
40
49
|
getProperties: (volumeId?: string) => VolumeViewportProperties;
|
|
41
50
|
private getColormap;
|
|
42
|
-
setVolumes(volumeInputArray:
|
|
43
|
-
addVolumes(volumeInputArray:
|
|
44
|
-
removeVolumeActors(actorUIDs:
|
|
51
|
+
setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
52
|
+
addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
53
|
+
removeVolumeActors(actorUIDs: string[], immediate?: boolean): void;
|
|
45
54
|
setOrientation(_orientation: OrientationAxis | OrientationVectors, _immediate?: boolean): void;
|
|
46
55
|
private initializeColorTransferFunction;
|
|
47
56
|
private _getApplicableVolumeActor;
|
|
@@ -59,12 +68,13 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
59
68
|
protected _getOrientationVectors(orientation: OrientationAxis | OrientationVectors): OrientationVectors;
|
|
60
69
|
getSlabThickness(): number;
|
|
61
70
|
getIntensityFromWorld(point: Point3): number;
|
|
62
|
-
getImageIds: (volumeId?: string) =>
|
|
63
|
-
abstract getCurrentImageId(): string;
|
|
64
|
-
|
|
71
|
+
getImageIds: (volumeId?: string) => string[];
|
|
72
|
+
abstract getCurrentImageId(): string | undefined;
|
|
73
|
+
getVolumeId(specifier?: ViewReferenceSpecifier): string;
|
|
65
74
|
getViewReferenceId(specifier?: ViewReferenceSpecifier): string;
|
|
66
|
-
|
|
67
|
-
abstract
|
|
75
|
+
private _addVolumeId;
|
|
76
|
+
abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void;
|
|
77
|
+
abstract setSlabThickness(slabThickness: number, filterActorUIDs?: string[]): void;
|
|
68
78
|
abstract resetSlabThickness(): void;
|
|
69
79
|
abstract resetProperties(volumeId?: string): void;
|
|
70
80
|
}
|
|
@@ -2,28 +2,37 @@ import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransf
|
|
|
2
2
|
import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps';
|
|
3
3
|
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
|
|
4
4
|
import { vec2, vec3 } from 'gl-matrix';
|
|
5
|
-
import cache from '../cache';
|
|
5
|
+
import cache from '../cache/cache';
|
|
6
6
|
import { MPR_CAMERA_VALUES, RENDERING_DEFAULTS, VIEWPORT_PRESETS, } from '../constants';
|
|
7
|
-
import { Events, ViewportStatus, VOILUTFunctionType
|
|
7
|
+
import { Events, ViewportStatus, VOILUTFunctionType } from '../enums';
|
|
8
8
|
import ViewportType from '../enums/ViewportType';
|
|
9
9
|
import eventTarget from '../eventTarget';
|
|
10
10
|
import { getShouldUseCPURendering } from '../init';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import Viewport from './Viewport';
|
|
16
|
-
import vtkSlabCamera from './vtkClasses/vtkSlabCamera';
|
|
11
|
+
import triggerEvent from '../utilities/triggerEvent';
|
|
12
|
+
import * as colormapUtils from '../utilities/colormap';
|
|
13
|
+
import invertRgbTransferFunction from '../utilities/invertRgbTransferFunction';
|
|
14
|
+
import createSigmoidRGBTransferFunction from '../utilities/createSigmoidRGBTransferFunction';
|
|
17
15
|
import transformWorldToIndex from '../utilities/transformWorldToIndex';
|
|
18
16
|
import { findMatchingColormap } from '../utilities/colormap';
|
|
19
17
|
import { getTransferFunctionNodes } from '../utilities/transferFunctionUtils';
|
|
18
|
+
import createVolumeActor from './helpers/createVolumeActor';
|
|
19
|
+
import volumeNewImageEventDispatcher, { resetVolumeNewImageState, } from './helpers/volumeNewImageEventDispatcher';
|
|
20
|
+
import Viewport from './Viewport';
|
|
21
|
+
import vtkSlabCamera from './vtkClasses/vtkSlabCamera';
|
|
22
|
+
import getVolumeViewportScrollInfo from '../utilities/getVolumeViewportScrollInfo';
|
|
23
|
+
import { actorIsA } from '../utilities/actorCheck';
|
|
24
|
+
import snapFocalPointToSlice from '../utilities/snapFocalPointToSlice';
|
|
25
|
+
import getVoiFromSigmoidRGBTransferFunction from '../utilities/getVoiFromSigmoidRGBTransferFunction';
|
|
26
|
+
import isEqual, { isEqualNegative } from '../utilities/isEqual';
|
|
27
|
+
import applyPreset from '../utilities/applyPreset';
|
|
28
|
+
import imageIdToURI from '../utilities/imageIdToURI';
|
|
20
29
|
class BaseVolumeViewport extends Viewport {
|
|
21
30
|
constructor(props) {
|
|
22
31
|
super(props);
|
|
23
32
|
this.useCPURendering = false;
|
|
24
|
-
this.useNativeDataType = false;
|
|
25
33
|
this.perVolumeIdDefaultProperties = new Map();
|
|
26
34
|
this.viewportProperties = {};
|
|
35
|
+
this.volumeIds = new Set();
|
|
27
36
|
this.setRotation = (rotation) => {
|
|
28
37
|
const panFit = this.getPan(this.fitToCanvasCamera);
|
|
29
38
|
const pan = this.getPan();
|
|
@@ -177,14 +186,14 @@ class BaseVolumeViewport extends Viewport {
|
|
|
177
186
|
canvasCoord[0] / devicePixelRatio,
|
|
178
187
|
canvasCoord[1] / devicePixelRatio,
|
|
179
188
|
];
|
|
180
|
-
vtkCamera.setIsPerformingCoordinateTransformation
|
|
189
|
+
vtkCamera.setIsPerformingCoordinateTransformation(false);
|
|
181
190
|
return canvasCoordWithDPR;
|
|
182
191
|
};
|
|
183
192
|
this.hasImageURI = (imageURI) => {
|
|
184
193
|
const volumeActors = this.getActors().filter((actorEntry) => actorIsA(actorEntry, 'vtkVolume'));
|
|
185
194
|
return volumeActors.some(({ uid }) => {
|
|
186
195
|
const volume = cache.getVolume(uid);
|
|
187
|
-
if (!volume
|
|
196
|
+
if (!volume?.imageIds) {
|
|
188
197
|
return false;
|
|
189
198
|
}
|
|
190
199
|
const volumeImageURIs = volume.imageIds.map(imageIdToURI);
|
|
@@ -204,7 +213,6 @@ class BaseVolumeViewport extends Viewport {
|
|
|
204
213
|
return imageVolume.imageIds;
|
|
205
214
|
};
|
|
206
215
|
this.useCPURendering = getShouldUseCPURendering();
|
|
207
|
-
this.useNativeDataType = this._shouldUseNativeDataType();
|
|
208
216
|
if (this.useCPURendering) {
|
|
209
217
|
throw new Error('VolumeViewports cannot be used whilst CPU Fallback Rendering is enabled.');
|
|
210
218
|
}
|
|
@@ -229,6 +237,9 @@ class BaseVolumeViewport extends Viewport {
|
|
|
229
237
|
static get useCustomRenderingPipeline() {
|
|
230
238
|
return false;
|
|
231
239
|
}
|
|
240
|
+
getSliceViewInfo() {
|
|
241
|
+
throw new Error('Method not implemented.');
|
|
242
|
+
}
|
|
232
243
|
applyViewOrientation(orientation, resetCamera = true) {
|
|
233
244
|
const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
|
|
234
245
|
const camera = this.getVtkActiveCamera();
|
|
@@ -266,17 +277,8 @@ class BaseVolumeViewport extends Viewport {
|
|
|
266
277
|
this.element.addEventListener(Events.CAMERA_MODIFIED, volumeNewImageHandlerBound);
|
|
267
278
|
eventTarget.addEventListener(Events.ELEMENT_DISABLED, volumeNewImageCleanUpBound);
|
|
268
279
|
}
|
|
269
|
-
resetVolumeViewportClippingRange() {
|
|
270
|
-
const activeCamera = this.getVtkActiveCamera();
|
|
271
|
-
if (activeCamera.getParallelProjection()) {
|
|
272
|
-
activeCamera.setClippingRange(-RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
activeCamera.setClippingRange(RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
280
|
setVOILUTFunction(voiLUTFunction, volumeId, suppressEvents) {
|
|
279
|
-
if (Object.values(VOILUTFunctionType).
|
|
281
|
+
if (!Object.values(VOILUTFunctionType).includes(voiLUTFunction)) {
|
|
280
282
|
voiLUTFunction = VOILUTFunctionType.LINEAR;
|
|
281
283
|
}
|
|
282
284
|
const { voiRange } = this.getProperties();
|
|
@@ -474,7 +476,7 @@ class BaseVolumeViewport extends Viewport {
|
|
|
474
476
|
return target;
|
|
475
477
|
}
|
|
476
478
|
const { viewPlaneNormal } = target;
|
|
477
|
-
const delta = viewRefSpecifier
|
|
479
|
+
const delta = viewRefSpecifier?.sliceIndex - this.getSliceIndex();
|
|
478
480
|
const { sliceRangeInfo } = getVolumeViewportScrollInfo(this, volumeId, true);
|
|
479
481
|
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
480
482
|
const { focalPoint, position } = camera;
|
|
@@ -538,7 +540,8 @@ class BaseVolumeViewport extends Viewport {
|
|
|
538
540
|
else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
|
|
539
541
|
if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
|
|
540
542
|
this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
|
|
541
|
-
|
|
543
|
+
this.setViewReference(viewRef);
|
|
544
|
+
return;
|
|
542
545
|
}
|
|
543
546
|
if (cameraFocalPoint) {
|
|
544
547
|
const focalDelta = vec3.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
|
|
@@ -646,15 +649,18 @@ class BaseVolumeViewport extends Viewport {
|
|
|
646
649
|
async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
647
650
|
const firstImageVolume = cache.getVolume(volumeInputArray[0].volumeId);
|
|
648
651
|
if (!firstImageVolume) {
|
|
649
|
-
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
652
|
+
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist, you need to create/allocate the volume first`);
|
|
650
653
|
}
|
|
651
654
|
const FrameOfReferenceUID = firstImageVolume.metadata.FrameOfReferenceUID;
|
|
652
|
-
|
|
655
|
+
this._isValidVolumeInputArray(volumeInputArray, FrameOfReferenceUID);
|
|
653
656
|
this._FrameOfReferenceUID = FrameOfReferenceUID;
|
|
657
|
+
volumeInputArray.forEach((volumeInput) => {
|
|
658
|
+
this._addVolumeId(volumeInput.volumeId);
|
|
659
|
+
});
|
|
654
660
|
const volumeActors = [];
|
|
655
661
|
for (let i = 0; i < volumeInputArray.length; i++) {
|
|
656
662
|
const { volumeId, actorUID, slabThickness } = volumeInputArray[i];
|
|
657
|
-
const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents
|
|
663
|
+
const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents);
|
|
658
664
|
const uid = actorUID || volumeId;
|
|
659
665
|
volumeActors.push({
|
|
660
666
|
uid,
|
|
@@ -680,11 +686,14 @@ class BaseVolumeViewport extends Viewport {
|
|
|
680
686
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
681
687
|
}
|
|
682
688
|
const volumeActors = [];
|
|
683
|
-
|
|
689
|
+
this._isValidVolumeInputArray(volumeInputArray, this._FrameOfReferenceUID);
|
|
690
|
+
volumeInputArray.forEach((volumeInput) => {
|
|
691
|
+
this._addVolumeId(volumeInput.volumeId);
|
|
692
|
+
});
|
|
684
693
|
for (let i = 0; i < volumeInputArray.length; i++) {
|
|
685
694
|
const { volumeId, visibility, actorUID, slabThickness } = volumeInputArray[i];
|
|
686
|
-
const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents
|
|
687
|
-
if (visibility
|
|
695
|
+
const actor = await createVolumeActor(volumeInputArray[i], this.element, this.id, suppressEvents);
|
|
696
|
+
if (!visibility) {
|
|
688
697
|
actor.setVisibility(false);
|
|
689
698
|
}
|
|
690
699
|
const uid = actorUID || volumeId;
|
|
@@ -727,7 +736,7 @@ class BaseVolumeViewport extends Viewport {
|
|
|
727
736
|
}
|
|
728
737
|
let volumeActor;
|
|
729
738
|
if (volumeId) {
|
|
730
|
-
volumeActor = this.getActor(volumeId)
|
|
739
|
+
volumeActor = this.getActor(volumeId).actor;
|
|
731
740
|
}
|
|
732
741
|
if (!volumeActor) {
|
|
733
742
|
volumeActor = actorEntries[0].actor;
|
|
@@ -738,11 +747,7 @@ class BaseVolumeViewport extends Viewport {
|
|
|
738
747
|
async _isValidVolumeInputArray(volumeInputArray, FrameOfReferenceUID) {
|
|
739
748
|
const numVolumes = volumeInputArray.length;
|
|
740
749
|
for (let i = 1; i < numVolumes; i++) {
|
|
741
|
-
const
|
|
742
|
-
const imageVolume = await loadVolume(volumeInput.volumeId);
|
|
743
|
-
if (!imageVolume) {
|
|
744
|
-
throw new Error(`imageVolume with id: ${imageVolume.volumeId} does not exist`);
|
|
745
|
-
}
|
|
750
|
+
const imageVolume = cache.getVolume(volumeInputArray[i].volumeId);
|
|
746
751
|
if (FrameOfReferenceUID !== imageVolume.metadata.FrameOfReferenceUID) {
|
|
747
752
|
throw new Error(`Volumes being added to viewport ${this.id} do not share the same FrameOfReferenceUID. This is not yet supported`);
|
|
748
753
|
}
|
|
@@ -758,10 +763,7 @@ class BaseVolumeViewport extends Viewport {
|
|
|
758
763
|
super.flip(flipDirection);
|
|
759
764
|
}
|
|
760
765
|
hasVolumeId(volumeId) {
|
|
761
|
-
|
|
762
|
-
return actorEntries.some((actorEntry) => {
|
|
763
|
-
return actorEntry.uid === volumeId;
|
|
764
|
-
});
|
|
766
|
+
return this.volumeIds.has(volumeId);
|
|
765
767
|
}
|
|
766
768
|
getImageData(volumeId) {
|
|
767
769
|
const defaultActor = this.getDefaultActor();
|
|
@@ -782,16 +784,17 @@ class BaseVolumeViewport extends Viewport {
|
|
|
782
784
|
spacing: vtkImageData.getSpacing(),
|
|
783
785
|
origin: vtkImageData.getOrigin(),
|
|
784
786
|
direction: vtkImageData.getDirection(),
|
|
785
|
-
scalarData: vtkImageData.getPointData().getScalars().isDeleted()
|
|
786
|
-
? null
|
|
787
|
-
: vtkImageData.getPointData().getScalars().getData(),
|
|
788
787
|
imageData: actor.getMapper().getInputData(),
|
|
789
788
|
metadata: {
|
|
790
789
|
Modality: volume?.metadata?.Modality,
|
|
791
790
|
FrameOfReferenceUID: volume?.metadata?.FrameOfReferenceUID,
|
|
792
791
|
},
|
|
792
|
+
get scalarData() {
|
|
793
|
+
return volume?.voxelManager?.getScalarData();
|
|
794
|
+
},
|
|
793
795
|
scaling: volume?.scaling,
|
|
794
796
|
hasPixelSpacing: true,
|
|
797
|
+
voxelManager: volume?.voxelManager,
|
|
795
798
|
};
|
|
796
799
|
}
|
|
797
800
|
_setVolumeActors(volumeActorEntries) {
|
|
@@ -836,12 +839,8 @@ class BaseVolumeViewport extends Viewport {
|
|
|
836
839
|
const { actor, uid } = actorEntry;
|
|
837
840
|
const imageData = actor.getMapper().getInputData();
|
|
838
841
|
const volume = cache.getVolume(uid);
|
|
839
|
-
const { dimensions } = volume;
|
|
840
842
|
const index = transformWorldToIndex(imageData, point);
|
|
841
|
-
|
|
842
|
-
index[1] * dimensions[0] +
|
|
843
|
-
index[0];
|
|
844
|
-
return volume.getScalarData()[voxelIndex];
|
|
843
|
+
return volume.voxelManager.getAtIJKPoint(index);
|
|
845
844
|
}
|
|
846
845
|
getVolumeId(specifier) {
|
|
847
846
|
const actorEntries = this.getActors();
|
|
@@ -852,7 +851,7 @@ class BaseVolumeViewport extends Viewport {
|
|
|
852
851
|
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
853
852
|
}
|
|
854
853
|
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
|
|
855
|
-
actorEntry.uid === specifier
|
|
854
|
+
actorEntry.uid === specifier?.volumeId)?.uid;
|
|
856
855
|
}
|
|
857
856
|
getViewReferenceId(specifier = {}) {
|
|
858
857
|
let { volumeId, sliceIndex: sliceIndex } = specifier;
|
|
@@ -866,8 +865,11 @@ class BaseVolumeViewport extends Viewport {
|
|
|
866
865
|
const currentIndex = this.getSliceIndex();
|
|
867
866
|
sliceIndex ??= currentIndex;
|
|
868
867
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
869
|
-
const querySeparator = volumeId.
|
|
868
|
+
const querySeparator = volumeId.includes('?') ? '&' : '?';
|
|
870
869
|
return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
|
|
871
870
|
}
|
|
871
|
+
_addVolumeId(volumeId) {
|
|
872
|
+
this.volumeIds.add(volumeId);
|
|
873
|
+
}
|
|
872
874
|
}
|
|
873
875
|
export default BaseVolumeViewport;
|
|
@@ -75,7 +75,8 @@ export default class CanvasActor {
|
|
|
75
75
|
const { voxelManager } = image;
|
|
76
76
|
if (voxelManager) {
|
|
77
77
|
if (voxelManager.map.getRun) {
|
|
78
|
-
|
|
78
|
+
this.renderRLE(viewport, context, voxelManager);
|
|
79
|
+
return;
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
let { canvas } = this;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import type IStackViewport from '../types/IStackViewport';
|
|
2
|
-
import type IVideoViewport from '../types/IVideoViewport';
|
|
3
2
|
import type IRenderingEngine from '../types/IRenderingEngine';
|
|
4
3
|
import type IVolumeViewport from '../types/IVolumeViewport';
|
|
5
|
-
import type { IViewport } from '../types/IViewport';
|
|
6
|
-
import type { PublicViewportInput } from '../types/IViewport';
|
|
4
|
+
import type { PublicViewportInput, IViewport } from '../types/IViewport';
|
|
7
5
|
declare class RenderingEngine implements IRenderingEngine {
|
|
8
6
|
readonly id: string;
|
|
9
7
|
hasBeenDestroyed: boolean;
|
|
10
8
|
offscreenMultiRenderWindow: any;
|
|
11
|
-
readonly offScreenCanvasContainer:
|
|
9
|
+
readonly offScreenCanvasContainer: HTMLDivElement;
|
|
12
10
|
private _viewports;
|
|
13
11
|
private _needsRender;
|
|
14
12
|
private _animationFrameSet;
|
|
@@ -17,16 +15,16 @@ declare class RenderingEngine implements IRenderingEngine {
|
|
|
17
15
|
constructor(id?: string);
|
|
18
16
|
enableElement(viewportInputEntry: PublicViewportInput): void;
|
|
19
17
|
disableElement(viewportId: string): void;
|
|
20
|
-
setViewports(publicViewportInputEntries:
|
|
18
|
+
setViewports(publicViewportInputEntries: PublicViewportInput[]): void;
|
|
21
19
|
resize(immediate?: boolean, keepCamera?: boolean): void;
|
|
22
20
|
getViewport(viewportId: string): IViewport;
|
|
23
|
-
getViewports():
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
getVolumeViewports():
|
|
21
|
+
getViewports(): IViewport[];
|
|
22
|
+
getStackViewport(viewportId: string): IStackViewport;
|
|
23
|
+
getStackViewports(): IStackViewport[];
|
|
24
|
+
getVolumeViewports(): IVolumeViewport[];
|
|
27
25
|
render(): void;
|
|
28
26
|
renderFrameOfReference: (FrameOfReferenceUID: string) => void;
|
|
29
|
-
renderViewports(viewportIds:
|
|
27
|
+
renderViewports(viewportIds: string[]): void;
|
|
30
28
|
renderViewport(viewportId: string): void;
|
|
31
29
|
destroy(): void;
|
|
32
30
|
fillCanvasWithBackgroundColor(canvas: HTMLCanvasElement, backgroundColor: [number, number, number]): void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Events from '../enums/Events';
|
|
2
2
|
import renderingEngineCache from './renderingEngineCache';
|
|
3
3
|
import eventTarget from '../eventTarget';
|
|
4
|
-
import
|
|
4
|
+
import uuidv4 from '../utilities/uuidv4';
|
|
5
|
+
import triggerEvent from '../utilities/triggerEvent';
|
|
5
6
|
import { vtkOffscreenMultiRenderWindow } from './vtkClasses';
|
|
6
7
|
import ViewportType from '../enums/ViewportType';
|
|
7
8
|
import VolumeViewport from './VolumeViewport';
|
|
@@ -10,7 +11,6 @@ import StackViewport from './StackViewport';
|
|
|
10
11
|
import viewportTypeUsesCustomRenderingPipeline from './helpers/viewportTypeUsesCustomRenderingPipeline';
|
|
11
12
|
import getOrCreateCanvas from './helpers/getOrCreateCanvas';
|
|
12
13
|
import { getShouldUseCPURendering, isCornerstoneInitialized } from '../init';
|
|
13
|
-
import VideoViewport from './VideoViewport';
|
|
14
14
|
import viewportTypeToViewportClass from './helpers/viewportTypeToViewportClass';
|
|
15
15
|
import { OrientationAxis } from '../enums';
|
|
16
16
|
import VolumeViewport3D from './VolumeViewport3D';
|
|
@@ -27,7 +27,7 @@ class RenderingEngine {
|
|
|
27
27
|
return vp.id;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
|
|
30
|
+
this.renderViewports(viewportIdsWithSameFrameOfReferenceUID);
|
|
31
31
|
};
|
|
32
32
|
this._renderFlaggedViewports = () => {
|
|
33
33
|
this._throwIfDestroyed();
|
|
@@ -165,21 +165,21 @@ class RenderingEngine {
|
|
|
165
165
|
this._throwIfDestroyed();
|
|
166
166
|
return this._getViewportsAsArray();
|
|
167
167
|
}
|
|
168
|
-
|
|
168
|
+
getStackViewport(viewportId) {
|
|
169
169
|
this._throwIfDestroyed();
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
|
|
170
|
+
const viewport = this.getViewport(viewportId);
|
|
171
|
+
if (!viewport) {
|
|
172
|
+
throw new Error(`Viewport with Id ${viewportId} does not exist`);
|
|
173
|
+
}
|
|
174
|
+
if (!(viewport instanceof StackViewport)) {
|
|
175
|
+
throw new Error(`Viewport with Id ${viewportId} is not a StackViewport.`);
|
|
176
|
+
}
|
|
177
|
+
return viewport;
|
|
175
178
|
}
|
|
176
|
-
|
|
179
|
+
getStackViewports() {
|
|
177
180
|
this._throwIfDestroyed();
|
|
178
181
|
const viewports = this.getViewports();
|
|
179
|
-
|
|
180
|
-
return viewport instanceof VideoViewport;
|
|
181
|
-
};
|
|
182
|
-
return viewports.filter(isVideoViewport);
|
|
182
|
+
return viewports.filter((vp) => vp instanceof StackViewport);
|
|
183
183
|
}
|
|
184
184
|
getVolumeViewports() {
|
|
185
185
|
this._throwIfDestroyed();
|
|
@@ -270,7 +270,7 @@ class RenderingEngine {
|
|
|
270
270
|
vp.setCamera(prevCamera);
|
|
271
271
|
}
|
|
272
272
|
});
|
|
273
|
-
if (immediate
|
|
273
|
+
if (immediate) {
|
|
274
274
|
this.render();
|
|
275
275
|
}
|
|
276
276
|
}
|
|
@@ -314,7 +314,7 @@ class RenderingEngine {
|
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
316
|
});
|
|
317
|
-
if (immediate
|
|
317
|
+
if (immediate) {
|
|
318
318
|
this.render();
|
|
319
319
|
}
|
|
320
320
|
}
|
|
@@ -426,7 +426,9 @@ class RenderingEngine {
|
|
|
426
426
|
triggerEvent(eventTarget, Events.ELEMENT_ENABLED, eventDetail);
|
|
427
427
|
}
|
|
428
428
|
setCustomViewports(viewportInputEntries) {
|
|
429
|
-
viewportInputEntries.forEach((vpie) =>
|
|
429
|
+
viewportInputEntries.forEach((vpie) => {
|
|
430
|
+
this.addCustomViewport(vpie);
|
|
431
|
+
});
|
|
430
432
|
}
|
|
431
433
|
setVtkjsDrivenViewports(viewportInputEntries) {
|
|
432
434
|
if (viewportInputEntries.length) {
|
|
@@ -517,7 +519,7 @@ class RenderingEngine {
|
|
|
517
519
|
this._render();
|
|
518
520
|
}
|
|
519
521
|
_render() {
|
|
520
|
-
if (this._needsRender.size > 0 && this._animationFrameSet
|
|
522
|
+
if (this._needsRender.size > 0 && !this._animationFrameSet) {
|
|
521
523
|
this._animationFrameHandle = window.requestAnimationFrame(this._renderFlaggedViewports);
|
|
522
524
|
this._animationFrameSet = true;
|
|
523
525
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { vtkImageData as vtkImageDataType } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
-
import
|
|
3
|
-
import { ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewportInput } from '../types
|
|
2
|
+
import { mat4 } from 'gl-matrix';
|
|
3
|
+
import type { ActorEntry, CPUIImageData, ICamera, IImage, IImageData, IImagesLoader, IStackInput, IStackViewport, ImageLoadListener, Mat3, Point2, Point3, Scaling, StackViewportProperties, ViewReference, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewportInput, ImagePixelModule, ImagePlaneModule } from '../types';
|
|
4
4
|
import Viewport from './Viewport';
|
|
5
5
|
import { InterpolationType, RequestType, ViewportStatus } from '../enums';
|
|
6
|
-
import
|
|
7
|
-
interface ImageDataMetaData {
|
|
6
|
+
import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
|
|
7
|
+
export interface ImageDataMetaData {
|
|
8
8
|
bitsAllocated: number;
|
|
9
|
-
|
|
9
|
+
numberOfComponents: number;
|
|
10
10
|
origin: Point3;
|
|
11
11
|
direction: Mat3;
|
|
12
12
|
dimensions: Point3;
|
|
@@ -38,7 +38,6 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
38
38
|
private _calibrationEvent;
|
|
39
39
|
private _cpuFallbackEnabledElement?;
|
|
40
40
|
private useCPURendering;
|
|
41
|
-
private useNativeDataType;
|
|
42
41
|
private cpuImagePixelData;
|
|
43
42
|
private cpuRenderingInvalidated;
|
|
44
43
|
private csImage;
|
|
@@ -61,12 +60,12 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
61
60
|
resetCamera: (options?: any) => boolean;
|
|
62
61
|
canvasToWorld: (canvasPos: Point2) => Point3;
|
|
63
62
|
worldToCanvas: (worldPos: Point3) => Point2;
|
|
64
|
-
getRenderer: () =>
|
|
63
|
+
getRenderer: () => vtkRenderer;
|
|
65
64
|
getDefaultActor: () => ActorEntry;
|
|
66
|
-
getActors: () =>
|
|
65
|
+
getActors: () => ActorEntry[];
|
|
67
66
|
getActor: (actorUID: string) => ActorEntry;
|
|
68
|
-
setActors: (actors:
|
|
69
|
-
addActors: (actors:
|
|
67
|
+
setActors: (actors: ActorEntry[]) => void;
|
|
68
|
+
addActors: (actors: ActorEntry[]) => void;
|
|
70
69
|
addActor: (actorEntry: ActorEntry) => void;
|
|
71
70
|
removeAllActors: () => void;
|
|
72
71
|
private setVOI;
|
|
@@ -118,16 +117,16 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
118
117
|
getImageDataMetadata(image: IImage): ImageDataMetaData;
|
|
119
118
|
getImagePlaneReferenceData(sliceIndex?: number): ViewReference;
|
|
120
119
|
private _getCameraOrientation;
|
|
121
|
-
createVTKImageData({ origin, direction, dimensions, spacing,
|
|
120
|
+
createVTKImageData({ origin, direction, dimensions, spacing, numberOfComponents, pixelArray, }: {
|
|
122
121
|
origin: any;
|
|
123
122
|
direction: any;
|
|
124
123
|
dimensions: any;
|
|
125
124
|
spacing: any;
|
|
126
|
-
|
|
125
|
+
numberOfComponents: any;
|
|
127
126
|
pixelArray: any;
|
|
128
127
|
}): vtkImageDataType;
|
|
129
128
|
private _createVTKImageData;
|
|
130
|
-
setStack(imageIds:
|
|
129
|
+
setStack(imageIds: string[], currentImageIdIndex?: number): Promise<string>;
|
|
131
130
|
private _throwIfDestroyed;
|
|
132
131
|
private _checkVTKImageDataMatchesCornerstoneImage;
|
|
133
132
|
private _updateVTKImageDataFromCornerstoneImage;
|
|
@@ -136,12 +135,8 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
136
135
|
successCallback(imageId: any, image: any): void;
|
|
137
136
|
errorCallback(imageId: any, permanent: any, error: any): void;
|
|
138
137
|
getLoaderImageOptions(imageId: string): {
|
|
139
|
-
targetBuffer: {
|
|
140
|
-
type: string;
|
|
141
|
-
};
|
|
142
138
|
useRGBA: boolean;
|
|
143
139
|
transferSyntaxUID: any;
|
|
144
|
-
useNativeDataType: boolean;
|
|
145
140
|
priority: number;
|
|
146
141
|
requestType: RequestType;
|
|
147
142
|
additionalDetails: {
|
|
@@ -154,7 +149,15 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
154
149
|
renderImageObject: (image: any) => void;
|
|
155
150
|
private _setCSImage;
|
|
156
151
|
private _updateToDisplayImageCPU;
|
|
157
|
-
|
|
152
|
+
getSliceViewInfo(): {
|
|
153
|
+
width: number;
|
|
154
|
+
height: number;
|
|
155
|
+
sliceIndex: number;
|
|
156
|
+
slicePlane: number;
|
|
157
|
+
sliceToIndexMatrix: mat4;
|
|
158
|
+
indexToSliceMatrix: mat4;
|
|
159
|
+
};
|
|
160
|
+
addImages(stackInputs: IStackInput[]): void;
|
|
158
161
|
private _updateActorToDisplayImageId;
|
|
159
162
|
private _getInitialVOIRange;
|
|
160
163
|
private _getPTPreScaledRange;
|
|
@@ -178,12 +181,18 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
178
181
|
private _getValidVOILUTFunction;
|
|
179
182
|
getCurrentImageIdIndex: () => number;
|
|
180
183
|
getSliceIndex: () => number;
|
|
184
|
+
getSliceInfo(): {
|
|
185
|
+
sliceIndex: number;
|
|
186
|
+
slicePlane: number;
|
|
187
|
+
width: number;
|
|
188
|
+
height: number;
|
|
189
|
+
};
|
|
181
190
|
isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean | unknown;
|
|
182
191
|
getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
|
|
183
192
|
setViewReference(viewRef: ViewReference): void;
|
|
184
193
|
getViewReferenceId(specifier?: ViewReferenceSpecifier): string;
|
|
185
194
|
getTargetImageIdIndex: () => number;
|
|
186
|
-
getImageIds: () =>
|
|
195
|
+
getImageIds: () => string[];
|
|
187
196
|
getCurrentImageId: () => string;
|
|
188
197
|
hasImageId: (imageId: string) => boolean;
|
|
189
198
|
hasImageURI: (imageURI: string) => boolean;
|