@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
|
@@ -11,7 +11,6 @@ import { addAnnotation } from '../stateManagement/annotation/annotationState';
|
|
|
11
11
|
import { drawLine as drawLineSvg } from '../drawingSvg';
|
|
12
12
|
import { filterViewportsWithToolEnabled } from '../utilities/viewportFilters';
|
|
13
13
|
import triggerAnnotationRenderForViewportIds from '../utilities/triggerAnnotationRenderForViewportIds';
|
|
14
|
-
|
|
15
14
|
import { PublicToolProps, ToolProps, SVGDrawingHelper } from '../types';
|
|
16
15
|
import { ReferenceLineAnnotation } from '../types/ToolSpecificAnnotationTypes';
|
|
17
16
|
import { StyleSpecifier } from '../types/AnnotationStyle';
|
|
@@ -43,6 +42,7 @@ class ReferenceLines extends AnnotationDisplayTool {
|
|
|
43
42
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
44
43
|
configuration: {
|
|
45
44
|
sourceViewportId: '',
|
|
45
|
+
showFullDimension: false,
|
|
46
46
|
},
|
|
47
47
|
}
|
|
48
48
|
) {
|
|
@@ -177,7 +177,7 @@ class ReferenceLines extends AnnotationDisplayTool {
|
|
|
177
177
|
const bottomLeft = annotation.data.handles.points[2];
|
|
178
178
|
const bottomRight = annotation.data.handles.points[3];
|
|
179
179
|
|
|
180
|
-
const { focalPoint, viewPlaneNormal } = targetViewport.getCamera();
|
|
180
|
+
const { focalPoint, viewPlaneNormal, viewUp } = targetViewport.getCamera();
|
|
181
181
|
const { viewPlaneNormal: sourceViewPlaneNormal } =
|
|
182
182
|
sourceViewport.getCamera();
|
|
183
183
|
|
|
@@ -239,10 +239,21 @@ class ReferenceLines extends AnnotationDisplayTool {
|
|
|
239
239
|
const color = this.getStyle('color', styleSpecifier, annotation);
|
|
240
240
|
const shadow = this.getStyle('shadow', styleSpecifier, annotation);
|
|
241
241
|
|
|
242
|
-
|
|
242
|
+
let canvasCoordinates = [lineStartWorld, lineEndWorld].map((world) =>
|
|
243
243
|
targetViewport.worldToCanvas(world)
|
|
244
244
|
);
|
|
245
245
|
|
|
246
|
+
if (this.configuration.showFullDimension) {
|
|
247
|
+
canvasCoordinates = this.handleFullDimension(
|
|
248
|
+
targetViewport,
|
|
249
|
+
lineStartWorld,
|
|
250
|
+
viewPlaneNormal,
|
|
251
|
+
viewUp,
|
|
252
|
+
lineEndWorld,
|
|
253
|
+
canvasCoordinates
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
246
257
|
const dataId = `${annotationUID}-line`;
|
|
247
258
|
const lineUID = '1';
|
|
248
259
|
drawLineSvg(
|
|
@@ -270,9 +281,126 @@ class ReferenceLines extends AnnotationDisplayTool {
|
|
|
270
281
|
return Math.abs(dot) < EPSILON;
|
|
271
282
|
};
|
|
272
283
|
|
|
284
|
+
private handleFullDimension(
|
|
285
|
+
targetViewport: Types.IStackViewport | Types.IVolumeViewport,
|
|
286
|
+
lineStartWorld: Types.Point3,
|
|
287
|
+
viewPlaneNormal: Types.Point3,
|
|
288
|
+
viewUp: Types.Point3,
|
|
289
|
+
lineEndWorld: Types.Point3,
|
|
290
|
+
canvasCoordinates: Types.Point2[]
|
|
291
|
+
) {
|
|
292
|
+
const renderingEngine = targetViewport.getRenderingEngine();
|
|
293
|
+
const targetId = this.getTargetId(targetViewport);
|
|
294
|
+
const targetImage = this.getTargetIdImage(targetId, renderingEngine);
|
|
295
|
+
|
|
296
|
+
const referencedImageId = this.getReferencedImageId(
|
|
297
|
+
targetViewport,
|
|
298
|
+
lineStartWorld,
|
|
299
|
+
viewPlaneNormal,
|
|
300
|
+
viewUp
|
|
301
|
+
);
|
|
302
|
+
|
|
303
|
+
if (referencedImageId && targetImage) {
|
|
304
|
+
try {
|
|
305
|
+
const { imageData, dimensions } = targetImage;
|
|
306
|
+
|
|
307
|
+
// Calculate bound image coordinates
|
|
308
|
+
const [
|
|
309
|
+
topLeftImageCoord,
|
|
310
|
+
topRightImageCoord,
|
|
311
|
+
bottomRightImageCoord,
|
|
312
|
+
bottomLeftImageCoord,
|
|
313
|
+
] = [
|
|
314
|
+
imageData.indexToWorld([0, 0, 0]) as Types.Point3,
|
|
315
|
+
imageData.indexToWorld([dimensions[0] - 1, 0, 0]) as Types.Point3,
|
|
316
|
+
imageData.indexToWorld([
|
|
317
|
+
dimensions[0] - 1,
|
|
318
|
+
dimensions[1] - 1,
|
|
319
|
+
0,
|
|
320
|
+
]) as Types.Point3,
|
|
321
|
+
imageData.indexToWorld([0, dimensions[1] - 1, 0]) as Types.Point3,
|
|
322
|
+
].map((world) => csUtils.worldToImageCoords(referencedImageId, world));
|
|
323
|
+
|
|
324
|
+
// Calculate line start and end image coordinates
|
|
325
|
+
const [lineStartImageCoord, lineEndImageCoord] = [
|
|
326
|
+
lineStartWorld,
|
|
327
|
+
lineEndWorld,
|
|
328
|
+
].map((world) => csUtils.worldToImageCoords(referencedImageId, world));
|
|
329
|
+
|
|
330
|
+
// Calculate intersection points between line and image bounds
|
|
331
|
+
canvasCoordinates = [
|
|
332
|
+
[topLeftImageCoord, topRightImageCoord],
|
|
333
|
+
[topRightImageCoord, bottomRightImageCoord],
|
|
334
|
+
[bottomLeftImageCoord, bottomRightImageCoord],
|
|
335
|
+
[topLeftImageCoord, bottomLeftImageCoord],
|
|
336
|
+
]
|
|
337
|
+
.map(([start, end]) =>
|
|
338
|
+
this.intersectInfiniteLines(
|
|
339
|
+
start,
|
|
340
|
+
end,
|
|
341
|
+
lineStartImageCoord,
|
|
342
|
+
lineEndImageCoord
|
|
343
|
+
)
|
|
344
|
+
)
|
|
345
|
+
.filter((point) => point && this.isInBound(point, dimensions))
|
|
346
|
+
.map((point) => {
|
|
347
|
+
const world = csUtils.imageToWorldCoords(
|
|
348
|
+
referencedImageId,
|
|
349
|
+
point as Types.Point2
|
|
350
|
+
);
|
|
351
|
+
return targetViewport.worldToCanvas(world);
|
|
352
|
+
});
|
|
353
|
+
} catch (err) {
|
|
354
|
+
console.log(err);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return canvasCoordinates;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// get the intersection point between two infinite lines, not line segments
|
|
361
|
+
intersectInfiniteLines(
|
|
362
|
+
line1Start: Types.Point2,
|
|
363
|
+
line1End: Types.Point2,
|
|
364
|
+
line2Start: Types.Point2,
|
|
365
|
+
line2End: Types.Point2
|
|
366
|
+
) {
|
|
367
|
+
const [x1, y1] = line1Start;
|
|
368
|
+
const [x2, y2] = line1End;
|
|
369
|
+
const [x3, y3] = line2Start;
|
|
370
|
+
const [x4, y4] = line2End;
|
|
371
|
+
|
|
372
|
+
// Compute a1, b1, c1, where line joining points 1 and 2 is "a1 x + b1 y + c1 = 0"
|
|
373
|
+
const a1 = y2 - y1;
|
|
374
|
+
const b1 = x1 - x2;
|
|
375
|
+
const c1 = x2 * y1 - x1 * y2;
|
|
376
|
+
|
|
377
|
+
// Compute a2, b2, c2
|
|
378
|
+
const a2 = y4 - y3;
|
|
379
|
+
const b2 = x3 - x4;
|
|
380
|
+
const c2 = x4 * y3 - x3 * y4;
|
|
381
|
+
|
|
382
|
+
if (Math.abs(a1 * b2 - a2 * b1) < EPSILON) {
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
const x = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1);
|
|
387
|
+
const y = (a2 * c1 - a1 * c2) / (a1 * b2 - a2 * b1);
|
|
388
|
+
|
|
389
|
+
return [x, y];
|
|
390
|
+
}
|
|
391
|
+
|
|
273
392
|
isParallel(vec1: Types.Point3, vec2: Types.Point3): boolean {
|
|
274
393
|
return Math.abs(vec3.dot(vec1, vec2)) > 1 - EPSILON;
|
|
275
394
|
}
|
|
395
|
+
|
|
396
|
+
isInBound(point: number[], dimensions: Types.Point3): boolean {
|
|
397
|
+
return (
|
|
398
|
+
point[0] >= 0 &&
|
|
399
|
+
point[0] <= dimensions[0] &&
|
|
400
|
+
point[1] >= 0 &&
|
|
401
|
+
point[1] <= dimensions[1]
|
|
402
|
+
);
|
|
403
|
+
}
|
|
276
404
|
}
|
|
277
405
|
|
|
278
406
|
ReferenceLines.toolName = 'ReferenceLines';
|
|
@@ -72,7 +72,9 @@ class ScaleOverlayTool extends AnnotationDisplayTool {
|
|
|
72
72
|
// get viewports with tool enabled
|
|
73
73
|
const viewportIds = getToolGroup(this.toolGroupId).viewportsInfo;
|
|
74
74
|
|
|
75
|
-
if (!viewportIds)
|
|
75
|
+
if (!viewportIds) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
76
78
|
|
|
77
79
|
// get enabled elements
|
|
78
80
|
const enabledElements = viewportIds.map((e) =>
|
|
@@ -74,6 +74,7 @@ class AngleTool extends AnnotationTool {
|
|
|
74
74
|
configuration: {
|
|
75
75
|
shadow: true,
|
|
76
76
|
preventHandleOutsideImage: false,
|
|
77
|
+
getTextLines: defaultGetTextLines,
|
|
77
78
|
},
|
|
78
79
|
}
|
|
79
80
|
) {
|
|
@@ -219,8 +220,12 @@ class AngleTool extends AnnotationTool {
|
|
|
219
220
|
[canvasCoords[0], canvasCoords[1]]
|
|
220
221
|
);
|
|
221
222
|
|
|
222
|
-
if (distanceToPoint <= proximity)
|
|
223
|
-
|
|
223
|
+
if (distanceToPoint <= proximity) {
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
if (!point3) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
224
229
|
|
|
225
230
|
const canvasPoint3 = viewport.worldToCanvas(point3);
|
|
226
231
|
|
|
@@ -653,7 +658,10 @@ class AngleTool extends AnnotationTool {
|
|
|
653
658
|
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
654
659
|
|
|
655
660
|
// WE HAVE TO CACHE STATS BEFORE FETCHING TEXT
|
|
656
|
-
if (
|
|
661
|
+
if (
|
|
662
|
+
!data.cachedStats[targetId] ||
|
|
663
|
+
data.cachedStats[targetId].angle == null
|
|
664
|
+
) {
|
|
657
665
|
data.cachedStats[targetId] = {
|
|
658
666
|
angle: null,
|
|
659
667
|
};
|
|
@@ -740,7 +748,22 @@ class AngleTool extends AnnotationTool {
|
|
|
740
748
|
continue;
|
|
741
749
|
}
|
|
742
750
|
|
|
743
|
-
const
|
|
751
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
752
|
+
if (!options.visibility) {
|
|
753
|
+
data.handles.textBox = {
|
|
754
|
+
hasMoved: false,
|
|
755
|
+
worldPosition: <Types.Point3>[0, 0, 0],
|
|
756
|
+
worldBoundingBox: {
|
|
757
|
+
topLeft: <Types.Point3>[0, 0, 0],
|
|
758
|
+
topRight: <Types.Point3>[0, 0, 0],
|
|
759
|
+
bottomLeft: <Types.Point3>[0, 0, 0],
|
|
760
|
+
bottomRight: <Types.Point3>[0, 0, 0],
|
|
761
|
+
},
|
|
762
|
+
};
|
|
763
|
+
continue;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
const textLines = this.configuration.getTextLines(data, targetId);
|
|
744
767
|
|
|
745
768
|
if (!data.handles.textBox.hasMoved) {
|
|
746
769
|
// linked to the vertex by default
|
|
@@ -763,7 +786,7 @@ class AngleTool extends AnnotationTool {
|
|
|
763
786
|
textBoxPosition,
|
|
764
787
|
canvasCoordinates,
|
|
765
788
|
{},
|
|
766
|
-
|
|
789
|
+
options
|
|
767
790
|
);
|
|
768
791
|
|
|
769
792
|
const { x: left, y: top, width, height } = boundingBox;
|
|
@@ -779,20 +802,6 @@ class AngleTool extends AnnotationTool {
|
|
|
779
802
|
return renderStatus;
|
|
780
803
|
};
|
|
781
804
|
|
|
782
|
-
// text line for the current active angle annotation
|
|
783
|
-
_getTextLines(data, targetId) {
|
|
784
|
-
const cachedVolumeStats = data.cachedStats[targetId];
|
|
785
|
-
const { angle } = cachedVolumeStats;
|
|
786
|
-
|
|
787
|
-
if (angle === undefined) {
|
|
788
|
-
return;
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
const textLines = [`${roundNumber(angle)} ${String.fromCharCode(176)}`];
|
|
792
|
-
|
|
793
|
-
return textLines;
|
|
794
|
-
}
|
|
795
|
-
|
|
796
805
|
_calculateCachedStats(annotation, renderingEngine, enabledElement) {
|
|
797
806
|
const data = annotation.data;
|
|
798
807
|
const { viewportId, renderingEngineId } = enabledElement;
|
|
@@ -817,7 +826,7 @@ class AngleTool extends AnnotationTool {
|
|
|
817
826
|
);
|
|
818
827
|
|
|
819
828
|
cachedStats[targetId] = {
|
|
820
|
-
angle,
|
|
829
|
+
angle: isNaN(angle) ? 'Incomplete Angle' : angle,
|
|
821
830
|
};
|
|
822
831
|
}
|
|
823
832
|
|
|
@@ -837,5 +846,18 @@ class AngleTool extends AnnotationTool {
|
|
|
837
846
|
}
|
|
838
847
|
}
|
|
839
848
|
|
|
849
|
+
function defaultGetTextLines(data, targetId): string[] {
|
|
850
|
+
const cachedVolumeStats = data.cachedStats[targetId];
|
|
851
|
+
const { angle } = cachedVolumeStats;
|
|
852
|
+
|
|
853
|
+
if (angle === undefined) {
|
|
854
|
+
return;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
const textLines = [`${roundNumber(angle)} ${String.fromCharCode(176)}`];
|
|
858
|
+
|
|
859
|
+
return textLines;
|
|
860
|
+
}
|
|
861
|
+
|
|
840
862
|
AngleTool.toolName = 'Angle';
|
|
841
863
|
export default AngleTool;
|
|
@@ -776,6 +776,21 @@ class ArrowAnnotateTool extends AnnotationTool {
|
|
|
776
776
|
continue;
|
|
777
777
|
}
|
|
778
778
|
|
|
779
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
780
|
+
if (!options.visibility) {
|
|
781
|
+
data.handles.textBox = {
|
|
782
|
+
hasMoved: false,
|
|
783
|
+
worldPosition: <Types.Point3>[0, 0, 0],
|
|
784
|
+
worldBoundingBox: {
|
|
785
|
+
topLeft: <Types.Point3>[0, 0, 0],
|
|
786
|
+
topRight: <Types.Point3>[0, 0, 0],
|
|
787
|
+
bottomLeft: <Types.Point3>[0, 0, 0],
|
|
788
|
+
bottomRight: <Types.Point3>[0, 0, 0],
|
|
789
|
+
},
|
|
790
|
+
};
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
|
|
779
794
|
// Need to update to sync w/ annotation while unlinked/not moved
|
|
780
795
|
if (!data.handles.textBox.hasMoved) {
|
|
781
796
|
// linked to the point that doesn't have the arrowhead by default
|
|
@@ -798,7 +813,7 @@ class ArrowAnnotateTool extends AnnotationTool {
|
|
|
798
813
|
textBoxPosition,
|
|
799
814
|
canvasCoordinates,
|
|
800
815
|
{},
|
|
801
|
-
|
|
816
|
+
options
|
|
802
817
|
);
|
|
803
818
|
|
|
804
819
|
const { x: left, y: top, width, height } = boundingBox;
|
|
@@ -91,6 +91,7 @@ const { transformWorldToIndex } = csUtils;
|
|
|
91
91
|
*
|
|
92
92
|
* Read more in the Docs section of the website.
|
|
93
93
|
*/
|
|
94
|
+
|
|
94
95
|
class BidirectionalTool extends AnnotationTool {
|
|
95
96
|
static toolName;
|
|
96
97
|
|
|
@@ -115,6 +116,7 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
115
116
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
116
117
|
configuration: {
|
|
117
118
|
preventHandleOutsideImage: false,
|
|
119
|
+
getTextLines: defaultGetTextLines,
|
|
118
120
|
},
|
|
119
121
|
}
|
|
120
122
|
) {
|
|
@@ -1071,7 +1073,7 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
1071
1073
|
// force to recalculate the stats from the points
|
|
1072
1074
|
if (
|
|
1073
1075
|
!data.cachedStats[targetId] ||
|
|
1074
|
-
data.cachedStats[targetId].unit
|
|
1076
|
+
data.cachedStats[targetId].unit == null
|
|
1075
1077
|
) {
|
|
1076
1078
|
data.cachedStats[targetId] = {
|
|
1077
1079
|
length: null,
|
|
@@ -1160,11 +1162,26 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
1160
1162
|
|
|
1161
1163
|
renderStatus = true;
|
|
1162
1164
|
|
|
1163
|
-
const
|
|
1165
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
1166
|
+
if (!options.visibility) {
|
|
1167
|
+
data.handles.textBox = {
|
|
1168
|
+
hasMoved: false,
|
|
1169
|
+
worldPosition: <Types.Point3>[0, 0, 0],
|
|
1170
|
+
worldBoundingBox: {
|
|
1171
|
+
topLeft: <Types.Point3>[0, 0, 0],
|
|
1172
|
+
topRight: <Types.Point3>[0, 0, 0],
|
|
1173
|
+
bottomLeft: <Types.Point3>[0, 0, 0],
|
|
1174
|
+
bottomRight: <Types.Point3>[0, 0, 0],
|
|
1175
|
+
},
|
|
1176
|
+
};
|
|
1177
|
+
continue;
|
|
1178
|
+
}
|
|
1164
1179
|
|
|
1180
|
+
const textLines = this.configuration.getTextLines(data, targetId);
|
|
1165
1181
|
if (!textLines || textLines.length === 0) {
|
|
1166
1182
|
continue;
|
|
1167
1183
|
}
|
|
1184
|
+
|
|
1168
1185
|
let canvasTextBoxCoords;
|
|
1169
1186
|
|
|
1170
1187
|
if (!data.handles.textBox.hasMoved) {
|
|
@@ -1187,7 +1204,7 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
1187
1204
|
textBoxPosition,
|
|
1188
1205
|
canvasCoordinates,
|
|
1189
1206
|
{},
|
|
1190
|
-
|
|
1207
|
+
options
|
|
1191
1208
|
);
|
|
1192
1209
|
|
|
1193
1210
|
const { x: left, y: top, width, height } = boundingBox;
|
|
@@ -1243,27 +1260,6 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
1243
1260
|
return wouldPutThroughShortAxis;
|
|
1244
1261
|
};
|
|
1245
1262
|
|
|
1246
|
-
/**
|
|
1247
|
-
* get text box content
|
|
1248
|
-
*/
|
|
1249
|
-
_getTextLines = (data, targetId) => {
|
|
1250
|
-
const { cachedStats } = data;
|
|
1251
|
-
const { length, width, unit } = cachedStats[targetId];
|
|
1252
|
-
|
|
1253
|
-
if (length === undefined) {
|
|
1254
|
-
return;
|
|
1255
|
-
}
|
|
1256
|
-
|
|
1257
|
-
// spaceBetweenSlices & pixelSpacing &
|
|
1258
|
-
// magnitude in each direction? Otherwise, this is "px"?
|
|
1259
|
-
const textLines = [
|
|
1260
|
-
`L: ${roundNumber(length)} ${unit}`,
|
|
1261
|
-
`W: ${roundNumber(width)} ${unit}`,
|
|
1262
|
-
];
|
|
1263
|
-
|
|
1264
|
-
return textLines;
|
|
1265
|
-
};
|
|
1266
|
-
|
|
1267
1263
|
_calculateLength(pos1, pos2) {
|
|
1268
1264
|
const dx = pos1[0] - pos2[0];
|
|
1269
1265
|
const dy = pos1[1] - pos2[1];
|
|
@@ -1351,5 +1347,23 @@ class BidirectionalTool extends AnnotationTool {
|
|
|
1351
1347
|
};
|
|
1352
1348
|
}
|
|
1353
1349
|
|
|
1350
|
+
function defaultGetTextLines(data, targetId): string[] {
|
|
1351
|
+
const { cachedStats } = data;
|
|
1352
|
+
const { length, width, unit } = cachedStats[targetId];
|
|
1353
|
+
|
|
1354
|
+
if (length === undefined) {
|
|
1355
|
+
return;
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
// spaceBetweenSlices & pixelSpacing &
|
|
1359
|
+
// magnitude in each direction? Otherwise, this is "px"?
|
|
1360
|
+
const textLines = [
|
|
1361
|
+
`L: ${roundNumber(length)} ${unit}`,
|
|
1362
|
+
`W: ${roundNumber(width)} ${unit}`,
|
|
1363
|
+
];
|
|
1364
|
+
|
|
1365
|
+
return textLines;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1354
1368
|
BidirectionalTool.toolName = 'Bidirectional';
|
|
1355
1369
|
export default BidirectionalTool;
|