@cornerstonejs/tools 2.0.0-beta.26 → 2.0.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/eventListeners/index.d.ts +2 -2
- package/dist/esm/eventListeners/index.js +2 -2
- package/dist/esm/eventListeners/mouse/mouseDownListener.js +8 -0
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +18 -12
- package/dist/esm/eventListeners/segmentation/index.d.ts +1 -3
- package/dist/esm/eventListeners/segmentation/index.js +1 -3
- package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +13 -10
- package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +2 -3
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/init.js +1 -5
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +2 -0
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +6 -5
- package/dist/esm/stateManagement/annotation/annotationState.js +11 -2
- package/dist/esm/stateManagement/index.d.ts +1 -4
- package/dist/esm/stateManagement/index.js +1 -3
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +9 -6
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +43 -25
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +207 -162
- package/dist/esm/stateManagement/segmentation/SegmentationStyle.d.ts +42 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStyle.js +162 -0
- package/dist/esm/stateManagement/segmentation/activeSegmentation.d.ts +4 -5
- package/dist/esm/stateManagement/segmentation/activeSegmentation.js +10 -14
- package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -2
- package/dist/esm/stateManagement/segmentation/addColorLUT.js +15 -1
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.d.ts +15 -0
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.js +49 -0
- package/dist/esm/stateManagement/segmentation/addSegmentations.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/addSegmentations.js +11 -7
- package/dist/esm/stateManagement/segmentation/config/index.d.ts +2 -2
- package/dist/esm/stateManagement/segmentation/config/index.js +2 -2
- package/dist/esm/stateManagement/segmentation/config/segmentationColor.d.ts +4 -4
- package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +24 -24
- package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.d.ts +22 -7
- package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +29 -29
- package/dist/esm/stateManagement/segmentation/config/styleHelpers.d.ts +39 -0
- package/dist/esm/stateManagement/segmentation/config/styleHelpers.js +48 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/{getGlobalConfig.js → getActiveSegmentation.js} +2 -2
- package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/getGlobalStyle.d.ts +3 -0
- package/dist/esm/stateManagement/segmentation/getGlobalStyle.js +4 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +9 -1
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +10 -2
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +5 -1
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +2 -2
- package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +5 -5
- package/dist/esm/stateManagement/segmentation/getViewportSegmentations.d.ts +3 -0
- package/dist/esm/stateManagement/segmentation/getViewportSegmentations.js +15 -0
- package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.js +31 -0
- package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.d.ts +1 -2
- package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.js +4 -6
- package/dist/esm/stateManagement/segmentation/{convertVolumeToStackSegmentation.d.ts → helpers/computeStackLabelmapFromVolume.d.ts} +2 -2
- package/dist/esm/stateManagement/segmentation/{convertVolumeToStackSegmentation.js → helpers/computeStackLabelmapFromVolume.js} +8 -5
- package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.d.ts +3 -0
- package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.js +4 -0
- package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.js +7 -0
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.d.ts +8 -0
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.js +27 -0
- package/dist/esm/stateManagement/segmentation/helpers/index.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/helpers/index.js +2 -1
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +4 -6
- package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +1 -1
- package/dist/esm/stateManagement/segmentation/index.d.ts +14 -7
- package/dist/esm/stateManagement/segmentation/index.js +14 -7
- package/dist/esm/stateManagement/segmentation/{addRepresentationData.d.ts → internalAddRepresentationData.d.ts} +2 -2
- package/dist/esm/stateManagement/segmentation/{addRepresentationData.js → internalAddRepresentationData.js} +5 -2
- package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.js +18 -58
- package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +9 -10
- package/dist/esm/stateManagement/segmentation/polySeg/Contour/utils/extractContourData.js +8 -5
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +9 -2
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +2 -2
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +4 -6
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +4 -4
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +1 -7
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +1 -3
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +9 -8
- package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +3 -9
- package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +7 -5
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.d.ts +14 -2
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +69 -19
- package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +6 -18
- package/dist/esm/stateManagement/segmentation/segmentationState.js +9 -18
- package/dist/esm/stateManagement/segmentation/setActiveSegmentation.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/setActiveSegmentation.js +5 -0
- package/dist/esm/stateManagement/segmentation/setGlobalStyle.d.ts +3 -0
- package/dist/esm/stateManagement/segmentation/setGlobalStyle.js +8 -0
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +5 -1
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +2 -2
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +1 -3
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +1 -3
- package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +2 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +23 -9
- package/dist/esm/store/ToolGroupManager/createToolGroup.d.ts +1 -1
- package/dist/esm/store/ToolGroupManager/createToolGroup.js +3 -3
- package/dist/esm/tools/AdvancedMagnifyTool.js +1 -1
- package/dist/esm/tools/CrosshairsTool.js +1 -2
- package/dist/esm/tools/MIPJumpToClickTool.js +1 -1
- package/dist/esm/tools/ReferenceLinesTool.js +5 -2
- package/dist/esm/tools/StackScrollTool.d.ts +4 -0
- package/dist/esm/tools/StackScrollTool.js +104 -15
- package/dist/esm/tools/WindowLevelTool.js +3 -2
- package/dist/esm/tools/annotation/AngleTool.js +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +1 -1
- package/dist/esm/tools/annotation/CircleROITool.js +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +1 -1
- package/dist/esm/tools/annotation/HeightTool.js +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +1 -1
- package/dist/esm/tools/annotation/LivewireContourTool.js +3 -3
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +2 -2
- package/dist/esm/tools/annotation/RectangleROITool.js +1 -1
- package/dist/esm/tools/annotation/SplineROITool.js +2 -3
- package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +1 -1
- package/dist/esm/tools/base/BaseTool.d.ts +1 -2
- package/dist/esm/tools/base/BaseTool.js +5 -18
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js +28 -25
- package/dist/esm/tools/displayTools/Contour/contourConfig.d.ts +3 -3
- package/dist/esm/tools/displayTools/Contour/contourConfig.js +2 -2
- package/dist/esm/tools/displayTools/Contour/contourDisplay.d.ts +1 -1
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js +4 -7
- package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +26 -57
- package/dist/esm/tools/displayTools/Contour/removeContourFromElement.d.ts +1 -1
- package/dist/esm/tools/displayTools/Contour/removeContourFromElement.js +2 -4
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +1 -1
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +39 -10
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.d.ts +3 -5
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +3 -16
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +86 -90
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.d.ts +1 -1
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +3 -2
- package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts +1 -1
- package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js +3 -3
- package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.d.ts +2 -2
- package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.js +5 -3
- package/dist/esm/tools/displayTools/Surface/surfaceConfig.d.ts +3 -3
- package/dist/esm/tools/displayTools/Surface/surfaceConfig.js +2 -2
- package/dist/esm/tools/displayTools/Surface/surfaceDisplay.d.ts +1 -1
- package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +7 -8
- package/dist/esm/tools/index.d.ts +1 -2
- package/dist/esm/tools/index.js +1 -2
- package/dist/esm/tools/segmentation/BrushTool.d.ts +0 -4
- package/dist/esm/tools/segmentation/BrushTool.js +23 -22
- package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +2 -2
- package/dist/esm/tools/segmentation/CircleScissorsTool.d.ts +1 -1
- package/dist/esm/tools/segmentation/CircleScissorsTool.js +11 -10
- package/dist/esm/tools/segmentation/PaintFillTool.js +5 -7
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -2
- package/dist/esm/tools/segmentation/RectangleScissorsTool.d.ts +0 -1
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js +9 -10
- package/dist/esm/tools/segmentation/SegmentSelectTool.d.ts +2 -2
- package/dist/esm/tools/segmentation/SegmentSelectTool.js +17 -26
- package/dist/esm/tools/segmentation/SphereScissorsTool.d.ts +0 -1
- package/dist/esm/tools/segmentation/SphereScissorsTool.js +6 -9
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.d.ts +2 -0
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +2 -0
- package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js +1 -2
- package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/preview.js +3 -3
- package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js +4 -4
- package/dist/esm/tools/segmentation/strategies/compositions/setValue.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +3 -3
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +3 -3
- package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +21 -6
- package/dist/esm/types/AnnotationGroupSelector.js +0 -1
- package/dist/esm/types/AnnotationRenderContext.js +0 -1
- package/dist/esm/types/AnnotationStyle.js +0 -1
- package/dist/esm/types/AnnotationTypes.js +0 -1
- package/dist/esm/types/BoundsIJK.js +0 -1
- package/dist/esm/types/CINETypes.js +0 -1
- package/dist/esm/types/CalculatorTypes.js +0 -1
- package/dist/esm/types/CardinalSplineProps.js +0 -1
- package/dist/esm/types/ClosestControlPoint.js +0 -1
- package/dist/esm/types/ClosestPoint.js +0 -1
- package/dist/esm/types/ClosestSplinePoint.js +0 -1
- package/dist/esm/types/ContourSegmentationAnnotation.js +0 -1
- package/dist/esm/types/ContourTypes.d.ts +1 -2
- package/dist/esm/types/ContourTypes.js +0 -1
- package/dist/esm/types/ControlPointInfo.js +0 -1
- package/dist/esm/types/CursorTypes.js +0 -1
- package/dist/esm/types/EventTypes.d.ts +2 -2
- package/dist/esm/types/EventTypes.js +0 -1
- package/dist/esm/types/FloodFillTypes.js +0 -1
- package/dist/esm/types/IAnnotationManager.js +0 -1
- package/dist/esm/types/IBaseTool.js +0 -1
- package/dist/esm/types/IDistance.js +0 -1
- package/dist/esm/types/IPoints.js +0 -1
- package/dist/esm/types/ISculptToolShape.js +0 -1
- package/dist/esm/types/ISetToolModeOptions.js +0 -1
- package/dist/esm/types/ISpline.js +0 -1
- package/dist/esm/types/ISynchronizerEventHandler.js +0 -1
- package/dist/esm/types/IToolClassReference.js +0 -1
- package/dist/esm/types/IToolGroup.js +0 -1
- package/dist/esm/types/ITouchPoints.js +0 -1
- package/dist/esm/types/InteractionTypes.js +0 -1
- package/dist/esm/types/InternalToolTypes.js +0 -1
- package/dist/esm/types/InterpolationTypes.js +0 -1
- package/dist/esm/types/JumpToSliceOptions.js +0 -1
- package/dist/esm/types/LabelmapToolOperationData.d.ts +0 -1
- package/dist/esm/types/LabelmapToolOperationData.js +0 -1
- package/dist/esm/types/LabelmapTypes.d.ts +3 -7
- package/dist/esm/types/LabelmapTypes.js +0 -1
- package/dist/esm/types/PlanarBoundingBox.js +0 -1
- package/dist/esm/types/PolySeg.d.ts +1 -1
- package/dist/esm/types/PolySeg.js +0 -1
- package/dist/esm/types/SVGDrawingHelper.js +0 -1
- package/dist/esm/types/ScrollOptions.js +0 -1
- package/dist/esm/types/SegmentationStateTypes.d.ts +35 -56
- package/dist/esm/types/SegmentationStateTypes.js +0 -1
- package/dist/esm/types/SplineCurveSegment.js +0 -1
- package/dist/esm/types/SplineLineSegment.js +0 -1
- package/dist/esm/types/SplineProps.js +0 -1
- package/dist/esm/types/SurfaceTypes.d.ts +1 -1
- package/dist/esm/types/SurfaceTypes.js +0 -1
- package/dist/esm/types/ToolAction.js +0 -1
- package/dist/esm/types/ToolHandle.js +0 -1
- package/dist/esm/types/ToolProps.js +0 -1
- package/dist/esm/types/ToolSpecificAnnotationTypes.js +0 -1
- package/dist/esm/types/index.d.ts +2 -2
- package/dist/esm/types/index.js +0 -1
- package/dist/esm/utilities/cine/playClip.js +1 -1
- package/dist/esm/utilities/contours/updateContourPolyline.js +3 -0
- package/dist/esm/utilities/index.d.ts +2 -1
- package/dist/esm/utilities/index.js +2 -1
- package/dist/esm/utilities/math/circle/_types.js +0 -1
- package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.js +0 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +8 -0
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +71 -0
- package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +2 -2
- package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.js +10 -9
- package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.js +9 -8
- package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +14 -16
- package/dist/esm/utilities/segmentation/index.d.ts +1 -3
- package/dist/esm/utilities/segmentation/index.js +1 -3
- package/dist/esm/utilities/voi/colorbar/ColorbarCanvas.js +3 -0
- package/dist/esm/utilities/voi/colorbar/ViewportColorbar.js +1 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarCanvasProps.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarCommonProps.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarImageRange.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarProps.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarSize.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksProps.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksStyle.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ColorbarVOIRange.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/ViewportColorbarProps.js +0 -1
- package/dist/esm/utilities/voi/colorbar/types/index.js +0 -1
- package/dist/esm/widgets/types/WidgetProps.js +0 -1
- package/dist/esm/widgets/types/WidgetSize.js +0 -1
- package/dist/esm/widgets/types/index.js +0 -1
- package/dist/esm/workers/polySegConverters.js +4 -3
- package/package.json +73 -20
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.d.ts +0 -3
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +0 -14
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.d.ts +0 -3
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +0 -8
- package/dist/esm/stateManagement/segmentation/addSegmentation.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/addSegmentation.js +0 -11
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.js +0 -10
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.d.ts +0 -8
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.js +0 -19
- package/dist/esm/stateManagement/segmentation/config/segmentationConfig.d.ts +0 -14
- package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +0 -54
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +0 -1
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +0 -8
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +0 -1
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +0 -8
- package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.js +0 -5
- package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.js +0 -6
- package/dist/esm/stateManagement/segmentation/getGlobalConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.js +0 -5
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.js +0 -5
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.d.ts +0 -7
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.js +0 -6
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.js +0 -12
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.js +0 -5
- package/dist/esm/stateManagement/segmentation/removeRepresentation.d.ts +0 -1
- package/dist/esm/stateManagement/segmentation/removeRepresentation.js +0 -9
- package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.d.ts +0 -1
- package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.js +0 -9
- package/dist/esm/stateManagement/segmentation/setGlobalConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/setGlobalConfig.js +0 -9
- package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.js +0 -9
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.js +0 -9
- package/dist/esm/tools/VolumeRotateMouseWheelTool.d.ts +0 -9
- package/dist/esm/tools/VolumeRotateMouseWheelTool.js +0 -52
- package/dist/esm/tools/displayTools/Contour/contourHandler/contourConfigCache.d.ts +0 -9
- package/dist/esm/tools/displayTools/Contour/contourHandler/contourConfigCache.js +0 -10
- package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +0 -5
- package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js +0 -13
- package/dist/esm/utilities/segmentation/getDefaultRepresentationConfig.d.ts +0 -2
- package/dist/esm/utilities/segmentation/getDefaultRepresentationConfig.js +0 -11
- package/dist/esm/utilities/segmentation/isValidRepresentationConfig.d.ts +0 -2
- package/dist/esm/utilities/segmentation/isValidRepresentationConfig.js +0 -10
- package/dist/umd/17dd54813d5acc10bf8f.wasm +0 -0
- package/dist/umd/78.index.js +0 -3
- package/dist/umd/78.index.js.LICENSE.txt +0 -5
- package/dist/umd/78.index.js.map +0 -1
- package/dist/umd/985.index.js +0 -2
- package/dist/umd/985.index.js.map +0 -1
- package/dist/umd/index.js +0 -3
- package/dist/umd/index.js.LICENSE.txt +0 -6
- package/dist/umd/index.js.map +0 -1
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { SegmentationRepresentations } from '../../../../enums';
|
|
2
2
|
import { computeAndAddRepresentation } from '../computeAndAddRepresentation';
|
|
3
3
|
import { computeLabelmapData } from './labelmapComputationStrategies';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { defaultSegmentationStateManager } from '../../SegmentationStateManager';
|
|
5
|
+
import { triggerSegmentationDataModified } from '../../triggerSegmentationEvents';
|
|
6
|
+
export async function computeAndAddLabelmapRepresentation(segmentationId, options = {}) {
|
|
7
|
+
return computeAndAddRepresentation(segmentationId, SegmentationRepresentations.Labelmap, () => computeLabelmapData(segmentationId, options), () => null, () => {
|
|
8
|
+
defaultSegmentationStateManager.processLabelmapRepresentationAddition(options.viewport.id, segmentationId);
|
|
9
|
+
setTimeout(() => {
|
|
10
|
+
triggerSegmentationDataModified(segmentationId);
|
|
11
|
+
}, 0);
|
|
12
|
+
});
|
|
6
13
|
}
|
|
@@ -17,7 +17,7 @@ export async function convertContourToVolumeLabelmap(contourRepresentationData,
|
|
|
17
17
|
throw new Error('No imageIds found, labelmap computation from contour requires viewports with imageIds');
|
|
18
18
|
}
|
|
19
19
|
const segmentationVolumeId = utilities.uuidv4();
|
|
20
|
-
const segmentationVolume = volumeLoader.
|
|
20
|
+
const segmentationVolume = volumeLoader.createAndCacheDerivedLabelmapVolume(volumeId, {
|
|
21
21
|
volumeId: segmentationVolumeId,
|
|
22
22
|
});
|
|
23
23
|
const { dimensions, origin, direction, spacing, voxelManager } = segmentationVolume;
|
|
@@ -59,7 +59,7 @@ export async function convertContourToStackLabelmap(contourRepresentationData, o
|
|
|
59
59
|
throw new Error('ImageIds must be cached before converting contour to labelmap');
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
|
-
const segImages = await imageLoader.
|
|
62
|
+
const segImages = await imageLoader.createAndCacheDerivedLabelmapImages(imageIds);
|
|
63
63
|
const segmentationImageIds = segImages.map((it) => it.imageId);
|
|
64
64
|
const { segmentIndices, annotationUIDsInSegmentMap } = _getAnnotationMapFromSegmentation(contourRepresentationData, options);
|
|
65
65
|
const segmentationsInfo = new Map();
|
package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js
CHANGED
|
@@ -3,7 +3,7 @@ import { getUniqueSegmentIndices } from '../../../../utilities/segmentation/getU
|
|
|
3
3
|
import { getSegmentation } from '../../getSegmentation';
|
|
4
4
|
import { convertContourToStackLabelmap, convertContourToVolumeLabelmap, } from './convertContourToLabelmap';
|
|
5
5
|
import { convertSurfaceToVolumeLabelmap } from './convertSurfaceToLabelmap';
|
|
6
|
-
import {
|
|
6
|
+
import { computeStackLabelmapFromVolume } from '../../helpers/computeStackLabelmapFromVolume';
|
|
7
7
|
export async function computeLabelmapData(segmentationId, options = {}) {
|
|
8
8
|
const segmentIndices = options.segmentIndices?.length
|
|
9
9
|
? options.segmentIndices
|
|
@@ -49,7 +49,6 @@ async function computeLabelmapFromContourSegmentation(segmentationId, options =
|
|
|
49
49
|
: convertContourToStackLabelmap;
|
|
50
50
|
const result = await convertFunction(representationData, {
|
|
51
51
|
segmentIndices,
|
|
52
|
-
segmentationRepresentationUID: options.segmentationRepresentationUID,
|
|
53
52
|
viewport: options.viewport,
|
|
54
53
|
});
|
|
55
54
|
return result;
|
|
@@ -74,12 +73,11 @@ async function computeLabelmapFromSurfaceSegmentation(segmentationId, options =
|
|
|
74
73
|
let segmentationVolume;
|
|
75
74
|
if (isVolume) {
|
|
76
75
|
const volumeId = viewport.getVolumeId();
|
|
77
|
-
segmentationVolume =
|
|
78
|
-
await volumeLoader.createAndCacheDerivedSegmentationVolume(volumeId);
|
|
76
|
+
segmentationVolume = await volumeLoader.createAndCacheDerivedLabelmapVolume(volumeId);
|
|
79
77
|
}
|
|
80
78
|
else {
|
|
81
79
|
const imageIds = options.viewport.getImageIds();
|
|
82
|
-
const segImages = imageLoader.
|
|
80
|
+
const segImages = imageLoader.createAndCacheDerivedLabelmapImages(imageIds);
|
|
83
81
|
const segImageIds = segImages.map((image) => image.imageId);
|
|
84
82
|
segmentationVolume = await volumeLoader.createAndCacheVolumeFromImages('generatedSegmentationVolumeId', segImageIds);
|
|
85
83
|
}
|
|
@@ -87,7 +85,7 @@ async function computeLabelmapFromSurfaceSegmentation(segmentationId, options =
|
|
|
87
85
|
if (isVolume) {
|
|
88
86
|
return result;
|
|
89
87
|
}
|
|
90
|
-
const stackData = (await
|
|
88
|
+
const stackData = (await computeStackLabelmapFromVolume({
|
|
91
89
|
volumeId: segmentationVolume.volumeId,
|
|
92
90
|
}));
|
|
93
91
|
return stackData;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
2
|
import type { LabelmapSegmentationData } from '../../../../types/LabelmapTypes';
|
|
3
|
-
export declare function convertLabelmapToSurface(labelmapRepresentationData: LabelmapSegmentationData, segmentIndex: number
|
|
3
|
+
export declare function convertLabelmapToSurface(labelmapRepresentationData: LabelmapSegmentationData, segmentIndex: number): Promise<Types.SurfaceData>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cache, eventTarget, getWebWorkerManager, triggerEvent, Enums, } from '@cornerstonejs/core';
|
|
2
|
-
import {
|
|
2
|
+
import { computeVolumeLabelmapFromStack } from '../../helpers/computeVolumeLabelmapFromStack';
|
|
3
3
|
import { WorkerTypes } from '../../../../enums';
|
|
4
4
|
const workerManager = getWebWorkerManager();
|
|
5
5
|
const triggerWorkerProgress = (eventTarget, progress) => {
|
|
@@ -8,15 +8,15 @@ const triggerWorkerProgress = (eventTarget, progress) => {
|
|
|
8
8
|
type: WorkerTypes.POLYSEG_LABELMAP_TO_SURFACE,
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
export async function convertLabelmapToSurface(labelmapRepresentationData, segmentIndex
|
|
11
|
+
export async function convertLabelmapToSurface(labelmapRepresentationData, segmentIndex) {
|
|
12
12
|
let volumeId;
|
|
13
|
-
if (
|
|
13
|
+
if (labelmapRepresentationData.volumeId) {
|
|
14
14
|
volumeId = labelmapRepresentationData
|
|
15
15
|
.volumeId;
|
|
16
16
|
}
|
|
17
17
|
else {
|
|
18
18
|
const { imageIds } = labelmapRepresentationData;
|
|
19
|
-
({ volumeId } = await
|
|
19
|
+
({ volumeId } = await computeVolumeLabelmapFromStack({
|
|
20
20
|
imageIds,
|
|
21
21
|
}));
|
|
22
22
|
}
|
package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { Enums, geometryLoader } from '@cornerstonejs/core';
|
|
2
2
|
import { getSegmentIndexColor } from '../../config/segmentationColor';
|
|
3
|
-
import { getSegmentationRepresentation } from '../../getSegmentationRepresentation';
|
|
4
3
|
import { getSegmentation } from '../../getSegmentation';
|
|
5
4
|
export async function createAndCacheSurfacesFromRaw(segmentationId, rawSurfacesData, options = {}) {
|
|
6
|
-
let segmentationRepresentation;
|
|
7
|
-
if (options.segmentationRepresentationUID) {
|
|
8
|
-
segmentationRepresentation = getSegmentationRepresentation(options.segmentationRepresentationUID);
|
|
9
|
-
}
|
|
10
5
|
const segmentation = getSegmentation(segmentationId);
|
|
11
6
|
const geometryIds = new Map();
|
|
12
7
|
const promises = Object.keys(rawSurfacesData).map(async (index) => {
|
|
13
8
|
const rawSurfaceData = rawSurfacesData[index];
|
|
14
9
|
const segmentIndex = rawSurfaceData.segmentIndex;
|
|
15
|
-
const color =
|
|
16
|
-
getSegmentIndexColor(segmentationRepresentation.segmentationRepresentationUID, segmentIndex).slice(0, 3);
|
|
10
|
+
const color = getSegmentIndexColor(options.viewport.id, segmentation.segmentationId, segmentIndex).slice(0, 3);
|
|
17
11
|
if (!color) {
|
|
18
12
|
throw new Error('No color found for segment index, unable to create surface');
|
|
19
13
|
}
|
package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js
CHANGED
|
@@ -2,7 +2,6 @@ import { getUniqueSegmentIndices } from '../../../../utilities/segmentation/getU
|
|
|
2
2
|
import { getSegmentation } from '../../getSegmentation';
|
|
3
3
|
import { convertContourToSurface } from './convertContourToSurface';
|
|
4
4
|
import { createAndCacheSurfacesFromRaw } from './createAndCacheSurfacesFromRaw';
|
|
5
|
-
import { isVolumeSegmentation } from '../../../../tools/segmentation/strategies/utils/stackVolumeCheck';
|
|
6
5
|
import { convertLabelmapToSurface } from './convertLabelmapToSurface';
|
|
7
6
|
export async function computeSurfaceData(segmentationId, options = {}) {
|
|
8
7
|
const segmentIndices = options.segmentIndices?.length
|
|
@@ -41,11 +40,10 @@ async function computeSurfaceFromLabelmapSegmentation(segmentationId, options =
|
|
|
41
40
|
console.warn('Only support surface update from labelmaps');
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
|
-
const isVolume = isVolumeSegmentation(segmentation.representationData.Labelmap);
|
|
45
43
|
const labelmapRepresentationData = segmentation.representationData.Labelmap;
|
|
46
44
|
const segmentIndices = options.segmentIndices || getUniqueSegmentIndices(segmentationId);
|
|
47
45
|
const promises = segmentIndices.map((index) => {
|
|
48
|
-
const surface = convertLabelmapToSurface(labelmapRepresentationData, index
|
|
46
|
+
const surface = convertLabelmapToSurface(labelmapRepresentationData, index);
|
|
49
47
|
return surface;
|
|
50
48
|
});
|
|
51
49
|
const surfaces = await Promise.allSettled(promises);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { cache } from '@cornerstonejs/core';
|
|
2
2
|
import { getUniqueSegmentIndices } from '../../../../utilities/segmentation/getUniqueSegmentIndices';
|
|
3
|
-
import {
|
|
3
|
+
import { getViewportIdsWithSegmentation } from '../../getViewportIdsWithSegmentation';
|
|
4
|
+
import { getSegmentation } from '../../getSegmentation';
|
|
4
5
|
import { triggerSegmentationModified } from '../../triggerSegmentationEvents';
|
|
6
|
+
import { getSegmentationRepresentation } from '../../getSegmentationRepresentation';
|
|
5
7
|
import { SegmentationRepresentations } from '../../../../enums';
|
|
6
8
|
import { computeSurfaceFromLabelmapSegmentation } from './surfaceComputationStrategies';
|
|
7
9
|
import { createAndCacheSurfacesFromRaw } from './createAndCacheSurfacesFromRaw';
|
|
@@ -29,15 +31,14 @@ export async function updateSurfaceData(segmentationId) {
|
|
|
29
31
|
if (!geometry) {
|
|
30
32
|
const viewportIds = getViewportIdsWithSegmentation(segmentationId);
|
|
31
33
|
return viewportIds.map((viewportId) => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
34
|
+
const surfaceRepresentation = getSegmentationRepresentation(viewportId, {
|
|
35
|
+
segmentationId,
|
|
36
|
+
type: SegmentationRepresentations.Surface,
|
|
37
|
+
});
|
|
38
|
+
return [surfaceRepresentation].map((surfaceRepresentation) => {
|
|
38
39
|
segmentation.representationData.Surface.geometryIds.set(segmentIndex, geometryId);
|
|
39
40
|
return createAndCacheSurfacesFromRaw(segmentationId, [{ segmentIndex, data }], {
|
|
40
|
-
|
|
41
|
+
segmentationId: surfaceRepresentation.segmentationId,
|
|
41
42
|
});
|
|
42
43
|
});
|
|
43
44
|
});
|
package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import { SegmentationRepresentations } from '../../../enums';
|
|
2
|
+
declare function canComputeRequestedRepresentation(segmentationId: string, type: SegmentationRepresentations): boolean;
|
|
2
3
|
export { canComputeRequestedRepresentation };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SegmentationRepresentations } from '../../../enums';
|
|
2
2
|
import { getSegmentation } from '../getSegmentation';
|
|
3
|
-
import { getSegmentationRepresentation } from '../getSegmentationRepresentation';
|
|
4
3
|
import { validate as validateLabelmap } from '../../../tools/displayTools/Labelmap/validateLabelmap';
|
|
5
4
|
const conversionPaths = new Map([
|
|
6
5
|
[
|
|
@@ -22,15 +21,10 @@ const conversionPaths = new Map([
|
|
|
22
21
|
new Set([SegmentationRepresentations.Labelmap]),
|
|
23
22
|
],
|
|
24
23
|
]);
|
|
25
|
-
function canComputeRequestedRepresentation(
|
|
26
|
-
const
|
|
27
|
-
const { type: representationType, polySeg } = segmentationRepresentation;
|
|
28
|
-
if (!polySeg || !polySeg.enabled) {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
const { representationData } = getSegmentation(segmentationRepresentation.segmentationId);
|
|
24
|
+
function canComputeRequestedRepresentation(segmentationId, type) {
|
|
25
|
+
const { representationData } = getSegmentation(segmentationId);
|
|
32
26
|
const existingRepresentationTypes = getExistingRepresentationTypes(representationData);
|
|
33
|
-
return existingRepresentationTypes.some((existingRepresentationType) => canConvertFromTo(existingRepresentationType,
|
|
27
|
+
return existingRepresentationTypes.some((existingRepresentationType) => canConvertFromTo(existingRepresentationType, type));
|
|
34
28
|
}
|
|
35
29
|
function getExistingRepresentationTypes(representationData) {
|
|
36
30
|
const supportedTypes = [];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { SegmentationRepresentations } from '../../../enums';
|
|
2
|
-
declare function computeAndAddRepresentation<T>(segmentationId: string,
|
|
2
|
+
declare function computeAndAddRepresentation<T>(segmentationId: string, type: SegmentationRepresentations, computeFunction: () => Promise<T>, updateFunction?: () => void, onComputationComplete?: () => void): Promise<T>;
|
|
3
3
|
export { computeAndAddRepresentation };
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import { eventTarget } from '@cornerstonejs/core';
|
|
2
2
|
import { Events } from '../../../enums';
|
|
3
|
-
import addRepresentationData from '../
|
|
3
|
+
import addRepresentationData from '../internalAddRepresentationData';
|
|
4
4
|
import { triggerSegmentationModified } from '../triggerSegmentationEvents';
|
|
5
5
|
import debounce from '../../../utilities/debounce';
|
|
6
6
|
import { registerPolySegWorker } from './registerPolySegWorker';
|
|
7
|
+
import { defaultSegmentationStateManager } from '../SegmentationStateManager';
|
|
7
8
|
const computedRepresentations = new Map();
|
|
8
|
-
async function computeAndAddRepresentation(segmentationId,
|
|
9
|
+
async function computeAndAddRepresentation(segmentationId, type, computeFunction, updateFunction, onComputationComplete) {
|
|
9
10
|
registerPolySegWorker();
|
|
10
11
|
const data = await computeFunction();
|
|
11
12
|
addRepresentationData({
|
|
12
13
|
segmentationId,
|
|
13
|
-
type
|
|
14
|
+
type,
|
|
14
15
|
data,
|
|
15
16
|
});
|
|
17
|
+
onComputationComplete?.();
|
|
16
18
|
if (!computedRepresentations.has(segmentationId)) {
|
|
17
19
|
computedRepresentations.set(segmentationId, []);
|
|
18
20
|
}
|
|
19
21
|
const representations = computedRepresentations.get(segmentationId);
|
|
20
|
-
if (!representations.includes(
|
|
21
|
-
representations.push(
|
|
22
|
+
if (!representations.includes(type)) {
|
|
23
|
+
representations.push(type);
|
|
22
24
|
}
|
|
23
25
|
subscribeToSegmentationChanges(updateFunction);
|
|
24
26
|
triggerSegmentationModified(segmentationId);
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
|
|
2
|
+
declare function removeSegmentationRepresentation(viewportId: string, specifier: {
|
|
3
|
+
segmentationId: string;
|
|
4
|
+
type: SegmentationRepresentations;
|
|
5
|
+
}, immediate?: boolean): void;
|
|
6
|
+
declare function removeSegmentationRepresentations(viewportId: string, specifier: {
|
|
7
|
+
segmentationId: string;
|
|
8
|
+
type?: SegmentationRepresentations;
|
|
9
|
+
}, immediate?: boolean): void;
|
|
10
|
+
declare function removeAllSegmentationRepresentations(): void;
|
|
11
|
+
declare function removeLabelmapRepresentation(viewportId: string, segmentationId: string, immediate?: boolean): void;
|
|
12
|
+
declare function removeContourRepresentation(viewportId: string, segmentationId: string, immediate?: boolean): void;
|
|
13
|
+
declare function removeSurfaceRepresentation(viewportId: string, segmentationId: string, immediate?: boolean): void;
|
|
14
|
+
export { removeSegmentationRepresentation, removeSegmentationRepresentations, removeAllSegmentationRepresentations, removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, };
|
|
@@ -1,26 +1,76 @@
|
|
|
1
1
|
import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
|
|
2
2
|
import labelmapDisplay from '../../tools/displayTools/Labelmap/labelmapDisplay';
|
|
3
3
|
import contourDisplay from '../../tools/displayTools/Contour/contourDisplay';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
import { getSegmentationRepresentations } from './getSegmentationRepresentation';
|
|
5
|
+
import { getEnabledElementByViewportId } from '@cornerstonejs/core';
|
|
6
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
7
|
+
function removeSegmentationRepresentation(viewportId, specifier, immediate) {
|
|
8
|
+
const { segmentationId, type } = specifier;
|
|
9
|
+
_removeRepresentation(viewportId, segmentationId, type, immediate);
|
|
10
|
+
defaultSegmentationStateManager.removeSegmentationRepresentation(viewportId, {
|
|
11
|
+
segmentationId,
|
|
12
|
+
type,
|
|
11
13
|
});
|
|
12
14
|
}
|
|
13
|
-
function
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
function removeSegmentationRepresentations(viewportId, specifier, immediate) {
|
|
16
|
+
const { segmentationId, type } = specifier;
|
|
17
|
+
defaultSegmentationStateManager.removeSegmentationRepresentations(viewportId, {
|
|
18
|
+
segmentationId,
|
|
19
|
+
type,
|
|
20
|
+
});
|
|
21
|
+
_removeRepresentation(viewportId, segmentationId, type, immediate);
|
|
22
|
+
}
|
|
23
|
+
function removeAllSegmentationRepresentations() {
|
|
24
|
+
const state = defaultSegmentationStateManager.getAllViewportSegmentationRepresentations();
|
|
25
|
+
state.forEach(({ viewportId, representations }) => {
|
|
26
|
+
representations.forEach(({ segmentationId, type }) => {
|
|
27
|
+
removeSegmentationRepresentation(viewportId, {
|
|
28
|
+
segmentationId,
|
|
29
|
+
type,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
defaultSegmentationStateManager.resetState();
|
|
34
|
+
}
|
|
35
|
+
function removeLabelmapRepresentation(viewportId, segmentationId, immediate) {
|
|
36
|
+
removeSegmentationRepresentation(viewportId, {
|
|
37
|
+
segmentationId,
|
|
38
|
+
type: SegmentationRepresentations.Labelmap,
|
|
39
|
+
}, immediate);
|
|
40
|
+
}
|
|
41
|
+
function removeContourRepresentation(viewportId, segmentationId, immediate) {
|
|
42
|
+
removeSegmentationRepresentation(viewportId, {
|
|
43
|
+
segmentationId,
|
|
44
|
+
type: SegmentationRepresentations.Contour,
|
|
45
|
+
}, immediate);
|
|
46
|
+
}
|
|
47
|
+
function removeSurfaceRepresentation(viewportId, segmentationId, immediate) {
|
|
48
|
+
removeSegmentationRepresentation(viewportId, {
|
|
49
|
+
segmentationId,
|
|
50
|
+
type: SegmentationRepresentations.Surface,
|
|
51
|
+
}, immediate);
|
|
52
|
+
}
|
|
53
|
+
function _removeRepresentation(viewportId, segmentationId, type, immediate) {
|
|
54
|
+
const representations = getSegmentationRepresentations(viewportId, {
|
|
55
|
+
segmentationId,
|
|
56
|
+
type,
|
|
57
|
+
});
|
|
58
|
+
representations.forEach((representation) => {
|
|
59
|
+
if (representation.type === type) {
|
|
60
|
+
if (type === SegmentationRepresentations.Labelmap) {
|
|
61
|
+
labelmapDisplay.removeRepresentation(viewportId, segmentationId, immediate);
|
|
62
|
+
}
|
|
63
|
+
else if (type === SegmentationRepresentations.Contour) {
|
|
64
|
+
contourDisplay.removeRepresentation(viewportId, segmentationId, immediate);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw new Error(`The representation ${type} is not supported yet`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const { viewport } = getEnabledElementByViewportId(viewportId);
|
|
72
|
+
if (viewport) {
|
|
73
|
+
viewport.render();
|
|
24
74
|
}
|
|
25
75
|
}
|
|
26
|
-
export
|
|
76
|
+
export { removeSegmentationRepresentation, removeSegmentationRepresentations, removeAllSegmentationRepresentations, removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, };
|
|
@@ -1,29 +1,17 @@
|
|
|
1
1
|
import { getSegmentation } from './getSegmentation';
|
|
2
2
|
import { getSegmentations } from './getSegmentations';
|
|
3
|
-
import {
|
|
3
|
+
import { addSegmentations } from './addSegmentations';
|
|
4
4
|
import { removeSegmentation } from './removeSegmentation';
|
|
5
|
-
import {
|
|
6
|
-
import { getSegmentationRepresentation } from './getSegmentationRepresentation';
|
|
7
|
-
import { removeRepresentation } from './removeRepresentation';
|
|
8
|
-
import { getGlobalConfig } from './getGlobalConfig';
|
|
9
|
-
import { setGlobalConfig } from './setGlobalConfig';
|
|
10
|
-
import { getSegmentationRepresentationConfig } from './getSegmentationRepresentationConfig';
|
|
11
|
-
import { setSegmentationRepresentationConfig } from './setSegmentationRepresentationConfig';
|
|
12
|
-
import { getPerSegmentConfig } from './getPerSegmentConfig';
|
|
13
|
-
import { setPerSegmentConfig } from './setPerSegmentConfig';
|
|
14
|
-
import { getSegmentationRepresentations } from './getSegmentationRepresentations';
|
|
15
|
-
import { getSegmentationRepresentationViewportStates } from './getSegmentationRepresentationViewportStates';
|
|
5
|
+
import { removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, removeSegmentationRepresentation, removeAllSegmentationRepresentations } from './removeSegmentationRepresentations';
|
|
16
6
|
import { addColorLUT } from './addColorLUT';
|
|
17
7
|
import { getColorLUT } from './getColorLUT';
|
|
18
8
|
import { getNextColorLUTIndex } from './getNextColorLUTIndex';
|
|
19
9
|
import { removeColorLUT } from './removeColorLUT';
|
|
20
|
-
import {
|
|
21
|
-
import { getSegmentationRepresentationVisibility } from './getSegmentationRepresentationVisibility';
|
|
22
|
-
import { setSegmentationRepresentationVisibility } from './setSegmentationRepresentationVisibility';
|
|
10
|
+
import { getViewportSegmentations } from './getViewportSegmentations';
|
|
23
11
|
import { getViewportIdsWithSegmentation } from './getViewportIdsWithSegmentation';
|
|
24
|
-
import { getActiveSegmentationRepresentation } from './getActiveSegmentationRepresentation';
|
|
25
|
-
import { setActiveSegmentationRepresentation } from './setActiveSegmentationRepresentation';
|
|
26
12
|
import { getCurrentLabelmapImageIdForViewport } from './getCurrentLabelmapImageIdForViewport';
|
|
27
13
|
import { updateLabelmapSegmentationImageReferences } from './updateLabelmapSegmentationImageReferences';
|
|
28
14
|
import { getStackSegmentationImageIdsForViewport } from './getStackSegmentationImageIdsForViewport';
|
|
29
|
-
|
|
15
|
+
import { getSegmentationRepresentation, getSegmentationRepresentations } from './getSegmentationRepresentation';
|
|
16
|
+
declare function destroy(): void;
|
|
17
|
+
export { getColorLUT, getCurrentLabelmapImageIdForViewport, getNextColorLUTIndex, getSegmentation, getSegmentations, getStackSegmentationImageIdsForViewport, getViewportIdsWithSegmentation, getSegmentationRepresentation, getSegmentationRepresentations, removeColorLUT, getViewportSegmentations, removeSegmentation, removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, removeSegmentationRepresentation, removeAllSegmentationRepresentations, addColorLUT, addSegmentations, updateLabelmapSegmentationImageReferences, destroy, };
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
import { getSegmentation } from './getSegmentation';
|
|
2
2
|
import { getSegmentations } from './getSegmentations';
|
|
3
|
-
import {
|
|
3
|
+
import { addSegmentations } from './addSegmentations';
|
|
4
4
|
import { removeSegmentation } from './removeSegmentation';
|
|
5
|
-
import {
|
|
6
|
-
import { getSegmentationRepresentation } from './getSegmentationRepresentation';
|
|
7
|
-
import { removeRepresentation } from './removeRepresentation';
|
|
8
|
-
import { getGlobalConfig } from './getGlobalConfig';
|
|
9
|
-
import { setGlobalConfig } from './setGlobalConfig';
|
|
10
|
-
import { getSegmentationRepresentationConfig } from './getSegmentationRepresentationConfig';
|
|
11
|
-
import { setSegmentationRepresentationConfig } from './setSegmentationRepresentationConfig';
|
|
12
|
-
import { getPerSegmentConfig } from './getPerSegmentConfig';
|
|
13
|
-
import { setPerSegmentConfig } from './setPerSegmentConfig';
|
|
14
|
-
import { getSegmentationRepresentations } from './getSegmentationRepresentations';
|
|
15
|
-
import { getSegmentationRepresentationViewportStates } from './getSegmentationRepresentationViewportStates';
|
|
5
|
+
import { removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, removeSegmentationRepresentation, removeAllSegmentationRepresentations, } from './removeSegmentationRepresentations';
|
|
16
6
|
import { addColorLUT } from './addColorLUT';
|
|
17
7
|
import { getColorLUT } from './getColorLUT';
|
|
18
8
|
import { getNextColorLUTIndex } from './getNextColorLUTIndex';
|
|
19
9
|
import { removeColorLUT } from './removeColorLUT';
|
|
20
|
-
import {
|
|
21
|
-
import { getSegmentationRepresentationVisibility } from './getSegmentationRepresentationVisibility';
|
|
22
|
-
import { setSegmentationRepresentationVisibility } from './setSegmentationRepresentationVisibility';
|
|
10
|
+
import { getViewportSegmentations } from './getViewportSegmentations';
|
|
23
11
|
import { getViewportIdsWithSegmentation } from './getViewportIdsWithSegmentation';
|
|
24
|
-
import { getActiveSegmentationRepresentation } from './getActiveSegmentationRepresentation';
|
|
25
|
-
import { setActiveSegmentationRepresentation } from './setActiveSegmentationRepresentation';
|
|
26
12
|
import { getCurrentLabelmapImageIdForViewport } from './getCurrentLabelmapImageIdForViewport';
|
|
27
13
|
import { updateLabelmapSegmentationImageReferences } from './updateLabelmapSegmentationImageReferences';
|
|
28
14
|
import { getStackSegmentationImageIdsForViewport } from './getStackSegmentationImageIdsForViewport';
|
|
29
|
-
|
|
15
|
+
import { getSegmentationRepresentation, getSegmentationRepresentations, } from './getSegmentationRepresentation';
|
|
16
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
17
|
+
function destroy() {
|
|
18
|
+
defaultSegmentationStateManager.resetState();
|
|
19
|
+
}
|
|
20
|
+
export { getColorLUT, getCurrentLabelmapImageIdForViewport, getNextColorLUTIndex, getSegmentation, getSegmentations, getStackSegmentationImageIdsForViewport, getViewportIdsWithSegmentation, getSegmentationRepresentation, getSegmentationRepresentations, removeColorLUT, getViewportSegmentations, removeSegmentation, removeLabelmapRepresentation, removeContourRepresentation, removeSurfaceRepresentation, removeSegmentationRepresentation, removeAllSegmentationRepresentations, addColorLUT, addSegmentations, updateLabelmapSegmentationImageReferences, destroy, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function setActiveSegmentation(viewportId: string, segmentationId: string): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
+
export function setActiveSegmentation(viewportId, segmentationId) {
|
|
3
|
+
const segmentationStateManager = defaultSegmentationStateManager;
|
|
4
|
+
segmentationStateManager.setActiveSegmentation(viewportId, segmentationId);
|
|
5
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { segmentationStyle } from './SegmentationStyle';
|
|
2
|
+
import { triggerSegmentationModified } from './triggerSegmentationEvents';
|
|
3
|
+
export function setGlobalStyle(type, styles, suppressEvents) {
|
|
4
|
+
segmentationStyle.setGlobalStyle(type, styles);
|
|
5
|
+
if (!suppressEvents) {
|
|
6
|
+
triggerSegmentationModified();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { SegmentationRepresentations } from '../../enums';
|
|
2
|
+
export declare function setSegmentationRepresentationVisibility(viewportId: string, specifier: {
|
|
3
|
+
segmentationId: string;
|
|
4
|
+
type: SegmentationRepresentations;
|
|
5
|
+
}, visible: boolean): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
-
export function setSegmentationRepresentationVisibility(viewportId,
|
|
2
|
+
export function setSegmentationRepresentationVisibility(viewportId, specifier, visible) {
|
|
3
3
|
const segmentationStateManager = defaultSegmentationStateManager;
|
|
4
|
-
segmentationStateManager.setSegmentationRepresentationVisibility(viewportId,
|
|
4
|
+
segmentationStateManager.setSegmentationRepresentationVisibility(viewportId, specifier, visible);
|
|
5
5
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { triggerSegmentationRepresentationModified } from './events/triggerSegmentationRepresentationModified';
|
|
2
|
-
import { triggerSegmentationRepresentationRemoved } from './events/triggerSegmentationRepresentationRemoved';
|
|
3
1
|
import { triggerSegmentationDataModified } from './events/triggerSegmentationDataModified';
|
|
4
2
|
import { triggerSegmentationModified } from './events/triggerSegmentationModified';
|
|
5
3
|
import { triggerSegmentationRemoved } from './events/triggerSegmentationRemoved';
|
|
6
|
-
export {
|
|
4
|
+
export { triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { triggerSegmentationRepresentationModified } from './events/triggerSegmentationRepresentationModified';
|
|
2
|
-
import { triggerSegmentationRepresentationRemoved } from './events/triggerSegmentationRepresentationRemoved';
|
|
3
1
|
import { triggerSegmentationDataModified } from './events/triggerSegmentationDataModified';
|
|
4
2
|
import { triggerSegmentationModified } from './events/triggerSegmentationModified';
|
|
5
3
|
import { triggerSegmentationRemoved } from './events/triggerSegmentationRemoved';
|
|
6
|
-
export {
|
|
4
|
+
export { triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MouseBindings, ToolModes } from '../../enums';
|
|
2
|
-
import type
|
|
2
|
+
import { type Types } from '@cornerstonejs/core';
|
|
3
3
|
import type { IToolBinding, IToolGroup, SetToolBindingsType, ToolOptionsType, ToolConfiguration } from '../../types';
|
|
4
4
|
import { MouseCursor } from '../../cursors';
|
|
5
5
|
export default class ToolGroup {
|
|
@@ -44,4 +44,5 @@ export default class ToolGroup {
|
|
|
44
44
|
private _hasMousePrimaryButtonBinding;
|
|
45
45
|
private _renderViewports;
|
|
46
46
|
private _triggerToolModeChangedEvent;
|
|
47
|
+
private _findRenderingEngine;
|
|
47
48
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MouseBindings, ToolModes, Events } from '../../enums';
|
|
2
2
|
import get from 'lodash.get';
|
|
3
3
|
import { triggerEvent, eventTarget, getRenderingEngine, getRenderingEngines, getEnabledElementByIds, Settings, } from '@cornerstonejs/core';
|
|
4
|
+
import { utilities } from '@cornerstonejs/core';
|
|
4
5
|
import { state } from '../state';
|
|
5
6
|
import { MouseCursor, SVGMouseCursor } from '../../cursors';
|
|
6
7
|
import { initElementCursor } from '../../cursors/elementCursor';
|
|
@@ -82,14 +83,7 @@ export default class ToolGroup {
|
|
|
82
83
|
if (typeof viewportId !== 'string') {
|
|
83
84
|
throw new Error('viewportId must be defined and be a string');
|
|
84
85
|
}
|
|
85
|
-
const
|
|
86
|
-
if (renderingEngines?.length === 0) {
|
|
87
|
-
throw new Error('No rendering engines found.');
|
|
88
|
-
}
|
|
89
|
-
if (renderingEngines.length > 1) {
|
|
90
|
-
throw new Error('Multiple rendering engines found. You must specify a renderingEngineId.');
|
|
91
|
-
}
|
|
92
|
-
const renderingEngineUIDToUse = renderingEngineId || renderingEngines[0].id;
|
|
86
|
+
const renderingEngineUIDToUse = this._findRenderingEngine(viewportId, renderingEngineId);
|
|
93
87
|
if (!this.viewportsInfo.some(({ viewportId: vpId }) => vpId === viewportId)) {
|
|
94
88
|
this.viewportsInfo.push({
|
|
95
89
|
viewportId,
|
|
@@ -379,7 +373,7 @@ export default class ToolGroup {
|
|
|
379
373
|
}
|
|
380
374
|
const _configuration = get(this._toolInstances[toolName].configuration, configurationPath) ||
|
|
381
375
|
this._toolInstances[toolName].configuration;
|
|
382
|
-
return
|
|
376
|
+
return utilities.deepClone(_configuration);
|
|
383
377
|
}
|
|
384
378
|
getPrevActivePrimaryToolName() {
|
|
385
379
|
return this.prevActivePrimaryToolName;
|
|
@@ -434,6 +428,26 @@ export default class ToolGroup {
|
|
|
434
428
|
};
|
|
435
429
|
triggerEvent(eventTarget, Events.TOOL_MODE_CHANGED, eventDetail);
|
|
436
430
|
}
|
|
431
|
+
_findRenderingEngine(viewportId, renderingEngineId) {
|
|
432
|
+
const renderingEngines = getRenderingEngines();
|
|
433
|
+
if (renderingEngines?.length === 0) {
|
|
434
|
+
throw new Error('No rendering engines found.');
|
|
435
|
+
}
|
|
436
|
+
if (renderingEngineId) {
|
|
437
|
+
return renderingEngineId;
|
|
438
|
+
}
|
|
439
|
+
const matchingEngines = renderingEngines.filter((engine) => engine.getViewport(viewportId));
|
|
440
|
+
if (matchingEngines.length === 0) {
|
|
441
|
+
if (renderingEngines.length === 1) {
|
|
442
|
+
return renderingEngines[0].id;
|
|
443
|
+
}
|
|
444
|
+
throw new Error('No rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.');
|
|
445
|
+
}
|
|
446
|
+
if (matchingEngines.length > 1) {
|
|
447
|
+
throw new Error('Multiple rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.');
|
|
448
|
+
}
|
|
449
|
+
return matchingEngines[0].id;
|
|
450
|
+
}
|
|
437
451
|
}
|
|
438
452
|
function hasSameBinding(binding1, binding2) {
|
|
439
453
|
if (binding1.mouseButton !== binding2.mouseButton) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { state } from '../state';
|
|
2
2
|
import ToolGroup from './ToolGroup';
|
|
3
3
|
function createToolGroup(toolGroupId) {
|
|
4
|
-
const
|
|
5
|
-
if (
|
|
4
|
+
const toolGroupWithSameId = state.toolGroups.find((tg) => tg.id === toolGroupId);
|
|
5
|
+
if (toolGroupWithSameId) {
|
|
6
6
|
console.warn(`'${toolGroupId}' already exists.`);
|
|
7
|
-
return;
|
|
7
|
+
return toolGroupWithSameId;
|
|
8
8
|
}
|
|
9
9
|
const toolGroup = new ToolGroup(toolGroupId);
|
|
10
10
|
state.toolGroups.push(toolGroup);
|