@cornerstonejs/tools 5.0.0-beta.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/config.d.ts +4 -0
- package/dist/esm/drawingSvg/drawPath.d.ts +3 -0
- package/dist/esm/drawingSvg/drawPath.js +4 -1
- package/dist/esm/eventListeners/keyboard/keyDownListener.js +2 -2
- package/dist/esm/eventListeners/mouse/getMouseEventPoints.d.ts +1 -1
- package/dist/esm/eventListeners/mouse/getMouseEventPoints.js +19 -1
- package/dist/esm/eventListeners/mouse/mouseDoubleClickListener.js +8 -1
- package/dist/esm/eventListeners/mouse/mouseDownListener.js +37 -5
- package/dist/esm/eventListeners/mouse/mouseMoveListener.js +3 -0
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +60 -92
- package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +49 -21
- package/dist/esm/eventListeners/segmentation/labelmap/performStackLabelmapUpdate.js +7 -13
- package/dist/esm/eventListeners/segmentation/labelmap/performVolumeLabelmapUpdate.js +44 -18
- package/dist/esm/eventListeners/touch/getTouchEventPoints.js +27 -4
- package/dist/esm/eventListeners/touch/touchStartListener.js +27 -9
- package/dist/esm/eventListeners/wheel/wheelListener.js +5 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/init.js +2 -0
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +10 -4
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +23 -20
- package/dist/esm/stateManagement/segmentation/SegmentationRepresentationDisplayRegistry.d.ts +12 -0
- package/dist/esm/stateManagement/segmentation/SegmentationRepresentationDisplayRegistry.js +7 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -10
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +28 -149
- package/dist/esm/stateManagement/segmentation/addColorLUT.js +7 -1
- package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.js +16 -1
- package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.js +9 -7
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.js +3 -2
- package/dist/esm/stateManagement/segmentation/helpers/getViewportLabelmapRenderMode.d.ts +5 -0
- package/dist/esm/stateManagement/segmentation/helpers/getViewportLabelmapRenderMode.js +58 -0
- package/dist/esm/stateManagement/segmentation/helpers/labelmapImageMapperSupport.d.ts +52 -0
- package/dist/esm/stateManagement/segmentation/helpers/labelmapImageMapperSupport.js +246 -0
- package/dist/esm/stateManagement/segmentation/helpers/labelmapSegmentationState.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/helpers/labelmapSegmentationState.js +1 -0
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +12 -1
- package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.js +3 -3
- package/dist/esm/stateManagement/segmentation/labelmapModel/index.d.ts +9 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/index.js +7 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapEditTransaction.d.ts +54 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapEditTransaction.js +224 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapImageIdMapping.d.ts +6 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapImageIdMapping.js +39 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapImageReferenceResolver.d.ts +23 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapImageReferenceResolver.js +269 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapLayerStore.d.ts +15 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapLayerStore.js +160 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapLegacyAdapter.d.ts +4 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapLegacyAdapter.js +42 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapSegmentBindings.d.ts +11 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/labelmapSegmentBindings.js +73 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/normalizeLabelmapSegmentationData.d.ts +17 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/normalizeLabelmapSegmentationData.js +75 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/privateLabelmap.d.ts +5 -0
- package/dist/esm/stateManagement/segmentation/labelmapModel/privateLabelmap.js +106 -0
- package/dist/esm/stateManagement/segmentation/models/SegmentModel.d.ts +11 -0
- package/dist/esm/stateManagement/segmentation/models/SegmentModel.js +19 -0
- package/dist/esm/stateManagement/segmentation/models/SegmentationModel.d.ts +12 -0
- package/dist/esm/stateManagement/segmentation/models/SegmentationModel.js +23 -0
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +6 -10
- package/dist/esm/stateManagement/segmentation/segmentIndex.js +24 -0
- package/dist/esm/stateManagement/segmentation/segmentationEventManager.js +2 -9
- package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.js +4 -1
- package/dist/esm/store/SynchronizerManager/Synchronizer.d.ts +3 -1
- package/dist/esm/store/state.js +2 -1
- package/dist/esm/synchronizers/callbacks/imageSliceSyncCallback.js +12 -3
- package/dist/esm/synchronizers/callbacks/presentationViewSyncCallback.js +5 -2
- package/dist/esm/synchronizers/callbacks/zoomPanSyncCallback.js +51 -3
- package/dist/esm/synchronizers/synchronizers/createPresentationViewSynchronizer.d.ts +1 -1
- package/dist/esm/tools/AdvancedMagnifyTool.js +4 -1
- package/dist/esm/tools/CrosshairsTool.d.ts +4 -0
- package/dist/esm/tools/CrosshairsTool.js +95 -41
- package/dist/esm/tools/MagnifyTool.js +3 -1
- package/dist/esm/tools/OrientationControllerTool.d.ts +45 -0
- package/dist/esm/tools/OrientationControllerTool.js +454 -0
- package/dist/esm/tools/OrientationMarkerTool.js +4 -4
- package/dist/esm/tools/PanTool.js +26 -3
- package/dist/esm/tools/PlanarRotateTool.js +19 -4
- package/dist/esm/tools/ReferenceCursors.js +7 -1
- package/dist/esm/tools/SculptorTool/CircleSculptCursor.js +1 -1
- package/dist/esm/tools/TrackballRotateTool.js +3 -2
- package/dist/esm/tools/VolumeCroppingControlTool.d.ts +10 -35
- package/dist/esm/tools/VolumeCroppingControlTool.js +179 -699
- package/dist/esm/tools/VolumeCroppingTool.d.ts +34 -32
- package/dist/esm/tools/VolumeCroppingTool.js +813 -532
- package/dist/esm/tools/WindowLevelTool.d.ts +2 -1
- package/dist/esm/tools/WindowLevelTool.js +48 -4
- package/dist/esm/tools/ZoomTool.d.ts +8 -0
- package/dist/esm/tools/ZoomTool.js +92 -11
- package/dist/esm/tools/annotation/AngleTool.js +38 -32
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +30 -28
- package/dist/esm/tools/annotation/BidirectionalTool.js +51 -49
- package/dist/esm/tools/annotation/CircleROITool.d.ts +1 -0
- package/dist/esm/tools/annotation/CircleROITool.js +89 -51
- package/dist/esm/tools/annotation/CobbAngleTool.js +1 -1
- package/dist/esm/tools/annotation/DragProbeTool.js +1 -1
- package/dist/esm/tools/annotation/ETDRSGridTool.js +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +46 -39
- package/dist/esm/tools/annotation/HeightTool.js +1 -1
- package/dist/esm/tools/annotation/KeyImageTool.js +11 -11
- package/dist/esm/tools/annotation/LabelTool.js +37 -35
- package/dist/esm/tools/annotation/LengthTool.js +35 -33
- package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js +6 -4
- package/dist/esm/tools/annotation/LivewireContourTool.js +4 -8
- package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js +6 -4
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +3 -4
- package/dist/esm/tools/annotation/ProbeTool.js +66 -56
- package/dist/esm/tools/annotation/RectangleROITool.js +48 -37
- package/dist/esm/tools/annotation/RegionSegmentPlusTool.js +1 -1
- package/dist/esm/tools/annotation/RegionSegmentTool.js +1 -1
- package/dist/esm/tools/annotation/SplineContourSegmentationTool.js +1 -1
- package/dist/esm/tools/annotation/SplineROITool.js +60 -56
- package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +1 -1
- package/dist/esm/tools/annotation/UltrasoundPleuraBLineTool/UltrasoundPleuraBLineTool.js +57 -55
- package/dist/esm/tools/annotation/VideoRedactionTool.js +1 -1
- package/dist/esm/tools/base/AnnotationDisplayTool.js +9 -6
- package/dist/esm/tools/base/AnnotationTool.js +2 -1
- package/dist/esm/tools/base/BaseTool.js +16 -10
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js +1 -1
- package/dist/esm/tools/base/GrowCutBaseTool.js +2 -2
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +2 -4
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +15 -85
- package/dist/esm/tools/displayTools/Labelmap/labelmapActorStyle.d.ts +5 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapActorStyle.js +191 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +4 -3
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +48 -209
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/createLabelmapRenderPlan.d.ts +3 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/createLabelmapRenderPlan.js +51 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/index.d.ts +4 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/index.js +3 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/legacyVolumePlan.d.ts +14 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/legacyVolumePlan.js +143 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/planarGenericVolumeLabelmap.d.ts +40 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/planarGenericVolumeLabelmap.js +79 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/removeLabelmapRepresentationFromViewport.d.ts +3 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/removeLabelmapRepresentationFromViewport.js +18 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/resolveLabelmapRenderPlan.d.ts +9 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/resolveLabelmapRenderPlan.js +56 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/stackImagePlan.d.ts +11 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/stackImagePlan.js +35 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/types.d.ts +48 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/types.js +0 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/volumeSliceImageMapperPlan.d.ts +13 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan/volumeSliceImageMapperPlan.js +34 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan.d.ts +2 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRenderPlan.js +1 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRepresentationUID.d.ts +8 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapRepresentationUID.js +18 -0
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +2 -2
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapRepresentationData.d.ts +3 -0
- package/dist/esm/tools/displayTools/Labelmap/removeLabelmapRepresentationData.js +16 -0
- package/dist/esm/tools/displayTools/Labelmap/syncStackLabelmapActors.d.ts +2 -0
- package/dist/esm/tools/displayTools/Labelmap/syncStackLabelmapActors.js +135 -0
- package/dist/esm/tools/displayTools/Labelmap/volumeLabelmapImageMapper.d.ts +16 -0
- package/dist/esm/tools/displayTools/Labelmap/volumeLabelmapImageMapper.js +267 -0
- package/dist/esm/tools/displayTools/Labelmap/volumeLabelmapSliceData.d.ts +27 -0
- package/dist/esm/tools/displayTools/Labelmap/volumeLabelmapSliceData.js +185 -0
- package/dist/esm/tools/displayTools/registerBuiltInSegmentationRepresentationDisplays.d.ts +1 -0
- package/dist/esm/tools/displayTools/registerBuiltInSegmentationRepresentationDisplays.js +16 -0
- package/dist/esm/tools/index.d.ts +2 -1
- package/dist/esm/tools/index.js +2 -1
- package/dist/esm/tools/segmentation/BrushTool.d.ts +9 -2
- package/dist/esm/tools/segmentation/BrushTool.js +123 -26
- package/dist/esm/tools/segmentation/CircleScissorsTool.js +19 -36
- package/dist/esm/tools/segmentation/LabelmapBaseTool.d.ts +2 -3
- package/dist/esm/tools/segmentation/LabelmapBaseTool.js +77 -46
- package/dist/esm/tools/segmentation/LabelmapEditWithContour.js +3 -3
- package/dist/esm/tools/segmentation/PaintFillTool.js +11 -4
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.d.ts +2 -0
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +16 -8
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js +13 -6
- package/dist/esm/tools/segmentation/SegmentBidirectionalTool.js +63 -61
- package/dist/esm/tools/segmentation/SegmentSelectTool.js +4 -4
- package/dist/esm/tools/segmentation/SphereScissorsTool.js +11 -31
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.d.ts +7 -0
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +47 -24
- package/dist/esm/tools/segmentation/strategies/compositions/circularCursor.js +49 -21
- package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js +2 -2
- package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +5 -1
- package/dist/esm/tools/segmentation/strategies/compositions/islandRemovalComposition.js +2 -2
- package/dist/esm/tools/segmentation/strategies/compositions/preview.js +2 -2
- package/dist/esm/tools/segmentation/strategies/compositions/setValue.js +14 -6
- package/dist/esm/tools/segmentation/strategies/fillCircle.d.ts +3 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +38 -31
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +11 -3
- package/dist/esm/tools/segmentation/strategies/utils/crossLayerErase.d.ts +4 -0
- package/dist/esm/tools/segmentation/strategies/utils/crossLayerErase.js +23 -0
- package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/handleUseSegmentCenterIndex.js +12 -11
- package/dist/esm/tools/segmentation/strategies/utils/labelmapOverlap.d.ts +4 -0
- package/dist/esm/tools/segmentation/strategies/utils/labelmapOverlap.js +41 -0
- package/dist/esm/tools/segmentation/strategies/utils/overwritePolicy.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/utils/overwritePolicy.js +31 -0
- package/dist/esm/tools/segmentation/strategies/utils/segmentSeparation.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/utils/segmentSeparation.js +38 -0
- package/dist/esm/tools/segmentation/utils/LazyBrushEditController.d.ts +19 -0
- package/dist/esm/tools/segmentation/utils/LazyBrushEditController.js +55 -0
- package/dist/esm/tools/segmentation/utils/lazyBrushPreview.d.ts +3 -0
- package/dist/esm/tools/segmentation/utils/lazyBrushPreview.js +34 -0
- package/dist/esm/tools/segmentation/utils/shouldUseLazyLabelmapEditing.d.ts +3 -0
- package/dist/esm/tools/segmentation/utils/shouldUseLazyLabelmapEditing.js +42 -0
- package/dist/esm/types/ISynchronizerEventHandler.d.ts +2 -1
- package/dist/esm/types/LabelmapToolOperationData.d.ts +5 -0
- package/dist/esm/types/LabelmapTypes.d.ts +29 -6
- package/dist/esm/types/SegmentationStateTypes.d.ts +6 -0
- package/dist/esm/utilities/calibrateImageSpacing.js +17 -2
- package/dist/esm/utilities/contours/AnnotationToPointData.js +1 -1
- package/dist/esm/utilities/draw3D/addLine3DBetweenPoints.d.ts +7 -0
- package/dist/esm/utilities/draw3D/addLine3DBetweenPoints.js +34 -0
- package/dist/esm/utilities/draw3D/calculateAdaptiveSphereRadius.d.ts +6 -0
- package/dist/esm/utilities/draw3D/calculateAdaptiveSphereRadius.js +7 -0
- package/dist/esm/utilities/draw3D/index.d.ts +2 -0
- package/dist/esm/utilities/draw3D/index.js +2 -0
- package/dist/esm/utilities/drawing/getTextBoxCoordsCanvas.js +22 -14
- package/dist/esm/utilities/getCenterAndRadiusInCanvas.d.ts +6 -0
- package/dist/esm/utilities/getCenterAndRadiusInCanvas.js +26 -0
- package/dist/esm/utilities/getEllipseWorldCoordinates.d.ts +2 -0
- package/dist/esm/utilities/getEllipseWorldCoordinates.js +26 -0
- package/dist/esm/utilities/getSphereBoundsInfo.js +5 -1
- package/dist/esm/utilities/getViewportICamera.d.ts +4 -0
- package/dist/esm/utilities/getViewportICamera.js +23 -0
- package/dist/esm/utilities/getViewportsForAnnotation.js +5 -1
- package/dist/esm/utilities/index.d.ts +2 -1
- package/dist/esm/utilities/index.js +2 -1
- package/dist/esm/utilities/interactionDragCoordinator.d.ts +5 -0
- package/dist/esm/utilities/interactionDragCoordinator.js +16 -0
- package/dist/esm/utilities/math/basic/BasicStatsCalculator.js +9 -7
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +8 -1
- package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js +121 -118
- package/dist/esm/utilities/segmentation/SegmentStatsCalculator.js +5 -4
- package/dist/esm/utilities/segmentation/VolumetricCalculator.js +1 -1
- package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +1 -1
- package/dist/esm/utilities/segmentation/getReferenceVolumeForSegmentation.js +1 -1
- package/dist/esm/utilities/segmentation/getReferenceVolumeForSegmentationVolume.js +11 -2
- package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.js +36 -17
- package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.js +42 -25
- package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +3 -30
- package/dist/esm/utilities/segmentation/index.d.ts +2 -1
- package/dist/esm/utilities/segmentation/index.js +2 -1
- package/dist/esm/utilities/segmentation/utilsForWorker.js +6 -2
- package/dist/esm/utilities/segmentation/validateLabelmap.js +1 -1
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +0 -1
- package/dist/esm/utilities/touch/index.js +3 -2
- package/dist/esm/utilities/viewportCapabilities.d.ts +16 -0
- package/dist/esm/utilities/viewportCapabilities.js +18 -0
- package/dist/esm/utilities/viewportFilters/filterViewportsWithParallelNormals.d.ts +1 -1
- package/dist/esm/utilities/viewportFilters/filterViewportsWithParallelNormals.js +12 -4
- package/dist/esm/utilities/viewportFilters/filterViewportsWithSameOrientation.d.ts +1 -1
- package/dist/esm/utilities/viewportFilters/filterViewportsWithSameOrientation.js +11 -4
- package/dist/esm/utilities/viewportFilters/getViewportIdsWithToolToRender.js +1 -1
- package/dist/esm/utilities/viewportPresentation.d.ts +3 -0
- package/dist/esm/utilities/viewportPresentation.js +26 -0
- package/dist/esm/utilities/volumeCropping/computePlanePlaneIntersection.d.ts +6 -0
- package/dist/esm/utilities/volumeCropping/computePlanePlaneIntersection.js +37 -0
- package/dist/esm/utilities/volumeCropping/constants.d.ts +31 -0
- package/dist/esm/utilities/volumeCropping/constants.js +31 -0
- package/dist/esm/utilities/volumeCropping/copyClippingPlanes.d.ts +2 -0
- package/dist/esm/utilities/volumeCropping/copyClippingPlanes.js +6 -0
- package/dist/esm/utilities/volumeCropping/extractVolumeDirectionVectors.d.ts +9 -0
- package/dist/esm/utilities/volumeCropping/extractVolumeDirectionVectors.js +9 -0
- package/dist/esm/utilities/volumeCropping/findLineBoundsIntersection.d.ts +5 -0
- package/dist/esm/utilities/volumeCropping/findLineBoundsIntersection.js +50 -0
- package/dist/esm/utilities/volumeCropping/getColorKeyForPlaneIndex.d.ts +1 -0
- package/dist/esm/utilities/volumeCropping/getColorKeyForPlaneIndex.js +13 -0
- package/dist/esm/utilities/volumeCropping/getOrientationFromNormal.d.ts +2 -0
- package/dist/esm/utilities/volumeCropping/getOrientationFromNormal.js +19 -0
- package/dist/esm/utilities/volumeCropping/index.d.ts +9 -0
- package/dist/esm/utilities/volumeCropping/index.js +9 -0
- package/dist/esm/utilities/volumeCropping/parseCornerKey.d.ts +8 -0
- package/dist/esm/utilities/volumeCropping/parseCornerKey.js +11 -0
- package/dist/esm/utilities/volumeCropping/types.d.ts +5 -0
- package/dist/esm/utilities/volumeCropping/types.js +0 -0
- package/dist/esm/utilities/vtkjs/AnnotatedRhombicuboctahedronActor/index.d.ts +31 -0
- package/dist/esm/utilities/vtkjs/AnnotatedRhombicuboctahedronActor/index.js +391 -0
- package/dist/esm/utilities/vtkjs/OrientationControllerWidget/index.d.ts +69 -0
- package/dist/esm/utilities/vtkjs/OrientationControllerWidget/index.js +804 -0
- package/dist/esm/utilities/vtkjs/RhombicuboctahedronSource/index.d.ts +7 -0
- package/dist/esm/utilities/vtkjs/RhombicuboctahedronSource/index.js +144 -0
- package/dist/esm/utilities/vtkjs/index.d.ts +3 -0
- package/dist/esm/utilities/vtkjs/index.js +3 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +10 -9
|
@@ -52,6 +52,10 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
52
52
|
enableHDPIHandles: false,
|
|
53
53
|
referenceLinesCenterGapRadius: 20,
|
|
54
54
|
referenceLinesCenterGapRatio: null,
|
|
55
|
+
minimal: {
|
|
56
|
+
enabled: false,
|
|
57
|
+
lineLengthInPx: 40,
|
|
58
|
+
},
|
|
55
59
|
filterActorUIDsToSetSlabThickness: [],
|
|
56
60
|
slabThicknessBlendMode: Enums.BlendModes.MAXIMUM_INTENSITY_BLEND,
|
|
57
61
|
centerPoint: {
|
|
@@ -380,15 +384,15 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
380
384
|
vec2.normalize(canvasUnitVectorFromCenter, canvasUnitVectorFromCenter);
|
|
381
385
|
const canvasVectorFromCenterLong = vec2.create();
|
|
382
386
|
vec2.scale(canvasVectorFromCenterLong, canvasUnitVectorFromCenter, canvasDiagonalLength * 100);
|
|
383
|
-
const canvasVectorFromCenterMid = vec2.create();
|
|
384
|
-
vec2.scale(canvasVectorFromCenterMid, canvasUnitVectorFromCenter, canvasMinDimensionLength * 0.4);
|
|
385
387
|
const canvasVectorFromCenterShort = vec2.create();
|
|
386
388
|
vec2.scale(canvasVectorFromCenterShort, canvasUnitVectorFromCenter, canvasMinDimensionLength * 0.2);
|
|
387
389
|
const canvasVectorFromCenterStart = vec2.create();
|
|
388
390
|
const mobileConfig = this.configuration.mobile;
|
|
389
|
-
const
|
|
391
|
+
const activeConfiguration = mobileConfig?.enabled
|
|
390
392
|
? mobileConfig
|
|
391
393
|
: this.configuration;
|
|
394
|
+
const { referenceLinesCenterGapRatio } = activeConfiguration;
|
|
395
|
+
const minimalCrosshairConfig = getMinimalCrosshairConfig(this.configuration);
|
|
392
396
|
const centerGap = referenceLinesCenterGapRatio > 0
|
|
393
397
|
? canvasMinDimensionLength * referenceLinesCenterGapRatio
|
|
394
398
|
: this.configuration.referenceLinesCenterGapRadius;
|
|
@@ -407,10 +411,18 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
407
411
|
vec2.subtract(refLinePointFour, refLinesCenter, canvasVectorFromCenterLong);
|
|
408
412
|
liangBarksyClip(refLinePointOne, refLinePointTwo, canvasBox);
|
|
409
413
|
liangBarksyClip(refLinePointThree, refLinePointFour, canvasBox);
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
+
if (minimalCrosshairConfig.enabled) {
|
|
415
|
+
const minimalCanvasVectorFromCenterLong = vec2.create();
|
|
416
|
+
vec2.scale(minimalCanvasVectorFromCenterLong, canvasUnitVectorFromCenter, minimalCrosshairConfig.lineLengthInPx);
|
|
417
|
+
vec2.add(refLinePointOne, refLinesCenter, canvasVectorFromCenterStart);
|
|
418
|
+
vec2.add(refLinePointTwo, refLinePointOne, minimalCanvasVectorFromCenterLong);
|
|
419
|
+
vec2.subtract(refLinePointThree, refLinesCenter, canvasVectorFromCenterStart);
|
|
420
|
+
vec2.subtract(refLinePointFour, refLinePointThree, minimalCanvasVectorFromCenterLong);
|
|
421
|
+
liangBarksyClip(refLinePointOne, refLinePointTwo, canvasBox);
|
|
422
|
+
liangBarksyClip(refLinePointThree, refLinePointFour, canvasBox);
|
|
423
|
+
}
|
|
424
|
+
const rotHandleOne = getSegmentMidpoint(refLinePointOne, refLinePointTwo);
|
|
425
|
+
const rotHandleTwo = getSegmentMidpoint(refLinePointThree, refLinePointFour);
|
|
414
426
|
let stHandlesCenterCanvas = vec2.clone(crosshairCenterCanvas);
|
|
415
427
|
if (!otherViewportDraggableRotatable &&
|
|
416
428
|
otherViewportSlabThicknessControlsOn) {
|
|
@@ -490,12 +502,15 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
490
502
|
const color = viewportColor !== undefined ? viewportColor : 'rgb(200, 200, 200)';
|
|
491
503
|
referenceLines.forEach((line, lineIndex) => {
|
|
492
504
|
const otherViewport = line[0];
|
|
505
|
+
const minimalCrosshairConfig = getMinimalCrosshairConfig(this.configuration);
|
|
493
506
|
const viewportColor = this._getReferenceLineColor(otherViewport.id);
|
|
494
507
|
const viewportControllable = this._getReferenceLineControllable(otherViewport.id);
|
|
495
|
-
const viewportDraggableRotatable =
|
|
496
|
-
this.
|
|
497
|
-
|
|
498
|
-
|
|
508
|
+
const viewportDraggableRotatable = !minimalCrosshairConfig.enabled &&
|
|
509
|
+
(this._getReferenceLineDraggableRotatable(otherViewport.id) ||
|
|
510
|
+
this.configuration.mobile?.enabled);
|
|
511
|
+
const viewportSlabThicknessControlsOn = !minimalCrosshairConfig.enabled &&
|
|
512
|
+
(this._getReferenceLineSlabThicknessControlsOn(otherViewport.id) ||
|
|
513
|
+
this.configuration.mobile?.enabled);
|
|
499
514
|
const selectedViewportId = data.activeViewportIds.find((id) => id === otherViewport.id);
|
|
500
515
|
let color = viewportColor !== undefined ? viewportColor : 'rgb(200, 200, 200)';
|
|
501
516
|
let lineWidth = 1;
|
|
@@ -506,7 +521,8 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
506
521
|
lineWidth = 2.5;
|
|
507
522
|
}
|
|
508
523
|
let lineUID = `${lineIndex}`;
|
|
509
|
-
if (viewportControllable &&
|
|
524
|
+
if (viewportControllable &&
|
|
525
|
+
(viewportDraggableRotatable || minimalCrosshairConfig.enabled)) {
|
|
510
526
|
lineUID = `${lineIndex}One`;
|
|
511
527
|
drawLineSvg(svgDrawingHelper, annotationUID, lineUID, line[1], line[2], {
|
|
512
528
|
color,
|
|
@@ -544,31 +560,33 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
544
560
|
newRtpoints.push(rotHandleWorldOne, rotHandleWorldTwo);
|
|
545
561
|
const slabThicknessHandlesActive = data.handles.activeOperation === OPERATION.SLAB;
|
|
546
562
|
const slabThicknessHandles = [line[11], line[12], line[13], line[14]];
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
563
|
+
if (!minimalCrosshairConfig.enabled) {
|
|
564
|
+
const slabThicknessHandleWorldOne = [
|
|
565
|
+
viewport.canvasToWorld(line[11]),
|
|
566
|
+
otherViewport,
|
|
567
|
+
line[5],
|
|
568
|
+
line[6],
|
|
569
|
+
];
|
|
570
|
+
const slabThicknessHandleWorldTwo = [
|
|
571
|
+
viewport.canvasToWorld(line[12]),
|
|
572
|
+
otherViewport,
|
|
573
|
+
line[5],
|
|
574
|
+
line[6],
|
|
575
|
+
];
|
|
576
|
+
const slabThicknessHandleWorldThree = [
|
|
577
|
+
viewport.canvasToWorld(line[13]),
|
|
578
|
+
otherViewport,
|
|
579
|
+
line[7],
|
|
580
|
+
line[8],
|
|
581
|
+
];
|
|
582
|
+
const slabThicknessHandleWorldFour = [
|
|
583
|
+
viewport.canvasToWorld(line[14]),
|
|
584
|
+
otherViewport,
|
|
585
|
+
line[7],
|
|
586
|
+
line[8],
|
|
587
|
+
];
|
|
588
|
+
newStpoints.push(slabThicknessHandleWorldOne, slabThicknessHandleWorldTwo, slabThicknessHandleWorldThree, slabThicknessHandleWorldFour);
|
|
589
|
+
}
|
|
572
590
|
let handleRadius = this.configuration.handleRadius *
|
|
573
591
|
(this.configuration.enableHDPIHandles ? window.devicePixelRatio : 1);
|
|
574
592
|
let opacity = 1;
|
|
@@ -905,6 +923,7 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
905
923
|
emitEvent: true,
|
|
906
924
|
updateViewportCameras: false,
|
|
907
925
|
});
|
|
926
|
+
viewport.render();
|
|
908
927
|
state.isInteractingWithTool = false;
|
|
909
928
|
return true;
|
|
910
929
|
};
|
|
@@ -1581,6 +1600,7 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1581
1600
|
}
|
|
1582
1601
|
}
|
|
1583
1602
|
_getRotationHandleNearImagePoint(viewport, annotation, canvasCoords, proximity) {
|
|
1603
|
+
const minimalCrosshairConfig = getMinimalCrosshairConfig(this.configuration);
|
|
1584
1604
|
const { data } = annotation;
|
|
1585
1605
|
const { rotationPoints } = data.handles;
|
|
1586
1606
|
for (let i = 0; i < rotationPoints.length; i++) {
|
|
@@ -1590,7 +1610,8 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1590
1610
|
if (!viewportControllable) {
|
|
1591
1611
|
continue;
|
|
1592
1612
|
}
|
|
1593
|
-
const viewportDraggableRotatable =
|
|
1613
|
+
const viewportDraggableRotatable = !minimalCrosshairConfig.enabled &&
|
|
1614
|
+
this._getReferenceLineDraggableRotatable(otherViewport.id);
|
|
1594
1615
|
if (!viewportDraggableRotatable) {
|
|
1595
1616
|
continue;
|
|
1596
1617
|
}
|
|
@@ -1606,6 +1627,7 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1606
1627
|
return null;
|
|
1607
1628
|
}
|
|
1608
1629
|
_getSlabThicknessHandleNearImagePoint(viewport, annotation, canvasCoords, proximity) {
|
|
1630
|
+
const minimalCrosshairConfig = getMinimalCrosshairConfig(this.configuration);
|
|
1609
1631
|
const { data } = annotation;
|
|
1610
1632
|
const { slabThicknessPoints } = data.handles;
|
|
1611
1633
|
for (let i = 0; i < slabThicknessPoints.length; i++) {
|
|
@@ -1615,7 +1637,8 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1615
1637
|
if (!viewportControllable) {
|
|
1616
1638
|
continue;
|
|
1617
1639
|
}
|
|
1618
|
-
const viewportSlabThicknessControlsOn =
|
|
1640
|
+
const viewportSlabThicknessControlsOn = !minimalCrosshairConfig.enabled &&
|
|
1641
|
+
this._getReferenceLineSlabThicknessControlsOn(otherViewport.id);
|
|
1619
1642
|
if (!viewportSlabThicknessControlsOn) {
|
|
1620
1643
|
continue;
|
|
1621
1644
|
}
|
|
@@ -1632,6 +1655,7 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1632
1655
|
return null;
|
|
1633
1656
|
}
|
|
1634
1657
|
_pointNearTool(element, annotation, canvasCoords, proximity) {
|
|
1658
|
+
const minimalCrosshairConfig = getMinimalCrosshairConfig(this.configuration);
|
|
1635
1659
|
const enabledElement = getEnabledElement(element);
|
|
1636
1660
|
const { viewport } = enabledElement;
|
|
1637
1661
|
const { clientWidth, clientHeight } = viewport.canvas;
|
|
@@ -1644,7 +1668,8 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1644
1668
|
const otherViewport = rotationPoints[i][1];
|
|
1645
1669
|
const viewportControllable = this._getReferenceLineControllable(otherViewport.id);
|
|
1646
1670
|
const viewportDraggableRotatable = this._getReferenceLineDraggableRotatable(otherViewport.id);
|
|
1647
|
-
if (!viewportControllable ||
|
|
1671
|
+
if (!viewportControllable ||
|
|
1672
|
+
(!viewportDraggableRotatable && !minimalCrosshairConfig.enabled)) {
|
|
1648
1673
|
continue;
|
|
1649
1674
|
}
|
|
1650
1675
|
const lineSegment1 = {
|
|
@@ -1681,7 +1706,8 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1681
1706
|
continue;
|
|
1682
1707
|
}
|
|
1683
1708
|
const viewportControllable = this._getReferenceLineControllable(otherViewport.id);
|
|
1684
|
-
const viewportSlabThicknessControlsOn =
|
|
1709
|
+
const viewportSlabThicknessControlsOn = !minimalCrosshairConfig.enabled &&
|
|
1710
|
+
this._getReferenceLineSlabThicknessControlsOn(otherViewport.id);
|
|
1685
1711
|
if (!viewportControllable || !viewportSlabThicknessControlsOn) {
|
|
1686
1712
|
continue;
|
|
1687
1713
|
}
|
|
@@ -1734,5 +1760,33 @@ class CrosshairsTool extends AnnotationTool {
|
|
|
1734
1760
|
return data.handles.activeOperation === OPERATION.DRAG ? true : false;
|
|
1735
1761
|
}
|
|
1736
1762
|
}
|
|
1763
|
+
CrosshairsTool.minimalModeExamples = new Map([
|
|
1764
|
+
['Default', { enabled: false, lineLengthInPx: 40 }],
|
|
1765
|
+
['Minimal 40px', { enabled: true, lineLengthInPx: 40 }],
|
|
1766
|
+
['Minimal 80px', { enabled: true, lineLengthInPx: 80 }],
|
|
1767
|
+
]);
|
|
1768
|
+
function getMinimalCrosshairConfig(configuration) {
|
|
1769
|
+
const minimal = configuration?.minimal;
|
|
1770
|
+
if (!minimal?.enabled) {
|
|
1771
|
+
return {
|
|
1772
|
+
enabled: false,
|
|
1773
|
+
lineLengthInPx: 0,
|
|
1774
|
+
};
|
|
1775
|
+
}
|
|
1776
|
+
const lineLengthInPx = typeof minimal.lineLengthInPx === 'number' &&
|
|
1777
|
+
Number.isFinite(minimal.lineLengthInPx)
|
|
1778
|
+
? minimal.lineLengthInPx
|
|
1779
|
+
: 40;
|
|
1780
|
+
return {
|
|
1781
|
+
enabled: true,
|
|
1782
|
+
lineLengthInPx: Math.max(0, lineLengthInPx),
|
|
1783
|
+
};
|
|
1784
|
+
}
|
|
1785
|
+
function getSegmentMidpoint(start, end) {
|
|
1786
|
+
const midpoint = vec2.create();
|
|
1787
|
+
vec2.add(midpoint, start, end);
|
|
1788
|
+
vec2.scale(midpoint, midpoint, 0.5);
|
|
1789
|
+
return midpoint;
|
|
1790
|
+
}
|
|
1737
1791
|
CrosshairsTool.toolName = 'Crosshairs';
|
|
1738
1792
|
export default CrosshairsTool;
|
|
@@ -52,7 +52,7 @@ class MagnifyTool extends BaseTool {
|
|
|
52
52
|
const { viewport } = enabledElement;
|
|
53
53
|
const { element } = viewport;
|
|
54
54
|
const viewportProperties = viewport.getProperties();
|
|
55
|
-
const { rotation: originalViewportRotation } = viewport.getViewPresentation();
|
|
55
|
+
const { rotation: originalViewportRotation, flipHorizontal: originalViewportFlipHorizontal, flipVertical: originalViewportFlipVertical, } = viewport.getViewPresentation();
|
|
56
56
|
const { canvas: canvasPos, world: worldPos } = currentPoints;
|
|
57
57
|
let magnifyToolElement;
|
|
58
58
|
magnifyToolElement = element.querySelector('.magnifyTool');
|
|
@@ -83,6 +83,8 @@ class MagnifyTool extends BaseTool {
|
|
|
83
83
|
magnifyViewport.setProperties(viewportProperties);
|
|
84
84
|
magnifyViewport.setViewPresentation({
|
|
85
85
|
rotation: originalViewportRotation,
|
|
86
|
+
flipHorizontal: originalViewportFlipHorizontal,
|
|
87
|
+
flipVertical: originalViewportFlipVertical,
|
|
86
88
|
});
|
|
87
89
|
const { parallelScale } = viewport.getCamera();
|
|
88
90
|
const { focalPoint, position, viewPlaneNormal } = magnifyViewport.getCamera();
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseTool } from './base';
|
|
2
|
+
declare class OrientationControllerTool extends BaseTool {
|
|
3
|
+
static toolName: string;
|
|
4
|
+
private widget;
|
|
5
|
+
private resizeObservers;
|
|
6
|
+
private cameraHandlers;
|
|
7
|
+
private animationFrameHandles;
|
|
8
|
+
private animationTokens;
|
|
9
|
+
constructor(toolProps?: {}, defaultToolProps?: {
|
|
10
|
+
supportedInteractionTypes: string[];
|
|
11
|
+
configuration: {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
opacity: number;
|
|
14
|
+
size: number;
|
|
15
|
+
position: string;
|
|
16
|
+
colorScheme: string;
|
|
17
|
+
letterColorScheme: string;
|
|
18
|
+
showEdgeFaces: boolean;
|
|
19
|
+
showCornerFaces: boolean;
|
|
20
|
+
keepOrientationUp: boolean;
|
|
21
|
+
highlightColor: number[];
|
|
22
|
+
edgeColor: number[];
|
|
23
|
+
cornerColor: number[];
|
|
24
|
+
restingAmbient: number;
|
|
25
|
+
hoverAmbient: number;
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
private _getViewportsInfo;
|
|
29
|
+
private getPositionConfig;
|
|
30
|
+
private getFaceColors;
|
|
31
|
+
private getLetterColors;
|
|
32
|
+
onSetToolEnabled(): void;
|
|
33
|
+
onSetToolDisabled(): void;
|
|
34
|
+
onSetToolConfiguration: () => void;
|
|
35
|
+
private onViewportAdded;
|
|
36
|
+
private onViewportRemoved;
|
|
37
|
+
private removeMarkers;
|
|
38
|
+
private addMarkers;
|
|
39
|
+
private createAnnotatedRhombActor;
|
|
40
|
+
private addMarkerToViewport;
|
|
41
|
+
private onCameraModified;
|
|
42
|
+
private updateMarkerPosition;
|
|
43
|
+
private animateCameraToOrientation;
|
|
44
|
+
}
|
|
45
|
+
export default OrientationControllerTool;
|