@cornerstonejs/tools 1.42.0 → 1.43.0
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/eventListeners/segmentation/imageChangeEventListener.js +18 -5
- package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/activeSegmentation.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/activeSegmentation.js +10 -1
- package/dist/cjs/stateManagement/segmentation/activeSegmentation.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +10 -0
- package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.js +65 -0
- package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.js.map +1 -0
- package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +8 -0
- package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.js +92 -0
- package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.js.map +1 -0
- package/dist/cjs/stateManagement/segmentation/index.d.ts +3 -1
- package/dist/cjs/stateManagement/segmentation/index.js +5 -1
- package/dist/cjs/stateManagement/segmentation/index.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/segmentIndex.js +5 -0
- package/dist/cjs/stateManagement/segmentation/segmentIndex.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js +8 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +3 -0
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/tools/annotation/AngleTool.js +2 -2
- package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +2 -2
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/CircleROITool.js +8 -8
- package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +7 -7
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +2 -2
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +5 -5
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.js +3 -3
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +7 -7
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js +2 -0
- package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +20 -4
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/cjs/tools/index.d.ts +2 -1
- package/dist/cjs/tools/index.js +3 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.d.ts +1 -0
- package/dist/cjs/tools/segmentation/BrushTool.js +40 -19
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/CircleScissorsTool.js +5 -0
- package/dist/cjs/tools/segmentation/CircleScissorsTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleScissorsTool.js +5 -0
- package/dist/cjs/tools/segmentation/RectangleScissorsTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/SegmentSelectTool.d.ts +15 -0
- package/dist/cjs/tools/segmentation/SegmentSelectTool.js +105 -0
- package/dist/cjs/tools/segmentation/SegmentSelectTool.js.map +1 -0
- package/dist/cjs/tools/segmentation/SphereScissorsTool.js +5 -0
- package/dist/cjs/tools/segmentation/SphereScissorsTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/BrushStrategy.d.ts +2 -1
- package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +12 -15
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +30 -3
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +3 -20
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
- package/dist/cjs/types/LabelmapTypes.d.ts +1 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +4 -2
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +45 -23
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -1
- package/dist/cjs/utilities/boundingBox/index.d.ts +2 -2
- package/dist/cjs/utilities/boundingBox/index.js +5 -3
- package/dist/cjs/utilities/boundingBox/index.js.map +1 -1
- package/dist/cjs/utilities/getSphereBoundsInfo.d.ts +11 -0
- package/dist/cjs/utilities/getSphereBoundsInfo.js +45 -0
- package/dist/cjs/utilities/getSphereBoundsInfo.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +4 -3
- package/dist/cjs/utilities/index.js +8 -7
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.d.ts +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.js +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +2 -2
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -1
- package/dist/cjs/utilities/rectangleROITool/index.d.ts +2 -1
- package/dist/cjs/utilities/rectangleROITool/index.js +3 -1
- package/dist/cjs/utilities/rectangleROITool/index.js.map +1 -1
- package/dist/cjs/utilities/rectangleROITool/isAxisAlignedRectangle.d.ts +2 -0
- package/dist/cjs/utilities/rectangleROITool/isAxisAlignedRectangle.js +26 -0
- package/dist/cjs/utilities/rectangleROITool/isAxisAlignedRectangle.js.map +1 -0
- package/dist/cjs/utilities/segmentation/createImageIdReferenceMap.d.ts +2 -0
- package/dist/cjs/utilities/segmentation/createImageIdReferenceMap.js +11 -0
- package/dist/cjs/utilities/segmentation/createImageIdReferenceMap.js.map +1 -0
- package/dist/cjs/utilities/segmentation/createLabelmapVolumeForViewport.js +1 -1
- package/dist/cjs/utilities/segmentation/createLabelmapVolumeForViewport.js.map +1 -1
- package/dist/cjs/utilities/segmentation/index.d.ts +3 -1
- package/dist/cjs/utilities/segmentation/index.js +5 -1
- package/dist/cjs/utilities/segmentation/index.js.map +1 -1
- package/dist/cjs/utilities/segmentation/invalidateBrushCursor.d.ts +1 -0
- package/dist/cjs/utilities/segmentation/invalidateBrushCursor.js +31 -0
- package/dist/cjs/utilities/segmentation/invalidateBrushCursor.js.map +1 -0
- package/dist/cjs/utilities/segmentation/thresholdSegmentationByRange.js.map +1 -1
- package/dist/cjs/utilities/segmentation/triggerSegmentationRender.js +8 -4
- package/dist/cjs/utilities/segmentation/triggerSegmentationRender.js.map +1 -1
- package/dist/cjs/utilities/segmentation/utilities.d.ts +1 -1
- package/dist/cjs/utilities/segmentation/utilities.js +2 -2
- package/dist/cjs/utilities/segmentation/utilities.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js +2 -5
- package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js +2 -1
- package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -1
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +18 -5
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/activeSegmentation.js +10 -2
- package/dist/esm/stateManagement/segmentation/activeSegmentation.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +47 -0
- package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js.map +1 -0
- package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +72 -0
- package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js.map +1 -0
- package/dist/esm/stateManagement/segmentation/index.js +3 -1
- package/dist/esm/stateManagement/segmentation/index.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/segmentIndex.js +6 -1
- package/dist/esm/stateManagement/segmentation/segmentIndex.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.js +7 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +3 -0
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/tools/annotation/AngleTool.js +1 -1
- package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/CircleROITool.js +1 -1
- package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +1 -1
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +2 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +21 -5
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/esm/tools/index.js +2 -1
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +39 -19
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/CircleScissorsTool.js +5 -0
- package/dist/esm/tools/segmentation/CircleScissorsTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js +5 -0
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js.map +1 -1
- package/dist/esm/tools/segmentation/SegmentSelectTool.js +100 -0
- package/dist/esm/tools/segmentation/SegmentSelectTool.js.map +1 -0
- package/dist/esm/tools/segmentation/SphereScissorsTool.js +5 -0
- package/dist/esm/tools/segmentation/SphereScissorsTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +12 -15
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js +32 -5
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +3 -20
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +40 -23
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -1
- package/dist/esm/utilities/boundingBox/index.js +2 -2
- package/dist/esm/utilities/boundingBox/index.js.map +1 -1
- package/dist/esm/utilities/getSphereBoundsInfo.js +42 -0
- package/dist/esm/utilities/getSphereBoundsInfo.js.map +1 -0
- package/dist/esm/utilities/index.js +4 -3
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.js +1 -1
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +2 -2
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -1
- package/dist/esm/utilities/rectangleROITool/index.js +2 -1
- package/dist/esm/utilities/rectangleROITool/index.js.map +1 -1
- package/dist/esm/utilities/rectangleROITool/isAxisAlignedRectangle.js +23 -0
- package/dist/esm/utilities/rectangleROITool/isAxisAlignedRectangle.js.map +1 -0
- package/dist/esm/utilities/segmentation/createImageIdReferenceMap.js +8 -0
- package/dist/esm/utilities/segmentation/createImageIdReferenceMap.js.map +1 -0
- package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +1 -1
- package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js.map +1 -1
- package/dist/esm/utilities/segmentation/index.js +3 -1
- package/dist/esm/utilities/segmentation/index.js.map +1 -1
- package/dist/esm/utilities/segmentation/invalidateBrushCursor.js +24 -0
- package/dist/esm/utilities/segmentation/invalidateBrushCursor.js.map +1 -0
- package/dist/esm/utilities/segmentation/thresholdSegmentationByRange.js.map +1 -1
- package/dist/esm/utilities/segmentation/triggerSegmentationRender.js +8 -4
- package/dist/esm/utilities/segmentation/triggerSegmentationRender.js.map +1 -1
- package/dist/esm/utilities/segmentation/utilities.js +2 -2
- package/dist/esm/utilities/segmentation/utilities.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js +1 -1
- package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js +2 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -1
- package/dist/types/eventListeners/segmentation/imageChangeEventListener.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/stateManagement/segmentation/activeSegmentation.d.ts +2 -1
- package/dist/types/stateManagement/segmentation/activeSegmentation.d.ts.map +1 -1
- package/dist/types/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +11 -0
- package/dist/types/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts.map +1 -0
- package/dist/types/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +9 -0
- package/dist/types/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts.map +1 -0
- package/dist/types/stateManagement/segmentation/index.d.ts +3 -1
- package/dist/types/stateManagement/segmentation/index.d.ts.map +1 -1
- package/dist/types/stateManagement/segmentation/segmentIndex.d.ts.map +1 -1
- package/dist/types/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/types/stateManagement/segmentation/segmentationState.d.ts.map +1 -1
- package/dist/types/store/ToolGroupManager/ToolGroup.d.ts.map +1 -1
- package/dist/types/tools/annotation/AngleTool.d.ts.map +1 -1
- package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts.map +1 -1
- package/dist/types/tools/displayTools/Labelmap/labelmapConfig.d.ts.map +1 -1
- package/dist/types/tools/displayTools/Labelmap/labelmapDisplay.d.ts.map +1 -1
- package/dist/types/tools/index.d.ts +2 -1
- package/dist/types/tools/index.d.ts.map +1 -1
- package/dist/types/tools/segmentation/BrushTool.d.ts +1 -0
- package/dist/types/tools/segmentation/BrushTool.d.ts.map +1 -1
- package/dist/types/tools/segmentation/CircleScissorsTool.d.ts.map +1 -1
- package/dist/types/tools/segmentation/RectangleScissorsTool.d.ts.map +1 -1
- package/dist/types/tools/segmentation/SegmentSelectTool.d.ts +16 -0
- package/dist/types/tools/segmentation/SegmentSelectTool.d.ts.map +1 -0
- package/dist/types/tools/segmentation/SphereScissorsTool.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts +2 -1
- package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/fillCircle.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/fillRectangle.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/fillSphere.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +1 -1
- package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts.map +1 -1
- package/dist/types/types/LabelmapTypes.d.ts +1 -0
- package/dist/types/types/LabelmapTypes.d.ts.map +1 -1
- package/dist/types/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +4 -2
- package/dist/types/utilities/boundingBox/getBoundingBoxAroundShape.d.ts.map +1 -1
- package/dist/types/utilities/boundingBox/index.d.ts +2 -2
- package/dist/types/utilities/boundingBox/index.d.ts.map +1 -1
- package/dist/types/utilities/getSphereBoundsInfo.d.ts +12 -0
- package/dist/types/utilities/getSphereBoundsInfo.d.ts.map +1 -0
- package/dist/types/utilities/index.d.ts +4 -3
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/pointInShapeCallback.d.ts +1 -1
- package/dist/types/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts.map +1 -1
- package/dist/types/utilities/rectangleROITool/index.d.ts +2 -1
- package/dist/types/utilities/rectangleROITool/index.d.ts.map +1 -1
- package/dist/types/utilities/rectangleROITool/isAxisAlignedRectangle.d.ts +3 -0
- package/dist/types/utilities/rectangleROITool/isAxisAlignedRectangle.d.ts.map +1 -0
- package/dist/types/utilities/segmentation/createImageIdReferenceMap.d.ts +3 -0
- package/dist/types/utilities/segmentation/createImageIdReferenceMap.d.ts.map +1 -0
- package/dist/types/utilities/segmentation/index.d.ts +3 -1
- package/dist/types/utilities/segmentation/index.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/invalidateBrushCursor.d.ts +2 -0
- package/dist/types/utilities/segmentation/invalidateBrushCursor.d.ts.map +1 -0
- package/dist/types/utilities/segmentation/triggerSegmentationRender.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/utilities.d.ts +1 -1
- package/dist/types/utilities/segmentation/utilities.d.ts.map +1 -1
- package/dist/types/utilities/stackPrefetch/stackPrefetchUtils.d.ts.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
- package/src/eventListeners/segmentation/imageChangeEventListener.ts +42 -6
- package/src/index.ts +2 -0
- package/src/stateManagement/segmentation/activeSegmentation.ts +24 -1
- package/src/stateManagement/segmentation/convertStackToVolumeSegmentation.ts +98 -0
- package/src/stateManagement/segmentation/convertVolumeToStackSegmentation.ts +153 -0
- package/src/stateManagement/segmentation/index.ts +4 -0
- package/src/stateManagement/segmentation/segmentIndex.ts +15 -2
- package/src/stateManagement/segmentation/segmentationState.ts +17 -0
- package/src/store/ToolGroupManager/ToolGroup.ts +4 -0
- package/src/tools/annotation/AngleTool.ts +1 -2
- package/src/tools/annotation/BidirectionalTool.ts +1 -1
- package/src/tools/annotation/CircleROITool.ts +1 -1
- package/src/tools/annotation/EllipticalROITool.ts +1 -1
- package/src/tools/annotation/LengthTool.ts +1 -1
- package/src/tools/annotation/PlanarFreehandROITool.ts +1 -2
- package/src/tools/annotation/ProbeTool.ts +1 -1
- package/src/tools/annotation/RectangleROITool.ts +1 -1
- package/src/tools/displayTools/Labelmap/labelmapConfig.ts +2 -0
- package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +39 -14
- package/src/tools/index.ts +2 -0
- package/src/tools/segmentation/BrushTool.ts +64 -33
- package/src/tools/segmentation/CircleScissorsTool.ts +9 -0
- package/src/tools/segmentation/RectangleScissorsTool.ts +10 -1
- package/src/tools/segmentation/SegmentSelectTool.ts +182 -0
- package/src/tools/segmentation/SphereScissorsTool.ts +9 -0
- package/src/tools/segmentation/strategies/BrushStrategy.ts +2 -1
- package/src/tools/segmentation/strategies/fillCircle.ts +19 -21
- package/src/tools/segmentation/strategies/fillRectangle.ts +51 -6
- package/src/tools/segmentation/strategies/fillSphere.ts +10 -38
- package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +1 -1
- package/src/types/LabelmapTypes.ts +7 -7
- package/src/utilities/boundingBox/getBoundingBoxAroundShape.ts +88 -37
- package/src/utilities/boundingBox/index.ts +11 -2
- package/src/utilities/{pointInSurroundingSphereCallback.ts → getSphereBoundsInfo.ts} +39 -82
- package/src/utilities/index.ts +6 -3
- package/src/utilities/math/ellipse/pointInEllipse.ts +1 -1
- package/src/utilities/pointInShapeCallback.ts +2 -2
- package/src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts +5 -2
- package/src/utilities/rectangleROITool/index.ts +2 -1
- package/src/utilities/rectangleROITool/isAxisAlignedRectangle.ts +53 -0
- package/src/utilities/segmentation/createImageIdReferenceMap.ts +23 -0
- package/src/utilities/segmentation/createLabelmapVolumeForViewport.ts +1 -1
- package/src/utilities/segmentation/index.ts +4 -0
- package/src/utilities/segmentation/invalidateBrushCursor.ts +48 -0
- package/src/utilities/segmentation/thresholdSegmentationByRange.ts +2 -2
- package/src/utilities/segmentation/triggerSegmentationRender.ts +15 -10
- package/src/utilities/segmentation/utilities.ts +5 -2
- package/src/utilities/stackPrefetch/stackContextPrefetch.ts +1 -1
- package/src/utilities/stackPrefetch/stackPrefetchUtils.ts +5 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.d.ts +0 -4
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +0 -70
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +0 -1
- package/dist/cjs/utilities/roundNumber.d.ts +0 -2
- package/dist/cjs/utilities/roundNumber.js +0 -30
- package/dist/cjs/utilities/roundNumber.js.map +0 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +0 -64
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +0 -1
- package/dist/esm/utilities/roundNumber.js +0 -28
- package/dist/esm/utilities/roundNumber.js.map +0 -1
- package/dist/types/utilities/pointInSurroundingSphereCallback.d.ts +0 -5
- package/dist/types/utilities/pointInSurroundingSphereCallback.d.ts.map +0 -1
- package/dist/types/utilities/roundNumber.d.ts +0 -3
- package/dist/types/utilities/roundNumber.d.ts.map +0 -1
- package/src/utilities/roundNumber.ts +0 -44
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
2
|
import { vec3 } from 'gl-matrix';
|
|
3
|
-
import { getCanvasEllipseCorners } from '../../../utilities/math/ellipse';
|
|
4
|
-
import { getBoundingBoxAroundShape } from '../../../utilities/boundingBox';
|
|
5
3
|
import BrushStrategy from './BrushStrategy';
|
|
6
4
|
import compositions from './compositions';
|
|
7
5
|
import StrategyCallbacks from '../../../enums/StrategyCallbacks';
|
|
8
6
|
import { createEllipseInPoint } from './fillCircle';
|
|
9
7
|
const { transformWorldToIndex } = csUtils;
|
|
8
|
+
import { getSphereBoundsInfo } from '../../../utilities/getSphereBoundsInfo';
|
|
10
9
|
const sphereComposition = {
|
|
11
10
|
[StrategyCallbacks.Initialize]: (operationData) => {
|
|
12
11
|
const { points, imageVoxelManager: imageVoxelManager, viewport, segmentationImageData, segmentationVoxelManager: segmentationVoxelManager, } = operationData;
|
|
@@ -20,24 +19,8 @@ const sphereComposition = {
|
|
|
20
19
|
vec3.scale(center, center, 1 / points.length);
|
|
21
20
|
operationData.centerWorld = center;
|
|
22
21
|
operationData.centerIJK = transformWorldToIndex(segmentationImageData, center);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
const topLeftWorld = viewport.canvasToWorld(topLeftCanvas);
|
|
26
|
-
const bottomRightWorld = viewport.canvasToWorld(bottomRightCanvas);
|
|
27
|
-
const diameters = topLeftWorld.map((left, index) => Math.abs(bottomRightWorld[index] - left));
|
|
28
|
-
const radius = Math.max(...diameters) / 2;
|
|
29
|
-
topLeftWorld.forEach((left, index) => {
|
|
30
|
-
const right = bottomRightWorld[index];
|
|
31
|
-
if (left === right) {
|
|
32
|
-
topLeftWorld[index] = left - radius;
|
|
33
|
-
bottomRightWorld[index] = left + radius;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const ellipsoidCornersIJK = [
|
|
37
|
-
transformWorldToIndex(segmentationImageData, topLeftWorld),
|
|
38
|
-
(transformWorldToIndex(segmentationImageData, bottomRightWorld)),
|
|
39
|
-
];
|
|
40
|
-
segmentationVoxelManager.boundsIJK = getBoundingBoxAroundShape(ellipsoidCornersIJK, segmentationVoxelManager.dimensions);
|
|
22
|
+
const { boundsIJK: newBoundsIJK, topLeftWorld, bottomRightWorld, } = getSphereBoundsInfo(points.slice(0, 2), segmentationImageData, viewport);
|
|
23
|
+
segmentationVoxelManager.boundsIJK = newBoundsIJK;
|
|
41
24
|
imageVoxelManager.isInObject = createEllipseInPoint({
|
|
42
25
|
topLeftWorld,
|
|
43
26
|
bottomRightWorld,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,MAAM,iBAAiB,GAAG;IACxB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,aAAuC,EAAE,EAAE;QAC1E,MAAM,EACJ,MAAM,EACN,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EAAE,wBAAwB,GACnD,GAAG,aAAa,CAAC;QAGlB,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9C,aAAa,CAAC,WAAW,GAAG,MAAsB,CAAC;QACnD,aAAa,CAAC,SAAS,GAAG,qBAAqB,CAC7C,qBAAqB,EACrB,MAAsB,CACvB,CAAC;QAEF,MAAM,EACJ,SAAS,EAAE,YAAY,EACvB,YAAY,EACZ,gBAAgB,GACjB,GAAG,mBAAmB,CACrB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAiC,EAClD,qBAAqB,EACrB,QAAQ,CACT,CAAC;QAEF,wBAAwB,CAAC,SAAS,GAAG,YAAY,CAAC;QAElD,iBAAiB,CAAC,UAAU,GAAG,oBAAoB,CAAC;YAClD,YAAY;YACZ,gBAAgB;YAChB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACa,CAAC;AAEjB,MAAM,eAAe,GAAG,IAAI,aAAa,CACvC,QAAQ,EACR,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,QAAQ,EACrB,iBAAiB,EACjB,YAAY,CAAC,qBAAqB,EAClC,YAAY,CAAC,OAAO,CACrB,CAAC;AAQF,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;AAE1D,MAAM,yBAAyB,GAAG,IAAI,aAAa,CACjD,iBAAiB,EACjB,GAAG,eAAe,CAAC,YAAY,EAC/B,YAAY,CAAC,gBAAgB,EAC7B,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,aAAa,CAC3B,CAAC;AASF,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC;AAQzE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACzD,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isWithinThreshold.js","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/isWithinThreshold.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CACxB,KAAa,EACb,
|
|
1
|
+
{"version":3,"file":"isWithinThreshold.js","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/isWithinThreshold.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CACxB,KAAa,EACb,eAA0C,EAC1C,6BAAkC;IAElC,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAG,6BAA6B,CAAC;IAE7E,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAG1C,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,IAAI,uBAAuB,CAAC;IAC3D,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,38 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
import { CONSTANTS } from '@cornerstonejs/core';
|
|
2
|
+
const { EPSILON } = CONSTANTS;
|
|
3
|
+
function calculateBoundingBox(points, dimensions, isWorld = false) {
|
|
2
4
|
let xMin = Infinity;
|
|
3
|
-
let xMax = 0;
|
|
5
|
+
let xMax = isWorld ? -Infinity : 0;
|
|
4
6
|
let yMin = Infinity;
|
|
5
|
-
let yMax = 0;
|
|
7
|
+
let yMax = isWorld ? -Infinity : 0;
|
|
6
8
|
let zMin = Infinity;
|
|
7
|
-
let zMax = 0;
|
|
9
|
+
let zMax = isWorld ? -Infinity : 0;
|
|
10
|
+
const is3D = points[0]?.length === 3;
|
|
8
11
|
points.forEach((p) => {
|
|
9
12
|
xMin = Math.min(p[0], xMin);
|
|
10
13
|
xMax = Math.max(p[0], xMax);
|
|
11
14
|
yMin = Math.min(p[1], yMin);
|
|
12
15
|
yMax = Math.max(p[1], yMax);
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
if (is3D) {
|
|
17
|
+
zMin = Math.min(p[2] ?? zMin, zMin);
|
|
18
|
+
zMax = Math.max(p[2] ?? zMax, zMax);
|
|
19
|
+
}
|
|
15
20
|
});
|
|
16
|
-
xMin = Math.floor(xMin);
|
|
17
|
-
xMax = Math.floor(xMax);
|
|
18
|
-
yMin = Math.floor(yMin);
|
|
19
|
-
yMax = Math.floor(yMax);
|
|
20
|
-
zMin = Math.floor(zMin);
|
|
21
|
-
zMax = Math.floor(zMax);
|
|
22
21
|
if (dimensions) {
|
|
23
|
-
|
|
22
|
+
xMin = Math.max(isWorld ? dimensions[0] + EPSILON : 0, xMin);
|
|
23
|
+
xMax = Math.min(isWorld ? dimensions[0] - EPSILON : dimensions[0] - 1, xMax);
|
|
24
|
+
yMin = Math.max(isWorld ? dimensions[1] + EPSILON : 0, yMin);
|
|
25
|
+
yMax = Math.min(isWorld ? dimensions[1] - EPSILON : dimensions[1] - 1, yMax);
|
|
26
|
+
if (is3D && dimensions.length === 3) {
|
|
27
|
+
zMin = Math.max(isWorld ? dimensions[2] + EPSILON : 0, zMin);
|
|
28
|
+
zMax = Math.min(isWorld ? dimensions[2] - EPSILON : dimensions[2] - 1, zMax);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (!isWorld) {
|
|
24
32
|
xMin = Math.max(0, xMin);
|
|
25
|
-
xMax = Math.min(
|
|
33
|
+
xMax = Math.min(Infinity, xMax);
|
|
26
34
|
yMin = Math.max(0, yMin);
|
|
27
|
-
yMax = Math.min(
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
yMax = Math.min(Infinity, yMax);
|
|
36
|
+
if (is3D) {
|
|
37
|
+
zMin = Math.max(0, zMin);
|
|
38
|
+
zMax = Math.min(Infinity, zMax);
|
|
39
|
+
}
|
|
30
40
|
}
|
|
31
|
-
return
|
|
32
|
-
[
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
return is3D
|
|
42
|
+
? [
|
|
43
|
+
[xMin, xMax],
|
|
44
|
+
[yMin, yMax],
|
|
45
|
+
[zMin, zMax],
|
|
46
|
+
]
|
|
47
|
+
: [[xMin, xMax], [yMin, yMax], null];
|
|
48
|
+
}
|
|
49
|
+
export function getBoundingBoxAroundShapeIJK(points, dimensions) {
|
|
50
|
+
return calculateBoundingBox(points, dimensions, false);
|
|
51
|
+
}
|
|
52
|
+
export function getBoundingBoxAroundShapeWorld(points, clipBounds) {
|
|
53
|
+
return calculateBoundingBox(points, clipBounds, true);
|
|
36
54
|
}
|
|
37
|
-
export default getBoundingBoxAroundShape;
|
|
38
55
|
//# sourceMappingURL=getBoundingBoxAroundShape.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBoundingBoxAroundShape.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/getBoundingBoxAroundShape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getBoundingBoxAroundShape.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/getBoundingBoxAroundShape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import extend2DBoundingBoxInViewAxis from './extend2DBoundingBoxInViewAxis';
|
|
2
|
-
import
|
|
3
|
-
export { extend2DBoundingBoxInViewAxis, getBoundingBoxAroundShape };
|
|
2
|
+
import { getBoundingBoxAroundShapeIJK, getBoundingBoxAroundShapeWorld, } from './getBoundingBoxAroundShape';
|
|
3
|
+
export { extend2DBoundingBoxInViewAxis, getBoundingBoxAroundShapeIJK, getBoundingBoxAroundShapeWorld, getBoundingBoxAroundShapeIJK as getBoundingBoxAroundShape, };
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAE9B,4BAA4B,IAAI,yBAAyB,GAC1D,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
|
+
import { vec3 } from 'gl-matrix';
|
|
3
|
+
import { getBoundingBoxAroundShapeIJK } from './boundingBox';
|
|
4
|
+
const { transformWorldToIndex } = csUtils;
|
|
5
|
+
function getSphereBoundsInfo(circlePoints, imageData, viewport) {
|
|
6
|
+
const [bottom, top] = circlePoints;
|
|
7
|
+
const centerWorld = vec3.fromValues((bottom[0] + top[0]) / 2, (bottom[1] + top[1]) / 2, (bottom[2] + top[2]) / 2);
|
|
8
|
+
const radiusWorld = vec3.distance(bottom, top) / 2;
|
|
9
|
+
if (!viewport) {
|
|
10
|
+
throw new Error('viewport is required in order to calculate the sphere bounds');
|
|
11
|
+
}
|
|
12
|
+
const { boundsIJK, topLeftWorld, bottomRightWorld } = _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld);
|
|
13
|
+
return {
|
|
14
|
+
boundsIJK,
|
|
15
|
+
centerWorld: centerWorld,
|
|
16
|
+
radiusWorld,
|
|
17
|
+
topLeftWorld: topLeftWorld,
|
|
18
|
+
bottomRightWorld: bottomRightWorld,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld) {
|
|
22
|
+
const [bottom, top] = circlePoints;
|
|
23
|
+
const dimensions = imageData.getDimensions();
|
|
24
|
+
const camera = viewport.getCamera();
|
|
25
|
+
const viewUp = vec3.fromValues(camera.viewUp[0], camera.viewUp[1], camera.viewUp[2]);
|
|
26
|
+
const viewPlaneNormal = vec3.fromValues(camera.viewPlaneNormal[0], camera.viewPlaneNormal[1], camera.viewPlaneNormal[2]);
|
|
27
|
+
const viewRight = vec3.create();
|
|
28
|
+
vec3.cross(viewRight, viewUp, viewPlaneNormal);
|
|
29
|
+
const topLeftWorld = vec3.create();
|
|
30
|
+
const bottomRightWorld = vec3.create();
|
|
31
|
+
vec3.scaleAndAdd(topLeftWorld, top, viewPlaneNormal, radiusWorld);
|
|
32
|
+
vec3.scaleAndAdd(bottomRightWorld, bottom, viewPlaneNormal, -radiusWorld);
|
|
33
|
+
vec3.scaleAndAdd(topLeftWorld, topLeftWorld, viewRight, -radiusWorld);
|
|
34
|
+
vec3.scaleAndAdd(bottomRightWorld, bottomRightWorld, viewRight, radiusWorld);
|
|
35
|
+
const topLeftIJK = transformWorldToIndex(imageData, topLeftWorld);
|
|
36
|
+
const bottomRightIJK = transformWorldToIndex(imageData, bottomRightWorld);
|
|
37
|
+
const pointsIJK = circlePoints.map((p) => transformWorldToIndex(imageData, p));
|
|
38
|
+
const boundsIJK = getBoundingBoxAroundShapeIJK([topLeftIJK, bottomRightIJK, ...pointsIJK], dimensions);
|
|
39
|
+
return { boundsIJK, topLeftWorld, bottomRightWorld };
|
|
40
|
+
}
|
|
41
|
+
export { getSphereBoundsInfo };
|
|
42
|
+
//# sourceMappingURL=getSphereBoundsInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSphereBoundsInfo.js","sourceRoot":"","sources":["../../../src/utilities/getSphereBoundsInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { utilities } from '@cornerstonejs/core';
|
|
1
2
|
import { getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, } from './getAnnotationNearPoint';
|
|
2
3
|
import debounce from './debounce';
|
|
3
4
|
import throttle from './throttle';
|
|
@@ -9,9 +10,8 @@ import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForV
|
|
|
9
10
|
import triggerAnnotationRender from './triggerAnnotationRender';
|
|
10
11
|
import jumpToSlice from './viewport/jumpToSlice';
|
|
11
12
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
12
|
-
import
|
|
13
|
+
import { getSphereBoundsInfo } from './getSphereBoundsInfo';
|
|
13
14
|
import scroll from './scroll';
|
|
14
|
-
import roundNumber from './roundNumber';
|
|
15
15
|
import { pointToString } from './pointToString';
|
|
16
16
|
import annotationFrameRange from './annotationFrameRange';
|
|
17
17
|
import * as contours from './contours';
|
|
@@ -31,6 +31,7 @@ import * as touch from './touch';
|
|
|
31
31
|
import * as dynamicVolume from './dynamicVolume';
|
|
32
32
|
import * as polyDataUtils from './polyData/utils';
|
|
33
33
|
import * as voi from './voi';
|
|
34
|
+
const roundNumber = utilities.roundNumber;
|
|
34
35
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
35
|
-
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnits, getCalibratedAreaUnits, getCalibratedScale, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback,
|
|
36
|
+
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnits, getCalibratedAreaUnits, getCalibratedScale, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, getSphereBoundsInfo, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, voi, annotationFrameRange, };
|
|
36
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,WAAW,EACX,aAAa,EACb,aAAa,EACb,GAAG,EACH,oBAAoB,GACrB,CAAC"}
|
|
@@ -45,7 +45,7 @@ export default function pointInShapeCallback(imageData, pointInShapeFn, callback
|
|
|
45
45
|
const startPosI = vec3.clone(currentPos);
|
|
46
46
|
for (let i = iMin; i <= iMax; i++) {
|
|
47
47
|
const pointIJK = [i, j, k];
|
|
48
|
-
if (pointInShapeFn(currentPos,
|
|
48
|
+
if (pointInShapeFn(currentPos, pointIJK)) {
|
|
49
49
|
const index = k * zMultiple + j * yMultiple + i * xMultiple;
|
|
50
50
|
let value;
|
|
51
51
|
if (xMultiple > 2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
|
-
import
|
|
2
|
+
import { getBoundingBoxAroundShapeIJK } from '../boundingBox/getBoundingBoxAroundShape';
|
|
3
3
|
import extend2DBoundingBoxInViewAxis from '../boundingBox/extend2DBoundingBoxInViewAxis';
|
|
4
4
|
function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, options = {}) {
|
|
5
5
|
const AllBoundsIJK = [];
|
|
@@ -13,7 +13,7 @@ function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, opti
|
|
|
13
13
|
pointsToUse = [].concat(...projectionPoints);
|
|
14
14
|
}
|
|
15
15
|
const rectangleCornersIJK = pointsToUse.map((world) => csUtils.transformWorldToIndex(imageData, world));
|
|
16
|
-
let boundsIJK =
|
|
16
|
+
let boundsIJK = getBoundingBoxAroundShapeIJK(rectangleCornersIJK, dimensions);
|
|
17
17
|
if (options.numSlicesToProject && !data.cachedStats?.projectionPoints) {
|
|
18
18
|
boundsIJK = extend2DBoundingBoxInViewAxis(boundsIJK, options.numSlicesToProject);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBoundsIJKFromRectangleAnnotations.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,
|
|
1
|
+
{"version":3,"file":"getBoundsIJKFromRectangleAnnotations.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,6BAA6B,MAAM,8CAA8C,CAAC;AAMzF,SAAS,oCAAoC,CAC3C,WAAW,EACX,eAAe,EACf,UAAU,EAAa;IAEvB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;QAElD,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;SAC9C;QAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAiB,CAC3E,CAAC;QACF,IAAI,SAAS,GAAG,4BAA4B,CAC1C,mBAAmB,EACnB,UAAU,CACX,CAAC;QAIF,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACrE,SAAS,GAAG,6BAA6B,CACvC,SAAS,EACT,OAAO,CAAC,kBAAkB,CAC3B,CAAC;SACH;QAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAID,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACpD,CAAC;IACJ,CAAC,EACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;KAChB,CACF,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,eAAe,oCAAoC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import getBoundsIJKFromRectangleAnnotations from './getBoundsIJKFromRectangleAnnotations';
|
|
2
|
-
|
|
2
|
+
import { isAxisAlignedRectangle } from './isAxisAlignedRectangle';
|
|
3
|
+
export { getBoundsIJKFromRectangleAnnotations, isAxisAlignedRectangle };
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/index.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/index.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,oCAAoC,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { vec3 } from 'gl-matrix';
|
|
2
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
3
|
+
const { isEqual } = csUtils;
|
|
4
|
+
const iAxis = vec3.fromValues(1, 0, 0);
|
|
5
|
+
const jAxis = vec3.fromValues(0, 1, 0);
|
|
6
|
+
const kAxis = vec3.fromValues(0, 0, 1);
|
|
7
|
+
const axisList = [iAxis, jAxis, kAxis];
|
|
8
|
+
function isAxisAlignedRectangle(rectangleCornersIJK) {
|
|
9
|
+
const rectangleVec1 = vec3.subtract(vec3.create(), rectangleCornersIJK[0], rectangleCornersIJK[1]);
|
|
10
|
+
const rectangleVec2 = vec3.subtract(vec3.create(), rectangleCornersIJK[0], rectangleCornersIJK[2]);
|
|
11
|
+
const anglesVec1 = calculateAnglesWithAxes(rectangleVec1, axisList);
|
|
12
|
+
const anglesVec2 = calculateAnglesWithAxes(rectangleVec2, axisList);
|
|
13
|
+
const isAligned = [...anglesVec1, ...anglesVec2].every((angle) => isEqual(angle, 0) ||
|
|
14
|
+
isEqual(angle, 90) ||
|
|
15
|
+
isEqual(angle, 180) ||
|
|
16
|
+
isEqual(angle, 270));
|
|
17
|
+
return isAligned;
|
|
18
|
+
}
|
|
19
|
+
function calculateAnglesWithAxes(vec, axes) {
|
|
20
|
+
return axes.map((axis) => (vec3.angle(vec, axis) * 180) / Math.PI);
|
|
21
|
+
}
|
|
22
|
+
export { isAxisAlignedRectangle };
|
|
23
|
+
//# sourceMappingURL=isAxisAlignedRectangle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAxisAlignedRectangle.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/isAxisAlignedRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;AAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvC,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAQvC,SAAS,sBAAsB,CAAC,mBAAmB;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CACjC,IAAI,CAAC,MAAM,EAAE,EACb,mBAAmB,CAAC,CAAC,CAAC,EACtB,mBAAmB,CAAC,CAAC,CAAC,CACvB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CACjC,IAAI,CAAC,MAAM,EAAE,EACb,mBAAmB,CAAC,CAAC,CAAC,EACtB,mBAAmB,CAAC,CAAC,CAAC,CACvB,CAAC;IAGF,MAAM,UAAU,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAIpE,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,KAAK,CACpD,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACtB,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,SAAS,uBAAuB,CAAC,GAAG,EAAE,IAAI;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
function createImageIdReferenceMap(imageIdsArray, segmentationImageIds) {
|
|
2
|
+
const imageIdReferenceMap = new Map(imageIdsArray.map((imageId, index) => {
|
|
3
|
+
return [imageId, segmentationImageIds[index]];
|
|
4
|
+
}));
|
|
5
|
+
return imageIdReferenceMap;
|
|
6
|
+
}
|
|
7
|
+
export { createImageIdReferenceMap };
|
|
8
|
+
//# sourceMappingURL=createImageIdReferenceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createImageIdReferenceMap.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/createImageIdReferenceMap.ts"],"names":[],"mappings":"AASA,SAAS,yBAAyB,CAChC,aAAuB,EACvB,oBAA8B;IAE9B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACnC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -21,7 +21,7 @@ export default async function createLabelmapVolumeForViewport(input) {
|
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
const { uid: volumeId } = viewport.getDefaultActor();
|
|
24
|
-
await volumeLoader.
|
|
24
|
+
await volumeLoader.createAndCacheDerivedSegmentationVolume(volumeId, {
|
|
25
25
|
volumeId: segmentationId,
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLabelmapVolumeForViewport.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/createLabelmapVolumeForViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAc7B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAgB7D;IACC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACzD,IAAI,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,cAAc,GAAG,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE7E,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,IAAI,CAAC,CAAC,QAAQ,YAAY,cAAc,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;IAE3C,IAAI,cAAc,KAAK,SAAS,EAAE;QAEhC,cAAc,GAAG,GAAG,GAAG,uBACrB,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAClD,EAAE,CAAC;KACJ;IAED,IAAI,OAAO,EAAE;QAGX,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAClE;SAAM;QAEL,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"createLabelmapVolumeForViewport.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/createLabelmapVolumeForViewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAc7B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAgB7D;IACC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACzD,IAAI,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,cAAc,GAAG,sBAAsB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAE7E,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,IAAI,CAAC,CAAC,QAAQ,YAAY,cAAc,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;IAE3C,IAAI,cAAc,KAAK,SAAS,EAAE;QAEhC,cAAc,GAAG,GAAG,GAAG,uBACrB,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAClD,EAAE,CAAC;KACJ;IAED,IAAI,OAAO,EAAE;QAGX,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;KAClE;SAAM;QAEL,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,YAAY,CAAC,uCAAuC,CAAC,QAAQ,EAAE;YACnE,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC;KACJ;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -9,8 +9,10 @@ import floodFill from './floodFill';
|
|
|
9
9
|
import { getBrushSizeForToolGroup, setBrushSizeForToolGroup, } from './brushSizeForToolGroup';
|
|
10
10
|
import { getBrushThresholdForToolGroup, setBrushThresholdForToolGroup, } from './brushThresholdForToolGroup';
|
|
11
11
|
import thresholdSegmentationByRange from './thresholdSegmentationByRange';
|
|
12
|
+
import { createImageIdReferenceMap } from './createImageIdReferenceMap';
|
|
12
13
|
import contourAndFindLargestBidirectional from './contourAndFindLargestBidirectional';
|
|
13
14
|
import createBidirectionalToolData from './createBidirectionalToolData';
|
|
14
15
|
import segmentContourAction from './segmentContourAction';
|
|
15
|
-
|
|
16
|
+
import { invalidateBrushCursor } from './invalidateBrushCursor';
|
|
17
|
+
export { thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, triggerSegmentationRender, floodFill, getBrushSizeForToolGroup, setBrushSizeForToolGroup, getBrushThresholdForToolGroup, setBrushThresholdForToolGroup, thresholdSegmentationByRange, createImageIdReferenceMap, contourAndFindLargestBidirectional, createBidirectionalToolData, segmentContourAction, invalidateBrushCursor, };
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,yBAAyB,EACzB,SAAS,EACT,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getToolGroup } from '../../store/ToolGroupManager';
|
|
2
|
+
import triggerAnnotationRenderForViewportIds from '../triggerAnnotationRenderForViewportIds';
|
|
3
|
+
import { getRenderingEngine } from '@cornerstonejs/core';
|
|
4
|
+
import getBrushToolInstances from './utilities';
|
|
5
|
+
export function invalidateBrushCursor(toolGroupId) {
|
|
6
|
+
const toolGroup = getToolGroup(toolGroupId);
|
|
7
|
+
if (toolGroup === undefined) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const brushBasedToolInstances = getBrushToolInstances(toolGroupId);
|
|
11
|
+
brushBasedToolInstances.forEach((tool) => {
|
|
12
|
+
tool.invalidateBrushCursor();
|
|
13
|
+
});
|
|
14
|
+
const viewportsInfo = toolGroup.getViewportsInfo();
|
|
15
|
+
const viewportsInfoArray = Object.keys(viewportsInfo).map((key) => viewportsInfo[key]);
|
|
16
|
+
if (!viewportsInfoArray.length) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const { renderingEngineId } = viewportsInfoArray[0];
|
|
20
|
+
const viewportIds = toolGroup.getViewportIds();
|
|
21
|
+
const renderingEngine = getRenderingEngine(renderingEngineId);
|
|
22
|
+
triggerAnnotationRenderForViewportIds(renderingEngine, viewportIds);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=invalidateBrushCursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidateBrushCursor.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/invalidateBrushCursor.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,qBAAqB,CAAC,WAAmB;IACvD,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO;KACR;IAED,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEnE,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;QAElD,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thresholdSegmentationByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdSegmentationByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,8DAA8D,CAAC;AAC/G,OAAO,EACL,eAAe,EACf,cAAc,GAEf,MAAM,aAAa,CAAC;AAarB,SAAS,4BAA4B,CACnC,kBAAsC,EACtC,iBAAyB,EACzB,0BAAkD,EAClD,WAAmB;IAEnB,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC;IAGtD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,cAAc,CACtD,kBAAkB,EAClB,0BAA0B,CAC3B,CAAC;IAWF,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACpC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAElC,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE;YACpC,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;SAClE;aAAM;YACL,0BAA0B,CACxB,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,CACZ,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,+BAA+B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE7D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,0BAA0B,CACjC,
|
|
1
|
+
{"version":3,"file":"thresholdSegmentationByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdSegmentationByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,15 +54,19 @@ class SegmentationRenderingEngine {
|
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
56
56
|
const { viewportsInfo } = toolGroup;
|
|
57
|
-
const viewports =
|
|
58
|
-
|
|
57
|
+
const viewports = viewportsInfo
|
|
58
|
+
.map(({ viewportId, renderingEngineId }) => {
|
|
59
59
|
const renderingEngine = getRenderingEngine(renderingEngineId);
|
|
60
60
|
if (!renderingEngine) {
|
|
61
61
|
console.warn('rendering Engine has been destroyed');
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const viewport = renderingEngine.getViewport(viewportId);
|
|
65
|
+
if (viewport) {
|
|
66
|
+
return viewport;
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
.filter(Boolean);
|
|
66
70
|
const segmentationDisplayToolInstance = toolGroup.getToolInstance(SegmentationDisplayTool.toolName);
|
|
67
71
|
if (!segmentationDisplayToolInstance) {
|
|
68
72
|
console.warn('No segmentation tool found inside', toolGroupId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerSegmentationRender.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/triggerSegmentationRender.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,KAAK,GAEN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,uBAAuB,MAAM,kDAAkD,CAAC;AAcvF,MAAM,2BAA2B;IAAjC;QACU,iBAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;QACtC,uBAAkB,GAAG,KAAK,CAAC;QAC3B,0BAAqB,GAAkB,IAAI,CAAC;QAuD5C,6BAAwB,GAAG,GAAG,EAAE;YACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAGzB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YAE5D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;gBACtC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAGjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAItC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,OAAO;iBACR;aACF;QACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"triggerSegmentationRender.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/triggerSegmentationRender.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
2
|
import { getToolGroup } from '../../store/ToolGroupManager';
|
|
3
3
|
import BrushTool from '../../tools/segmentation/BrushTool';
|
|
4
|
-
import
|
|
4
|
+
import { getBoundingBoxAroundShapeIJK } from '../boundingBox/getBoundingBoxAroundShape';
|
|
5
5
|
export default function getBrushToolInstances(toolGroupId, toolName) {
|
|
6
6
|
const toolGroup = getToolGroup(toolGroupId);
|
|
7
7
|
if (toolGroup === undefined) {
|
|
@@ -34,7 +34,7 @@ export function getVoxelOverlap(imageData, dimensions, voxelSpacing, voxelCenter
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
const voxelCornersIJK = voxelCornersWorld.map((world) => csUtils.transformWorldToIndex(imageData, world));
|
|
37
|
-
const overlapBounds =
|
|
37
|
+
const overlapBounds = getBoundingBoxAroundShapeIJK(voxelCornersIJK, dimensions);
|
|
38
38
|
return overlapBounds;
|
|
39
39
|
}
|
|
40
40
|
export function processVolumes(segmentationVolume, thresholdVolumeInformation) {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { imageLoader, Enums, eventTarget, imageLoadPoolManager, cache, getConfiguration as getCoreConfiguration, } from '@cornerstonejs/core';
|
|
2
2
|
import { addToolState, getToolState } from './state';
|
|
3
3
|
import { getStackData, requestType, priority, clearFromImageIds, getPromiseRemovedHandler, } from './stackPrefetchUtils';
|
|
4
|
-
import roundNumber from '
|
|
4
|
+
import { roundNumber } from '../../utilities';
|
|
5
5
|
let configuration = {
|
|
6
6
|
maxImagesToPrefetch: Infinity,
|
|
7
7
|
minBefore: 2,
|