@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
|
@@ -2,6 +2,6 @@ import mouseEventListeners from './mouse';
|
|
|
2
2
|
import touchEventListeners from './touch';
|
|
3
3
|
import wheelEventListener from './wheel';
|
|
4
4
|
import keyEventListener from './keyboard';
|
|
5
|
-
import { segmentationDataModifiedEventListener,
|
|
5
|
+
import { segmentationDataModifiedEventListener, segmentationModifiedListener, imageChangeEventListener } from './segmentation';
|
|
6
6
|
import { annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener } from './annotations';
|
|
7
|
-
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener,
|
|
7
|
+
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener, segmentationModifiedListener, segmentationDataModifiedEventListener, imageChangeEventListener, annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener, };
|
|
@@ -2,6 +2,6 @@ import mouseEventListeners from './mouse';
|
|
|
2
2
|
import touchEventListeners from './touch';
|
|
3
3
|
import wheelEventListener from './wheel';
|
|
4
4
|
import keyEventListener from './keyboard';
|
|
5
|
-
import { segmentationDataModifiedEventListener,
|
|
5
|
+
import { segmentationDataModifiedEventListener, segmentationModifiedListener, imageChangeEventListener, } from './segmentation';
|
|
6
6
|
import { annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener, } from './annotations';
|
|
7
|
-
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener,
|
|
7
|
+
export { mouseEventListeners, touchEventListeners, wheelEventListener, keyEventListener, segmentationModifiedListener, segmentationDataModifiedEventListener, imageChangeEventListener, annotationCompletedListener, annotationSelectionListener, annotationModifiedListener, annotationRemovedListener, };
|
|
@@ -229,6 +229,14 @@ function _updateMouseEventsLastPoints(element, lastPoints) {
|
|
|
229
229
|
};
|
|
230
230
|
}
|
|
231
231
|
function _getDeltaPoints(currentPoints, lastPoints) {
|
|
232
|
+
if (!currentPoints || !lastPoints) {
|
|
233
|
+
return {
|
|
234
|
+
page: [0, 0],
|
|
235
|
+
client: [0, 0],
|
|
236
|
+
canvas: [0, 0],
|
|
237
|
+
world: [0, 0, 0],
|
|
238
|
+
};
|
|
239
|
+
}
|
|
232
240
|
return {
|
|
233
241
|
page: _subtractPoints2D(currentPoints.page, lastPoints.page),
|
|
234
242
|
client: _subtractPoints2D(currentPoints.client, lastPoints.client),
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
|
|
2
2
|
import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
3
3
|
import { BaseVolumeViewport, getEnabledElement, Enums, getEnabledElementByIds, cache, utilities, } from '@cornerstonejs/core';
|
|
4
|
-
import Representations from '../../enums/SegmentationRepresentations';
|
|
5
4
|
import { triggerSegmentationRender } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
6
|
-
import { getSegmentationRepresentations } from '../../stateManagement/segmentation/getSegmentationRepresentations';
|
|
7
5
|
import { updateLabelmapSegmentationImageReferences } from '../../stateManagement/segmentation/updateLabelmapSegmentationImageReferences';
|
|
8
6
|
import { getCurrentLabelmapImageIdForViewport } from '../../stateManagement/segmentation/getCurrentLabelmapImageIdForViewport';
|
|
7
|
+
import { SegmentationRepresentations } from '../../enums';
|
|
8
|
+
import { getLabelmapActorUID } from '../../stateManagement/segmentation/helpers/getSegmentationActor';
|
|
9
|
+
import { getSegmentationRepresentations } from '../../stateManagement/segmentation/getSegmentationRepresentation';
|
|
9
10
|
const enable = function (element) {
|
|
10
11
|
const { viewport } = getEnabledElement(element);
|
|
11
12
|
if (viewport instanceof BaseVolumeViewport) {
|
|
@@ -23,21 +24,26 @@ function _imageChangeEventListener(evt) {
|
|
|
23
24
|
const eventData = evt.detail;
|
|
24
25
|
const { viewportId, renderingEngineId } = eventData;
|
|
25
26
|
const { viewport } = getEnabledElementByIds(viewportId, renderingEngineId);
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const labelmapRepresentations = segmentationRepresentations.filter((representation) => representation.type === Representations.Labelmap);
|
|
31
|
-
if (!labelmapRepresentations.length) {
|
|
27
|
+
const representations = getSegmentationRepresentations(viewportId);
|
|
28
|
+
if (!representations?.length) {
|
|
32
29
|
return;
|
|
33
30
|
}
|
|
31
|
+
const labelmapRepresentations = representations.filter((representation) => representation.type === SegmentationRepresentations.Labelmap);
|
|
34
32
|
const actors = viewport.getActors();
|
|
35
33
|
labelmapRepresentations.forEach((representation) => {
|
|
36
34
|
const { segmentationId } = representation;
|
|
37
|
-
|
|
35
|
+
updateLabelmapSegmentationImageReferences(viewportId, segmentationId);
|
|
38
36
|
});
|
|
39
|
-
const
|
|
40
|
-
|
|
37
|
+
const labelmapActors = labelmapRepresentations
|
|
38
|
+
.map((representation) => {
|
|
39
|
+
const actorUID = getLabelmapActorUID(representation.segmentationId);
|
|
40
|
+
return actors.find((actor) => actor.uid === actorUID);
|
|
41
|
+
})
|
|
42
|
+
.filter((actor) => actor !== undefined);
|
|
43
|
+
if (!labelmapActors.length) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
labelmapActors.forEach((actor) => {
|
|
41
47
|
const validActor = labelmapRepresentations.find((representation) => {
|
|
42
48
|
const derivedImageId = getCurrentLabelmapImageIdForViewport(viewportId, representation.segmentationId);
|
|
43
49
|
return derivedImageId === actor.referencedId;
|
|
@@ -82,7 +88,7 @@ function _imageChangeEventListener(evt) {
|
|
|
82
88
|
viewport.addImages([
|
|
83
89
|
{
|
|
84
90
|
imageId: derivedImageId,
|
|
85
|
-
actorUID:
|
|
91
|
+
actorUID: getLabelmapActorUID(segmentationId),
|
|
86
92
|
callback: ({ imageActor }) => {
|
|
87
93
|
imageActor.getMapper().setInputData(imageData);
|
|
88
94
|
},
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import segmentationRepresentationModifiedEventListener from './segmentationRepresentationModifiedEventListener';
|
|
2
1
|
import segmentationDataModifiedEventListener from './segmentationDataModifiedEventListener';
|
|
3
|
-
import segmentationRepresentationRemovedEventListener from './segmentationRepresentationRemovedEventListener';
|
|
4
2
|
import segmentationModifiedListener from './segmentationModifiedEventListener';
|
|
5
3
|
import imageChangeEventListener from './imageChangeEventListener';
|
|
6
|
-
export {
|
|
4
|
+
export { segmentationDataModifiedEventListener, segmentationModifiedListener, imageChangeEventListener, };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import segmentationRepresentationModifiedEventListener from './segmentationRepresentationModifiedEventListener';
|
|
2
1
|
import segmentationDataModifiedEventListener from './segmentationDataModifiedEventListener';
|
|
3
|
-
import segmentationRepresentationRemovedEventListener from './segmentationRepresentationRemovedEventListener';
|
|
4
2
|
import segmentationModifiedListener from './segmentationModifiedEventListener';
|
|
5
3
|
import imageChangeEventListener from './imageChangeEventListener';
|
|
6
|
-
export {
|
|
4
|
+
export { segmentationDataModifiedEventListener, segmentationModifiedListener, imageChangeEventListener, };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { cache, utilities as csUtils, VolumeViewport, getEnabledElementByViewportId, StackViewport, } from '@cornerstonejs/core';
|
|
2
2
|
import * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
|
|
3
|
+
import { getSegmentationActor } from '../../../stateManagement/segmentation/helpers';
|
|
4
|
+
import { SegmentationRepresentations } from '../../../enums';
|
|
3
5
|
const onLabelmapSegmentationDataModified = function (evt) {
|
|
4
6
|
const { segmentationId, modifiedSlicesToUse } = evt.detail;
|
|
5
|
-
const { representationData
|
|
7
|
+
const { representationData } = SegmentationState.getSegmentation(segmentationId);
|
|
6
8
|
const viewportIds = SegmentationState.getViewportIdsWithSegmentation(segmentationId);
|
|
7
9
|
const hasVolumeViewport = viewportIds.some((viewportId) => {
|
|
8
10
|
const { viewport } = getEnabledElementByViewportId(viewportId);
|
|
@@ -19,7 +21,7 @@ const onLabelmapSegmentationDataModified = function (evt) {
|
|
|
19
21
|
performVolumeLabelmapUpdate({
|
|
20
22
|
modifiedSlicesToUse: hasBothStackAndVolume ? [] : modifiedSlicesToUse,
|
|
21
23
|
representationData,
|
|
22
|
-
type,
|
|
24
|
+
type: SegmentationRepresentations.Labelmap,
|
|
23
25
|
});
|
|
24
26
|
}
|
|
25
27
|
if (viewport instanceof StackViewport) {
|
|
@@ -52,8 +54,9 @@ function performVolumeLabelmapUpdate({ modifiedSlicesToUse, representationData,
|
|
|
52
54
|
}
|
|
53
55
|
function performStackLabelmapUpdate({ viewportIds, segmentationId }) {
|
|
54
56
|
viewportIds.forEach((viewportId) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
let representations = SegmentationState.getSegmentationRepresentations(viewportId, { segmentationId });
|
|
58
|
+
representations = representations.filter((representation) => representation.type === SegmentationRepresentations.Labelmap);
|
|
59
|
+
representations.forEach((representation) => {
|
|
57
60
|
if (representation.segmentationId !== segmentationId) {
|
|
58
61
|
return;
|
|
59
62
|
}
|
|
@@ -65,12 +68,12 @@ function performStackLabelmapUpdate({ viewportIds, segmentationId }) {
|
|
|
65
68
|
if (viewport instanceof VolumeViewport) {
|
|
66
69
|
return;
|
|
67
70
|
}
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
const segImageData =
|
|
73
|
-
const currentSegmentationImageId = SegmentationState.getCurrentLabelmapImageIdForViewport(viewportId,
|
|
71
|
+
const actor = getSegmentationActor(viewportId, {
|
|
72
|
+
segmentationId,
|
|
73
|
+
type: SegmentationRepresentations.Labelmap,
|
|
74
|
+
});
|
|
75
|
+
const segImageData = actor.getMapper().getInputData();
|
|
76
|
+
const currentSegmentationImageId = SegmentationState.getCurrentLabelmapImageIdForViewport(viewportId, segmentationId);
|
|
74
77
|
const segmentationImage = cache.getImage(currentSegmentationImageId);
|
|
75
78
|
segImageData.modified();
|
|
76
79
|
csUtils.updateVTKImageDataWithCornerstoneImage(segImageData, segmentationImage);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
|
|
2
1
|
import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
3
2
|
import onLabelmapSegmentationDataModified from './labelmap/onLabelmapSegmentationDataModified';
|
|
4
3
|
import { getSegmentation } from '../../stateManagement/segmentation/getSegmentation';
|
|
5
4
|
const onSegmentationDataModified = function (evt) {
|
|
6
5
|
const { segmentationId } = evt.detail;
|
|
7
|
-
const {
|
|
8
|
-
if (
|
|
6
|
+
const { representationData } = getSegmentation(segmentationId);
|
|
7
|
+
if (representationData.Labelmap) {
|
|
9
8
|
onLabelmapSegmentationDataModified(evt);
|
|
10
9
|
}
|
|
11
10
|
triggerSegmentationRenderBySegmentationId(segmentationId);
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import * as cursors from './cursors';
|
|
|
9
9
|
import * as Types from './types';
|
|
10
10
|
import * as annotation from './stateManagement/annotation';
|
|
11
11
|
import * as segmentation from './stateManagement/segmentation';
|
|
12
|
-
import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool,
|
|
12
|
+
import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool } from './tools';
|
|
13
13
|
import VideoRedactionTool from './tools/annotation/VideoRedactionTool';
|
|
14
14
|
import * as Enums from './enums';
|
|
15
|
-
export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool,
|
|
15
|
+
export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
package/dist/esm/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import * as cursors from './cursors';
|
|
|
9
9
|
import * as Types from './types';
|
|
10
10
|
import * as annotation from './stateManagement/annotation';
|
|
11
11
|
import * as segmentation from './stateManagement/segmentation';
|
|
12
|
-
import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool,
|
|
12
|
+
import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool, } from './tools';
|
|
13
13
|
import VideoRedactionTool from './tools/annotation/VideoRedactionTool';
|
|
14
14
|
import * as Enums from './enums';
|
|
15
|
-
export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool,
|
|
15
|
+
export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
package/dist/esm/init.js
CHANGED
|
@@ -3,7 +3,7 @@ import { getAnnotationManager } from './stateManagement/annotation/annotationSta
|
|
|
3
3
|
import { Events as TOOLS_EVENTS } from './enums';
|
|
4
4
|
import { addEnabledElement, removeEnabledElement } from './store';
|
|
5
5
|
import { resetCornerstoneToolsState } from './store/state';
|
|
6
|
-
import { annotationCompletedListener, annotationRemovedListener, annotationSelectionListener, annotationModifiedListener, segmentationDataModifiedEventListener,
|
|
6
|
+
import { annotationCompletedListener, annotationRemovedListener, annotationSelectionListener, annotationModifiedListener, segmentationDataModifiedEventListener, segmentationModifiedListener, } from './eventListeners';
|
|
7
7
|
import { annotationInterpolationEventDispatcher } from './eventDispatchers';
|
|
8
8
|
import * as ToolGroupManager from './store/ToolGroupManager';
|
|
9
9
|
import { defaultSegmentationStateManager } from './stateManagement/segmentation/SegmentationStateManager';
|
|
@@ -51,8 +51,6 @@ function _addCornerstoneToolsEventListeners() {
|
|
|
51
51
|
eventTarget.addEventListener(TOOLS_EVENTS.ANNOTATION_REMOVED, annotationRemovedListener);
|
|
52
52
|
eventTarget.addEventListener(TOOLS_EVENTS.SEGMENTATION_MODIFIED, segmentationModifiedListener);
|
|
53
53
|
eventTarget.addEventListener(TOOLS_EVENTS.SEGMENTATION_DATA_MODIFIED, segmentationDataModifiedEventListener);
|
|
54
|
-
eventTarget.addEventListener(TOOLS_EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED, segmentationRepresentationModifiedEventListener);
|
|
55
|
-
eventTarget.addEventListener(TOOLS_EVENTS.SEGMENTATION_REPRESENTATION_REMOVED, segmentationRepresentationRemovedEventListener);
|
|
56
54
|
}
|
|
57
55
|
function _removeCornerstoneToolsEventListeners() {
|
|
58
56
|
eventTarget.removeEventListener(TOOLS_EVENTS.ANNOTATION_COMPLETED, annotationCompletedListener);
|
|
@@ -61,7 +59,5 @@ function _removeCornerstoneToolsEventListeners() {
|
|
|
61
59
|
eventTarget.removeEventListener(TOOLS_EVENTS.ANNOTATION_SELECTION_CHANGE, annotationSelectionListener);
|
|
62
60
|
eventTarget.removeEventListener(TOOLS_EVENTS.SEGMENTATION_MODIFIED, segmentationModifiedListener);
|
|
63
61
|
eventTarget.removeEventListener(TOOLS_EVENTS.SEGMENTATION_DATA_MODIFIED, segmentationDataModifiedEventListener);
|
|
64
|
-
eventTarget.removeEventListener(TOOLS_EVENTS.SEGMENTATION_REPRESENTATION_MODIFIED, segmentationRepresentationModifiedEventListener);
|
|
65
|
-
eventTarget.removeEventListener(TOOLS_EVENTS.SEGMENTATION_REPRESENTATION_REMOVED, segmentationRepresentationRemovedEventListener);
|
|
66
62
|
}
|
|
67
63
|
export default init;
|
|
@@ -4,6 +4,7 @@ import type { Types } from '@cornerstonejs/core';
|
|
|
4
4
|
declare class FrameOfReferenceSpecificAnnotationManager implements IAnnotationManager {
|
|
5
5
|
private annotations;
|
|
6
6
|
readonly uid: string;
|
|
7
|
+
private preprocessingFn;
|
|
7
8
|
constructor(uid?: string);
|
|
8
9
|
getGroupKey: (annotationGroupSelector: AnnotationGroupSelector) => string;
|
|
9
10
|
_imageVolumeModifiedHandler: (evt: Types.EventTypes.ImageVolumeModifiedEvent) => void;
|
|
@@ -19,6 +20,7 @@ declare class FrameOfReferenceSpecificAnnotationManager implements IAnnotationMa
|
|
|
19
20
|
getAllAnnotations: () => Annotations;
|
|
20
21
|
getNumberOfAllAnnotations: () => number;
|
|
21
22
|
removeAllAnnotations: () => Annotations;
|
|
23
|
+
setPreprocessingFn(preprocessingFn: (annotation: Annotation) => Annotation): void;
|
|
22
24
|
}
|
|
23
25
|
declare const defaultFrameOfReferenceSpecificAnnotationManager: FrameOfReferenceSpecificAnnotationManager;
|
|
24
26
|
export { defaultFrameOfReferenceSpecificAnnotationManager };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Enums, eventTarget, getEnabledElement, utilities, } from '@cornerstonejs/core';
|
|
2
|
-
import { checkAndDefineIsLockedProperty } from './annotationLocking';
|
|
3
|
-
import { checkAndDefineTextBoxProperty, checkAndDefineCachedStatsProperty, } from './utilities/defineProperties';
|
|
4
2
|
class FrameOfReferenceSpecificAnnotationManager {
|
|
5
3
|
constructor(uid) {
|
|
6
4
|
this.getGroupKey = (annotationGroupSelector) => {
|
|
@@ -90,10 +88,10 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
90
88
|
frameOfReferenceSpecificAnnotations[toolName] = [];
|
|
91
89
|
toolSpecificAnnotations = frameOfReferenceSpecificAnnotations[toolName];
|
|
92
90
|
}
|
|
91
|
+
if (this.preprocessingFn) {
|
|
92
|
+
annotation = this.preprocessingFn(annotation);
|
|
93
|
+
}
|
|
93
94
|
toolSpecificAnnotations.push(annotation);
|
|
94
|
-
checkAndDefineIsLockedProperty(annotation);
|
|
95
|
-
checkAndDefineTextBoxProperty(annotation);
|
|
96
|
-
checkAndDefineCachedStatsProperty(annotation);
|
|
97
95
|
};
|
|
98
96
|
this.removeAnnotation = (annotationUID) => {
|
|
99
97
|
const { annotations } = this;
|
|
@@ -203,6 +201,9 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
203
201
|
this.uid = uid;
|
|
204
202
|
eventTarget.addEventListener(Enums.Events.IMAGE_VOLUME_MODIFIED, this._imageVolumeModifiedHandler);
|
|
205
203
|
}
|
|
204
|
+
setPreprocessingFn(preprocessingFn) {
|
|
205
|
+
this.preprocessingFn = preprocessingFn;
|
|
206
|
+
}
|
|
206
207
|
}
|
|
207
208
|
const defaultFrameOfReferenceSpecificAnnotationManager = new FrameOfReferenceSpecificAnnotationManager('DEFAULT');
|
|
208
209
|
export { defaultFrameOfReferenceSpecificAnnotationManager };
|
|
@@ -2,8 +2,18 @@ import { utilities as csUtils } from '@cornerstonejs/core';
|
|
|
2
2
|
import { defaultFrameOfReferenceSpecificAnnotationManager } from './FrameOfReferenceSpecificAnnotationManager';
|
|
3
3
|
import { getAnnotation } from './getAnnotation';
|
|
4
4
|
import { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, triggerAnnotationRemoved, } from './helpers/state';
|
|
5
|
+
import { checkAndDefineIsLockedProperty } from './annotationLocking';
|
|
6
|
+
import { checkAndDefineCachedStatsProperty, checkAndDefineTextBoxProperty, } from './utilities/defineProperties';
|
|
5
7
|
import { checkAndDefineIsVisibleProperty } from './annotationVisibility';
|
|
6
8
|
let defaultManager = defaultFrameOfReferenceSpecificAnnotationManager;
|
|
9
|
+
const preprocessingFn = (annotation) => {
|
|
10
|
+
checkAndDefineIsLockedProperty(annotation);
|
|
11
|
+
checkAndDefineTextBoxProperty(annotation);
|
|
12
|
+
checkAndDefineIsVisibleProperty(annotation);
|
|
13
|
+
checkAndDefineCachedStatsProperty(annotation);
|
|
14
|
+
return annotation;
|
|
15
|
+
};
|
|
16
|
+
defaultManager.setPreprocessingFn(preprocessingFn);
|
|
7
17
|
function getAnnotationManager() {
|
|
8
18
|
return defaultManager;
|
|
9
19
|
}
|
|
@@ -57,7 +67,6 @@ function addAnnotation(annotation, annotationGroupSelector) {
|
|
|
57
67
|
if (!annotation.annotationUID) {
|
|
58
68
|
annotation.annotationUID = csUtils.uuidv4();
|
|
59
69
|
}
|
|
60
|
-
checkAndDefineIsVisibleProperty(annotation);
|
|
61
70
|
const manager = getAnnotationManager();
|
|
62
71
|
if (annotationGroupSelector instanceof HTMLDivElement) {
|
|
63
72
|
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
@@ -65,7 +74,7 @@ function addAnnotation(annotation, annotationGroupSelector) {
|
|
|
65
74
|
triggerAnnotationAddedForElement(annotation, annotationGroupSelector);
|
|
66
75
|
}
|
|
67
76
|
else {
|
|
68
|
-
manager.addAnnotation(annotation);
|
|
77
|
+
manager.addAnnotation(annotation, undefined);
|
|
69
78
|
triggerAnnotationAddedForFOR(annotation);
|
|
70
79
|
}
|
|
71
80
|
return annotation.annotationUID;
|
|
@@ -15,7 +15,4 @@ import { setAnnotationManager } from './annotation/annotationState';
|
|
|
15
15
|
import { getAnnotationManager } from './annotation/annotationState';
|
|
16
16
|
import { resetAnnotationManager } from './annotation/annotationState';
|
|
17
17
|
import { invalidateAnnotation } from './annotation/annotationState';
|
|
18
|
-
|
|
19
|
-
import { addMultiViewportSegmentationRepresentations } from './segmentation/addSegmentationRepresentations';
|
|
20
|
-
import removeSegmentationRepresentations from './segmentation/removeSegmentationRepresentations';
|
|
21
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, addSegmentationRepresentations, addMultiViewportSegmentationRepresentations, removeSegmentationRepresentations };
|
|
18
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation };
|
|
@@ -2,6 +2,4 @@ import FrameOfReferenceSpecificAnnotationManager, { defaultFrameOfReferenceSpeci
|
|
|
2
2
|
import * as annotationLocking from './annotation/annotationLocking';
|
|
3
3
|
import * as annotationSelection from './annotation/annotationSelection';
|
|
4
4
|
import { getAnnotations, addAnnotation, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, } from './annotation/annotationState';
|
|
5
|
-
|
|
6
|
-
import removeSegmentationRepresentations from './segmentation/removeSegmentationRepresentations';
|
|
7
|
-
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, addSegmentationRepresentations, addMultiViewportSegmentationRepresentations, removeSegmentationRepresentations, };
|
|
5
|
+
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { triggerEvent, eventTarget, Enums, getRenderingEngines, getEnabledElementByViewportId, } from '@cornerstonejs/core';
|
|
2
2
|
import { SegmentationRepresentations, Events as csToolsEvents, } from '../../enums';
|
|
3
3
|
import Representations from '../../enums/SegmentationRepresentations';
|
|
4
|
-
import { getSegmentationRepresentations } from './
|
|
4
|
+
import { getSegmentationRepresentations } from './getSegmentationRepresentation';
|
|
5
5
|
import surfaceDisplay from '../../tools/displayTools/Surface/surfaceDisplay';
|
|
6
6
|
import contourDisplay from '../../tools/displayTools/Contour/contourDisplay';
|
|
7
7
|
import labelmapDisplay from '../../tools/displayTools/Labelmap/labelmapDisplay';
|
|
@@ -50,15 +50,15 @@ class SegmentationRenderingEngine {
|
|
|
50
50
|
const viewportIds = [];
|
|
51
51
|
for (const viewport of viewports) {
|
|
52
52
|
const viewportId = viewport.id;
|
|
53
|
-
const segmentationRepresentations = getSegmentationRepresentations(viewportId);
|
|
54
53
|
if (segmentationId) {
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
54
|
+
const segmentationRepresentations = getSegmentationRepresentations(viewportId, { segmentationId });
|
|
55
|
+
if (segmentationRepresentations?.length > 0) {
|
|
57
56
|
viewportIds.push(viewportId);
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
else {
|
|
61
|
-
|
|
60
|
+
const segmentationRepresentations = getSegmentationRepresentations(viewportId);
|
|
61
|
+
if (segmentationRepresentations?.length > 0) {
|
|
62
62
|
viewportIds.push(viewportId);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -87,7 +87,10 @@ class SegmentationRenderingEngine {
|
|
|
87
87
|
if (!segmentationRepresentations?.length) {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
const { viewport } = getEnabledElementByViewportId(viewportId);
|
|
90
|
+
const { viewport } = getEnabledElementByViewportId(viewportId) || {};
|
|
91
|
+
if (!viewport) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
91
94
|
const viewportRenderList = [];
|
|
92
95
|
const segmentationRenderList = segmentationRepresentations.map((representation) => {
|
|
93
96
|
if (representation.type === SegmentationRepresentations.Contour) {
|
|
@@ -1,47 +1,65 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
|
-
import
|
|
2
|
+
import { SegmentationRepresentations } from '../../enums';
|
|
3
|
+
import type { RenderingConfig, Segmentation, SegmentationRepresentation, SegmentationState } from '../../types/SegmentationStateTypes';
|
|
3
4
|
export default class SegmentationStateManager {
|
|
4
5
|
private state;
|
|
5
6
|
readonly uid: string;
|
|
6
7
|
private _stackLabelmapImageIdReferenceMap;
|
|
7
8
|
constructor(uid?: string);
|
|
8
|
-
getState(): SegmentationState
|
|
9
|
+
getState(): Readonly<SegmentationState>;
|
|
10
|
+
private updateState;
|
|
9
11
|
getColorLUT(lutIndex: number): Types.ColorLUT | undefined;
|
|
10
12
|
getNextColorLUTIndex(): number;
|
|
11
13
|
resetState(): void;
|
|
12
14
|
getSegmentation(segmentationId: string): Segmentation | undefined;
|
|
13
15
|
addSegmentation(segmentation: Segmentation): void;
|
|
14
16
|
removeSegmentation(segmentationId: string): void;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
addSegmentationRepresentation(viewportId: string, segmentationId: string, type: SegmentationRepresentations, renderingConfig: RenderingConfig): void;
|
|
18
|
+
private addDefaultSegmentationRepresentation;
|
|
19
|
+
addLabelmapRepresentation(state: SegmentationState, viewportId: string, segmentationId: string, renderingConfig?: RenderingConfig): void;
|
|
20
|
+
processLabelmapRepresentationAddition(viewportId: string, segmentationId: string): void;
|
|
21
|
+
_updateLabelmapSegmentationReferences(segmentationId: any, viewport: any, labelmapImageIds: any, updateCallback: any): string;
|
|
19
22
|
updateLabelmapSegmentationImageReferences(viewportId: any, segmentationId: any): string;
|
|
20
23
|
_updateAllLabelmapSegmentationImageReferences(viewportId: any, segmentationId: any): void;
|
|
21
24
|
private getLabelmapImageIds;
|
|
22
25
|
getCurrentLabelmapImageIdForViewport(viewportId: string, segmentationId: string): string | undefined;
|
|
23
26
|
getStackSegmentationImageIdsForViewport(viewportId: string, segmentationId: string): string[];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
removeSegmentationRepresentations(viewportId: string, specifier?: {
|
|
28
|
+
segmentationId?: string;
|
|
29
|
+
type?: SegmentationRepresentations;
|
|
30
|
+
}): void;
|
|
31
|
+
removeSegmentationRepresentation(viewportId: string, specifier: {
|
|
32
|
+
segmentationId: string;
|
|
33
|
+
type: SegmentationRepresentations;
|
|
34
|
+
}): void;
|
|
35
|
+
_setActiveSegmentation(state: SegmentationState, viewportId: string, segmentationId: string): void;
|
|
36
|
+
setActiveSegmentation(viewportId: string, segmentationId: string): void;
|
|
37
|
+
getActiveSegmentation(viewportId: string): Segmentation | undefined;
|
|
38
|
+
getSegmentationRepresentations(viewportId: string, specifier?: {
|
|
39
|
+
segmentationId?: string;
|
|
40
|
+
type?: SegmentationRepresentations;
|
|
41
|
+
}): SegmentationRepresentation[];
|
|
42
|
+
getSegmentationRepresentation(viewportId: string, specifier: {
|
|
43
|
+
segmentationId: string;
|
|
44
|
+
type: SegmentationRepresentations;
|
|
45
|
+
}): SegmentationRepresentation | undefined;
|
|
46
|
+
getSegmentationRepresentationVisibility(viewportId: string, specifier: {
|
|
47
|
+
segmentationId: string;
|
|
48
|
+
type: SegmentationRepresentations;
|
|
49
|
+
}): boolean;
|
|
50
|
+
setSegmentationRepresentationVisibility(viewportId: string, specifier: {
|
|
51
|
+
segmentationId: string;
|
|
52
|
+
type: SegmentationRepresentations;
|
|
53
|
+
}, visible: boolean): void;
|
|
40
54
|
addColorLUT(colorLUT: Types.ColorLUT, lutIndex: number): void;
|
|
41
55
|
removeColorLUT(colorLUTIndex: number): void;
|
|
42
56
|
_getStackIdForImageIds(imageIds: string[]): string;
|
|
57
|
+
getAllViewportSegmentationRepresentations(): Array<{
|
|
58
|
+
viewportId: string;
|
|
59
|
+
representations: SegmentationRepresentation[];
|
|
60
|
+
}>;
|
|
43
61
|
}
|
|
44
|
-
declare function
|
|
62
|
+
declare function internalComputeVolumeLabelmapFromStack({ imageIds, options, }: {
|
|
45
63
|
imageIds: string[];
|
|
46
64
|
options?: {
|
|
47
65
|
volumeId?: string;
|
|
@@ -49,7 +67,7 @@ declare function computeVolumeSegmentationFromStack({ imageIds, options, }: {
|
|
|
49
67
|
}): Promise<{
|
|
50
68
|
volumeId: string;
|
|
51
69
|
}>;
|
|
52
|
-
declare function
|
|
70
|
+
declare function internalConvertStackToVolumeLabelmap({ segmentationId, options, }: {
|
|
53
71
|
segmentationId: string;
|
|
54
72
|
options?: {
|
|
55
73
|
viewportId: string;
|
|
@@ -58,4 +76,4 @@ declare function convertStackToVolumeSegmentation({ segmentationId, options, }:
|
|
|
58
76
|
};
|
|
59
77
|
}): Promise<void>;
|
|
60
78
|
declare const defaultSegmentationStateManager: SegmentationStateManager;
|
|
61
|
-
export {
|
|
79
|
+
export { internalConvertStackToVolumeLabelmap, internalComputeVolumeLabelmapFromStack, defaultSegmentationStateManager, };
|