@cornerstonejs/tools 2.0.0-beta.26 → 2.0.0-beta.28

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 (318) hide show
  1. package/dist/esm/eventListeners/index.d.ts +2 -2
  2. package/dist/esm/eventListeners/index.js +2 -2
  3. package/dist/esm/eventListeners/mouse/mouseDownListener.js +8 -0
  4. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +18 -12
  5. package/dist/esm/eventListeners/segmentation/index.d.ts +1 -3
  6. package/dist/esm/eventListeners/segmentation/index.js +1 -3
  7. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +13 -10
  8. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +2 -3
  9. package/dist/esm/index.d.ts +2 -2
  10. package/dist/esm/index.js +2 -2
  11. package/dist/esm/init.js +1 -5
  12. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +2 -0
  13. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +6 -5
  14. package/dist/esm/stateManagement/annotation/annotationState.js +11 -2
  15. package/dist/esm/stateManagement/index.d.ts +1 -4
  16. package/dist/esm/stateManagement/index.js +1 -3
  17. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +9 -6
  18. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +43 -25
  19. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +207 -162
  20. package/dist/esm/stateManagement/segmentation/SegmentationStyle.d.ts +42 -0
  21. package/dist/esm/stateManagement/segmentation/SegmentationStyle.js +162 -0
  22. package/dist/esm/stateManagement/segmentation/activeSegmentation.d.ts +4 -5
  23. package/dist/esm/stateManagement/segmentation/activeSegmentation.js +10 -14
  24. package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -2
  25. package/dist/esm/stateManagement/segmentation/addColorLUT.js +15 -1
  26. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.d.ts +15 -0
  27. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.js +49 -0
  28. package/dist/esm/stateManagement/segmentation/addSegmentations.d.ts +1 -1
  29. package/dist/esm/stateManagement/segmentation/addSegmentations.js +11 -7
  30. package/dist/esm/stateManagement/segmentation/config/index.d.ts +2 -2
  31. package/dist/esm/stateManagement/segmentation/config/index.js +2 -2
  32. package/dist/esm/stateManagement/segmentation/config/segmentationColor.d.ts +4 -4
  33. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +24 -24
  34. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.d.ts +22 -7
  35. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +29 -29
  36. package/dist/esm/stateManagement/segmentation/config/styleHelpers.d.ts +39 -0
  37. package/dist/esm/stateManagement/segmentation/config/styleHelpers.js +48 -0
  38. package/dist/esm/stateManagement/segmentation/getActiveSegmentation.d.ts +2 -0
  39. package/dist/esm/stateManagement/segmentation/{getGlobalConfig.js → getActiveSegmentation.js} +2 -2
  40. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -1
  41. package/dist/esm/stateManagement/segmentation/getGlobalStyle.d.ts +3 -0
  42. package/dist/esm/stateManagement/segmentation/getGlobalStyle.js +4 -0
  43. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +9 -1
  44. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +10 -2
  45. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +5 -1
  46. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +2 -2
  47. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +5 -5
  48. package/dist/esm/stateManagement/segmentation/getViewportSegmentations.d.ts +3 -0
  49. package/dist/esm/stateManagement/segmentation/getViewportSegmentations.js +15 -0
  50. package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.d.ts +1 -0
  51. package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.js +31 -0
  52. package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.d.ts +1 -2
  53. package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.js +4 -6
  54. package/dist/esm/stateManagement/segmentation/{convertVolumeToStackSegmentation.d.ts → helpers/computeStackLabelmapFromVolume.d.ts} +2 -2
  55. package/dist/esm/stateManagement/segmentation/{convertVolumeToStackSegmentation.js → helpers/computeStackLabelmapFromVolume.js} +8 -5
  56. package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.d.ts +3 -0
  57. package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.js +4 -0
  58. package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.d.ts +1 -0
  59. package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.js +7 -0
  60. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.d.ts +8 -0
  61. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.js +27 -0
  62. package/dist/esm/stateManagement/segmentation/helpers/index.d.ts +2 -1
  63. package/dist/esm/stateManagement/segmentation/helpers/index.js +2 -1
  64. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +4 -6
  65. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +1 -1
  66. package/dist/esm/stateManagement/segmentation/index.d.ts +14 -7
  67. package/dist/esm/stateManagement/segmentation/index.js +14 -7
  68. package/dist/esm/stateManagement/segmentation/{addRepresentationData.d.ts → internalAddRepresentationData.d.ts} +2 -2
  69. package/dist/esm/stateManagement/segmentation/{addRepresentationData.js → internalAddRepresentationData.js} +5 -2
  70. package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.d.ts +1 -1
  71. package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.js +18 -58
  72. package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +9 -10
  73. package/dist/esm/stateManagement/segmentation/polySeg/Contour/utils/extractContourData.js +8 -5
  74. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +9 -2
  75. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +2 -2
  76. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +4 -6
  77. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.d.ts +1 -1
  78. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +4 -4
  79. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +1 -7
  80. package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +1 -3
  81. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +9 -8
  82. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.d.ts +2 -1
  83. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +3 -9
  84. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.d.ts +1 -1
  85. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +7 -5
  86. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.d.ts +14 -2
  87. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +69 -19
  88. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +6 -18
  89. package/dist/esm/stateManagement/segmentation/segmentationState.js +9 -18
  90. package/dist/esm/stateManagement/segmentation/setActiveSegmentation.d.ts +1 -0
  91. package/dist/esm/stateManagement/segmentation/setActiveSegmentation.js +5 -0
  92. package/dist/esm/stateManagement/segmentation/setGlobalStyle.d.ts +3 -0
  93. package/dist/esm/stateManagement/segmentation/setGlobalStyle.js +8 -0
  94. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +5 -1
  95. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +2 -2
  96. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +1 -3
  97. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +1 -3
  98. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +2 -1
  99. package/dist/esm/store/ToolGroupManager/ToolGroup.js +23 -9
  100. package/dist/esm/store/ToolGroupManager/createToolGroup.d.ts +1 -1
  101. package/dist/esm/store/ToolGroupManager/createToolGroup.js +3 -3
  102. package/dist/esm/tools/AdvancedMagnifyTool.js +1 -1
  103. package/dist/esm/tools/CrosshairsTool.js +1 -2
  104. package/dist/esm/tools/MIPJumpToClickTool.js +1 -1
  105. package/dist/esm/tools/ReferenceLinesTool.js +5 -2
  106. package/dist/esm/tools/StackScrollTool.d.ts +4 -0
  107. package/dist/esm/tools/StackScrollTool.js +104 -15
  108. package/dist/esm/tools/WindowLevelTool.js +3 -2
  109. package/dist/esm/tools/annotation/AngleTool.js +1 -1
  110. package/dist/esm/tools/annotation/BidirectionalTool.js +1 -1
  111. package/dist/esm/tools/annotation/CircleROITool.js +1 -1
  112. package/dist/esm/tools/annotation/EllipticalROITool.js +1 -1
  113. package/dist/esm/tools/annotation/HeightTool.js +1 -1
  114. package/dist/esm/tools/annotation/LengthTool.js +1 -1
  115. package/dist/esm/tools/annotation/LivewireContourTool.js +3 -3
  116. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +1 -1
  117. package/dist/esm/tools/annotation/ProbeTool.js +2 -2
  118. package/dist/esm/tools/annotation/RectangleROITool.js +1 -1
  119. package/dist/esm/tools/annotation/SplineROITool.js +2 -3
  120. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +1 -1
  121. package/dist/esm/tools/base/BaseTool.d.ts +1 -2
  122. package/dist/esm/tools/base/BaseTool.js +5 -18
  123. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +28 -25
  124. package/dist/esm/tools/displayTools/Contour/contourConfig.d.ts +3 -3
  125. package/dist/esm/tools/displayTools/Contour/contourConfig.js +2 -2
  126. package/dist/esm/tools/displayTools/Contour/contourDisplay.d.ts +1 -1
  127. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +4 -7
  128. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +26 -57
  129. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.d.ts +1 -1
  130. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.js +2 -4
  131. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +1 -1
  132. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +39 -10
  133. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.d.ts +3 -5
  134. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +3 -16
  135. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -1
  136. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +86 -90
  137. package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.d.ts +1 -1
  138. package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +3 -2
  139. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts +1 -1
  140. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js +3 -3
  141. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.d.ts +2 -2
  142. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.js +5 -3
  143. package/dist/esm/tools/displayTools/Surface/surfaceConfig.d.ts +3 -3
  144. package/dist/esm/tools/displayTools/Surface/surfaceConfig.js +2 -2
  145. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.d.ts +1 -1
  146. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +7 -8
  147. package/dist/esm/tools/index.d.ts +1 -2
  148. package/dist/esm/tools/index.js +1 -2
  149. package/dist/esm/tools/segmentation/BrushTool.d.ts +0 -4
  150. package/dist/esm/tools/segmentation/BrushTool.js +23 -22
  151. package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +2 -2
  152. package/dist/esm/tools/segmentation/CircleScissorsTool.d.ts +1 -1
  153. package/dist/esm/tools/segmentation/CircleScissorsTool.js +11 -10
  154. package/dist/esm/tools/segmentation/PaintFillTool.js +5 -7
  155. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -2
  156. package/dist/esm/tools/segmentation/RectangleScissorsTool.d.ts +0 -1
  157. package/dist/esm/tools/segmentation/RectangleScissorsTool.js +9 -10
  158. package/dist/esm/tools/segmentation/SegmentSelectTool.d.ts +2 -2
  159. package/dist/esm/tools/segmentation/SegmentSelectTool.js +17 -26
  160. package/dist/esm/tools/segmentation/SphereScissorsTool.d.ts +0 -1
  161. package/dist/esm/tools/segmentation/SphereScissorsTool.js +6 -9
  162. package/dist/esm/tools/segmentation/strategies/BrushStrategy.d.ts +2 -0
  163. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +2 -0
  164. package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js +1 -2
  165. package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +1 -1
  166. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +3 -3
  167. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js +4 -4
  168. package/dist/esm/tools/segmentation/strategies/compositions/setValue.js +1 -1
  169. package/dist/esm/tools/segmentation/strategies/fillCircle.js +3 -3
  170. package/dist/esm/tools/segmentation/strategies/fillSphere.js +3 -3
  171. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +21 -6
  172. package/dist/esm/types/AnnotationGroupSelector.js +0 -1
  173. package/dist/esm/types/AnnotationRenderContext.js +0 -1
  174. package/dist/esm/types/AnnotationStyle.js +0 -1
  175. package/dist/esm/types/AnnotationTypes.js +0 -1
  176. package/dist/esm/types/BoundsIJK.js +0 -1
  177. package/dist/esm/types/CINETypes.js +0 -1
  178. package/dist/esm/types/CalculatorTypes.js +0 -1
  179. package/dist/esm/types/CardinalSplineProps.js +0 -1
  180. package/dist/esm/types/ClosestControlPoint.js +0 -1
  181. package/dist/esm/types/ClosestPoint.js +0 -1
  182. package/dist/esm/types/ClosestSplinePoint.js +0 -1
  183. package/dist/esm/types/ContourSegmentationAnnotation.js +0 -1
  184. package/dist/esm/types/ContourTypes.d.ts +1 -2
  185. package/dist/esm/types/ContourTypes.js +0 -1
  186. package/dist/esm/types/ControlPointInfo.js +0 -1
  187. package/dist/esm/types/CursorTypes.js +0 -1
  188. package/dist/esm/types/EventTypes.d.ts +2 -2
  189. package/dist/esm/types/EventTypes.js +0 -1
  190. package/dist/esm/types/FloodFillTypes.js +0 -1
  191. package/dist/esm/types/IAnnotationManager.js +0 -1
  192. package/dist/esm/types/IBaseTool.js +0 -1
  193. package/dist/esm/types/IDistance.js +0 -1
  194. package/dist/esm/types/IPoints.js +0 -1
  195. package/dist/esm/types/ISculptToolShape.js +0 -1
  196. package/dist/esm/types/ISetToolModeOptions.js +0 -1
  197. package/dist/esm/types/ISpline.js +0 -1
  198. package/dist/esm/types/ISynchronizerEventHandler.js +0 -1
  199. package/dist/esm/types/IToolClassReference.js +0 -1
  200. package/dist/esm/types/IToolGroup.js +0 -1
  201. package/dist/esm/types/ITouchPoints.js +0 -1
  202. package/dist/esm/types/InteractionTypes.js +0 -1
  203. package/dist/esm/types/InternalToolTypes.js +0 -1
  204. package/dist/esm/types/InterpolationTypes.js +0 -1
  205. package/dist/esm/types/JumpToSliceOptions.js +0 -1
  206. package/dist/esm/types/LabelmapToolOperationData.d.ts +0 -1
  207. package/dist/esm/types/LabelmapToolOperationData.js +0 -1
  208. package/dist/esm/types/LabelmapTypes.d.ts +3 -7
  209. package/dist/esm/types/LabelmapTypes.js +0 -1
  210. package/dist/esm/types/PlanarBoundingBox.js +0 -1
  211. package/dist/esm/types/PolySeg.d.ts +1 -1
  212. package/dist/esm/types/PolySeg.js +0 -1
  213. package/dist/esm/types/SVGDrawingHelper.js +0 -1
  214. package/dist/esm/types/ScrollOptions.js +0 -1
  215. package/dist/esm/types/SegmentationStateTypes.d.ts +35 -56
  216. package/dist/esm/types/SegmentationStateTypes.js +0 -1
  217. package/dist/esm/types/SplineCurveSegment.js +0 -1
  218. package/dist/esm/types/SplineLineSegment.js +0 -1
  219. package/dist/esm/types/SplineProps.js +0 -1
  220. package/dist/esm/types/SurfaceTypes.d.ts +1 -1
  221. package/dist/esm/types/SurfaceTypes.js +0 -1
  222. package/dist/esm/types/ToolAction.js +0 -1
  223. package/dist/esm/types/ToolHandle.js +0 -1
  224. package/dist/esm/types/ToolProps.js +0 -1
  225. package/dist/esm/types/ToolSpecificAnnotationTypes.js +0 -1
  226. package/dist/esm/types/index.d.ts +2 -2
  227. package/dist/esm/types/index.js +0 -1
  228. package/dist/esm/utilities/cine/playClip.js +1 -1
  229. package/dist/esm/utilities/contours/updateContourPolyline.js +3 -0
  230. package/dist/esm/utilities/index.d.ts +2 -1
  231. package/dist/esm/utilities/index.js +2 -1
  232. package/dist/esm/utilities/math/circle/_types.js +0 -1
  233. package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.js +0 -1
  234. package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +8 -0
  235. package/dist/esm/utilities/pointInSurroundingSphereCallback.js +71 -0
  236. package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +2 -2
  237. package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.js +10 -9
  238. package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.js +9 -8
  239. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +14 -16
  240. package/dist/esm/utilities/segmentation/index.d.ts +1 -3
  241. package/dist/esm/utilities/segmentation/index.js +1 -3
  242. package/dist/esm/utilities/voi/colorbar/ColorbarCanvas.js +3 -0
  243. package/dist/esm/utilities/voi/colorbar/ViewportColorbar.js +1 -1
  244. package/dist/esm/utilities/voi/colorbar/types/ColorbarCanvasProps.js +0 -1
  245. package/dist/esm/utilities/voi/colorbar/types/ColorbarCommonProps.js +0 -1
  246. package/dist/esm/utilities/voi/colorbar/types/ColorbarImageRange.js +0 -1
  247. package/dist/esm/utilities/voi/colorbar/types/ColorbarProps.js +0 -1
  248. package/dist/esm/utilities/voi/colorbar/types/ColorbarSize.js +0 -1
  249. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksProps.js +0 -1
  250. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksStyle.js +0 -1
  251. package/dist/esm/utilities/voi/colorbar/types/ColorbarVOIRange.js +0 -1
  252. package/dist/esm/utilities/voi/colorbar/types/ViewportColorbarProps.js +0 -1
  253. package/dist/esm/utilities/voi/colorbar/types/index.js +0 -1
  254. package/dist/esm/widgets/types/WidgetProps.js +0 -1
  255. package/dist/esm/widgets/types/WidgetSize.js +0 -1
  256. package/dist/esm/widgets/types/index.js +0 -1
  257. package/dist/esm/workers/polySegConverters.js +4 -3
  258. package/package.json +73 -20
  259. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.d.ts +0 -3
  260. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +0 -14
  261. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.d.ts +0 -3
  262. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +0 -8
  263. package/dist/esm/stateManagement/segmentation/addSegmentation.d.ts +0 -2
  264. package/dist/esm/stateManagement/segmentation/addSegmentation.js +0 -11
  265. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.d.ts +0 -2
  266. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.js +0 -10
  267. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.d.ts +0 -8
  268. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.js +0 -19
  269. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.d.ts +0 -14
  270. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +0 -54
  271. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +0 -1
  272. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +0 -8
  273. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +0 -1
  274. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +0 -8
  275. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.d.ts +0 -2
  276. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.js +0 -5
  277. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.d.ts +0 -2
  278. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.js +0 -6
  279. package/dist/esm/stateManagement/segmentation/getGlobalConfig.d.ts +0 -2
  280. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.d.ts +0 -2
  281. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.js +0 -5
  282. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.d.ts +0 -2
  283. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.js +0 -5
  284. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.d.ts +0 -7
  285. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.js +0 -6
  286. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.d.ts +0 -2
  287. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.js +0 -12
  288. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.d.ts +0 -2
  289. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.js +0 -5
  290. package/dist/esm/stateManagement/segmentation/removeRepresentation.d.ts +0 -1
  291. package/dist/esm/stateManagement/segmentation/removeRepresentation.js +0 -9
  292. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.d.ts +0 -1
  293. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.js +0 -9
  294. package/dist/esm/stateManagement/segmentation/setGlobalConfig.d.ts +0 -2
  295. package/dist/esm/stateManagement/segmentation/setGlobalConfig.js +0 -9
  296. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.d.ts +0 -2
  297. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.js +0 -9
  298. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.d.ts +0 -2
  299. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.js +0 -9
  300. package/dist/esm/tools/VolumeRotateMouseWheelTool.d.ts +0 -9
  301. package/dist/esm/tools/VolumeRotateMouseWheelTool.js +0 -52
  302. package/dist/esm/tools/displayTools/Contour/contourHandler/contourConfigCache.d.ts +0 -9
  303. package/dist/esm/tools/displayTools/Contour/contourHandler/contourConfigCache.js +0 -10
  304. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +0 -5
  305. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js +0 -13
  306. package/dist/esm/utilities/segmentation/getDefaultRepresentationConfig.d.ts +0 -2
  307. package/dist/esm/utilities/segmentation/getDefaultRepresentationConfig.js +0 -11
  308. package/dist/esm/utilities/segmentation/isValidRepresentationConfig.d.ts +0 -2
  309. package/dist/esm/utilities/segmentation/isValidRepresentationConfig.js +0 -10
  310. package/dist/umd/17dd54813d5acc10bf8f.wasm +0 -0
  311. package/dist/umd/78.index.js +0 -3
  312. package/dist/umd/78.index.js.LICENSE.txt +0 -5
  313. package/dist/umd/78.index.js.map +0 -1
  314. package/dist/umd/985.index.js +0 -2
  315. package/dist/umd/985.index.js.map +0 -1
  316. package/dist/umd/index.js +0 -3
  317. package/dist/umd/index.js.LICENSE.txt +0 -6
  318. package/dist/umd/index.js.map +0 -1
@@ -0,0 +1,162 @@
1
+ import { SegmentationRepresentations } from '../../enums';
2
+ import getDefaultContourConfig from '../../tools/displayTools/Contour/contourConfig';
3
+ import getDefaultLabelmapConfig from '../../tools/displayTools/Labelmap/labelmapConfig';
4
+ import * as Enums from '../../enums';
5
+ class SegmentationStyle {
6
+ constructor() {
7
+ this.config = {
8
+ global: {},
9
+ segmentations: {},
10
+ viewportsStyle: {},
11
+ };
12
+ }
13
+ setGlobalStyle(type, styles) {
14
+ this.config.global[type] = styles;
15
+ }
16
+ getGlobalStyle(type) {
17
+ return this.config.global[type];
18
+ }
19
+ setGlobalLabelmapStyle(styles) {
20
+ this.setGlobalStyle(SegmentationRepresentations.Labelmap, styles);
21
+ }
22
+ setGlobalContourStyle(styles) {
23
+ this.setGlobalStyle(SegmentationRepresentations.Contour, styles);
24
+ }
25
+ setGlobalSurfaceStyle(styles) {
26
+ this.setGlobalStyle(SegmentationRepresentations.Surface, styles);
27
+ }
28
+ setSegmentationSpecificStyle(specifier, styles) {
29
+ const { segmentationId, type, segmentIndex } = specifier;
30
+ if (!this.config.segmentations[segmentationId]) {
31
+ this.config.segmentations[segmentationId] = {};
32
+ }
33
+ if (!this.config.segmentations[segmentationId][type]) {
34
+ this.config.segmentations[segmentationId][type] = {};
35
+ }
36
+ if (segmentIndex !== undefined) {
37
+ if (!this.config.segmentations[segmentationId][type].perSegment) {
38
+ this.config.segmentations[segmentationId][type].perSegment = {};
39
+ }
40
+ this.config.segmentations[segmentationId][type].perSegment[segmentIndex] =
41
+ styles;
42
+ }
43
+ else {
44
+ this.config.segmentations[segmentationId][type].allSegments = styles;
45
+ }
46
+ }
47
+ setViewportSpecificStyleForType(specifier, styles) {
48
+ const { viewportId, type } = specifier;
49
+ if (!this.config.viewportsStyle[viewportId]) {
50
+ this.config.viewportsStyle[viewportId] = {
51
+ renderInactiveSegmentations: false,
52
+ representations: {},
53
+ };
54
+ }
55
+ const allSegmentationsKey = '__allSegmentations__';
56
+ if (!this.config.viewportsStyle[viewportId].representations[allSegmentationsKey]) {
57
+ this.config.viewportsStyle[viewportId].representations[allSegmentationsKey] = {};
58
+ }
59
+ this.config.viewportsStyle[viewportId].representations[allSegmentationsKey][type] = {
60
+ allSegments: styles,
61
+ };
62
+ }
63
+ setViewportSpecificStyleForSegmentation(specifier, styles) {
64
+ const { viewportId, segmentationId, type, segmentIndex } = specifier;
65
+ if (!this.config.viewportsStyle[viewportId]) {
66
+ this.config.viewportsStyle[viewportId] = {
67
+ renderInactiveSegmentations: false,
68
+ representations: {},
69
+ };
70
+ }
71
+ if (!this.config.viewportsStyle[viewportId].representations[segmentationId]) {
72
+ this.config.viewportsStyle[viewportId].representations[segmentationId] =
73
+ {};
74
+ }
75
+ if (!this.config.viewportsStyle[viewportId].representations[segmentationId][type]) {
76
+ this.config.viewportsStyle[viewportId].representations[segmentationId][type] = {};
77
+ }
78
+ if (segmentIndex !== undefined) {
79
+ if (!this.config.viewportsStyle[viewportId].representations[segmentationId][type].perSegment) {
80
+ this.config.viewportsStyle[viewportId].representations[segmentationId][type].perSegment = {};
81
+ }
82
+ this.config.viewportsStyle[viewportId].representations[segmentationId][type].perSegment[segmentIndex] = styles;
83
+ }
84
+ else {
85
+ this.config.viewportsStyle[viewportId].representations[segmentationId][type].allSegments = styles;
86
+ }
87
+ }
88
+ setViewportRenderInactiveSegmentations(viewportId, renderInactiveSegmentations) {
89
+ if (!this.config.viewportsStyle[viewportId]) {
90
+ this.config.viewportsStyle[viewportId] = {
91
+ renderInactiveSegmentations: false,
92
+ representations: {},
93
+ };
94
+ }
95
+ this.config.viewportsStyle[viewportId].renderInactiveSegmentations =
96
+ renderInactiveSegmentations;
97
+ }
98
+ getStyle(specifier) {
99
+ const { viewportId, segmentationId, type, segmentIndex } = specifier;
100
+ let combinedStyle = this.getDefaultStyle(type);
101
+ let renderInactiveSegmentations = false;
102
+ if (this.config.global[type]) {
103
+ combinedStyle = {
104
+ ...combinedStyle,
105
+ ...this.config.global[type],
106
+ };
107
+ }
108
+ if (this.config.segmentations[segmentationId]?.[type]) {
109
+ combinedStyle = {
110
+ ...combinedStyle,
111
+ ...this.config.segmentations[segmentationId][type].allSegments,
112
+ };
113
+ if (segmentIndex !== undefined &&
114
+ this.config.segmentations[segmentationId][type].perSegment?.[segmentIndex]) {
115
+ combinedStyle = {
116
+ ...combinedStyle,
117
+ ...this.config.segmentations[segmentationId][type].perSegment[segmentIndex],
118
+ };
119
+ }
120
+ }
121
+ if (viewportId && this.config.viewportsStyle[viewportId]) {
122
+ renderInactiveSegmentations =
123
+ this.config.viewportsStyle[viewportId].renderInactiveSegmentations;
124
+ const allSegmentationsKey = '__allSegmentations__';
125
+ if (this.config.viewportsStyle[viewportId].representations[allSegmentationsKey]?.[type]) {
126
+ combinedStyle = {
127
+ ...combinedStyle,
128
+ ...this.config.viewportsStyle[viewportId].representations[allSegmentationsKey][type].allSegments,
129
+ };
130
+ }
131
+ if (segmentationId &&
132
+ this.config.viewportsStyle[viewportId].representations[segmentationId]?.[type]) {
133
+ combinedStyle = {
134
+ ...combinedStyle,
135
+ ...this.config.viewportsStyle[viewportId].representations[segmentationId][type].allSegments,
136
+ };
137
+ if (segmentIndex !== undefined &&
138
+ this.config.viewportsStyle[viewportId].representations[segmentationId][type].perSegment?.[segmentIndex]) {
139
+ combinedStyle = {
140
+ ...combinedStyle,
141
+ ...this.config.viewportsStyle[viewportId].representations[segmentationId][type].perSegment[segmentIndex],
142
+ };
143
+ }
144
+ }
145
+ }
146
+ return { style: combinedStyle, renderInactiveSegmentations };
147
+ }
148
+ getDefaultStyle(type) {
149
+ switch (type) {
150
+ case Enums.SegmentationRepresentations.Labelmap:
151
+ return getDefaultLabelmapConfig();
152
+ case Enums.SegmentationRepresentations.Contour:
153
+ return getDefaultContourConfig();
154
+ case Enums.SegmentationRepresentations.Surface:
155
+ return {};
156
+ default:
157
+ throw new Error(`Unknown representation type: ${type}`);
158
+ }
159
+ }
160
+ }
161
+ const segmentationStyle = new SegmentationStyle();
162
+ export { segmentationStyle };
@@ -1,5 +1,4 @@
1
- import type { SegmentationRepresentation, Segmentation } from '../../types/SegmentationStateTypes';
2
- declare function getActiveSegmentationRepresentation(viewportId: any): SegmentationRepresentation;
3
- declare function getActiveSegmentation(viewportId: any): Segmentation;
4
- declare function setActiveSegmentationRepresentation(viewportId: any, segmentationRepresentationUID: any, suppressEvent?: boolean): void;
5
- export { getActiveSegmentationRepresentation, getActiveSegmentation, setActiveSegmentationRepresentation, };
1
+ import type { Segmentation } from '../../types/SegmentationStateTypes';
2
+ declare function getActiveSegmentation(viewportId: string): Segmentation;
3
+ declare function setActiveSegmentation(viewportId: string, segmentationId: string, suppressEvent?: boolean): void;
4
+ export { getActiveSegmentation, setActiveSegmentation, };
@@ -1,17 +1,13 @@
1
- import { getActiveSegmentationRepresentation as _getActiveSegmentationRepresentation } from './getActiveSegmentationRepresentation';
2
- import { setActiveSegmentationRepresentation as _setActiveSegmentationRepresentation } from './setActiveSegmentationRepresentation';
3
- import { getSegmentation } from './getSegmentation';
4
- function getActiveSegmentationRepresentation(viewportId) {
5
- return _getActiveSegmentationRepresentation(viewportId);
6
- }
1
+ import { getActiveSegmentation as _getActiveSegmentation } from './getActiveSegmentation';
2
+ import { triggerSegmentationRender } from './SegmentationRenderingEngine';
3
+ import { setActiveSegmentation as _setActiveSegmentation } from './setActiveSegmentation';
7
4
  function getActiveSegmentation(viewportId) {
8
- const activeRepresentation = getActiveSegmentationRepresentation(viewportId);
9
- if (!activeRepresentation) {
10
- return null;
11
- }
12
- return getSegmentation(activeRepresentation.segmentationId);
5
+ return _getActiveSegmentation(viewportId);
13
6
  }
14
- function setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent = false) {
15
- _setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent);
7
+ function setActiveSegmentation(viewportId, segmentationId, suppressEvent = false) {
8
+ _setActiveSegmentation(viewportId, segmentationId);
9
+ if (!suppressEvent) {
10
+ triggerSegmentationRender(viewportId);
11
+ }
16
12
  }
17
- export { getActiveSegmentationRepresentation, getActiveSegmentation, setActiveSegmentationRepresentation, };
13
+ export { getActiveSegmentation, setActiveSegmentation, };
@@ -1,2 +1,2 @@
1
- import type { Types } from '@cornerstonejs/core';
2
- export declare function addColorLUT(colorLUT: Types.ColorLUT, index: number): void;
1
+ import { type Types } from '@cornerstonejs/core';
2
+ export declare function addColorLUT(colorLUT: Types.ColorLUT, index?: number): number;
@@ -1,5 +1,19 @@
1
+ import { utilities } from '@cornerstonejs/core';
1
2
  import { defaultSegmentationStateManager } from './SegmentationStateManager';
3
+ import { getNextColorLUTIndex } from './getNextColorLUTIndex';
4
+ import CORNERSTONE_COLOR_LUT from '../../constants/COLOR_LUT';
2
5
  export function addColorLUT(colorLUT, index) {
3
6
  const segmentationStateManager = defaultSegmentationStateManager;
4
- segmentationStateManager.addColorLUT(colorLUT, index);
7
+ const indexToUse = index ?? getNextColorLUTIndex();
8
+ let colorLUTToUse = [...colorLUT];
9
+ if (!utilities.isEqual(colorLUTToUse[0], [0, 0, 0, 0])) {
10
+ console.warn('addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it');
11
+ colorLUTToUse = [[0, 0, 0, 0], ...colorLUTToUse];
12
+ }
13
+ if (colorLUTToUse.length < 255) {
14
+ const missingColorLUTs = CORNERSTONE_COLOR_LUT.slice(colorLUTToUse.length);
15
+ colorLUTToUse = [...colorLUTToUse, ...missingColorLUTs];
16
+ }
17
+ segmentationStateManager.addColorLUT(colorLUTToUse, indexToUse);
18
+ return indexToUse;
5
19
  }
@@ -0,0 +1,15 @@
1
+ import type { RepresentationPublicInput } from '../../types/SegmentationStateTypes';
2
+ export declare function addSegmentationRepresentations(viewportId: string, segmentationInputArray: RepresentationPublicInput[]): void;
3
+ declare function addContourRepresentationToViewport(viewportId: string, contourInputArray: RepresentationPublicInput[]): void;
4
+ declare function addContourRepresentationToViewportMap(viewportInputMap: {
5
+ [viewportId: string]: RepresentationPublicInput[];
6
+ }): {};
7
+ declare function addLabelmapRepresentationToViewport(viewportId: string, labelmapInputArray: RepresentationPublicInput[]): void;
8
+ declare function addLabelmapRepresentationToViewportMap(viewportInputMap: {
9
+ [viewportId: string]: RepresentationPublicInput[];
10
+ }): void;
11
+ declare function addSurfaceRepresentationToViewport(viewportId: string, surfaceInputArray: RepresentationPublicInput[]): void;
12
+ declare function addSurfaceRepresentationToViewportMap(viewportInputMap: {
13
+ [viewportId: string]: RepresentationPublicInput[];
14
+ }): {};
15
+ export { addContourRepresentationToViewport, addLabelmapRepresentationToViewport, addSurfaceRepresentationToViewport, addContourRepresentationToViewportMap, addLabelmapRepresentationToViewportMap, addSurfaceRepresentationToViewportMap, };
@@ -0,0 +1,49 @@
1
+ import { SegmentationRepresentations } from '../../enums';
2
+ import { internalAddSegmentationRepresentation } from './internalAddSegmentationRepresentation';
3
+ export function addSegmentationRepresentations(viewportId, segmentationInputArray) {
4
+ segmentationInputArray.map((segmentationInput) => {
5
+ return internalAddSegmentationRepresentation(viewportId, segmentationInput);
6
+ });
7
+ }
8
+ function addContourRepresentationToViewport(viewportId, contourInputArray) {
9
+ return addSegmentationRepresentations(viewportId, contourInputArray.map((input) => ({
10
+ ...input,
11
+ type: SegmentationRepresentations.Contour,
12
+ })));
13
+ }
14
+ function addContourRepresentationToViewportMap(viewportInputMap) {
15
+ const results = {};
16
+ for (const [viewportId, inputArray] of Object.entries(viewportInputMap)) {
17
+ results[viewportId] = addContourRepresentationToViewport(viewportId, inputArray);
18
+ }
19
+ return results;
20
+ }
21
+ function addLabelmapRepresentationToViewport(viewportId, labelmapInputArray) {
22
+ return addSegmentationRepresentations(viewportId, labelmapInputArray.map((input) => ({
23
+ ...input,
24
+ type: SegmentationRepresentations.Labelmap,
25
+ })));
26
+ }
27
+ function addLabelmapRepresentationToViewportMap(viewportInputMap) {
28
+ const results = {};
29
+ for (const [viewportId, inputArray] of Object.entries(viewportInputMap)) {
30
+ results[viewportId] = addLabelmapRepresentationToViewport(viewportId, inputArray.map((input) => ({
31
+ ...input,
32
+ type: SegmentationRepresentations.Labelmap,
33
+ })));
34
+ }
35
+ }
36
+ function addSurfaceRepresentationToViewport(viewportId, surfaceInputArray) {
37
+ return addSegmentationRepresentations(viewportId, surfaceInputArray.map((input) => ({
38
+ ...input,
39
+ type: SegmentationRepresentations.Surface,
40
+ })));
41
+ }
42
+ function addSurfaceRepresentationToViewportMap(viewportInputMap) {
43
+ const results = {};
44
+ for (const [viewportId, inputArray] of Object.entries(viewportInputMap)) {
45
+ results[viewportId] = addSurfaceRepresentationToViewport(viewportId, inputArray);
46
+ }
47
+ return results;
48
+ }
49
+ export { addContourRepresentationToViewport, addLabelmapRepresentationToViewport, addSurfaceRepresentationToViewport, addContourRepresentationToViewportMap, addLabelmapRepresentationToViewportMap, addSurfaceRepresentationToViewportMap, };
@@ -1,3 +1,3 @@
1
1
  import type { SegmentationPublicInput } from '../../types/SegmentationStateTypes';
2
- declare function addSegmentations(segmentationInputArray: SegmentationPublicInput[]): void;
2
+ export declare function addSegmentations(segmentationInputArray: SegmentationPublicInput[], suppressEvents?: boolean): void;
3
3
  export default addSegmentations;
@@ -1,10 +1,14 @@
1
- import { validateSegmentationInput } from './helpers';
2
- import { addSegmentation as addSegmentationToState } from './segmentationState';
3
- function addSegmentations(segmentationInputArray) {
4
- validateSegmentationInput(segmentationInputArray);
5
- segmentationInputArray.map((segInput) => {
6
- const segmentationInput = structuredClone(segInput);
7
- addSegmentationToState(segmentationInput);
1
+ import { defaultSegmentationStateManager } from './SegmentationStateManager';
2
+ import { triggerSegmentationModified } from './triggerSegmentationEvents';
3
+ import normalizeSegmentationInput from './helpers/normalizeSegmentationInput';
4
+ export function addSegmentations(segmentationInputArray, suppressEvents) {
5
+ const segmentationStateManager = defaultSegmentationStateManager;
6
+ segmentationInputArray.forEach((segmentationInput) => {
7
+ const segmentation = normalizeSegmentationInput(segmentationInput);
8
+ segmentationStateManager.addSegmentation(segmentation);
9
+ if (!suppressEvents) {
10
+ triggerSegmentationModified(segmentation.segmentationId);
11
+ }
8
12
  });
9
13
  }
10
14
  export default addSegmentations;
@@ -1,4 +1,4 @@
1
1
  import * as color from './segmentationColor';
2
2
  import * as visibility from './segmentationVisibility';
3
- import { getGlobalConfig, getGlobalRepresentationConfig, setGlobalConfig, setGlobalRepresentationConfig, getSegmentationRepresentationConfig, getPerSegmentConfig, getSegmentIndexConfig, setSegmentationRepresentationConfig, setPerSegmentConfig, setSegmentIndexConfig } from './segmentationConfig';
4
- export { color, visibility, getGlobalConfig, getGlobalRepresentationConfig, setGlobalConfig, setGlobalRepresentationConfig, getSegmentationRepresentationConfig, getPerSegmentConfig, getSegmentIndexConfig, setSegmentationRepresentationConfig, setPerSegmentConfig, setSegmentIndexConfig, };
3
+ import * as style from './styleHelpers';
4
+ export { color, visibility, style };
@@ -1,4 +1,4 @@
1
1
  import * as color from './segmentationColor';
2
2
  import * as visibility from './segmentationVisibility';
3
- import { getGlobalConfig, getGlobalRepresentationConfig, setGlobalConfig, setGlobalRepresentationConfig, getSegmentationRepresentationConfig, getPerSegmentConfig, getSegmentIndexConfig, setSegmentationRepresentationConfig, setPerSegmentConfig, setSegmentIndexConfig, } from './segmentationConfig';
4
- export { color, visibility, getGlobalConfig, getGlobalRepresentationConfig, setGlobalConfig, setGlobalRepresentationConfig, getSegmentationRepresentationConfig, getPerSegmentConfig, getSegmentIndexConfig, setSegmentationRepresentationConfig, setPerSegmentConfig, setSegmentIndexConfig, };
3
+ import * as style from './styleHelpers';
4
+ export { color, visibility, style };
@@ -1,6 +1,6 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- declare function addColorLUT(colorLUT: Types.ColorLUT, colorLUTIndex: number): void;
3
- declare function setColorLUT(segmentationRepresentationUID: string, colorLUTIndex: number): void;
4
- declare function getSegmentIndexColor(segmentationRepresentationUID: string, segmentIndex: number): Types.Color;
5
- declare function setSegmentIndexColor(segmentationRepresentationUID: string, segmentIndex: number, color: Types.Color): void;
2
+ declare function addColorLUT(colorLUT: Types.ColorLUT, colorLUTIndex?: number): number;
3
+ declare function setColorLUT(viewportId: string, segmentationId: string, colorLUTsIndex: number): void;
4
+ declare function getSegmentIndexColor(viewportId: string, segmentationId: string, segmentIndex: number): Types.Color;
5
+ declare function setSegmentIndexColor(viewportId: string, segmentationId: string, segmentIndex: number, color: Types.Color): void;
6
6
  export { getSegmentIndexColor, addColorLUT, setColorLUT, setSegmentIndexColor };
@@ -1,35 +1,35 @@
1
- import { utilities } from '@cornerstonejs/core';
2
- import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
3
1
  import { addColorLUT as _addColorLUT } from '../addColorLUT';
4
2
  import { getColorLUT as _getColorLUT } from '../getColorLUT';
5
- import { getSegmentationRepresentation } from '../getSegmentationRepresentation';
3
+ import { getSegmentationRepresentations } from '../getSegmentationRepresentation';
4
+ import { triggerSegmentationModified } from '../triggerSegmentationEvents';
6
5
  function addColorLUT(colorLUT, colorLUTIndex) {
7
6
  if (!colorLUT) {
8
7
  throw new Error('addColorLUT: colorLUT is required');
9
8
  }
10
- if (!utilities.isEqual(colorLUT[0], [0, 0, 0, 0])) {
11
- console.warn('addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it');
12
- colorLUT.unshift([0, 0, 0, 0]);
13
- }
14
- _addColorLUT(colorLUT, colorLUTIndex);
9
+ return _addColorLUT(colorLUT, colorLUTIndex);
15
10
  }
16
- function setColorLUT(segmentationRepresentationUID, colorLUTIndex) {
17
- const segRepresentation = getSegmentationRepresentation(segmentationRepresentationUID);
18
- if (!segRepresentation) {
19
- throw new Error(`setColorLUT: could not find segmentation representation with UID ${segmentationRepresentationUID}`);
11
+ function setColorLUT(viewportId, segmentationId, colorLUTsIndex) {
12
+ if (!_getColorLUT(colorLUTsIndex)) {
13
+ throw new Error(`setColorLUT: could not find colorLUT with index ${colorLUTsIndex}`);
20
14
  }
21
- if (!_getColorLUT(colorLUTIndex)) {
22
- throw new Error(`setColorLUT: could not find colorLUT with index ${colorLUTIndex}`);
15
+ const segmentationRepresentations = getSegmentationRepresentations(viewportId, { segmentationId });
16
+ if (!segmentationRepresentations) {
17
+ throw new Error(`viewport specific state for viewport ${viewportId} does not exist`);
23
18
  }
24
- segRepresentation.colorLUTIndex = colorLUTIndex;
25
- triggerSegmentationRepresentationModified(segmentationRepresentationUID);
19
+ segmentationRepresentations.forEach((segmentationRepresentation) => {
20
+ segmentationRepresentation.config.colorLUTIndex = colorLUTsIndex;
21
+ });
22
+ triggerSegmentationModified(segmentationId);
26
23
  }
27
- function getSegmentIndexColor(segmentationRepresentationUID, segmentIndex) {
28
- const segmentationRepresentation = getSegmentationRepresentation(segmentationRepresentationUID);
29
- if (!segmentationRepresentation) {
30
- throw new Error(`segmentation representation with UID ${segmentationRepresentationUID} does not exist`);
24
+ function getSegmentIndexColor(viewportId, segmentationId, segmentIndex) {
25
+ const representations = getSegmentationRepresentations(viewportId, {
26
+ segmentationId,
27
+ });
28
+ if (!representations) {
29
+ throw new Error(`segmentation representation with segmentationId ${segmentationId} does not exist`);
31
30
  }
32
- const { colorLUTIndex } = segmentationRepresentation;
31
+ const representation = representations[0];
32
+ const { colorLUTIndex } = representation.config;
33
33
  const colorLUT = _getColorLUT(colorLUTIndex);
34
34
  let colorValue = colorLUT[segmentIndex];
35
35
  if (!colorValue) {
@@ -40,11 +40,11 @@ function getSegmentIndexColor(segmentationRepresentationUID, segmentIndex) {
40
40
  }
41
41
  return colorValue;
42
42
  }
43
- function setSegmentIndexColor(segmentationRepresentationUID, segmentIndex, color) {
44
- const colorReference = getSegmentIndexColor(segmentationRepresentationUID, segmentIndex);
43
+ function setSegmentIndexColor(viewportId, segmentationId, segmentIndex, color) {
44
+ const colorReference = getSegmentIndexColor(viewportId, segmentationId, segmentIndex);
45
45
  for (let i = 0; i < color.length; i++) {
46
46
  colorReference[i] = color[i];
47
47
  }
48
- triggerSegmentationRepresentationModified(segmentationRepresentationUID);
48
+ triggerSegmentationModified(segmentationId);
49
49
  }
50
50
  export { getSegmentIndexColor, addColorLUT, setColorLUT, setSegmentIndexColor };
@@ -1,7 +1,22 @@
1
- declare function setSegmentationRepresentationVisibility(viewportId: string, segmentationRepresentationUID: string, visibility: boolean): void;
2
- declare function getSegmentationRepresentationVisibility(viewportId: string, segmentationRepresentationUID: string): boolean | undefined;
3
- declare function setSegmentIndicesVisibility(viewport: string, segmentationRepresentationUID: string, segmentIndices: number[], visibility: boolean): void;
4
- declare function setSegmentIndexVisibility(viewportId: string, segmentationRepresentationUID: string, segmentIndex: number, visibility: boolean): void;
5
- declare function getSegmentIndexVisibility(viewportId: string, segmentationRepresentationUID: string, segmentIndex: number): boolean;
6
- declare function getHiddenSegmentIndices(viewportId: string, segmentationRepresentationUID: string): Set<number>;
7
- export { setSegmentationRepresentationVisibility, getSegmentationRepresentationVisibility, setSegmentIndicesVisibility, setSegmentIndexVisibility, getSegmentIndexVisibility, getHiddenSegmentIndices, };
1
+ import type { SegmentationRepresentations } from '../../../enums';
2
+ declare function setSegmentationRepresentationVisibility(viewportId: string, specifier: {
3
+ segmentationId: string;
4
+ type?: SegmentationRepresentations;
5
+ }, visibility: boolean): void;
6
+ declare function getSegmentationRepresentationVisibility(viewportId: string, specifier: {
7
+ segmentationId: string;
8
+ type: SegmentationRepresentations;
9
+ }): boolean | undefined;
10
+ declare function setSegmentIndexVisibility(viewportId: string, specifier: {
11
+ segmentationId: string;
12
+ type?: SegmentationRepresentations;
13
+ }, segmentIndex: number, visibility: boolean): void;
14
+ declare function getSegmentIndexVisibility(viewportId: string, specifier: {
15
+ segmentationId: string;
16
+ type: SegmentationRepresentations;
17
+ }, segmentIndex: number): boolean;
18
+ declare function getHiddenSegmentIndices(viewportId: string, specifier: {
19
+ segmentationId: string;
20
+ type: SegmentationRepresentations;
21
+ }): Set<number>;
22
+ export { setSegmentationRepresentationVisibility, getSegmentationRepresentationVisibility, setSegmentIndexVisibility, getSegmentIndexVisibility, getHiddenSegmentIndices, };
@@ -1,45 +1,45 @@
1
- import { getSegmentationRepresentation } from '../getSegmentationRepresentation';
2
- import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
1
+ import { getSegmentationRepresentation, getSegmentationRepresentations, } from '../getSegmentationRepresentation';
3
2
  import { setSegmentationRepresentationVisibility as _setSegmentationRepresentationVisibility } from '../setSegmentationRepresentationVisibility';
4
3
  import { getSegmentationRepresentationVisibility as _getSegmentationRepresentationVisibility } from '../getSegmentationRepresentationVisibility';
5
- import { getSegmentationRepresentationViewportStates } from '../getSegmentationRepresentationViewportStates';
6
- function setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility) {
7
- const representation = getSegmentationRepresentation(segmentationRepresentationUID);
8
- if (!representation) {
4
+ import { triggerSegmentationModified } from '../triggerSegmentationEvents';
5
+ function setSegmentationRepresentationVisibility(viewportId, specifier, visibility) {
6
+ const representations = getSegmentationRepresentations(viewportId, specifier);
7
+ if (!representations) {
9
8
  return;
10
9
  }
11
- _setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility);
12
- triggerSegmentationRepresentationModified(segmentationRepresentationUID);
10
+ representations.forEach((representation) => {
11
+ _setSegmentationRepresentationVisibility(viewportId, {
12
+ segmentationId: representation.segmentationId,
13
+ type: representation.type,
14
+ }, visibility);
15
+ });
16
+ triggerSegmentationModified(specifier.segmentationId);
13
17
  }
14
- function getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID) {
15
- return _getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID);
18
+ function getSegmentationRepresentationVisibility(viewportId, specifier) {
19
+ return _getSegmentationRepresentationVisibility(viewportId, specifier);
16
20
  }
17
- function setSegmentIndicesVisibility(viewport, segmentationRepresentationUID, segmentIndices, visibility) {
18
- const hiddenSegments = getHiddenSegmentIndices(viewport, segmentationRepresentationUID);
19
- segmentIndices.forEach((segmentIndex) => {
21
+ function setSegmentIndexVisibility(viewportId, specifier, segmentIndex, visibility) {
22
+ const representations = getSegmentationRepresentations(viewportId, specifier);
23
+ if (!representations) {
24
+ return;
25
+ }
26
+ representations.forEach((representation) => {
27
+ const hiddenSegments = representation.segmentsHidden ?? new Set();
20
28
  visibility
21
29
  ? hiddenSegments.delete(segmentIndex)
22
30
  : hiddenSegments.add(segmentIndex);
23
31
  });
24
- triggerSegmentationRepresentationModified(segmentationRepresentationUID);
25
- }
26
- function setSegmentIndexVisibility(viewportId, segmentationRepresentationUID, segmentIndex, visibility) {
27
- const hiddenSegments = getHiddenSegmentIndices(viewportId, segmentationRepresentationUID);
28
- visibility
29
- ? hiddenSegments.delete(segmentIndex)
30
- : hiddenSegments.add(segmentIndex);
31
- triggerSegmentationRepresentationModified(segmentationRepresentationUID);
32
+ triggerSegmentationModified(specifier.segmentationId);
32
33
  }
33
- function getSegmentIndexVisibility(viewportId, segmentationRepresentationUID, segmentIndex) {
34
- const hiddenSegments = getHiddenSegmentIndices(viewportId, segmentationRepresentationUID);
34
+ function getSegmentIndexVisibility(viewportId, specifier, segmentIndex) {
35
+ const hiddenSegments = getHiddenSegmentIndices(viewportId, specifier);
35
36
  return !hiddenSegments.has(segmentIndex);
36
37
  }
37
- function getHiddenSegmentIndices(viewportId, segmentationRepresentationUID) {
38
- const viewportRenderingState = getSegmentationRepresentationViewportStates(viewportId);
39
- if (!viewportRenderingState) {
38
+ function getHiddenSegmentIndices(viewportId, specifier) {
39
+ const representation = getSegmentationRepresentation(viewportId, specifier);
40
+ if (!representation) {
40
41
  return new Set();
41
42
  }
42
- return (viewportRenderingState[segmentationRepresentationUID]?.segmentsHidden ??
43
- new Set());
43
+ return representation.segmentsHidden ?? new Set();
44
44
  }
45
- export { setSegmentationRepresentationVisibility, getSegmentationRepresentationVisibility, setSegmentIndicesVisibility, setSegmentIndexVisibility, getSegmentIndexVisibility, getHiddenSegmentIndices, };
45
+ export { setSegmentationRepresentationVisibility, getSegmentationRepresentationVisibility, setSegmentIndexVisibility, getSegmentIndexVisibility, getHiddenSegmentIndices, };
@@ -0,0 +1,39 @@
1
+ import SegmentationRepresentations from '../../../enums/SegmentationRepresentations';
2
+ import type { ContourStyle } from '../../../types/ContourTypes';
3
+ import type { LabelmapStyle } from '../../../types/LabelmapTypes';
4
+ import type { SurfaceStyle } from '../../../types/SurfaceTypes';
5
+ import type { RepresentationStyle } from '../SegmentationStyle';
6
+ declare function getStyle(specifier: {
7
+ viewportId?: string;
8
+ segmentationId?: string;
9
+ type?: SegmentationRepresentations;
10
+ segmentIndex?: number;
11
+ }): {
12
+ style: RepresentationStyle;
13
+ renderInactiveSegmentations: boolean;
14
+ };
15
+ declare function getGlobalStyle(type: SegmentationRepresentations): RepresentationStyle;
16
+ declare function setGlobalStyle(type: SegmentationRepresentations, style: RepresentationStyle): void;
17
+ declare function setGlobalLabelmapStyle(style: LabelmapStyle): void;
18
+ declare function setGlobalContourStyle(style: ContourStyle): void;
19
+ declare function setGlobalSurfaceStyle(style: SurfaceStyle): void;
20
+ declare function setSegmentationSpecificStyle(specifier: {
21
+ segmentationId: string;
22
+ type: SegmentationRepresentations;
23
+ segmentIndex?: number;
24
+ }, style: RepresentationStyle): void;
25
+ declare function setLabelmapStyle(specifier: {
26
+ segmentationId: string;
27
+ }, style: LabelmapStyle): void;
28
+ declare function setViewportSpecificStyleForType(specifier: {
29
+ viewportId: string;
30
+ type: SegmentationRepresentations;
31
+ }, style: RepresentationStyle): void;
32
+ declare function setViewportSpecificStyleForSegmentation(specifier: {
33
+ viewportId: string;
34
+ segmentationId: string;
35
+ type: SegmentationRepresentations;
36
+ segmentIndex?: number;
37
+ }, style: RepresentationStyle): void;
38
+ declare function setViewportRenderInactiveSegmentations(viewportId: string, renderInactiveSegmentations: boolean): void;
39
+ export { getStyle, getGlobalStyle, setGlobalStyle, setGlobalLabelmapStyle, setGlobalContourStyle, setGlobalSurfaceStyle, setSegmentationSpecificStyle, setLabelmapStyle, setViewportSpecificStyleForType, setViewportSpecificStyleForSegmentation, setViewportRenderInactiveSegmentations, };
@@ -0,0 +1,48 @@
1
+ import SegmentationRepresentations from '../../../enums/SegmentationRepresentations';
2
+ import { triggerSegmentationRender } from '../SegmentationRenderingEngine';
3
+ import { segmentationStyle } from '../SegmentationStyle';
4
+ function getStyle(specifier) {
5
+ return segmentationStyle.getStyle(specifier);
6
+ }
7
+ function getGlobalStyle(type) {
8
+ return segmentationStyle.getGlobalStyle(type);
9
+ }
10
+ function setGlobalStyle(type, style) {
11
+ segmentationStyle.setGlobalStyle(type, style);
12
+ triggerSegmentationRender();
13
+ }
14
+ function setGlobalLabelmapStyle(style) {
15
+ segmentationStyle.setGlobalLabelmapStyle(style);
16
+ triggerSegmentationRender();
17
+ }
18
+ function setGlobalContourStyle(style) {
19
+ segmentationStyle.setGlobalContourStyle(style);
20
+ triggerSegmentationRender();
21
+ }
22
+ function setGlobalSurfaceStyle(style) {
23
+ segmentationStyle.setGlobalSurfaceStyle(style);
24
+ triggerSegmentationRender();
25
+ }
26
+ function setSegmentationSpecificStyle(specifier, style) {
27
+ segmentationStyle.setSegmentationSpecificStyle(specifier, style);
28
+ triggerSegmentationRender();
29
+ }
30
+ function setLabelmapStyle(specifier, style) {
31
+ setSegmentationSpecificStyle({
32
+ ...specifier,
33
+ type: SegmentationRepresentations.Labelmap,
34
+ }, style);
35
+ }
36
+ function setViewportSpecificStyleForType(specifier, style) {
37
+ segmentationStyle.setViewportSpecificStyleForType(specifier, style);
38
+ triggerSegmentationRender(specifier.viewportId);
39
+ }
40
+ function setViewportSpecificStyleForSegmentation(specifier, style) {
41
+ segmentationStyle.setViewportSpecificStyleForSegmentation(specifier, style);
42
+ triggerSegmentationRender(specifier.viewportId);
43
+ }
44
+ function setViewportRenderInactiveSegmentations(viewportId, renderInactiveSegmentations) {
45
+ segmentationStyle.setViewportRenderInactiveSegmentations(viewportId, renderInactiveSegmentations);
46
+ triggerSegmentationRender(viewportId);
47
+ }
48
+ export { getStyle, getGlobalStyle, setGlobalStyle, setGlobalLabelmapStyle, setGlobalContourStyle, setGlobalSurfaceStyle, setSegmentationSpecificStyle, setLabelmapStyle, setViewportSpecificStyleForType, setViewportSpecificStyleForSegmentation, setViewportRenderInactiveSegmentations, };
@@ -0,0 +1,2 @@
1
+ import type { Segmentation } from '../../types';
2
+ export declare function getActiveSegmentation(viewportId: string): Segmentation | undefined;
@@ -1,5 +1,5 @@
1
1
  import { defaultSegmentationStateManager } from './SegmentationStateManager';
2
- export function getGlobalConfig() {
2
+ export function getActiveSegmentation(viewportId) {
3
3
  const segmentationStateManager = defaultSegmentationStateManager;
4
- return segmentationStateManager.getGlobalConfig();
4
+ return segmentationStateManager.getActiveSegmentation(viewportId);
5
5
  }