@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "1.53.0",
3
+ "version": "1.54.1",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/types/index.d.ts",
@@ -29,12 +29,14 @@
29
29
  "webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
30
30
  },
31
31
  "dependencies": {
32
- "@cornerstonejs/core": "^1.53.0",
32
+ "@cornerstonejs/core": "^1.54.1",
33
+ "@icr/polyseg-wasm": "0.4.0",
33
34
  "comlink": "^4.4.1",
34
35
  "lodash.clonedeep": "4.5.0",
35
36
  "lodash.get": "^4.4.2"
36
37
  },
37
38
  "peerDependencies": {
39
+ "@icr/polyseg-wasm": "0.4.0",
38
40
  "@kitware/vtk.js": "29.3.0",
39
41
  "@types/d3-array": "^3.0.4",
40
42
  "@types/d3-interpolate": "^3.0.1",
@@ -53,5 +55,5 @@
53
55
  "type": "individual",
54
56
  "url": "https://ohif.org/donate"
55
57
  },
56
- "gitHead": "881872ffe29341443f91cead0b810871a6a1929b"
58
+ "gitHead": "3cea03f5216a14ff0e24802a393fab97ba7e0b7c"
57
59
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Worker Types are used to define the types the worker that is getting performed
3
+ */
4
+ enum ChangeTypes {
5
+ POLYSEG_CONTOUR_TO_LABELMAP = 'polySeg/convertContourToVolumeLabelmap',
6
+
7
+ POLYSEG_SURFACE_TO_LABELMAP = 'polySeg/convertSurfacesToVolumeLabelmap',
8
+
9
+ POLYSEG_CONTOUR_TO_SURFACE = 'polySeg/convertContourToSurface',
10
+
11
+ POLYSEG_LABELMAP_TO_SURFACE = 'polySeg/convertLabelmapToSurface',
12
+
13
+ DISPLAY_TOOL_CLIP_SURFACE = 'displayTool/clipSurface',
14
+ }
15
+
16
+ export default ChangeTypes;
@@ -6,6 +6,7 @@ import SegmentationRepresentations from './SegmentationRepresentations';
6
6
  import { Swipe } from './Touch';
7
7
  import StrategyCallbacks from './StrategyCallbacks';
8
8
  import ChangeTypes from './ChangeTypes';
9
+ import WorkerTypes from './WorkerTypes';
9
10
 
10
11
  export {
11
12
  MouseBindings,
@@ -17,4 +18,5 @@ export {
17
18
  Swipe,
18
19
  StrategyCallbacks,
19
20
  ChangeTypes,
21
+ WorkerTypes,
20
22
  };
@@ -11,9 +11,9 @@ import {
11
11
  } from '../../../utilities';
12
12
  import { getViewportIdsWithToolToRender } from '../../../utilities/viewportFilters';
13
13
  import {
14
- getAnnotations,
15
14
  addAnnotation,
16
15
  removeAnnotation,
16
+ getAllAnnotations,
17
17
  getChildAnnotations,
18
18
  addChildAnnotation,
19
19
  clearParentAnnotation,
@@ -143,22 +143,15 @@ function getValidContourSegmentationAnnotations(
143
143
  }
144
144
 
145
145
  // Get all annotations and filter all contour segmentations locally
146
- const toolName = undefined;
147
- const annotationsGroups = getAnnotations(toolName, FrameOfReferenceUID);
148
- const toolNames = Object.keys(annotationsGroups);
149
-
150
- return toolNames.reduce((validAnnotations, toolName) => {
151
- const toolAnnotations = annotationsGroups[toolName].filter(
152
- (targetAnnotation) =>
153
- targetAnnotation.annotationUID &&
154
- targetAnnotation.annotationUID !== sourceAnnotationUID &&
155
- contourSegUtils.isContourSegmentationAnnotation(targetAnnotation) &&
156
- contourSegUtils.areSameSegment(targetAnnotation, sourceAnnotation) &&
157
- contourUtils.areCoplanarContours(targetAnnotation, sourceAnnotation)
158
- );
159
-
160
- return validAnnotations.concat(toolAnnotations);
161
- }, []);
146
+ const allAnnotations = getAllAnnotations();
147
+ return allAnnotations.filter(
148
+ (targetAnnotation) =>
149
+ targetAnnotation.annotationUID &&
150
+ targetAnnotation.annotationUID !== sourceAnnotationUID &&
151
+ contourSegUtils.isContourSegmentationAnnotation(targetAnnotation) &&
152
+ contourSegUtils.areSameSegment(targetAnnotation, sourceAnnotation) &&
153
+ contourUtils.areCoplanarContours(targetAnnotation, sourceAnnotation)
154
+ ) as ContourSegmentationAnnotation[];
162
155
  }
163
156
 
164
157
  function findIntersectingContour(
@@ -93,14 +93,13 @@ function _imageChangeEventListener(evt) {
93
93
  representation.segmentationId
94
94
  );
95
95
 
96
- if (!segmentation) {
96
+ if (!segmentation || !segmentation.representationData?.LABELMAP) {
97
97
  return;
98
98
  }
99
99
 
100
- const labelmapData =
101
- segmentation.representationData[Representations.Labelmap];
100
+ const labelmapData = segmentation.representationData.LABELMAP;
102
101
 
103
- if (isVolumeSegmentation(labelmapData)) {
102
+ if (isVolumeSegmentation(labelmapData, viewport)) {
104
103
  return;
105
104
  }
106
105
 
@@ -2,16 +2,15 @@ import {
2
2
  cache,
3
3
  getEnabledElementByIds,
4
4
  utilities as csUtils,
5
+ VolumeViewport,
5
6
  } from '@cornerstonejs/core';
6
7
 
7
- import SegmentationRepresentations from '../../../enums/SegmentationRepresentations';
8
8
  import * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
9
9
  import { SegmentationDataModifiedEventType } from '../../../types/EventTypes';
10
10
  import {
11
11
  LabelmapSegmentationDataStack,
12
12
  LabelmapSegmentationDataVolume,
13
13
  } from '../../../types/LabelmapTypes';
14
- import { isVolumeSegmentation } from '../../../tools/segmentation/strategies/utils/stackVolumeCheck';
15
14
  import { getToolGroup } from '../../../store/ToolGroupManager';
16
15
 
17
16
  /** A callback function that is called when the segmentation data is modified which
@@ -28,90 +27,119 @@ const onLabelmapSegmentationDataModified = function (
28
27
  const toolGroupIds =
29
28
  SegmentationState.getToolGroupIdsWithSegmentation(segmentationId);
30
29
 
31
- if (type !== SegmentationRepresentations.Labelmap) {
32
- throw new Error(
33
- `onLabelmapSegmentationDataModifiedListener: representationType ${type} not supported yet`
34
- );
35
- }
30
+ const labelmapRepresentationData = representationData[type];
36
31
 
37
- if (isVolumeSegmentation(representationData[type])) {
32
+ if ('volumeId' in labelmapRepresentationData) {
38
33
  // get the volume from cache, we need the openGLTexture to be updated to GPU
39
- const segmentationVolume = cache.getVolume(
40
- (representationData[type] as LabelmapSegmentationDataVolume).volumeId
41
- );
42
-
43
- if (!segmentationVolume) {
44
- console.warn('segmentation not found in cache');
45
- return;
46
- }
47
-
48
- const { imageData, vtkOpenGLTexture } = segmentationVolume;
49
-
50
- // Update the texture for the volume in the GPU
51
- let slicesToUpdate;
52
- if (modifiedSlicesToUse && Array.isArray(modifiedSlicesToUse)) {
53
- slicesToUpdate = modifiedSlicesToUse;
54
- } else {
55
- const numSlices = imageData.getDimensions()[2];
56
- slicesToUpdate = [...Array(numSlices).keys()];
57
- }
58
-
59
- slicesToUpdate.forEach((i) => {
60
- vtkOpenGLTexture.setUpdatedFrame(i);
34
+ performVolumeLabelmapUpdate({
35
+ modifiedSlicesToUse,
36
+ representationData,
37
+ type,
61
38
  });
39
+ }
62
40
 
63
- // Trigger modified on the imageData to update the image
64
- imageData.modified();
65
- } else {
66
- toolGroupIds.forEach((toolGroupId) => {
67
- const toolGroupSegmentationRepresentations =
68
- SegmentationState.getSegmentationRepresentations(toolGroupId);
41
+ if ('imageIdReferenceMap' in labelmapRepresentationData) {
42
+ // get the stack from cache, we need the imageData to be updated to GPU
43
+ performStackLabelmapUpdate({
44
+ toolGroupIds,
45
+ segmentationId,
46
+ representationData,
47
+ type,
48
+ });
49
+ }
50
+ };
51
+
52
+ function performVolumeLabelmapUpdate({
53
+ modifiedSlicesToUse,
54
+ representationData,
55
+ type,
56
+ }) {
57
+ const segmentationVolume = cache.getVolume(
58
+ (representationData[type] as LabelmapSegmentationDataVolume).volumeId
59
+ );
60
+
61
+ if (!segmentationVolume) {
62
+ console.warn('segmentation not found in cache');
63
+ return;
64
+ }
69
65
 
70
- const toolGroup = getToolGroup(toolGroupId);
71
- const viewportsInfo = toolGroup.getViewportsInfo();
66
+ const { imageData, vtkOpenGLTexture } = segmentationVolume;
72
67
 
73
- toolGroupSegmentationRepresentations.forEach((representation) => {
74
- if (representation.segmentationId !== segmentationId) {
68
+ // Update the texture for the volume in the GPU
69
+ let slicesToUpdate;
70
+ if (modifiedSlicesToUse && Array.isArray(modifiedSlicesToUse)) {
71
+ slicesToUpdate = modifiedSlicesToUse;
72
+ } else {
73
+ const numSlices = imageData.getDimensions()[2];
74
+ slicesToUpdate = [...Array(numSlices).keys()];
75
+ }
76
+
77
+ slicesToUpdate.forEach((i) => {
78
+ vtkOpenGLTexture.setUpdatedFrame(i);
79
+ });
80
+
81
+ // Trigger modified on the imageData to update the image
82
+ imageData.modified();
83
+ }
84
+
85
+ function performStackLabelmapUpdate({
86
+ toolGroupIds,
87
+ segmentationId,
88
+ representationData,
89
+ type,
90
+ }) {
91
+ toolGroupIds.forEach((toolGroupId) => {
92
+ const toolGroupSegmentationRepresentations =
93
+ SegmentationState.getSegmentationRepresentations(toolGroupId);
94
+
95
+ const toolGroup = getToolGroup(toolGroupId);
96
+ const viewportsInfo = toolGroup.getViewportsInfo();
97
+
98
+ toolGroupSegmentationRepresentations.forEach((representation) => {
99
+ if (representation.segmentationId !== segmentationId) {
100
+ return;
101
+ }
102
+
103
+ viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
104
+ const viewport = getEnabledElementByIds(
105
+ viewportId,
106
+ renderingEngineId
107
+ ).viewport;
108
+
109
+ if (viewport instanceof VolumeViewport) {
75
110
  return;
76
111
  }
77
112
 
78
- viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
79
- const viewport = getEnabledElementByIds(
80
- viewportId,
81
- renderingEngineId
82
- ).viewport;
83
-
84
- const actorEntry = viewport.getActor(
85
- representation.segmentationRepresentationUID
86
- );
113
+ const actorEntry = viewport.getActor(
114
+ representation.segmentationRepresentationUID
115
+ );
87
116
 
88
- if (!actorEntry) {
89
- return;
90
- }
117
+ if (!actorEntry) {
118
+ return;
119
+ }
91
120
 
92
- const currentImageId = viewport.getCurrentImageId();
121
+ const currentImageId = viewport.getCurrentImageId();
93
122
 
94
- const segImageData = actorEntry.actor.getMapper().getInputData();
123
+ const segImageData = actorEntry.actor.getMapper().getInputData();
95
124
 
96
- const { imageIdReferenceMap } = representationData[
97
- type
98
- ] as LabelmapSegmentationDataStack;
125
+ const { imageIdReferenceMap } = representationData[
126
+ type
127
+ ] as LabelmapSegmentationDataStack;
99
128
 
100
- const currentSegmentationImageId =
101
- imageIdReferenceMap.get(currentImageId);
129
+ const currentSegmentationImageId =
130
+ imageIdReferenceMap.get(currentImageId);
102
131
 
103
- const segmentationImage = cache.getImage(currentSegmentationImageId);
104
- segImageData.modified();
132
+ const segmentationImage = cache.getImage(currentSegmentationImageId);
133
+ segImageData.modified();
105
134
 
106
- // update the cache with the new image data
107
- csUtils.updateVTKImageDataWithCornerstoneImage(
108
- segImageData,
109
- segmentationImage
110
- );
111
- });
135
+ // update the cache with the new image data
136
+ csUtils.updateVTKImageDataWithCornerstoneImage(
137
+ segImageData,
138
+ segmentationImage
139
+ );
112
140
  });
113
141
  });
114
- }
115
- };
142
+ });
143
+ }
116
144
 
117
145
  export default onLabelmapSegmentationDataModified;
@@ -365,6 +365,17 @@ class FrameOfReferenceSpecificAnnotationManager implements IAnnotationManager {
365
365
  }
366
366
  };
367
367
 
368
+ /**
369
+ * return all annotations as a single array
370
+ */
371
+ getAllAnnotations = (): Annotations => {
372
+ return Object.values(this.annotations)
373
+ .map((frameOfReferenceSpecificAnnotations) =>
374
+ Object.values(frameOfReferenceSpecificAnnotations)
375
+ )
376
+ .flat(2);
377
+ };
378
+
368
379
  /**
369
380
  * A function that returns the number of all annotations in the annotation state
370
381
  *
@@ -59,6 +59,11 @@ function getAnnotations(
59
59
  return manager.getAnnotations(groupKey, toolName) as Annotations;
60
60
  }
61
61
 
62
+ function getAllAnnotations(): Annotations {
63
+ const manager = getAnnotationManager();
64
+ return manager.getAllAnnotations();
65
+ }
66
+
62
67
  /**
63
68
  * Removes the association between the annotation passed as parameter and its
64
69
  * parent in case it has one (eg: contour holes).
@@ -266,6 +271,7 @@ function invalidateAnnotation(annotation: Annotation): void {
266
271
  }
267
272
 
268
273
  export {
274
+ getAllAnnotations,
269
275
  getAnnotations,
270
276
  getParentAnnotation,
271
277
  getChildAnnotations,
@@ -5,6 +5,7 @@ import { utilities as csUtils } from '@cornerstonejs/core';
5
5
  import { SegmentationRepresentations } from '../../enums';
6
6
  import getDefaultContourConfig from '../../tools/displayTools/Contour/contourConfig';
7
7
  import getDefaultLabelmapConfig from '../../tools/displayTools/Labelmap/labelmapConfig';
8
+ import getDefaultSurfaceConfig from '../../tools/displayTools/Surface/surfaceConfig';
8
9
  import type {
9
10
  RepresentationConfig,
10
11
  Segmentation,
@@ -19,12 +20,14 @@ import type {
19
20
  // Note: when we get other representations, we should set their default representations too.
20
21
  const defaultLabelmapConfig = getDefaultLabelmapConfig();
21
22
  const defaultContourConfig = getDefaultContourConfig();
23
+ const defaultSurfaceConfig = getDefaultSurfaceConfig();
22
24
 
23
25
  const newGlobalConfig: SegmentationRepresentationConfig = {
24
26
  renderInactiveSegmentations: true,
25
27
  representations: {
26
28
  [SegmentationRepresentations.Labelmap]: defaultLabelmapConfig,
27
29
  [SegmentationRepresentations.Contour]: defaultContourConfig,
30
+ [SegmentationRepresentations.Surface]: defaultSurfaceConfig,
28
31
  },
29
32
  };
30
33
 
@@ -210,7 +213,7 @@ export default class SegmentationStateManager {
210
213
  const toolGroupSegRepresentations =
211
214
  this.getSegmentationRepresentations(toolGroupId);
212
215
 
213
- const segmentationData = toolGroupSegRepresentations.find(
216
+ const segmentationData = toolGroupSegRepresentations?.find(
214
217
  (representation) =>
215
218
  representation.segmentationRepresentationUID ===
216
219
  segmentationRepresentationUID
@@ -0,0 +1,71 @@
1
+ import { LabelmapSegmentationData } from '../../types/LabelmapTypes';
2
+ import { ContourSegmentationData } from '../../types/ContourTypes';
3
+ import { SurfaceSegmentationData } from '../../types/SurfaceTypes';
4
+ import { getSegmentation } from './segmentationState';
5
+ import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
6
+
7
+ type SegmentationData =
8
+ | LabelmapSegmentationData
9
+ | ContourSegmentationData
10
+ | SurfaceSegmentationData;
11
+
12
+ type AddRepresentationData = {
13
+ segmentationId: string;
14
+ type: SegmentationRepresentations;
15
+ data: SegmentationData;
16
+ };
17
+
18
+ /**
19
+ * This will add representation data to the segmentation, for rendering.
20
+ * Each segmentation can have multiple representation data, for example
21
+ * labelmap, contour and surface representation data. For each representation
22
+ * the relevant data should be provided, for instance for the labelmap
23
+ * representation the volumeId should be provided, for contour the contour data
24
+ * which includes geometryIds of the contour sets, and for surface the surface
25
+ * data which includes geometryId of the points and cells.
26
+ *
27
+ * Note: if the representation data already exists for the segmentation, it will
28
+ * be overwritten.
29
+ *
30
+ * @param segmentationId - id of the segmentation
31
+ * @param representationData - representation data to add, it can be either
32
+ * labelmap, contour or surface representation data.
33
+ */
34
+ function addRepresentationData({
35
+ segmentationId,
36
+ type,
37
+ data,
38
+ }: AddRepresentationData) {
39
+ const segmentation = getSegmentation(segmentationId);
40
+
41
+ if (segmentation.representationData[type]) {
42
+ console.warn(
43
+ `Representation data of type ${type} already exists for segmentation ${segmentationId}, overwriting it.`
44
+ );
45
+
46
+ // update the representation data class
47
+ }
48
+
49
+ switch (type) {
50
+ case SegmentationRepresentations.Labelmap:
51
+ if (data) {
52
+ segmentation.representationData[type] =
53
+ data as LabelmapSegmentationData;
54
+ }
55
+ break;
56
+ case SegmentationRepresentations.Contour:
57
+ if (data) {
58
+ segmentation.representationData[type] = data as ContourSegmentationData;
59
+ }
60
+ break;
61
+ case SegmentationRepresentations.Surface:
62
+ if (data) {
63
+ segmentation.representationData[type] = data as SurfaceSegmentationData;
64
+ }
65
+ break;
66
+ default:
67
+ throw new Error(`Invalid representation type ${type}`);
68
+ }
69
+ }
70
+
71
+ export default addRepresentationData;
@@ -1,9 +1,10 @@
1
- import { utilities } from '@cornerstonejs/core';
1
+ import { getRenderingEngine, utilities } from '@cornerstonejs/core';
2
2
  import type { Types } from '@cornerstonejs/core';
3
3
  import {
4
4
  SegmentationRepresentationConfig,
5
5
  RepresentationPublicInput,
6
6
  ToolGroupSpecificRepresentation,
7
+ RepresentationPublicInputOptions,
7
8
  } from '../../types/SegmentationStateTypes';
8
9
  import * as SegmentationConfig from './config/segmentationConfig';
9
10
  import {
@@ -13,32 +14,27 @@ import {
13
14
  } from './segmentationState';
14
15
  import { getRepresentationSpecificConfig } from './helpers/getRepresentationSpecificConfig';
15
16
  import CORNERSTONE_COLOR_LUT from '../../constants/COLOR_LUT';
17
+ import { getToolGroup } from '../../store/ToolGroupManager';
18
+ import { triggerAnnotationRenderForViewportIds } from '../../utilities';
19
+ import { SegmentationRepresentations } from '../../enums';
16
20
 
17
21
  async function addSegmentationRepresentation(
18
22
  toolGroupId: string,
19
23
  representationInput: RepresentationPublicInput,
20
24
  toolGroupSpecificConfig?: SegmentationRepresentationConfig
21
25
  ): Promise<string> {
22
- const { segmentationId, options = {} } = representationInput;
23
- const segmentationRepresentationUID = utilities.uuidv4();
26
+ const { segmentationId, options = {} as RepresentationPublicInputOptions } =
27
+ representationInput;
28
+
29
+ const segmentationRepresentationUID =
30
+ representationInput.options?.segmentationRepresentationUID ||
31
+ utilities.uuidv4();
24
32
 
25
33
  // Todo: make segmentsHidden also an option that can get passed by
26
34
  // the user
27
35
  const segmentsHidden = new Set() as Set<number>;
28
36
 
29
- const colorLUTOrIndexInput = options.colorLUTOrIndex;
30
- let colorLUTIndexToUse;
31
-
32
- if (typeof colorLUTOrIndexInput === 'number') {
33
- colorLUTIndexToUse = colorLUTOrIndexInput;
34
- } else {
35
- const nextIndex = getNextColorLUTIndex();
36
- const colorLUTToAdd = Array.isArray(colorLUTOrIndexInput)
37
- ? colorLUTOrIndexInput
38
- : CORNERSTONE_COLOR_LUT;
39
- addColorLUT(colorLUTToAdd as Types.ColorLUT, nextIndex);
40
- colorLUTIndexToUse = nextIndex;
41
- }
37
+ const colorLUTIndexToUse = getColorLUTIndex(options);
42
38
 
43
39
  const toolGroupSpecificRepresentation: ToolGroupSpecificRepresentation = {
44
40
  segmentationId,
@@ -50,6 +46,7 @@ async function addSegmentationRepresentation(
50
46
  segmentationRepresentationSpecificConfig: {},
51
47
  segmentSpecificConfig: {},
52
48
  config: getRepresentationSpecificConfig(representationInput),
49
+ polySeg: options.polySeg,
53
50
  };
54
51
 
55
52
  // Update the toolGroup specific configuration
@@ -79,7 +76,33 @@ async function addSegmentationRepresentation(
79
76
  toolGroupSpecificRepresentation
80
77
  );
81
78
 
79
+ if (representationInput.type === SegmentationRepresentations.Contour) {
80
+ getToolGroup(toolGroupId)
81
+ .getViewportsInfo()
82
+ .forEach(({ viewportId, renderingEngineId }) => {
83
+ const renderingEngine = getRenderingEngine(renderingEngineId);
84
+ triggerAnnotationRenderForViewportIds(renderingEngine, [viewportId]);
85
+ });
86
+ }
87
+
82
88
  return segmentationRepresentationUID;
83
89
  }
84
90
 
91
+ function getColorLUTIndex(options = {} as RepresentationPublicInputOptions) {
92
+ const colorLUTOrIndexInput = options.colorLUTOrIndex;
93
+ let colorLUTIndexToUse;
94
+
95
+ if (typeof colorLUTOrIndexInput === 'number') {
96
+ colorLUTIndexToUse = colorLUTOrIndexInput;
97
+ } else {
98
+ const nextIndex = getNextColorLUTIndex();
99
+ const colorLUTToAdd = Array.isArray(colorLUTOrIndexInput)
100
+ ? colorLUTOrIndexInput
101
+ : CORNERSTONE_COLOR_LUT;
102
+ addColorLUT(colorLUTToAdd as Types.ColorLUT, nextIndex);
103
+ colorLUTIndexToUse = nextIndex;
104
+ }
105
+ return colorLUTIndexToUse;
106
+ }
107
+
85
108
  export { addSegmentationRepresentation };
@@ -1,66 +1,8 @@
1
- import { cache, Types } from '@cornerstonejs/core';
2
1
  import * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
3
2
  import { getSegmentationRepresentations } from '../../../stateManagement/segmentation/segmentationState';
4
3
  import { ToolGroupSpecificRepresentation } from '../../../types/SegmentationStateTypes';
4
+ import { getUniqueSegmentIndices } from '../../../utilities/segmentation';
5
5
  import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
6
- import SegmentationRepresentations from '../../../enums/SegmentationRepresentations';
7
- import { isVolumeSegmentation } from '../../../tools/segmentation/strategies/utils/stackVolumeCheck';
8
-
9
- function getUniqueSegmentIndices(segmentationId) {
10
- const segmentation = SegmentationState.getSegmentation(segmentationId);
11
-
12
- if (segmentation.type === SegmentationRepresentations.Labelmap) {
13
- const labelmapData =
14
- segmentation.representationData[SegmentationRepresentations.Labelmap];
15
-
16
- const keySet = {};
17
-
18
- if (isVolumeSegmentation(labelmapData)) {
19
- const volume = cache.getVolume(segmentationId);
20
- const scalarData = volume.getScalarData();
21
-
22
- for (let i = 0; i < scalarData.length; i++) {
23
- const segmentIndex = scalarData[i];
24
- if (segmentIndex !== 0 && !keySet[segmentIndex]) {
25
- keySet[segmentIndex] = true;
26
- }
27
- }
28
- } else {
29
- labelmapData.imageIdReferenceMap.forEach((segmentationImageId) => {
30
- const image = cache.getImage(segmentationImageId);
31
- const scalarData = image.getPixelData();
32
-
33
- for (let i = 0; i < scalarData.length; i++) {
34
- const segmentIndex = scalarData[i];
35
- if (segmentIndex !== 0 && !keySet[segmentIndex]) {
36
- keySet[segmentIndex] = true;
37
- }
38
- }
39
- });
40
- }
41
-
42
- return Object.keys(keySet).map((it) => parseInt(it, 10));
43
- } else if (segmentation.type === SegmentationRepresentations.Contour) {
44
- const annotationUIDsMap =
45
- segmentation.representationData.CONTOUR?.annotationUIDsMap;
46
-
47
- const indices = new Set(annotationUIDsMap.keys());
48
- const geometryIds = segmentation.representationData.CONTOUR?.geometryIds;
49
-
50
- if (!geometryIds) {
51
- throw new Error(
52
- `No geometryIds found for segmentationId ${segmentationId}`
53
- );
54
- }
55
-
56
- geometryIds.forEach((geometryId) => {
57
- const geometry = cache.getGeometry(geometryId) as Types.IGeometry;
58
- indices.add((geometry.data as Types.IContourSet).getSegmentIndex());
59
- });
60
-
61
- return Array.from(indices.values()).sort();
62
- }
63
- }
64
6
 
65
7
  /**
66
8
  * Set the visibility of a segmentation representation for a given tool group. It fires