@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
|
@@ -3,10 +3,10 @@ import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataPr
|
|
|
3
3
|
import { metaData } from '..';
|
|
4
4
|
const ALLOWED_DELTA = 0.05;
|
|
5
5
|
function calculateViewportsSpatialRegistration(viewport1, viewport2) {
|
|
6
|
-
const imageId1 = viewport1.
|
|
7
|
-
const imageId2 = viewport2.
|
|
8
|
-
const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1);
|
|
9
|
-
const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2);
|
|
6
|
+
const imageId1 = viewport1.getSliceIndex();
|
|
7
|
+
const imageId2 = viewport2.getSliceIndex();
|
|
8
|
+
const imagePlaneModule1 = metaData.get('imagePlaneModule', imageId1.toString());
|
|
9
|
+
const imagePlaneModule2 = metaData.get('imagePlaneModule', imageId2.toString());
|
|
10
10
|
if (!imagePlaneModule1 || !imagePlaneModule2) {
|
|
11
11
|
console.log('Viewport spatial registration requires image plane module');
|
|
12
12
|
return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IImageCalibration } from '../types';
|
|
1
|
+
import type { IImageCalibration } from '../types/IImageCalibration';
|
|
2
2
|
declare const metadataProvider: {
|
|
3
3
|
add: (imageId: string, payload: IImageCalibration) => void;
|
|
4
4
|
get: (type: string, imageId: string) => IImageCalibration;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColormapPublic, ColormapRegistration } from '../types';
|
|
1
|
+
import type { ColormapPublic, ColormapRegistration } from '../types';
|
|
2
2
|
declare function registerColormap(colormap: ColormapRegistration): void;
|
|
3
3
|
declare function getColormap(name: any): any;
|
|
4
4
|
declare function getColormapNames(): any[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IStackViewport, IVolumeViewport, Point3 } from '../types';
|
|
2
|
-
import { OrientationAxis } from '../enums';
|
|
1
|
+
import type { IStackViewport, IVolumeViewport, Point3 } from '../types';
|
|
2
|
+
import type { OrientationAxis } from '../enums';
|
|
3
3
|
declare function convertStackToVolumeViewport({ viewport, options, }: {
|
|
4
4
|
viewport: IStackViewport;
|
|
5
5
|
options: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { setVolumesForViewports } from '../RenderingEngine/helpers';
|
|
2
|
-
import {
|
|
2
|
+
import { createAndCacheVolume, getUnknownVolumeLoaderSchema, } from '../loaders/volumeLoader';
|
|
3
3
|
import { Events, ViewportType } from '../enums';
|
|
4
4
|
async function convertStackToVolumeViewport({ viewport, options, }) {
|
|
5
5
|
const renderingEngine = viewport.getRenderingEngine();
|
|
@@ -21,12 +21,12 @@ async function convertStackToVolumeViewport({ viewport, options, }) {
|
|
|
21
21
|
orientation: options.orientation,
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
|
-
const volume = await
|
|
24
|
+
const volume = await createAndCacheVolume(volumeId, {
|
|
25
25
|
imageIds,
|
|
26
26
|
});
|
|
27
27
|
volume.load();
|
|
28
|
-
const volumeViewport =
|
|
29
|
-
setVolumesForViewports(renderingEngine, [
|
|
28
|
+
const volumeViewport = renderingEngine.getViewport(viewportId);
|
|
29
|
+
await setVolumesForViewports(renderingEngine, [
|
|
30
30
|
{
|
|
31
31
|
volumeId,
|
|
32
32
|
},
|
|
@@ -22,7 +22,7 @@ async function convertVolumeToStackViewport({ viewport, options, }) {
|
|
|
22
22
|
};
|
|
23
23
|
const prevView = volumeViewport.getViewReference();
|
|
24
24
|
renderingEngine.enableElement(viewportInput);
|
|
25
|
-
const stackViewport =
|
|
25
|
+
const stackViewport = renderingEngine.getViewport(viewportId);
|
|
26
26
|
await stackViewport.setStack(volume.imageIds);
|
|
27
27
|
stackViewport.setViewReference(prevView);
|
|
28
28
|
stackViewport.render();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
|
|
2
|
-
import { VOIRange } from '../types';
|
|
2
|
+
import type { VOIRange } from '../types/voi';
|
|
3
3
|
export default function createLinearRGBTransferFunction(voiRange: VOIRange): vtkColorTransferFunction;
|
|
@@ -3,9 +3,7 @@ export default function createLinearRGBTransferFunction(voiRange) {
|
|
|
3
3
|
const cfun = vtkColorTransferFunction.newInstance();
|
|
4
4
|
let lower = 0;
|
|
5
5
|
let upper = 1024;
|
|
6
|
-
if (voiRange &&
|
|
7
|
-
voiRange.lower !== undefined &&
|
|
8
|
-
voiRange.upper !== undefined) {
|
|
6
|
+
if (voiRange.lower !== undefined && voiRange.upper !== undefined) {
|
|
9
7
|
lower = voiRange.lower;
|
|
10
8
|
upper = voiRange.upper;
|
|
11
9
|
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export default function createSigmoidRGBTransferFunction(voiRange: VOIRange, approximationNodes?: number): vtkColorTransferFunction;
|
|
1
|
+
import type { VOIRange } from '../types/voi';
|
|
2
|
+
export default function createSigmoidRGBTransferFunction(voiRange: VOIRange, approximationNodes?: number): unknown;
|
|
@@ -9,14 +9,15 @@ export default function createSigmoidRGBTransferFunction(voiRange, approximation
|
|
|
9
9
|
const logit = (y, wc, ww) => {
|
|
10
10
|
return wc - (ww / 4) * Math.log((1 - y) / y);
|
|
11
11
|
};
|
|
12
|
-
const range =
|
|
13
|
-
|
|
14
|
-
.slice(1, -1);
|
|
15
|
-
const table = range.reduce((res, y) => {
|
|
12
|
+
const range = Array.from({ length: approximationNodes }, (_, i) => (i + 1) / (approximationNodes + 2));
|
|
13
|
+
const table = range.flatMap((y) => {
|
|
16
14
|
const x = logit(y, windowCenter, windowWidth);
|
|
17
|
-
return
|
|
18
|
-
}
|
|
15
|
+
return [x, y, y, y, 0.5, 0.0];
|
|
16
|
+
});
|
|
19
17
|
const cfun = vtkColorTransferFunction.newInstance();
|
|
20
|
-
cfun.buildFunctionFromArray(vtkDataArray.newInstance({
|
|
18
|
+
cfun.buildFunctionFromArray(vtkDataArray.newInstance({
|
|
19
|
+
values: table,
|
|
20
|
+
numberOfComponents: 6,
|
|
21
|
+
}));
|
|
21
22
|
return cfun;
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function decimate(list:
|
|
1
|
+
export default function decimate(list: unknown[], interleave: number, offset?: number): number[];
|
|
@@ -67,7 +67,7 @@ class TargetEventListeners {
|
|
|
67
67
|
listenersMap = new Map();
|
|
68
68
|
this._eventListeners.set(type, listenersMap);
|
|
69
69
|
}
|
|
70
|
-
const useCapture = options
|
|
70
|
+
const useCapture = options.capture ?? false;
|
|
71
71
|
const listenerPhase = useCapture
|
|
72
72
|
? EventListenerPhases.Capture
|
|
73
73
|
: EventListenerPhases.Bubble;
|
|
@@ -80,7 +80,7 @@ class TargetEventListeners {
|
|
|
80
80
|
this._target.addEventListener(type, callback, options);
|
|
81
81
|
}
|
|
82
82
|
_removeEventListener(type, callback, options) {
|
|
83
|
-
const useCapture = options
|
|
83
|
+
const useCapture = options.capture ?? false;
|
|
84
84
|
const listenerPhase = useCapture
|
|
85
85
|
? EventListenerPhases.Capture
|
|
86
86
|
: EventListenerPhases.Bubble;
|
|
@@ -122,7 +122,9 @@ class TargetEventListeners {
|
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
_unregisterAllEvents() {
|
|
125
|
-
Array.from(this._eventListeners.entries()).forEach(([type, listenersMap]) =>
|
|
125
|
+
Array.from(this._eventListeners.entries()).forEach(([type, listenersMap]) => {
|
|
126
|
+
this._unregisterAllListeners(type, listenersMap);
|
|
127
|
+
});
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
export { TargetEventListeners as default, TargetEventListeners };
|
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
import { vec3 } from 'gl-matrix';
|
|
2
|
-
import { canRenderFloatTextures, getConfiguration, getShouldUseSharedArrayBuffer, } from '../init';
|
|
3
|
-
import createFloat32SharedArray from './createFloat32SharedArray';
|
|
4
|
-
import createInt16SharedArray from './createInt16SharedArray';
|
|
5
|
-
import createUint16SharedArray from './createUInt16SharedArray';
|
|
6
|
-
import createUint8SharedArray from './createUint8SharedArray';
|
|
7
|
-
import getScalingParameters from './getScalingParameters';
|
|
8
2
|
import makeVolumeMetadata from './makeVolumeMetadata';
|
|
9
3
|
import sortImageIdsAndGetSpacing from './sortImageIdsAndGetSpacing';
|
|
4
|
+
import getScalingParameters from './getScalingParameters';
|
|
10
5
|
import { hasFloatScalingParameters } from './hasFloatScalingParameters';
|
|
11
|
-
import
|
|
12
|
-
import { Events } from '../enums';
|
|
6
|
+
import { canRenderFloatTextures } from '../init';
|
|
13
7
|
function generateVolumePropsFromImageIds(imageIds, volumeId) {
|
|
14
|
-
const { useNorm16Texture, preferSizeOverAccuracy } = getConfiguration().rendering;
|
|
15
|
-
const use16BitDataType = useNorm16Texture || preferSizeOverAccuracy;
|
|
16
8
|
const volumeMetadata = makeVolumeMetadata(imageIds);
|
|
17
|
-
const
|
|
18
|
-
const imageId = imageIds[imageIdIndex];
|
|
19
|
-
const scalingParameters = getScalingParameters(imageId);
|
|
20
|
-
const hasNegativeRescale = scalingParameters.rescaleIntercept < 0 ||
|
|
21
|
-
scalingParameters.rescaleSlope < 0;
|
|
22
|
-
const floatAfterScale = hasFloatScalingParameters(scalingParameters);
|
|
23
|
-
const canRenderFloat = canRenderFloatTextures();
|
|
24
|
-
const { BitsAllocated, PixelRepresentation, PhotometricInterpretation, ImageOrientationPatient, PixelSpacing, Columns, Rows, } = volumeMetadata;
|
|
9
|
+
const { ImageOrientationPatient, PixelSpacing, Columns, Rows } = volumeMetadata;
|
|
25
10
|
const rowCosineVec = vec3.fromValues(ImageOrientationPatient[0], ImageOrientationPatient[1], ImageOrientationPatient[2]);
|
|
26
11
|
const colCosineVec = vec3.fromValues(ImageOrientationPatient[3], ImageOrientationPatient[4], ImageOrientationPatient[5]);
|
|
27
12
|
const scanAxisNormal = vec3.create();
|
|
@@ -35,84 +20,52 @@ function generateVolumePropsFromImageIds(imageIds, volumeId) {
|
|
|
35
20
|
...colCosineVec,
|
|
36
21
|
...scanAxisNormal,
|
|
37
22
|
];
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
23
|
+
return {
|
|
24
|
+
dimensions,
|
|
25
|
+
spacing,
|
|
26
|
+
origin,
|
|
27
|
+
dataType: _determineDataType(sortedImageIds, volumeMetadata),
|
|
28
|
+
direction,
|
|
29
|
+
metadata: volumeMetadata,
|
|
30
|
+
imageIds: sortedImageIds,
|
|
31
|
+
volumeId,
|
|
32
|
+
voxelManager: null,
|
|
33
|
+
numberOfComponents: volumeMetadata.PhotometricInterpretation === 'RGB' ? 3 : 1,
|
|
47
34
|
};
|
|
48
|
-
|
|
35
|
+
}
|
|
36
|
+
function _determineDataType(imageIds, volumeMetadata) {
|
|
37
|
+
const { BitsAllocated, PixelRepresentation, PhotometricInterpretation } = volumeMetadata;
|
|
38
|
+
const signed = PixelRepresentation === 1;
|
|
39
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
40
|
+
const imageId = imageIds[imageIdIndex];
|
|
41
|
+
const scalingParameters = getScalingParameters(imageId);
|
|
42
|
+
const hasNegativeRescale = scalingParameters.rescaleIntercept < 0 ||
|
|
43
|
+
scalingParameters.rescaleSlope < 0;
|
|
44
|
+
const floatAfterScale = hasFloatScalingParameters(scalingParameters);
|
|
45
|
+
const canRenderFloat = canRenderFloatTextures();
|
|
49
46
|
switch (BitsAllocated) {
|
|
50
47
|
case 8:
|
|
51
48
|
if (signed) {
|
|
52
49
|
throw new Error('8 Bit signed images are not yet supported by this plugin.');
|
|
53
50
|
}
|
|
54
|
-
|
|
55
|
-
handleCache(sizeInBytes);
|
|
56
|
-
scalarData = useSharedArrayBuffer
|
|
57
|
-
? createUint8SharedArray(length * numComponents)
|
|
58
|
-
: new Uint8Array(length * numComponents);
|
|
59
|
-
break;
|
|
51
|
+
return 'Uint8Array';
|
|
60
52
|
case 16:
|
|
61
|
-
if (
|
|
62
|
-
|
|
63
|
-
scalarData = useSharedArrayBuffer
|
|
64
|
-
? createFloat32SharedArray(length)
|
|
65
|
-
: new Float32Array(length);
|
|
66
|
-
break;
|
|
53
|
+
if (canRenderFloat && floatAfterScale) {
|
|
54
|
+
return 'Float32Array';
|
|
67
55
|
}
|
|
68
|
-
sizeInBytes = length * 2;
|
|
69
56
|
if (signed || hasNegativeRescale) {
|
|
70
|
-
|
|
71
|
-
scalarData = useSharedArrayBuffer
|
|
72
|
-
? createInt16SharedArray(length)
|
|
73
|
-
: new Int16Array(length);
|
|
74
|
-
break;
|
|
57
|
+
return 'Int16Array';
|
|
75
58
|
}
|
|
76
59
|
if (!signed && !hasNegativeRescale) {
|
|
77
|
-
|
|
78
|
-
scalarData = useSharedArrayBuffer
|
|
79
|
-
? createUint16SharedArray(length)
|
|
80
|
-
: new Uint16Array(length);
|
|
81
|
-
break;
|
|
60
|
+
return 'Uint16Array';
|
|
82
61
|
}
|
|
83
|
-
|
|
84
|
-
handleCache(sizeInBytes);
|
|
85
|
-
scalarData = useSharedArrayBuffer
|
|
86
|
-
? createFloat32SharedArray(length)
|
|
87
|
-
: new Float32Array(length);
|
|
88
|
-
break;
|
|
62
|
+
return 'Float32Array';
|
|
89
63
|
case 24:
|
|
90
|
-
|
|
91
|
-
handleCache(sizeInBytes);
|
|
92
|
-
scalarData = useSharedArrayBuffer
|
|
93
|
-
? createUint8SharedArray(length * numComponents)
|
|
94
|
-
: new Uint8Array(length * numComponents);
|
|
95
|
-
break;
|
|
64
|
+
return 'Uint8Array';
|
|
96
65
|
case 32:
|
|
97
|
-
|
|
98
|
-
handleCache(sizeInBytes);
|
|
99
|
-
scalarData = useSharedArrayBuffer
|
|
100
|
-
? createFloat32SharedArray(length)
|
|
101
|
-
: new Float32Array(length);
|
|
102
|
-
break;
|
|
66
|
+
return 'Float32Array';
|
|
103
67
|
default:
|
|
104
68
|
throw new Error(`Bits allocated of ${BitsAllocated} is not defined to generate scalarData for the volume.`);
|
|
105
69
|
}
|
|
106
|
-
return {
|
|
107
|
-
dimensions,
|
|
108
|
-
spacing,
|
|
109
|
-
origin,
|
|
110
|
-
direction,
|
|
111
|
-
scalarData,
|
|
112
|
-
sizeInBytes,
|
|
113
|
-
metadata: volumeMetadata,
|
|
114
|
-
imageIds: sortedImageIds,
|
|
115
|
-
volumeId,
|
|
116
|
-
};
|
|
117
70
|
}
|
|
118
71
|
export { generateVolumePropsFromImageIds };
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
declare const metadataProvider: {
|
|
2
|
-
add: (imageId: string, payload:
|
|
3
|
-
|
|
2
|
+
add: (imageId: string, payload: {
|
|
3
|
+
metadata: unknown;
|
|
4
|
+
type: string;
|
|
5
|
+
}) => void;
|
|
6
|
+
addRaw: (imageId: string, payload: {
|
|
7
|
+
metadata: unknown;
|
|
8
|
+
type: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
get: (type: string, imageId: string) => unknown;
|
|
4
11
|
clear: () => void;
|
|
5
12
|
};
|
|
6
13
|
export default metadataProvider;
|
|
@@ -2,11 +2,17 @@ import { addProvider } from '../metaData';
|
|
|
2
2
|
let state = {};
|
|
3
3
|
const metadataProvider = {
|
|
4
4
|
add: (imageId, payload) => {
|
|
5
|
+
metadataProvider.addRaw(imageId, {
|
|
6
|
+
...payload,
|
|
7
|
+
metadata: structuredClone(payload.metadata),
|
|
8
|
+
});
|
|
9
|
+
},
|
|
10
|
+
addRaw: (imageId, payload) => {
|
|
5
11
|
const type = payload.type;
|
|
6
12
|
if (!state[imageId]) {
|
|
7
13
|
state[imageId] = {};
|
|
8
14
|
}
|
|
9
|
-
state[imageId][type] =
|
|
15
|
+
state[imageId][type] = payload.metadata;
|
|
10
16
|
},
|
|
11
17
|
get: (type, imageId) => {
|
|
12
18
|
return state[imageId]?.[type];
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { PixelDataTypedArray, PixelDataTypedArrayString } from '../types';
|
|
1
|
+
import type { PixelDataTypedArray, PixelDataTypedArrayString } from '../types';
|
|
2
2
|
declare function getBufferConfiguration(targetBufferType: PixelDataTypedArrayString, length: number, options?: {
|
|
3
|
-
use16BitTexture?: boolean;
|
|
4
3
|
isVolumeBuffer?: boolean;
|
|
5
4
|
}): {
|
|
6
5
|
numBytes: number;
|
|
7
|
-
TypedArrayConstructor: new (length: number
|
|
6
|
+
TypedArrayConstructor: new (length: number) => PixelDataTypedArray;
|
|
8
7
|
};
|
|
9
8
|
export { getBufferConfiguration };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function getBufferConfiguration(targetBufferType, length, options = {}) {
|
|
2
|
-
const {
|
|
2
|
+
const { isVolumeBuffer = false } = options;
|
|
3
3
|
switch (targetBufferType) {
|
|
4
4
|
case 'Float32Array':
|
|
5
5
|
return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
|
|
@@ -10,26 +10,16 @@ function getBufferConfiguration(targetBufferType, length, options = {}) {
|
|
|
10
10
|
return { numBytes: length * 2, TypedArrayConstructor: Uint16Array };
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
console.warn('Uint16Array is not supported for volume rendering, switching back to Float32Array');
|
|
18
|
-
return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
|
|
19
|
-
}
|
|
13
|
+
console.warn('Uint16Array is not supported for volume rendering, switching back to Float32Array');
|
|
14
|
+
return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
|
|
20
15
|
}
|
|
21
16
|
case 'Int16Array':
|
|
22
17
|
if (!isVolumeBuffer) {
|
|
23
18
|
return { numBytes: length * 2, TypedArrayConstructor: Int16Array };
|
|
24
19
|
}
|
|
25
20
|
else {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
console.warn('Int16Array is not supported for volume rendering, switching back to Float32Array');
|
|
31
|
-
return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
|
|
32
|
-
}
|
|
21
|
+
console.warn('Int16Array is not supported for volume rendering, switching back to Float32Array');
|
|
22
|
+
return { numBytes: length * 4, TypedArrayConstructor: Float32Array };
|
|
33
23
|
}
|
|
34
24
|
default:
|
|
35
25
|
if (targetBufferType) {
|
|
@@ -7,7 +7,7 @@ export default function getClosestImageId(imageVolume, worldPos, viewPlaneNormal
|
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
9
|
const { direction, imageIds } = imageVolume;
|
|
10
|
-
if (!imageIds
|
|
10
|
+
if (!imageIds.length) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
const kVector = direction.slice(6, 9);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IStackViewport, Point3 } from '../types';
|
|
1
|
+
import type { IStackViewport, Point3 } from '../types';
|
|
2
2
|
export default function getClosestStackImageIndexForPoint(point: Point3, viewport: IStackViewport): number | null;
|
|
3
3
|
export declare function calculateMinimalDistanceForStackViewport(point: Point3, viewport: IStackViewport): {
|
|
4
4
|
distance: number;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IVolumeViewport } from '../types';
|
|
1
|
+
import type { IVolumeViewport } from '../types';
|
|
3
2
|
declare function getCurrentVolumeViewportSlice(viewport: IVolumeViewport): {
|
|
4
3
|
width: number;
|
|
5
4
|
height: number;
|
|
6
|
-
scalarData:
|
|
7
|
-
sliceToIndexMatrix: mat4;
|
|
8
|
-
indexToSliceMatrix: mat4;
|
|
5
|
+
scalarData: import("../types").PixelDataTypedArray;
|
|
6
|
+
sliceToIndexMatrix: import("gl-matrix").mat4;
|
|
7
|
+
indexToSliceMatrix: import("gl-matrix").mat4;
|
|
9
8
|
};
|
|
10
9
|
export { getCurrentVolumeViewportSlice as default, getCurrentVolumeViewportSlice, };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { glMatrix,
|
|
2
|
-
import { transformIJKToCanvas } from './transformIJKToCanvas';
|
|
1
|
+
import { glMatrix, vec3 } from 'gl-matrix';
|
|
3
2
|
import { transformCanvasToIJK } from './transformCanvasToIJK';
|
|
4
3
|
function getCurrentVolumeViewportSlice(viewport) {
|
|
5
|
-
const { dimensions, scalarData } = viewport.getImageData();
|
|
6
4
|
const { width: canvasWidth, height: canvasHeight } = viewport.getCanvas();
|
|
5
|
+
const { sliceToIndexMatrix, indexToSliceMatrix } = viewport.getSliceViewInfo();
|
|
7
6
|
const ijkOriginPoint = transformCanvasToIJK(viewport, [0, 0]);
|
|
8
7
|
const ijkRowPoint = transformCanvasToIJK(viewport, [canvasWidth - 1, 0]);
|
|
9
8
|
const ijkColPoint = transformCanvasToIJK(viewport, [0, canvasHeight - 1]);
|
|
@@ -18,62 +17,13 @@ function getCurrentVolumeViewportSlice(viewport) {
|
|
|
18
17
|
if (!glMatrix.equals(1, maxIJKRowVec) || !glMatrix.equals(1, maxIJKColVec)) {
|
|
19
18
|
throw new Error('Livewire is not available for rotate/oblique viewports');
|
|
20
19
|
}
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
[sx - 1, 0, 0],
|
|
25
|
-
[0, sy - 1, 0],
|
|
26
|
-
[sx - 1, sy - 1, 0],
|
|
27
|
-
[0, 0, sz - 1],
|
|
28
|
-
[sx - 1, 0, sz - 1],
|
|
29
|
-
[0, sy - 1, sz - 1],
|
|
30
|
-
[sx - 1, sy - 1, sz - 1],
|
|
31
|
-
];
|
|
32
|
-
const canvasCorners = ijkCorners.map((ijkCorner) => transformIJKToCanvas(viewport, ijkCorner));
|
|
33
|
-
const canvasAABB = canvasCorners.reduce((aabb, canvasPoint) => {
|
|
34
|
-
aabb.minX = Math.min(aabb.minX, canvasPoint[0]);
|
|
35
|
-
aabb.minY = Math.min(aabb.minY, canvasPoint[1]);
|
|
36
|
-
aabb.maxX = Math.max(aabb.maxX, canvasPoint[0]);
|
|
37
|
-
aabb.maxY = Math.max(aabb.maxY, canvasPoint[1]);
|
|
38
|
-
return aabb;
|
|
39
|
-
}, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });
|
|
40
|
-
const ijkTopLeft = transformCanvasToIJK(viewport, [
|
|
41
|
-
canvasAABB.minX,
|
|
42
|
-
canvasAABB.minY,
|
|
43
|
-
]);
|
|
44
|
-
const ijkBottomRight = transformCanvasToIJK(viewport, [
|
|
45
|
-
canvasAABB.maxX,
|
|
46
|
-
canvasAABB.maxY,
|
|
47
|
-
]);
|
|
48
|
-
const ijkDiagonal = vec3.sub(vec3.create(), ijkBottomRight, ijkTopLeft);
|
|
49
|
-
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);
|
|
50
|
-
const indexToSliceMatrix = mat4.invert(mat4.create(), sliceToIndexMatrix);
|
|
51
|
-
const sliceWidth = vec3.dot(ijkRowVec, ijkDiagonal) + 1;
|
|
52
|
-
const sliceHeight = vec3.dot(ijkColVec, ijkDiagonal) + 1;
|
|
53
|
-
const TypedArray = scalarData.constructor;
|
|
54
|
-
const sliceData = new TypedArray(sliceWidth * sliceHeight);
|
|
55
|
-
const pixelsPerSlice = dimensions[0] * dimensions[1];
|
|
56
|
-
const ijkPixelRow = vec3.clone(ijkTopLeft);
|
|
57
|
-
const ijkPixelCol = vec3.create();
|
|
58
|
-
let slicePixelIndex = 0;
|
|
59
|
-
for (let y = 0; y < sliceHeight; y++) {
|
|
60
|
-
vec3.copy(ijkPixelCol, ijkPixelRow);
|
|
61
|
-
for (let x = 0; x < sliceWidth; x++) {
|
|
62
|
-
const volumePixelIndex = ijkPixelCol[2] * pixelsPerSlice +
|
|
63
|
-
ijkPixelCol[1] * dimensions[0] +
|
|
64
|
-
ijkPixelCol[0];
|
|
65
|
-
if (volumePixelIndex < scalarData.length) {
|
|
66
|
-
sliceData[slicePixelIndex] = scalarData[volumePixelIndex];
|
|
67
|
-
}
|
|
68
|
-
slicePixelIndex++;
|
|
69
|
-
vec3.add(ijkPixelCol, ijkPixelCol, ijkRowVec);
|
|
70
|
-
}
|
|
71
|
-
vec3.add(ijkPixelRow, ijkPixelRow, ijkColVec);
|
|
72
|
-
}
|
|
20
|
+
const { voxelManager } = viewport.getImageData();
|
|
21
|
+
const sliceViewInfo = viewport.getSliceViewInfo();
|
|
22
|
+
const scalarData = voxelManager.getSliceData(sliceViewInfo);
|
|
73
23
|
return {
|
|
74
|
-
width:
|
|
75
|
-
height:
|
|
76
|
-
scalarData
|
|
24
|
+
width: sliceViewInfo.width,
|
|
25
|
+
height: sliceViewInfo.height,
|
|
26
|
+
scalarData,
|
|
77
27
|
sliceToIndexMatrix,
|
|
78
28
|
indexToSliceMatrix,
|
|
79
29
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ImageSliceData, IVolumeViewport } from '../types';
|
|
1
|
+
import type { ImageSliceData, IVolumeViewport } from '../types';
|
|
2
2
|
declare function getImageSliceDataForVolumeViewport(viewport: IVolumeViewport): ImageSliceData;
|
|
3
3
|
export default getImageSliceDataForVolumeViewport;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ScalingParameters } from '../types';
|
|
1
|
+
import type { ScalingParameters } from '../types';
|
|
2
2
|
export default function getScalingParameters(imageId: string): ScalingParameters;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { mat3 } from 'gl-matrix';
|
|
2
|
-
import { IImageVolume, Point3 } from '../types';
|
|
1
|
+
import type { mat3 } from 'gl-matrix';
|
|
2
|
+
import type { IImageVolume, Point3 } from '../types';
|
|
3
3
|
export default function getSpacingInNormalDirection(imageVolume: IImageVolume | {
|
|
4
4
|
direction: mat3;
|
|
5
5
|
spacing: Point3;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ICamera, IImageVolume, IVolumeViewport } from '../types';
|
|
1
|
+
import type { ICamera, IImageVolume, IVolumeViewport } from '../types';
|
|
2
2
|
export default function getTargetVolumeAndSpacingInNormalDir(viewport: IVolumeViewport, camera: ICamera, targetId?: string, useSlabThickness?: boolean): {
|
|
3
3
|
imageVolume: IImageVolume;
|
|
4
4
|
spacingInNormalDirection: number;
|
|
@@ -9,7 +9,7 @@ const isPrimaryVolume = (volume) => !!getVolumeLoaderSchemes().find((scheme) =>
|
|
|
9
9
|
export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, targetId, useSlabThickness = false) {
|
|
10
10
|
const { viewPlaneNormal } = camera;
|
|
11
11
|
const volumeActors = viewport.getActors();
|
|
12
|
-
if (!volumeActors
|
|
12
|
+
if (!volumeActors.length) {
|
|
13
13
|
return {
|
|
14
14
|
spacingInNormalDirection: null,
|
|
15
15
|
imageVolume: null,
|
|
@@ -61,7 +61,7 @@ export default function getTargetVolumeAndSpacingInNormalDir(viewport, camera, t
|
|
|
61
61
|
function getSpacingInNormal(imageVolume, viewPlaneNormal, viewport, useSlabThickness = false) {
|
|
62
62
|
const { slabThickness } = viewport.getProperties();
|
|
63
63
|
let spacingInNormalDirection = slabThickness;
|
|
64
|
-
if (!slabThickness || useSlabThickness
|
|
64
|
+
if (!slabThickness || !useSlabThickness) {
|
|
65
65
|
spacingInNormalDirection = getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
|
|
66
66
|
}
|
|
67
67
|
return spacingInNormalDirection;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IStackViewport, IVolumeViewport, Point3 } from '../types';
|
|
1
|
+
import type { IStackViewport, IVolumeViewport, Point3 } from '../types';
|
|
2
2
|
export default function getViewportImageCornersInWorld(viewport: IStackViewport | IVolumeViewport): Point3[];
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import type { IViewport } from '../types';
|
|
2
|
-
declare function
|
|
3
|
-
|
|
1
|
+
import type { IViewport } from '../types/IViewport';
|
|
2
|
+
declare function _getViewportModality(viewport: IViewport, volumeId?: string, getVolume?: (volumeId: string) => {
|
|
3
|
+
metadata: {
|
|
4
|
+
Modality: string;
|
|
5
|
+
};
|
|
6
|
+
} | undefined): string;
|
|
7
|
+
export { _getViewportModality };
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
function _getViewportModality(viewport, volumeId, getVolume) {
|
|
2
|
+
if (!getVolume) {
|
|
3
|
+
throw new Error('getVolume is required, use the utilities export instead ');
|
|
4
|
+
}
|
|
3
5
|
if (viewport.modality) {
|
|
4
6
|
return viewport.modality;
|
|
5
7
|
}
|
|
6
8
|
if (viewport.setVolumes) {
|
|
7
|
-
volumeId = volumeId ?? viewport.getDefaultActor()
|
|
8
|
-
if (!volumeId) {
|
|
9
|
+
volumeId = volumeId ?? viewport.getDefaultActor().uid;
|
|
10
|
+
if (!volumeId || !getVolume) {
|
|
9
11
|
return;
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
const volume = getVolume(volumeId);
|
|
14
|
+
return volume.metadata.Modality;
|
|
12
15
|
}
|
|
13
16
|
throw new Error('Invalid viewport type');
|
|
14
17
|
}
|
|
15
|
-
export {
|
|
18
|
+
export { _getViewportModality };
|