@cornerstonejs/tools 1.51.5 → 1.53.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/drawingSvg/drawPath.d.ts +11 -0
- package/dist/cjs/drawingSvg/drawPath.js +55 -0
- package/dist/cjs/drawingSvg/drawPath.js.map +1 -0
- package/dist/cjs/drawingSvg/drawPolyline.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawPolyline.js +3 -11
- package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/cjs/drawingSvg/index.d.ts +2 -1
- package/dist/cjs/drawingSvg/index.js +3 -1
- package/dist/cjs/drawingSvg/index.js.map +1 -1
- package/dist/cjs/enums/ChangeTypes.d.ts +2 -1
- package/dist/cjs/enums/ChangeTypes.js +1 -0
- package/dist/cjs/enums/ChangeTypes.js.map +1 -1
- package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js +1 -1
- package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
- package/dist/cjs/eventDispatchers/shared/getActiveToolForMouseEvent.js.map +1 -1
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +1 -1
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +165 -78
- package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/annotationState.d.ts +6 -1
- package/dist/cjs/stateManagement/annotation/annotationState.js +49 -1
- package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -2
- package/dist/cjs/stateManagement/annotation/helpers/state.js +16 -4
- package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -1
- package/dist/cjs/stateManagement/index.d.ts +6 -1
- package/dist/cjs/stateManagement/index.js +6 -1
- package/dist/cjs/stateManagement/index.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +3 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +3 -2
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/tools/SegmentationIntersectionTool.js +1 -1
- package/dist/cjs/tools/SegmentationIntersectionTool.js.map +1 -1
- package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.d.ts +4 -0
- package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.js +82 -0
- package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.js.map +1 -1
- package/dist/cjs/tools/annotation/LivewireContourTool.d.ts +13 -11
- package/dist/cjs/tools/annotation/LivewireContourTool.js +78 -65
- package/dist/cjs/tools/annotation/LivewireContourTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +3 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/SplineROITool.d.ts +6 -3
- package/dist/cjs/tools/annotation/SplineROITool.js +40 -21
- package/dist/cjs/tools/annotation/SplineROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +12 -7
- package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +24 -18
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js +16 -10
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js +19 -7
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
- package/dist/cjs/tools/annotation/splines/LinearSpline.js +1 -1
- package/dist/cjs/tools/annotation/splines/LinearSpline.js.map +1 -1
- package/dist/cjs/tools/annotation/splines/Spline.d.ts +2 -0
- package/dist/cjs/tools/annotation/splines/Spline.js +7 -3
- package/dist/cjs/tools/annotation/splines/Spline.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
- package/dist/cjs/tools/base/ContourBaseTool.d.ts +1 -0
- package/dist/cjs/tools/base/ContourBaseTool.js +18 -1
- package/dist/cjs/tools/base/ContourBaseTool.js.map +1 -1
- package/dist/cjs/tools/base/ContourSegmentationBaseTool.js +4 -0
- package/dist/cjs/tools/base/ContourSegmentationBaseTool.js.map +1 -1
- package/dist/cjs/tools/displayTools/Contour/contourConfig.js +1 -0
- package/dist/cjs/tools/displayTools/Contour/contourConfig.js.map +1 -1
- package/dist/cjs/types/AnnotationTypes.d.ts +2 -0
- package/dist/cjs/types/ContourAnnotation.d.ts +6 -0
- package/dist/cjs/types/ContourAnnotation.js +7 -0
- package/dist/cjs/types/ContourAnnotation.js.map +1 -1
- package/dist/cjs/types/ContourSegmentationAnnotation.d.ts +8 -0
- package/dist/cjs/types/ContourTypes.d.ts +1 -0
- package/dist/cjs/types/EventTypes.d.ts +4 -1
- package/dist/cjs/types/ISpline.d.ts +1 -0
- package/dist/cjs/types/InterpolationTypes.d.ts +2 -0
- package/dist/cjs/types/SplineProps.d.ts +1 -0
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +2 -5
- package/dist/cjs/utilities/contours/getContourHolesDataCanvas.d.ts +3 -0
- package/dist/cjs/utilities/contours/getContourHolesDataCanvas.js +21 -0
- package/dist/cjs/utilities/contours/getContourHolesDataCanvas.js.map +1 -0
- package/dist/cjs/utilities/contours/getContourHolesDataWorld.d.ts +3 -0
- package/dist/cjs/utilities/contours/getContourHolesDataWorld.js +10 -0
- package/dist/cjs/utilities/contours/getContourHolesDataWorld.js.map +1 -0
- package/dist/cjs/utilities/contours/index.d.ts +4 -1
- package/dist/cjs/utilities/contours/index.js +7 -1
- package/dist/cjs/utilities/contours/index.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/createPolylineToolData.js +2 -1
- package/dist/cjs/utilities/contours/interpolation/createPolylineToolData.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/findAnnotationForInterpolation.js +2 -1
- package/dist/cjs/utilities/contours/interpolation/findAnnotationForInterpolation.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/getInterpolationData.js +3 -1
- package/dist/cjs/utilities/contours/interpolation/getInterpolationData.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/interpolate.d.ts +8 -0
- package/dist/cjs/utilities/contours/interpolation/interpolate.js +56 -42
- package/dist/cjs/utilities/contours/interpolation/interpolate.js.map +1 -1
- package/dist/cjs/utilities/contours/interpolation/selectHandles.d.ts +4 -0
- package/dist/cjs/utilities/contours/interpolation/selectHandles.js +170 -0
- package/dist/cjs/utilities/contours/interpolation/selectHandles.js.map +1 -0
- package/dist/cjs/utilities/contours/updateContourPolyline.d.ts +10 -0
- package/dist/cjs/utilities/contours/updateContourPolyline.js +64 -0
- package/dist/cjs/utilities/contours/updateContourPolyline.js.map +1 -0
- package/dist/cjs/utilities/livewire/LivewireScissors.d.ts +2 -1
- package/dist/cjs/utilities/livewire/LivewireScissors.js +46 -24
- package/dist/cjs/utilities/livewire/LivewireScissors.js.map +1 -1
- package/dist/cjs/utilities/math/polyline/containsPoints.d.ts +2 -0
- package/dist/cjs/utilities/math/polyline/containsPoints.js +16 -0
- package/dist/cjs/utilities/math/polyline/containsPoints.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/getWindingDirection.d.ts +2 -0
- package/dist/cjs/utilities/math/polyline/getWindingDirection.js +12 -0
- package/dist/cjs/utilities/math/polyline/getWindingDirection.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/index.d.ts +3 -1
- package/dist/cjs/utilities/math/polyline/index.js +5 -1
- package/dist/cjs/utilities/math/polyline/index.js.map +1 -1
- package/dist/cjs/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +1 -0
- package/dist/cjs/utilities/segmentation/InterpolationManager/InterpolationManager.js +13 -3
- package/dist/cjs/utilities/segmentation/InterpolationManager/InterpolationManager.js.map +1 -1
- package/dist/esm/drawingSvg/drawPath.js +49 -0
- package/dist/esm/drawingSvg/drawPath.js.map +1 -0
- package/dist/esm/drawingSvg/drawPolyline.js +3 -11
- package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/esm/drawingSvg/index.js +2 -1
- package/dist/esm/drawingSvg/index.js.map +1 -1
- package/dist/esm/enums/ChangeTypes.js +1 -0
- package/dist/esm/enums/ChangeTypes.js.map +1 -1
- package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +1 -1
- package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
- package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js.map +1 -1
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +106 -32
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
- package/dist/esm/stateManagement/annotation/annotationState.js +42 -1
- package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
- package/dist/esm/stateManagement/annotation/helpers/state.js +15 -4
- package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -1
- package/dist/esm/stateManagement/index.js +2 -2
- package/dist/esm/stateManagement/index.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +3 -2
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/tools/SegmentationIntersectionTool.js +1 -1
- package/dist/esm/tools/SegmentationIntersectionTool.js.map +1 -1
- package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js +81 -0
- package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js.map +1 -1
- package/dist/esm/tools/annotation/LivewireContourTool.js +80 -67
- package/dist/esm/tools/annotation/LivewireContourTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +3 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
- package/dist/esm/tools/annotation/SplineROITool.js +40 -22
- package/dist/esm/tools/annotation/SplineROITool.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +12 -7
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +25 -19
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +16 -10
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +20 -8
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
- package/dist/esm/tools/annotation/splines/LinearSpline.js +1 -1
- package/dist/esm/tools/annotation/splines/LinearSpline.js.map +1 -1
- package/dist/esm/tools/annotation/splines/Spline.js +5 -1
- package/dist/esm/tools/annotation/splines/Spline.js.map +1 -1
- package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
- package/dist/esm/tools/base/ContourBaseTool.js +20 -3
- package/dist/esm/tools/base/ContourBaseTool.js.map +1 -1
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js +4 -0
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js.map +1 -1
- package/dist/esm/tools/displayTools/Contour/contourConfig.js +1 -0
- package/dist/esm/tools/displayTools/Contour/contourConfig.js.map +1 -1
- package/dist/esm/types/ContourAnnotation.js +6 -1
- package/dist/esm/types/ContourAnnotation.js.map +1 -1
- package/dist/esm/utilities/contours/getContourHolesDataCanvas.js +15 -0
- package/dist/esm/utilities/contours/getContourHolesDataCanvas.js.map +1 -0
- package/dist/esm/utilities/contours/getContourHolesDataWorld.js +6 -0
- package/dist/esm/utilities/contours/getContourHolesDataWorld.js.map +1 -0
- package/dist/esm/utilities/contours/index.js +4 -1
- package/dist/esm/utilities/contours/index.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/createPolylineToolData.js +2 -1
- package/dist/esm/utilities/contours/interpolation/createPolylineToolData.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.js +2 -1
- package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/getInterpolationData.js +3 -1
- package/dist/esm/utilities/contours/interpolation/getInterpolationData.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/interpolate.js +57 -43
- package/dist/esm/utilities/contours/interpolation/interpolate.js.map +1 -1
- package/dist/esm/utilities/contours/interpolation/selectHandles.js +164 -0
- package/dist/esm/utilities/contours/interpolation/selectHandles.js.map +1 -0
- package/dist/esm/utilities/contours/updateContourPolyline.js +38 -0
- package/dist/esm/utilities/contours/updateContourPolyline.js.map +1 -0
- package/dist/esm/utilities/livewire/LivewireScissors.js +46 -24
- package/dist/esm/utilities/livewire/LivewireScissors.js.map +1 -1
- package/dist/esm/utilities/math/polyline/containsPoints.js +10 -0
- package/dist/esm/utilities/math/polyline/containsPoints.js.map +1 -0
- package/dist/esm/utilities/math/polyline/getWindingDirection.js +6 -0
- package/dist/esm/utilities/math/polyline/getWindingDirection.js.map +1 -0
- package/dist/esm/utilities/math/polyline/index.js +3 -1
- package/dist/esm/utilities/math/polyline/index.js.map +1 -1
- package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js +13 -3
- package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js.map +1 -1
- package/dist/types/drawingSvg/drawPath.d.ts +12 -0
- package/dist/types/drawingSvg/drawPath.d.ts.map +1 -0
- package/dist/types/drawingSvg/drawPolyline.d.ts +1 -1
- package/dist/types/drawingSvg/drawPolyline.d.ts.map +1 -1
- package/dist/types/drawingSvg/index.d.ts +2 -1
- package/dist/types/drawingSvg/index.d.ts.map +1 -1
- package/dist/types/enums/ChangeTypes.d.ts +2 -1
- package/dist/types/enums/ChangeTypes.d.ts.map +1 -1
- package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +1 -1
- package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts.map +1 -1
- package/dist/types/stateManagement/annotation/annotationState.d.ts +6 -1
- package/dist/types/stateManagement/annotation/annotationState.d.ts.map +1 -1
- package/dist/types/stateManagement/annotation/helpers/state.d.ts +4 -2
- package/dist/types/stateManagement/annotation/helpers/state.d.ts.map +1 -1
- package/dist/types/stateManagement/index.d.ts +6 -1
- package/dist/types/store/ToolGroupManager/ToolGroup.d.ts +3 -1
- package/dist/types/store/ToolGroupManager/ToolGroup.d.ts.map +1 -1
- package/dist/types/tools/annotation/LivewireContourSegmentationTool.d.ts +4 -0
- package/dist/types/tools/annotation/LivewireContourSegmentationTool.d.ts.map +1 -1
- package/dist/types/tools/annotation/LivewireContourTool.d.ts +13 -11
- package/dist/types/tools/annotation/LivewireContourTool.d.ts.map +1 -1
- package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts.map +1 -1
- package/dist/types/tools/annotation/SplineROITool.d.ts +6 -3
- package/dist/types/tools/annotation/SplineROITool.d.ts.map +1 -1
- package/dist/types/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts.map +1 -1
- package/dist/types/tools/annotation/planarFreehandROITool/drawLoop.d.ts.map +1 -1
- package/dist/types/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts.map +1 -1
- package/dist/types/tools/annotation/planarFreehandROITool/renderMethods.d.ts.map +1 -1
- package/dist/types/tools/annotation/splines/Spline.d.ts +2 -0
- package/dist/types/tools/annotation/splines/Spline.d.ts.map +1 -1
- package/dist/types/tools/base/AnnotationTool.d.ts.map +1 -1
- package/dist/types/tools/base/ContourBaseTool.d.ts +1 -0
- package/dist/types/tools/base/ContourBaseTool.d.ts.map +1 -1
- package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts.map +1 -1
- package/dist/types/tools/displayTools/Contour/contourConfig.d.ts.map +1 -1
- package/dist/types/types/AnnotationTypes.d.ts +2 -0
- package/dist/types/types/AnnotationTypes.d.ts.map +1 -1
- package/dist/types/types/ContourAnnotation.d.ts +6 -0
- package/dist/types/types/ContourAnnotation.d.ts.map +1 -1
- package/dist/types/types/ContourSegmentationAnnotation.d.ts +8 -0
- package/dist/types/types/ContourSegmentationAnnotation.d.ts.map +1 -1
- package/dist/types/types/ContourTypes.d.ts +1 -0
- package/dist/types/types/ContourTypes.d.ts.map +1 -1
- package/dist/types/types/EventTypes.d.ts +4 -1
- package/dist/types/types/EventTypes.d.ts.map +1 -1
- package/dist/types/types/ISpline.d.ts +1 -0
- package/dist/types/types/ISpline.d.ts.map +1 -1
- package/dist/types/types/InterpolationTypes.d.ts +2 -0
- package/dist/types/types/InterpolationTypes.d.ts.map +1 -1
- package/dist/types/types/SplineProps.d.ts +1 -0
- package/dist/types/types/SplineProps.d.ts.map +1 -1
- package/dist/types/types/ToolSpecificAnnotationTypes.d.ts +2 -5
- package/dist/types/types/ToolSpecificAnnotationTypes.d.ts.map +1 -1
- package/dist/types/utilities/contours/getContourHolesDataCanvas.d.ts +4 -0
- package/dist/types/utilities/contours/getContourHolesDataCanvas.d.ts.map +1 -0
- package/dist/types/utilities/contours/getContourHolesDataWorld.d.ts +4 -0
- package/dist/types/utilities/contours/getContourHolesDataWorld.d.ts.map +1 -0
- package/dist/types/utilities/contours/index.d.ts +4 -1
- package/dist/types/utilities/contours/index.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/acceptAutogeneratedInterpolations.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/createPolylineToolData.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/findAnnotationForInterpolation.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/getInterpolationData.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/interpolate.d.ts +8 -0
- package/dist/types/utilities/contours/interpolation/interpolate.d.ts.map +1 -1
- package/dist/types/utilities/contours/interpolation/selectHandles.d.ts +5 -0
- package/dist/types/utilities/contours/interpolation/selectHandles.d.ts.map +1 -0
- package/dist/types/utilities/contours/updateContourPolyline.d.ts +11 -0
- package/dist/types/utilities/contours/updateContourPolyline.d.ts.map +1 -0
- package/dist/types/utilities/livewire/LivewireScissors.d.ts +2 -1
- package/dist/types/utilities/livewire/LivewireScissors.d.ts.map +1 -1
- package/dist/types/utilities/math/polyline/containsPoints.d.ts +3 -0
- package/dist/types/utilities/math/polyline/containsPoints.d.ts.map +1 -0
- package/dist/types/utilities/math/polyline/getWindingDirection.d.ts +3 -0
- package/dist/types/utilities/math/polyline/getWindingDirection.d.ts.map +1 -0
- package/dist/types/utilities/math/polyline/index.d.ts +3 -1
- package/dist/types/utilities/math/polyline/index.d.ts.map +1 -1
- package/dist/types/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +1 -0
- package/dist/types/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/InterpolationManager/InterpolationManager.d.ts.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/drawingSvg/drawPath.ts +96 -0
- package/src/drawingSvg/drawPolyline.ts +13 -17
- package/src/drawingSvg/index.ts +2 -0
- package/src/enums/ChangeTypes.ts +4 -0
- package/src/eventDispatchers/keyboardEventHandlers/keyDown.ts +1 -1
- package/src/eventDispatchers/shared/getActiveToolForMouseEvent.ts +1 -1
- package/src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts +194 -58
- package/src/stateManagement/annotation/annotationState.ts +101 -0
- package/src/stateManagement/annotation/helpers/state.ts +33 -3
- package/src/stateManagement/index.js +10 -0
- package/src/store/ToolGroupManager/ToolGroup.ts +9 -2
- package/src/tools/SegmentationIntersectionTool.ts +1 -1
- package/src/tools/annotation/LivewireContourSegmentationTool.ts +151 -0
- package/src/tools/annotation/LivewireContourTool.ts +172 -114
- package/src/tools/annotation/PlanarFreehandROITool.ts +13 -3
- package/src/tools/annotation/SplineROITool.ts +78 -31
- package/src/tools/annotation/planarFreehandROITool/closedContourEditLoop.ts +20 -11
- package/src/tools/annotation/planarFreehandROITool/drawLoop.ts +40 -21
- package/src/tools/annotation/planarFreehandROITool/openContourEditLoop.ts +28 -13
- package/src/tools/annotation/planarFreehandROITool/renderMethods.ts +28 -10
- package/src/tools/annotation/splines/LinearSpline.ts +1 -1
- package/src/tools/annotation/splines/Spline.ts +13 -1
- package/src/tools/base/AnnotationTool.ts +1 -0
- package/src/tools/base/ContourBaseTool.ts +45 -3
- package/src/tools/base/ContourSegmentationBaseTool.ts +6 -0
- package/src/tools/displayTools/Contour/contourConfig.ts +1 -0
- package/src/types/AnnotationTypes.ts +14 -0
- package/src/types/ContourAnnotation.ts +13 -0
- package/src/types/ContourSegmentationAnnotation.ts +38 -0
- package/src/types/ContourTypes.ts +3 -0
- package/src/types/EventTypes.ts +9 -0
- package/src/types/ISpline.ts +3 -0
- package/src/types/InterpolationTypes.ts +6 -0
- package/src/types/SplineProps.ts +10 -0
- package/src/types/ToolSpecificAnnotationTypes.ts +7 -5
- package/src/utilities/contours/getContourHolesDataCanvas.ts +33 -0
- package/src/utilities/contours/getContourHolesDataWorld.ts +19 -0
- package/src/utilities/contours/index.ts +6 -0
- package/src/utilities/contours/interpolation/acceptAutogeneratedInterpolations.ts +3 -1
- package/src/utilities/contours/interpolation/createPolylineToolData.ts +7 -1
- package/src/utilities/contours/interpolation/findAnnotationForInterpolation.ts +2 -1
- package/src/utilities/contours/interpolation/getInterpolationData.ts +3 -1
- package/src/utilities/contours/interpolation/interpolate.ts +94 -75
- package/src/utilities/contours/interpolation/selectHandles.ts +240 -0
- package/src/utilities/contours/updateContourPolyline.ts +74 -0
- package/src/utilities/livewire/LivewireScissors.ts +65 -53
- package/src/utilities/math/polyline/containsPoint.ts +1 -1
- package/src/utilities/math/polyline/containsPoints.ts +22 -0
- package/src/utilities/math/polyline/getWindingDirection.ts +14 -0
- package/src/utilities/math/polyline/index.ts +4 -0
- package/src/utilities/math/polyline/planarFreehandROIInternalTypes.ts +1 -0
- package/src/utilities/segmentation/InterpolationManager/InterpolationManager.ts +39 -4
- package/dist/cjs/utilities/contours/PointsArray.d.ts +0 -29
- package/dist/cjs/utilities/contours/PointsArray.js +0 -104
- package/dist/cjs/utilities/contours/PointsArray.js.map +0 -1
- package/dist/esm/utilities/contours/PointsArray.js +0 -98
- package/dist/esm/utilities/contours/PointsArray.js.map +0 -1
- package/dist/types/utilities/contours/PointsArray.d.ts +0 -30
- package/dist/types/utilities/contours/PointsArray.d.ts.map +0 -1
- package/src/utilities/contours/PointsArray.ts +0 -165
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterpolationManager.js","sourceRoot":"","sources":["../../../../../src/utilities/segmentation/InterpolationManager/InterpolationManager.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA2D;AAO3D,oEAA+E;AAE/E,iIAAyG;AAKzG,2FAAmE;AACnE,0FAAkE;AAElE,6EAAqD;AACrD,8FAAsE;AAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAO,CAAC;AAE3B,MAAqB,oBAAoB;IAGvC,MAAM,CAAC,OAAO,CAAC,QAAgB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"InterpolationManager.js","sourceRoot":"","sources":["../../../../../src/utilities/segmentation/InterpolationManager/InterpolationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _getHash from './_getHash';
|
|
2
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
3
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
4
|
+
export default function drawPath(svgDrawingHelper, annotationUID, pathUID, points, options) {
|
|
5
|
+
const hasSubArrays = points.length && points[0].length && Array.isArray(points[0][0]);
|
|
6
|
+
const pointsArrays = hasSubArrays ? points : [points];
|
|
7
|
+
const { color = 'dodgerblue', width = 10, fillColor = 'none', fillOpacity = 0, lineWidth, lineDash, closePath = false, } = options;
|
|
8
|
+
const strokeWidth = lineWidth || width;
|
|
9
|
+
const svgns = 'http://www.w3.org/2000/svg';
|
|
10
|
+
const svgNodeHash = _getHash(annotationUID, 'path', pathUID);
|
|
11
|
+
const existingNode = svgDrawingHelper.getSvgNode(svgNodeHash);
|
|
12
|
+
let pointsAttribute = '';
|
|
13
|
+
for (let i = 0, numArrays = pointsArrays.length; i < numArrays; i++) {
|
|
14
|
+
const points = pointsArrays[i];
|
|
15
|
+
const numPoints = points.length;
|
|
16
|
+
if (numPoints < 2) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
for (let j = 0; j < numPoints; j++) {
|
|
20
|
+
const point = points[j];
|
|
21
|
+
const cmd = j ? 'L' : 'M';
|
|
22
|
+
pointsAttribute += `${cmd} ${point[0]},${point[1]} `;
|
|
23
|
+
}
|
|
24
|
+
if (closePath) {
|
|
25
|
+
pointsAttribute += 'Z ';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!pointsAttribute) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const attributes = {
|
|
32
|
+
d: pointsAttribute,
|
|
33
|
+
stroke: color,
|
|
34
|
+
fill: fillColor,
|
|
35
|
+
'fill-opacity': fillOpacity,
|
|
36
|
+
'stroke-width': strokeWidth,
|
|
37
|
+
'stroke-dasharray': lineDash,
|
|
38
|
+
};
|
|
39
|
+
if (existingNode) {
|
|
40
|
+
setAttributesIfNecessary(attributes, existingNode);
|
|
41
|
+
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const newNode = document.createElementNS(svgns, 'path');
|
|
45
|
+
setNewAttributesIfValid(attributes, newNode);
|
|
46
|
+
svgDrawingHelper.appendNode(newNode, svgNodeHash);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=drawPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawPath.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawPath.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AASlE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,gBAAkC,EAClC,aAAqB,EACrB,OAAe,EACf,MAAyC,EACzC,OAQC;IAID,MAAM,YAAY,GAChB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EACJ,KAAK,GAAG,YAAY,EACpB,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,MAAM,EAClB,WAAW,GAAG,CAAC,EACf,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,KAAK,GAClB,GAAG,OAAO,CAAC;IAGZ,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAEhC,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,SAAS;SACV;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAE1B,eAAe,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;SACtD;QAED,IAAI,SAAS,EAAE;YACb,eAAe,IAAI,IAAI,CAAC;SACzB;KACF;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;KACR;IAED,MAAM,UAAU,GAAG;QACjB,CAAC,EAAE,eAAe;QAClB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE;QAEhB,wBAAwB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAEnD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAExD,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7C,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACnD;AACH,CAAC"}
|
|
@@ -5,24 +5,16 @@ export default function drawPolyline(svgDrawingHelper, annotationUID, polylineUI
|
|
|
5
5
|
if (points.length < 2) {
|
|
6
6
|
return;
|
|
7
7
|
}
|
|
8
|
-
const {
|
|
9
|
-
color: 'dodgerblue',
|
|
10
|
-
width: '2',
|
|
11
|
-
fillColor: 'none',
|
|
12
|
-
fillOpacity: 0,
|
|
13
|
-
lineWidth: undefined,
|
|
14
|
-
lineDash: undefined,
|
|
15
|
-
connectLastToFirst: false,
|
|
16
|
-
}, options);
|
|
8
|
+
const { color = 'dodgerblue', width = 10, fillColor = 'none', fillOpacity = 0, lineWidth, lineDash, closePath = false, } = options;
|
|
17
9
|
const strokeWidth = lineWidth || width;
|
|
18
10
|
const svgns = 'http://www.w3.org/2000/svg';
|
|
19
11
|
const svgNodeHash = _getHash(annotationUID, 'polyline', polylineUID);
|
|
20
12
|
const existingPolyLine = svgDrawingHelper.getSvgNode(svgNodeHash);
|
|
21
13
|
let pointsAttribute = '';
|
|
22
14
|
for (const point of points) {
|
|
23
|
-
pointsAttribute += `${point[0]}, ${point[1]} `;
|
|
15
|
+
pointsAttribute += `${point[0].toFixed(1)}, ${point[1].toFixed(1)} `;
|
|
24
16
|
}
|
|
25
|
-
if (
|
|
17
|
+
if (closePath) {
|
|
26
18
|
const firstPoint = points[0];
|
|
27
19
|
pointsAttribute += `${firstPoint[0]}, ${firstPoint[1]}`;
|
|
28
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawPolyline.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawPolyline.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AASlE,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,gBAAkC,EAClC,aAAqB,EACrB,WAAmB,EACnB,MAAsB,EACtB,OAQC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,OAAO;KACR;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"drawPolyline.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawPolyline.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AASlE,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,gBAAkC,EAClC,aAAqB,EACrB,WAAmB,EACnB,MAAsB,EACtB,OAQC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,OAAO;KACR;IAED,MAAM,EACJ,KAAK,GAAG,YAAY,EACpB,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,MAAM,EAClB,WAAW,GAAG,CAAC,EACf,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,KAAK,GAClB,GAAG,OAAO,CAAC;IAGZ,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAElE,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,eAAe,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;KACtE;IAED,IAAI,SAAS,EAAE;QACb,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7B,eAAe,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD;IAED,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,IAAI,gBAAgB,EAAE;QAEpB,wBAAwB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAEvD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEhE,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEjD,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;KACvD;AACH,CAAC"}
|
|
@@ -6,6 +6,7 @@ import drawHandles from './drawHandles';
|
|
|
6
6
|
import drawHandle from './drawHandle';
|
|
7
7
|
import drawLine from './drawLine';
|
|
8
8
|
import drawPolyline from './drawPolyline';
|
|
9
|
+
import drawPath from './drawPath';
|
|
9
10
|
import drawLinkedTextBox from './drawLinkedTextBox';
|
|
10
11
|
import drawRect from './drawRect';
|
|
11
12
|
import drawTextBox from './drawTextBox';
|
|
@@ -13,5 +14,5 @@ import drawArrow from './drawArrow';
|
|
|
13
14
|
import drawRedactionRect from './drawRedactionRect';
|
|
14
15
|
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
15
16
|
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
16
|
-
export { draw, drawCircle, drawEllipse, drawEllipseByCoordinates, drawHandles, drawHandle, drawLine, drawPolyline, drawLinkedTextBox, drawRect, drawTextBox, drawArrow, drawRedactionRect, setAttributesIfNecessary, setNewAttributesIfValid, };
|
|
17
|
+
export { draw, drawCircle, drawEllipse, drawEllipseByCoordinates, drawHandles, drawHandle, drawLine, drawPolyline, drawPath, drawLinkedTextBox, drawRect, drawTextBox, drawArrow, drawRedactionRect, setAttributesIfNecessary, setNewAttributesIfValid, };
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawingSvg/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EACL,IAAI,EACJ,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawingSvg/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EACL,IAAI,EACJ,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GACxB,CAAC"}
|
|
@@ -5,6 +5,7 @@ var ChangeTypes;
|
|
|
5
5
|
ChangeTypes["StatsUpdated"] = "StatsUpdated";
|
|
6
6
|
ChangeTypes["InitialSetup"] = "InitialSetup";
|
|
7
7
|
ChangeTypes["Completed"] = "Completed";
|
|
8
|
+
ChangeTypes["InterpolationUpdated"] = "InterpolationUpdated";
|
|
8
9
|
})(ChangeTypes || (ChangeTypes = {}));
|
|
9
10
|
export default ChangeTypes;
|
|
10
11
|
//# sourceMappingURL=ChangeTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeTypes.js","sourceRoot":"","sources":["../../../src/enums/ChangeTypes.ts"],"names":[],"mappings":"AAIA,IAAK,
|
|
1
|
+
{"version":3,"file":"ChangeTypes.js","sourceRoot":"","sources":["../../../src/enums/ChangeTypes.ts"],"names":[],"mappings":"AAIA,IAAK,WA6BJ;AA7BD,WAAK,WAAW;IAKd,0CAA2B,CAAA;IAI3B,gDAAiC,CAAA;IAMjC,4CAA6B,CAAA;IAK7B,4CAA6B,CAAA;IAI7B,sCAAuB,CAAA;IAIvB,4DAA6C,CAAA;AAC/C,CAAC,EA7BI,WAAW,KAAX,WAAW,QA6Bf;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -19,7 +19,7 @@ export default function keyDown(evt) {
|
|
|
19
19
|
const { element } = evt.detail;
|
|
20
20
|
for (const [key, value] of [...activeToolsWithEventBinding.entries()]) {
|
|
21
21
|
const method = typeof value.method === 'function' ? value.method : key[value.method];
|
|
22
|
-
method.call(key, element, value);
|
|
22
|
+
method.call(key, element, value, evt);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyDown.js","sourceRoot":"","sources":["../../../../src/eventDispatchers/keyboardEventHandlers/keyDown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,6BAA6B,MAAM,yCAAyC,CAAC;AACpF,OAAO,mCAAmC,MAAM,gDAAgD,CAAC;AAEjG,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAO9C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,GAAqB;IAEnD,MAAM,UAAU,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEtD,IAAI,UAAU,EAAE;QACd,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAErD,MAAM,SAAS,GAAG,gBAAgB,CAAC,uBAAuB,CACxD,UAAU,EACV,iBAAiB,CAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzD,SAAS,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;SAClD;KACF;IAED,MAAM,2BAA2B,GAAG,mCAAmC,CAAC,GAAG,EAAE;QAC3E,SAAS,CAAC,MAAM;KACjB,CAAC,CAAC;IAEH,IAAI,2BAA2B,EAAE,IAAI,EAAE;QACrC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,OAAO,EAAE,CAAC,EAAE;YAKrE,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"keyDown.js","sourceRoot":"","sources":["../../../../src/eventDispatchers/keyboardEventHandlers/keyDown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,6BAA6B,MAAM,yCAAyC,CAAC;AACpF,OAAO,mCAAmC,MAAM,gDAAgD,CAAC;AAEjG,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAO9C,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,GAAqB;IAEnD,MAAM,UAAU,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEtD,IAAI,UAAU,EAAE;QACd,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAErD,MAAM,SAAS,GAAG,gBAAgB,CAAC,uBAAuB,CACxD,UAAU,EACV,iBAAiB,CAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzD,SAAS,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;SAClD;KACF;IAED,MAAM,2BAA2B,GAAG,mCAAmC,CAAC,GAAG,EAAE;QAC3E,SAAS,CAAC,MAAM;KACjB,CAAC,CAAC;IAEH,IAAI,2BAA2B,EAAE,IAAI,EAAE;QACrC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,OAAO,EAAE,CAAC,EAAE;YAKrE,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SACvC;KACF;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActiveToolForMouseEvent.js","sourceRoot":"","sources":["../../../../src/eventDispatchers/shared/getActiveToolForMouseEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"getActiveToolForMouseEvent.js","sourceRoot":"","sources":["../../../../src/eventDispatchers/shared/getActiveToolForMouseEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;AAW7B,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,GAAwC;IAGxC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IACrD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAKpC,MAAM,WAAW,GACf,gBAAgB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;IAEpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,uBAAuB,CACxD,UAAU,EACV,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAIpD,MAAM,cAAc,GAClB,WAAW,CAAC,QAAQ,CAAC,MAAM;YAC3B,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACpC,OAAO,CACL,OAAO,CAAC,WAAW;oBACjB,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;oBACzD,OAAO,CAAC,WAAW,KAAK,WAAW,CACpC,CAAC;YACJ,CAAC,CAAC,CAAC;QAEL,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,EAAE;YACjD,OAAO,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC5C;KACF;AACH,CAAC"}
|
package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { getEnabledElement, utilities as csUtils, } from '@cornerstonejs/core';
|
|
2
2
|
import { getViewportForAnnotation, math, triggerAnnotationRenderForViewportIds, } from '../../../utilities';
|
|
3
3
|
import { getViewportIdsWithToolToRender } from '../../../utilities/viewportFilters';
|
|
4
|
-
import { getAnnotations, addAnnotation, removeAnnotation, } from '../../../stateManagement/annotation/annotationState';
|
|
4
|
+
import { getAnnotations, addAnnotation, removeAnnotation, getChildAnnotations, addChildAnnotation, clearParentAnnotation, } from '../../../stateManagement/annotation/annotationState';
|
|
5
5
|
import * as contourUtils from '../../../utilities/contours';
|
|
6
6
|
import * as contourSegUtils from '../../../utilities/contourSegmentation';
|
|
7
7
|
import { ToolGroupManager, hasTool as cstHasTool } from '../../../store';
|
|
8
8
|
import { PlanarFreehandContourSegmentationTool } from '../../../tools';
|
|
9
|
+
import { ContourWindingDirection } from '../../../types/ContourAnnotation';
|
|
9
10
|
const DEFAULT_CONTOUR_SEG_TOOLNAME = 'PlanarFreehandContourSegmentationTool';
|
|
10
|
-
export default function contourSegmentationCompletedListener(evt) {
|
|
11
|
+
export default async function contourSegmentationCompletedListener(evt) {
|
|
11
12
|
const sourceAnnotation = evt.detail
|
|
12
13
|
.annotation;
|
|
13
14
|
if (!contourSegUtils.isContourSegmentationAnnotation(sourceAnnotation)) {
|
|
@@ -26,8 +27,17 @@ export default function contourSegmentationCompletedListener(evt) {
|
|
|
26
27
|
if (!isFreehandContourSegToolRegistered(viewport)) {
|
|
27
28
|
return;
|
|
28
29
|
}
|
|
29
|
-
const { targetAnnotation, targetPolyline } = targetAnnotationInfo;
|
|
30
|
-
|
|
30
|
+
const { targetAnnotation, targetPolyline, isContourHole } = targetAnnotationInfo;
|
|
31
|
+
if (isContourHole) {
|
|
32
|
+
const { contourHoleProcessingEnabled = false } = evt.detail;
|
|
33
|
+
if (!contourHoleProcessingEnabled) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
createPolylineHole(viewport, targetAnnotation, sourceAnnotation);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline);
|
|
40
|
+
}
|
|
31
41
|
}
|
|
32
42
|
function isFreehandContourSegToolRegistered(viewport) {
|
|
33
43
|
const { toolName } = PlanarFreehandContourSegmentationTool;
|
|
@@ -54,17 +64,12 @@ function convertContourPolylineToCanvasSpace(polyline, viewport) {
|
|
|
54
64
|
}
|
|
55
65
|
return projectedPolyline;
|
|
56
66
|
}
|
|
57
|
-
function convertPolylineToWorldSpace(polyline, viewport) {
|
|
58
|
-
const numPoints = polyline.length;
|
|
59
|
-
const projectedPolyline = new Array(numPoints);
|
|
60
|
-
for (let i = 0; i < numPoints; i++) {
|
|
61
|
-
projectedPolyline[i] = viewport.canvasToWorld(polyline[i]);
|
|
62
|
-
}
|
|
63
|
-
return projectedPolyline;
|
|
64
|
-
}
|
|
65
67
|
function getValidContourSegmentationAnnotations(sourceAnnotation) {
|
|
66
68
|
const { annotationUID: sourceAnnotationUID } = sourceAnnotation;
|
|
67
69
|
const { FrameOfReferenceUID } = sourceAnnotation.metadata;
|
|
70
|
+
if (!FrameOfReferenceUID) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
68
73
|
const toolName = undefined;
|
|
69
74
|
const annotationsGroups = getAnnotations(toolName, FrameOfReferenceUID);
|
|
70
75
|
const toolNames = Object.keys(annotationsGroups);
|
|
@@ -83,37 +88,90 @@ function findIntersectingContour(viewport, sourcePolyline, contourSegmentationAn
|
|
|
83
88
|
const targetAnnotation = contourSegmentationAnnotations[i];
|
|
84
89
|
const targetPolyline = convertContourPolylineToCanvasSpace(targetAnnotation.data.contour.polyline, viewport);
|
|
85
90
|
const targetAABB = math.polyline.getAABB(targetPolyline);
|
|
86
|
-
const
|
|
91
|
+
const aabbIntersect = math.aabb.intersectAABB(sourceAABB, targetAABB);
|
|
92
|
+
const lineSegmentsIntersect = aabbIntersect &&
|
|
87
93
|
math.polyline.intersectPolyline(sourcePolyline, targetPolyline);
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
const isContourHole = aabbIntersect &&
|
|
95
|
+
!lineSegmentsIntersect &&
|
|
96
|
+
math.polyline.containsPoints(targetPolyline, sourcePolyline);
|
|
97
|
+
if (lineSegmentsIntersect || isContourHole) {
|
|
98
|
+
return { targetAnnotation, targetPolyline, isContourHole };
|
|
90
99
|
}
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
|
-
function
|
|
102
|
+
function createPolylineHole(viewport, targetAnnotation, holeAnnotation) {
|
|
103
|
+
const { windingDirection: targetWindingDirection } = targetAnnotation.data.contour;
|
|
104
|
+
const { windingDirection: holeWindingDirection } = holeAnnotation.data.contour;
|
|
105
|
+
if (targetWindingDirection === holeWindingDirection) {
|
|
106
|
+
holeAnnotation.data.contour.polyline.reverse();
|
|
107
|
+
holeAnnotation.data.contour.windingDirection = targetWindingDirection * -1;
|
|
108
|
+
}
|
|
109
|
+
addChildAnnotation(targetAnnotation, holeAnnotation);
|
|
110
|
+
const { element } = viewport;
|
|
111
|
+
const enabledElement = getEnabledElement(element);
|
|
112
|
+
const { renderingEngine } = enabledElement;
|
|
113
|
+
const updatedToolNames = new Set([
|
|
114
|
+
DEFAULT_CONTOUR_SEG_TOOLNAME,
|
|
115
|
+
targetAnnotation.metadata.toolName,
|
|
116
|
+
holeAnnotation.metadata.toolName,
|
|
117
|
+
]);
|
|
118
|
+
for (const toolName of updatedToolNames.values()) {
|
|
119
|
+
const viewportIdsToRender = getViewportIdsWithToolToRender(element, toolName);
|
|
120
|
+
triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function getContourHolesData(viewport, annotation) {
|
|
124
|
+
return getChildAnnotations(annotation).map((holeAnnotation) => {
|
|
125
|
+
const polyline = convertContourPolylineToCanvasSpace(holeAnnotation.data.contour.polyline, viewport);
|
|
126
|
+
return { annotation: holeAnnotation, polyline };
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline) {
|
|
94
130
|
const sourceStartPoint = sourcePolyline[0];
|
|
95
131
|
const mergePolylines = math.polyline.containsPoint(targetPolyline, sourceStartPoint);
|
|
132
|
+
const contourHolesData = getContourHolesData(viewport, targetAnnotation);
|
|
133
|
+
const unassignedContourHolesSet = new Set(contourHolesData);
|
|
134
|
+
const reassignedContourHolesMap = new Map();
|
|
135
|
+
const assignHoleToPolyline = (parentPolyline, holeData) => {
|
|
136
|
+
let holes = reassignedContourHolesMap.get(parentPolyline);
|
|
137
|
+
if (!holes) {
|
|
138
|
+
holes = [];
|
|
139
|
+
reassignedContourHolesMap.set(parentPolyline, holes);
|
|
140
|
+
}
|
|
141
|
+
holes.push(holeData);
|
|
142
|
+
unassignedContourHolesSet.delete(holeData);
|
|
143
|
+
};
|
|
96
144
|
const newPolylines = [];
|
|
97
145
|
if (mergePolylines) {
|
|
98
146
|
const mergedPolyline = math.polyline.mergePolylines(targetPolyline, sourcePolyline);
|
|
99
147
|
newPolylines.push(mergedPolyline);
|
|
148
|
+
Array.from(unassignedContourHolesSet.keys()).forEach((holeData) => assignHoleToPolyline(mergedPolyline, holeData));
|
|
100
149
|
}
|
|
101
150
|
else {
|
|
102
151
|
const subtractedPolylines = math.polyline.subtractPolylines(targetPolyline, sourcePolyline);
|
|
103
|
-
subtractedPolylines.forEach((newPolyline) =>
|
|
152
|
+
subtractedPolylines.forEach((newPolyline) => {
|
|
153
|
+
newPolylines.push(newPolyline);
|
|
154
|
+
Array.from(unassignedContourHolesSet.keys()).forEach((holeData) => {
|
|
155
|
+
const containsHole = math.polyline.containsPoints(newPolyline, holeData.polyline);
|
|
156
|
+
if (containsHole) {
|
|
157
|
+
assignHoleToPolyline(newPolyline, holeData);
|
|
158
|
+
unassignedContourHolesSet.delete(holeData);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
104
162
|
}
|
|
105
|
-
|
|
106
|
-
removeAnnotation(targetAnnotation.annotationUID);
|
|
163
|
+
Array.from(reassignedContourHolesMap.values()).forEach((contourHolesDataArray) => contourHolesDataArray.forEach((contourHoleData) => clearParentAnnotation(contourHoleData.annotation)));
|
|
107
164
|
const { element } = viewport;
|
|
108
165
|
const enabledElement = getEnabledElement(element);
|
|
109
|
-
const { renderingEngine } = enabledElement;
|
|
110
166
|
const { metadata, data } = targetAnnotation;
|
|
111
167
|
const { handles, segmentation } = data;
|
|
112
168
|
const { textBox } = handles;
|
|
169
|
+
removeAnnotation(sourceAnnotation.annotationUID);
|
|
170
|
+
removeAnnotation(targetAnnotation.annotationUID);
|
|
113
171
|
for (let i = 0; i < newPolylines.length; i++) {
|
|
114
|
-
const polyline =
|
|
115
|
-
const startPoint = polyline[0];
|
|
116
|
-
const endPoint = polyline[polyline.length - 1];
|
|
172
|
+
const polyline = newPolylines[i];
|
|
173
|
+
const startPoint = viewport.canvasToWorld(polyline[0]);
|
|
174
|
+
const endPoint = viewport.canvasToWorld(polyline[polyline.length - 1]);
|
|
117
175
|
const newAnnotation = {
|
|
118
176
|
metadata: {
|
|
119
177
|
...metadata,
|
|
@@ -126,7 +184,7 @@ function processContours(viewport, sourceAnnotation, sourcePolyline, targetAnnot
|
|
|
126
184
|
textBox: textBox ? { ...textBox } : undefined,
|
|
127
185
|
},
|
|
128
186
|
contour: {
|
|
129
|
-
polyline,
|
|
187
|
+
polyline: [],
|
|
130
188
|
closed: true,
|
|
131
189
|
},
|
|
132
190
|
segmentation: {
|
|
@@ -139,15 +197,31 @@ function processContours(viewport, sourceAnnotation, sourcePolyline, targetAnnot
|
|
|
139
197
|
isLocked: false,
|
|
140
198
|
isVisible: undefined,
|
|
141
199
|
};
|
|
200
|
+
contourUtils.updateContourPolyline(newAnnotation, {
|
|
201
|
+
points: polyline,
|
|
202
|
+
closed: true,
|
|
203
|
+
targetWindingDirection: ContourWindingDirection.Clockwise,
|
|
204
|
+
}, viewport);
|
|
142
205
|
addAnnotation(newAnnotation, element);
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
206
|
+
reassignedContourHolesMap
|
|
207
|
+
.get(polyline)
|
|
208
|
+
?.forEach((holeData) => addChildAnnotation(newAnnotation, holeData.annotation));
|
|
209
|
+
}
|
|
210
|
+
updateViewports(enabledElement, targetAnnotation, sourceAnnotation);
|
|
211
|
+
}
|
|
212
|
+
function updateViewports(enabledElement, targetAnnotation, sourceAnnotation) {
|
|
213
|
+
const { viewport } = enabledElement;
|
|
214
|
+
const { element } = viewport;
|
|
215
|
+
const { renderingEngine } = enabledElement;
|
|
216
|
+
const updatedTtoolNames = new Set([
|
|
217
|
+
DEFAULT_CONTOUR_SEG_TOOLNAME,
|
|
218
|
+
targetAnnotation.metadata.toolName,
|
|
219
|
+
sourceAnnotation.metadata.toolName,
|
|
220
|
+
]);
|
|
221
|
+
for (const toolName of updatedTtoolNames.values()) {
|
|
222
|
+
const viewportIdsToRender = getViewportIdsWithToolToRender(element, toolName);
|
|
223
|
+
triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
|
|
151
224
|
}
|
|
225
|
+
return new Promise((resolve) => window.requestAnimationFrame(resolve));
|
|
152
226
|
}
|
|
153
227
|
//# sourceMappingURL=contourSegmentationCompleted.js.map
|
package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,SAAS,IAAI,OAAO,GAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,wBAAwB,EACxB,IAAI,EACJ,qCAAqC,GACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,
|
|
1
|
+
{"version":3,"file":"contourSegmentationCompleted.js","sourceRoot":"","sources":["../../../../../src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,37 @@ function getAnnotations(toolName, annotationGroupSelector) {
|
|
|
17
17
|
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
18
18
|
return manager.getAnnotations(groupKey, toolName);
|
|
19
19
|
}
|
|
20
|
+
function clearParentAnnotation(annotation) {
|
|
21
|
+
const { annotationUID: childUID, parentAnnotationUID } = annotation;
|
|
22
|
+
if (!parentAnnotationUID) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const parentAnnotation = getAnnotation(parentAnnotationUID);
|
|
26
|
+
const childUIDIndex = parentAnnotation.childAnnotationUIDs.indexOf(childUID);
|
|
27
|
+
parentAnnotation.childAnnotationUIDs.splice(childUIDIndex, 1);
|
|
28
|
+
annotation.parentAnnotationUID = undefined;
|
|
29
|
+
}
|
|
30
|
+
function addChildAnnotation(parentAnnotation, childAnnotation) {
|
|
31
|
+
const { annotationUID: parentUID } = parentAnnotation;
|
|
32
|
+
const { annotationUID: childUID } = childAnnotation;
|
|
33
|
+
clearParentAnnotation(childAnnotation);
|
|
34
|
+
if (!parentAnnotation.childAnnotationUIDs) {
|
|
35
|
+
parentAnnotation.childAnnotationUIDs = [];
|
|
36
|
+
}
|
|
37
|
+
if (parentAnnotation.childAnnotationUIDs.includes(childUID)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
parentAnnotation.childAnnotationUIDs.push(childUID);
|
|
41
|
+
childAnnotation.parentAnnotationUID = parentUID;
|
|
42
|
+
}
|
|
43
|
+
function getParentAnnotation(annotation) {
|
|
44
|
+
return annotation.parentAnnotationUID
|
|
45
|
+
? getAnnotation(annotation.parentAnnotationUID)
|
|
46
|
+
: undefined;
|
|
47
|
+
}
|
|
48
|
+
function getChildAnnotations(annotation) {
|
|
49
|
+
return (annotation.childAnnotationUIDs?.map((childAnnotationUID) => getAnnotation(childAnnotationUID)) ?? []);
|
|
50
|
+
}
|
|
20
51
|
function addAnnotation(annotation, annotationGroupSelector) {
|
|
21
52
|
if (!annotation.annotationUID) {
|
|
22
53
|
annotation.annotationUID = csUtils.uuidv4();
|
|
@@ -47,6 +78,7 @@ function removeAnnotation(annotationUID) {
|
|
|
47
78
|
if (!annotation) {
|
|
48
79
|
return;
|
|
49
80
|
}
|
|
81
|
+
annotation.childAnnotationUIDs?.forEach((childAnnotationUID) => removeAnnotation(childAnnotationUID));
|
|
50
82
|
manager.removeAnnotation(annotationUID);
|
|
51
83
|
const eventType = Events.ANNOTATION_REMOVED;
|
|
52
84
|
const eventDetail = {
|
|
@@ -64,5 +96,14 @@ function removeAllAnnotations() {
|
|
|
64
96
|
const manager = getAnnotationManager();
|
|
65
97
|
manager.removeAllAnnotations();
|
|
66
98
|
}
|
|
67
|
-
|
|
99
|
+
function invalidateAnnotation(annotation) {
|
|
100
|
+
let currAnnotation = annotation;
|
|
101
|
+
while (currAnnotation) {
|
|
102
|
+
currAnnotation.invalidated = true;
|
|
103
|
+
currAnnotation = currAnnotation.parentAnnotationUID
|
|
104
|
+
? getAnnotation(currAnnotation.parentAnnotationUID)
|
|
105
|
+
: undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export { getAnnotations, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, };
|
|
68
109
|
//# sourceMappingURL=annotationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gDAAgD,EAAE,MAAM,6CAA6C,CAAC;AAI/G,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,IAAI,cAAc,GAAG,gDAAgD,CAAC;AAMtE,SAAS,oBAAoB;IAC3B,OAAO,cAAc,CAAC;AACxB,CAAC;AAMD,SAAS,oBAAoB,CAAC,iBAAiB;IAC7C,cAAc,GAAG,iBAAiB,CAAC;AACrC,CAAC;AAGD,SAAS,sBAAsB;IAC7B,cAAc,GAAG,gDAAgD,CAAC;AACpE,CAAC;AAeD,SAAS,cAAc,CACrB,QAAgB,EAChB,uBAAgD;IAEhD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAgB,CAAC;AACnE,CAAC;AAcD,SAAS,aAAa,CACpB,UAAsB,EACtB,uBAAgD;IAEhD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;QAC7B,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,EAAY,CAAC;KACvD;IAED,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IAIvC,IAAI,uBAAuB,YAAY,cAAc,EAAE;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC9D,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,gCAAgC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;KACvE;SAAM;QAIL,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClC,4BAA4B,CAAC,UAAU,CAAC,CAAC;KAC1C;IAED,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC,CAAC;AAeD,SAAS,sBAAsB,CAC7B,QAAgB,EAChB,uBAAgD;IAEhD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAMD,SAAS,gBAAgB,CAAC,aAAqB;IAC7C,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IACD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAGxD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;
|
|
1
|
+
{"version":3,"file":"annotationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/annotation/annotationState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getEnabledElement, triggerEvent, eventTarget, getEnabledElementByIds, } from '@cornerstonejs/core';
|
|
2
|
-
import { Events } from '../../../enums';
|
|
2
|
+
import { Events, ChangeTypes } from '../../../enums';
|
|
3
3
|
import { getToolGroupsWithToolName } from '../../../store/ToolGroupManager';
|
|
4
4
|
function triggerAnnotationAddedForElement(annotation, element) {
|
|
5
5
|
const enabledElement = getEnabledElement(element);
|
|
@@ -40,7 +40,7 @@ function triggerAnnotationAddedForFOR(annotation) {
|
|
|
40
40
|
triggerEvent(eventTarget, eventType, eventDetail);
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
function triggerAnnotationModified(annotation, element) {
|
|
43
|
+
function triggerAnnotationModified(annotation, element, changeType = ChangeTypes.HandlesUpdated) {
|
|
44
44
|
const enabledElement = getEnabledElement(element);
|
|
45
45
|
const { viewportId, renderingEngineId } = enabledElement;
|
|
46
46
|
const eventType = Events.ANNOTATION_MODIFIED;
|
|
@@ -48,15 +48,26 @@ function triggerAnnotationModified(annotation, element) {
|
|
|
48
48
|
annotation,
|
|
49
49
|
viewportId,
|
|
50
50
|
renderingEngineId,
|
|
51
|
+
changeType,
|
|
51
52
|
};
|
|
52
53
|
triggerEvent(eventTarget, eventType, eventDetail);
|
|
53
54
|
}
|
|
54
55
|
function triggerAnnotationCompleted(annotation) {
|
|
55
|
-
const eventType = Events.ANNOTATION_COMPLETED;
|
|
56
56
|
const eventDetail = {
|
|
57
57
|
annotation,
|
|
58
58
|
};
|
|
59
|
+
_triggerAnnotationCompleted(eventDetail);
|
|
60
|
+
}
|
|
61
|
+
function triggerContourAnnotationCompleted(annotation, contourHoleProcessingEnabled = false) {
|
|
62
|
+
const eventDetail = {
|
|
63
|
+
annotation,
|
|
64
|
+
contourHoleProcessingEnabled,
|
|
65
|
+
};
|
|
66
|
+
_triggerAnnotationCompleted(eventDetail);
|
|
67
|
+
}
|
|
68
|
+
function _triggerAnnotationCompleted(eventDetail) {
|
|
69
|
+
const eventType = Events.ANNOTATION_COMPLETED;
|
|
59
70
|
triggerEvent(eventTarget, eventType, eventDetail);
|
|
60
71
|
}
|
|
61
|
-
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, triggerAnnotationModified, triggerAnnotationCompleted, };
|
|
72
|
+
export { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, triggerAnnotationModified, triggerAnnotationCompleted, triggerContourAnnotationCompleted, };
|
|
62
73
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/stateManagement/annotation/helpers/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/stateManagement/annotation/helpers/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import FrameOfReferenceSpecificAnnotationManager, { defaultFrameOfReferenceSpecificAnnotationManager, } from './annotation/FrameOfReferenceSpecificAnnotationManager';
|
|
2
2
|
import * as annotationLocking from './annotation/annotationLocking';
|
|
3
3
|
import * as annotationSelection from './annotation/annotationSelection';
|
|
4
|
-
import { getAnnotations, addAnnotation, removeAnnotation, getAnnotation, getNumberOfAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, } from './annotation/annotationState';
|
|
4
|
+
import { getAnnotations, addAnnotation, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, } from './annotation/annotationState';
|
|
5
5
|
import { addSegmentationRepresentations, removeSegmentationsFromToolGroup, } from './segmentation';
|
|
6
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, addSegmentationRepresentations, removeSegmentationsFromToolGroup, };
|
|
6
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, addSegmentationRepresentations, removeSegmentationsFromToolGroup, };
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stateManagement/index.js"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,EAAE,EAChD,gDAAgD,GACjD,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAExE,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stateManagement/index.js"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,EAAE,EAChD,gDAAgD,GACjD,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAExE,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,yCAAyC,EACzC,gDAAgD,EAChD,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EAEpB,8BAA8B,EAC9B,gCAAgC,GACjC,CAAC"}
|
|
@@ -200,7 +200,7 @@ export default class ToolGroup {
|
|
|
200
200
|
triggerEvent(eventTarget, Events.TOOL_ACTIVATED, eventDetail);
|
|
201
201
|
this._triggerToolModeChangedEvent(toolName, Active, toolBindingsOptions);
|
|
202
202
|
}
|
|
203
|
-
setToolPassive(toolName) {
|
|
203
|
+
setToolPassive(toolName, options) {
|
|
204
204
|
const toolInstance = this._toolInstances[toolName];
|
|
205
205
|
if (toolInstance === undefined) {
|
|
206
206
|
console.warn(`Tool ${toolName} not added to toolGroup, can't set tool mode.`);
|
|
@@ -213,7 +213,8 @@ export default class ToolGroup {
|
|
|
213
213
|
mode: Passive,
|
|
214
214
|
});
|
|
215
215
|
const defaultMousePrimary = this.getDefaultMousePrimary();
|
|
216
|
-
toolOptions.bindings = toolOptions.bindings.filter((binding) =>
|
|
216
|
+
toolOptions.bindings = toolOptions.bindings.filter((binding) => options?.removeAllBindings !== true &&
|
|
217
|
+
(binding.mouseButton !== defaultMousePrimary || binding.modifierKey));
|
|
217
218
|
let mode = Passive;
|
|
218
219
|
if (toolOptions.bindings.length !== 0) {
|
|
219
220
|
mode = Active;
|