@cornerstonejs/tools 2.0.0-beta.1 → 2.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/drawingSvg/drawCircle.js +9 -5
- package/dist/cjs/drawingSvg/drawCircle.js.map +1 -1
- package/dist/cjs/drawingSvg/drawEllipse.js +4 -4
- package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/cjs/drawingSvg/drawHandles.js +4 -4
- package/dist/cjs/drawingSvg/drawHandles.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLine.js +4 -4
- package/dist/cjs/drawingSvg/drawLine.js.map +1 -1
- package/dist/cjs/drawingSvg/drawPolyline.js +4 -4
- package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/cjs/drawingSvg/drawRect.js +4 -4
- package/dist/cjs/drawingSvg/drawRect.js.map +1 -1
- package/dist/cjs/drawingSvg/drawTextBox.js +4 -4
- package/dist/cjs/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/cjs/drawingSvg/getSvgDrawingHelper.js +1 -1
- package/dist/cjs/drawingSvg/getSvgDrawingHelper.js.map +1 -1
- package/dist/cjs/drawingSvg/index.d.ts +3 -1
- package/dist/cjs/drawingSvg/index.js +5 -1
- package/dist/cjs/drawingSvg/index.js.map +1 -1
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +5 -5
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +5 -5
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- package/dist/cjs/enums/Events.d.ts +2 -0
- package/dist/cjs/enums/Events.js +2 -0
- package/dist/cjs/enums/Events.js.map +1 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +41 -0
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
- package/dist/cjs/eventDispatchers/shared/getMouseModifier.js +10 -5
- package/dist/cjs/eventDispatchers/shared/getMouseModifier.js.map +1 -1
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +39 -0
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
- package/dist/cjs/eventListeners/keyboard/keyDownListener.js +8 -0
- package/dist/cjs/eventListeners/keyboard/keyDownListener.js.map +1 -1
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js +7 -2
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/cjs/eventListeners/mouse/mouseMoveListener.js +5 -1
- package/dist/cjs/eventListeners/mouse/mouseMoveListener.js.map +1 -1
- package/dist/cjs/eventListeners/touch/touchStartListener.js +10 -5
- package/dist/cjs/eventListeners/touch/touchStartListener.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/ToolStyle.js +1 -0
- package/dist/cjs/stateManagement/annotation/config/ToolStyle.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/getState.js +6 -3
- package/dist/cjs/stateManagement/annotation/config/getState.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/helpers.js +4 -2
- package/dist/cjs/stateManagement/annotation/config/helpers.js.map +1 -1
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js +10 -2
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +5 -3
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +44 -2
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
- package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js +25 -22
- package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/cjs/tools/AdvancedMagnifyTool.d.ts +36 -0
- package/dist/cjs/tools/AdvancedMagnifyTool.js +448 -0
- package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.d.ts +76 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.js +352 -0
- package/dist/cjs/tools/AdvancedMagnifyViewport.js.map +1 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.js +133 -0
- package/dist/cjs/tools/AdvancedMagnifyViewportManager.js.map +1 -0
- package/dist/cjs/tools/MIPJumpToClickTool.js +4 -2
- package/dist/cjs/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/cjs/tools/MagnifyTool.js +2 -2
- package/dist/cjs/tools/MagnifyTool.js.map +1 -1
- package/dist/cjs/tools/OrientationMarkerTool.d.ts +88 -0
- package/dist/cjs/tools/OrientationMarkerTool.js +193 -0
- package/dist/cjs/tools/OrientationMarkerTool.js.map +1 -0
- package/dist/cjs/tools/OverlayGridTool.d.ts +31 -0
- package/dist/cjs/tools/OverlayGridTool.js +170 -0
- package/dist/cjs/tools/OverlayGridTool.js.map +1 -0
- package/dist/cjs/tools/PlanarRotateTool.js +2 -1
- package/dist/cjs/tools/PlanarRotateTool.js.map +1 -1
- package/dist/cjs/tools/ReferenceCursors.js +58 -29
- package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
- package/dist/cjs/tools/ReferenceLinesTool.d.ts +3 -0
- package/dist/cjs/tools/ReferenceLinesTool.js +71 -2
- package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/cjs/tools/ScaleOverlayTool.js +2 -1
- package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/cjs/tools/annotation/AngleTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/AngleTool.js +33 -15
- package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +15 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +30 -15
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/CircleROITool.d.ts +1 -3
- package/dist/cjs/tools/annotation/CircleROITool.js +63 -60
- package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/CobbAngleTool.d.ts +31 -6
- package/dist/cjs/tools/annotation/CobbAngleTool.js +294 -82
- package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/DragProbeTool.js +17 -4
- package/dist/cjs/tools/annotation/DragProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.d.ts +2 -4
- package/dist/cjs/tools/annotation/EllipticalROITool.js +67 -61
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.d.ts +0 -1
- package/dist/cjs/tools/annotation/LengthTool.js +27 -12
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.d.ts +1 -3
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +72 -60
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.d.ts +1 -3
- package/dist/cjs/tools/annotation/ProbeTool.js +28 -22
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.d.ts +1 -2
- package/dist/cjs/tools/annotation/RectangleROITool.js +55 -57
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationDisplayTool.js +4 -0
- package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationTool.d.ts +3 -2
- package/dist/cjs/tools/base/AnnotationTool.js +27 -16
- package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
- package/dist/cjs/tools/base/index.d.ts +2 -1
- package/dist/cjs/tools/base/index.js +3 -1
- package/dist/cjs/tools/base/index.js.map +1 -1
- package/dist/cjs/tools/displayTools/Contour/contourDisplay.js +3 -0
- package/dist/cjs/tools/displayTools/Contour/contourDisplay.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/removeLabelmapFromElement.js +3 -0
- package/dist/cjs/tools/displayTools/Labelmap/removeLabelmapFromElement.js.map +1 -1
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js +5 -6
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/index.d.ts +5 -2
- package/dist/cjs/tools/index.js +8 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js +24 -17
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/PaintFillTool.js +4 -2
- package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +5 -7
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +38 -10
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +10 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/cjs/types/CINETypes.d.ts +2 -0
- package/dist/cjs/types/CalculatorTypes.d.ts +6 -0
- package/dist/cjs/types/CalculatorTypes.js +3 -0
- package/dist/cjs/types/CalculatorTypes.js.map +1 -0
- package/dist/cjs/types/EventTypes.d.ts +16 -1
- package/dist/cjs/types/ISetToolModeOptions.d.ts +2 -2
- package/dist/cjs/types/IToolGroup.d.ts +6 -2
- package/dist/cjs/types/ToolAction.d.ts +8 -0
- package/dist/cjs/types/ToolAction.js +3 -0
- package/dist/cjs/types/ToolAction.js.map +1 -0
- package/dist/cjs/types/ToolProps.d.ts +5 -1
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +55 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/utilities/cine/playClip.js +13 -3
- package/dist/cjs/utilities/cine/playClip.js.map +1 -1
- package/dist/cjs/utilities/dynamicVolume/getDataInTime.js +7 -4
- package/dist/cjs/utilities/dynamicVolume/getDataInTime.js.map +1 -1
- package/dist/cjs/utilities/getCalibratedUnits.js +10 -5
- package/dist/cjs/utilities/getCalibratedUnits.js.map +1 -1
- package/dist/cjs/utilities/getModalityUnit.js +5 -2
- package/dist/cjs/utilities/getModalityUnit.js.map +1 -1
- package/dist/cjs/utilities/index.d.ts +2 -2
- package/dist/cjs/utilities/index.js +4 -3
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.d.ts +3 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.js +18 -1
- package/dist/cjs/utilities/math/angle/angleBetweenLines.js.map +1 -1
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.d.ts +14 -0
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.js +44 -0
- package/dist/cjs/utilities/math/basic/BasicStatsCalculator.js.map +1 -0
- package/dist/cjs/utilities/math/basic/Calculator.d.ts +8 -0
- package/dist/cjs/utilities/math/basic/Calculator.js +6 -0
- package/dist/cjs/utilities/math/basic/Calculator.js.map +1 -0
- package/dist/cjs/utilities/math/basic/index.d.ts +3 -0
- package/dist/cjs/utilities/math/basic/index.js +11 -0
- package/dist/cjs/utilities/math/basic/index.js.map +1 -0
- package/dist/cjs/utilities/math/index.d.ts +2 -1
- package/dist/cjs/utilities/math/index.js +3 -1
- package/dist/cjs/utilities/math/index.js.map +1 -1
- package/dist/cjs/utilities/math/midPoint.js +2 -1
- package/dist/cjs/utilities/math/midPoint.js.map +1 -1
- package/dist/cjs/utilities/math/polyline/pointInPolyline.js +2 -1
- package/dist/cjs/utilities/math/polyline/pointInPolyline.js.map +1 -1
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.d.ts +1 -1
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.js +10 -5
- package/dist/cjs/utilities/math/vec2/liangBarksyClip.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.d.ts +7 -1
- package/dist/cjs/utilities/pointInShapeCallback.js +6 -1
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/roundNumber.js +4 -2
- package/dist/cjs/utilities/roundNumber.js.map +1 -1
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -2
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js +4 -4
- package/dist/cjs/utilities/segmentation/brushSizeForToolGroup.js.map +1 -1
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +2 -1
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/cjs/utilities/segmentation/utilities.d.ts +1 -2
- package/dist/cjs/utilities/segmentation/utilities.js +4 -1
- package/dist/cjs/utilities/segmentation/utilities.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/index.d.ts +3 -2
- package/dist/cjs/utilities/stackPrefetch/index.js +8 -6
- package/dist/cjs/utilities/stackPrefetch/index.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js +227 -0
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js +25 -95
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js +85 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
- package/dist/esm/drawingSvg/drawCircle.js +9 -5
- package/dist/esm/drawingSvg/drawCircle.js.map +1 -1
- package/dist/esm/drawingSvg/drawEllipse.js +4 -4
- package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/esm/drawingSvg/drawHandles.js +4 -4
- package/dist/esm/drawingSvg/drawHandles.js.map +1 -1
- package/dist/esm/drawingSvg/drawLine.js +4 -4
- package/dist/esm/drawingSvg/drawLine.js.map +1 -1
- package/dist/esm/drawingSvg/drawPolyline.js +4 -4
- package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/esm/drawingSvg/drawRect.js +4 -4
- package/dist/esm/drawingSvg/drawRect.js.map +1 -1
- package/dist/esm/drawingSvg/drawTextBox.js +4 -4
- package/dist/esm/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
- package/dist/esm/drawingSvg/getSvgDrawingHelper.js.map +1 -1
- package/dist/esm/drawingSvg/index.d.ts +3 -1
- package/dist/esm/drawingSvg/index.js +3 -1
- package/dist/esm/drawingSvg/index.js.map +1 -1
- package/dist/esm/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +3 -3
- package/dist/esm/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/esm/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +3 -3
- package/dist/esm/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- package/dist/esm/enums/Events.d.ts +2 -0
- package/dist/esm/enums/Events.js +2 -0
- package/dist/esm/enums/Events.js.map +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +35 -0
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
- package/dist/esm/eventDispatchers/shared/getMouseModifier.js +10 -5
- package/dist/esm/eventDispatchers/shared/getMouseModifier.js.map +1 -1
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +32 -0
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
- package/dist/esm/eventListeners/keyboard/keyDownListener.js +8 -0
- package/dist/esm/eventListeners/keyboard/keyDownListener.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseDownListener.js +7 -2
- package/dist/esm/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseMoveListener.js +5 -1
- package/dist/esm/eventListeners/mouse/mouseMoveListener.js.map +1 -1
- package/dist/esm/eventListeners/touch/touchStartListener.js +10 -5
- package/dist/esm/eventListeners/touch/touchStartListener.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/ToolStyle.js +1 -0
- package/dist/esm/stateManagement/annotation/config/ToolStyle.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/getState.js +6 -3
- package/dist/esm/stateManagement/annotation/config/getState.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/helpers.js +4 -2
- package/dist/esm/stateManagement/annotation/config/helpers.js.map +1 -1
- package/dist/esm/store/SynchronizerManager/Synchronizer.js +10 -2
- package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +5 -3
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +45 -4
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js +26 -23
- package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/esm/tools/AdvancedMagnifyTool.d.ts +36 -0
- package/dist/esm/tools/AdvancedMagnifyTool.js +440 -0
- package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +76 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.js +346 -0
- package/dist/esm/tools/AdvancedMagnifyViewport.js.map +1 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.js +128 -0
- package/dist/esm/tools/AdvancedMagnifyViewportManager.js.map +1 -0
- package/dist/esm/tools/MIPJumpToClickTool.js +4 -2
- package/dist/esm/tools/MIPJumpToClickTool.js.map +1 -1
- package/dist/esm/tools/MagnifyTool.js +2 -2
- package/dist/esm/tools/MagnifyTool.js.map +1 -1
- package/dist/esm/tools/OrientationMarkerTool.d.ts +88 -0
- package/dist/esm/tools/OrientationMarkerTool.js +185 -0
- package/dist/esm/tools/OrientationMarkerTool.js.map +1 -0
- package/dist/esm/tools/OverlayGridTool.d.ts +31 -0
- package/dist/esm/tools/OverlayGridTool.js +165 -0
- package/dist/esm/tools/OverlayGridTool.js.map +1 -0
- package/dist/esm/tools/PlanarRotateTool.js +2 -1
- package/dist/esm/tools/PlanarRotateTool.js.map +1 -1
- package/dist/esm/tools/ReferenceCursors.js +58 -29
- package/dist/esm/tools/ReferenceCursors.js.map +1 -1
- package/dist/esm/tools/ReferenceLinesTool.d.ts +3 -0
- package/dist/esm/tools/ReferenceLinesTool.js +71 -2
- package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
- package/dist/esm/tools/ScaleOverlayTool.js +2 -1
- package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
- package/dist/esm/tools/annotation/AngleTool.d.ts +0 -1
- package/dist/esm/tools/annotation/AngleTool.js +33 -15
- package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +15 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.d.ts +0 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +30 -15
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/CircleROITool.d.ts +1 -3
- package/dist/esm/tools/annotation/CircleROITool.js +62 -60
- package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/esm/tools/annotation/CobbAngleTool.d.ts +31 -6
- package/dist/esm/tools/annotation/CobbAngleTool.js +301 -83
- package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/DragProbeTool.js +17 -4
- package/dist/esm/tools/annotation/DragProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.d.ts +2 -4
- package/dist/esm/tools/annotation/EllipticalROITool.js +66 -61
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.d.ts +0 -1
- package/dist/esm/tools/annotation/LengthTool.js +27 -12
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +1 -3
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +71 -60
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.d.ts +1 -3
- package/dist/esm/tools/annotation/ProbeTool.js +28 -22
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.d.ts +1 -2
- package/dist/esm/tools/annotation/RectangleROITool.js +54 -57
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -0
- package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
- package/dist/esm/tools/base/AnnotationTool.d.ts +3 -2
- package/dist/esm/tools/base/AnnotationTool.js +26 -16
- package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
- package/dist/esm/tools/base/index.d.ts +2 -1
- package/dist/esm/tools/base/index.js +2 -1
- package/dist/esm/tools/base/index.js.map +1 -1
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js +4 -1
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +4 -1
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js.map +1 -1
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +5 -6
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/esm/tools/index.d.ts +5 -2
- package/dist/esm/tools/index.js +5 -2
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +25 -18
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/PaintFillTool.js +4 -2
- package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -6
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +33 -9
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +8 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/esm/types/CINETypes.d.ts +2 -0
- package/dist/esm/types/CalculatorTypes.d.ts +6 -0
- package/dist/esm/types/CalculatorTypes.js +2 -0
- package/dist/esm/types/CalculatorTypes.js.map +1 -0
- package/dist/esm/types/EventTypes.d.ts +16 -1
- package/dist/esm/types/ISetToolModeOptions.d.ts +2 -2
- package/dist/esm/types/IToolGroup.d.ts +6 -2
- package/dist/esm/types/ToolAction.d.ts +8 -0
- package/dist/esm/types/ToolAction.js +2 -0
- package/dist/esm/types/ToolAction.js.map +1 -0
- package/dist/esm/types/ToolProps.d.ts +5 -1
- package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +55 -0
- package/dist/esm/types/index.d.ts +4 -2
- package/dist/esm/utilities/cine/playClip.js +13 -4
- package/dist/esm/utilities/cine/playClip.js.map +1 -1
- package/dist/esm/utilities/dynamicVolume/getDataInTime.js +7 -4
- package/dist/esm/utilities/dynamicVolume/getDataInTime.js.map +1 -1
- package/dist/esm/utilities/getCalibratedUnits.js +10 -5
- package/dist/esm/utilities/getCalibratedUnits.js.map +1 -1
- package/dist/esm/utilities/getModalityUnit.js +5 -2
- package/dist/esm/utilities/getModalityUnit.js.map +1 -1
- package/dist/esm/utilities/index.d.ts +2 -2
- package/dist/esm/utilities/index.js +2 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/math/angle/angleBetweenLines.d.ts +3 -1
- package/dist/esm/utilities/math/angle/angleBetweenLines.js +19 -2
- package/dist/esm/utilities/math/angle/angleBetweenLines.js.map +1 -1
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.d.ts +14 -0
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.js +36 -0
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.js.map +1 -0
- package/dist/esm/utilities/math/basic/Calculator.d.ts +8 -0
- package/dist/esm/utilities/math/basic/Calculator.js +4 -0
- package/dist/esm/utilities/math/basic/Calculator.js.map +1 -0
- package/dist/esm/utilities/math/basic/index.d.ts +3 -0
- package/dist/esm/utilities/math/basic/index.js +4 -0
- package/dist/esm/utilities/math/basic/index.js.map +1 -0
- package/dist/esm/utilities/math/index.d.ts +2 -1
- package/dist/esm/utilities/math/index.js +2 -1
- package/dist/esm/utilities/math/index.js.map +1 -1
- package/dist/esm/utilities/math/midPoint.js +2 -1
- package/dist/esm/utilities/math/midPoint.js.map +1 -1
- package/dist/esm/utilities/math/polyline/pointInPolyline.js +2 -1
- package/dist/esm/utilities/math/polyline/pointInPolyline.js.map +1 -1
- package/dist/esm/utilities/math/vec2/liangBarksyClip.d.ts +1 -1
- package/dist/esm/utilities/math/vec2/liangBarksyClip.js +10 -5
- package/dist/esm/utilities/math/vec2/liangBarksyClip.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.d.ts +7 -1
- package/dist/esm/utilities/pointInShapeCallback.js +6 -1
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/roundNumber.js +4 -2
- package/dist/esm/utilities/roundNumber.js.map +1 -1
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -2
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +4 -4
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js.map +1 -1
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +2 -1
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/esm/utilities/segmentation/utilities.d.ts +1 -2
- package/dist/esm/utilities/segmentation/utilities.js +4 -1
- package/dist/esm/utilities/segmentation/utilities.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/index.d.ts +3 -2
- package/dist/esm/utilities/stackPrefetch/index.js +3 -2
- package/dist/esm/utilities/stackPrefetch/index.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js +220 -0
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +14 -81
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js +77 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/drawingSvg/drawCircle.ts +17 -5
- package/src/drawingSvg/drawEllipse.ts +4 -4
- package/src/drawingSvg/drawHandles.ts +4 -4
- package/src/drawingSvg/drawLine.ts +4 -4
- package/src/drawingSvg/drawPolyline.ts +4 -4
- package/src/drawingSvg/drawRect.ts +4 -4
- package/src/drawingSvg/drawTextBox.ts +4 -4
- package/src/drawingSvg/getSvgDrawingHelper.ts +4 -1
- package/src/drawingSvg/index.ts +4 -0
- package/src/drawingSvg/{_setAttributesIfNecessary.ts → setAttributesIfNecessary.ts} +2 -2
- package/src/drawingSvg/{_setNewAttributesIfValid.ts → setNewAttributesIfValid.ts} +2 -2
- package/src/enums/Events.ts +22 -0
- package/src/eventDispatchers/mouseEventHandlers/mouseDown.ts +11 -2
- package/src/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.ts +72 -0
- package/src/eventDispatchers/shared/getMouseModifier.ts +15 -5
- package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +66 -0
- package/src/eventListeners/keyboard/keyDownListener.ts +13 -0
- package/src/eventListeners/mouse/mouseDownListener.ts +10 -2
- package/src/eventListeners/mouse/mouseMoveListener.ts +7 -1
- package/src/eventListeners/touch/touchStartListener.ts +15 -5
- package/src/index.ts +8 -0
- package/src/stateManagement/annotation/config/ToolStyle.ts +1 -0
- package/src/stateManagement/annotation/config/getState.ts +7 -3
- package/src/stateManagement/annotation/config/helpers.ts +6 -2
- package/src/store/SynchronizerManager/Synchronizer.ts +16 -8
- package/src/store/ToolGroupManager/ToolGroup.ts +99 -6
- package/src/store/ToolGroupManager/getToolGroupsWithToolName.ts +3 -1
- package/src/synchronizers/callbacks/stackImageSyncCallback.ts +63 -68
- package/src/synchronizers/callbacks/voiSyncCallback.ts +1 -1
- package/src/tools/AdvancedMagnifyTool.ts +725 -0
- package/src/tools/AdvancedMagnifyViewport.ts +624 -0
- package/src/tools/AdvancedMagnifyViewportManager.ts +291 -0
- package/src/tools/MIPJumpToClickTool.ts +6 -2
- package/src/tools/MagnifyTool.ts +2 -2
- package/src/tools/OrientationMarkerTool.ts +235 -0
- package/src/tools/OverlayGridTool.ts +357 -0
- package/src/tools/PlanarRotateTool.ts +3 -1
- package/src/tools/ReferenceCursors.ts +85 -29
- package/src/tools/ReferenceLinesTool.ts +131 -3
- package/src/tools/ScaleOverlayTool.ts +3 -1
- package/src/tools/annotation/AngleTool.ts +42 -20
- package/src/tools/annotation/ArrowAnnotateTool.ts +16 -1
- package/src/tools/annotation/BidirectionalTool.ts +38 -24
- package/src/tools/annotation/CircleROITool.ts +94 -107
- package/src/tools/annotation/CobbAngleTool.ts +452 -114
- package/src/tools/annotation/DragProbeTool.ts +25 -14
- package/src/tools/annotation/EllipticalROITool.ts +88 -97
- package/src/tools/annotation/LengthTool.ts +33 -18
- package/src/tools/annotation/PlanarFreehandROITool.ts +90 -78
- package/src/tools/annotation/ProbeTool.ts +43 -49
- package/src/tools/annotation/RectangleROITool.ts +80 -92
- package/src/tools/base/AnnotationDisplayTool.ts +4 -0
- package/src/tools/base/AnnotationTool.ts +41 -18
- package/src/tools/base/index.ts +2 -1
- package/src/tools/displayTools/Contour/contourDisplay.ts +8 -0
- package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +4 -1
- package/src/tools/displayTools/Labelmap/removeLabelmapFromElement.ts +6 -1
- package/src/tools/displayTools/SegmentationDisplayTool.ts +12 -18
- package/src/tools/index.ts +8 -1
- package/src/tools/segmentation/BrushTool.ts +42 -19
- package/src/tools/segmentation/PaintFillTool.ts +10 -3
- package/src/tools/segmentation/strategies/eraseSphere.ts +2 -0
- package/src/tools/segmentation/strategies/fillCircle.ts +1 -13
- package/src/tools/segmentation/strategies/fillSphere.ts +56 -8
- package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +16 -0
- package/src/types/CINETypes.ts +8 -2
- package/src/types/CalculatorTypes.ts +7 -0
- package/src/types/EventTypes.ts +43 -0
- package/src/types/ISetToolModeOptions.ts +2 -2
- package/src/types/IToolGroup.ts +13 -3
- package/src/types/ToolAction.ts +54 -0
- package/src/types/ToolProps.ts +7 -1
- package/src/types/ToolSpecificAnnotationTypes.ts +58 -0
- package/src/types/index.ts +11 -1
- package/src/utilities/cine/playClip.ts +20 -3
- package/src/utilities/dynamicVolume/getDataInTime.ts +9 -6
- package/src/utilities/getCalibratedUnits.ts +15 -5
- package/src/utilities/getModalityUnit.ts +8 -2
- package/src/utilities/index.ts +2 -1
- package/src/utilities/math/angle/angleBetweenLines.ts +39 -9
- package/src/utilities/math/basic/BasicStatsCalculator.ts +60 -0
- package/src/utilities/math/basic/Calculator.ts +8 -0
- package/src/utilities/math/basic/index.ts +4 -0
- package/src/utilities/math/index.ts +10 -1
- package/src/utilities/math/midPoint.ts +3 -1
- package/src/utilities/math/polyline/pointInPolyline.ts +3 -1
- package/src/utilities/math/vec2/liangBarksyClip.ts +15 -5
- package/src/utilities/pointInShapeCallback.ts +15 -3
- package/src/utilities/roundNumber.ts +6 -2
- package/src/utilities/segmentation/brushSizeForToolGroup.ts +22 -4
- package/src/utilities/segmentation/thresholdVolumeByRange.ts +3 -1
- package/src/utilities/segmentation/utilities.ts +8 -1
- package/src/utilities/stackPrefetch/index.ts +3 -7
- package/src/utilities/stackPrefetch/stackContextPrefetch.ts +380 -0
- package/src/utilities/stackPrefetch/stackPrefetch.ts +37 -153
- package/src/utilities/stackPrefetch/stackPrefetchUtils.ts +114 -0
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
|
@@ -36,6 +36,7 @@ export default function pointInShapeCallback(imageData, pointInShapeFn, callback
|
|
|
36
36
|
const scanAxisStep = vec3.fromValues(scanAxisNormal[0] * scanAxisSpacing, scanAxisNormal[1] * scanAxisSpacing, scanAxisNormal[2] * scanAxisSpacing);
|
|
37
37
|
const yMultiple = dimensions[0];
|
|
38
38
|
const zMultiple = dimensions[0] * dimensions[1];
|
|
39
|
+
const pointsInShape = [];
|
|
39
40
|
for (let k = kMin; k <= kMax; k++) {
|
|
40
41
|
for (let j = jMin; j <= jMax; j++) {
|
|
41
42
|
for (let i = iMin; i <= iMax; i++) {
|
|
@@ -61,10 +62,14 @@ export default function pointInShapeCallback(imageData, pointInShapeFn, callback
|
|
|
61
62
|
if (pointInShapeFn(pointLPS, pointIJK)) {
|
|
62
63
|
const index = k * zMultiple + j * yMultiple + i;
|
|
63
64
|
const value = scalarData[index];
|
|
64
|
-
|
|
65
|
+
pointsInShape.push({ value, index, pointIJK, pointLPS });
|
|
66
|
+
if (callback !== null) {
|
|
67
|
+
callback({ value, index, pointIJK, pointLPS });
|
|
68
|
+
}
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
72
|
}
|
|
73
|
+
return pointsInShape;
|
|
69
74
|
}
|
|
70
75
|
//# sourceMappingURL=pointInShapeCallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
function roundNumber(value, precision = 2) {
|
|
2
|
-
if (value === undefined || value === null || value === '')
|
|
2
|
+
if (value === undefined || value === null || value === '') {
|
|
3
3
|
return 'NaN';
|
|
4
|
+
}
|
|
4
5
|
value = Number(value);
|
|
5
|
-
if (value < 0.0001)
|
|
6
|
+
if (value < 0.0001) {
|
|
6
7
|
return `${value}`;
|
|
8
|
+
}
|
|
7
9
|
const fixedPrecision = value >= 100
|
|
8
10
|
? precision - 2
|
|
9
11
|
: value >= 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundNumber.js","sourceRoot":"","sources":["../../../src/utilities/roundNumber.ts"],"names":[],"mappings":"AAYA,SAAS,WAAW,CAAC,KAAsB,EAAE,SAAS,GAAG,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"roundNumber.js","sourceRoot":"","sources":["../../../src/utilities/roundNumber.ts"],"names":[],"mappings":"AAYA,SAAS,WAAW,CAAC,KAAsB,EAAE,SAAS,GAAG,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;QACzD,OAAO,KAAK,CAAC;KACd;IACD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,MAAM,EAAE;QAClB,OAAO,GAAG,KAAK,EAAE,CAAC;KACnB;IACD,MAAM,cAAc,GAClB,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,SAAS,GAAG,CAAC;QACf,CAAC,CAAC,KAAK,IAAI,EAAE;YACb,CAAC,CAAC,SAAS,GAAG,CAAC;YACf,CAAC,CAAC,KAAK,IAAI,CAAC;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,IAAI,GAAG;oBACd,CAAC,CAAC,SAAS,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,IAAI,IAAI;wBACf,CAAC,CAAC,SAAS,GAAG,CAAC;wBACf,CAAC,CAAC,KAAK,IAAI,KAAK;4BAChB,CAAC,CAAC,SAAS,GAAG,CAAC;4BACf,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function setBrushSizeForToolGroup(toolGroupId: string, brushSize: number): void;
|
|
2
|
-
export declare function getBrushSizeForToolGroup(toolGroupId: string): void;
|
|
1
|
+
export declare function setBrushSizeForToolGroup(toolGroupId: string, brushSize: number, toolName?: string): void;
|
|
2
|
+
export declare function getBrushSizeForToolGroup(toolGroupId: string, toolName?: string): void;
|
|
@@ -2,12 +2,12 @@ import { getToolGroup } from '../../store/ToolGroupManager';
|
|
|
2
2
|
import triggerAnnotationRenderForViewportIds from '../triggerAnnotationRenderForViewportIds';
|
|
3
3
|
import { getRenderingEngine } from '@cornerstonejs/core';
|
|
4
4
|
import getBrushToolInstances from './utilities';
|
|
5
|
-
export function setBrushSizeForToolGroup(toolGroupId, brushSize) {
|
|
5
|
+
export function setBrushSizeForToolGroup(toolGroupId, brushSize, toolName) {
|
|
6
6
|
const toolGroup = getToolGroup(toolGroupId);
|
|
7
7
|
if (toolGroup === undefined) {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
-
const brushBasedToolInstances = getBrushToolInstances(toolGroupId);
|
|
10
|
+
const brushBasedToolInstances = getBrushToolInstances(toolGroupId, toolName);
|
|
11
11
|
brushBasedToolInstances.forEach((tool) => {
|
|
12
12
|
tool.configuration.brushSize = brushSize;
|
|
13
13
|
tool.invalidateBrushCursor();
|
|
@@ -22,7 +22,7 @@ export function setBrushSizeForToolGroup(toolGroupId, brushSize) {
|
|
|
22
22
|
const renderingEngine = getRenderingEngine(renderingEngineId);
|
|
23
23
|
triggerAnnotationRenderForViewportIds(renderingEngine, viewportIds);
|
|
24
24
|
}
|
|
25
|
-
export function getBrushSizeForToolGroup(toolGroupId) {
|
|
25
|
+
export function getBrushSizeForToolGroup(toolGroupId, toolName) {
|
|
26
26
|
const toolGroup = getToolGroup(toolGroupId);
|
|
27
27
|
if (toolGroup === undefined) {
|
|
28
28
|
return;
|
|
@@ -31,7 +31,7 @@ export function getBrushSizeForToolGroup(toolGroupId) {
|
|
|
31
31
|
if (!Object.keys(toolInstances).length) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
-
const brushBasedToolInstances = getBrushToolInstances(toolGroupId);
|
|
34
|
+
const brushBasedToolInstances = getBrushToolInstances(toolGroupId, toolName);
|
|
35
35
|
const brushToolInstance = brushBasedToolInstances[0];
|
|
36
36
|
if (!brushToolInstance) {
|
|
37
37
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brushSizeForToolGroup.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/brushSizeForToolGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,qCAAqC,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,qBAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"brushSizeForToolGroup.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/brushSizeForToolGroup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,qCAAqC,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,qBAAqB,MAAM,aAAa,CAAC;AAShD,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,SAAiB,EACjB,QAAiB;IAEjB,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO;KACR;IAED,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE7E,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;QAClD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC;QAGzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAGH,MAAM,aAAa,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;IAEnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CACvD,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAC5B,CAAC;IAEF,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC9B,OAAO;KACR;IAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAIpD,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;IAE/C,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAE9D,qCAAqC,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACtE,CAAC;AASD,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,QAAiB;IAEjB,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO;KACR;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC;IAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;QACtC,OAAO;KACR;IAED,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAG7E,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO;KACR;IAGD,OAAO,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -59,8 +59,9 @@ function thresholdVolumeByRange(segmentationVolume, thresholdVolumeInformation,
|
|
|
59
59
|
break;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
if (insert)
|
|
62
|
+
if (insert) {
|
|
63
63
|
scalarData[index] = 1;
|
|
64
|
+
}
|
|
64
65
|
};
|
|
65
66
|
pointInShapeCallback(segmentationImageData, () => true, callback, boundsIJK);
|
|
66
67
|
triggerSegmentationDataModified(segmentationVolume.volumeId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8DAA8D,CAAC;AAE/G,OAAO,EACL,eAAe,EACf,cAAc,GAEf,MAAM,aAAa,CAAC;AA2BrB,SAAS,sBAAsB,CAC7B,kBAAsC,EACtC,0BAAkD,EAClD,OAA8B;IAE9B,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;IAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC;IAEtD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;IAG9C,IAAI,SAAS,EAAE;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACnB;KACF;IAED,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,cAAc,CACtD,kBAAkB,EAClB,0BAA0B,CAC3B,CAAC;IAGF,IAAI,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;IAE3B,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE;QAMjE,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YAClB,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;gBAChD,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;aACzB;QACH,CAAC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE3D,MAAM,aAAa,GAAG,eAAe,CACnC,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;QAGF,KAAK,GAAG,CAAC,CAAC;QACV,QAAQ,GAAG,CAAC,CAAC;QACb,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAEzB,IAAI,WAAW,GAAG,KAAK,CAAC;QAGxB,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;QAE5E,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC;SAC5B;aAAM,IAAI,WAAW,IAAI,CAAC,EAAE;YAC3B,WAAW,GAAG,QAAQ,KAAK,KAAK,CAAC;SAClC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAGF,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAChE,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;IAOF,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjD,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAE9C,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE;gBACtD,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACjD;iBAAM;gBAEL,MAAM,GAAG,gBAAgB,CACvB,cAAc,CAAC,CAAC,CAAC,EACjB,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,EACrC,QAAQ,CACT,CAAC;aACH;YACD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM;aACP;SACF;QAGD,IAAI,MAAM,EAAE;YACV,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvB;IACH,CAAC,CAAC;IAEF,oBAAoB,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE7E,+BAA+B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE7D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Types } from '@cornerstonejs/core';
|
|
2
|
-
import BrushTool from '../../tools/segmentation/BrushTool';
|
|
3
2
|
export declare type ThresholdInformation = {
|
|
4
3
|
volume: Types.IImageVolume;
|
|
5
4
|
lower: number;
|
|
6
5
|
upper: number;
|
|
7
6
|
};
|
|
8
|
-
export default function getBrushToolInstances(toolGroupId:
|
|
7
|
+
export default function getBrushToolInstances(toolGroupId: string, toolName?: string): any[];
|
|
9
8
|
export declare function getVoxelOverlap(imageData: any, dimensions: any, voxelSpacing: any, voxelCenter: any): [Types.Point2, Types.Point2, Types.Point2];
|
|
10
9
|
export declare function processVolumes(segmentationVolume: Types.IImageVolume, thresholdVolumeInformation: ThresholdInformation[]): {
|
|
11
10
|
volumeInfoList: any[];
|
|
@@ -2,7 +2,7 @@ import { utilities as csUtils } from '@cornerstonejs/core';
|
|
|
2
2
|
import { getToolGroup } from '../../store/ToolGroupManager';
|
|
3
3
|
import BrushTool from '../../tools/segmentation/BrushTool';
|
|
4
4
|
import getBoundingBoxAroundShape from '../boundingBox/getBoundingBoxAroundShape';
|
|
5
|
-
export default function getBrushToolInstances(toolGroupId) {
|
|
5
|
+
export default function getBrushToolInstances(toolGroupId, toolName) {
|
|
6
6
|
const toolGroup = getToolGroup(toolGroupId);
|
|
7
7
|
if (toolGroup === undefined) {
|
|
8
8
|
return;
|
|
@@ -11,6 +11,9 @@ export default function getBrushToolInstances(toolGroupId) {
|
|
|
11
11
|
if (!Object.keys(toolInstances).length) {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
+
if (toolName && toolInstances[toolName]) {
|
|
15
|
+
return [toolInstances[toolName]];
|
|
16
|
+
}
|
|
14
17
|
const brushBasedToolInstances = Object.values(toolInstances).filter((toolInstance) => toolInstance instanceof BrushTool);
|
|
15
18
|
return brushBasedToolInstances;
|
|
16
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,SAAS,MAAM,oCAAoC,CAAC;AAC3D,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AAQjF,MAAM,CAAC,OAAO,UAAU,qBAAqB,
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import stackPrefetch from './stackPrefetch';
|
|
2
|
+
import stackContextPrefetch from './stackContextPrefetch';
|
|
3
|
+
export { stackPrefetch, stackContextPrefetch };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import stackPrefetch from './stackPrefetch';
|
|
2
|
+
import stackContextPrefetch from './stackContextPrefetch';
|
|
3
|
+
export { stackPrefetch, stackContextPrefetch };
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/stackPrefetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/stackPrefetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare function disable(element: any): void;
|
|
2
|
+
declare function getConfiguration(): {
|
|
3
|
+
maxImagesToPrefetch: number;
|
|
4
|
+
minBefore: number;
|
|
5
|
+
maxAfter: number;
|
|
6
|
+
directionExtraImages: number;
|
|
7
|
+
preserveExistingPool: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare function setConfiguration(config: any): void;
|
|
10
|
+
declare const stackContextPrefetch: {
|
|
11
|
+
enable: (element: any) => void;
|
|
12
|
+
disable: typeof disable;
|
|
13
|
+
getConfiguration: typeof getConfiguration;
|
|
14
|
+
setConfiguration: typeof setConfiguration;
|
|
15
|
+
};
|
|
16
|
+
export default stackContextPrefetch;
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { imageLoader, Enums, eventTarget, imageLoadPoolManager, cache, getConfiguration as getCoreConfiguration, } from '@cornerstonejs/core';
|
|
2
|
+
import { addToolState, getToolState } from './state';
|
|
3
|
+
import { getStackData, requestType, priority, clearFromImageIds, getPromiseRemovedHandler, } from './stackPrefetchUtils';
|
|
4
|
+
import roundNumber from '../roundNumber';
|
|
5
|
+
let configuration = {
|
|
6
|
+
maxImagesToPrefetch: Infinity,
|
|
7
|
+
minBefore: 2,
|
|
8
|
+
maxAfter: 2,
|
|
9
|
+
directionExtraImages: 10,
|
|
10
|
+
preserveExistingPool: false,
|
|
11
|
+
};
|
|
12
|
+
let resetPrefetchTimeout;
|
|
13
|
+
const resetPrefetchDelay = 5;
|
|
14
|
+
const enable = (element) => {
|
|
15
|
+
const stack = getStackData(element);
|
|
16
|
+
if (!stack || !stack.imageIds || stack.imageIds.length === 0) {
|
|
17
|
+
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
updateToolState(element);
|
|
21
|
+
prefetch(element);
|
|
22
|
+
element.removeEventListener(Enums.Events.STACK_NEW_IMAGE, onImageUpdated);
|
|
23
|
+
element.addEventListener(Enums.Events.STACK_NEW_IMAGE, onImageUpdated);
|
|
24
|
+
const promiseRemovedHandler = getPromiseRemovedHandler(element);
|
|
25
|
+
eventTarget.removeEventListener(Enums.Events.IMAGE_CACHE_IMAGE_REMOVED, promiseRemovedHandler);
|
|
26
|
+
eventTarget.addEventListener(Enums.Events.IMAGE_CACHE_IMAGE_REMOVED, promiseRemovedHandler);
|
|
27
|
+
};
|
|
28
|
+
function prefetch(element) {
|
|
29
|
+
const stack = getStackData(element);
|
|
30
|
+
if (!stack?.imageIds?.length) {
|
|
31
|
+
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const stackPrefetchData = getToolState(element);
|
|
35
|
+
if (!stackPrefetchData) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const stackPrefetch = stackPrefetchData || {};
|
|
39
|
+
stackPrefetch.enabled &&= stackPrefetch.indicesToRequest?.length;
|
|
40
|
+
if (stackPrefetch.enabled === false) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
function removeFromList(imageIdIndex) {
|
|
44
|
+
const index = stackPrefetch.indicesToRequest.indexOf(imageIdIndex);
|
|
45
|
+
if (index > -1) {
|
|
46
|
+
stackPrefetch.indicesToRequest.splice(index, 1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const indicesToRequestCopy = stackPrefetch.indicesToRequest.slice();
|
|
50
|
+
const { currentImageIdIndex } = stack;
|
|
51
|
+
indicesToRequestCopy.forEach((imageIdIndex) => {
|
|
52
|
+
const imageId = stack.imageIds[imageIdIndex];
|
|
53
|
+
if (!imageId) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const distance = Math.abs(currentImageIdIndex - imageIdIndex);
|
|
57
|
+
const imageCached = distance < 6
|
|
58
|
+
? cache.getImageLoadObject(imageId)
|
|
59
|
+
: cache.isLoaded(imageId);
|
|
60
|
+
if (imageCached) {
|
|
61
|
+
removeFromList(imageIdIndex);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
if (!stackPrefetch.indicesToRequest.length) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!configuration.preserveExistingPool) {
|
|
68
|
+
imageLoadPoolManager.filterRequests(clearFromImageIds(stack));
|
|
69
|
+
}
|
|
70
|
+
function doneCallback(imageId) {
|
|
71
|
+
const imageIdIndex = stack.imageIds.indexOf(imageId);
|
|
72
|
+
removeFromList(imageIdIndex);
|
|
73
|
+
const image = cache.getCachedImageBasedOnImageURI(imageId);
|
|
74
|
+
const { stats } = stackPrefetch;
|
|
75
|
+
const decodeTimeInMS = image?.image?.decodeTimeInMS || 0;
|
|
76
|
+
if (decodeTimeInMS) {
|
|
77
|
+
stats.imageIds.set(imageId, decodeTimeInMS);
|
|
78
|
+
stats.decodeTimeInMS += decodeTimeInMS;
|
|
79
|
+
const loadTimeInMS = image?.image?.loadTimeInMS || 0;
|
|
80
|
+
stats.loadTimeInMS += loadTimeInMS;
|
|
81
|
+
}
|
|
82
|
+
if (!stackPrefetch.indicesToRequest.length) {
|
|
83
|
+
if (image?.sizeInBytes) {
|
|
84
|
+
const { sizeInBytes } = image;
|
|
85
|
+
const usage = cache.getMaxCacheSize() / 4 / sizeInBytes;
|
|
86
|
+
if (!stackPrefetch.cacheFill) {
|
|
87
|
+
stats.initialTime = Date.now() - stats.start;
|
|
88
|
+
stats.initialSize = stats.imageIds.size;
|
|
89
|
+
updateToolState(element, usage);
|
|
90
|
+
prefetch(element);
|
|
91
|
+
}
|
|
92
|
+
else if (stats.imageIds.size) {
|
|
93
|
+
stats.fillTime = Date.now() - stats.start;
|
|
94
|
+
const { size } = stats.imageIds;
|
|
95
|
+
stats.fillSize = size;
|
|
96
|
+
console.log('Done cache fill', stats.fillTime, 'ms', size, 'items', 'average total time', roundNumber(stats.fillTime / size), 'ms', 'average load', roundNumber(stats.loadTimeInMS / size), 'ms', 'average decode', roundNumber(stats.decodeTimeInMS / size), 'ms');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const requestFn = (imageId, options) => imageLoader
|
|
102
|
+
.loadAndCacheImage(imageId, options)
|
|
103
|
+
.then(() => doneCallback(imageId));
|
|
104
|
+
const { useNorm16Texture } = getCoreConfiguration().rendering;
|
|
105
|
+
indicesToRequestCopy.forEach((imageIdIndex) => {
|
|
106
|
+
const imageId = stack.imageIds[imageIdIndex];
|
|
107
|
+
const options = {
|
|
108
|
+
targetBuffer: {
|
|
109
|
+
type: useNorm16Texture ? undefined : 'Float32Array',
|
|
110
|
+
},
|
|
111
|
+
preScale: {
|
|
112
|
+
enabled: true,
|
|
113
|
+
},
|
|
114
|
+
requestType,
|
|
115
|
+
};
|
|
116
|
+
imageLoadPoolManager.addRequest(requestFn.bind(null, imageId, options), requestType, {
|
|
117
|
+
imageId,
|
|
118
|
+
}, priority);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function onImageUpdated(e) {
|
|
122
|
+
clearTimeout(resetPrefetchTimeout);
|
|
123
|
+
resetPrefetchTimeout = setTimeout(function () {
|
|
124
|
+
const element = e.target;
|
|
125
|
+
try {
|
|
126
|
+
updateToolState(element);
|
|
127
|
+
prefetch(element);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}, resetPrefetchDelay);
|
|
133
|
+
}
|
|
134
|
+
const signum = (x) => (x < 0 ? -1 : 1);
|
|
135
|
+
const updateToolState = (element, usage) => {
|
|
136
|
+
const stack = getStackData(element);
|
|
137
|
+
if (!stack || !stack.imageIds || stack.imageIds.length === 0) {
|
|
138
|
+
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const { currentImageIdIndex } = stack;
|
|
142
|
+
let { maxAfter = 2, minBefore = 2 } = configuration;
|
|
143
|
+
const { directionExtraImages = 10 } = configuration;
|
|
144
|
+
const stackPrefetchData = getToolState(element) || {
|
|
145
|
+
indicesToRequest: [],
|
|
146
|
+
currentImageIdIndex,
|
|
147
|
+
stackCount: 0,
|
|
148
|
+
enabled: true,
|
|
149
|
+
direction: 1,
|
|
150
|
+
stats: {
|
|
151
|
+
start: Date.now(),
|
|
152
|
+
imageIds: new Map(),
|
|
153
|
+
decodeTimeInMS: 0,
|
|
154
|
+
loadTimeInMS: 0,
|
|
155
|
+
totalBytes: 0,
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const delta = currentImageIdIndex - stackPrefetchData.currentImageIdIndex;
|
|
159
|
+
stackPrefetchData.direction = signum(delta);
|
|
160
|
+
stackPrefetchData.currentImageIdIndex = currentImageIdIndex;
|
|
161
|
+
stackPrefetchData.enabled = true;
|
|
162
|
+
if (stackPrefetchData.stackCount < 100) {
|
|
163
|
+
stackPrefetchData.stackCount += directionExtraImages;
|
|
164
|
+
}
|
|
165
|
+
if (Math.abs(delta) > maxAfter || !delta) {
|
|
166
|
+
stackPrefetchData.stackCount = 0;
|
|
167
|
+
if (usage) {
|
|
168
|
+
const positionFraction = currentImageIdIndex / stack.imageIds.length;
|
|
169
|
+
minBefore = Math.ceil(usage * positionFraction);
|
|
170
|
+
maxAfter = Math.ceil(usage * (1 - positionFraction));
|
|
171
|
+
stackPrefetchData.cacheFill = true;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
stackPrefetchData.cacheFill = false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (delta < 0) {
|
|
178
|
+
minBefore += stackPrefetchData.stackCount;
|
|
179
|
+
maxAfter = 0;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
maxAfter += stackPrefetchData.stackCount;
|
|
183
|
+
minBefore = 0;
|
|
184
|
+
}
|
|
185
|
+
const minIndex = Math.max(0, currentImageIdIndex - minBefore);
|
|
186
|
+
const maxIndex = Math.min(stack.imageIds.length - 1, currentImageIdIndex + maxAfter);
|
|
187
|
+
const indicesToRequest = [];
|
|
188
|
+
for (let i = currentImageIdIndex + 1; i <= maxIndex; i++) {
|
|
189
|
+
indicesToRequest.push(i);
|
|
190
|
+
}
|
|
191
|
+
for (let i = currentImageIdIndex - 1; i >= minIndex; i--) {
|
|
192
|
+
indicesToRequest.push(i);
|
|
193
|
+
}
|
|
194
|
+
stackPrefetchData.indicesToRequest = indicesToRequest;
|
|
195
|
+
addToolState(element, stackPrefetchData);
|
|
196
|
+
};
|
|
197
|
+
function disable(element) {
|
|
198
|
+
clearTimeout(resetPrefetchTimeout);
|
|
199
|
+
element.removeEventListener(Enums.Events.STACK_NEW_IMAGE, onImageUpdated);
|
|
200
|
+
const promiseRemovedHandler = getPromiseRemovedHandler(element);
|
|
201
|
+
eventTarget.removeEventListener(Enums.Events.IMAGE_CACHE_IMAGE_REMOVED, promiseRemovedHandler);
|
|
202
|
+
const stackPrefetchData = getToolState(element);
|
|
203
|
+
if (stackPrefetchData && stackPrefetchData.data.length) {
|
|
204
|
+
stackPrefetchData.enabled = false;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function getConfiguration() {
|
|
208
|
+
return configuration;
|
|
209
|
+
}
|
|
210
|
+
function setConfiguration(config) {
|
|
211
|
+
configuration = config;
|
|
212
|
+
}
|
|
213
|
+
const stackContextPrefetch = {
|
|
214
|
+
enable,
|
|
215
|
+
disable,
|
|
216
|
+
getConfiguration,
|
|
217
|
+
setConfiguration,
|
|
218
|
+
};
|
|
219
|
+
export default stackContextPrefetch;
|
|
220
|
+
//# sourceMappingURL=stackContextPrefetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stackContextPrefetch.js","sourceRoot":"","sources":["../../../../src/utilities/stackPrefetch/stackContextPrefetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,10 @@ declare function getConfiguration(): {
|
|
|
5
5
|
preserveExistingPool: boolean;
|
|
6
6
|
};
|
|
7
7
|
declare function setConfiguration(config: any): void;
|
|
8
|
-
|
|
8
|
+
declare const stackPrefetch: {
|
|
9
|
+
enable: typeof enable;
|
|
10
|
+
disable: typeof disable;
|
|
11
|
+
getConfiguration: typeof getConfiguration;
|
|
12
|
+
setConfiguration: typeof setConfiguration;
|
|
13
|
+
};
|
|
14
|
+
export default stackPrefetch;
|
|
@@ -1,54 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { imageLoader, Enums, eventTarget, imageLoadPoolManager, cache, getConfiguration as getCoreConfiguration, } from '@cornerstonejs/core';
|
|
2
2
|
import { addToolState, getToolState } from './state';
|
|
3
|
-
|
|
4
|
-
const priority = 0;
|
|
5
|
-
const addToBeginning = true;
|
|
3
|
+
import { getStackData, requestType, priority, getPromiseRemovedHandler, nearestIndex, range, } from './stackPrefetchUtils';
|
|
6
4
|
let configuration = {
|
|
7
5
|
maxImagesToPrefetch: Infinity,
|
|
8
|
-
preserveExistingPool:
|
|
6
|
+
preserveExistingPool: true,
|
|
9
7
|
};
|
|
10
8
|
let resetPrefetchTimeout;
|
|
11
9
|
const resetPrefetchDelay = 10;
|
|
12
|
-
function range(lowEnd, highEnd) {
|
|
13
|
-
lowEnd = Math.round(lowEnd) || 0;
|
|
14
|
-
highEnd = Math.round(highEnd) || 0;
|
|
15
|
-
const arr = [];
|
|
16
|
-
let c = highEnd - lowEnd + 1;
|
|
17
|
-
if (c <= 0) {
|
|
18
|
-
return arr;
|
|
19
|
-
}
|
|
20
|
-
while (c--) {
|
|
21
|
-
arr[c] = highEnd--;
|
|
22
|
-
}
|
|
23
|
-
return arr;
|
|
24
|
-
}
|
|
25
|
-
function nearestIndex(arr, x) {
|
|
26
|
-
let low = 0;
|
|
27
|
-
let high = arr.length - 1;
|
|
28
|
-
arr.forEach((v, idx) => {
|
|
29
|
-
if (v < x) {
|
|
30
|
-
low = Math.max(idx, low);
|
|
31
|
-
}
|
|
32
|
-
else if (v > x) {
|
|
33
|
-
high = Math.min(idx, high);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
return { low, high };
|
|
37
|
-
}
|
|
38
|
-
function getStackData(element) {
|
|
39
|
-
const enabledElement = getEnabledElement(element);
|
|
40
|
-
if (!enabledElement) {
|
|
41
|
-
throw new Error('stackPrefetch: element must be a valid Cornerstone enabled element');
|
|
42
|
-
}
|
|
43
|
-
const { viewport } = enabledElement;
|
|
44
|
-
if (!(viewport instanceof StackViewport)) {
|
|
45
|
-
throw new Error('stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented');
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
currentImageIdIndex: viewport.getCurrentImageIdIndex(),
|
|
49
|
-
imageIds: viewport.getImageIds(),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
10
|
function prefetch(element) {
|
|
53
11
|
const stackPrefetchData = getToolState(element);
|
|
54
12
|
if (!stackPrefetchData) {
|
|
@@ -56,14 +14,12 @@ function prefetch(element) {
|
|
|
56
14
|
}
|
|
57
15
|
const stackPrefetch = stackPrefetchData || {};
|
|
58
16
|
const stack = getStackData(element);
|
|
59
|
-
if (!stack
|
|
17
|
+
if (!stack?.imageIds?.length) {
|
|
60
18
|
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
61
19
|
return;
|
|
62
20
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
stackPrefetch.enabled = false;
|
|
66
|
-
}
|
|
21
|
+
const { currentImageIdIndex } = stack;
|
|
22
|
+
stackPrefetch.enabled &&= stackPrefetch.indicesToRequest?.length;
|
|
67
23
|
if (stackPrefetch.enabled === false) {
|
|
68
24
|
return;
|
|
69
25
|
}
|
|
@@ -80,8 +36,11 @@ function prefetch(element) {
|
|
|
80
36
|
if (!imageId) {
|
|
81
37
|
return;
|
|
82
38
|
}
|
|
83
|
-
const
|
|
84
|
-
|
|
39
|
+
const distance = Math.abs(currentImageIdIndex - imageIdIndex);
|
|
40
|
+
const imageCached = distance < 6
|
|
41
|
+
? cache.getImageLoadObject(imageId)
|
|
42
|
+
: cache.isLoaded(imageId);
|
|
43
|
+
if (imageCached) {
|
|
85
44
|
removeFromList(imageIdIndex);
|
|
86
45
|
}
|
|
87
46
|
});
|
|
@@ -143,33 +102,6 @@ function prefetch(element) {
|
|
|
143
102
|
}, priority);
|
|
144
103
|
});
|
|
145
104
|
}
|
|
146
|
-
function getPromiseRemovedHandler(element) {
|
|
147
|
-
return function (e) {
|
|
148
|
-
const eventData = e.detail;
|
|
149
|
-
let stackData;
|
|
150
|
-
try {
|
|
151
|
-
stackData = getStackData(element);
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
if (!stackData || !stackData.imageIds || stackData.imageIds.length === 0) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
const stack = stackData;
|
|
160
|
-
const imageIdIndex = stack.imageIds.indexOf(eventData.imageId);
|
|
161
|
-
if (imageIdIndex < 0) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
const stackPrefetchData = getToolState(element);
|
|
165
|
-
if (!stackPrefetchData ||
|
|
166
|
-
!stackPrefetchData.data ||
|
|
167
|
-
!stackPrefetchData.data.length) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
stackPrefetchData.indicesToRequest.push(imageIdIndex);
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
105
|
function onImageUpdated(e) {
|
|
174
106
|
clearTimeout(resetPrefetchTimeout);
|
|
175
107
|
resetPrefetchTimeout = setTimeout(function () {
|
|
@@ -209,7 +141,7 @@ function disable(element) {
|
|
|
209
141
|
const promiseRemovedHandler = getPromiseRemovedHandler(element);
|
|
210
142
|
eventTarget.removeEventListener(Enums.Events.IMAGE_CACHE_IMAGE_REMOVED, promiseRemovedHandler);
|
|
211
143
|
const stackPrefetchData = getToolState(element);
|
|
212
|
-
if (stackPrefetchData && stackPrefetchData.
|
|
144
|
+
if (stackPrefetchData && stackPrefetchData.indicesToRequest.length) {
|
|
213
145
|
stackPrefetchData.enabled = false;
|
|
214
146
|
imageLoadPoolManager.clearRequestStack(requestType);
|
|
215
147
|
}
|
|
@@ -220,5 +152,6 @@ function getConfiguration() {
|
|
|
220
152
|
function setConfiguration(config) {
|
|
221
153
|
configuration = config;
|
|
222
154
|
}
|
|
223
|
-
|
|
155
|
+
const stackPrefetch = { enable, disable, getConfiguration, setConfiguration };
|
|
156
|
+
export default stackPrefetch;
|
|
224
157
|
//# sourceMappingURL=stackPrefetch.js.map
|