@cornerstonejs/tools 1.53.0 → 1.54.1

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 (713) hide show
  1. package/dist/cjs/enums/WorkerTypes.d.ts +8 -0
  2. package/dist/cjs/enums/WorkerTypes.js +12 -0
  3. package/dist/cjs/enums/WorkerTypes.js.map +1 -0
  4. package/dist/cjs/enums/index.d.ts +2 -1
  5. package/dist/cjs/enums/index.js +3 -1
  6. package/dist/cjs/enums/index.js.map +1 -1
  7. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +6 -11
  8. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
  9. package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js +4 -3
  10. package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
  11. package/dist/cjs/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +58 -47
  12. package/dist/cjs/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js.map +1 -1
  13. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +1 -0
  14. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +5 -0
  15. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  16. package/dist/cjs/stateManagement/annotation/annotationState.d.ts +2 -1
  17. package/dist/cjs/stateManagement/annotation/annotationState.js +6 -1
  18. package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
  19. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +4 -1
  20. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  21. package/dist/cjs/stateManagement/segmentation/addRepresentationData.d.ts +12 -0
  22. package/dist/cjs/stateManagement/segmentation/addRepresentationData.js +35 -0
  23. package/dist/cjs/stateManagement/segmentation/addRepresentationData.js.map +1 -0
  24. package/dist/cjs/stateManagement/segmentation/addSegmentationRepresentation.js +32 -14
  25. package/dist/cjs/stateManagement/segmentation/addSegmentationRepresentation.js.map +1 -1
  26. package/dist/cjs/stateManagement/segmentation/config/segmentationVisibility.js +3 -52
  27. package/dist/cjs/stateManagement/segmentation/config/segmentationVisibility.js.map +1 -1
  28. package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +9 -2
  29. package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.js +44 -27
  30. package/dist/cjs/stateManagement/segmentation/convertStackToVolumeSegmentation.js.map +1 -1
  31. package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +13 -0
  32. package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.js +52 -26
  33. package/dist/cjs/stateManagement/segmentation/convertVolumeToStackSegmentation.js.map +1 -1
  34. package/dist/cjs/stateManagement/segmentation/helpers/validateSegmentationInput.js +6 -9
  35. package/dist/cjs/stateManagement/segmentation/helpers/validateSegmentationInput.js.map +1 -1
  36. package/dist/cjs/stateManagement/segmentation/index.d.ts +3 -1
  37. package/dist/cjs/stateManagement/segmentation/index.js +5 -1
  38. package/dist/cjs/stateManagement/segmentation/index.js.map +1 -1
  39. package/dist/cjs/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.d.ts +2 -0
  40. package/dist/cjs/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.js +8 -0
  41. package/dist/cjs/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.js.map +1 -0
  42. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.d.ts +2 -0
  43. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +11 -0
  44. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js.map +1 -0
  45. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.d.ts +7 -0
  46. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +162 -0
  47. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js.map +1 -0
  48. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.d.ts +6 -0
  49. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js +71 -0
  50. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js.map +1 -0
  51. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.d.ts +6 -0
  52. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +120 -0
  53. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js.map +1 -0
  54. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.d.ts +4 -0
  55. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.js +12 -0
  56. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.js.map +1 -0
  57. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.d.ts +3 -0
  58. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.js +52 -0
  59. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.js.map +1 -0
  60. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.d.ts +3 -0
  61. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +60 -0
  62. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js.map +1 -0
  63. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.d.ts +5 -0
  64. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +56 -0
  65. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js.map +1 -0
  66. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.d.ts +12 -0
  67. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +94 -0
  68. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js.map +1 -0
  69. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.d.ts +1 -0
  70. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +74 -0
  71. package/dist/cjs/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js.map +1 -0
  72. package/dist/cjs/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts +2 -0
  73. package/dist/cjs/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +83 -0
  74. package/dist/cjs/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js.map +1 -0
  75. package/dist/cjs/stateManagement/segmentation/polySeg/computeAndAddRepresentation.d.ts +3 -0
  76. package/dist/cjs/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +64 -0
  77. package/dist/cjs/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js.map +1 -0
  78. package/dist/cjs/stateManagement/segmentation/polySeg/index.d.ts +5 -0
  79. package/dist/cjs/stateManagement/segmentation/polySeg/index.js +12 -0
  80. package/dist/cjs/stateManagement/segmentation/polySeg/index.js.map +1 -0
  81. package/dist/cjs/stateManagement/segmentation/polySeg/registerPolySegWorker.d.ts +1 -0
  82. package/dist/cjs/stateManagement/segmentation/polySeg/registerPolySegWorker.js +27 -0
  83. package/dist/cjs/stateManagement/segmentation/polySeg/registerPolySegWorker.js.map +1 -0
  84. package/dist/cjs/stateManagement/segmentation/segmentIndex.js +4 -0
  85. package/dist/cjs/stateManagement/segmentation/segmentIndex.js.map +1 -1
  86. package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +6 -1
  87. package/dist/cjs/stateManagement/segmentation/segmentationState.js +30 -1
  88. package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
  89. package/dist/cjs/tools/ScaleOverlayTool.js +2 -1
  90. package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
  91. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +1 -2
  92. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js +0 -11
  93. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
  94. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +1 -2
  95. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  96. package/dist/cjs/tools/annotation/ProbeTool.js +3 -0
  97. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  98. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +1 -1
  99. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  100. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +1 -1
  101. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js.map +1 -1
  102. package/dist/cjs/tools/base/AnnotationTool.js +1 -1
  103. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  104. package/dist/cjs/tools/base/BaseTool.js.map +1 -1
  105. package/dist/cjs/tools/base/ContourSegmentationBaseTool.d.ts +1 -2
  106. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js +24 -24
  107. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  108. package/dist/cjs/tools/displayTools/Contour/contourDisplay.js +9 -6
  109. package/dist/cjs/tools/displayTools/Contour/contourDisplay.js.map +1 -1
  110. package/dist/cjs/tools/displayTools/Contour/removeContourFromElement.js.map +1 -1
  111. package/dist/cjs/tools/displayTools/Contour/{addContourSetsToElement.d.ts → vtkContour/addContourSetsToElement.d.ts} +1 -1
  112. package/dist/cjs/tools/displayTools/Contour/vtkContour/addContourSetsToElement.js.map +1 -0
  113. package/dist/cjs/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.d.ts +3 -0
  114. package/dist/cjs/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.js +14 -0
  115. package/dist/cjs/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.js.map +1 -0
  116. package/dist/cjs/tools/displayTools/Contour/vtkContour/contourConfigCache.js.map +1 -0
  117. package/dist/cjs/tools/displayTools/Contour/vtkContour/updateVTKContourSets.d.ts +3 -0
  118. package/dist/cjs/tools/displayTools/Contour/{updateContourSets.js → vtkContour/updateVTKContourSets.js} +4 -4
  119. package/dist/cjs/tools/displayTools/Contour/vtkContour/updateVTKContourSets.js.map +1 -0
  120. package/dist/cjs/tools/displayTools/Contour/{utils.d.ts → vtkContour/utils.d.ts} +2 -2
  121. package/dist/cjs/tools/displayTools/Contour/vtkContour/utils.js.map +1 -0
  122. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +1 -1
  123. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  124. package/dist/cjs/tools/displayTools/Labelmap/index.d.ts +2 -1
  125. package/dist/cjs/tools/displayTools/Labelmap/index.js +4 -1
  126. package/dist/cjs/tools/displayTools/Labelmap/index.js.map +1 -1
  127. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +20 -2
  128. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  129. package/dist/cjs/tools/displayTools/Labelmap/validateLabelmap.d.ts +4 -0
  130. package/dist/cjs/tools/displayTools/Labelmap/validateLabelmap.js +38 -0
  131. package/dist/cjs/tools/displayTools/Labelmap/validateLabelmap.js.map +1 -0
  132. package/dist/cjs/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts +3 -0
  133. package/dist/cjs/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js +112 -0
  134. package/dist/cjs/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js.map +1 -0
  135. package/dist/cjs/tools/displayTools/Surface/surfaceConfig.d.ts +3 -0
  136. package/dist/cjs/tools/displayTools/Surface/surfaceConfig.js +11 -0
  137. package/dist/cjs/tools/displayTools/Surface/surfaceConfig.js.map +1 -0
  138. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.d.ts +7 -0
  139. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.js +173 -27
  140. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.js.map +1 -1
  141. package/dist/cjs/tools/displayTools/registerDisplayToolsWorker.d.ts +1 -0
  142. package/dist/cjs/tools/displayTools/registerDisplayToolsWorker.js +27 -0
  143. package/dist/cjs/tools/displayTools/registerDisplayToolsWorker.js.map +1 -0
  144. package/dist/cjs/tools/segmentation/BrushTool.js +1 -1
  145. package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
  146. package/dist/cjs/tools/segmentation/CircleScissorsTool.js +1 -1
  147. package/dist/cjs/tools/segmentation/CircleScissorsTool.js.map +1 -1
  148. package/dist/cjs/tools/segmentation/PaintFillTool.js +1 -1
  149. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
  150. package/dist/cjs/tools/segmentation/RectangleScissorsTool.js +1 -1
  151. package/dist/cjs/tools/segmentation/RectangleScissorsTool.js.map +1 -1
  152. package/dist/cjs/tools/segmentation/SegmentSelectTool.d.ts +6 -2
  153. package/dist/cjs/tools/segmentation/SegmentSelectTool.js +45 -35
  154. package/dist/cjs/tools/segmentation/SegmentSelectTool.js.map +1 -1
  155. package/dist/cjs/tools/segmentation/SphereScissorsTool.js +1 -1
  156. package/dist/cjs/tools/segmentation/SphereScissorsTool.js.map +1 -1
  157. package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js +7 -5
  158. package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
  159. package/dist/cjs/tools/segmentation/strategies/compositions/regionFill.js +1 -1
  160. package/dist/cjs/tools/segmentation/strategies/compositions/regionFill.js.map +1 -1
  161. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +14 -5
  162. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  163. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js +21 -9
  164. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
  165. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +5 -5
  166. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.js +15 -8
  167. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.js.map +1 -1
  168. package/dist/cjs/types/ContourSegmentationAnnotation.d.ts +0 -1
  169. package/dist/cjs/types/LabelmapTypes.d.ts +5 -1
  170. package/dist/cjs/types/PolySeg.d.ts +6 -0
  171. package/dist/cjs/types/PolySeg.js +3 -0
  172. package/dist/cjs/types/PolySeg.js.map +1 -0
  173. package/dist/cjs/types/SegmentationStateTypes.d.ts +12 -2
  174. package/dist/cjs/types/SurfaceTypes.d.ts +1 -1
  175. package/dist/cjs/types/index.d.ts +2 -1
  176. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +6 -6
  177. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -1
  178. package/dist/cjs/utilities/contourSegmentation/addContourSegmentationAnnotation.d.ts +2 -0
  179. package/dist/cjs/utilities/contourSegmentation/addContourSegmentationAnnotation.js +20 -0
  180. package/dist/cjs/utilities/contourSegmentation/addContourSegmentationAnnotation.js.map +1 -0
  181. package/dist/cjs/utilities/contourSegmentation/areSameSegment.js +0 -2
  182. package/dist/cjs/utilities/contourSegmentation/areSameSegment.js.map +1 -1
  183. package/dist/cjs/utilities/contourSegmentation/index.d.ts +2 -0
  184. package/dist/cjs/utilities/contourSegmentation/index.js +5 -1
  185. package/dist/cjs/utilities/contourSegmentation/index.js.map +1 -1
  186. package/dist/cjs/utilities/contourSegmentation/removeContourSegmentationAnnotation.d.ts +2 -0
  187. package/dist/cjs/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +19 -0
  188. package/dist/cjs/utilities/contourSegmentation/removeContourSegmentationAnnotation.js.map +1 -0
  189. package/dist/cjs/utilities/contours/detectContourHoles.js.map +1 -1
  190. package/dist/cjs/utilities/contours/generateContourSetsFromLabelmap.js +2 -2
  191. package/dist/cjs/utilities/contours/generateContourSetsFromLabelmap.js.map +1 -1
  192. package/dist/cjs/utilities/contours/getDeduplicatedVTKPolyDataPoints.d.ts +11 -0
  193. package/dist/cjs/utilities/contours/getDeduplicatedVTKPolyDataPoints.js +50 -0
  194. package/dist/cjs/utilities/contours/getDeduplicatedVTKPolyDataPoints.js.map +1 -0
  195. package/dist/cjs/utilities/contours/index.d.ts +2 -2
  196. package/dist/cjs/utilities/contours/index.js +3 -3
  197. package/dist/cjs/utilities/contours/index.js.map +1 -1
  198. package/dist/cjs/utilities/index.d.ts +3 -1
  199. package/dist/cjs/utilities/index.js +5 -1
  200. package/dist/cjs/utilities/index.js.map +1 -1
  201. package/dist/cjs/utilities/math/polyline/containsPoint.js.map +1 -1
  202. package/dist/cjs/utilities/math/polyline/index.d.ts +2 -1
  203. package/dist/cjs/utilities/math/polyline/index.js +3 -1
  204. package/dist/cjs/utilities/math/polyline/index.js.map +1 -1
  205. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.d.ts +2 -0
  206. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.js +34 -0
  207. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.js.map +1 -0
  208. package/dist/cjs/utilities/segmentation/contourAndFindLargestBidirectional.js +0 -1
  209. package/dist/cjs/utilities/segmentation/contourAndFindLargestBidirectional.js.map +1 -1
  210. package/dist/cjs/utilities/segmentation/getHoveredContourSegmentationAnnotation.d.ts +1 -0
  211. package/dist/cjs/utilities/segmentation/getHoveredContourSegmentationAnnotation.js +18 -0
  212. package/dist/cjs/utilities/segmentation/getHoveredContourSegmentationAnnotation.js.map +1 -0
  213. package/dist/cjs/utilities/segmentation/getSegmentAtLabelmapBorder.d.ts +7 -0
  214. package/dist/cjs/utilities/segmentation/getSegmentAtLabelmapBorder.js +77 -0
  215. package/dist/cjs/utilities/segmentation/getSegmentAtLabelmapBorder.js.map +1 -0
  216. package/dist/cjs/utilities/segmentation/getSegmentAtWorldPoint.d.ts +11 -0
  217. package/dist/cjs/utilities/segmentation/getSegmentAtWorldPoint.js +82 -0
  218. package/dist/cjs/utilities/segmentation/getSegmentAtWorldPoint.js.map +1 -0
  219. package/dist/cjs/utilities/segmentation/getUniqueSegmentIndices.d.ts +2 -0
  220. package/dist/cjs/utilities/segmentation/getUniqueSegmentIndices.js +59 -0
  221. package/dist/cjs/utilities/segmentation/getUniqueSegmentIndices.js.map +1 -0
  222. package/dist/cjs/utilities/segmentation/index.d.ts +5 -1
  223. package/dist/cjs/utilities/segmentation/index.js +9 -1
  224. package/dist/cjs/utilities/segmentation/index.js.map +1 -1
  225. package/dist/cjs/utilities/triggerAnnotationRenderForToolGroupIds.d.ts +2 -0
  226. package/dist/cjs/utilities/triggerAnnotationRenderForToolGroupIds.js +32 -0
  227. package/dist/cjs/utilities/triggerAnnotationRenderForToolGroupIds.js.map +1 -0
  228. package/dist/cjs/workers/clippingPlaneWorker.d.ts +1 -0
  229. package/dist/cjs/workers/clippingPlaneWorker.js +63 -0
  230. package/dist/cjs/workers/clippingPlaneWorker.js.map +1 -0
  231. package/dist/cjs/workers/polySegConverters.d.ts +1 -0
  232. package/dist/cjs/workers/polySegConverters.js +267 -0
  233. package/dist/cjs/workers/polySegConverters.js.map +1 -0
  234. package/dist/esm/enums/WorkerTypes.js +10 -0
  235. package/dist/esm/enums/WorkerTypes.js.map +1 -0
  236. package/dist/esm/enums/index.js +2 -1
  237. package/dist/esm/enums/index.js.map +1 -1
  238. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +7 -12
  239. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
  240. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +3 -3
  241. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
  242. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +59 -45
  243. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js.map +1 -1
  244. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +5 -0
  245. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  246. package/dist/esm/stateManagement/annotation/annotationState.js +5 -1
  247. package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
  248. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +4 -1
  249. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  250. package/dist/esm/stateManagement/segmentation/addRepresentationData.js +30 -0
  251. package/dist/esm/stateManagement/segmentation/addRepresentationData.js.map +1 -0
  252. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js +32 -15
  253. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js.map +1 -1
  254. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +1 -46
  255. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js.map +1 -1
  256. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +42 -27
  257. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js.map +1 -1
  258. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +49 -25
  259. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js.map +1 -1
  260. package/dist/esm/stateManagement/segmentation/helpers/validateSegmentationInput.js +6 -6
  261. package/dist/esm/stateManagement/segmentation/helpers/validateSegmentationInput.js.map +1 -1
  262. package/dist/esm/stateManagement/segmentation/index.js +3 -1
  263. package/dist/esm/stateManagement/segmentation/index.js.map +1 -1
  264. package/dist/esm/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.js +4 -0
  265. package/dist/esm/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.js.map +1 -0
  266. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +7 -0
  267. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js.map +1 -0
  268. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +142 -0
  269. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js.map +1 -0
  270. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js +53 -0
  271. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js.map +1 -0
  272. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +108 -0
  273. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js.map +1 -0
  274. package/dist/esm/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.js +8 -0
  275. package/dist/esm/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.js.map +1 -0
  276. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.js +37 -0
  277. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.js.map +1 -0
  278. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +45 -0
  279. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js.map +1 -0
  280. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +41 -0
  281. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js.map +1 -0
  282. package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +78 -0
  283. package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js.map +1 -0
  284. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +59 -0
  285. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js.map +1 -0
  286. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +68 -0
  287. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js.map +1 -0
  288. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +47 -0
  289. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js.map +1 -0
  290. package/dist/esm/stateManagement/segmentation/polySeg/index.js +6 -0
  291. package/dist/esm/stateManagement/segmentation/polySeg/index.js.map +1 -0
  292. package/dist/esm/stateManagement/segmentation/polySeg/registerPolySegWorker.js +23 -0
  293. package/dist/esm/stateManagement/segmentation/polySeg/registerPolySegWorker.js.map +1 -0
  294. package/dist/esm/stateManagement/segmentation/segmentIndex.js +4 -0
  295. package/dist/esm/stateManagement/segmentation/segmentIndex.js.map +1 -1
  296. package/dist/esm/stateManagement/segmentation/segmentationState.js +28 -1
  297. package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
  298. package/dist/esm/tools/ScaleOverlayTool.js +2 -1
  299. package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
  300. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js +0 -11
  301. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
  302. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +1 -2
  303. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  304. package/dist/esm/tools/annotation/ProbeTool.js +3 -0
  305. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  306. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +1 -1
  307. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  308. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +1 -1
  309. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js.map +1 -1
  310. package/dist/esm/tools/base/AnnotationTool.js +1 -1
  311. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  312. package/dist/esm/tools/base/BaseTool.js +1 -1
  313. package/dist/esm/tools/base/BaseTool.js.map +1 -1
  314. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +24 -24
  315. package/dist/esm/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  316. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +10 -7
  317. package/dist/esm/tools/displayTools/Contour/contourDisplay.js.map +1 -1
  318. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.js.map +1 -1
  319. package/dist/esm/tools/displayTools/Contour/vtkContour/addContourSetsToElement.js.map +1 -0
  320. package/dist/esm/tools/displayTools/Contour/{addOrUpdateContourSets.js → vtkContour/addOrUpdateVTKContourSets.js} +4 -4
  321. package/dist/esm/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.js.map +1 -0
  322. package/dist/esm/tools/displayTools/Contour/vtkContour/contourConfigCache.js.map +1 -0
  323. package/dist/esm/tools/displayTools/Contour/{updateContourSets.js → vtkContour/updateVTKContourSets.js} +2 -2
  324. package/dist/esm/tools/displayTools/Contour/vtkContour/updateVTKContourSets.js.map +1 -0
  325. package/dist/esm/tools/displayTools/Contour/vtkContour/utils.js.map +1 -0
  326. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +1 -1
  327. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  328. package/dist/esm/tools/displayTools/Labelmap/index.js +2 -1
  329. package/dist/esm/tools/displayTools/Labelmap/index.js.map +1 -1
  330. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +20 -2
  331. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  332. package/dist/esm/tools/displayTools/Labelmap/validateLabelmap.js +33 -0
  333. package/dist/esm/tools/displayTools/Labelmap/validateLabelmap.js.map +1 -0
  334. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js +106 -0
  335. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js.map +1 -0
  336. package/dist/esm/tools/displayTools/Surface/surfaceConfig.js +9 -0
  337. package/dist/esm/tools/displayTools/Surface/surfaceConfig.js.map +1 -0
  338. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +162 -28
  339. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js.map +1 -1
  340. package/dist/esm/tools/displayTools/registerDisplayToolsWorker.js +23 -0
  341. package/dist/esm/tools/displayTools/registerDisplayToolsWorker.js.map +1 -0
  342. package/dist/esm/tools/segmentation/BrushTool.js +1 -1
  343. package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
  344. package/dist/esm/tools/segmentation/CircleScissorsTool.js +1 -1
  345. package/dist/esm/tools/segmentation/CircleScissorsTool.js.map +1 -1
  346. package/dist/esm/tools/segmentation/PaintFillTool.js +1 -1
  347. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
  348. package/dist/esm/tools/segmentation/RectangleScissorsTool.js +1 -1
  349. package/dist/esm/tools/segmentation/RectangleScissorsTool.js.map +1 -1
  350. package/dist/esm/tools/segmentation/SegmentSelectTool.js +47 -37
  351. package/dist/esm/tools/segmentation/SegmentSelectTool.js.map +1 -1
  352. package/dist/esm/tools/segmentation/SphereScissorsTool.js +1 -1
  353. package/dist/esm/tools/segmentation/SphereScissorsTool.js.map +1 -1
  354. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +7 -5
  355. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
  356. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js +1 -1
  357. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js.map +1 -1
  358. package/dist/esm/tools/segmentation/strategies/fillSphere.js +14 -5
  359. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  360. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +21 -9
  361. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
  362. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js +15 -7
  363. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js.map +1 -1
  364. package/dist/esm/types/PolySeg.js +2 -0
  365. package/dist/esm/types/PolySeg.js.map +1 -0
  366. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +3 -2
  367. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -1
  368. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js +16 -0
  369. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js.map +1 -0
  370. package/dist/esm/utilities/contourSegmentation/areSameSegment.js +0 -2
  371. package/dist/esm/utilities/contourSegmentation/areSameSegment.js.map +1 -1
  372. package/dist/esm/utilities/contourSegmentation/index.js +2 -0
  373. package/dist/esm/utilities/contourSegmentation/index.js.map +1 -1
  374. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +15 -0
  375. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js.map +1 -0
  376. package/dist/esm/utilities/contours/detectContourHoles.js.map +1 -1
  377. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js +2 -2
  378. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js.map +1 -1
  379. package/dist/esm/utilities/contours/getDeduplicatedVTKPolyDataPoints.js +46 -0
  380. package/dist/esm/utilities/contours/getDeduplicatedVTKPolyDataPoints.js.map +1 -0
  381. package/dist/esm/utilities/contours/index.js +2 -2
  382. package/dist/esm/utilities/contours/index.js.map +1 -1
  383. package/dist/esm/utilities/index.js +3 -1
  384. package/dist/esm/utilities/index.js.map +1 -1
  385. package/dist/esm/utilities/math/polyline/containsPoint.js.map +1 -1
  386. package/dist/esm/utilities/math/polyline/index.js +2 -1
  387. package/dist/esm/utilities/math/polyline/index.js.map +1 -1
  388. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.js +27 -0
  389. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.js.map +1 -0
  390. package/dist/esm/utilities/segmentation/contourAndFindLargestBidirectional.js +0 -1
  391. package/dist/esm/utilities/segmentation/contourAndFindLargestBidirectional.js.map +1 -1
  392. package/dist/esm/utilities/segmentation/getHoveredContourSegmentationAnnotation.js +14 -0
  393. package/dist/esm/utilities/segmentation/getHoveredContourSegmentationAnnotation.js.map +1 -0
  394. package/dist/esm/utilities/segmentation/getSegmentAtLabelmapBorder.js +73 -0
  395. package/dist/esm/utilities/segmentation/getSegmentAtLabelmapBorder.js.map +1 -0
  396. package/dist/esm/utilities/segmentation/getSegmentAtWorldPoint.js +75 -0
  397. package/dist/esm/utilities/segmentation/getSegmentAtWorldPoint.js.map +1 -0
  398. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +55 -0
  399. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js.map +1 -0
  400. package/dist/esm/utilities/segmentation/index.js +5 -1
  401. package/dist/esm/utilities/segmentation/index.js.map +1 -1
  402. package/dist/esm/utilities/triggerAnnotationRenderForToolGroupIds.js +25 -0
  403. package/dist/esm/utilities/triggerAnnotationRenderForToolGroupIds.js.map +1 -0
  404. package/dist/esm/workers/clippingPlaneWorker.js +58 -0
  405. package/dist/esm/workers/clippingPlaneWorker.js.map +1 -0
  406. package/dist/esm/workers/polySegConverters.js +241 -0
  407. package/dist/esm/workers/polySegConverters.js.map +1 -0
  408. package/dist/types/enums/WorkerTypes.d.ts +9 -0
  409. package/dist/types/enums/WorkerTypes.d.ts.map +1 -0
  410. package/dist/types/enums/index.d.ts +2 -1
  411. package/dist/types/eventListeners/segmentation/imageChangeEventListener.d.ts.map +1 -1
  412. package/dist/types/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.d.ts.map +1 -1
  413. package/dist/types/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +1 -0
  414. package/dist/types/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts.map +1 -1
  415. package/dist/types/stateManagement/annotation/annotationState.d.ts +2 -1
  416. package/dist/types/stateManagement/annotation/annotationState.d.ts.map +1 -1
  417. package/dist/types/stateManagement/segmentation/SegmentationStateManager.d.ts.map +1 -1
  418. package/dist/types/stateManagement/segmentation/addRepresentationData.d.ts +13 -0
  419. package/dist/types/stateManagement/segmentation/addRepresentationData.d.ts.map +1 -0
  420. package/dist/types/stateManagement/segmentation/addSegmentationRepresentation.d.ts.map +1 -1
  421. package/dist/types/stateManagement/segmentation/config/segmentationVisibility.d.ts.map +1 -1
  422. package/dist/types/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +9 -2
  423. package/dist/types/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts.map +1 -1
  424. package/dist/types/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +13 -0
  425. package/dist/types/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts.map +1 -1
  426. package/dist/types/stateManagement/segmentation/helpers/validateSegmentationInput.d.ts.map +1 -1
  427. package/dist/types/stateManagement/segmentation/index.d.ts +3 -1
  428. package/dist/types/stateManagement/segmentation/index.d.ts.map +1 -1
  429. package/dist/types/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.d.ts +3 -0
  430. package/dist/types/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.d.ts.map +1 -0
  431. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.d.ts +3 -0
  432. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.d.ts.map +1 -0
  433. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.d.ts +8 -0
  434. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.d.ts.map +1 -0
  435. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.d.ts +7 -0
  436. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.d.ts.map +1 -0
  437. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.d.ts +7 -0
  438. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.d.ts.map +1 -0
  439. package/dist/types/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.d.ts +5 -0
  440. package/dist/types/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.d.ts.map +1 -0
  441. package/dist/types/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.d.ts +4 -0
  442. package/dist/types/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.d.ts.map +1 -0
  443. package/dist/types/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.d.ts +4 -0
  444. package/dist/types/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.d.ts.map +1 -0
  445. package/dist/types/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.d.ts +6 -0
  446. package/dist/types/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.d.ts.map +1 -0
  447. package/dist/types/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.d.ts +13 -0
  448. package/dist/types/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.d.ts.map +1 -0
  449. package/dist/types/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.d.ts +2 -0
  450. package/dist/types/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.d.ts.map +1 -0
  451. package/dist/types/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts +3 -0
  452. package/dist/types/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts.map +1 -0
  453. package/dist/types/stateManagement/segmentation/polySeg/computeAndAddRepresentation.d.ts +4 -0
  454. package/dist/types/stateManagement/segmentation/polySeg/computeAndAddRepresentation.d.ts.map +1 -0
  455. package/dist/types/stateManagement/segmentation/polySeg/index.d.ts +6 -0
  456. package/dist/types/stateManagement/segmentation/polySeg/index.d.ts.map +1 -0
  457. package/dist/types/stateManagement/segmentation/polySeg/registerPolySegWorker.d.ts +2 -0
  458. package/dist/types/stateManagement/segmentation/polySeg/registerPolySegWorker.d.ts.map +1 -0
  459. package/dist/types/stateManagement/segmentation/segmentIndex.d.ts.map +1 -1
  460. package/dist/types/stateManagement/segmentation/segmentationState.d.ts +6 -1
  461. package/dist/types/stateManagement/segmentation/segmentationState.d.ts.map +1 -1
  462. package/dist/types/tools/ScaleOverlayTool.d.ts.map +1 -1
  463. package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +1 -2
  464. package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts.map +1 -1
  465. package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts.map +1 -1
  466. package/dist/types/tools/annotation/ProbeTool.d.ts.map +1 -1
  467. package/dist/types/tools/base/BaseTool.d.ts.map +1 -1
  468. package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts +1 -2
  469. package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts.map +1 -1
  470. package/dist/types/tools/displayTools/Contour/contourDisplay.d.ts.map +1 -1
  471. package/dist/types/tools/displayTools/Contour/removeContourFromElement.d.ts.map +1 -1
  472. package/dist/types/tools/displayTools/Contour/{addContourSetsToElement.d.ts → vtkContour/addContourSetsToElement.d.ts} +1 -1
  473. package/dist/types/tools/displayTools/Contour/vtkContour/addContourSetsToElement.d.ts.map +1 -0
  474. package/dist/types/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.d.ts +4 -0
  475. package/dist/types/tools/displayTools/Contour/vtkContour/addOrUpdateVTKContourSets.d.ts.map +1 -0
  476. package/dist/types/tools/displayTools/Contour/vtkContour/contourConfigCache.d.ts.map +1 -0
  477. package/dist/types/tools/displayTools/Contour/vtkContour/updateVTKContourSets.d.ts +4 -0
  478. package/dist/types/tools/displayTools/Contour/vtkContour/updateVTKContourSets.d.ts.map +1 -0
  479. package/dist/types/tools/displayTools/Contour/{utils.d.ts → vtkContour/utils.d.ts} +2 -2
  480. package/dist/types/tools/displayTools/Contour/vtkContour/utils.d.ts.map +1 -0
  481. package/dist/types/tools/displayTools/Labelmap/index.d.ts +2 -1
  482. package/dist/types/tools/displayTools/Labelmap/index.d.ts.map +1 -1
  483. package/dist/types/tools/displayTools/Labelmap/labelmapDisplay.d.ts.map +1 -1
  484. package/dist/types/tools/displayTools/Labelmap/validateLabelmap.d.ts +5 -0
  485. package/dist/types/tools/displayTools/Labelmap/validateLabelmap.d.ts.map +1 -0
  486. package/dist/types/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts +4 -0
  487. package/dist/types/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts.map +1 -0
  488. package/dist/types/tools/displayTools/Surface/surfaceConfig.d.ts +4 -0
  489. package/dist/types/tools/displayTools/Surface/surfaceConfig.d.ts.map +1 -0
  490. package/dist/types/tools/displayTools/Surface/surfaceDisplay.d.ts +7 -0
  491. package/dist/types/tools/displayTools/Surface/surfaceDisplay.d.ts.map +1 -1
  492. package/dist/types/tools/displayTools/registerDisplayToolsWorker.d.ts +2 -0
  493. package/dist/types/tools/displayTools/registerDisplayToolsWorker.d.ts.map +1 -0
  494. package/dist/types/tools/segmentation/CircleScissorsTool.d.ts.map +1 -1
  495. package/dist/types/tools/segmentation/RectangleScissorsTool.d.ts.map +1 -1
  496. package/dist/types/tools/segmentation/SegmentSelectTool.d.ts +6 -2
  497. package/dist/types/tools/segmentation/SegmentSelectTool.d.ts.map +1 -1
  498. package/dist/types/tools/segmentation/SphereScissorsTool.d.ts.map +1 -1
  499. package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts.map +1 -1
  500. package/dist/types/tools/segmentation/strategies/fillSphere.d.ts.map +1 -1
  501. package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts.map +1 -1
  502. package/dist/types/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +5 -5
  503. package/dist/types/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts.map +1 -1
  504. package/dist/types/types/ContourSegmentationAnnotation.d.ts +0 -1
  505. package/dist/types/types/ContourSegmentationAnnotation.d.ts.map +1 -1
  506. package/dist/types/types/LabelmapTypes.d.ts +5 -1
  507. package/dist/types/types/LabelmapTypes.d.ts.map +1 -1
  508. package/dist/types/types/PolySeg.d.ts +7 -0
  509. package/dist/types/types/PolySeg.d.ts.map +1 -0
  510. package/dist/types/types/SegmentationStateTypes.d.ts +12 -2
  511. package/dist/types/types/SegmentationStateTypes.d.ts.map +1 -1
  512. package/dist/types/types/SurfaceTypes.d.ts +1 -1
  513. package/dist/types/types/SurfaceTypes.d.ts.map +1 -1
  514. package/dist/types/types/index.d.ts +2 -1
  515. package/dist/types/types/index.d.ts.map +1 -1
  516. package/dist/types/utilities/boundingBox/getBoundingBoxAroundShape.d.ts.map +1 -1
  517. package/dist/types/utilities/contourSegmentation/addContourSegmentationAnnotation.d.ts +3 -0
  518. package/dist/types/utilities/contourSegmentation/addContourSegmentationAnnotation.d.ts.map +1 -0
  519. package/dist/types/utilities/contourSegmentation/areSameSegment.d.ts.map +1 -1
  520. package/dist/types/utilities/contourSegmentation/index.d.ts +2 -0
  521. package/dist/types/utilities/contourSegmentation/index.d.ts.map +1 -1
  522. package/dist/types/utilities/contourSegmentation/removeContourSegmentationAnnotation.d.ts +3 -0
  523. package/dist/types/utilities/contourSegmentation/removeContourSegmentationAnnotation.d.ts.map +1 -0
  524. package/dist/types/utilities/contours/detectContourHoles.d.ts.map +1 -1
  525. package/dist/types/utilities/contours/getDeduplicatedVTKPolyDataPoints.d.ts +12 -0
  526. package/dist/types/utilities/contours/getDeduplicatedVTKPolyDataPoints.d.ts.map +1 -0
  527. package/dist/types/utilities/contours/index.d.ts +2 -2
  528. package/dist/types/utilities/contours/index.d.ts.map +1 -1
  529. package/dist/types/utilities/index.d.ts +3 -1
  530. package/dist/types/utilities/index.d.ts.map +1 -1
  531. package/dist/types/utilities/math/polyline/containsPoint.d.ts.map +1 -1
  532. package/dist/types/utilities/math/polyline/index.d.ts +2 -1
  533. package/dist/types/utilities/math/polyline/index.d.ts.map +1 -1
  534. package/dist/types/utilities/math/polyline/isPointInsidePolyline3D.d.ts +3 -0
  535. package/dist/types/utilities/math/polyline/isPointInsidePolyline3D.d.ts.map +1 -0
  536. package/dist/types/utilities/segmentation/contourAndFindLargestBidirectional.d.ts.map +1 -1
  537. package/dist/types/utilities/segmentation/getHoveredContourSegmentationAnnotation.d.ts +2 -0
  538. package/dist/types/utilities/segmentation/getHoveredContourSegmentationAnnotation.d.ts.map +1 -0
  539. package/dist/types/utilities/segmentation/getSegmentAtLabelmapBorder.d.ts +8 -0
  540. package/dist/types/utilities/segmentation/getSegmentAtLabelmapBorder.d.ts.map +1 -0
  541. package/dist/types/utilities/segmentation/getSegmentAtWorldPoint.d.ts +12 -0
  542. package/dist/types/utilities/segmentation/getSegmentAtWorldPoint.d.ts.map +1 -0
  543. package/dist/types/utilities/segmentation/getUniqueSegmentIndices.d.ts +3 -0
  544. package/dist/types/utilities/segmentation/getUniqueSegmentIndices.d.ts.map +1 -0
  545. package/dist/types/utilities/segmentation/index.d.ts +5 -1
  546. package/dist/types/utilities/segmentation/index.d.ts.map +1 -1
  547. package/dist/types/utilities/triggerAnnotationRenderForToolGroupIds.d.ts +3 -0
  548. package/dist/types/utilities/triggerAnnotationRenderForToolGroupIds.d.ts.map +1 -0
  549. package/dist/types/workers/clippingPlaneWorker.d.ts +2 -0
  550. package/dist/types/workers/clippingPlaneWorker.d.ts.map +1 -0
  551. package/dist/types/workers/polySegConverters.d.ts +2 -0
  552. package/dist/types/workers/polySegConverters.d.ts.map +1 -0
  553. package/dist/umd/17dd54813d5acc10bf8f.wasm +0 -0
  554. package/dist/umd/444.index.js +3 -0
  555. package/dist/umd/444.index.js.LICENSE.txt +5 -0
  556. package/dist/umd/444.index.js.map +1 -0
  557. package/dist/umd/78.index.js +3 -0
  558. package/dist/umd/78.index.js.LICENSE.txt +5 -0
  559. package/dist/umd/78.index.js.map +1 -0
  560. package/dist/umd/985.index.js +2 -0
  561. package/dist/umd/985.index.js.map +1 -0
  562. package/dist/umd/index.js +1 -1
  563. package/dist/umd/index.js.map +1 -1
  564. package/package.json +5 -3
  565. package/src/enums/WorkerTypes.ts +16 -0
  566. package/src/enums/index.js +2 -0
  567. package/src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts +10 -17
  568. package/src/eventListeners/segmentation/imageChangeEventListener.ts +3 -4
  569. package/src/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.ts +97 -69
  570. package/src/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.ts +11 -0
  571. package/src/stateManagement/annotation/annotationState.ts +6 -0
  572. package/src/stateManagement/segmentation/SegmentationStateManager.ts +4 -1
  573. package/src/stateManagement/segmentation/addRepresentationData.ts +71 -0
  574. package/src/stateManagement/segmentation/addSegmentationRepresentation.ts +39 -16
  575. package/src/stateManagement/segmentation/config/segmentationVisibility.ts +1 -59
  576. package/src/stateManagement/segmentation/convertStackToVolumeSegmentation.ts +74 -37
  577. package/src/stateManagement/segmentation/convertVolumeToStackSegmentation.ts +102 -38
  578. package/src/stateManagement/segmentation/helpers/validateSegmentationInput.ts +13 -8
  579. package/src/stateManagement/segmentation/index.ts +9 -2
  580. package/src/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.ts +17 -0
  581. package/src/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.ts +25 -0
  582. package/src/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.ts +273 -0
  583. package/src/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.ts +89 -0
  584. package/src/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.ts +193 -0
  585. package/src/stateManagement/segmentation/polySeg/Surface/computeAndAddSurfaceRepresentation.ts +26 -0
  586. package/src/stateManagement/segmentation/polySeg/Surface/convertContourToSurface.ts +62 -0
  587. package/src/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.ts +81 -0
  588. package/src/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.ts +81 -0
  589. package/src/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.ts +167 -0
  590. package/src/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.ts +95 -0
  591. package/src/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.ts +123 -0
  592. package/src/stateManagement/segmentation/polySeg/computeAndAddRepresentation.ts +97 -0
  593. package/src/stateManagement/segmentation/polySeg/index.ts +12 -0
  594. package/src/stateManagement/segmentation/polySeg/registerPolySegWorker.ts +34 -0
  595. package/src/stateManagement/segmentation/segmentIndex.ts +5 -0
  596. package/src/stateManagement/segmentation/segmentationState.ts +62 -0
  597. package/src/tools/ScaleOverlayTool.ts +4 -1
  598. package/src/tools/annotation/PlanarFreehandContourSegmentationTool.ts +1 -22
  599. package/src/tools/annotation/PlanarFreehandROITool.ts +2 -4
  600. package/src/tools/annotation/ProbeTool.ts +4 -0
  601. package/src/tools/annotation/SplineROITool.ts +1 -1
  602. package/src/tools/annotation/planarFreehandROITool/drawLoop.ts +2 -2
  603. package/src/tools/annotation/planarFreehandROITool/openContourEndEditLoop.ts +1 -1
  604. package/src/tools/base/AnnotationTool.ts +1 -1
  605. package/src/tools/base/BaseTool.ts +1 -6
  606. package/src/tools/base/ContourBaseTool.ts +1 -1
  607. package/src/tools/base/ContourSegmentationBaseTool.ts +45 -42
  608. package/src/tools/displayTools/Contour/contourDisplay.ts +82 -9
  609. package/src/tools/displayTools/Contour/removeContourFromElement.ts +2 -0
  610. package/src/tools/displayTools/Contour/{addContourSetsToElement.ts → vtkContour/addContourSetsToElement.ts} +1 -1
  611. package/src/tools/displayTools/Contour/{addOrUpdateContourSets.ts → vtkContour/addOrUpdateVTKContourSets.ts} +4 -4
  612. package/src/tools/displayTools/Contour/{updateContourSets.ts → vtkContour/updateVTKContourSets.ts} +2 -2
  613. package/src/tools/displayTools/Contour/{utils.ts → vtkContour/utils.ts} +1 -1
  614. package/src/tools/displayTools/Labelmap/addLabelmapToElement.ts +1 -1
  615. package/src/tools/displayTools/Labelmap/index.ts +10 -1
  616. package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +39 -4
  617. package/src/tools/displayTools/Labelmap/validateLabelmap.ts +71 -0
  618. package/src/tools/displayTools/Surface/addOrUpdateSurfaceToElement.ts +172 -0
  619. package/src/tools/displayTools/Surface/surfaceConfig.ts +12 -0
  620. package/src/tools/displayTools/Surface/surfaceDisplay.ts +275 -35
  621. package/src/tools/displayTools/registerDisplayToolsWorker.ts +34 -0
  622. package/src/tools/segmentation/BrushTool.ts +1 -1
  623. package/src/tools/segmentation/CircleScissorsTool.ts +3 -1
  624. package/src/tools/segmentation/PaintFillTool.ts +1 -1
  625. package/src/tools/segmentation/RectangleScissorsTool.ts +3 -1
  626. package/src/tools/segmentation/SegmentSelectTool.ts +70 -75
  627. package/src/tools/segmentation/SphereScissorsTool.ts +3 -1
  628. package/src/tools/segmentation/strategies/BrushStrategy.ts +12 -9
  629. package/src/tools/segmentation/strategies/compositions/regionFill.ts +1 -1
  630. package/src/tools/segmentation/strategies/fillSphere.ts +13 -5
  631. package/src/tools/segmentation/strategies/utils/getStrategyData.ts +30 -15
  632. package/src/tools/segmentation/strategies/utils/stackVolumeCheck.ts +24 -17
  633. package/src/types/ContourSegmentationAnnotation.ts +0 -1
  634. package/src/types/LabelmapTypes.ts +7 -1
  635. package/src/types/PolySeg.ts +7 -0
  636. package/src/types/SegmentationStateTypes.ts +20 -4
  637. package/src/types/SurfaceTypes.ts +1 -1
  638. package/src/types/index.ts +3 -0
  639. package/src/utilities/boundingBox/getBoundingBoxAroundShape.ts +4 -2
  640. package/src/utilities/contourSegmentation/addContourSegmentationAnnotation.ts +29 -0
  641. package/src/utilities/contourSegmentation/areSameSegment.ts +0 -2
  642. package/src/utilities/contourSegmentation/index.ts +2 -0
  643. package/src/utilities/contourSegmentation/removeContourSegmentationAnnotation.ts +30 -0
  644. package/src/utilities/contours/detectContourHoles.ts +2 -0
  645. package/src/utilities/contours/generateContourSetsFromLabelmap.ts +2 -2
  646. package/src/utilities/contours/getDeduplicatedVTKPolyDataPoints.ts +66 -0
  647. package/src/utilities/contours/index.ts +2 -2
  648. package/src/utilities/index.ts +4 -0
  649. package/src/utilities/math/polyline/containsPoint.ts +3 -1
  650. package/src/utilities/math/polyline/index.ts +2 -0
  651. package/src/utilities/math/polyline/isPointInsidePolyline3D.ts +56 -0
  652. package/src/utilities/segmentation/contourAndFindLargestBidirectional.ts +0 -1
  653. package/src/utilities/segmentation/getHoveredContourSegmentationAnnotation.ts +25 -0
  654. package/src/utilities/segmentation/getSegmentAtLabelmapBorder.ts +179 -0
  655. package/src/utilities/segmentation/getSegmentAtWorldPoint.ts +173 -0
  656. package/src/utilities/segmentation/getUniqueSegmentIndices.ts +76 -0
  657. package/src/utilities/segmentation/index.ts +8 -0
  658. package/src/utilities/triggerAnnotationRenderForToolGroupIds.ts +38 -0
  659. package/src/workers/clippingPlaneWorker.js +87 -0
  660. package/src/workers/polySegConverters.js +467 -0
  661. package/dist/cjs/tools/displayTools/Contour/addContourSetsToElement.js.map +0 -1
  662. package/dist/cjs/tools/displayTools/Contour/addOrUpdateContourSets.d.ts +0 -3
  663. package/dist/cjs/tools/displayTools/Contour/addOrUpdateContourSets.js +0 -14
  664. package/dist/cjs/tools/displayTools/Contour/addOrUpdateContourSets.js.map +0 -1
  665. package/dist/cjs/tools/displayTools/Contour/contourConfigCache.js.map +0 -1
  666. package/dist/cjs/tools/displayTools/Contour/updateContourSets.d.ts +0 -3
  667. package/dist/cjs/tools/displayTools/Contour/updateContourSets.js.map +0 -1
  668. package/dist/cjs/tools/displayTools/Contour/utils.js.map +0 -1
  669. package/dist/cjs/tools/displayTools/Labelmap/validateRepresentationData.d.ts +0 -3
  670. package/dist/cjs/tools/displayTools/Labelmap/validateRepresentationData.js +0 -20
  671. package/dist/cjs/tools/displayTools/Labelmap/validateRepresentationData.js.map +0 -1
  672. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.d.ts +0 -2
  673. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.js +0 -84
  674. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.js.map +0 -1
  675. package/dist/cjs/utilities/contours/mergePoints.d.ts +0 -8
  676. package/dist/cjs/utilities/contours/mergePoints.js +0 -77
  677. package/dist/cjs/utilities/contours/mergePoints.js.map +0 -1
  678. package/dist/esm/tools/displayTools/Contour/addContourSetsToElement.js.map +0 -1
  679. package/dist/esm/tools/displayTools/Contour/addOrUpdateContourSets.js.map +0 -1
  680. package/dist/esm/tools/displayTools/Contour/contourConfigCache.js.map +0 -1
  681. package/dist/esm/tools/displayTools/Contour/updateContourSets.js.map +0 -1
  682. package/dist/esm/tools/displayTools/Contour/utils.js.map +0 -1
  683. package/dist/esm/tools/displayTools/Labelmap/validateRepresentationData.js +0 -18
  684. package/dist/esm/tools/displayTools/Labelmap/validateRepresentationData.js.map +0 -1
  685. package/dist/esm/tools/displayTools/Surface/addSurfaceToElement.js +0 -79
  686. package/dist/esm/tools/displayTools/Surface/addSurfaceToElement.js.map +0 -1
  687. package/dist/esm/utilities/contours/mergePoints.js +0 -73
  688. package/dist/esm/utilities/contours/mergePoints.js.map +0 -1
  689. package/dist/types/tools/displayTools/Contour/addContourSetsToElement.d.ts.map +0 -1
  690. package/dist/types/tools/displayTools/Contour/addOrUpdateContourSets.d.ts +0 -4
  691. package/dist/types/tools/displayTools/Contour/addOrUpdateContourSets.d.ts.map +0 -1
  692. package/dist/types/tools/displayTools/Contour/contourConfigCache.d.ts.map +0 -1
  693. package/dist/types/tools/displayTools/Contour/updateContourSets.d.ts +0 -4
  694. package/dist/types/tools/displayTools/Contour/updateContourSets.d.ts.map +0 -1
  695. package/dist/types/tools/displayTools/Contour/utils.d.ts.map +0 -1
  696. package/dist/types/tools/displayTools/Labelmap/validateRepresentationData.d.ts +0 -4
  697. package/dist/types/tools/displayTools/Labelmap/validateRepresentationData.d.ts.map +0 -1
  698. package/dist/types/tools/displayTools/Surface/addSurfaceToElement.d.ts +0 -3
  699. package/dist/types/tools/displayTools/Surface/addSurfaceToElement.d.ts.map +0 -1
  700. package/dist/types/utilities/contours/mergePoints.d.ts +0 -9
  701. package/dist/types/utilities/contours/mergePoints.d.ts.map +0 -1
  702. package/src/tools/displayTools/Labelmap/validateRepresentationData.ts +0 -36
  703. package/src/tools/displayTools/Surface/addSurfaceToElement.ts +0 -115
  704. package/src/utilities/contours/mergePoints.ts +0 -108
  705. /package/dist/cjs/tools/displayTools/Contour/{addContourSetsToElement.js → vtkContour/addContourSetsToElement.js} +0 -0
  706. /package/dist/cjs/tools/displayTools/Contour/{contourConfigCache.d.ts → vtkContour/contourConfigCache.d.ts} +0 -0
  707. /package/dist/cjs/tools/displayTools/Contour/{contourConfigCache.js → vtkContour/contourConfigCache.js} +0 -0
  708. /package/dist/cjs/tools/displayTools/Contour/{utils.js → vtkContour/utils.js} +0 -0
  709. /package/dist/esm/tools/displayTools/Contour/{addContourSetsToElement.js → vtkContour/addContourSetsToElement.js} +0 -0
  710. /package/dist/esm/tools/displayTools/Contour/{contourConfigCache.js → vtkContour/contourConfigCache.js} +0 -0
  711. /package/dist/esm/tools/displayTools/Contour/{utils.js → vtkContour/utils.js} +0 -0
  712. /package/dist/types/tools/displayTools/Contour/{contourConfigCache.d.ts → vtkContour/contourConfigCache.d.ts} +0 -0
  713. /package/src/tools/displayTools/Contour/{contourConfigCache.ts → vtkContour/contourConfigCache.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"segmentationVisibility.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/config/segmentationVisibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segmentationVisibility.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/config/segmentationVisibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,yDAAyD,CAAC;AAC7F,OAAO,EAAE,8BAA8B,EAAE,MAAM,yDAAyD,CAAC;AAEzG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,yCAAyC,EAAE,MAAM,8BAA8B,CAAC;AAYzF,SAAS,yBAAyB,CAChC,WAAmB,EACnB,6BAAqC,EACrC,UAAmB;IAEnB,MAAM,oCAAoC,GACxC,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,CAAC,oCAAoC,EAAE;QACzC,OAAO;KACR;IAED,MAAM,cAAc,GAAG,oCAAoC,CAAC,IAAI,CAC9D,CAAC,cAA+C,EAAE,EAAE,CAClD,cAAc,CAAC,6BAA6B;QAC5C,6BAA6B,CAChC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO;KACR;IAED,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;IAE1D,MAAM,OAAO,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAKxD,IAAI,UAAU,EAAE;QACd,cAAc,CAAC,KAAK,EAAE,CAAC;KACxB;SAAM;QACL,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;KACJ;IAED,yCAAyC,CACvC,WAAW,EACX,cAAc,CAAC,6BAA6B,CAC7C,CAAC;AACJ,CAAC;AAWD,SAAS,yBAAyB,CAChC,WAAmB,EACnB,6BAAqC;IAErC,MAAM,oCAAoC,GACxC,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,oCAAoC,CAAC,IAAI,CAC9D,CAAC,cAA+C,EAAE,EAAE,CAClD,cAAc,CAAC,6BAA6B;QAC5C,6BAA6B,CAChC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO;KACR;IAED,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;IAC1D,MAAM,OAAO,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAGxD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAGpC,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAG1E,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3B,CAAC;AAcD,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,6BAAqC,EACrC,cAAwB,EACxB,UAAmB;IAEnB,MAAM,iBAAiB,GACrB,iBAAiB,CAAC,kCAAkC,CAClD,WAAW,EACX,6BAA6B,CAC9B,CAAC;IAEJ,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO;KACR;IAED,cAAc,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACtC,UAAU;YACR,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,yCAAyC,CACvC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AASD,SAAS,oBAAoB,CAC3B,WAAmB,EACnB,6BAAqC,EACrC,YAAoB,EACpB,UAAmB;IAEnB,MAAM,iBAAiB,GACrB,iBAAiB,CAAC,kCAAkC,CAClD,WAAW,EACX,6BAA6B,CAC9B,CAAC;IAEJ,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO;KACR;IAED,UAAU;QACR,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC;QACvD,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEvD,yCAAyC,CACvC,WAAW,EACX,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AAQD,SAAS,oBAAoB,CAC3B,WAAmB,EACnB,6BAAqC,EACrC,YAAoB;IAEpB,MAAM,iBAAiB,GACrB,iBAAiB,CAAC,kCAAkC,CAClD,WAAW,EACX,6BAA6B,CAC9B,CAAC;IAEJ,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACrB,CAAC"}
@@ -1,47 +1,62 @@
1
- import { volumeLoader, utilities as csUtils, eventTarget, } from '@cornerstonejs/core';
1
+ import { volumeLoader, utilities as csUtils, eventTarget, cache, } from '@cornerstonejs/core';
2
2
  import { Events, SegmentationRepresentations } from '../../enums';
3
- import addSegmentations from './addSegmentations';
4
3
  import addSegmentationRepresentations from './addSegmentationRepresentations';
5
4
  import { triggerSegmentationRender } from '../../utilities/segmentation';
6
- import { getSegmentation, removeSegmentation } from './segmentationState';
5
+ import { getSegmentation } from './segmentationState';
7
6
  import { triggerSegmentationDataModified } from './triggerSegmentationEvents';
8
- async function convertStackToVolumeSegmentation({ segmentationId, options, }) {
9
- const segmentation = getSegmentation(segmentationId);
10
- const { toolGroupId } = options;
11
- const data = segmentation.representationData
12
- .LABELMAP;
13
- const imageIdReferenceMap = data.imageIdReferenceMap;
7
+ async function computeVolumeSegmentationFromStack({ imageIdReferenceMap, options, }) {
14
8
  const segmentationImageIds = Array.from(imageIdReferenceMap.values());
15
9
  const additionalDetails = {
16
10
  imageIdReferenceMap,
17
11
  };
18
- const volumeId = options?.volumeId;
12
+ const volumeId = options?.volumeId ?? csUtils.uuidv4();
19
13
  await volumeLoader.createAndCacheVolumeFromImages(volumeId, segmentationImageIds, {
20
14
  additionalDetails,
21
15
  });
22
- const newSegmentationId = options?.newSegmentationId ?? csUtils.uuidv4();
23
- if (options?.removeOriginal ?? true) {
24
- removeSegmentation(segmentationId);
16
+ return { volumeId };
17
+ }
18
+ async function convertStackToVolumeSegmentation({ segmentationId, options, }) {
19
+ const segmentation = getSegmentation(segmentationId);
20
+ const data = segmentation.representationData
21
+ .LABELMAP;
22
+ const { volumeId } = await computeVolumeSegmentationFromStack({
23
+ imageIdReferenceMap: data.imageIdReferenceMap,
24
+ options,
25
+ });
26
+ await updateSegmentationState({
27
+ segmentationId,
28
+ toolGroupId: options.toolGroupId,
29
+ options,
30
+ volumeId,
31
+ });
32
+ }
33
+ async function updateSegmentationState({ segmentationId, toolGroupId, volumeId, options, }) {
34
+ const segmentation = getSegmentation(segmentationId);
35
+ if (options?.removeOriginal) {
36
+ const data = segmentation.representationData
37
+ .LABELMAP;
38
+ const imageIdReferenceMap = data.imageIdReferenceMap;
39
+ Array.from(imageIdReferenceMap.values()).forEach((imageId) => {
40
+ cache.removeImageLoadObject(imageId);
41
+ });
42
+ segmentation.representationData.LABELMAP = {
43
+ volumeId,
44
+ };
45
+ }
46
+ else {
47
+ segmentation.representationData.LABELMAP = {
48
+ ...segmentation.representationData.LABELMAP,
49
+ volumeId,
50
+ };
25
51
  }
26
- await addSegmentations([
27
- {
28
- segmentationId: newSegmentationId,
29
- representation: {
30
- type: SegmentationRepresentations.Labelmap,
31
- data: {
32
- volumeId,
33
- },
34
- },
35
- },
36
- ]);
37
52
  await addSegmentationRepresentations(toolGroupId, [
38
53
  {
39
- segmentationId: newSegmentationId,
54
+ segmentationId,
40
55
  type: SegmentationRepresentations.Labelmap,
41
56
  },
42
57
  ]);
43
58
  triggerSegmentationRender(toolGroupId);
44
- eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(newSegmentationId));
59
+ eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(segmentationId));
45
60
  }
46
- export { convertStackToVolumeSegmentation };
61
+ export { convertStackToVolumeSegmentation, computeVolumeSegmentationFromStack };
47
62
  //# sourceMappingURL=convertStackToVolumeSegmentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertStackToVolumeSegmentation.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/convertStackToVolumeSegmentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,IAAI,OAAO,EACpB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAe9E,KAAK,UAAU,gCAAgC,CAAC,EAC9C,cAAc,EACd,OAAO,GASR;IACC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB;SACzC,QAAyC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAGrD,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtE,MAAM,iBAAiB,GAAG;QACxB,mBAAmB;KACpB,CAAC;IAIF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;IAEnC,MAAM,YAAY,CAAC,8BAA8B,CAC/C,QAAQ,EACR,oBAAoB,EACpB;QACE,iBAAiB;KAClB,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAEzE,IAAI,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE;QACnC,kBAAkB,CAAC,cAAc,CAAC,CAAC;KACpC;IAED,MAAM,gBAAgB,CAAC;QACrB;YACE,cAAc,EAAE,iBAAiB;YACjC,cAAc,EAAE;gBACd,IAAI,EAAE,2BAA2B,CAAC,QAAQ;gBAC1C,IAAI,EAAE;oBACJ,QAAQ;iBACT;aACF;SACF;KACF,CAAC,CAAC;IAEH,MAAM,8BAA8B,CAAC,WAAW,EAAE;QAChD;YACE,cAAc,EAAE,iBAAiB;YACjC,IAAI,EAAE,2BAA2B,CAAC,QAAQ;SAC3C;KACF,CAAC,CAAC;IAEH,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAGvC,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAClE,+BAA+B,CAAC,iBAAiB,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
1
+ {"version":3,"file":"convertStackToVolumeSegmentation.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/convertStackToVolumeSegmentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,IAAI,OAAO,EACpB,WAAW,EACX,KAAK,GACN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,KAAK,UAAU,kCAAkC,CAAC,EAChD,mBAAmB,EACnB,OAAO,GAMR;IACC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtE,MAAM,iBAAiB,GAAG;QACxB,mBAAmB;KACpB,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAEvD,MAAM,YAAY,CAAC,8BAA8B,CAC/C,QAAQ,EACR,oBAAoB,EACpB;QACE,iBAAiB;KAClB,CACF,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAeD,KAAK,UAAU,gCAAgC,CAAC,EAC9C,cAAc,EACd,OAAO,GAQR;IACC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB;SACzC,QAAyC,CAAC;IAE7C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kCAAkC,CAAC;QAC5D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,uBAAuB,CAAC;QAC5B,cAAc;QACd,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAGD,KAAK,UAAU,uBAAuB,CAAC,EACrC,cAAc,EACd,WAAW,EACX,QAAQ,EACR,OAAO,GAQR;IACC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,IAAI,OAAO,EAAE,cAAc,EAAE;QAC3B,MAAM,IAAI,GAAG,YAAY,CAAC,kBAAkB;aACzC,QAAyC,CAAC;QAE7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAErD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,kBAAkB,CAAC,QAAQ,GAAG;YACzC,QAAQ;SACT,CAAC;KACH;SAAM;QACL,YAAY,CAAC,kBAAkB,CAAC,QAAQ,GAAG;YACzC,GAAG,YAAY,CAAC,kBAAkB,CAAC,QAAQ;YAC3C,QAAQ;SACT,CAAC;KACH;IAED,MAAM,8BAA8B,CAAC,WAAW,EAAE;QAChD;YACE,cAAc;YACd,IAAI,EAAE,2BAA2B,CAAC,QAAQ;SAC3C;KACF,CAAC,CAAC;IAEH,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAGvC,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAClE,+BAA+B,CAAC,cAAc,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,CAAC"}
@@ -1,50 +1,74 @@
1
- import { cache, utilities as csUtils, eventTarget, } from '@cornerstonejs/core';
1
+ import { cache, eventTarget, getRenderingEngines, } from '@cornerstonejs/core';
2
2
  import { Events, SegmentationRepresentations } from '../../enums';
3
- import addSegmentations from './addSegmentations';
4
3
  import addSegmentationRepresentations from './addSegmentationRepresentations';
5
4
  import { triggerSegmentationRender, createImageIdReferenceMap, } from '../../utilities/segmentation';
6
- import { getSegmentation, removeSegmentation } from './segmentationState';
5
+ import { getSegmentation } from './segmentationState';
7
6
  import { triggerSegmentationDataModified } from './triggerSegmentationEvents';
7
+ export async function computeStackSegmentationFromVolume({ volumeId, }) {
8
+ const segmentationVolume = cache.getVolume(volumeId);
9
+ const hasCachedImages = segmentationVolume.imageCacheOffsetMap.size > 0;
10
+ let isAllImagesCached = false;
11
+ if (hasCachedImages) {
12
+ isAllImagesCached = segmentationVolume.imageIds.every((imageId) => cache.getImage(imageId));
13
+ }
14
+ const renderingEngine = getRenderingEngines()[0];
15
+ const volumeUsedInOtherViewports = renderingEngine
16
+ .getVolumeViewports()
17
+ .find((vp) => vp.hasVolumeId(volumeId));
18
+ segmentationVolume.decache(!volumeUsedInOtherViewports && isAllImagesCached);
19
+ const imageIdReferenceMap = _getImageIdReferenceMapForStackSegmentation(segmentationVolume);
20
+ return { imageIdReferenceMap };
21
+ }
8
22
  export async function convertVolumeToStackSegmentation({ segmentationId, options, }) {
9
23
  const segmentation = getSegmentation(segmentationId);
10
- const { toolGroupId } = options;
11
24
  const data = segmentation.representationData
12
25
  .LABELMAP;
13
- const segmentationVolume = cache.getVolume(data.volumeId);
14
- const imageIdReferenceMap = _getImageIdReferenceMapForStackSegmentation(segmentationVolume);
15
- const newSegmentationId = options?.newSegmentationId ?? csUtils.uuidv4();
16
- if (options?.removeOriginal ?? true) {
17
- removeSegmentation(segmentationId);
26
+ const { imageIdReferenceMap } = await computeStackSegmentationFromVolume({
27
+ volumeId: data.volumeId,
28
+ });
29
+ await updateStackSegmentationState({
30
+ segmentationId,
31
+ toolGroupId: options.toolGroupId,
32
+ imageIdReferenceMap,
33
+ options,
34
+ });
35
+ }
36
+ export async function updateStackSegmentationState({ segmentationId, toolGroupId, imageIdReferenceMap, options, }) {
37
+ const segmentation = getSegmentation(segmentationId);
38
+ if (options?.removeOriginal) {
39
+ const data = segmentation.representationData
40
+ .LABELMAP;
41
+ if (cache.getVolume(data.volumeId)) {
42
+ cache.removeVolumeLoadObject(data.volumeId);
43
+ }
44
+ segmentation.representationData.LABELMAP = {
45
+ imageIdReferenceMap,
46
+ };
47
+ }
48
+ else {
49
+ segmentation.representationData.LABELMAP = {
50
+ ...segmentation.representationData.LABELMAP,
51
+ imageIdReferenceMap,
52
+ };
18
53
  }
19
- await addSegmentations([
20
- {
21
- segmentationId: newSegmentationId,
22
- representation: {
23
- type: SegmentationRepresentations.Labelmap,
24
- data: {
25
- imageIdReferenceMap,
26
- },
27
- },
28
- },
29
- ]);
30
54
  await addSegmentationRepresentations(toolGroupId, [
31
55
  {
32
- segmentationId: newSegmentationId,
56
+ segmentationId,
33
57
  type: SegmentationRepresentations.Labelmap,
34
58
  },
35
59
  ]);
36
60
  triggerSegmentationRender(toolGroupId);
37
- eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(newSegmentationId));
61
+ eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(segmentationId));
38
62
  }
39
63
  function _getImageIdReferenceMapForStackSegmentation(segmentationVolume) {
40
- const segmentationImageIds = segmentationVolume.imageIds;
41
64
  if (segmentationVolume.additionalDetails?.imageIdReferenceMap) {
42
65
  return segmentationVolume.additionalDetails.imageIdReferenceMap;
43
66
  }
44
67
  else if (segmentationVolume.referencedImageIds?.length &&
45
68
  !segmentationVolume.referencedImageIds[0].startsWith('derived')) {
46
69
  const referencedImageIds = segmentationVolume.referencedImageIds;
47
- return createImageIdReferenceMap(referencedImageIds, segmentationImageIds);
70
+ const segmentationImageIds = segmentationVolume.imageIds;
71
+ return createImageIdReferenceMap(referencedImageIds, [...segmentationImageIds].reverse());
48
72
  }
49
73
  else {
50
74
  const referencedVolumeId = segmentationVolume.referencedVolumeId;
@@ -66,7 +90,7 @@ function _getImageIdReferenceMapForStackSegmentation(segmentationVolume) {
66
90
  segmentationImageIdsToUse =
67
91
  segmentationVolume.convertToImageSlicesAndCache();
68
92
  }
69
- return createImageIdReferenceMap(referencedImageIds, segmentationImageIdsToUse);
93
+ return createImageIdReferenceMap(referencedImageIds, [...segmentationImageIdsToUse].reverse());
70
94
  }
71
95
  }
72
96
  //# sourceMappingURL=convertVolumeToStackSegmentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertVolumeToStackSegmentation.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/convertVolumeToStackSegmentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convertVolumeToStackSegmentation.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/convertVolumeToStackSegmentation.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import * as Enums from '../../../enums';
2
- import validateLabelmap from '../../../tools/displayTools/Labelmap/validateRepresentationData';
2
+ import { validatePublic as validatePublicLabelmap } from '../../../tools/displayTools/Labelmap/validateLabelmap';
3
3
  function validateSegmentationInput(segmentationInputArray) {
4
- if (!segmentationInputArray || !segmentationInputArray.length) {
5
- throw new Error('The segmentationInputArray is undefined or empty array');
4
+ if (!segmentationInputArray || segmentationInputArray.length === 0) {
5
+ throw new Error('The segmentationInputArray is undefined or an empty array');
6
6
  }
7
7
  segmentationInputArray.forEach((segmentationInput) => {
8
8
  if (segmentationInput.segmentationId === undefined) {
9
- throw new Error('The segmentationInput.segmentationId is undefined, please provide a valid segmentationId');
9
+ throw new Error('Undefined segmentationInput.segmentationId. Please provide a valid segmentationId');
10
10
  }
11
11
  if (segmentationInput.representation === undefined) {
12
- throw new Error('The segmentationInput.representation is undefined, please provide a valid representation');
12
+ throw new Error('Undefined segmentationInput.representation. Please provide a valid representation');
13
13
  }
14
14
  if (segmentationInput.representation.type ===
15
15
  Enums.SegmentationRepresentations.Labelmap) {
16
- validateLabelmap(segmentationInput);
16
+ validatePublicLabelmap(segmentationInput);
17
17
  }
18
18
  });
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/validateSegmentationInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,OAAO,gBAAgB,MAAM,iEAAiE,CAAC;AAS/F,SAAS,yBAAyB,CAChC,sBAAiD;IAEjD,IAAI,CAAC,sBAAsB,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;KAC3E;IAED,sBAAsB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;QACnD,IAAI,iBAAiB,CAAC,cAAc,KAAK,SAAS,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;SACH;QAED,IAAI,iBAAiB,CAAC,cAAc,KAAK,SAAS,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;SACH;QAED,IACE,iBAAiB,CAAC,cAAc,CAAC,IAAI;YACrC,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAC1C;YACA,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"validateSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/validateSegmentationInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAYjH,SAAS,yBAAyB,CAChC,sBAAiD;IAEjD,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;KACH;IAED,sBAAsB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;QACnD,IAAI,iBAAiB,CAAC,cAAc,KAAK,SAAS,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACH;QAED,IAAI,iBAAiB,CAAC,cAAc,KAAK,SAAS,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACH;QAED,IACE,iBAAiB,CAAC,cAAc,CAAC,IAAI;YACrC,KAAK,CAAC,2BAA2B,CAAC,QAAQ,EAC1C;YACA,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;SAC3C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import removeSegmentationsFromToolGroup from './removeSegmentationsFromToolGroup';
2
2
  import addSegmentations from './addSegmentations';
3
3
  import addSegmentationRepresentations from './addSegmentationRepresentations';
4
+ import addRepresentationData from './addRepresentationData';
4
5
  import { convertStackToVolumeSegmentation } from './convertStackToVolumeSegmentation';
5
6
  import { convertVolumeToStackSegmentation } from './convertVolumeToStackSegmentation';
6
7
  import * as activeSegmentation from './activeSegmentation';
@@ -9,5 +10,6 @@ import * as state from './segmentationState';
9
10
  import * as config from './config';
10
11
  import * as segmentIndex from './segmentIndex';
11
12
  import * as triggerSegmentationEvents from './triggerSegmentationEvents';
12
- export { state, addSegmentations, activeSegmentation, addSegmentationRepresentations, removeSegmentationsFromToolGroup, segmentLocking, config, segmentIndex, triggerSegmentationEvents, convertStackToVolumeSegmentation, convertVolumeToStackSegmentation, };
13
+ import * as polySegManager from './polySeg';
14
+ export { addSegmentations, addSegmentationRepresentations, removeSegmentationsFromToolGroup, addRepresentationData, state, activeSegmentation, segmentLocking, config, segmentIndex, triggerSegmentationEvents, convertStackToVolumeSegmentation, convertVolumeToStackSegmentation, polySegManager as polySeg, };
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,8BAA8B,EAC9B,gCAAgC,EAChC,cAAc,EACd,MAAM,EACN,YAAY,EACZ,yBAAyB,EACzB,gCAAgC,EAChC,gCAAgC,GACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAGtF,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,cAAc,MAAM,WAAW,CAAC;AAE5C,OAAO,EAEL,gBAAgB,EAChB,8BAA8B,EAC9B,gCAAgC,EAChC,qBAAqB,EAErB,KAAK,EACL,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,YAAY,EACZ,yBAAyB,EACzB,gCAAgC,EAChC,gCAAgC,EAChC,cAAc,IAAI,OAAO,GAC1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export function computeAndAddContourRepresentation(segmentationId, options = {}) {
2
+ throw new Error('Not implemented yet');
3
+ }
4
+ //# sourceMappingURL=computeAndAddContourRepresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeAndAddContourRepresentation.js","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Contour/computeAndAddContourRepresentation.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,kCAAkC,CAChD,cAAsB,EACtB,UAAoC,EAAE;IAEtC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { SegmentationRepresentations } from '../../../../enums';
2
+ import { computeAndAddRepresentation } from '../computeAndAddRepresentation';
3
+ import { computeLabelmapData } from './labelmapComputationStrategies';
4
+ export function computeAndAddLabelmapRepresentation(segmentationId, options = {}) {
5
+ return computeAndAddRepresentation(segmentationId, SegmentationRepresentations.Labelmap, () => computeLabelmapData(segmentationId, options), () => { });
6
+ }
7
+ //# sourceMappingURL=computeAndAddLabelmapRepresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeAndAddLabelmapRepresentation.js","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAYtE,MAAM,UAAU,mCAAmC,CACjD,cAAsB,EACtB,UAAoC,EAAE;IAEtC,OAAO,2BAA2B,CAChC,cAAc,EACd,2BAA2B,CAAC,QAAQ,EACpC,GAAG,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,EAClD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,142 @@
1
+ import { vec3 } from 'gl-matrix';
2
+ import { cache, utilities, getWebWorkerManager, volumeLoader, imageLoader, metaData, Enums, triggerEvent, eventTarget, } from '@cornerstonejs/core';
3
+ import { getAnnotation } from '../../..';
4
+ import { WorkerTypes } from '../../../../enums';
5
+ const workerManager = getWebWorkerManager();
6
+ const triggerWorkerProgress = (eventTarget, progress) => {
7
+ triggerEvent(eventTarget, Enums.Events.WEB_WORKER_PROGRESS, {
8
+ progress,
9
+ type: WorkerTypes.POLYSEG_CONTOUR_TO_LABELMAP,
10
+ });
11
+ };
12
+ export async function convertContourToVolumeLabelmap(contourRepresentationData, options = {}) {
13
+ const { viewport } = options;
14
+ const imageIds = utilities.getViewportImageIds(viewport);
15
+ if (!imageIds) {
16
+ throw new Error('No imageIds found, labelmap computation from contour requires viewports with imageIds');
17
+ }
18
+ const segmentationVolumeId = utilities.uuidv4();
19
+ const volumeProps = utilities.generateVolumePropsFromImageIds(imageIds, segmentationVolumeId);
20
+ const { metadata, dimensions, origin, direction, spacing, scalarData } = volumeProps;
21
+ const segmentationVolume = await volumeLoader.createLocalSegmentationVolume({
22
+ dimensions,
23
+ origin,
24
+ direction,
25
+ spacing,
26
+ metadata,
27
+ imageIds: imageIds.map((imageId) => `generated://${imageId}`),
28
+ referencedImageIds: imageIds,
29
+ }, segmentationVolumeId);
30
+ const { segmentIndices, annotationUIDsInSegmentMap } = _getAnnotationMapFromSegmentation(contourRepresentationData, options);
31
+ triggerWorkerProgress(eventTarget, 0);
32
+ const newScalarData = await workerManager.executeTask('polySeg', 'convertContourToVolumeLabelmap', {
33
+ segmentIndices,
34
+ dimensions,
35
+ scalarData,
36
+ origin,
37
+ direction,
38
+ spacing,
39
+ annotationUIDsInSegmentMap,
40
+ }, {
41
+ callbacks: [
42
+ (progress) => {
43
+ triggerWorkerProgress(eventTarget, progress);
44
+ },
45
+ ],
46
+ });
47
+ triggerWorkerProgress(eventTarget, 100);
48
+ segmentationVolume.imageData
49
+ .getPointData()
50
+ .getScalars()
51
+ .setData(newScalarData);
52
+ segmentationVolume.imageData.modified();
53
+ segmentationVolume.modified();
54
+ return {
55
+ volumeId: segmentationVolume.volumeId,
56
+ };
57
+ }
58
+ export async function convertContourToStackLabelmap(contourRepresentationData, options = {}) {
59
+ if (!options.viewport) {
60
+ throw new Error('No viewport provided, labelmap computation from contour requires viewports');
61
+ }
62
+ const viewport = options.viewport;
63
+ const imageIds = viewport.getImageIds();
64
+ if (!imageIds) {
65
+ throw new Error('No imageIds found, labelmap computation from contour requires viewports with imageIds');
66
+ }
67
+ imageIds.forEach((imageId) => {
68
+ if (!cache.getImageLoadObject(imageId)) {
69
+ throw new Error('ImageIds must be cached before converting contour to labelmap');
70
+ }
71
+ });
72
+ const { imageIds: segmentationImageIds } = await imageLoader.createAndCacheDerivedSegmentationImages(imageIds);
73
+ const { segmentIndices, annotationUIDsInSegmentMap } = _getAnnotationMapFromSegmentation(contourRepresentationData, options);
74
+ const segmentationsInfo = new Map();
75
+ segmentationImageIds.forEach((segImageId, index) => {
76
+ const segImage = cache.getImage(segImageId);
77
+ const imagePlaneModule = metaData.get(Enums.MetadataModules.IMAGE_PLANE, segImageId);
78
+ let { columnCosines, rowCosines, rowPixelSpacing, columnPixelSpacing, imagePositionPatient, } = imagePlaneModule;
79
+ columnCosines = columnCosines ?? [0, 1, 0];
80
+ rowCosines = rowCosines ?? [1, 0, 0];
81
+ rowPixelSpacing = rowPixelSpacing ?? 1;
82
+ columnPixelSpacing = columnPixelSpacing ?? 1;
83
+ imagePositionPatient = imagePositionPatient ?? [0, 0, 0];
84
+ const rowCosineVec = vec3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
85
+ const colCosineVec = vec3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
86
+ const scanAxisNormal = vec3.create();
87
+ vec3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
88
+ const direction = [...rowCosineVec, ...colCosineVec, ...scanAxisNormal];
89
+ const spacing = [rowPixelSpacing, columnPixelSpacing, 1];
90
+ const origin = imagePositionPatient;
91
+ segmentationsInfo.set(imageIds[index], {
92
+ direction,
93
+ spacing,
94
+ origin,
95
+ scalarData: segImage.getPixelData(),
96
+ imageId: segImageId,
97
+ dimensions: [segImage.width, segImage.height, 1],
98
+ });
99
+ });
100
+ triggerWorkerProgress(eventTarget, 0);
101
+ const newSegmentationsScalarData = await workerManager.executeTask('polySeg', 'convertContourToStackLabelmap', {
102
+ segmentationsInfo,
103
+ annotationUIDsInSegmentMap,
104
+ segmentIndices,
105
+ }, {
106
+ callbacks: [
107
+ (progress) => {
108
+ triggerWorkerProgress(eventTarget, progress);
109
+ },
110
+ ],
111
+ });
112
+ triggerWorkerProgress(eventTarget, 100);
113
+ const imageIdReferenceMap = new Map();
114
+ newSegmentationsScalarData.forEach(({ scalarData }, referencedImageId) => {
115
+ const segmentationInfo = segmentationsInfo.get(referencedImageId);
116
+ const { imageId: segImageId } = segmentationInfo;
117
+ const segImage = cache.getImage(segImageId);
118
+ segImage.getPixelData().set(scalarData);
119
+ segImage.imageFrame?.pixelData?.set(scalarData);
120
+ imageIdReferenceMap.set(referencedImageId, segImageId);
121
+ });
122
+ return {
123
+ imageIdReferenceMap,
124
+ };
125
+ }
126
+ function _getAnnotationMapFromSegmentation(contourRepresentationData, options = {}) {
127
+ const annotationMap = contourRepresentationData.annotationUIDsMap;
128
+ const segmentIndices = options.segmentIndices?.length
129
+ ? options.segmentIndices
130
+ : Array.from(annotationMap.keys());
131
+ const annotationUIDsInSegmentMap = new Map();
132
+ segmentIndices.forEach((index) => {
133
+ const annotationUIDsInSegment = annotationMap.get(index);
134
+ const annotations = Array.from(annotationUIDsInSegment).map((uid) => {
135
+ const annotation = getAnnotation(uid);
136
+ return annotation;
137
+ });
138
+ annotationUIDsInSegmentMap.set(index, annotations);
139
+ });
140
+ return { segmentIndices, annotationUIDsInSegmentMap };
141
+ }
142
+ //# sourceMappingURL=convertContourToLabelmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertContourToLabelmap.js","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Enums, cache, eventTarget, getWebWorkerManager, triggerEvent, } from '@cornerstonejs/core';
2
+ import { WorkerTypes } from '../../../../enums';
3
+ const workerManager = getWebWorkerManager();
4
+ const triggerWorkerProgress = (eventTarget, progress) => {
5
+ triggerEvent(eventTarget, Enums.Events.WEB_WORKER_PROGRESS, {
6
+ progress,
7
+ type: WorkerTypes.POLYSEG_SURFACE_TO_LABELMAP,
8
+ });
9
+ };
10
+ export async function convertSurfaceToVolumeLabelmap(surfaceRepresentationData, segmentationVolume) {
11
+ const { geometryIds } = surfaceRepresentationData;
12
+ if (!geometryIds?.size) {
13
+ throw new Error('No geometry IDs found for surface representation');
14
+ }
15
+ const segmentsInfo = new Map();
16
+ geometryIds.forEach((geometryId, segmentIndex) => {
17
+ const geometry = cache.getGeometry(geometryId);
18
+ const geometryData = geometry.data;
19
+ const points = geometryData.getPoints();
20
+ const polys = geometryData.getPolys();
21
+ segmentsInfo.set(segmentIndex, {
22
+ points,
23
+ polys,
24
+ });
25
+ });
26
+ const { dimensions, direction, origin, spacing } = segmentationVolume;
27
+ triggerWorkerProgress(eventTarget, 0);
28
+ const newScalarData = await workerManager.executeTask('polySeg', 'convertSurfacesToVolumeLabelmap', {
29
+ segmentsInfo,
30
+ dimensions,
31
+ spacing,
32
+ direction,
33
+ origin,
34
+ }, {
35
+ callbacks: [
36
+ (progress) => {
37
+ triggerWorkerProgress(eventTarget, progress);
38
+ },
39
+ ],
40
+ });
41
+ triggerWorkerProgress(eventTarget, 100);
42
+ segmentationVolume.imageData
43
+ .getPointData()
44
+ .getScalars()
45
+ .setData(newScalarData);
46
+ segmentationVolume.imageData.modified();
47
+ segmentationVolume.modified();
48
+ return {
49
+ volumeId: segmentationVolume.volumeId,
50
+ };
51
+ }
52
+ export async function convertSurfaceToStackLabelmap() { }
53
+ //# sourceMappingURL=convertSurfaceToLabelmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertSurfaceToLabelmap.js","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAEL,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;AAE5C,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;IACtD,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;QAC1D,QAAQ;QACR,IAAI,EAAE,WAAW,CAAC,2BAA2B;KAC9C,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,yBAAkD,EAClD,kBAAsC;IAEtC,MAAM,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC;IAClD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAM3B,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAsB,CAAC;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEtC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE;YAC7B,MAAM;YACN,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC;IAEtE,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,WAAW,CACnD,SAAS,EACT,iCAAiC,EACjC;QACE,YAAY;QACZ,UAAU;QACV,OAAO;QACP,SAAS;QACT,MAAM;KACP,EACD;QACE,SAAS,EAAE;YACT,CAAC,QAAQ,EAAE,EAAE;gBACX,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;SACF;KACF,CACF,CAAC;IAEF,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAExC,kBAAkB,CAAC,SAAS;SACzB,YAAY,EAAE;SACd,UAAU,EAAE;SACZ,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAGxC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAE9B,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,KAAI,CAAC"}