@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
@@ -1,4 +1,4 @@
1
- import { MouseCursor } from '.';
1
+ import MouseCursor from './MouseCursor';
2
2
  declare function initElementCursor(element: HTMLDivElement, cursor: MouseCursor | null): void;
3
3
  declare function _setElementCursor(element: HTMLDivElement, cursor: MouseCursor | null): void;
4
4
  declare function resetElementCursor(element: HTMLDivElement): void;
@@ -1,4 +1,4 @@
1
- import { MouseCursor } from '.';
1
+ import MouseCursor from './MouseCursor';
2
2
  const ELEMENT_CURSORS_MAP = Symbol('ElementCursorsMap');
3
3
  function initElementCursor(element, cursor) {
4
4
  _getElementCursors(element)[0] = cursor;
@@ -1,4 +1,4 @@
1
- import { state } from '../store';
1
+ import { state } from '../store/state';
2
2
  import { getEnabledElement } from '@cornerstonejs/core';
3
3
  const VIEWPORT_ELEMENT = 'viewport-element';
4
4
  function getSvgDrawingHelper(element) {
@@ -1,12 +1,12 @@
1
- import { ToolGroupManager } from '../../store';
2
1
  import getActiveToolForKeyboardEvent from '../shared/getActiveToolForKeyboardEvent';
3
2
  import getToolsWithActionsForKeyboardEvent from '../shared/getToolsWithActionsForKeyboardEvents';
4
3
  import ToolModes from '../../enums/ToolModes';
4
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
5
5
  export default function keyDown(evt) {
6
6
  const activeTool = getActiveToolForKeyboardEvent(evt);
7
7
  if (activeTool) {
8
8
  const { renderingEngineId, viewportId } = evt.detail;
9
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
9
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
10
10
  const toolName = activeTool.getToolName();
11
11
  if (Object.keys(toolGroup.toolOptions).includes(toolName)) {
12
12
  toolGroup.setViewportsCursorByToolName(toolName);
@@ -1,13 +1,13 @@
1
1
  import { resetModifierKey } from '../../eventListeners/keyboard/keyDownListener';
2
- import { ToolGroupManager } from '../../store';
3
2
  import getActiveToolForKeyboardEvent from '../shared/getActiveToolForKeyboardEvent';
3
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
4
4
  export default function keyUp(evt) {
5
5
  const activeTool = getActiveToolForKeyboardEvent(evt);
6
6
  if (!activeTool) {
7
7
  return;
8
8
  }
9
9
  const { renderingEngineId, viewportId } = evt.detail;
10
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
10
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
11
11
  resetModifierKey();
12
12
  const toolName = activeTool.getToolName();
13
13
  if (Object.keys(toolGroup.toolOptions).includes(toolName)) {
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import { ToolModes } from '../../enums';
3
3
  import { setAnnotationSelected, isAnnotationSelected, } from '../../stateManagement/annotation/annotationSelection';
4
4
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import getActiveToolForMouseEvent from '../shared/getActiveToolForMouseEvent';
3
3
  import { setAnnotationSelected } from '../../stateManagement/annotation/annotationSelection';
4
4
  export default function mouseDownActivate(evt) {
@@ -1,5 +1,5 @@
1
1
  import { getEnabledElement } from '@cornerstonejs/core';
2
- import { state } from '../../store';
2
+ import { state } from '../../store/state';
3
3
  import { ToolModes } from '../../enums';
4
4
  import filterToolsWithAnnotationsForElement from '../../store/filterToolsWithAnnotationsForElement';
5
5
  import filterMoveableAnnotationTools from '../../store/filterMoveableAnnotationTools';
@@ -1,5 +1,5 @@
1
1
  import getActiveToolForMouseEvent from '../shared/getActiveToolForMouseEvent';
2
- import { state } from '../../store';
2
+ import { state } from '../../store/state';
3
3
  export default function mouseDrag(evt) {
4
4
  if (state.isInteractingWithTool) {
5
5
  return;
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import { ToolModes } from '../../enums';
3
3
  import filterToolsWithAnnotationsForElement from '../../store/filterToolsWithAnnotationsForElement';
4
4
  import getToolsWithModesForMouseEvent from '../shared/getToolsWithModesForMouseEvent';
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import getActiveToolForMouseEvent from '../shared/getActiveToolForMouseEvent';
3
3
  import { MouseBindings } from '../../enums/ToolBindings';
4
4
  function mouseWheel(evt) {
@@ -1,12 +1,13 @@
1
- import { state, ToolGroupManager } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import ToolModes from '../../enums/ToolModes';
3
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
3
4
  const { Active } = ToolModes;
4
5
  export default function customCallbackHandler(handlerType, customFunction, evt) {
5
6
  if (state.isInteractingWithTool) {
6
7
  return false;
7
8
  }
8
9
  const { renderingEngineId, viewportId } = evt.detail;
9
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
10
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
10
11
  if (!toolGroup) {
11
12
  return false;
12
13
  }
@@ -1,13 +1,13 @@
1
- import { ToolGroupManager } from '../../store';
2
1
  import { ToolModes } from '../../enums';
3
2
  import { keyEventListener } from '../../eventListeners';
4
3
  import { getMouseButton } from '../../eventListeners/mouse/mouseDownListener';
4
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
5
5
  const { Active } = ToolModes;
6
6
  export default function getActiveToolForKeyboardEvent(evt) {
7
7
  const { renderingEngineId, viewportId } = evt.detail;
8
8
  const mouseButton = getMouseButton();
9
9
  const modifierKey = keyEventListener.getModifierKey();
10
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
10
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
11
11
  if (!toolGroup) {
12
12
  return null;
13
13
  }
@@ -1,12 +1,12 @@
1
- import { ToolGroupManager } from '../../store';
2
1
  import { ToolModes } from '../../enums';
3
2
  import { keyEventListener } from '../../eventListeners';
3
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
4
4
  import getMouseModifier from './getMouseModifier';
5
5
  const { Active } = ToolModes;
6
6
  export default function getActiveToolForMouseEvent(evt) {
7
7
  const { renderingEngineId, viewportId, event: mouseEvent } = evt.detail;
8
8
  const modifierKey = getMouseModifier(mouseEvent) || keyEventListener.getModifierKey();
9
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
9
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
10
10
  if (!toolGroup) {
11
11
  return null;
12
12
  }
@@ -1,12 +1,12 @@
1
- import { ToolGroupManager } from '../../store';
2
- import { MouseBindings, ToolModes } from '../../enums';
1
+ import { ToolModes } from '../../enums';
3
2
  import getMouseModifier from './getMouseModifier';
4
3
  import { keyEventListener } from '../../eventListeners';
4
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
5
5
  const { Active } = ToolModes;
6
6
  export default function getActiveToolForTouchEvent(evt) {
7
7
  const { renderingEngineId, viewportId } = evt.detail;
8
8
  const touchEvent = evt.detail.event;
9
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
9
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
10
10
  if (!toolGroup) {
11
11
  return null;
12
12
  }
@@ -1,8 +1,8 @@
1
- import { ToolGroupManager } from '../../store';
1
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
2
2
  export default function getToolsWithModesForKeyboardEvent(evt, toolModes) {
3
3
  const toolsWithActions = new Map();
4
4
  const { renderingEngineId, viewportId } = evt.detail;
5
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
5
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
6
6
  if (!toolGroup) {
7
7
  return toolsWithActions;
8
8
  }
@@ -1,10 +1,10 @@
1
- import { ToolGroupManager } from '../../store';
2
1
  import { keyEventListener } from '../../eventListeners';
3
2
  import getMouseModifier from './getMouseModifier';
3
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
4
4
  export default function getToolsWithActionsForMouseEvent(evt, toolModes) {
5
5
  const toolsWithActions = new Map();
6
6
  const { renderingEngineId, viewportId } = evt.detail;
7
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
7
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
8
8
  if (!toolGroup) {
9
9
  return toolsWithActions;
10
10
  }
@@ -1,7 +1,7 @@
1
- import { ToolGroupManager } from '../../store';
1
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
2
2
  export default function getToolsWithModesForMouseEvent(evt, modesFilter, evtButton) {
3
3
  const { renderingEngineId, viewportId } = evt.detail;
4
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
4
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
5
5
  if (!toolGroup) {
6
6
  return [];
7
7
  }
@@ -1,7 +1,7 @@
1
- import { ToolGroupManager } from '../../store';
1
+ import { getToolGroupForViewport } from '../../store/ToolGroupManager';
2
2
  export default function getToolsWithModesForTouchEvent(evt, modesFilter, numTouchPoints) {
3
3
  const { renderingEngineId, viewportId } = evt.detail;
4
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewportId, renderingEngineId);
4
+ const toolGroup = getToolGroupForViewport(viewportId, renderingEngineId);
5
5
  if (!toolGroup) {
6
6
  return [];
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import getActiveToolForTouchEvent from '../shared/getActiveToolForTouchEvent';
2
- import { state } from '../../store';
2
+ import { state } from '../../store/state';
3
3
  export default function touchDrag(evt) {
4
4
  if (state.isInteractingWithTool) {
5
5
  return;
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import { ToolModes } from '../../enums';
3
3
  import { setAnnotationSelected, isAnnotationSelected, } from '../../stateManagement/annotation/annotationSelection';
4
4
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
@@ -1,4 +1,4 @@
1
- import { state } from '../../store';
1
+ import { state } from '../../store/state';
2
2
  import { setAnnotationSelected } from '../../stateManagement/annotation/annotationSelection';
3
3
  import getActiveToolForTouchEvent from '../shared/getActiveToolForTouchEvent';
4
4
  export default function touchStartActivate(evt) {
@@ -1,5 +1,5 @@
1
1
  import { getRenderingEngines } from '@cornerstonejs/core';
2
- import { triggerAnnotationRenderForViewportIds } from '../../utilities';
2
+ import { triggerAnnotationRenderForViewportIds } from '../../utilities/triggerAnnotationRenderForViewportIds';
3
3
  function annotationSelectionListener(evt) {
4
4
  const deselectedAnnotation = evt.detail.removed;
5
5
  if (!deselectedAnnotation.length) {
@@ -1,19 +1,20 @@
1
1
  import { getEnabledElement, utilities as csUtils } from '@cornerstonejs/core';
2
2
  import getViewportsForAnnotation from '../../../utilities/getViewportsForAnnotation';
3
- import { math, triggerAnnotationRenderForViewportIds, } from '../../../utilities';
3
+ import * as math from '../../../utilities/math';
4
+ import triggerAnnotationRenderForViewportIds from '../../../utilities/triggerAnnotationRenderForViewportIds';
4
5
  import { getViewportIdsWithToolToRender } from '../../../utilities/viewportFilters';
5
6
  import { addAnnotation, removeAnnotation, getAllAnnotations, getChildAnnotations, addChildAnnotation, clearParentAnnotation, } from '../../../stateManagement/annotation/annotationState';
6
- import * as contourUtils from '../../../utilities/contours';
7
- import * as contourSegUtils from '../../../utilities/contourSegmentation';
8
- import { ToolGroupManager, hasTool as cstHasTool } from '../../../store';
9
- import { PlanarFreehandContourSegmentationTool } from '../../../tools';
10
7
  import { ContourWindingDirection } from '../../../types/ContourAnnotation';
11
8
  import { triggerAnnotationModified } from '../../../stateManagement/annotation/helpers/state';
12
- const DEFAULT_CONTOUR_SEG_TOOLNAME = 'PlanarFreehandContourSegmentationTool';
9
+ import updateContourPolyline from '../../../utilities/contours/updateContourPolyline';
10
+ import { addContourSegmentationAnnotation, areSameSegment, isContourSegmentationAnnotation, removeContourSegmentationAnnotation, } from '../../../utilities/contourSegmentation';
11
+ import { getToolGroupForViewport } from '../../../store/ToolGroupManager';
12
+ import { hasTool, hasToolByName } from '../../../store/addTool';
13
+ const DEFAULT_CONTOUR_SEG_TOOL_NAME = 'PlanarFreehandContourSegmentationTool';
13
14
  export default async function contourSegmentationCompletedListener(evt) {
14
15
  const sourceAnnotation = evt.detail
15
16
  .annotation;
16
- if (!contourSegUtils.isContourSegmentationAnnotation(sourceAnnotation)) {
17
+ if (!isContourSegmentationAnnotation(sourceAnnotation)) {
17
18
  return;
18
19
  }
19
20
  const viewport = getViewport(sourceAnnotation);
@@ -39,8 +40,8 @@ export default async function contourSegmentationCompletedListener(evt) {
39
40
  }
40
41
  }
41
42
  function isFreehandContourSegToolRegisteredForViewport(viewport, silent = false) {
42
- const { toolName } = PlanarFreehandContourSegmentationTool;
43
- const toolGroup = ToolGroupManager.getToolGroupForViewport(viewport.id, viewport.renderingEngineId);
43
+ const toolName = 'PlanarFreehandContourSegmentationTool';
44
+ const toolGroup = getToolGroupForViewport(viewport.id, viewport.renderingEngineId);
44
45
  let errorMessage;
45
46
  if (!toolGroup.hasTool(toolName)) {
46
47
  errorMessage = `Tool ${toolName} not added to ${toolGroup.id} toolGroup`;
@@ -71,8 +72,8 @@ function getValidContourSegmentationAnnotations(viewport, sourceAnnotation) {
71
72
  const allAnnotations = getAllAnnotations();
72
73
  return allAnnotations.filter((targetAnnotation) => targetAnnotation.annotationUID &&
73
74
  targetAnnotation.annotationUID !== sourceAnnotationUID &&
74
- contourSegUtils.isContourSegmentationAnnotation(targetAnnotation) &&
75
- contourSegUtils.areSameSegment(targetAnnotation, sourceAnnotation) &&
75
+ isContourSegmentationAnnotation(targetAnnotation) &&
76
+ areSameSegment(targetAnnotation, sourceAnnotation) &&
76
77
  viewport.isReferenceViewable(targetAnnotation.metadata));
77
78
  }
78
79
  function findIntersectingContour(viewport, sourcePolyline, contourSegmentationAnnotations) {
@@ -96,16 +97,16 @@ export function createPolylineHole(viewport, targetAnnotation, holeAnnotation) {
96
97
  const { windingDirection: targetWindingDirection } = targetAnnotation.data.contour;
97
98
  const { windingDirection: holeWindingDirection } = holeAnnotation.data.contour;
98
99
  addChildAnnotation(targetAnnotation, holeAnnotation);
99
- contourSegUtils.removeContourSegmentationAnnotation(holeAnnotation);
100
+ removeContourSegmentationAnnotation(holeAnnotation);
100
101
  const { contour: holeContour } = holeAnnotation.data;
101
102
  const holePolyline = convertContourPolylineToCanvasSpace(holeContour.polyline, viewport);
102
- contourUtils.updateContourPolyline(holeAnnotation, {
103
+ updateContourPolyline(holeAnnotation, {
103
104
  points: holePolyline,
104
105
  closed: holeContour.closed,
105
106
  }, viewport);
106
107
  const { element } = viewport;
107
108
  const updatedToolNames = new Set([
108
- DEFAULT_CONTOUR_SEG_TOOLNAME,
109
+ DEFAULT_CONTOUR_SEG_TOOL_NAME,
109
110
  targetAnnotation.metadata.toolName,
110
111
  holeAnnotation.metadata.toolName,
111
112
  ]);
@@ -121,8 +122,8 @@ function getContourHolesData(viewport, annotation) {
121
122
  });
122
123
  }
123
124
  function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnnotation, sourcePolyline) {
124
- if (!cstHasTool(PlanarFreehandContourSegmentationTool)) {
125
- console.warn(`${PlanarFreehandContourSegmentationTool.toolName} is not registered in cornerstone`);
125
+ if (!hasToolByName(DEFAULT_CONTOUR_SEG_TOOL_NAME)) {
126
+ console.warn(`${DEFAULT_CONTOUR_SEG_TOOL_NAME} is not registered in cornerstone`);
126
127
  return;
127
128
  }
128
129
  if (!isFreehandContourSegToolRegisteredForViewport(viewport)) {
@@ -176,7 +177,7 @@ function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnno
176
177
  const newAnnotation = {
177
178
  metadata: {
178
179
  ...metadata,
179
- toolName: DEFAULT_CONTOUR_SEG_TOOLNAME,
180
+ toolName: DEFAULT_CONTOUR_SEG_TOOL_NAME,
180
181
  originalToolName: metadata.originalToolName || metadata.toolName,
181
182
  },
182
183
  data: {
@@ -202,13 +203,13 @@ function combinePolylines(viewport, targetAnnotation, targetPolyline, sourceAnno
202
203
  interpolationUID: targetAnnotation.interpolationUID,
203
204
  interpolationCompleted: targetAnnotation.interpolationCompleted,
204
205
  };
205
- contourUtils.updateContourPolyline(newAnnotation, {
206
+ updateContourPolyline(newAnnotation, {
206
207
  points: polyline,
207
208
  closed: true,
208
209
  targetWindingDirection: ContourWindingDirection.Clockwise,
209
210
  }, viewport);
210
211
  addAnnotation(newAnnotation, element);
211
- contourSegUtils.addContourSegmentationAnnotation(newAnnotation);
212
+ addContourSegmentationAnnotation(newAnnotation);
212
213
  triggerAnnotationModified(newAnnotation, viewport.element);
213
214
  reassignedContourHolesMap
214
215
  .get(polyline)
@@ -220,7 +221,7 @@ function updateViewports(enabledElement, targetAnnotation, sourceAnnotation) {
220
221
  const { viewport } = enabledElement;
221
222
  const { element } = viewport;
222
223
  const updatedTtoolNames = new Set([
223
- DEFAULT_CONTOUR_SEG_TOOLNAME,
224
+ DEFAULT_CONTOUR_SEG_TOOL_NAME,
224
225
  targetAnnotation.metadata.toolName,
225
226
  sourceAnnotation.metadata.toolName,
226
227
  ]);
@@ -2,8 +2,10 @@ import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
2
2
  import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
3
3
  import { BaseVolumeViewport, getEnabledElement, Enums, getEnabledElementByIds, cache, utilities, } from '@cornerstonejs/core';
4
4
  import Representations from '../../enums/SegmentationRepresentations';
5
- import * as SegmentationState from '../../stateManagement/segmentation/segmentationState';
6
- import { triggerSegmentationRender } from '../../utilities/segmentation/triggerSegmentationRender';
5
+ import { triggerSegmentationRender } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
6
+ import { getSegmentationRepresentations } from '../../stateManagement/segmentation/getSegmentationRepresentations';
7
+ import { updateLabelmapSegmentationImageReferences } from '../../stateManagement/segmentation/updateLabelmapSegmentationImageReferences';
8
+ import { getCurrentLabelmapImageIdForViewport } from '../../stateManagement/segmentation/getCurrentLabelmapImageIdForViewport';
7
9
  const enable = function (element) {
8
10
  const { viewport } = getEnabledElement(element);
9
11
  if (viewport instanceof BaseVolumeViewport) {
@@ -21,7 +23,7 @@ function _imageChangeEventListener(evt) {
21
23
  const eventData = evt.detail;
22
24
  const { viewportId, renderingEngineId } = eventData;
23
25
  const { viewport } = getEnabledElementByIds(viewportId, renderingEngineId);
24
- const segmentationRepresentations = SegmentationState.getSegmentationRepresentations(viewportId);
26
+ const segmentationRepresentations = getSegmentationRepresentations(viewportId);
25
27
  if (!segmentationRepresentations?.length) {
26
28
  return;
27
29
  }
@@ -32,12 +34,12 @@ function _imageChangeEventListener(evt) {
32
34
  const actors = viewport.getActors();
33
35
  labelmapRepresentations.forEach((representation) => {
34
36
  const { segmentationId } = representation;
35
- const labelmapImageId = SegmentationState.updateLabelmapSegmentationImageReferences(viewportId, segmentationId);
37
+ const labelmapImageId = updateLabelmapSegmentationImageReferences(viewportId, segmentationId);
36
38
  });
37
39
  const allLabelmapActors = actors.filter((actor) => labelmapRepresentations.some((representation) => representation.segmentationRepresentationUID === actor.uid));
38
40
  allLabelmapActors.forEach((actor) => {
39
41
  const validActor = labelmapRepresentations.find((representation) => {
40
- const derivedImageId = SegmentationState.getCurrentLabelmapImageIdForViewport(viewportId, representation.segmentationId);
42
+ const derivedImageId = getCurrentLabelmapImageIdForViewport(viewportId, representation.segmentationId);
41
43
  return derivedImageId === actor.referencedId;
42
44
  });
43
45
  if (!validActor) {
@@ -47,7 +49,7 @@ function _imageChangeEventListener(evt) {
47
49
  labelmapRepresentations.forEach((representation) => {
48
50
  const { segmentationId } = representation;
49
51
  const currentImageId = viewport.getCurrentImageId();
50
- const derivedImageId = SegmentationState.getCurrentLabelmapImageIdForViewport(viewportId, segmentationId);
52
+ const derivedImageId = getCurrentLabelmapImageIdForViewport(viewportId, segmentationId);
51
53
  if (!derivedImageId) {
52
54
  return;
53
55
  }
@@ -1,6 +1,6 @@
1
1
  import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
2
2
  import * as SegmentationState from '../../stateManagement/segmentation/segmentationState';
3
- import { triggerSegmentationRenderBySegmentationId } from '../../utilities/segmentation';
3
+ import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
4
4
  import onLabelmapSegmentationDataModified from './labelmap/onLabelmapSegmentationDataModified';
5
5
  const onSegmentationDataModified = function (evt) {
6
6
  const { segmentationId } = evt.detail;
@@ -1,5 +1,5 @@
1
1
  import {} from '../../stateManagement/segmentation/triggerSegmentationEvents';
2
- import { triggerSegmentationRenderBySegmentationId } from '../../utilities/segmentation';
2
+ import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
3
3
  const segmentationModifiedListener = function (evt) {
4
4
  const { segmentationId } = evt.detail;
5
5
  triggerSegmentationRenderBySegmentationId(segmentationId);
@@ -1,5 +1,5 @@
1
1
  import { getSegmentationRepresentation } from '../../stateManagement/segmentation/segmentationState';
2
- import { triggerSegmentationRenderBySegmentationId } from '../../utilities/segmentation';
2
+ import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
3
3
  const segmentationRepresentationModifiedListener = function (evt) {
4
4
  const { segmentationRepresentationUID } = evt.detail;
5
5
  const segmentationRepresentation = getSegmentationRepresentation
@@ -1,5 +1,5 @@
1
1
  import { getSegmentationRepresentation } from '../../stateManagement/segmentation/segmentationState';
2
- import { triggerSegmentationRenderBySegmentationId } from '../../utilities/segmentation';
2
+ import { triggerSegmentationRenderBySegmentationId } from '../../stateManagement/segmentation/SegmentationRenderingEngine';
3
3
  const segmentationRepresentationRemovedEventListener = function (evt) {
4
4
  const { segmentationRepresentationUID } = evt.detail;
5
5
  const segmentation = getSegmentationRepresentation(segmentationRepresentationUID);
@@ -1,5 +1,6 @@
1
1
  import { init, destroy } from './init';
2
- import { addTool, removeTool, state, ToolGroupManager, SynchronizerManager, Synchronizer, cancelActiveManipulations } from './store';
2
+ import { addTool, removeTool, ToolGroupManager, SynchronizerManager, Synchronizer, cancelActiveManipulations } from './store';
3
+ import { state } from './store/state';
3
4
  import * as CONSTANTS from './constants';
4
5
  import * as synchronizers from './synchronizers';
5
6
  import * as drawing from './drawingSvg';
@@ -8,7 +9,7 @@ import * as cursors from './cursors';
8
9
  import * as Types from './types';
9
10
  import * as annotation from './stateManagement/annotation';
10
11
  import * as segmentation from './stateManagement/segmentation';
11
- import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool } from './tools';
12
+ import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool } from './tools';
12
13
  import VideoRedactionTool from './tools/annotation/VideoRedactionTool';
13
14
  import * as Enums from './enums';
14
- export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
15
+ export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { init, destroy } from './init';
2
- import { addTool, removeTool, state, ToolGroupManager, SynchronizerManager, Synchronizer, cancelActiveManipulations, } from './store';
2
+ import { addTool, removeTool, ToolGroupManager, SynchronizerManager, Synchronizer, cancelActiveManipulations, } from './store';
3
+ import { state } from './store/state';
3
4
  import * as CONSTANTS from './constants';
4
5
  import * as synchronizers from './synchronizers';
5
6
  import * as drawing from './drawingSvg';
@@ -8,7 +9,7 @@ import * as cursors from './cursors';
8
9
  import * as Types from './types';
9
10
  import * as annotation from './stateManagement/annotation';
10
11
  import * as segmentation from './stateManagement/segmentation';
11
- import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool, } from './tools';
12
+ import { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, PlanarRotateTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, KeyImageTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, OverlayGridTool, SegmentationIntersectionTool, EraserTool, SculptorTool, SegmentSelectTool, WindowLevelRegionTool, } from './tools';
12
13
  import VideoRedactionTool from './tools/annotation/VideoRedactionTool';
13
14
  import * as Enums from './enums';
14
- export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
15
+ export { VideoRedactionTool, init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, WindowLevelRegionTool, ZoomTool, StackScrollTool, PlanarRotateTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, HeightTool, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, SplineContourSegmentationTool, BidirectionalTool, PlanarFreehandROITool, PlanarFreehandContourSegmentationTool, LivewireContourTool, LivewireContourSegmentationTool, ArrowAnnotateTool, AngleTool, CobbAngleTool, UltrasoundDirectionalTool, KeyImageTool, MagnifyTool, AdvancedMagnifyTool, ReferenceCursors, ScaleOverlayTool, SculptorTool, EraserTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, CircleROIStartEndThresholdTool, BrushTool, OrientationMarkerTool, SegmentSelectTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
package/dist/esm/init.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { eventTarget, Enums } from '@cornerstonejs/core';
2
2
  import { getAnnotationManager } from './stateManagement/annotation/annotationState';
3
- import { getDefaultSegmentationStateManager } from './stateManagement/segmentation/segmentationState';
4
3
  import { Events as TOOLS_EVENTS } from './enums';
5
4
  import { addEnabledElement, removeEnabledElement } from './store';
6
5
  import { resetCornerstoneToolsState } from './store/state';
7
6
  import { annotationCompletedListener, annotationRemovedListener, annotationSelectionListener, annotationModifiedListener, segmentationDataModifiedEventListener, segmentationRepresentationModifiedEventListener, segmentationRepresentationRemovedEventListener, segmentationModifiedListener, } from './eventListeners';
8
7
  import { annotationInterpolationEventDispatcher } from './eventDispatchers';
9
8
  import * as ToolGroupManager from './store/ToolGroupManager';
9
+ import { defaultSegmentationStateManager } from './stateManagement/segmentation/SegmentationStateManager';
10
10
  let csToolsInitialized = false;
11
11
  export function init(defaultConfiguration = {}) {
12
12
  if (csToolsInitialized) {
@@ -22,7 +22,7 @@ export function destroy() {
22
22
  ToolGroupManager.destroy();
23
23
  resetCornerstoneToolsState();
24
24
  const annotationManager = getAnnotationManager();
25
- const segmentationStateManager = getDefaultSegmentationStateManager();
25
+ const segmentationStateManager = defaultSegmentationStateManager;
26
26
  annotationManager.restoreAnnotations({});
27
27
  segmentationStateManager.resetState();
28
28
  csToolsInitialized = false;
@@ -1,6 +1,5 @@
1
1
  import { Enums, eventTarget, getEnabledElement, utilities, } from '@cornerstonejs/core';
2
2
  import { checkAndDefineIsLockedProperty } from './annotationLocking';
3
- import { checkAndDefineIsVisibleProperty } from './annotationVisibility';
4
3
  import { checkAndDefineTextBoxProperty, checkAndDefineCachedStatsProperty, } from './utilities/defineProperties';
5
4
  class FrameOfReferenceSpecificAnnotationManager {
6
5
  constructor(uid) {
@@ -93,7 +92,6 @@ class FrameOfReferenceSpecificAnnotationManager {
93
92
  }
94
93
  toolSpecificAnnotations.push(annotation);
95
94
  checkAndDefineIsLockedProperty(annotation);
96
- checkAndDefineIsVisibleProperty(annotation);
97
95
  checkAndDefineTextBoxProperty(annotation);
98
96
  checkAndDefineCachedStatsProperty(annotation);
99
97
  };
@@ -1,6 +1,6 @@
1
1
  import { eventTarget, triggerEvent } from '@cornerstonejs/core';
2
2
  import { Events } from '../../enums';
3
- import { getAnnotation } from './annotationState';
3
+ import { getAnnotation } from './getAnnotation';
4
4
  const selectedAnnotationUIDs = new Set();
5
5
  function setAnnotationSelected(annotationUID, selected = true, preserveSelected = false) {
6
6
  if (selected) {
@@ -1,5 +1,6 @@
1
1
  import type { Annotations, Annotation } from '../../types/AnnotationTypes';
2
2
  import type { AnnotationGroupSelector } from '../../types';
3
+ import { getAnnotation } from './getAnnotation';
3
4
  declare function getAnnotationManager(): import("./FrameOfReferenceSpecificAnnotationManager").default;
4
5
  declare function setAnnotationManager(annotationManager: any): void;
5
6
  declare function resetAnnotationManager(): void;
@@ -12,8 +13,7 @@ declare function getChildAnnotations(annotation: Annotation): Annotation[];
12
13
  declare function addAnnotation(annotation: Annotation, annotationGroupSelector: AnnotationGroupSelector): string;
13
14
  declare function getNumberOfAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): number;
14
15
  declare function removeAnnotation(annotationUID: string): void;
15
- declare function getAnnotation(annotationUID: string): Annotation;
16
16
  declare function removeAllAnnotations(): void;
17
17
  declare function removeAnnotations(toolName: string, annotationGroupSelector: AnnotationGroupSelector): void;
18
18
  declare function invalidateAnnotation(annotation: Annotation): void;
19
- export { getAllAnnotations, getAnnotations, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAnnotations, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, };
19
+ export { getAllAnnotations, getAnnotations, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, addAnnotation, removeAnnotation, removeAnnotations, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, getAnnotation, };
@@ -1,6 +1,8 @@
1
1
  import { utilities as csUtils } from '@cornerstonejs/core';
2
2
  import { defaultFrameOfReferenceSpecificAnnotationManager } from './FrameOfReferenceSpecificAnnotationManager';
3
+ import { getAnnotation } from './getAnnotation';
3
4
  import { triggerAnnotationAddedForElement, triggerAnnotationAddedForFOR, triggerAnnotationRemoved, } from './helpers/state';
5
+ import { checkAndDefineIsVisibleProperty } from './annotationVisibility';
4
6
  let defaultManager = defaultFrameOfReferenceSpecificAnnotationManager;
5
7
  function getAnnotationManager() {
6
8
  return defaultManager;
@@ -55,6 +57,7 @@ function addAnnotation(annotation, annotationGroupSelector) {
55
57
  if (!annotation.annotationUID) {
56
58
  annotation.annotationUID = csUtils.uuidv4();
57
59
  }
60
+ checkAndDefineIsVisibleProperty(annotation);
58
61
  const manager = getAnnotationManager();
59
62
  if (annotationGroupSelector instanceof HTMLDivElement) {
60
63
  const groupKey = manager.getGroupKey(annotationGroupSelector);
@@ -85,11 +88,6 @@ function removeAnnotation(annotationUID) {
85
88
  manager.removeAnnotation(annotationUID);
86
89
  triggerAnnotationRemoved({ annotation, annotationManagerUID: manager.uid });
87
90
  }
88
- function getAnnotation(annotationUID) {
89
- const manager = getAnnotationManager();
90
- const annotation = manager.getAnnotation(annotationUID);
91
- return annotation;
92
- }
93
91
  function removeAllAnnotations() {
94
92
  const manager = getAnnotationManager();
95
93
  const removedAnnotations = manager.removeAllAnnotations();
@@ -120,4 +118,4 @@ function invalidateAnnotation(annotation) {
120
118
  : undefined;
121
119
  }
122
120
  }
123
- export { getAllAnnotations, getAnnotations, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, addAnnotation, getAnnotation, removeAnnotation, removeAnnotations, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, };
121
+ export { getAllAnnotations, getAnnotations, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, addAnnotation, removeAnnotation, removeAnnotations, removeAllAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, getAnnotation, };
@@ -1,7 +1,7 @@
1
1
  import { eventTarget, triggerEvent } from '@cornerstonejs/core';
2
- import { getAnnotation } from './annotationState';
3
2
  import { Events } from '../../enums';
4
3
  import { isAnnotationSelected, deselectAnnotation, } from './annotationSelection';
4
+ import { getAnnotation } from './getAnnotation';
5
5
  const globalHiddenAnnotationUIDsSet = new Set();
6
6
  function setAnnotationVisibility(annotationUID, visible = true) {
7
7
  const detail = makeEventDetail();