@cornerstonejs/core 2.0.0-beta.20 → 2.0.0-beta.21
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 +36 -44
- 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 +7 -8
- package/dist/esm/RenderingEngine/RenderingEngine.js +18 -17
- package/dist/esm/RenderingEngine/StackViewport.d.ts +29 -18
- package/dist/esm/RenderingEngine/StackViewport.js +66 -50
- package/dist/esm/RenderingEngine/VideoViewport.d.ts +19 -28
- package/dist/esm/RenderingEngine/VideoViewport.js +59 -22
- package/dist/esm/RenderingEngine/Viewport.d.ts +25 -14
- package/dist/esm/RenderingEngine/Viewport.js +20 -14
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +21 -9
- package/dist/esm/RenderingEngine/VolumeViewport.js +88 -8
- 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 +2 -2
- 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 +3 -6
- 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 +10 -35
- 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/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 +110 -56
- 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 +48 -254
- package/dist/esm/cache/classes/Surface.d.ts +3 -3
- 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 +4 -3
- package/dist/esm/index.js +3 -2
- package/dist/esm/init.d.ts +5 -8
- package/dist/esm/init.js +21 -82
- package/dist/esm/loaders/ProgressiveRetrieveImages.d.ts +5 -5
- package/dist/esm/loaders/ProgressiveRetrieveImages.js +3 -1
- 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/imageLoader.d.ts +12 -17
- package/dist/esm/loaders/imageLoader.js +174 -95
- 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 +14 -22
- package/dist/esm/loaders/volumeLoader.js +62 -210
- package/dist/esm/metaData.d.ts +2 -4
- package/dist/esm/requestPool/requestPoolManager.d.ts +7 -9
- 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 +14 -11
- 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 +12 -10
- 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 +4 -4
- 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 +1 -1
- 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/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/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/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/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/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/isTypedArray.d.ts +1 -1
- package/dist/esm/utilities/loadImageToCanvas.d.ts +6 -6
- package/dist/esm/utilities/makeVolumeMetadata.d.ts +2 -2
- 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/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/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +5 -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
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { vtkCamera } from '@kitware/vtk.js/Rendering/Core/Camera';
|
|
2
2
|
import vtkPlane from '@kitware/vtk.js/Common/DataModel/Plane';
|
|
3
|
+
import type { mat4 } from 'gl-matrix';
|
|
3
4
|
import ViewportStatus from '../enums/ViewportStatus';
|
|
4
5
|
import ViewportType from '../enums/ViewportType';
|
|
5
6
|
import type { ICamera, ActorEntry, IRenderingEngine, ViewportInputOptions, Point2, Point3, FlipDirection, DisplayArea, ViewPresentation, ViewReference, ViewportProperties } from '../types';
|
|
6
|
-
import type { ViewportInput, IViewport, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewPresentationSelector } from '../types/IViewport';
|
|
7
|
+
import type { ViewportInput, IViewport, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewPresentationSelector, DataSetOptions } from '../types/IViewport';
|
|
7
8
|
import type { vtkSlabCamera } from './vtkClasses/vtkSlabCamera';
|
|
8
|
-
import IImageCalibration from '../types/IImageCalibration';
|
|
9
|
+
import type IImageCalibration from '../types/IImageCalibration';
|
|
9
10
|
import { InterpolationType } from '../enums';
|
|
11
|
+
import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
|
|
10
12
|
declare class Viewport implements IViewport {
|
|
11
13
|
static readonly CameraViewPresentation: ViewPresentationSelector;
|
|
12
14
|
static readonly TransferViewPresentation: ViewPresentationSelector;
|
|
@@ -24,8 +26,8 @@ declare class Viewport implements IViewport {
|
|
|
24
26
|
sy: number;
|
|
25
27
|
sWidth: number;
|
|
26
28
|
sHeight: number;
|
|
27
|
-
_actors: Map<string,
|
|
28
|
-
readonly defaultOptions:
|
|
29
|
+
_actors: Map<string, ActorEntry>;
|
|
30
|
+
readonly defaultOptions: ViewportInputOptions;
|
|
29
31
|
options: ViewportInputOptions;
|
|
30
32
|
_suppressCameraModifiedEvents: boolean;
|
|
31
33
|
readonly suppressEvents: boolean;
|
|
@@ -52,22 +54,30 @@ declare class Viewport implements IViewport {
|
|
|
52
54
|
removeWidgets: () => void;
|
|
53
55
|
setRendered(): void;
|
|
54
56
|
getRenderingEngine(): IRenderingEngine;
|
|
55
|
-
getRenderer():
|
|
57
|
+
getRenderer(): vtkRenderer;
|
|
56
58
|
render(): void;
|
|
57
59
|
setOptions(options: ViewportInputOptions, immediate?: boolean): void;
|
|
58
60
|
reset(immediate?: boolean): void;
|
|
61
|
+
getSliceViewInfo(): {
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
sliceIndex: number;
|
|
65
|
+
slicePlane: number;
|
|
66
|
+
sliceToIndexMatrix: mat4;
|
|
67
|
+
indexToSliceMatrix: mat4;
|
|
68
|
+
};
|
|
59
69
|
protected flip({ flipHorizontal, flipVertical }: FlipDirection): void;
|
|
60
70
|
private getDefaultImageData;
|
|
61
71
|
getDefaultActor(): ActorEntry;
|
|
62
|
-
getActors():
|
|
63
|
-
getActorUIDs():
|
|
72
|
+
getActors(): ActorEntry[];
|
|
73
|
+
getActorUIDs(): string[];
|
|
64
74
|
getActor(actorUID: string): ActorEntry;
|
|
65
75
|
getActorUIDByIndex(index: number): string;
|
|
66
76
|
getActorByIndex(index: number): ActorEntry;
|
|
67
|
-
setActors(actors:
|
|
77
|
+
setActors(actors: ActorEntry[]): void;
|
|
68
78
|
_removeActor(actorUID: string): void;
|
|
69
|
-
removeActors(actorUIDs:
|
|
70
|
-
addActors(actors:
|
|
79
|
+
removeActors(actorUIDs: string[]): void;
|
|
80
|
+
addActors(actors: ActorEntry[], resetCameraPanAndZoom?: boolean): void;
|
|
71
81
|
addActor(actorEntry: ActorEntry): void;
|
|
72
82
|
removeAllActors(): void;
|
|
73
83
|
protected resetCameraNoEvent(): void;
|
|
@@ -84,6 +94,7 @@ declare class Viewport implements IViewport {
|
|
|
84
94
|
getPan(initialCamera?: ICamera): Point2;
|
|
85
95
|
getCurrentImageIdIndex(): number;
|
|
86
96
|
getSliceIndex(): number;
|
|
97
|
+
getImageData(): any;
|
|
87
98
|
getViewReferenceId(_specifier?: ViewReferenceSpecifier): string;
|
|
88
99
|
setPan(pan: Point2, storeAsInitialCamera?: boolean): void;
|
|
89
100
|
getZoom(compareCamera?: ICamera): number;
|
|
@@ -97,7 +108,7 @@ declare class Viewport implements IViewport {
|
|
|
97
108
|
triggerCameraModifiedEventIfNecessary(previousCamera: ICamera, updatedCamera: ICamera): void;
|
|
98
109
|
updateCameraClippingPlanesAndRange(): void;
|
|
99
110
|
protected updateClippingPlanesForActors(updatedCamera: ICamera): Promise<void>;
|
|
100
|
-
setOrientationOfClippingPlanes(vtkPlanes:
|
|
111
|
+
setOrientationOfClippingPlanes(vtkPlanes: vtkPlane[], slabThickness: number, viewPlaneNormal: Point3, focalPoint: Point3): void;
|
|
101
112
|
getClippingPlanesForActor(actorEntry?: ActorEntry): vtkPlane[];
|
|
102
113
|
private _getWorldDistanceViewUpAndViewRight;
|
|
103
114
|
getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
|
|
@@ -105,14 +116,14 @@ declare class Viewport implements IViewport {
|
|
|
105
116
|
getViewPresentation(viewPresSel?: ViewPresentationSelector): ViewPresentation;
|
|
106
117
|
setViewReference(viewRef: ViewReference): void;
|
|
107
118
|
setViewPresentation(viewPres: ViewPresentation): void;
|
|
108
|
-
|
|
109
|
-
_getCorners(bounds: Array<number>): Array<number>[];
|
|
119
|
+
_getCorners(bounds: number[]): number[][];
|
|
110
120
|
_getFocalPointForResetCamera(centeredFocalPoint: Point3, previousCamera: ICamera, { resetPan, resetToCenter }: {
|
|
111
121
|
resetPan?: boolean;
|
|
112
122
|
resetToCenter?: boolean;
|
|
113
123
|
}): Point3;
|
|
114
124
|
_isInBounds(point: Point3, bounds: number[]): boolean;
|
|
115
|
-
_getEdges(bounds:
|
|
125
|
+
_getEdges(bounds: number[]): [number[], number[]][];
|
|
116
126
|
static boundsRadius(bounds: number[]): number;
|
|
127
|
+
setDataIds(_imageIds: string[], _options?: DataSetOptions): void;
|
|
117
128
|
}
|
|
118
129
|
export default Viewport;
|
|
@@ -9,7 +9,6 @@ import renderingEngineCache from './renderingEngineCache';
|
|
|
9
9
|
import { triggerEvent, planar, isImageActor, actorIsA, isEqual, } from '../utilities';
|
|
10
10
|
import hasNaNValues from '../utilities/hasNaNValues';
|
|
11
11
|
import { RENDERING_DEFAULTS } from '../constants';
|
|
12
|
-
import { getConfiguration } from '../init';
|
|
13
12
|
import { InterpolationType } from '../enums';
|
|
14
13
|
class Viewport {
|
|
15
14
|
static { this.CameraViewPresentation = {
|
|
@@ -94,7 +93,7 @@ class Viewport {
|
|
|
94
93
|
if (!renderingEngine || renderingEngine.hasBeenDestroyed) {
|
|
95
94
|
throw new Error('Rendering engine has been destroyed');
|
|
96
95
|
}
|
|
97
|
-
return renderingEngine.offscreenMultiRenderWindow
|
|
96
|
+
return renderingEngine.offscreenMultiRenderWindow?.getRenderer(this.id);
|
|
98
97
|
}
|
|
99
98
|
render() {
|
|
100
99
|
const renderingEngine = this.getRenderingEngine();
|
|
@@ -115,6 +114,9 @@ class Viewport {
|
|
|
115
114
|
this.render();
|
|
116
115
|
}
|
|
117
116
|
}
|
|
117
|
+
getSliceViewInfo() {
|
|
118
|
+
throw new Error('Method not implemented.');
|
|
119
|
+
}
|
|
118
120
|
flip({ flipHorizontal, flipVertical }) {
|
|
119
121
|
const imageData = this.getDefaultImageData();
|
|
120
122
|
if (!imageData) {
|
|
@@ -218,7 +220,9 @@ class Viewport {
|
|
|
218
220
|
console.warn('Viewport::addActors::Rendering engine has not been initialized or has been destroyed');
|
|
219
221
|
return;
|
|
220
222
|
}
|
|
221
|
-
actors.forEach((actor) =>
|
|
223
|
+
actors.forEach((actor) => {
|
|
224
|
+
this.addActor(actor);
|
|
225
|
+
});
|
|
222
226
|
this.resetCamera({
|
|
223
227
|
resetPan: resetCameraPanAndZoom,
|
|
224
228
|
resetZoom: resetCameraPanAndZoom,
|
|
@@ -476,11 +480,11 @@ class Viewport {
|
|
|
476
480
|
renderer.invokeEvent(RESET_CAMERA_EVENT);
|
|
477
481
|
this.triggerCameraModifiedEventIfNecessary(previousCamera, modifiedCamera);
|
|
478
482
|
if (imageData &&
|
|
479
|
-
this.options
|
|
483
|
+
this.options.displayArea &&
|
|
480
484
|
resetZoom &&
|
|
481
485
|
resetPan &&
|
|
482
486
|
resetToCenter) {
|
|
483
|
-
this.setDisplayArea(this.options
|
|
487
|
+
this.setDisplayArea(this.options.displayArea);
|
|
484
488
|
}
|
|
485
489
|
return true;
|
|
486
490
|
}
|
|
@@ -496,7 +500,7 @@ class Viewport {
|
|
|
496
500
|
const zero3 = this.canvasToWorld([0, 0]);
|
|
497
501
|
const initialCanvasFocal = this.worldToCanvas(vec3.subtract([0, 0, 0], initialCamera.focalPoint, zero3));
|
|
498
502
|
const currentCanvasFocal = this.worldToCanvas(vec3.subtract([0, 0, 0], focalPoint, zero3));
|
|
499
|
-
const result =
|
|
503
|
+
const result = vec2.subtract([0, 0], initialCanvasFocal, currentCanvasFocal);
|
|
500
504
|
return result;
|
|
501
505
|
}
|
|
502
506
|
getCurrentImageIdIndex() {
|
|
@@ -505,6 +509,9 @@ class Viewport {
|
|
|
505
509
|
getSliceIndex() {
|
|
506
510
|
throw new Error('Not implemented');
|
|
507
511
|
}
|
|
512
|
+
getImageData() {
|
|
513
|
+
throw new Error('Not implemented');
|
|
514
|
+
}
|
|
508
515
|
getViewReferenceId(_specifier) {
|
|
509
516
|
return null;
|
|
510
517
|
}
|
|
@@ -654,7 +661,7 @@ class Viewport {
|
|
|
654
661
|
}
|
|
655
662
|
if (cameraModifiedOutOfPlane || viewUpHasChanged) {
|
|
656
663
|
const actorEntry = this.getDefaultActor();
|
|
657
|
-
if (!actorEntry
|
|
664
|
+
if (!actorEntry.actor) {
|
|
658
665
|
return;
|
|
659
666
|
}
|
|
660
667
|
if (!actorIsA(actorEntry, 'vtkActor')) {
|
|
@@ -697,7 +704,7 @@ class Viewport {
|
|
|
697
704
|
}
|
|
698
705
|
const mapper = actorEntry.actor.getMapper();
|
|
699
706
|
let vtkPlanes = actorEntry?.clippingFilter
|
|
700
|
-
? actorEntry
|
|
707
|
+
? actorEntry?.clippingFilter.getClippingPlanes()
|
|
701
708
|
: mapper.getClippingPlanes();
|
|
702
709
|
if (vtkPlanes.length === 0 && actorEntry?.clippingFilter) {
|
|
703
710
|
vtkPlanes = [vtkPlane.newInstance(), vtkPlane.newInstance()];
|
|
@@ -744,7 +751,7 @@ class Viewport {
|
|
|
744
751
|
}
|
|
745
752
|
const mapper = actorEntry.actor.getMapper();
|
|
746
753
|
let vtkPlanes = actorEntry?.clippingFilter
|
|
747
|
-
? actorEntry
|
|
754
|
+
? actorEntry?.clippingFilter.getClippingPlanes()
|
|
748
755
|
: mapper.getClippingPlanes();
|
|
749
756
|
if (vtkPlanes.length === 0 && actorEntry?.clippingFilter) {
|
|
750
757
|
vtkPlanes = [vtkPlane.newInstance(), vtkPlane.newInstance()];
|
|
@@ -810,7 +817,7 @@ class Viewport {
|
|
|
810
817
|
if (viewPlaneNormal &&
|
|
811
818
|
!isEqual(viewPlaneNormal, camera.viewPlaneNormal) &&
|
|
812
819
|
!isEqual(vec3.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
|
|
813
|
-
return options?.withOrientation
|
|
820
|
+
return options?.withOrientation;
|
|
814
821
|
}
|
|
815
822
|
return true;
|
|
816
823
|
}
|
|
@@ -856,10 +863,6 @@ class Viewport {
|
|
|
856
863
|
this.setRotation(rotation);
|
|
857
864
|
}
|
|
858
865
|
}
|
|
859
|
-
_shouldUseNativeDataType() {
|
|
860
|
-
const { useNorm16Texture, preferSizeOverAccuracy } = getConfiguration().rendering;
|
|
861
|
-
return useNorm16Texture || preferSizeOverAccuracy;
|
|
862
|
-
}
|
|
863
866
|
_getCorners(bounds) {
|
|
864
867
|
return [
|
|
865
868
|
[bounds[0], bounds[2], bounds[4]],
|
|
@@ -928,5 +931,8 @@ class Viewport {
|
|
|
928
931
|
const radius = Math.sqrt(w1 + w2 + w3 || 1) * 0.5;
|
|
929
932
|
return radius;
|
|
930
933
|
}
|
|
934
|
+
setDataIds(_imageIds, _options) {
|
|
935
|
+
throw new Error('Unsupported operatoin setDataIds');
|
|
936
|
+
}
|
|
931
937
|
}
|
|
932
938
|
export default Viewport;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { BlendModes
|
|
1
|
+
import type { BlendModes } from '../enums';
|
|
2
|
+
import { OrientationAxis } from '../enums';
|
|
2
3
|
import type { IVolumeInput, OrientationVectors, Point3, ViewReference, ViewReferenceSpecifier } from '../types';
|
|
3
4
|
import type { ViewportInput } from '../types/IViewport';
|
|
4
5
|
import BaseVolumeViewport from './BaseVolumeViewport';
|
|
6
|
+
import { mat4 } from 'gl-matrix';
|
|
5
7
|
declare class VolumeViewport extends BaseVolumeViewport {
|
|
6
8
|
private _useAcquisitionPlaneForViewPlane;
|
|
7
9
|
constructor(props: ViewportInput);
|
|
8
|
-
setVolumes(volumeInputArray:
|
|
10
|
+
setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
9
11
|
getNumberOfSlices: () => number;
|
|
10
|
-
addVolumes(volumeInputArray:
|
|
12
|
+
addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
11
13
|
setOrientation(orientation: OrientationAxis | OrientationVectors, immediate?: boolean): void;
|
|
12
14
|
private _getAcquisitionPlaneOrientation;
|
|
13
15
|
private _setViewPlaneToAcquisitionPlane;
|
|
@@ -17,20 +19,30 @@ declare class VolumeViewport extends BaseVolumeViewport {
|
|
|
17
19
|
resetSlabThickness(): void;
|
|
18
20
|
getCurrentImageIdIndex: (volumeId?: string) => number;
|
|
19
21
|
getSliceIndex: () => number;
|
|
22
|
+
getSliceViewInfo(): {
|
|
23
|
+
sliceIndex: number;
|
|
24
|
+
slicePlane: number;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
sliceToIndexMatrix: mat4;
|
|
28
|
+
indexToSliceMatrix: mat4;
|
|
29
|
+
};
|
|
30
|
+
getCurrentSlicePixelData(): import("../types").PixelDataTypedArray;
|
|
20
31
|
getCurrentImageId: () => string | undefined;
|
|
21
32
|
getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
|
|
22
33
|
resetProperties(volumeId?: string): void;
|
|
23
34
|
private _resetProperties;
|
|
24
|
-
|
|
35
|
+
private setCameraClippingRange;
|
|
36
|
+
getSlicesClippingPlanes(): {
|
|
25
37
|
sliceIndex: number;
|
|
26
|
-
planes:
|
|
38
|
+
planes: {
|
|
27
39
|
normal: Point3;
|
|
28
40
|
origin: Point3;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
getSlicePlaneCoordinates: () =>
|
|
41
|
+
}[];
|
|
42
|
+
}[];
|
|
43
|
+
getSlicePlaneCoordinates: () => {
|
|
32
44
|
sliceIndex: number;
|
|
33
45
|
point: Point3;
|
|
34
|
-
}
|
|
46
|
+
}[];
|
|
35
47
|
}
|
|
36
48
|
export default VolumeViewport;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import vtkPlane from '@kitware/vtk.js/Common/DataModel/Plane';
|
|
2
2
|
import cache from '../cache';
|
|
3
|
-
import { MPR_CAMERA_VALUES, RENDERING_DEFAULTS } from '../constants';
|
|
3
|
+
import { EPSILON, MPR_CAMERA_VALUES, RENDERING_DEFAULTS } from '../constants';
|
|
4
4
|
import { OrientationAxis, Events } from '../enums';
|
|
5
5
|
import { actorIsA, getClosestImageId, getSliceRange, getSpacingInNormalDirection, isImageActor, snapFocalPointToSlice, triggerEvent, } from '../utilities';
|
|
6
6
|
import BaseVolumeViewport from './BaseVolumeViewport';
|
|
7
7
|
import setDefaultVolumeVOI from './helpers/setDefaultVolumeVOI';
|
|
8
8
|
import { setTransferFunctionNodes } from '../utilities/transferFunctionUtils';
|
|
9
9
|
import getImageSliceDataForVolumeViewport from '../utilities/getImageSliceDataForVolumeViewport';
|
|
10
|
-
import { vec3 } from 'gl-matrix';
|
|
10
|
+
import { mat4, vec3 } from 'gl-matrix';
|
|
11
|
+
import { transformCanvasToIJK } from '../utilities/transformCanvasToIJK';
|
|
12
|
+
import { transformIJKToCanvas } from '../utilities/transformIJKToCanvas';
|
|
11
13
|
class VolumeViewport extends BaseVolumeViewport {
|
|
12
14
|
constructor(props) {
|
|
13
15
|
super(props);
|
|
14
16
|
this._useAcquisitionPlaneForViewPlane = false;
|
|
15
17
|
this.getNumberOfSlices = () => {
|
|
16
|
-
const { numberOfSlices } = getImageSliceDataForVolumeViewport(this);
|
|
18
|
+
const { numberOfSlices } = getImageSliceDataForVolumeViewport(this) || {};
|
|
17
19
|
return numberOfSlices;
|
|
18
20
|
};
|
|
19
21
|
this.getCurrentImageIdIndex = (volumeId) => {
|
|
@@ -30,7 +32,7 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
30
32
|
return Math.round(Math.abs(distance) / spacingInNormal);
|
|
31
33
|
};
|
|
32
34
|
this.getSliceIndex = () => {
|
|
33
|
-
const { imageIndex } = getImageSliceDataForVolumeViewport(this);
|
|
35
|
+
const { imageIndex } = getImageSliceDataForVolumeViewport(this) || {};
|
|
34
36
|
return imageIndex;
|
|
35
37
|
};
|
|
36
38
|
this.getCurrentImageId = () => {
|
|
@@ -176,14 +178,14 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
180
|
resetCamera(options) {
|
|
179
|
-
const { resetPan = true, resetZoom = true, resetRotation = true, resetToCenter = true, suppressEvents = false, } = options || {};
|
|
181
|
+
const { resetPan = true, resetZoom = true, resetRotation = true, resetToCenter = true, suppressEvents = false, resetOrientation = true, } = options || {};
|
|
180
182
|
const { orientation } = this.viewportProperties;
|
|
181
|
-
if (orientation) {
|
|
183
|
+
if (orientation && resetOrientation) {
|
|
182
184
|
this.applyViewOrientation(orientation, false);
|
|
183
185
|
}
|
|
184
186
|
super.resetCamera({ resetPan, resetZoom, resetToCenter });
|
|
185
|
-
this.resetVolumeViewportClippingRange();
|
|
186
187
|
const activeCamera = this.getVtkActiveCamera();
|
|
188
|
+
this.setCameraClippingRange();
|
|
187
189
|
const viewPlaneNormal = activeCamera.getViewPlaneNormal();
|
|
188
190
|
const focalPoint = activeCamera.getFocalPoint();
|
|
189
191
|
const actorEntries = this.getActors();
|
|
@@ -242,6 +244,7 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
242
244
|
});
|
|
243
245
|
const currentCamera = this.getCamera();
|
|
244
246
|
this.updateClippingPlanesForActors(currentCamera);
|
|
247
|
+
this.setCameraClippingRange();
|
|
245
248
|
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
246
249
|
this.viewportProperties.slabThickness = slabThickness;
|
|
247
250
|
}
|
|
@@ -257,6 +260,74 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
257
260
|
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
258
261
|
this.viewportProperties.slabThickness = undefined;
|
|
259
262
|
}
|
|
263
|
+
getSliceViewInfo() {
|
|
264
|
+
const { width: canvasWidth, height: canvasHeight } = this.getCanvas();
|
|
265
|
+
const ijkOriginPoint = transformCanvasToIJK(this, [0, 0]);
|
|
266
|
+
const ijkRowPoint = transformCanvasToIJK(this, [canvasWidth - 1, 0]);
|
|
267
|
+
const ijkColPoint = transformCanvasToIJK(this, [0, canvasHeight - 1]);
|
|
268
|
+
const ijkRowVec = vec3.sub(vec3.create(), ijkRowPoint, ijkOriginPoint);
|
|
269
|
+
const ijkColVec = vec3.sub(vec3.create(), ijkColPoint, ijkOriginPoint);
|
|
270
|
+
const ijkSliceVec = vec3.cross(vec3.create(), ijkRowVec, ijkColVec);
|
|
271
|
+
vec3.normalize(ijkRowVec, ijkRowVec);
|
|
272
|
+
vec3.normalize(ijkColVec, ijkColVec);
|
|
273
|
+
vec3.normalize(ijkSliceVec, ijkSliceVec);
|
|
274
|
+
const { dimensions } = this.getImageData();
|
|
275
|
+
const [sx, sy, sz] = dimensions;
|
|
276
|
+
const ijkCorners = [
|
|
277
|
+
[0, 0, 0],
|
|
278
|
+
[sx - 1, 0, 0],
|
|
279
|
+
[0, sy - 1, 0],
|
|
280
|
+
[sx - 1, sy - 1, 0],
|
|
281
|
+
[0, 0, sz - 1],
|
|
282
|
+
[sx - 1, 0, sz - 1],
|
|
283
|
+
[0, sy - 1, sz - 1],
|
|
284
|
+
[sx - 1, sy - 1, sz - 1],
|
|
285
|
+
];
|
|
286
|
+
const canvasCorners = ijkCorners.map((ijkCorner) => transformIJKToCanvas(this, ijkCorner));
|
|
287
|
+
const canvasAABB = canvasCorners.reduce((aabb, canvasPoint) => {
|
|
288
|
+
aabb.minX = Math.min(aabb.minX, canvasPoint[0]);
|
|
289
|
+
aabb.minY = Math.min(aabb.minY, canvasPoint[1]);
|
|
290
|
+
aabb.maxX = Math.max(aabb.maxX, canvasPoint[0]);
|
|
291
|
+
aabb.maxY = Math.max(aabb.maxY, canvasPoint[1]);
|
|
292
|
+
return aabb;
|
|
293
|
+
}, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });
|
|
294
|
+
const ijkTopLeft = transformCanvasToIJK(this, [
|
|
295
|
+
canvasAABB.minX,
|
|
296
|
+
canvasAABB.minY,
|
|
297
|
+
]);
|
|
298
|
+
const sliceToIndexMatrix = mat4.fromValues(ijkRowVec[0], ijkRowVec[1], ijkRowVec[2], 0, ijkColVec[0], ijkColVec[1], ijkColVec[2], 0, ijkSliceVec[0], ijkSliceVec[1], ijkSliceVec[2], 0, ijkTopLeft[0], ijkTopLeft[1], ijkTopLeft[2], 1);
|
|
299
|
+
const ijkBottomRight = transformCanvasToIJK(this, [
|
|
300
|
+
canvasAABB.maxX,
|
|
301
|
+
canvasAABB.maxY,
|
|
302
|
+
]);
|
|
303
|
+
const ijkDiagonal = vec3.sub(vec3.create(), ijkBottomRight, ijkTopLeft);
|
|
304
|
+
const indexToSliceMatrix = mat4.invert(mat4.create(), sliceToIndexMatrix);
|
|
305
|
+
const { viewPlaneNormal } = this.getCamera();
|
|
306
|
+
const isOblique = viewPlaneNormal.filter((component) => Math.abs(component) > EPSILON)
|
|
307
|
+
.length > 1;
|
|
308
|
+
if (isOblique) {
|
|
309
|
+
throw new Error('getSliceInfo is not supported for oblique views');
|
|
310
|
+
}
|
|
311
|
+
const sliceAxis = viewPlaneNormal.findIndex((component) => Math.abs(component) > 1 - EPSILON);
|
|
312
|
+
if (sliceAxis === -1) {
|
|
313
|
+
throw new Error('Unable to determine slice axis');
|
|
314
|
+
}
|
|
315
|
+
const sliceWidth = vec3.dot(ijkRowVec, ijkDiagonal) + 1;
|
|
316
|
+
const sliceHeight = vec3.dot(ijkColVec, ijkDiagonal) + 1;
|
|
317
|
+
return {
|
|
318
|
+
sliceIndex: this.getSliceIndex(),
|
|
319
|
+
width: sliceWidth,
|
|
320
|
+
height: sliceHeight,
|
|
321
|
+
slicePlane: sliceAxis,
|
|
322
|
+
sliceToIndexMatrix,
|
|
323
|
+
indexToSliceMatrix,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
getCurrentSlicePixelData() {
|
|
327
|
+
const { voxelManager } = this.getImageData();
|
|
328
|
+
const sliceData = voxelManager.getSliceData(this.getSliceViewInfo());
|
|
329
|
+
return sliceData;
|
|
330
|
+
}
|
|
260
331
|
getViewReference(viewRefSpecifier = {}) {
|
|
261
332
|
const viewRef = super.getViewReference(viewRefSpecifier);
|
|
262
333
|
if (!viewRef?.volumeId) {
|
|
@@ -285,7 +356,7 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
285
356
|
if (!imageVolume) {
|
|
286
357
|
throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
|
|
287
358
|
}
|
|
288
|
-
setDefaultVolumeVOI(volumeActor.actor, imageVolume
|
|
359
|
+
setDefaultVolumeVOI(volumeActor.actor, imageVolume);
|
|
289
360
|
if (isImageActor(volumeActor)) {
|
|
290
361
|
const transferFunction = volumeActor.actor
|
|
291
362
|
.getProperty()
|
|
@@ -307,6 +378,15 @@ class VolumeViewport extends BaseVolumeViewport {
|
|
|
307
378
|
});
|
|
308
379
|
triggerEvent(this.element, Events.VOI_MODIFIED, eventDetails);
|
|
309
380
|
}
|
|
381
|
+
setCameraClippingRange() {
|
|
382
|
+
const activeCamera = this.getVtkActiveCamera();
|
|
383
|
+
if (activeCamera.getParallelProjection()) {
|
|
384
|
+
activeCamera.setClippingRange(activeCamera.getDistance(), activeCamera.getDistance() + this.getSlabThickness());
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
activeCamera.setClippingRange(RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
310
390
|
getSlicesClippingPlanes() {
|
|
311
391
|
const focalPoints = this.getSlicePlaneCoordinates();
|
|
312
392
|
const { viewPlaneNormal } = this.getCamera();
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { BlendModes } from '../enums';
|
|
1
|
+
import type { BlendModes } from '../enums';
|
|
2
2
|
import type { ViewportInput } from '../types/IViewport';
|
|
3
3
|
import BaseVolumeViewport from './BaseVolumeViewport';
|
|
4
4
|
declare class VolumeViewport3D extends BaseVolumeViewport {
|
|
5
5
|
constructor(props: ViewportInput);
|
|
6
6
|
resetCamera(resetPan?: boolean, resetZoom?: boolean, resetToCenter?: boolean): boolean;
|
|
7
7
|
getRotation: () => number;
|
|
8
|
-
getCurrentImageIdIndex: () => number
|
|
8
|
+
getCurrentImageIdIndex: () => number;
|
|
9
9
|
getCurrentImageId: () => string;
|
|
10
|
-
setSlabThickness(slabThickness: number, filterActorUIDs?:
|
|
10
|
+
setSlabThickness(slabThickness: number, filterActorUIDs?: string[]): void;
|
|
11
11
|
setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void;
|
|
12
12
|
resetProperties(volumeId?: string): void;
|
|
13
13
|
resetSlabThickness(): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RENDERING_DEFAULTS } from '../constants';
|
|
1
2
|
import { OrientationAxis } from '../enums';
|
|
2
3
|
import BaseVolumeViewport from './BaseVolumeViewport';
|
|
3
4
|
class VolumeViewport3D extends BaseVolumeViewport {
|
|
@@ -5,7 +6,7 @@ class VolumeViewport3D extends BaseVolumeViewport {
|
|
|
5
6
|
super(props);
|
|
6
7
|
this.getRotation = () => 0;
|
|
7
8
|
this.getCurrentImageIdIndex = () => {
|
|
8
|
-
return
|
|
9
|
+
return 0;
|
|
9
10
|
};
|
|
10
11
|
this.getCurrentImageId = () => {
|
|
11
12
|
return null;
|
|
@@ -21,8 +22,14 @@ class VolumeViewport3D extends BaseVolumeViewport {
|
|
|
21
22
|
}
|
|
22
23
|
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true) {
|
|
23
24
|
super.resetCamera({ resetPan, resetZoom, resetToCenter });
|
|
24
|
-
this.
|
|
25
|
-
|
|
25
|
+
const activeCamera = this.getVtkActiveCamera();
|
|
26
|
+
if (activeCamera.getParallelProjection()) {
|
|
27
|
+
activeCamera.setClippingRange(-RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
activeCamera.setClippingRange(RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
26
33
|
}
|
|
27
34
|
setSlabThickness(slabThickness, filterActorUIDs) {
|
|
28
35
|
return null;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { IWSIViewport, WSIViewportProperties, Point3, Point2, ICamera, WSIViewportInput, CPUIImageData } from '../types';
|
|
2
|
+
import { Transform } from './helpers/cpuFallback/rendering/transform';
|
|
3
|
+
import Viewport from './Viewport';
|
|
4
|
+
declare class WSIViewport extends Viewport implements IWSIViewport {
|
|
5
|
+
modality: any;
|
|
6
|
+
protected imageIds: string[];
|
|
7
|
+
readonly uid: any;
|
|
8
|
+
readonly renderingEngineId: string;
|
|
9
|
+
private frameOfReferenceUID;
|
|
10
|
+
protected metadata: any;
|
|
11
|
+
protected metadataDicomweb: any;
|
|
12
|
+
private microscopyElement;
|
|
13
|
+
protected map: any;
|
|
14
|
+
private internalCamera;
|
|
15
|
+
private viewer;
|
|
16
|
+
private voiRange;
|
|
17
|
+
constructor(props: WSIViewportInput);
|
|
18
|
+
static get useCustomRenderingPipeline(): boolean;
|
|
19
|
+
private addEventListeners;
|
|
20
|
+
private removeEventListeners;
|
|
21
|
+
private elementDisabledHandler;
|
|
22
|
+
private getImageDataMetadata;
|
|
23
|
+
setFrameNumber(frame: number): Promise<void>;
|
|
24
|
+
setProperties(props: WSIViewportProperties): void;
|
|
25
|
+
getProperties: () => WSIViewportProperties;
|
|
26
|
+
resetProperties(): void;
|
|
27
|
+
protected getScalarData(): any;
|
|
28
|
+
getImageData(): CPUIImageData;
|
|
29
|
+
hasImageURI(imageURI: string): boolean;
|
|
30
|
+
setCamera(camera: ICamera): void;
|
|
31
|
+
getCurrentImageId(): string;
|
|
32
|
+
getFrameNumber(): number;
|
|
33
|
+
getCamera(): ICamera;
|
|
34
|
+
resetCamera: () => boolean;
|
|
35
|
+
getNumberOfSlices: () => number;
|
|
36
|
+
static getDicomMicroscopyViewer: () => Promise<any>;
|
|
37
|
+
getFrameOfReferenceUID: () => string;
|
|
38
|
+
resize: () => void;
|
|
39
|
+
canvasToWorld: (canvasPos: Point2) => Point3;
|
|
40
|
+
worldToCanvas: (worldPos: Point3) => Point2;
|
|
41
|
+
setDataIds(imageIds: string[]): Promise<void>;
|
|
42
|
+
setWSI(imageIds: string[], client: any): Promise<void>;
|
|
43
|
+
postrender: () => void;
|
|
44
|
+
scroll(delta: number): void;
|
|
45
|
+
getRotation: () => number;
|
|
46
|
+
protected canvasToIndex: (canvasPos: Point2) => Point2;
|
|
47
|
+
protected indexToCanvas: (indexPos: Point2) => Point2;
|
|
48
|
+
getSliceIndex(): number;
|
|
49
|
+
getView(): any;
|
|
50
|
+
private refreshRenderValues;
|
|
51
|
+
customRenderViewportToCanvas: () => void;
|
|
52
|
+
getZoom(): any;
|
|
53
|
+
setZoom(zoom: number): void;
|
|
54
|
+
protected getTransform(): Transform;
|
|
55
|
+
getReferenceId(): string;
|
|
56
|
+
getCurrentImageIdIndex(): number;
|
|
57
|
+
}
|
|
58
|
+
export default WSIViewport;
|