@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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -22,7 +22,7 @@ import type ScrollOptions from './ScrollOptions';
|
|
|
22
22
|
import type BoundsIJK from './BoundsIJK';
|
|
23
23
|
import type SVGDrawingHelper from './SVGDrawingHelper';
|
|
24
24
|
import type * as CINETypes from './CINETypes';
|
|
25
|
-
import type {
|
|
25
|
+
import type { RepresentationData, RepresentationsData, Segmentation, SegmentationState } from './SegmentationStateTypes';
|
|
26
26
|
import type { ISculptToolShape } from './ISculptToolShape';
|
|
27
27
|
import type ISynchronizerEventHandler from './ISynchronizerEventHandler';
|
|
28
28
|
import type { FloodFillGetter, FloodFillOptions, FloodFillResult } from './FloodFillTypes';
|
|
@@ -47,4 +47,4 @@ import type { SplineProps } from './SplineProps';
|
|
|
47
47
|
import type { BidirectionalData } from '../utilities/segmentation/createBidirectionalToolData';
|
|
48
48
|
import type { PolySegConversionOptions } from './PolySeg';
|
|
49
49
|
import type { IBaseTool } from './IBaseTool';
|
|
50
|
-
export type { Annotation, Annotations, ContourAnnotationData, ContourAnnotation, ContourSegmentationAnnotationData, ContourSegmentationAnnotation, BidirectionalData, CanvasCoordinates, IAnnotationManager, InterpolationViewportData, ImageInterpolationData, GroupSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, AnnotationGroupSelector, AnnotationRenderContext, PlanarBoundingBox, ToolProps, PublicToolProps, ToolConfiguration, EventTypes, IPoints, ITouchPoints, IDistance, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, ToolAction, IToolGroup, IToolClassReference, ISynchronizerEventHandler, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, RepresentationData, RepresentationsData,
|
|
50
|
+
export type { Annotation, Annotations, ContourAnnotationData, ContourAnnotation, ContourSegmentationAnnotationData, ContourSegmentationAnnotation, BidirectionalData, CanvasCoordinates, IAnnotationManager, InterpolationViewportData, ImageInterpolationData, GroupSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, AnnotationGroupSelector, AnnotationRenderContext, PlanarBoundingBox, ToolProps, PublicToolProps, ToolConfiguration, EventTypes, IPoints, ITouchPoints, IDistance, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, ToolAction, IToolGroup, IToolClassReference, ISynchronizerEventHandler, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, RepresentationData, RepresentationsData, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, BoundsIJK, SVGDrawingHelper, FloodFillResult, FloodFillGetter, FloodFillOptions, ContourSegmentationData, ISculptToolShape, Statistics, NamedStatistics, LabelmapToolOperationData, LabelmapToolOperationDataStack, LabelmapToolOperationDataVolume, CardinalSplineProps, ClosestControlPoint, ClosestPoint, ClosestSplinePoint, ControlPointInfo, ISpline, SplineCurveSegment, SplineLineSegment, SplineProps, PolySegConversionOptions, IBaseTool, };
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -213,7 +213,7 @@ function _stopClipWithData(playClipData) {
|
|
|
213
213
|
function _getVolumesFromViewport(viewport) {
|
|
214
214
|
return viewport
|
|
215
215
|
.getActors()
|
|
216
|
-
.map((actor) => cache.getVolume(
|
|
216
|
+
.map((actor) => cache.getVolume(viewport.getVolumeId()))
|
|
217
217
|
.filter((volume) => !!volume);
|
|
218
218
|
}
|
|
219
219
|
function _getVolumeFromViewport(viewport) {
|
|
@@ -31,6 +31,9 @@ export default function updateContourPolyline(annotation, polylineData, transfor
|
|
|
31
31
|
if (windingDirection !== currentPolylineWindingDirection) {
|
|
32
32
|
polyline.reverse();
|
|
33
33
|
}
|
|
34
|
+
if (!data.handles?.points?.length) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
34
37
|
const handlePoints = data.handles.points.map((p) => worldToCanvas(p));
|
|
35
38
|
if (handlePoints.length > 2) {
|
|
36
39
|
const currentHandlesWindingDirection = math.polyline.getWindingDirection(handlePoints);
|
|
@@ -34,5 +34,6 @@ import * as dynamicVolume from './dynamicVolume';
|
|
|
34
34
|
import * as polyDataUtils from './polyData/utils';
|
|
35
35
|
import * as voi from './voi';
|
|
36
36
|
import * as contourSegmentation from './contourSegmentation';
|
|
37
|
+
import { pointInSurroundingSphereCallback } from './pointInSurroundingSphereCallback';
|
|
37
38
|
declare const roundNumber: typeof utilities.roundNumber;
|
|
38
|
-
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnitsAndScale, getCalibratedProbeUnitsAndValue, getCalibratedAspect, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRenderForToolGroupIds, triggerAnnotationRender, getSphereBoundsInfo, getAnnotationNearPoint, getViewportForAnnotation, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, voi, annotationFrameRange, contourSegmentation, annotationHydration, getClosestImageIdForStackViewport, };
|
|
39
|
+
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnitsAndScale, getCalibratedProbeUnitsAndValue, getCalibratedAspect, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRenderForToolGroupIds, triggerAnnotationRender, getSphereBoundsInfo, getAnnotationNearPoint, getViewportForAnnotation, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, voi, annotationFrameRange, contourSegmentation, annotationHydration, getClosestImageIdForStackViewport, pointInSurroundingSphereCallback, };
|
|
@@ -34,5 +34,6 @@ import * as dynamicVolume from './dynamicVolume';
|
|
|
34
34
|
import * as polyDataUtils from './polyData/utils';
|
|
35
35
|
import * as voi from './voi';
|
|
36
36
|
import * as contourSegmentation from './contourSegmentation';
|
|
37
|
+
import { pointInSurroundingSphereCallback } from './pointInSurroundingSphereCallback';
|
|
37
38
|
const roundNumber = utilities.roundNumber;
|
|
38
|
-
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnitsAndScale, getCalibratedProbeUnitsAndValue, getCalibratedAspect, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRenderForToolGroupIds, triggerAnnotationRender, getSphereBoundsInfo, getAnnotationNearPoint, getViewportForAnnotation, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, voi, annotationFrameRange, contourSegmentation, annotationHydration, getClosestImageIdForStackViewport, };
|
|
39
|
+
export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, getCalibratedLengthUnitsAndScale, getCalibratedProbeUnitsAndValue, getCalibratedAspect, segmentation, contours, triggerAnnotationRenderForViewportIds, triggerAnnotationRenderForToolGroupIds, triggerAnnotationRender, getSphereBoundsInfo, getAnnotationNearPoint, getViewportForAnnotation, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, voi, annotationFrameRange, contourSegmentation, annotationHydration, getClosestImageIdForStackViewport, pointInSurroundingSphereCallback, };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
3
|
+
export declare function pointInSurroundingSphereCallback(imageData: vtkImageData, circlePoints: [Types.Point3, Types.Point3], callback: (args: {
|
|
4
|
+
value: unknown;
|
|
5
|
+
index: number;
|
|
6
|
+
pointIJK: Types.Point3;
|
|
7
|
+
pointLPS: Types.Point3;
|
|
8
|
+
}) => void, viewport?: Types.IVolumeViewport): void;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
|
+
import { vec3 } from 'gl-matrix';
|
|
3
|
+
import { pointInSphere } from './math/sphere';
|
|
4
|
+
import { getBoundingBoxAroundShape } from './boundingBox';
|
|
5
|
+
const { transformWorldToIndex } = csUtils;
|
|
6
|
+
export function pointInSurroundingSphereCallback(imageData, circlePoints, callback, viewport) {
|
|
7
|
+
const { boundsIJK, centerWorld, radiusWorld } = _getBounds(circlePoints, imageData, viewport);
|
|
8
|
+
const sphereObj = {
|
|
9
|
+
center: centerWorld,
|
|
10
|
+
radius: radiusWorld,
|
|
11
|
+
};
|
|
12
|
+
const dimensions = imageData.getDimensions();
|
|
13
|
+
const voxelManager = csUtils.VoxelManager.createScalarVolumeVoxelManager({
|
|
14
|
+
dimensions: dimensions,
|
|
15
|
+
scalarData: imageData.getPointData().getScalars().getData(),
|
|
16
|
+
});
|
|
17
|
+
voxelManager.forEach(callback, {
|
|
18
|
+
boundsIJK,
|
|
19
|
+
isInObject: (pointLPS) => pointInSphere(sphereObj, pointLPS),
|
|
20
|
+
imageData,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function _getBounds(circlePoints, imageData, viewport) {
|
|
24
|
+
const [bottom, top] = circlePoints;
|
|
25
|
+
const centerWorld = vec3.fromValues((bottom[0] + top[0]) / 2, (bottom[1] + top[1]) / 2, (bottom[2] + top[2]) / 2);
|
|
26
|
+
const radiusWorld = vec3.distance(bottom, top) / 2;
|
|
27
|
+
let boundsIJK;
|
|
28
|
+
if (!viewport) {
|
|
29
|
+
const centerIJK = transformWorldToIndex(imageData, centerWorld);
|
|
30
|
+
const spacings = imageData.getSpacing();
|
|
31
|
+
const minSpacing = Math.min(...spacings);
|
|
32
|
+
const maxRadiusIJK = Math.ceil(radiusWorld / minSpacing);
|
|
33
|
+
boundsIJK = [
|
|
34
|
+
[centerIJK[0] - maxRadiusIJK, centerIJK[0] + maxRadiusIJK],
|
|
35
|
+
[centerIJK[1] - maxRadiusIJK, centerIJK[1] + maxRadiusIJK],
|
|
36
|
+
[centerIJK[2] - maxRadiusIJK, centerIJK[2] + maxRadiusIJK],
|
|
37
|
+
];
|
|
38
|
+
return {
|
|
39
|
+
boundsIJK,
|
|
40
|
+
centerWorld: centerWorld,
|
|
41
|
+
radiusWorld,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
boundsIJK = _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld);
|
|
45
|
+
return {
|
|
46
|
+
boundsIJK,
|
|
47
|
+
centerWorld: centerWorld,
|
|
48
|
+
radiusWorld,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld) {
|
|
52
|
+
const [bottom, top] = circlePoints;
|
|
53
|
+
const dimensions = imageData.getDimensions();
|
|
54
|
+
const camera = viewport.getCamera();
|
|
55
|
+
const viewUp = vec3.fromValues(camera.viewUp[0], camera.viewUp[1], camera.viewUp[2]);
|
|
56
|
+
const viewPlaneNormal = vec3.fromValues(camera.viewPlaneNormal[0], camera.viewPlaneNormal[1], camera.viewPlaneNormal[2]);
|
|
57
|
+
const viewRight = vec3.create();
|
|
58
|
+
vec3.cross(viewRight, viewUp, viewPlaneNormal);
|
|
59
|
+
const topLeftWorld = vec3.create();
|
|
60
|
+
const bottomRightWorld = vec3.create();
|
|
61
|
+
vec3.scaleAndAdd(topLeftWorld, top, viewPlaneNormal, radiusWorld);
|
|
62
|
+
vec3.scaleAndAdd(bottomRightWorld, bottom, viewPlaneNormal, -radiusWorld);
|
|
63
|
+
vec3.scaleAndAdd(topLeftWorld, topLeftWorld, viewRight, -radiusWorld);
|
|
64
|
+
vec3.scaleAndAdd(bottomRightWorld, bottomRightWorld, viewRight, radiusWorld);
|
|
65
|
+
const sphereCornersIJK = [
|
|
66
|
+
transformWorldToIndex(imageData, topLeftWorld),
|
|
67
|
+
(transformWorldToIndex(imageData, bottomRightWorld)),
|
|
68
|
+
];
|
|
69
|
+
const boundsIJK = getBoundingBoxAroundShape(sphereCornersIJK, dimensions);
|
|
70
|
+
return boundsIJK;
|
|
71
|
+
}
|
|
@@ -19,8 +19,8 @@ export default async function createLabelmapVolumeForViewport(input) {
|
|
|
19
19
|
await volumeLoader.createLocalVolume(segmentationId, properties);
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
const
|
|
23
|
-
await volumeLoader.
|
|
22
|
+
const volumeId = viewport.getVolumeId();
|
|
23
|
+
await volumeLoader.createAndCacheDerivedLabelmapVolume(volumeId, {
|
|
24
24
|
volumeId: segmentationId,
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { cache, utilities } from '@cornerstonejs/core';
|
|
2
|
-
import { getSegmentation,
|
|
3
|
-
import {
|
|
1
|
+
import { BaseVolumeViewport, cache, utilities } from '@cornerstonejs/core';
|
|
2
|
+
import { getSegmentation, getCurrentLabelmapImageIdForViewport, } from '../../stateManagement/segmentation/segmentationState';
|
|
3
|
+
import { getSegmentationActor } from '../../stateManagement/segmentation/helpers';
|
|
4
|
+
import { SegmentationRepresentations } from '../../enums';
|
|
4
5
|
export function getSegmentIndexAtLabelmapBorder(segmentationId, worldPoint, { viewport, searchRadius }) {
|
|
5
6
|
const segmentation = getSegmentation(segmentationId);
|
|
6
7
|
const labelmapData = segmentation.representationData.Labelmap;
|
|
7
|
-
if (
|
|
8
|
+
if (viewport instanceof BaseVolumeViewport) {
|
|
8
9
|
const { volumeId } = labelmapData;
|
|
9
10
|
const segmentationVolume = cache.getVolume(volumeId);
|
|
10
11
|
if (!segmentationVolume) {
|
|
@@ -19,15 +20,15 @@ export function getSegmentIndexAtLabelmapBorder(segmentationId, worldPoint, { vi
|
|
|
19
20
|
return onEdge ? segmentIndex : undefined;
|
|
20
21
|
}
|
|
21
22
|
const segmentationImageId = getCurrentLabelmapImageIdForViewport(viewport.id, segmentationId);
|
|
22
|
-
const currentImageId = viewport.getCurrentImageId();
|
|
23
23
|
const image = cache.getImage(segmentationImageId);
|
|
24
24
|
if (!image) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
const segmentationActor = getSegmentationActor(viewport.id, {
|
|
28
|
+
segmentationId,
|
|
29
|
+
type: SegmentationRepresentations.Labelmap,
|
|
30
|
+
});
|
|
31
|
+
const imageData = segmentationActor?.getMapper().getInputData();
|
|
31
32
|
const indexIJK = utilities.transformWorldToIndex(imageData, worldPoint);
|
|
32
33
|
const dimensions = imageData.getDimensions();
|
|
33
34
|
const voxelManager = (imageData.voxelManager ||
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { cache, utilities } from '@cornerstonejs/core';
|
|
1
|
+
import { BaseVolumeViewport, cache, utilities } from '@cornerstonejs/core';
|
|
2
2
|
import { SegmentationRepresentations } from '../../enums';
|
|
3
|
-
import { getSegmentation,
|
|
4
|
-
import { isVolumeSegmentation } from '../../tools/segmentation/strategies/utils/stackVolumeCheck';
|
|
3
|
+
import { getSegmentation, getCurrentLabelmapImageIdForViewport, } from '../../stateManagement/segmentation/segmentationState';
|
|
5
4
|
import { getAnnotation } from '../../stateManagement';
|
|
6
5
|
import { isPointInsidePolyline3D } from '../math/polyline';
|
|
6
|
+
import { getSegmentationActor } from '../../stateManagement/segmentation/helpers';
|
|
7
7
|
export function getSegmentIndexAtWorldPoint(segmentationId, worldPoint, options = {}) {
|
|
8
8
|
const segmentation = getSegmentation(segmentationId);
|
|
9
9
|
const representationData = segmentation.representationData;
|
|
@@ -22,7 +22,7 @@ export function getSegmentIndexAtWorldPoint(segmentationId, worldPoint, options
|
|
|
22
22
|
}
|
|
23
23
|
export function getSegmentIndexAtWorldForLabelmap(segmentation, worldPoint, { viewport }) {
|
|
24
24
|
const labelmapData = segmentation.representationData.Labelmap;
|
|
25
|
-
if (
|
|
25
|
+
if (viewport instanceof BaseVolumeViewport) {
|
|
26
26
|
const { volumeId } = labelmapData;
|
|
27
27
|
const segmentationVolume = cache.getVolume(volumeId);
|
|
28
28
|
if (!segmentationVolume) {
|
|
@@ -36,10 +36,11 @@ export function getSegmentIndexAtWorldForLabelmap(segmentation, worldPoint, { vi
|
|
|
36
36
|
if (!image) {
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
const segmentationActor = getSegmentationActor(viewport.id, {
|
|
40
|
+
segmentationId: segmentation.segmentationId,
|
|
41
|
+
type: SegmentationRepresentations.Labelmap,
|
|
42
|
+
});
|
|
43
|
+
const imageData = segmentationActor?.getMapper().getInputData();
|
|
43
44
|
const indexIJK = utilities.transformWorldToIndex(imageData, worldPoint);
|
|
44
45
|
const dimensions = imageData.getDimensions();
|
|
45
46
|
const voxelManager = (imageData.voxelManager ||
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { cache } from '@cornerstonejs/core';
|
|
2
|
-
import { isVolumeSegmentation } from '../../tools/segmentation/strategies/utils/stackVolumeCheck';
|
|
3
2
|
import { SegmentationRepresentations } from '../../enums';
|
|
4
3
|
import { getCachedSegmentIndices, setCachedSegmentIndices } from './utilities';
|
|
5
4
|
import { getSegmentation } from '../../stateManagement/segmentation/getSegmentation';
|
|
@@ -13,18 +12,17 @@ function getUniqueSegmentIndices(segmentationId) {
|
|
|
13
12
|
throw new Error(`No segmentation found for segmentationId ${segmentationId}`);
|
|
14
13
|
}
|
|
15
14
|
let indices;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
throw new Error(`Unsupported segmentation type: ${segmentation.type}`);
|
|
15
|
+
if (segmentation.representationData.Labelmap) {
|
|
16
|
+
indices = handleLabelmapSegmentation(segmentation, segmentationId);
|
|
17
|
+
}
|
|
18
|
+
else if (segmentation.representationData.Contour) {
|
|
19
|
+
indices = handleContourSegmentation(segmentation);
|
|
20
|
+
}
|
|
21
|
+
else if (segmentation.representationData.Surface) {
|
|
22
|
+
indices = handleSurfaceSegmentation(segmentation);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
throw new Error(`Unsupported segmentation type: ${segmentation.representationData}`);
|
|
28
26
|
}
|
|
29
27
|
setCachedSegmentIndices(segmentationId, indices);
|
|
30
28
|
return indices;
|
|
@@ -32,11 +30,11 @@ function getUniqueSegmentIndices(segmentationId) {
|
|
|
32
30
|
function handleLabelmapSegmentation(segmentation, segmentationId) {
|
|
33
31
|
const labelmapData = segmentation.representationData[SegmentationRepresentations.Labelmap];
|
|
34
32
|
const keySet = new Set();
|
|
35
|
-
if (
|
|
36
|
-
|
|
33
|
+
if (labelmapData.imageIds) {
|
|
34
|
+
addImageSegmentIndices(keySet, labelmapData.imageIds);
|
|
37
35
|
}
|
|
38
36
|
else {
|
|
39
|
-
|
|
37
|
+
addVolumeSegmentIndices(keySet, segmentationId);
|
|
40
38
|
}
|
|
41
39
|
return Array.from(keySet)
|
|
42
40
|
.map(Number)
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import thresholdVolumeByRange from './thresholdVolumeByRange';
|
|
2
2
|
import rectangleROIThresholdVolumeByRange from './rectangleROIThresholdVolumeByRange';
|
|
3
3
|
import createMergedLabelmapForIndex from './createMergedLabelmapForIndex';
|
|
4
|
-
import isValidRepresentationConfig from './isValidRepresentationConfig';
|
|
5
|
-
import getDefaultRepresentationConfig from './getDefaultRepresentationConfig';
|
|
6
4
|
import createLabelmapVolumeForViewport from './createLabelmapVolumeForViewport';
|
|
7
5
|
import { triggerSegmentationRender, triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
8
6
|
import floodFill from './floodFill';
|
|
@@ -18,4 +16,4 @@ import { getSegmentIndexAtWorldPoint } from './getSegmentIndexAtWorldPoint';
|
|
|
18
16
|
import { getSegmentIndexAtLabelmapBorder } from './getSegmentIndexAtLabelmapBorder';
|
|
19
17
|
import { getHoveredContourSegmentationAnnotation } from './getHoveredContourSegmentationAnnotation';
|
|
20
18
|
import { getBrushToolInstances } from './getBrushToolInstances';
|
|
21
|
-
export { thresholdVolumeByRange, createMergedLabelmapForIndex,
|
|
19
|
+
export { thresholdVolumeByRange, createMergedLabelmapForIndex, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, triggerSegmentationRender, triggerSegmentationRenderBySegmentationId, floodFill, getBrushSizeForToolGroup, setBrushSizeForToolGroup, getBrushThresholdForToolGroup, setBrushThresholdForToolGroup, thresholdSegmentationByRange, contourAndFindLargestBidirectional, createBidirectionalToolData, segmentContourAction, invalidateBrushCursor, getUniqueSegmentIndices, getSegmentIndexAtWorldPoint, getSegmentIndexAtLabelmapBorder, getHoveredContourSegmentationAnnotation, getBrushToolInstances, };
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import thresholdVolumeByRange from './thresholdVolumeByRange';
|
|
2
2
|
import rectangleROIThresholdVolumeByRange from './rectangleROIThresholdVolumeByRange';
|
|
3
3
|
import createMergedLabelmapForIndex from './createMergedLabelmapForIndex';
|
|
4
|
-
import isValidRepresentationConfig from './isValidRepresentationConfig';
|
|
5
|
-
import getDefaultRepresentationConfig from './getDefaultRepresentationConfig';
|
|
6
4
|
import createLabelmapVolumeForViewport from './createLabelmapVolumeForViewport';
|
|
7
5
|
import { triggerSegmentationRender, triggerSegmentationRenderBySegmentationId, } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
8
6
|
import floodFill from './floodFill';
|
|
@@ -18,4 +16,4 @@ import { getSegmentIndexAtWorldPoint } from './getSegmentIndexAtWorldPoint';
|
|
|
18
16
|
import { getSegmentIndexAtLabelmapBorder } from './getSegmentIndexAtLabelmapBorder';
|
|
19
17
|
import { getHoveredContourSegmentationAnnotation } from './getHoveredContourSegmentationAnnotation';
|
|
20
18
|
import { getBrushToolInstances } from './getBrushToolInstances';
|
|
21
|
-
export { thresholdVolumeByRange, createMergedLabelmapForIndex,
|
|
19
|
+
export { thresholdVolumeByRange, createMergedLabelmapForIndex, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, triggerSegmentationRender, triggerSegmentationRenderBySegmentationId, floodFill, getBrushSizeForToolGroup, setBrushSizeForToolGroup, getBrushThresholdForToolGroup, setBrushThresholdForToolGroup, thresholdSegmentationByRange, contourAndFindLargestBidirectional, createBidirectionalToolData, segmentContourAction, invalidateBrushCursor, getUniqueSegmentIndices, getSegmentIndexAtWorldPoint, getSegmentIndexAtLabelmapBorder, getHoveredContourSegmentationAnnotation, getBrushToolInstances, };
|
|
@@ -132,6 +132,9 @@ class ColorbarCanvas {
|
|
|
132
132
|
};
|
|
133
133
|
const { width, height } = this._canvas;
|
|
134
134
|
const canvasContext = this._canvas.getContext('2d');
|
|
135
|
+
if (!canvasContext) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
135
138
|
const isHorizontal = width > height;
|
|
136
139
|
const maxValue = isHorizontal ? width : height;
|
|
137
140
|
const { _voiRange: voiRange } = this;
|
|
@@ -80,7 +80,7 @@ class ViewportColorbar extends Colorbar {
|
|
|
80
80
|
}
|
|
81
81
|
else if (viewport instanceof VolumeViewport) {
|
|
82
82
|
const { _volumeId: volumeId } = this;
|
|
83
|
-
const viewportsContainingVolumeUID = utilities.getViewportsWithVolumeId(volumeId
|
|
83
|
+
const viewportsContainingVolumeUID = utilities.getViewportsWithVolumeId(volumeId);
|
|
84
84
|
viewport.setProperties({ voiRange }, volumeId);
|
|
85
85
|
viewportsContainingVolumeUID.forEach((vp) => vp.render());
|
|
86
86
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -176,8 +176,9 @@ const polySegConverters = {
|
|
|
176
176
|
});
|
|
177
177
|
const firstDim = (sharedDimensionIndex + 1) % 3;
|
|
178
178
|
const secondDim = (sharedDimensionIndex + 2) % 3;
|
|
179
|
-
const voxels = utilities.VoxelManager.
|
|
180
|
-
|
|
179
|
+
const voxels = utilities.VoxelManager.createImageVoxelManager({
|
|
180
|
+
width: imageData.getDimensions()[0],
|
|
181
|
+
height: imageData.getDimensions()[1],
|
|
181
182
|
scalarData: imageData.getPointData().getScalars().getData(),
|
|
182
183
|
});
|
|
183
184
|
voxels.forEach(({ pointIJK }) => {
|
|
@@ -319,7 +320,7 @@ const polySegConverters = {
|
|
|
319
320
|
const { sliceIndex, planes } = planeInfo;
|
|
320
321
|
const polyDataResults = new Map();
|
|
321
322
|
for (const polyDataInfo of surfacesInfo) {
|
|
322
|
-
const { points, polys, id } = polyDataInfo;
|
|
323
|
+
const { points, polys, id, segmentIndex } = polyDataInfo;
|
|
323
324
|
const aabb3 = surfacesAABB.get(id) || getAABB(points, { numDimensions: 3 });
|
|
324
325
|
if (!surfacesAABB.has(id)) {
|
|
325
326
|
surfacesAABB.set(id, aabb3);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cornerstonejs/tools",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.28",
|
|
4
4
|
"description": "Cornerstone3D Tools",
|
|
5
5
|
"main": "dist/umd/index.js",
|
|
6
6
|
"types": "dist/esm/index.d.ts",
|
|
@@ -14,29 +14,82 @@
|
|
|
14
14
|
},
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"exports": {
|
|
17
|
-
".":
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"./
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"./
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"./
|
|
17
|
+
".": {
|
|
18
|
+
"import": "./dist/esm/index.js",
|
|
19
|
+
"types": "./dist/esm/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./utilities": {
|
|
22
|
+
"import": "./dist/esm/utilities/index.js",
|
|
23
|
+
"types": "./dist/esm/utilities/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./utilities/*": {
|
|
26
|
+
"import": "./dist/esm/utilities/*.js",
|
|
27
|
+
"types": "./dist/esm/utilities/*.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./constants": {
|
|
30
|
+
"import": "./dist/esm/constants/index.js",
|
|
31
|
+
"types": "./dist/esm/constants/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./constants/*": {
|
|
34
|
+
"import": "./dist/esm/constants/*.js",
|
|
35
|
+
"types": "./dist/esm/constants/*.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./enums": {
|
|
38
|
+
"import": "./dist/esm/enums/index.js",
|
|
39
|
+
"types": "./dist/esm/enums/index.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./enums/*": {
|
|
42
|
+
"import": "./dist/esm/enums/*.js",
|
|
43
|
+
"types": "./dist/esm/enums/*.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./tools": {
|
|
46
|
+
"import": "./dist/esm/tools/index.js",
|
|
47
|
+
"types": "./dist/esm/tools/index.d.ts"
|
|
48
|
+
},
|
|
49
|
+
"./tools/*": {
|
|
50
|
+
"import": "./dist/esm/tools/*.js",
|
|
51
|
+
"types": "./dist/esm/tools/*.d.ts"
|
|
52
|
+
},
|
|
53
|
+
"./segmentation": {
|
|
54
|
+
"import": "./dist/esm/stateManagement/segmentation/index.js",
|
|
55
|
+
"types": "./dist/esm/stateManagement/segmentation/index.d.ts"
|
|
56
|
+
},
|
|
57
|
+
"./segmentation/*": {
|
|
58
|
+
"import": "./dist/esm/stateManagement/segmentation/*.js",
|
|
59
|
+
"types": "./dist/esm/stateManagement/segmentation/*.d.ts"
|
|
60
|
+
},
|
|
61
|
+
"./annotation": {
|
|
62
|
+
"import": "./dist/esm/stateManagement/annotation/index.js",
|
|
63
|
+
"types": "./dist/esm/stateManagement/annotation/index.d.ts"
|
|
64
|
+
},
|
|
65
|
+
"./annotation/*": {
|
|
66
|
+
"import": "./dist/esm/stateManagement/annotation/*.js",
|
|
67
|
+
"types": "./dist/esm/stateManagement/annotation/*.d.ts"
|
|
68
|
+
},
|
|
69
|
+
"./synchronizers": {
|
|
70
|
+
"import": "./dist/esm/synchronizers/index.js",
|
|
71
|
+
"types": "./dist/esm/synchronizers/index.d.ts"
|
|
72
|
+
},
|
|
73
|
+
"./synchronizers/*": {
|
|
74
|
+
"import": "./dist/esm/synchronizers/*.js",
|
|
75
|
+
"types": "./dist/esm/synchronizers/*.d.ts"
|
|
76
|
+
},
|
|
77
|
+
"./types": {
|
|
78
|
+
"types": "./dist/esm/types/index.d.ts"
|
|
79
|
+
},
|
|
80
|
+
"./types/*": {
|
|
81
|
+
"types": "./dist/esm/types/*.d.ts"
|
|
82
|
+
}
|
|
30
83
|
},
|
|
31
84
|
"scripts": {
|
|
32
|
-
"build:esm": "tsc --project ./tsconfig.
|
|
33
|
-
"build:esm:watch": "tsc --project ./tsconfig.
|
|
85
|
+
"build:esm": "tsc --project ./tsconfig.json",
|
|
86
|
+
"build:esm:watch": "tsc --project ./tsconfig.json --watch",
|
|
34
87
|
"build:umd": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js",
|
|
35
88
|
"build:all": "yarn run build:umd && yarn run build:esm",
|
|
36
|
-
"build": "yarn run build:
|
|
89
|
+
"build": "yarn run build:esm",
|
|
37
90
|
"clean": "rm -rf node_modules/.cache/storybook && shx rm -rf dist",
|
|
38
91
|
"clean:deep": "yarn run clean && shx rm -rf node_modules",
|
|
39
|
-
"dev": "tsc --project ./tsconfig.
|
|
92
|
+
"dev": "tsc --project ./tsconfig.json --watch",
|
|
40
93
|
"build:update-api": "yarn run build:esm && api-extractor run --local",
|
|
41
94
|
"format-check": "npx eslint ./src --quiet",
|
|
42
95
|
"api-check": "api-extractor --debug run ",
|
|
@@ -44,7 +97,7 @@
|
|
|
44
97
|
"webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
|
|
45
98
|
},
|
|
46
99
|
"dependencies": {
|
|
47
|
-
"@cornerstonejs/core": "^2.0.0-beta.
|
|
100
|
+
"@cornerstonejs/core": "^2.0.0-beta.28",
|
|
48
101
|
"@types/offscreencanvas": "2019.7.3",
|
|
49
102
|
"comlink": "^4.4.1",
|
|
50
103
|
"lodash.get": "^4.4.2"
|
|
@@ -71,5 +124,5 @@
|
|
|
71
124
|
"type": "individual",
|
|
72
125
|
"url": "https://ohif.org/donate"
|
|
73
126
|
},
|
|
74
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "f07f340e5b63d3afdda66bfe35c9cef729a5b69d"
|
|
75
128
|
}
|
package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { getSegmentationRepresentation } from '../../stateManagement/segmentation/segmentationState';
|
|
2
|
-
import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
3
|
-
const segmentationRepresentationModifiedListener = function (evt) {
|
|
4
|
-
const { segmentationRepresentationUID } = evt.detail;
|
|
5
|
-
const segmentationRepresentation = getSegmentationRepresentation
|
|
6
|
-
? getSegmentationRepresentation(segmentationRepresentationUID)
|
|
7
|
-
: null;
|
|
8
|
-
if (!segmentationRepresentation) {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
const segmentationId = segmentationRepresentation?.segmentationId;
|
|
12
|
-
triggerSegmentationRenderBySegmentationId(segmentationId);
|
|
13
|
-
};
|
|
14
|
-
export default segmentationRepresentationModifiedListener;
|
package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { SegmentationRepresentationRemovedEventType } from '../../types/EventTypes';
|
|
2
|
-
declare const segmentationRepresentationRemovedEventListener: (evt: SegmentationRepresentationRemovedEventType) => void;
|
|
3
|
-
export default segmentationRepresentationRemovedEventListener;
|
package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { getSegmentationRepresentation } from '../../stateManagement/segmentation/segmentationState';
|
|
2
|
-
import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
|
|
3
|
-
const segmentationRepresentationRemovedEventListener = function (evt) {
|
|
4
|
-
const { segmentationRepresentationUID } = evt.detail;
|
|
5
|
-
const segmentation = getSegmentationRepresentation(segmentationRepresentationUID);
|
|
6
|
-
triggerSegmentationRenderBySegmentationId(segmentation.segmentationId);
|
|
7
|
-
};
|
|
8
|
-
export default segmentationRepresentationRemovedEventListener;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import normalizeSegmentationInput from './helpers/normalizeSegmentationInput';
|
|
2
|
-
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
3
|
-
import { triggerSegmentationModified } from './triggerSegmentationEvents';
|
|
4
|
-
export function addSegmentation(segmentationInput, suppressEvents) {
|
|
5
|
-
const segmentationStateManager = defaultSegmentationStateManager;
|
|
6
|
-
const segmentation = normalizeSegmentationInput(segmentationInput);
|
|
7
|
-
segmentationStateManager.addSegmentation(segmentation);
|
|
8
|
-
if (!suppressEvents) {
|
|
9
|
-
triggerSegmentationModified(segmentation.segmentationId);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
-
import { triggerSegmentationRepresentationModified } from './triggerSegmentationEvents';
|
|
3
|
-
export function addSegmentationRepresentationState(viewportId, segmentationRepresentation, suppressEvents) {
|
|
4
|
-
const segmentationStateManager = defaultSegmentationStateManager;
|
|
5
|
-
segmentationStateManager.addSegmentationRepresentationState(segmentationRepresentation);
|
|
6
|
-
segmentationStateManager.addSegmentationRepresentationToViewport(viewportId, segmentationRepresentation.segmentationRepresentationUID);
|
|
7
|
-
if (!suppressEvents) {
|
|
8
|
-
triggerSegmentationRepresentationModified(segmentationRepresentation.segmentationRepresentationUID);
|
|
9
|
-
}
|
|
10
|
-
}
|