@cornerstonejs/tools 2.0.0-beta.21 → 2.0.0-beta.23

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.
Files changed (258) hide show
  1. package/dist/esm/cursors/elementCursor.d.ts +1 -1
  2. package/dist/esm/cursors/elementCursor.js +1 -1
  3. package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
  4. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +2 -2
  5. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyUp.js +2 -2
  6. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +1 -1
  7. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +1 -1
  8. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +1 -1
  9. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDrag.js +1 -1
  10. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.js +1 -1
  11. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseWheel.js +1 -1
  12. package/dist/esm/eventDispatchers/shared/customCallbackHandler.js +3 -2
  13. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +2 -2
  14. package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js +2 -2
  15. package/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.js +3 -3
  16. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +2 -2
  17. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +2 -2
  18. package/dist/esm/eventDispatchers/shared/getToolsWithModesForMouseEvent.js +2 -2
  19. package/dist/esm/eventDispatchers/shared/getToolsWithModesForTouchEvent.js +2 -2
  20. package/dist/esm/eventDispatchers/touchEventHandlers/touchDrag.js +1 -1
  21. package/dist/esm/eventDispatchers/touchEventHandlers/touchStart.js +1 -1
  22. package/dist/esm/eventDispatchers/touchEventHandlers/touchStartActivate.js +1 -1
  23. package/dist/esm/eventListeners/annotations/annotationSelectionListener.js +1 -1
  24. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +21 -20
  25. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +8 -6
  26. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +1 -1
  27. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +1 -1
  28. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +1 -1
  29. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +1 -1
  30. package/dist/esm/index.d.ts +4 -3
  31. package/dist/esm/index.js +4 -3
  32. package/dist/esm/init.js +2 -2
  33. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +0 -2
  34. package/dist/esm/stateManagement/annotation/annotationSelection.js +1 -1
  35. package/dist/esm/stateManagement/annotation/annotationState.d.ts +2 -2
  36. package/dist/esm/stateManagement/annotation/annotationState.js +4 -6
  37. package/dist/esm/stateManagement/annotation/annotationVisibility.js +1 -1
  38. package/dist/esm/stateManagement/annotation/getAnnotation.d.ts +2 -0
  39. package/dist/esm/stateManagement/annotation/getAnnotation.js +6 -0
  40. package/dist/esm/stateManagement/index.d.ts +2 -2
  41. package/dist/esm/stateManagement/index.js +2 -1
  42. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.d.ts +3 -1
  43. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +13 -6
  44. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +17 -1
  45. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +46 -4
  46. package/dist/esm/stateManagement/segmentation/activeSegmentation.js +6 -4
  47. package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -0
  48. package/dist/esm/stateManagement/segmentation/addColorLUT.js +5 -0
  49. package/dist/esm/stateManagement/segmentation/addRepresentationData.js +1 -1
  50. package/dist/esm/stateManagement/segmentation/addSegmentation.d.ts +2 -0
  51. package/dist/esm/stateManagement/segmentation/addSegmentation.js +11 -0
  52. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js +29 -8
  53. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.d.ts +2 -0
  54. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.js +10 -0
  55. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +8 -6
  56. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +14 -9
  57. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +8 -5
  58. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +0 -8
  59. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +3 -33
  60. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.d.ts +1 -0
  61. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.js +11 -0
  62. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.d.ts +1 -0
  63. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.js +18 -0
  64. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.d.ts +1 -0
  65. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.js +8 -0
  66. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +1 -0
  67. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +8 -0
  68. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +1 -0
  69. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +8 -0
  70. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.d.ts +1 -0
  71. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.js +7 -0
  72. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.d.ts +2 -0
  73. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.js +5 -0
  74. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.d.ts +2 -0
  75. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.js +6 -0
  76. package/dist/esm/stateManagement/segmentation/getColorLUT.d.ts +2 -0
  77. package/dist/esm/stateManagement/segmentation/getColorLUT.js +5 -0
  78. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -0
  79. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.js +5 -0
  80. package/dist/esm/stateManagement/segmentation/getGlobalConfig.d.ts +2 -0
  81. package/dist/esm/stateManagement/segmentation/getGlobalConfig.js +5 -0
  82. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.d.ts +1 -0
  83. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.js +5 -0
  84. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.d.ts +2 -0
  85. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.js +5 -0
  86. package/dist/esm/stateManagement/segmentation/getSegmentation.d.ts +2 -0
  87. package/dist/esm/stateManagement/segmentation/getSegmentation.js +5 -0
  88. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +2 -0
  89. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +5 -0
  90. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.d.ts +2 -0
  91. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.js +5 -0
  92. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.d.ts +7 -0
  93. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.js +6 -0
  94. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +1 -0
  95. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +5 -0
  96. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.d.ts +2 -0
  97. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.js +12 -0
  98. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.d.ts +2 -0
  99. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.js +5 -0
  100. package/dist/esm/stateManagement/segmentation/getSegmentations.d.ts +2 -0
  101. package/dist/esm/stateManagement/segmentation/getSegmentations.js +6 -0
  102. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.d.ts +1 -0
  103. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +10 -0
  104. package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.js +1 -1
  105. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.d.ts +8 -0
  106. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +31 -0
  107. package/dist/esm/stateManagement/segmentation/index.d.ts +1 -1
  108. package/dist/esm/stateManagement/segmentation/index.js +1 -1
  109. package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +3 -2
  110. package/dist/esm/stateManagement/segmentation/polySeg/Contour/utils/createAndAddContourSegmentationsFromClippedSurfaces.js +1 -1
  111. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +1 -1
  112. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +3 -3
  113. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +2 -3
  114. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +2 -1
  115. package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +2 -2
  116. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +2 -3
  117. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +3 -2
  118. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +1 -1
  119. package/dist/esm/stateManagement/segmentation/removeColorLUT.d.ts +1 -0
  120. package/dist/esm/stateManagement/segmentation/removeColorLUT.js +5 -0
  121. package/dist/esm/stateManagement/segmentation/removeRepresentation.d.ts +1 -0
  122. package/dist/esm/stateManagement/segmentation/removeRepresentation.js +9 -0
  123. package/dist/esm/stateManagement/segmentation/removeSegmentation.d.ts +1 -0
  124. package/dist/esm/stateManagement/segmentation/removeSegmentation.js +7 -0
  125. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +2 -2
  126. package/dist/esm/stateManagement/segmentation/segmentIndex.d.ts +2 -2
  127. package/dist/esm/stateManagement/segmentation/segmentIndex.js +5 -9
  128. package/dist/esm/stateManagement/segmentation/segmentLocking.js +1 -1
  129. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +29 -38
  130. package/dist/esm/stateManagement/segmentation/segmentationState.js +29 -157
  131. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.d.ts +1 -0
  132. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.js +9 -0
  133. package/dist/esm/stateManagement/segmentation/setGlobalConfig.d.ts +2 -0
  134. package/dist/esm/stateManagement/segmentation/setGlobalConfig.js +9 -0
  135. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.d.ts +2 -0
  136. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.js +9 -0
  137. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.d.ts +2 -0
  138. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.js +9 -0
  139. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +1 -0
  140. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +5 -0
  141. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +5 -5
  142. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +5 -45
  143. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.d.ts +1 -0
  144. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.js +5 -0
  145. package/dist/esm/store/SynchronizerManager/createSynchronizer.js +1 -1
  146. package/dist/esm/store/SynchronizerManager/destroy.js +1 -1
  147. package/dist/esm/store/SynchronizerManager/destroySynchronizer.js +1 -1
  148. package/dist/esm/store/SynchronizerManager/getAllSynchronizers.js +1 -1
  149. package/dist/esm/store/SynchronizerManager/getSynchronizer.js +1 -1
  150. package/dist/esm/store/SynchronizerManager/getSynchronizersForViewport.js +1 -1
  151. package/dist/esm/store/ToolGroupManager/ToolGroup.js +7 -6
  152. package/dist/esm/store/ToolGroupManager/createToolGroup.js +1 -1
  153. package/dist/esm/store/ToolGroupManager/destroy.js +3 -3
  154. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +1 -2
  155. package/dist/esm/store/ToolGroupManager/getAllToolGroups.js +1 -1
  156. package/dist/esm/store/ToolGroupManager/getToolGroup.js +1 -1
  157. package/dist/esm/store/ToolGroupManager/getToolGroupForViewport.js +1 -1
  158. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +1 -1
  159. package/dist/esm/store/addTool.d.ts +1 -0
  160. package/dist/esm/store/addTool.js +3 -0
  161. package/dist/esm/store/index.d.ts +1 -2
  162. package/dist/esm/store/index.js +1 -2
  163. package/dist/esm/tools/AdvancedMagnifyTool.d.ts +93 -2
  164. package/dist/esm/tools/AdvancedMagnifyTool.js +506 -4
  165. package/dist/esm/tools/AnnotationEraserTool.js +2 -2
  166. package/dist/esm/tools/CrosshairsTool.js +1 -1
  167. package/dist/esm/tools/MagnifyTool.js +1 -1
  168. package/dist/esm/tools/SculptorTool.js +3 -3
  169. package/dist/esm/tools/WindowLevelRegionTool.js +1 -1
  170. package/dist/esm/tools/annotation/AngleTool.js +4 -3
  171. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +1 -1
  172. package/dist/esm/tools/annotation/BidirectionalTool.js +7 -8
  173. package/dist/esm/tools/annotation/CircleROITool.js +15 -16
  174. package/dist/esm/tools/annotation/CobbAngleTool.js +1 -1
  175. package/dist/esm/tools/annotation/DragProbeTool.js +2 -2
  176. package/dist/esm/tools/annotation/EllipticalROITool.js +12 -13
  177. package/dist/esm/tools/annotation/HeightTool.js +5 -6
  178. package/dist/esm/tools/annotation/KeyImageTool.js +1 -1
  179. package/dist/esm/tools/annotation/LengthTool.js +5 -6
  180. package/dist/esm/tools/annotation/LivewireContourTool.js +3 -2
  181. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +1 -2
  182. package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +4 -4
  183. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +20 -20
  184. package/dist/esm/tools/annotation/ProbeTool.js +9 -10
  185. package/dist/esm/tools/annotation/RectangleROITool.js +12 -13
  186. package/dist/esm/tools/annotation/SplineROITool.js +12 -9
  187. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +6 -7
  188. package/dist/esm/tools/annotation/VideoRedactionTool.js +1 -1
  189. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +1 -1
  190. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +1 -1
  191. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +2 -2
  192. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +1 -1
  193. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +1 -1
  194. package/dist/esm/tools/base/ContourBaseTool.js +2 -2
  195. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +24 -15
  196. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +9 -8
  197. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +3 -3
  198. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +2 -1
  199. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -8
  200. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +19 -25
  201. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +10 -7
  202. package/dist/esm/tools/index.d.ts +1 -3
  203. package/dist/esm/tools/index.js +1 -3
  204. package/dist/esm/tools/segmentation/BrushTool.js +10 -8
  205. package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +8 -9
  206. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +11 -13
  207. package/dist/esm/tools/segmentation/SegmentSelectTool.js +1 -1
  208. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +4 -4
  209. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +2 -2
  210. package/dist/esm/utilities/annotationHydration.js +1 -1
  211. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js +1 -1
  212. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +2 -2
  213. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js +1 -1
  214. package/dist/esm/utilities/contours/getContourHolesDataWorld.js +1 -1
  215. package/dist/esm/utilities/contours/index.d.ts +1 -2
  216. package/dist/esm/utilities/contours/index.js +1 -2
  217. package/dist/esm/utilities/contours/updateContourPolyline.js +1 -1
  218. package/dist/esm/utilities/getCalibratedUnits.d.ts +2 -2
  219. package/dist/esm/utilities/getCalibratedUnits.js +13 -13
  220. package/dist/esm/utilities/getToolsWithModesForElement.js +2 -2
  221. package/dist/esm/utilities/index.d.ts +1 -2
  222. package/dist/esm/utilities/index.js +1 -2
  223. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +3 -3
  224. package/dist/esm/utilities/math/polyline/isClosed.js +2 -2
  225. package/dist/esm/utilities/planarFreehandROITool/smoothAnnotation.js +3 -3
  226. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +1 -1
  227. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +1 -1
  228. package/dist/esm/utilities/segmentation/getBrushToolInstances.d.ts +1 -0
  229. package/dist/esm/utilities/segmentation/getBrushToolInstances.js +17 -0
  230. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.d.ts +0 -2
  231. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +3 -22
  232. package/dist/esm/utilities/segmentation/index.d.ts +2 -2
  233. package/dist/esm/utilities/segmentation/index.js +2 -2
  234. package/dist/esm/utilities/segmentation/invalidateBrushCursor.js +1 -4
  235. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -1
  236. package/dist/esm/utilities/segmentation/segmentContourAction.js +5 -5
  237. package/dist/esm/utilities/segmentation/utilities.d.ts +4 -1
  238. package/dist/esm/utilities/segmentation/utilities.js +23 -17
  239. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js +2 -2
  240. package/dist/umd/985.index.js.map +1 -1
  241. package/dist/umd/index.js +2 -1
  242. package/dist/umd/index.js.LICENSE.txt +6 -0
  243. package/dist/umd/index.js.map +1 -1
  244. package/package.json +5 -4
  245. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +0 -17
  246. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +0 -50
  247. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.d.ts +0 -2
  248. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.js +0 -11
  249. package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +0 -76
  250. package/dist/esm/tools/AdvancedMagnifyViewport.js +0 -351
  251. package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +0 -38
  252. package/dist/esm/tools/AdvancedMagnifyViewportManager.js +0 -161
  253. package/dist/esm/tools/StackScrollToolMouseWheelTool.d.ts +0 -16
  254. package/dist/esm/tools/StackScrollToolMouseWheelTool.js +0 -33
  255. package/dist/esm/utilities/contours/interpolation/index.d.ts +0 -2
  256. package/dist/esm/utilities/contours/interpolation/index.js +0 -2
  257. package/dist/esm/utilities/segmentation/triggerSegmentationRender.d.ts +0 -3
  258. package/dist/esm/utilities/segmentation/triggerSegmentationRender.js +0 -8
@@ -5,7 +5,6 @@ import WindowLevelTool from './WindowLevelTool';
5
5
  import WindowLevelRegionTool from './WindowLevelRegionTool';
6
6
  import StackScrollTool from './StackScrollTool';
7
7
  import PlanarRotateTool from './PlanarRotateTool';
8
- import StackScrollMouseWheelTool from './StackScrollToolMouseWheelTool';
9
8
  import ZoomTool from './ZoomTool';
10
9
  import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
11
10
  import MIPJumpToClickTool from './MIPJumpToClickTool';
@@ -16,7 +15,6 @@ import ReferenceLinesTool from './ReferenceLinesTool';
16
15
  import OverlayGridTool from './OverlayGridTool';
17
16
  import SegmentationIntersectionTool from './SegmentationIntersectionTool';
18
17
  import ReferenceCursors from './ReferenceCursors';
19
- import ReferenceLines from './ReferenceLinesTool';
20
18
  import ScaleOverlayTool from './ScaleOverlayTool';
21
19
  import SculptorTool from './SculptorTool';
22
20
  import BidirectionalTool from './annotation/BidirectionalTool';
@@ -49,4 +47,4 @@ import BrushTool from './segmentation/BrushTool';
49
47
  import PaintFillTool from './segmentation/PaintFillTool';
50
48
  import OrientationMarkerTool from './OrientationMarkerTool';
51
49
  import SegmentSelectTool from './segmentation/SegmentSelectTool';
52
- export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, AnnotationEraserTool as EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, SplineContourSegmentationTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, SculptorTool, SegmentSelectTool, };
50
+ export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, StackScrollTool, PlanarRotateTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, AnnotationEraserTool as EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, SplineContourSegmentationTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, SculptorTool, SegmentSelectTool, };
@@ -5,7 +5,6 @@ import WindowLevelTool from './WindowLevelTool';
5
5
  import WindowLevelRegionTool from './WindowLevelRegionTool';
6
6
  import StackScrollTool from './StackScrollTool';
7
7
  import PlanarRotateTool from './PlanarRotateTool';
8
- import StackScrollMouseWheelTool from './StackScrollToolMouseWheelTool';
9
8
  import ZoomTool from './ZoomTool';
10
9
  import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
11
10
  import MIPJumpToClickTool from './MIPJumpToClickTool';
@@ -16,7 +15,6 @@ import ReferenceLinesTool from './ReferenceLinesTool';
16
15
  import OverlayGridTool from './OverlayGridTool';
17
16
  import SegmentationIntersectionTool from './SegmentationIntersectionTool';
18
17
  import ReferenceCursors from './ReferenceCursors';
19
- import ReferenceLines from './ReferenceLinesTool';
20
18
  import ScaleOverlayTool from './ScaleOverlayTool';
21
19
  import SculptorTool from './SculptorTool';
22
20
  import BidirectionalTool from './annotation/BidirectionalTool';
@@ -49,4 +47,4 @@ import BrushTool from './segmentation/BrushTool';
49
47
  import PaintFillTool from './segmentation/PaintFillTool';
50
48
  import OrientationMarkerTool from './OrientationMarkerTool';
51
49
  import SegmentSelectTool from './segmentation/SegmentSelectTool';
52
- export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, AnnotationEraserTool as EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, SplineContourSegmentationTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, SculptorTool, SegmentSelectTool, };
50
+ export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, StackScrollTool, PlanarRotateTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, AnnotationEraserTool as EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, SplineContourSegmentationTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, SculptorTool, SegmentSelectTool, };
@@ -9,9 +9,11 @@ import { Events, ToolModes, SegmentationRepresentations, StrategyCallbacks, } fr
9
9
  import { drawCircle as drawCircleSvg } from '../../drawingSvg';
10
10
  import { resetElementCursor, hideElementCursor, } from '../../cursors/elementCursor';
11
11
  import triggerAnnotationRenderForViewportUIDs from '../../utilities/triggerAnnotationRenderForViewportIds';
12
- import { config as segmentationConfig, segmentLocking, segmentIndex as segmentIndexController, state as segmentationState, activeSegmentation, } from '../../stateManagement/segmentation';
13
12
  import { isVolumeSegmentation } from './strategies/utils/stackVolumeCheck';
14
- import { getCurrentLabelmapImageIdForViewport } from '../../stateManagement/segmentation/segmentationState';
13
+ import { getActiveSegmentationRepresentation, getCurrentLabelmapImageIdForViewport, getSegmentation, } from '../../stateManagement/segmentation/segmentationState';
14
+ import { getLockedSegmentIndices } from '../../stateManagement/segmentation/segmentLocking';
15
+ import { getActiveSegmentIndex } from '../../stateManagement/segmentation/getActiveSegmentIndex';
16
+ import { getSegmentIndexColor } from '../../stateManagement/segmentation/config/segmentationColor';
15
17
  class BrushTool extends BaseTool {
16
18
  constructor(toolProps = {}, defaultToolProps = {
17
19
  supportedInteractionTypes: ['Mouse', 'Touch'],
@@ -192,7 +194,7 @@ class BrushTool extends BaseTool {
192
194
  createEditData(element) {
193
195
  const enabledElement = getEnabledElement(element);
194
196
  const { viewport } = enabledElement;
195
- const activeRepresentation = activeSegmentation.getActiveSegmentationRepresentation(viewport.id);
197
+ const activeRepresentation = getActiveSegmentationRepresentation(viewport.id);
196
198
  if (!activeRepresentation) {
197
199
  throw new Error('No active segmentation detected, create a segmentation representation before using the brush tool');
198
200
  }
@@ -200,8 +202,8 @@ class BrushTool extends BaseTool {
200
202
  if (type === SegmentationRepresentations.Contour) {
201
203
  throw new Error('Not implemented yet');
202
204
  }
203
- const segmentsLocked = segmentLocking.getLockedSegmentIndices(segmentationId);
204
- const { representationData } = segmentationState.getSegmentation(segmentationId);
205
+ const segmentsLocked = getLockedSegmentIndices(segmentationId);
206
+ const { representationData } = getSegmentation(segmentationId);
205
207
  const labelmapData = representationData[SegmentationRepresentations.Labelmap];
206
208
  if (isVolumeSegmentation(labelmapData, viewport)) {
207
209
  const { volumeId } = representationData[type];
@@ -272,14 +274,14 @@ class BrushTool extends BaseTool {
272
274
  }
273
275
  getActiveSegmentationData(viewport) {
274
276
  const viewportId = viewport.id;
275
- const activeRepresentation = activeSegmentation.getActiveSegmentationRepresentation(viewportId);
277
+ const activeRepresentation = getActiveSegmentationRepresentation(viewportId);
276
278
  if (!activeRepresentation) {
277
279
  console.warn('No active segmentation detected, create one before using the brush tool');
278
280
  return;
279
281
  }
280
282
  const { segmentationId, segmentationRepresentationUID } = activeRepresentation;
281
- const segmentIndex = segmentIndexController.getActiveSegmentIndex(segmentationId);
282
- const segmentColor = segmentationConfig.color.getSegmentIndexColor(segmentationRepresentationUID, segmentIndex);
283
+ const segmentIndex = getActiveSegmentIndex(segmentationId);
284
+ const segmentColor = getSegmentIndexColor(segmentationRepresentationUID, segmentIndex);
283
285
  return {
284
286
  segmentIndex,
285
287
  segmentationId,
@@ -16,7 +16,6 @@ import { getCanvasCircleCorners, getCanvasCircleRadius, } from '../../utilities/
16
16
  import { getCalibratedLengthUnitsAndScale, getCalibratedAspect, } from '../../utilities/getCalibratedUnits';
17
17
  import { isViewportPreScaled } from '../../utilities/viewport/isViewportPreScaled';
18
18
  import { pointInEllipse } from '../../utilities/math/ellipse';
19
- import { roundNumber } from '../../utilities';
20
19
  import { BasicStatsCalculator } from '../../utilities/math/basic';
21
20
  import cloneDeep from 'lodash.clonedeep';
22
21
  import { filterAnnotationsWithinSamePlane } from '../../utilities/planar';
@@ -346,7 +345,7 @@ class CircleROIStartEndThresholdTool extends CircleROITool {
346
345
  isPreScaled: isViewportPreScaled(viewport, targetId),
347
346
  isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
348
347
  };
349
- const pixelValueUnits = getPixelValueUnits(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
348
+ const modalityUnit = getPixelValueUnits(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
350
349
  for (let i = 0; i < projectionPoints.length; i++) {
351
350
  if (!imageVolume) {
352
351
  continue;
@@ -410,8 +409,8 @@ class CircleROIStartEndThresholdTool extends CircleROITool {
410
409
  stdDev: stats.stdDev?.value,
411
410
  max: stats.max?.value,
412
411
  statsArray: stats.array,
413
- areaUnits: measureInfo.areaUnits,
414
- pixelValueUnits,
412
+ areaUnit: measureInfo.areaUnit,
413
+ modalityUnit,
415
414
  };
416
415
  }
417
416
  _calculateCachedStatsTool(annotation, enabledElement) {
@@ -457,15 +456,15 @@ class CircleROIStartEndThresholdTool extends CircleROITool {
457
456
  }
458
457
  function defaultGetTextLines(data) {
459
458
  const cachedVolumeStats = data.cachedStats.statistics;
460
- const { area, mean, max, stdDev, areaUnits, pixelValueUnits } = cachedVolumeStats;
459
+ const { area, mean, max, stdDev, areaUnit, modalityUnit } = cachedVolumeStats;
461
460
  if (mean === undefined) {
462
461
  return;
463
462
  }
464
463
  const textLines = [];
465
- textLines.push(`Area: ${roundNumber(area)} ${areaUnits}`);
466
- textLines.push(`Mean: ${roundNumber(mean)} ${pixelValueUnits}`);
467
- textLines.push(`Max: ${roundNumber(max)} ${pixelValueUnits}`);
468
- textLines.push(`Std Dev: ${roundNumber(stdDev)} ${pixelValueUnits}`);
464
+ textLines.push(`Area: ${csUtils.roundNumber(area)} ${areaUnit}`);
465
+ textLines.push(`Mean: ${csUtils.roundNumber(mean)} ${modalityUnit}`);
466
+ textLines.push(`Max: ${csUtils.roundNumber(max)} ${modalityUnit}`);
467
+ textLines.push(`Std Dev: ${csUtils.roundNumber(stdDev)} ${modalityUnit}`);
469
468
  return textLines;
470
469
  }
471
470
  CircleROIStartEndThresholdTool.toolName = 'CircleROIStartEndThreshold';
@@ -1,5 +1,4 @@
1
1
  import { getEnabledElement, cache, StackViewport, utilities as csUtils, } from '@cornerstonejs/core';
2
- import { utilities as coreUtils } from '@cornerstonejs/core';
3
2
  import { getCalibratedLengthUnitsAndScale } from '../../utilities/getCalibratedUnits';
4
3
  import { vec3 } from 'gl-matrix';
5
4
  import { addAnnotation, getAnnotations, removeAnnotation, } from '../../stateManagement';
@@ -14,7 +13,6 @@ import { hideElementCursor, resetElementCursor, } from '../../cursors/elementCur
14
13
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
15
14
  import { triggerAnnotationCompleted, triggerAnnotationModified, } from '../../stateManagement/annotation/helpers/state';
16
15
  import RectangleROITool from '../annotation/RectangleROITool';
17
- import { roundNumber } from '../../utilities/';
18
16
  import { isViewportPreScaled } from '../../utilities/viewport/isViewportPreScaled';
19
17
  import { BasicStatsCalculator } from '../../utilities/math/basic';
20
18
  import { filterAnnotationsWithinSamePlane } from '../../utilities/planar';
@@ -178,10 +176,10 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
178
176
  if (Array.isArray(endCoordinate)) {
179
177
  endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
180
178
  }
181
- const roundedStartCoord = coreUtils.roundToPrecision(startCoord);
182
- const roundedEndCoord = coreUtils.roundToPrecision(endCoord);
179
+ const roundedStartCoord = csUtils.roundToPrecision(startCoord);
180
+ const roundedEndCoord = csUtils.roundToPrecision(endCoord);
183
181
  const coord = this._getCoordinateForViewplaneNormal(focalPoint, viewplaneNormal);
184
- const roundedCoord = coreUtils.roundToPrecision(coord);
182
+ const roundedCoord = csUtils.roundToPrecision(coord);
185
183
  if (roundedCoord < Math.min(roundedStartCoord, roundedEndCoord) ||
186
184
  roundedCoord > Math.max(roundedStartCoord, roundedEndCoord)) {
187
185
  continue;
@@ -318,7 +316,7 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
318
316
  isPreScaled: isViewportPreScaled(viewport, targetId),
319
317
  isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
320
318
  };
321
- const pixelValueUnits = getPixelValueUnits(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
319
+ const modalityUnit = getPixelValueUnits(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
322
320
  for (let i = 0; i < projectionPoints.length; i++) {
323
321
  if (!imageVolume) {
324
322
  continue;
@@ -369,8 +367,8 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
369
367
  stdDev: stats.stdDev?.value,
370
368
  max: stats.max?.value,
371
369
  statsArray: stats.array,
372
- areaUnits: measureInfo.areaUnits,
373
- pixelValueUnits,
370
+ areaUnit: measureInfo.areaUnit,
371
+ modalityUnit,
374
372
  };
375
373
  }
376
374
  _calculateCachedStatsTool(annotation, enabledElement) {
@@ -412,15 +410,15 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool {
412
410
  }
413
411
  function defaultGetTextLines(data) {
414
412
  const cachedVolumeStats = data.cachedStats.statistics;
415
- const { area, mean, max, stdDev, areaUnits, pixelValueUnits } = cachedVolumeStats;
413
+ const { area, mean, max, stdDev, areaUnit, modalityUnit } = cachedVolumeStats;
416
414
  if (mean === undefined) {
417
415
  return;
418
416
  }
419
417
  const textLines = [];
420
- textLines.push(`Area: ${roundNumber(area)} ${areaUnits}`);
421
- textLines.push(`Mean: ${roundNumber(mean)} ${pixelValueUnits}`);
422
- textLines.push(`Max: ${roundNumber(max)} ${pixelValueUnits}`);
423
- textLines.push(`Std Dev: ${roundNumber(stdDev)} ${pixelValueUnits}`);
418
+ textLines.push(`Area: ${csUtils.roundNumber(area)} ${areaUnit}`);
419
+ textLines.push(`Mean: ${csUtils.roundNumber(mean)} ${modalityUnit}`);
420
+ textLines.push(`Max: ${csUtils.roundNumber(max)} ${modalityUnit}`);
421
+ textLines.push(`Std Dev: ${csUtils.roundNumber(stdDev)} ${modalityUnit}`);
424
422
  return textLines;
425
423
  }
426
424
  RectangleROIStartEndThresholdTool.toolName = 'RectangleROIStartEndThreshold';
@@ -6,7 +6,7 @@ import { getActiveSegmentationRepresentation } from '../../stateManagement/segme
6
6
  import RepresentationTypes from '../../enums/SegmentationRepresentations';
7
7
  import { setActiveSegmentIndex } from '../../stateManagement/segmentation/segmentIndex';
8
8
  import { getHoveredContourSegmentationAnnotation, getSegmentIndexAtLabelmapBorder, getSegmentIndexAtWorldPoint, } from '../../utilities/segmentation';
9
- import { state } from '../../store';
9
+ import { state } from '../../store/state';
10
10
  import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
11
11
  class SegmentSelectTool extends BaseTool {
12
12
  static { this.SelectMode = {
@@ -1,6 +1,6 @@
1
- import { triggerSegmentationDataModified } from '../../../../stateManagement/segmentation/triggerSegmentationEvents';
2
- import { config as segmentationConfig } from '../../../../stateManagement/segmentation';
1
+ import { triggerSegmentationDataModified } from '../../../../stateManagement/segmentation/events/triggerSegmentationDataModified';
3
2
  import StrategyCallbacks from '../../../../enums/StrategyCallbacks';
3
+ import { getSegmentIndexColor, setSegmentIndexColor, } from '../../../../stateManagement/segmentation/config/segmentationColor';
4
4
  function lightenColor(r, g, b, a, factor = 0.4) {
5
5
  return [
6
6
  Math.round(r + (255 - r) * factor),
@@ -42,12 +42,12 @@ export default {
42
42
  return;
43
43
  }
44
44
  const configColor = previewColors?.[segmentIndex];
45
- const segmentColor = segmentationConfig.color.getSegmentIndexColor(segmentationRepresentationUID, segmentIndex);
45
+ const segmentColor = getSegmentIndexColor(segmentationRepresentationUID, segmentIndex);
46
46
  if (!configColor && !segmentColor) {
47
47
  return;
48
48
  }
49
49
  const previewColor = configColor || lightenColor(...segmentColor);
50
- segmentationConfig.color.setSegmentIndexColor(segmentationRepresentationUID, previewSegmentIndex, previewColor);
50
+ setSegmentIndexColor(segmentationRepresentationUID, previewSegmentIndex, previewColor);
51
51
  },
52
52
  [StrategyCallbacks.AcceptPreview]: (operationData) => {
53
53
  const { segmentationVoxelManager, previewVoxelManager: previewVoxelManager, previewSegmentIndex, preview, } = operationData || {};
@@ -7,7 +7,7 @@ export interface ROICachedStats {
7
7
  [targetId: string]: {
8
8
  Modality: string;
9
9
  area: number;
10
- areaUnits: string;
10
+ areaUnit: string;
11
11
  max: number;
12
12
  mean: number;
13
13
  stdDev: number;
@@ -130,7 +130,7 @@ export type SplineROIAnnotation = ContourAnnotation & {
130
130
  [targetId: string]: {
131
131
  Modality: string;
132
132
  area: number;
133
- areaUnits: string;
133
+ areaUnit: string;
134
134
  };
135
135
  };
136
136
  };
@@ -1,5 +1,5 @@
1
1
  import { utilities, BaseVolumeViewport, StackViewport, cache, metaData, } from '@cornerstonejs/core';
2
- import { addAnnotation } from '../stateManagement';
2
+ import { addAnnotation } from '../stateManagement/annotation/annotationState';
3
3
  import { vec3 } from 'gl-matrix';
4
4
  function annotationHydration(viewport, toolName, worldPoints, options) {
5
5
  const viewReference = viewport.getViewReference();
@@ -1,4 +1,4 @@
1
- import { getSegmentation } from '../../stateManagement/segmentation/segmentationState';
1
+ import { getSegmentation } from '../../stateManagement/segmentation/getSegmentation';
2
2
  export function addContourSegmentationAnnotation(annotation) {
3
3
  if (annotation.parentAnnotationUID) {
4
4
  return;
@@ -1,10 +1,10 @@
1
- import { state } from '../../stateManagement/segmentation';
1
+ import { getSegmentation } from '../../stateManagement/segmentation/getSegmentation';
2
2
  export function removeContourSegmentationAnnotation(annotation) {
3
3
  if (!annotation.data.segmentation) {
4
4
  throw new Error('removeContourSegmentationAnnotation: annotation does not have a segmentation data');
5
5
  }
6
6
  const { segmentationId, segmentIndex } = annotation.data.segmentation;
7
- const segmentation = state.getSegmentation(segmentationId);
7
+ const segmentation = getSegmentation(segmentationId);
8
8
  const { annotationUIDsMap } = segmentation?.representationData.CONTOUR || {};
9
9
  const annotationsUIDsSet = annotationUIDsMap?.get(segmentIndex);
10
10
  if (!annotationsUIDsSet) {
@@ -2,7 +2,7 @@ import { cache as cornerstoneCache } from '@cornerstonejs/core';
2
2
  import vtkImageMarchingSquares from '@kitware/vtk.js/Filters/General/ImageMarchingSquares';
3
3
  import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
4
4
  import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
5
- import { getDeduplicatedVTKPolyDataPoints } from '../contours';
5
+ import { getDeduplicatedVTKPolyDataPoints } from './getDeduplicatedVTKPolyDataPoints';
6
6
  import { findContoursFromReducedSet } from './contourFinder';
7
7
  import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
8
8
  const { Labelmap } = SegmentationRepresentations;
@@ -1,4 +1,4 @@
1
- import { getAnnotation } from '../../stateManagement';
1
+ import { getAnnotation } from '../../stateManagement/annotation/annotationState';
2
2
  export default function getContourHolesDataWorld(annotation) {
3
3
  const childAnnotationUIDs = annotation.childAnnotationUIDs ?? [];
4
4
  return childAnnotationUIDs.map((uid) => getAnnotation(uid).data.contour.polyline);
@@ -8,7 +8,6 @@ import getContourHolesDataWorld from './getContourHolesDataWorld';
8
8
  import getContourHolesDataCanvas from './getContourHolesDataCanvas';
9
9
  import updateContourPolyline from './updateContourPolyline';
10
10
  import acceptAutogeneratedInterpolations from './interpolation/acceptAutogeneratedInterpolations';
11
- import * as interpolation from './interpolation';
12
11
  import findHandlePolylineIndex from './findHandlePolylineIndex';
13
12
  import calculatePerimeter from './calculatePerimeter';
14
- export { areCoplanarContours, contourFinder, getDeduplicatedVTKPolyDataPoints, detectContourHoles, generateContourSetsFromLabelmap, AnnotationToPointData, getContourHolesDataWorld, getContourHolesDataCanvas, updateContourPolyline, interpolation, acceptAutogeneratedInterpolations, findHandlePolylineIndex, calculatePerimeter, };
13
+ export { areCoplanarContours, contourFinder, getDeduplicatedVTKPolyDataPoints, detectContourHoles, generateContourSetsFromLabelmap, AnnotationToPointData, getContourHolesDataWorld, getContourHolesDataCanvas, updateContourPolyline, acceptAutogeneratedInterpolations, findHandlePolylineIndex, calculatePerimeter, };
@@ -8,7 +8,6 @@ import getContourHolesDataWorld from './getContourHolesDataWorld';
8
8
  import getContourHolesDataCanvas from './getContourHolesDataCanvas';
9
9
  import updateContourPolyline from './updateContourPolyline';
10
10
  import acceptAutogeneratedInterpolations from './interpolation/acceptAutogeneratedInterpolations';
11
- import * as interpolation from './interpolation';
12
11
  import findHandlePolylineIndex from './findHandlePolylineIndex';
13
12
  import calculatePerimeter from './calculatePerimeter';
14
- export { areCoplanarContours, contourFinder, getDeduplicatedVTKPolyDataPoints, detectContourHoles, generateContourSetsFromLabelmap, AnnotationToPointData, getContourHolesDataWorld, getContourHolesDataCanvas, updateContourPolyline, interpolation, acceptAutogeneratedInterpolations, findHandlePolylineIndex, calculatePerimeter, };
13
+ export { areCoplanarContours, contourFinder, getDeduplicatedVTKPolyDataPoints, detectContourHoles, generateContourSetsFromLabelmap, AnnotationToPointData, getContourHolesDataWorld, getContourHolesDataCanvas, updateContourPolyline, acceptAutogeneratedInterpolations, findHandlePolylineIndex, calculatePerimeter, };
@@ -1,6 +1,6 @@
1
1
  import { utilities as csUtils } from '@cornerstonejs/core';
2
2
  import * as math from '../math';
3
- import { getParentAnnotation, invalidateAnnotation, } from '../../stateManagement';
3
+ import { getParentAnnotation, invalidateAnnotation, } from '../../stateManagement/annotation/annotationState';
4
4
  export default function updateContourPolyline(annotation, polylineData, transforms, options) {
5
5
  const { canvasToWorld, worldToCanvas } = transforms;
6
6
  const { data } = annotation;
@@ -1,6 +1,6 @@
1
1
  declare const getCalibratedLengthUnitsAndScale: (image: any, handles: any) => {
2
- lengthUnits: string;
3
- areaUnits: string;
2
+ unit: string;
3
+ areaUnit: string;
4
4
  scale: number;
5
5
  };
6
6
  declare const getCalibratedProbeUnitsAndValue: (image: any, handles: any) => {
@@ -27,16 +27,16 @@ const EPS = 1e-3;
27
27
  const SQUARE = '\xb2';
28
28
  const getCalibratedLengthUnitsAndScale = (image, handles) => {
29
29
  const { calibration, hasPixelSpacing } = image;
30
- let lengthUnits = hasPixelSpacing ? 'mm' : PIXEL_UNITS;
31
- let areaUnits = lengthUnits + SQUARE;
30
+ let unit = hasPixelSpacing ? 'mm' : PIXEL_UNITS;
31
+ let areaUnit = unit + SQUARE;
32
32
  let scale = 1;
33
33
  let calibrationType = '';
34
34
  if (!calibration ||
35
35
  (!calibration.type && !calibration.sequenceOfUltrasoundRegions)) {
36
- return { lengthUnits, areaUnits, scale };
36
+ return { unit, areaUnit, scale };
37
37
  }
38
38
  if (calibration.type === CalibrationTypes.UNCALIBRATED) {
39
- return { lengthUnits: PIXEL_UNITS, areaUnits: PIXEL_UNITS + SQUARE, scale };
39
+ return { unit: PIXEL_UNITS, areaUnit: PIXEL_UNITS + SQUARE, scale };
40
40
  }
41
41
  if (calibration.sequenceOfUltrasoundRegions) {
42
42
  let imageIndex1, imageIndex2;
@@ -57,14 +57,14 @@ const getCalibratedLengthUnitsAndScale = (image, handles) => {
57
57
  imageIndex2[1] >= region.regionLocationMinY0 &&
58
58
  imageIndex2[1] <= region.regionLocationMaxY1);
59
59
  if (!regions?.length) {
60
- return { lengthUnits, areaUnits, scale };
60
+ return { unit, areaUnit, scale };
61
61
  }
62
62
  regions = regions.filter((region) => SUPPORTED_REGION_DATA_TYPES.includes(region.regionDataType) &&
63
63
  SUPPORTED_LENGTH_VARIANT.includes(`${region.physicalUnitsXDirection},${region.physicalUnitsYDirection}`));
64
64
  if (!regions.length) {
65
65
  return {
66
- lengthUnits: PIXEL_UNITS,
67
- areaUnits: PIXEL_UNITS + SQUARE,
66
+ unit: PIXEL_UNITS,
67
+ areaUnit: PIXEL_UNITS + SQUARE,
68
68
  scale,
69
69
  };
70
70
  }
@@ -75,13 +75,13 @@ const getCalibratedLengthUnitsAndScale = (image, handles) => {
75
75
  if (isSamePhysicalDelta) {
76
76
  scale = 1 / physicalDeltaX;
77
77
  calibrationType = 'US Region';
78
- lengthUnits = UNIT_MAPPING[region.physicalUnitsXDirection] || 'unknown';
79
- areaUnits = lengthUnits + SQUARE;
78
+ unit = UNIT_MAPPING[region.physicalUnitsXDirection] || 'unknown';
79
+ areaUnit = unit + SQUARE;
80
80
  }
81
81
  else {
82
82
  return {
83
- lengthUnits: PIXEL_UNITS,
84
- areaUnits: PIXEL_UNITS + SQUARE,
83
+ unit: PIXEL_UNITS,
84
+ areaUnit: PIXEL_UNITS + SQUARE,
85
85
  scale,
86
86
  };
87
87
  }
@@ -99,8 +99,8 @@ const getCalibratedLengthUnitsAndScale = (image, handles) => {
99
99
  calibrationType = calibration.type;
100
100
  }
101
101
  return {
102
- lengthUnits: lengthUnits + (calibrationType ? ` ${calibrationType}` : ''),
103
- areaUnits: areaUnits + (calibrationType ? ` ${calibrationType}` : ''),
102
+ unit: unit + (calibrationType ? ` ${calibrationType}` : ''),
103
+ areaUnit: areaUnit + (calibrationType ? ` ${calibrationType}` : ''),
104
104
  scale,
105
105
  };
106
106
  };
@@ -1,9 +1,9 @@
1
- import { ToolGroupManager } from '../store';
2
1
  import { getEnabledElement } from '@cornerstonejs/core';
2
+ import { getToolGroupForViewport } from '../store/ToolGroupManager';
3
3
  export default function getToolsWithModesForElement(element, modesFilter) {
4
4
  const enabledElement = getEnabledElement(element);
5
5
  const { renderingEngineId, viewportId } = enabledElement;
6
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
6
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
7
7
  if (!toolGroup) {
8
8
  return [];
9
9
  }
@@ -1,4 +1,4 @@
1
- import { utilities } from '@cornerstonejs/core';
1
+ import { utilities, triggerEvent } from '@cornerstonejs/core';
2
2
  import { getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement } from './getAnnotationNearPoint';
3
3
  import debounce from './debounce';
4
4
  import throttle from './throttle';
@@ -35,5 +35,4 @@ import * as polyDataUtils from './polyData/utils';
35
35
  import * as voi from './voi';
36
36
  import * as contourSegmentation from './contourSegmentation';
37
37
  declare const roundNumber: typeof utilities.roundNumber;
38
- import { triggerEvent } from '@cornerstonejs/core';
39
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, };
@@ -1,4 +1,4 @@
1
- import { utilities } from '@cornerstonejs/core';
1
+ import { utilities, triggerEvent } from '@cornerstonejs/core';
2
2
  import { getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, } from './getAnnotationNearPoint';
3
3
  import debounce from './debounce';
4
4
  import throttle from './throttle';
@@ -35,5 +35,4 @@ import * as polyDataUtils from './polyData/utils';
35
35
  import * as voi from './voi';
36
36
  import * as contourSegmentation from './contourSegmentation';
37
37
  const roundNumber = utilities.roundNumber;
38
- import { triggerEvent } from '@cornerstonejs/core';
39
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, };
@@ -1,7 +1,7 @@
1
- import * as math from '../';
1
+ import { distanceToPointSquared } from '../point';
2
2
  export default function distanceToPointSquaredInfo(lineStart, lineEnd, point) {
3
3
  let closestPoint;
4
- const distanceSquared = math.point.distanceToPointSquared(lineStart, lineEnd);
4
+ const distanceSquared = distanceToPointSquared(lineStart, lineEnd);
5
5
  if (lineStart[0] === lineEnd[0] && lineStart[1] === lineEnd[1]) {
6
6
  closestPoint = lineStart;
7
7
  }
@@ -24,6 +24,6 @@ export default function distanceToPointSquaredInfo(lineStart, lineEnd, point) {
24
24
  }
25
25
  return {
26
26
  point: [...closestPoint],
27
- distanceSquared: math.point.distanceToPointSquared(point, closestPoint),
27
+ distanceSquared: distanceToPointSquared(point, closestPoint),
28
28
  };
29
29
  }
@@ -1,5 +1,5 @@
1
1
  import { glMatrix } from 'gl-matrix';
2
- import * as math from '..';
2
+ import { distanceToPointSquared } from '../point';
3
3
  export default function isClosed(polyline) {
4
4
  if (polyline.length < 3) {
5
5
  return false;
@@ -7,6 +7,6 @@ export default function isClosed(polyline) {
7
7
  const numPolylinePoints = polyline.length;
8
8
  const firstPoint = polyline[0];
9
9
  const lastPoint = polyline[numPolylinePoints - 1];
10
- const distFirstToLastPoints = math.point.distanceToPointSquared(firstPoint, lastPoint);
10
+ const distFirstToLastPoints = distanceToPointSquared(firstPoint, lastPoint);
11
11
  return glMatrix.equals(0, distFirstToLastPoints);
12
12
  }
@@ -1,6 +1,6 @@
1
- import { PlanarFreehandROITool } from '../../tools';
2
- import { ToolGroupManager } from '../../store';
1
+ import PlanarFreehandROITool from '../../tools/annotation/PlanarFreehandROITool';
3
2
  import interpolateSegmentPoints from './interpolation/interpolateSegmentPoints';
3
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
4
4
  function shouldPreventInterpolation(enabledElement, annotation, knotsRatioPercentage) {
5
5
  if (!annotation?.data?.polyline || knotsRatioPercentage <= 0) {
6
6
  return true;
@@ -9,7 +9,7 @@ function shouldPreventInterpolation(enabledElement, annotation, knotsRatioPercen
9
9
  return true;
10
10
  }
11
11
  const { renderingEngineId, viewportId, FrameOfReferenceUID } = enabledElement;
12
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
12
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
13
13
  if (annotation.metadata.FrameOfReferenceUID !== FrameOfReferenceUID) {
14
14
  return true;
15
15
  }
@@ -1,7 +1,7 @@
1
1
  import { getToolGroup } from '../../store/ToolGroupManager';
2
2
  import triggerAnnotationRenderForViewportIds from '../triggerAnnotationRenderForViewportIds';
3
3
  import { getRenderingEngine } from '@cornerstonejs/core';
4
- import { getBrushToolInstances } from './utilities';
4
+ import { getBrushToolInstances } from './getBrushToolInstances';
5
5
  export function setBrushSizeForToolGroup(toolGroupId, brushSize, toolName) {
6
6
  const toolGroup = getToolGroup(toolGroupId);
7
7
  if (toolGroup === undefined) {
@@ -1,7 +1,7 @@
1
1
  import { getToolGroup } from '../../store/ToolGroupManager';
2
2
  import triggerAnnotationRenderForViewportIds from '../triggerAnnotationRenderForViewportIds';
3
3
  import { getRenderingEngine } from '@cornerstonejs/core';
4
- import { getBrushToolInstances } from './utilities';
4
+ import { getBrushToolInstances } from './getBrushToolInstances';
5
5
  export function setBrushThresholdForToolGroup(toolGroupId, threshold, otherArgs = { isDynamic: false }) {
6
6
  const toolGroup = getToolGroup(toolGroupId);
7
7
  if (toolGroup === undefined) {
@@ -0,0 +1 @@
1
+ export declare function getBrushToolInstances(toolGroupId: string, toolName?: string): any[];
@@ -0,0 +1,17 @@
1
+ import { getToolGroup } from '../../store/ToolGroupManager';
2
+ import BrushTool from '../../tools/segmentation/BrushTool';
3
+ export function getBrushToolInstances(toolGroupId, toolName) {
4
+ const toolGroup = getToolGroup(toolGroupId);
5
+ if (toolGroup === undefined) {
6
+ return;
7
+ }
8
+ const toolInstances = toolGroup._toolInstances;
9
+ if (!Object.keys(toolInstances).length) {
10
+ return;
11
+ }
12
+ if (toolName && toolInstances[toolName]) {
13
+ return [toolInstances[toolName]];
14
+ }
15
+ const brushBasedToolInstances = Object.values(toolInstances).filter((toolInstance) => toolInstance instanceof BrushTool);
16
+ return brushBasedToolInstances;
17
+ }
@@ -1,4 +1,2 @@
1
- export declare const setSegmentationDirty: (segmentationId: string) => void;
2
- export declare const setSegmentationClean: (segmentationId: string) => void;
3
1
  declare function getUniqueSegmentIndices(segmentationId: any): any;
4
2
  export { getUniqueSegmentIndices };
@@ -1,27 +1,8 @@
1
1
  import { cache } from '@cornerstonejs/core';
2
- import { getSegmentation } from '../../stateManagement/segmentation/segmentationState';
3
2
  import { isVolumeSegmentation } from '../../tools/segmentation/strategies/utils/stackVolumeCheck';
4
3
  import { SegmentationRepresentations } from '../../enums';
5
- const segmentIndicesCache = new Map();
6
- export const setSegmentationDirty = (segmentationId) => {
7
- const cached = segmentIndicesCache.get(segmentationId);
8
- if (cached) {
9
- cached.isDirty = true;
10
- }
11
- };
12
- export const setSegmentationClean = (segmentationId) => {
13
- const cached = segmentIndicesCache.get(segmentationId);
14
- if (cached) {
15
- cached.isDirty = false;
16
- }
17
- };
18
- function getCachedSegmentIndices(segmentationId) {
19
- const cached = segmentIndicesCache.get(segmentationId);
20
- if (cached && !cached.isDirty) {
21
- return cached.indices;
22
- }
23
- return null;
24
- }
4
+ import { getCachedSegmentIndices, setCachedSegmentIndices } from './utilities';
5
+ import { getSegmentation } from '../../stateManagement/segmentation/getSegmentation';
25
6
  function getUniqueSegmentIndices(segmentationId) {
26
7
  const cachedResult = getCachedSegmentIndices(segmentationId);
27
8
  if (cachedResult) {
@@ -45,7 +26,7 @@ function getUniqueSegmentIndices(segmentationId) {
45
26
  default:
46
27
  throw new Error(`Unsupported segmentation type: ${segmentation.type}`);
47
28
  }
48
- segmentIndicesCache.set(segmentationId, { indices, isDirty: false });
29
+ setCachedSegmentIndices(segmentationId, indices);
49
30
  return indices;
50
31
  }
51
32
  function handleLabelmapSegmentation(segmentation, segmentationId) {