@cornerstonejs/tools 1.36.3 → 1.37.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 (283) hide show
  1. package/dist/cjs/drawingSvg/drawEllipse.js +1 -1
  2. package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
  3. package/dist/cjs/drawingSvg/drawEllipseByCoordinates.js +2 -3
  4. package/dist/cjs/drawingSvg/drawEllipseByCoordinates.js.map +1 -1
  5. package/dist/cjs/enums/StrategyCallbacks.d.ts +13 -0
  6. package/dist/cjs/enums/StrategyCallbacks.js +17 -0
  7. package/dist/cjs/enums/StrategyCallbacks.js.map +1 -0
  8. package/dist/cjs/enums/index.d.ts +2 -1
  9. package/dist/cjs/enums/index.js +3 -1
  10. package/dist/cjs/enums/index.js.map +1 -1
  11. package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js +17 -7
  12. package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
  13. package/dist/cjs/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +4 -1
  14. package/dist/cjs/eventDispatchers/shared/getActiveToolForKeyboardEvent.js.map +1 -1
  15. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.d.ts +3 -0
  16. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +33 -0
  17. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js.map +1 -0
  18. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
  19. package/dist/cjs/stateManagement/segmentation/config/segmentationColor.js +8 -1
  20. package/dist/cjs/stateManagement/segmentation/config/segmentationColor.js.map +1 -1
  21. package/dist/cjs/tools/annotation/EllipticalROITool.js +1 -2
  22. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  23. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  24. package/dist/cjs/tools/base/BaseTool.d.ts +2 -0
  25. package/dist/cjs/tools/base/BaseTool.js +7 -1
  26. package/dist/cjs/tools/base/BaseTool.js.map +1 -1
  27. package/dist/cjs/tools/segmentation/BrushTool.d.ts +45 -3
  28. package/dist/cjs/tools/segmentation/BrushTool.js +197 -71
  29. package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
  30. package/dist/cjs/tools/segmentation/CircleScissorsTool.js +3 -1
  31. package/dist/cjs/tools/segmentation/CircleScissorsTool.js.map +1 -1
  32. package/dist/cjs/tools/segmentation/SphereScissorsTool.js +3 -0
  33. package/dist/cjs/tools/segmentation/SphereScissorsTool.js.map +1 -1
  34. package/dist/cjs/tools/segmentation/strategies/BrushStrategy.d.ts +87 -0
  35. package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js +137 -0
  36. package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js.map +1 -0
  37. package/dist/cjs/tools/segmentation/strategies/compositions/determineSegmentIndex.d.ts +6 -0
  38. package/dist/cjs/tools/segmentation/strategies/compositions/determineSegmentIndex.js +53 -0
  39. package/dist/cjs/tools/segmentation/strategies/compositions/determineSegmentIndex.js.map +1 -0
  40. package/dist/cjs/tools/segmentation/strategies/compositions/dynamicThreshold.d.ts +6 -0
  41. package/dist/cjs/tools/segmentation/strategies/compositions/dynamicThreshold.js +41 -0
  42. package/dist/cjs/tools/segmentation/strategies/compositions/dynamicThreshold.js.map +1 -0
  43. package/dist/cjs/tools/segmentation/strategies/compositions/erase.d.ts +5 -0
  44. package/dist/cjs/tools/segmentation/strategies/compositions/erase.js +12 -0
  45. package/dist/cjs/tools/segmentation/strategies/compositions/erase.js.map +1 -0
  46. package/dist/cjs/tools/segmentation/strategies/compositions/index.d.ts +35 -0
  47. package/dist/cjs/tools/segmentation/strategies/compositions/index.js +24 -0
  48. package/dist/cjs/tools/segmentation/strategies/compositions/index.js.map +1 -0
  49. package/dist/cjs/tools/segmentation/strategies/compositions/islandRemoval.d.ts +5 -0
  50. package/dist/cjs/tools/segmentation/strategies/compositions/islandRemoval.js +129 -0
  51. package/dist/cjs/tools/segmentation/strategies/compositions/islandRemoval.js.map +1 -0
  52. package/dist/cjs/tools/segmentation/strategies/compositions/preview.d.ts +8 -0
  53. package/dist/cjs/tools/segmentation/strategies/compositions/preview.js +84 -0
  54. package/dist/cjs/tools/segmentation/strategies/compositions/preview.js.map +1 -0
  55. package/dist/cjs/tools/segmentation/strategies/compositions/regionFill.d.ts +5 -0
  56. package/dist/cjs/tools/segmentation/strategies/compositions/regionFill.js +27 -0
  57. package/dist/cjs/tools/segmentation/strategies/compositions/regionFill.js.map +1 -0
  58. package/dist/cjs/tools/segmentation/strategies/compositions/setValue.d.ts +8 -0
  59. package/dist/cjs/tools/segmentation/strategies/compositions/setValue.js +33 -0
  60. package/dist/cjs/tools/segmentation/strategies/compositions/setValue.js.map +1 -0
  61. package/dist/cjs/tools/segmentation/strategies/compositions/threshold.d.ts +5 -0
  62. package/dist/cjs/tools/segmentation/strategies/compositions/threshold.js +24 -0
  63. package/dist/cjs/tools/segmentation/strategies/compositions/threshold.js.map +1 -0
  64. package/dist/cjs/tools/segmentation/strategies/eraseCircle.d.ts +2 -7
  65. package/dist/cjs/tools/segmentation/strategies/eraseCircle.js +7 -4
  66. package/dist/cjs/tools/segmentation/strategies/eraseCircle.js.map +1 -1
  67. package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -7
  68. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js +7 -6
  69. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  70. package/dist/cjs/tools/segmentation/strategies/fillCircle.d.ts +13 -8
  71. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +68 -90
  72. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  73. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +3 -9
  74. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  75. package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +6 -9
  76. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +53 -64
  77. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  78. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.d.ts +3 -0
  79. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js +6 -0
  80. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
  81. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +2 -2
  82. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +2 -2
  83. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
  84. package/dist/cjs/types/BoundsIJK.d.ts +1 -1
  85. package/dist/cjs/types/FloodFillTypes.d.ts +4 -4
  86. package/dist/cjs/types/LabelmapToolOperationData.d.ts +7 -2
  87. package/dist/cjs/types/index.d.ts +2 -1
  88. package/dist/cjs/utilities/math/ellipse/getCanvasEllipseCorners.d.ts +2 -3
  89. package/dist/cjs/utilities/math/ellipse/index.d.ts +2 -2
  90. package/dist/cjs/utilities/math/ellipse/index.js +26 -2
  91. package/dist/cjs/utilities/math/ellipse/index.js.map +1 -1
  92. package/dist/cjs/utilities/math/ellipse/pointInEllipse.d.ts +4 -1
  93. package/dist/cjs/utilities/math/ellipse/pointInEllipse.js +30 -17
  94. package/dist/cjs/utilities/math/ellipse/pointInEllipse.js.map +1 -1
  95. package/dist/cjs/utilities/math/sphere/pointInSphere.d.ts +1 -0
  96. package/dist/cjs/utilities/math/sphere/pointInSphere.js +2 -1
  97. package/dist/cjs/utilities/math/sphere/pointInSphere.js.map +1 -1
  98. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.d.ts +1 -1
  99. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.js +5 -5
  100. package/dist/cjs/utilities/segmentation/brushThresholdForToolGroup.js.map +1 -1
  101. package/dist/esm/drawingSvg/drawEllipse.js +1 -1
  102. package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
  103. package/dist/esm/drawingSvg/drawEllipseByCoordinates.js +2 -3
  104. package/dist/esm/drawingSvg/drawEllipseByCoordinates.js.map +1 -1
  105. package/dist/esm/enums/StrategyCallbacks.js +15 -0
  106. package/dist/esm/enums/StrategyCallbacks.js.map +1 -0
  107. package/dist/esm/enums/index.js +2 -1
  108. package/dist/esm/enums/index.js.map +1 -1
  109. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +17 -7
  110. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
  111. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +4 -1
  112. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js.map +1 -1
  113. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +29 -0
  114. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js.map +1 -0
  115. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
  116. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +8 -1
  117. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js.map +1 -1
  118. package/dist/esm/tools/annotation/EllipticalROITool.js +1 -2
  119. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  120. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  121. package/dist/esm/tools/base/BaseTool.js +5 -1
  122. package/dist/esm/tools/base/BaseTool.js.map +1 -1
  123. package/dist/esm/tools/segmentation/BrushTool.js +208 -87
  124. package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
  125. package/dist/esm/tools/segmentation/CircleScissorsTool.js +3 -0
  126. package/dist/esm/tools/segmentation/CircleScissorsTool.js.map +1 -1
  127. package/dist/esm/tools/segmentation/SphereScissorsTool.js +3 -0
  128. package/dist/esm/tools/segmentation/SphereScissorsTool.js.map +1 -1
  129. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +136 -0
  130. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js.map +1 -0
  131. package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js +48 -0
  132. package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js.map +1 -0
  133. package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +35 -0
  134. package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js.map +1 -0
  135. package/dist/esm/tools/segmentation/strategies/compositions/erase.js +7 -0
  136. package/dist/esm/tools/segmentation/strategies/compositions/erase.js.map +1 -0
  137. package/dist/esm/tools/segmentation/strategies/compositions/index.js +19 -0
  138. package/dist/esm/tools/segmentation/strategies/compositions/index.js.map +1 -0
  139. package/dist/esm/tools/segmentation/strategies/compositions/islandRemoval.js +124 -0
  140. package/dist/esm/tools/segmentation/strategies/compositions/islandRemoval.js.map +1 -0
  141. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +77 -0
  142. package/dist/esm/tools/segmentation/strategies/compositions/preview.js.map +1 -0
  143. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js +21 -0
  144. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js.map +1 -0
  145. package/dist/esm/tools/segmentation/strategies/compositions/setValue.js +28 -0
  146. package/dist/esm/tools/segmentation/strategies/compositions/setValue.js.map +1 -0
  147. package/dist/esm/tools/segmentation/strategies/compositions/threshold.js +19 -0
  148. package/dist/esm/tools/segmentation/strategies/compositions/threshold.js.map +1 -0
  149. package/dist/esm/tools/segmentation/strategies/eraseCircle.js +6 -8
  150. package/dist/esm/tools/segmentation/strategies/eraseCircle.js.map +1 -1
  151. package/dist/esm/tools/segmentation/strategies/eraseSphere.js +6 -7
  152. package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  153. package/dist/esm/tools/segmentation/strategies/fillCircle.js +64 -88
  154. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  155. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +3 -9
  156. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  157. package/dist/esm/tools/segmentation/strategies/fillSphere.js +53 -64
  158. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  159. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +7 -1
  160. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
  161. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +2 -2
  162. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
  163. package/dist/esm/utilities/math/ellipse/index.js +2 -2
  164. package/dist/esm/utilities/math/ellipse/index.js.map +1 -1
  165. package/dist/esm/utilities/math/ellipse/pointInEllipse.js +28 -16
  166. package/dist/esm/utilities/math/ellipse/pointInEllipse.js.map +1 -1
  167. package/dist/esm/utilities/math/sphere/pointInSphere.js +2 -1
  168. package/dist/esm/utilities/math/sphere/pointInSphere.js.map +1 -1
  169. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +11 -5
  170. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js.map +1 -1
  171. package/dist/types/drawingSvg/drawEllipseByCoordinates.d.ts.map +1 -1
  172. package/dist/types/enums/StrategyCallbacks.d.ts +14 -0
  173. package/dist/types/enums/StrategyCallbacks.d.ts.map +1 -0
  174. package/dist/types/enums/index.d.ts +2 -1
  175. package/dist/types/eventDispatchers/keyboardEventHandlers/keyDown.d.ts.map +1 -1
  176. package/dist/types/eventDispatchers/shared/getActiveToolForKeyboardEvent.d.ts.map +1 -1
  177. package/dist/types/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.d.ts +4 -0
  178. package/dist/types/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.d.ts.map +1 -0
  179. package/dist/types/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts.map +1 -1
  180. package/dist/types/stateManagement/segmentation/config/segmentationColor.d.ts.map +1 -1
  181. package/dist/types/tools/annotation/EllipticalROITool.d.ts.map +1 -1
  182. package/dist/types/tools/base/AnnotationTool.d.ts.map +1 -1
  183. package/dist/types/tools/base/BaseTool.d.ts +2 -0
  184. package/dist/types/tools/base/BaseTool.d.ts.map +1 -1
  185. package/dist/types/tools/segmentation/BrushTool.d.ts +45 -3
  186. package/dist/types/tools/segmentation/BrushTool.d.ts.map +1 -1
  187. package/dist/types/tools/segmentation/CircleScissorsTool.d.ts.map +1 -1
  188. package/dist/types/tools/segmentation/SphereScissorsTool.d.ts.map +1 -1
  189. package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts +88 -0
  190. package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts.map +1 -0
  191. package/dist/types/tools/segmentation/strategies/compositions/determineSegmentIndex.d.ts +7 -0
  192. package/dist/types/tools/segmentation/strategies/compositions/determineSegmentIndex.d.ts.map +1 -0
  193. package/dist/types/tools/segmentation/strategies/compositions/dynamicThreshold.d.ts +7 -0
  194. package/dist/types/tools/segmentation/strategies/compositions/dynamicThreshold.d.ts.map +1 -0
  195. package/dist/types/tools/segmentation/strategies/compositions/erase.d.ts +6 -0
  196. package/dist/types/tools/segmentation/strategies/compositions/erase.d.ts.map +1 -0
  197. package/dist/types/tools/segmentation/strategies/compositions/index.d.ts +36 -0
  198. package/dist/types/tools/segmentation/strategies/compositions/index.d.ts.map +1 -0
  199. package/dist/types/tools/segmentation/strategies/compositions/islandRemoval.d.ts +6 -0
  200. package/dist/types/tools/segmentation/strategies/compositions/islandRemoval.d.ts.map +1 -0
  201. package/dist/types/tools/segmentation/strategies/compositions/preview.d.ts +9 -0
  202. package/dist/types/tools/segmentation/strategies/compositions/preview.d.ts.map +1 -0
  203. package/dist/types/tools/segmentation/strategies/compositions/regionFill.d.ts +6 -0
  204. package/dist/types/tools/segmentation/strategies/compositions/regionFill.d.ts.map +1 -0
  205. package/dist/types/tools/segmentation/strategies/compositions/setValue.d.ts +9 -0
  206. package/dist/types/tools/segmentation/strategies/compositions/setValue.d.ts.map +1 -0
  207. package/dist/types/tools/segmentation/strategies/compositions/threshold.d.ts +6 -0
  208. package/dist/types/tools/segmentation/strategies/compositions/threshold.d.ts.map +1 -0
  209. package/dist/types/tools/segmentation/strategies/eraseCircle.d.ts +2 -7
  210. package/dist/types/tools/segmentation/strategies/eraseCircle.d.ts.map +1 -1
  211. package/dist/types/tools/segmentation/strategies/eraseSphere.d.ts +2 -7
  212. package/dist/types/tools/segmentation/strategies/eraseSphere.d.ts.map +1 -1
  213. package/dist/types/tools/segmentation/strategies/fillCircle.d.ts +13 -8
  214. package/dist/types/tools/segmentation/strategies/fillCircle.d.ts.map +1 -1
  215. package/dist/types/tools/segmentation/strategies/fillRectangle.d.ts.map +1 -1
  216. package/dist/types/tools/segmentation/strategies/fillSphere.d.ts +6 -9
  217. package/dist/types/tools/segmentation/strategies/fillSphere.d.ts.map +1 -1
  218. package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts +3 -0
  219. package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts.map +1 -1
  220. package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +2 -2
  221. package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts.map +1 -1
  222. package/dist/types/types/BoundsIJK.d.ts +1 -1
  223. package/dist/types/types/BoundsIJK.d.ts.map +1 -1
  224. package/dist/types/types/FloodFillTypes.d.ts +4 -4
  225. package/dist/types/types/FloodFillTypes.d.ts.map +1 -1
  226. package/dist/types/types/LabelmapToolOperationData.d.ts +7 -2
  227. package/dist/types/types/LabelmapToolOperationData.d.ts.map +1 -1
  228. package/dist/types/types/index.d.ts +2 -1
  229. package/dist/types/types/index.d.ts.map +1 -1
  230. package/dist/types/utilities/math/ellipse/getCanvasEllipseCorners.d.ts +2 -3
  231. package/dist/types/utilities/math/ellipse/getCanvasEllipseCorners.d.ts.map +1 -1
  232. package/dist/types/utilities/math/ellipse/index.d.ts +2 -2
  233. package/dist/types/utilities/math/ellipse/index.d.ts.map +1 -1
  234. package/dist/types/utilities/math/ellipse/pointInEllipse.d.ts +4 -1
  235. package/dist/types/utilities/math/ellipse/pointInEllipse.d.ts.map +1 -1
  236. package/dist/types/utilities/math/sphere/pointInSphere.d.ts +1 -0
  237. package/dist/types/utilities/math/sphere/pointInSphere.d.ts.map +1 -1
  238. package/dist/types/utilities/segmentation/brushThresholdForToolGroup.d.ts +1 -1
  239. package/dist/types/utilities/segmentation/brushThresholdForToolGroup.d.ts.map +1 -1
  240. package/dist/umd/index.js +1 -1
  241. package/dist/umd/index.js.map +1 -1
  242. package/package.json +3 -3
  243. package/src/drawingSvg/drawEllipse.ts +8 -8
  244. package/src/drawingSvg/drawEllipseByCoordinates.ts +4 -4
  245. package/src/enums/StrategyCallbacks.ts +52 -0
  246. package/src/enums/index.js +2 -0
  247. package/src/eventDispatchers/keyboardEventHandlers/keyDown.ts +22 -11
  248. package/src/eventDispatchers/shared/getActiveToolForKeyboardEvent.ts +6 -2
  249. package/src/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.ts +53 -0
  250. package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +0 -2
  251. package/src/stateManagement/segmentation/config/segmentationColor.ts +8 -1
  252. package/src/tools/annotation/EllipticalROITool.ts +1 -3
  253. package/src/tools/base/AnnotationTool.ts +0 -1
  254. package/src/tools/base/BaseTool.ts +32 -2
  255. package/src/tools/segmentation/BrushTool.ts +298 -68
  256. package/src/tools/segmentation/CircleScissorsTool.ts +3 -1
  257. package/src/tools/segmentation/SphereScissorsTool.ts +3 -0
  258. package/src/tools/segmentation/strategies/BrushStrategy.ts +364 -0
  259. package/src/tools/segmentation/strategies/compositions/determineSegmentIndex.ts +86 -0
  260. package/src/tools/segmentation/strategies/compositions/dynamicThreshold.ts +58 -0
  261. package/src/tools/segmentation/strategies/compositions/erase.ts +11 -0
  262. package/src/tools/segmentation/strategies/compositions/index.ts +19 -0
  263. package/src/tools/segmentation/strategies/compositions/islandRemoval.ts +179 -0
  264. package/src/tools/segmentation/strategies/compositions/preview.ts +138 -0
  265. package/src/tools/segmentation/strategies/compositions/regionFill.ts +45 -0
  266. package/src/tools/segmentation/strategies/compositions/setValue.ts +50 -0
  267. package/src/tools/segmentation/strategies/compositions/threshold.ts +35 -0
  268. package/src/tools/segmentation/strategies/eraseCircle.ts +10 -19
  269. package/src/tools/segmentation/strategies/eraseSphere.ts +10 -18
  270. package/src/tools/segmentation/strategies/fillCircle.ts +141 -164
  271. package/src/tools/segmentation/strategies/fillRectangle.ts +3 -13
  272. package/src/tools/segmentation/strategies/fillSphere.ts +105 -120
  273. package/src/tools/segmentation/strategies/utils/getStrategyData.ts +15 -1
  274. package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +5 -5
  275. package/src/types/BoundsIJK.ts +1 -1
  276. package/src/types/FloodFillTypes.ts +4 -4
  277. package/src/types/LabelmapToolOperationData.ts +20 -1
  278. package/src/types/index.ts +2 -0
  279. package/src/utilities/math/ellipse/getCanvasEllipseCorners.ts +2 -2
  280. package/src/utilities/math/ellipse/index.ts +2 -2
  281. package/src/utilities/math/ellipse/pointInEllipse.ts +52 -18
  282. package/src/utilities/math/sphere/pointInSphere.ts +10 -2
  283. package/src/utilities/segmentation/brushThresholdForToolGroup.ts +12 -5
@@ -29,113 +29,153 @@ class BrushTool extends base_1.BaseTool {
29
29
  THRESHOLD_INSIDE_SPHERE: fillSphere_1.thresholdInsideSphere,
30
30
  },
31
31
  strategySpecificConfiguration: {
32
- THRESHOLD_INSIDE_CIRCLE: {
32
+ THRESHOLD: {
33
33
  threshold: [-150, -70],
34
34
  },
35
35
  },
36
36
  defaultStrategy: 'FILL_INSIDE_CIRCLE',
37
37
  activeStrategy: 'FILL_INSIDE_CIRCLE',
38
38
  brushSize: 25,
39
+ preview: {
40
+ enabled: false,
41
+ previewColors: {},
42
+ previewTimeMs: 250,
43
+ previewMoveDistance: 8,
44
+ dragMoveDistance: 4,
45
+ dragTimeMs: 500,
46
+ },
47
+ centerRadius: 2,
48
+ actions: {
49
+ [enums_1.StrategyCallbacks.AcceptPreview]: {
50
+ method: enums_1.StrategyCallbacks.AcceptPreview,
51
+ bindings: [
52
+ {
53
+ key: 'Enter',
54
+ },
55
+ ],
56
+ },
57
+ [enums_1.StrategyCallbacks.RejectPreview]: {
58
+ method: enums_1.StrategyCallbacks.RejectPreview,
59
+ bindings: [
60
+ {
61
+ key: 'Escape',
62
+ },
63
+ ],
64
+ },
65
+ },
39
66
  },
40
67
  }) {
41
68
  super(toolProps, defaultToolProps);
42
- this.onSetToolPassive = () => {
69
+ this._previewData = {
70
+ preview: null,
71
+ element: null,
72
+ timerStart: 0,
73
+ timer: null,
74
+ startPoint: [NaN, NaN],
75
+ isDrag: false,
76
+ };
77
+ this.onSetToolPassive = (evt) => {
43
78
  this.disableCursor();
44
79
  };
45
80
  this.onSetToolEnabled = () => {
46
81
  this.disableCursor();
47
82
  };
48
- this.onSetToolDisabled = () => {
83
+ this.onSetToolDisabled = (evt) => {
49
84
  this.disableCursor();
50
85
  };
51
86
  this.preMouseDownCallback = (evt) => {
52
87
  const eventData = evt.detail;
53
88
  const { element } = eventData;
54
89
  const enabledElement = (0, core_1.getEnabledElement)(element);
55
- const { viewport, renderingEngine } = enabledElement;
56
- const toolGroupId = this.toolGroupId;
57
- const activeSegmentationRepresentation = segmentation_1.activeSegmentation.getActiveSegmentationRepresentation(toolGroupId);
58
- if (!activeSegmentationRepresentation) {
59
- throw new Error('No active segmentation detected, create one before using the brush tool');
60
- }
61
- const { segmentationId, type, segmentationRepresentationUID } = activeSegmentationRepresentation;
62
- if (type === enums_1.SegmentationRepresentations.Contour) {
63
- throw new Error('Not implemented yet');
64
- }
65
- const segmentsLocked = segmentation_1.segmentLocking.getLockedSegments(segmentationId);
66
- const { representationData } = segmentation_1.state.getSegmentation(segmentationId);
67
- const labelmapData = representationData[enums_1.SegmentationRepresentations.Labelmap];
68
- const viewportIdsToRender = [viewport.id];
69
- if ((0, stackVolumeCheck_1.isVolumeSegmentation)(labelmapData)) {
70
- const { volumeId } = representationData[type];
71
- const actors = viewport.getActors();
72
- const firstVolumeActorUID = actors[0].uid;
73
- this._editData = {
74
- volumeId,
75
- referencedVolumeId: firstVolumeActorUID,
76
- segmentsLocked,
77
- segmentationRepresentationUID,
78
- };
79
- }
80
- else {
81
- const { imageIdReferenceMap } = labelmapData;
82
- const currentImageId = viewport.getCurrentImageId();
83
- if (!imageIdReferenceMap.get(currentImageId)) {
84
- return;
85
- }
86
- if (this.configuration.activeStrategy.includes('SPHERE')) {
87
- console.warn('Sphere manipulation is not supported for this stack of images yet');
88
- return;
89
- }
90
- this._editData = {
91
- imageIdReferenceMap,
92
- segmentsLocked,
93
- segmentationRepresentationUID,
94
- };
95
- }
90
+ const { renderingEngine } = enabledElement;
91
+ this._editData = this.createEditData(element);
96
92
  this._activateDraw(element);
97
93
  (0, elementCursor_1.hideElementCursor)(element);
98
94
  evt.preventDefault();
99
- (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
95
+ this._previewData.isDrag = false;
96
+ this._previewData.timerStart = Date.now();
97
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, this._hoverData.viewportIdsToRender);
98
+ this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), enums_1.StrategyCallbacks.OnInteractionStart);
100
99
  return true;
101
100
  };
102
101
  this.mouseMoveCallback = (evt) => {
103
102
  if (this.mode === enums_1.ToolModes.Active) {
104
103
  this.updateCursor(evt);
104
+ if (!this.configuration.preview.enabled) {
105
+ return;
106
+ }
107
+ const { previewTimeMs, previewMoveDistance, dragMoveDistance } = this.configuration.preview;
108
+ const { currentPoints, element } = evt.detail;
109
+ const { canvas } = currentPoints;
110
+ const { preview, startPoint, timer, timerStart, isDrag } = this._previewData;
111
+ const delta = gl_matrix_1.vec2.distance(canvas, startPoint);
112
+ const time = Date.now() - timerStart;
113
+ if (delta > previewMoveDistance ||
114
+ (time > previewTimeMs && delta > dragMoveDistance)) {
115
+ if (timer) {
116
+ window.clearTimeout(timer);
117
+ this._previewData.timer = null;
118
+ }
119
+ if (preview && !isDrag) {
120
+ this.rejectPreview(element);
121
+ }
122
+ }
123
+ if (!this._previewData.timer) {
124
+ const timer = window.setTimeout(this.previewCallback, 250);
125
+ Object.assign(this._previewData, {
126
+ timerStart: Date.now(),
127
+ timer,
128
+ startPoint: canvas,
129
+ element,
130
+ });
131
+ }
132
+ }
133
+ };
134
+ this.previewCallback = () => {
135
+ if (this._previewData.preview) {
136
+ return;
105
137
  }
138
+ this._previewData.timer = null;
139
+ this._previewData.preview = this.applyActiveStrategyCallback((0, core_1.getEnabledElement)(this._previewData.element), this.getOperationData(this._previewData.element), enums_1.StrategyCallbacks.Preview);
106
140
  };
107
141
  this._dragCallback = (evt) => {
108
142
  const eventData = evt.detail;
109
- const { element } = eventData;
143
+ const { element, currentPoints } = eventData;
110
144
  const enabledElement = (0, core_1.getEnabledElement)(element);
111
145
  const { renderingEngine } = enabledElement;
112
146
  this.updateCursor(evt);
113
- const { segmentIndex, segmentationId, segmentationRepresentationUID, brushCursor, viewportIdsToRender, } = this._hoverData;
114
- const { data } = brushCursor;
115
- const { viewPlaneNormal, viewUp } = brushCursor.metadata;
147
+ const { viewportIdsToRender } = this._hoverData;
116
148
  (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
117
- const operationData = Object.assign(Object.assign({}, this._editData), { points: data.handles.points, segmentIndex,
118
- viewPlaneNormal, toolGroupId: this.toolGroupId, segmentationId,
119
- segmentationRepresentationUID,
120
- viewUp, strategySpecificConfiguration: this.configuration.strategySpecificConfiguration });
121
- this.applyActiveStrategy(enabledElement, operationData);
149
+ const delta = gl_matrix_1.vec2.distance(currentPoints.canvas, this._previewData.startPoint);
150
+ const { dragTimeMs, dragMoveDistance } = this.configuration.preview;
151
+ if (!this._previewData.isDrag &&
152
+ this._previewData.preview &&
153
+ Date.now() - this._previewData.timerStart < dragTimeMs &&
154
+ delta < dragMoveDistance) {
155
+ return;
156
+ }
157
+ this._previewData.preview = this.applyActiveStrategy(enabledElement, this.getOperationData());
158
+ this._previewData.element = element;
159
+ this._previewData.timerStart = Date.now() + dragTimeMs;
160
+ this._previewData.isDrag = true;
161
+ this._previewData.startPoint = currentPoints.canvas;
122
162
  };
123
163
  this._endCallback = (evt) => {
124
164
  const eventData = evt.detail;
125
165
  const { element } = eventData;
126
- const { segmentIndex, segmentationId, segmentationRepresentationUID, brushCursor, } = this._hoverData;
127
- const { data } = brushCursor;
128
- const { viewPlaneNormal, viewUp } = brushCursor.metadata;
166
+ const enabledElement = (0, core_1.getEnabledElement)(element);
167
+ const operationData = this.getOperationData(element);
168
+ if (!this._previewData.preview && !this._previewData.isDrag) {
169
+ this.applyActiveStrategy(enabledElement, operationData);
170
+ }
129
171
  this._deactivateDraw(element);
130
172
  (0, elementCursor_1.resetElementCursor)(element);
131
- const enabledElement = (0, core_1.getEnabledElement)(element);
132
173
  this.updateCursor(evt);
133
- const operationData = Object.assign(Object.assign({ points: data.handles.points }, this._editData), { segmentIndex,
134
- viewPlaneNormal, toolGroupId: this.toolGroupId, segmentationId,
135
- segmentationRepresentationUID,
136
- viewUp, strategySpecificConfiguration: this.configuration.strategySpecificConfiguration });
137
174
  this._editData = null;
138
- this.applyActiveStrategy(enabledElement, operationData);
175
+ this.applyActiveStrategyCallback(enabledElement, operationData, enums_1.StrategyCallbacks.OnInteractionEnd);
176
+ if (!this._previewData.isDrag) {
177
+ this.acceptPreview(element);
178
+ }
139
179
  };
140
180
  this._activateDraw = (element) => {
141
181
  element.addEventListener(enums_1.Events.MOUSE_UP, this._endCallback);
@@ -150,14 +190,55 @@ class BrushTool extends base_1.BaseTool {
150
190
  }
151
191
  disableCursor() {
152
192
  this._hoverData = undefined;
193
+ this.rejectPreview();
153
194
  }
154
- updateCursor(evt) {
155
- const eventData = evt.detail;
156
- const { element } = eventData;
157
- const { currentPoints } = eventData;
158
- const centerCanvas = currentPoints.canvas;
195
+ createEditData(element) {
159
196
  const enabledElement = (0, core_1.getEnabledElement)(element);
160
- const { renderingEngine, viewport } = enabledElement;
197
+ const { viewport, renderingEngine } = enabledElement;
198
+ const toolGroupId = this.toolGroupId;
199
+ const activeSegmentationRepresentation = segmentation_1.activeSegmentation.getActiveSegmentationRepresentation(toolGroupId);
200
+ if (!activeSegmentationRepresentation) {
201
+ throw new Error('No active segmentation detected, create one before using the brush tool');
202
+ }
203
+ const { segmentationId, type, segmentationRepresentationUID } = activeSegmentationRepresentation;
204
+ if (type === enums_1.SegmentationRepresentations.Contour) {
205
+ throw new Error('Not implemented yet');
206
+ }
207
+ const segmentsLocked = segmentation_1.segmentLocking.getLockedSegments(segmentationId);
208
+ const { representationData } = segmentation_1.state.getSegmentation(segmentationId);
209
+ const labelmapData = representationData[enums_1.SegmentationRepresentations.Labelmap];
210
+ const viewportIdsToRender = [viewport.id];
211
+ if ((0, stackVolumeCheck_1.isVolumeSegmentation)(labelmapData)) {
212
+ const { volumeId } = representationData[type];
213
+ const actors = viewport.getActors();
214
+ const firstVolumeActorUID = actors[0].uid;
215
+ return {
216
+ volumeId,
217
+ referencedVolumeId: firstVolumeActorUID,
218
+ segmentsLocked,
219
+ segmentationRepresentationUID,
220
+ };
221
+ }
222
+ else {
223
+ const { imageIdReferenceMap } = labelmapData;
224
+ const currentImageId = viewport.getCurrentImageId();
225
+ if (!imageIdReferenceMap.get(currentImageId)) {
226
+ return;
227
+ }
228
+ if (this.configuration.activeStrategy.includes('SPHERE')) {
229
+ console.warn('Sphere manipulation is not supported for this stack of images yet');
230
+ return;
231
+ }
232
+ return {
233
+ imageIdReferenceMap,
234
+ segmentsLocked,
235
+ segmentationRepresentationUID,
236
+ };
237
+ }
238
+ }
239
+ createHoverData(element, centerCanvas) {
240
+ const enabledElement = (0, core_1.getEnabledElement)(element);
241
+ const { viewport } = enabledElement;
161
242
  const camera = viewport.getCamera();
162
243
  const { viewPlaneNormal, viewUp } = camera;
163
244
  const toolGroupId = this.toolGroupId;
@@ -181,7 +262,7 @@ class BrushTool extends base_1.BaseTool {
181
262
  },
182
263
  data: {},
183
264
  };
184
- this._hoverData = {
265
+ return {
185
266
  brushCursor,
186
267
  centerCanvas,
187
268
  segmentIndex,
@@ -190,8 +271,28 @@ class BrushTool extends base_1.BaseTool {
190
271
  segmentColor,
191
272
  viewportIdsToRender,
192
273
  };
274
+ }
275
+ updateCursor(evt) {
276
+ const eventData = evt.detail;
277
+ const { element } = eventData;
278
+ const { currentPoints } = eventData;
279
+ const centerCanvas = currentPoints.canvas;
280
+ this._hoverData = this.createHoverData(element, centerCanvas);
193
281
  this._calculateCursor(element, centerCanvas);
194
- (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
282
+ (0, triggerAnnotationRenderForViewportIds_1.default)((0, core_1.getEnabledElement)(element).renderingEngine, this._hoverData.viewportIdsToRender);
283
+ }
284
+ getOperationData(element) {
285
+ var _a, _b;
286
+ const editData = this._editData || this.createEditData(element);
287
+ const { segmentIndex, segmentationId, segmentationRepresentationUID, brushCursor, } = this._hoverData || this.createHoverData(element);
288
+ const { data, metadata = {} } = brushCursor || {};
289
+ const { viewPlaneNormal, viewUp } = metadata;
290
+ const operationData = Object.assign(Object.assign({}, editData), { points: (_a = data === null || data === void 0 ? void 0 : data.handles) === null || _a === void 0 ? void 0 : _a.points, segmentIndex, previewColors: this.configuration.preview.enabled
291
+ ? this.configuration.preview.previewColors
292
+ : null, viewPlaneNormal, toolGroupId: this.toolGroupId, segmentationId,
293
+ segmentationRepresentationUID,
294
+ viewUp, strategySpecificConfiguration: this.configuration.strategySpecificConfiguration, preview: (_b = this._previewData) === null || _b === void 0 ? void 0 : _b.preview });
295
+ return operationData;
195
296
  }
196
297
  _calculateCursor(element, centerCanvas) {
197
298
  const enabledElement = (0, core_1.getEnabledElement)(element);
@@ -230,6 +331,24 @@ class BrushTool extends base_1.BaseTool {
230
331
  ];
231
332
  data.invalidated = false;
232
333
  }
334
+ rejectPreview(element = this._previewData.element) {
335
+ if (!element || !this._previewData.preview) {
336
+ return;
337
+ }
338
+ const enabledElement = (0, core_1.getEnabledElement)(element);
339
+ this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), enums_1.StrategyCallbacks.RejectPreview);
340
+ this._previewData.preview = null;
341
+ this._previewData.isDrag = false;
342
+ }
343
+ acceptPreview(element = this._previewData.element) {
344
+ if (!element) {
345
+ return;
346
+ }
347
+ const enabledElement = (0, core_1.getEnabledElement)(element);
348
+ this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), enums_1.StrategyCallbacks.AcceptPreview);
349
+ this._previewData.isDrag = false;
350
+ this._previewData.preview = null;
351
+ }
233
352
  invalidateBrushCursor() {
234
353
  if (this._hoverData !== undefined) {
235
354
  const { data } = this._hoverData.brushCursor;
@@ -272,6 +391,13 @@ class BrushTool extends base_1.BaseTool {
272
391
  (0, drawingSvg_1.drawCircle)(svgDrawingHelper, annotationUID, circleUID, center, radius, {
273
392
  color,
274
393
  });
394
+ const { centerRadius } = this.configuration;
395
+ if (centerRadius >= 0) {
396
+ const circleUID1 = '1';
397
+ (0, drawingSvg_1.drawCircle)(svgDrawingHelper, annotationUID, circleUID1, center, 2, {
398
+ color,
399
+ });
400
+ }
275
401
  }
276
402
  }
277
403
  BrushTool.toolName = 'Brush';
@@ -1 +1 @@
1
- {"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAA8E;AAC9E,yCAAiC;AASjC,kCAAmC;AACnC,wDAGiC;AACjC,0DAA6D;AAC7D,wDAGiC;AACjC,0DAA6D;AAC7D,uCAA6E;AAC7E,iDAA+D;AAC/D,+DAGqC;AAErC,kIAA2G;AAC3G,qEAM4C;AAK5C,0EAA2E;AAK3E,MAAM,SAAU,SAAQ,eAAQ;IAmB9B,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,kBAAkB,EAAE,6BAAgB;gBACpC,mBAAmB,EAAE,+BAAiB;gBACtC,kBAAkB,EAAE,6BAAgB;gBACpC,mBAAmB,EAAE,+BAAiB;gBACtC,uBAAuB,EAAE,kCAAqB;gBAC9C,uBAAuB,EAAE,kCAAqB;aAC/C;YACD,6BAA6B,EAAE;gBAC7B,uBAAuB,EAAE;oBACvB,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;iBACvB;aACF;YACD,eAAe,EAAE,oBAAoB;YACrC,cAAc,EAAE,oBAAoB;YACpC,SAAS,EAAE,EAAE;SACd;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAGrC,qBAAgB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC;QAMF,yBAAoB,GAAG,CACrB,GAA0C,EACjC,EAAE;YACX,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAE9B,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAErD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAErC,MAAM,gCAAgC,GACpC,iCAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,gCAAgC,EAAE;gBACrC,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;aACH;YAED,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAC3D,gCAAgC,CAAC;YAEnC,IAAI,IAAI,KAAK,mCAA2B,CAAC,OAAO,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;aACxC;YAED,MAAM,cAAc,GAAG,6BAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAExE,MAAM,EAAE,kBAAkB,EAAE,GAC1B,oBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAEpD,MAAM,YAAY,GAChB,kBAAkB,CAAC,mCAA2B,CAAC,QAAQ,CAAC,CAAC;YAE3D,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE1C,IAAI,IAAA,uCAAoB,EAAC,YAAY,CAAC,EAAE;gBACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CACrC,IAAI,CAC6B,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAIpC,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAE1C,IAAI,CAAC,SAAS,GAAG;oBACf,QAAQ;oBACR,kBAAkB,EAAE,mBAAmB;oBACvC,cAAc;oBACd,6BAA6B;iBAC9B,CAAC;aACH;iBAAM;gBACL,MAAM,EAAE,mBAAmB,EAAE,GAC3B,YAA6C,CAAC;gBAEhD,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAEpD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBAG5C,OAAO;iBACR;gBAQD,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACxD,OAAO,CAAC,IAAI,CACV,mEAAmE,CACpE,CAAC;oBACF,OAAO;iBASR;gBAED,IAAI,CAAC,SAAS,GAAG;oBACf,mBAAmB;oBACnB,cAAc;oBACd,6BAA6B;iBAC9B,CAAC;aACH;YAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;YAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;YAErB,IAAA,+CAAsC,EACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,sBAAiB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACjE,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAS,CAAC,MAAM,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACxB;QACH,CAAC,CAAC;QAqEM,kBAAa,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACrE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAC9B,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAE3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEvB,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,WAAW,EACX,mBAAmB,GACpB,GAAG,IAAI,CAAC,UAAU,CAAC;YAEpB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;YAC7B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEzD,IAAA,+CAAsC,EACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;YAEF,MAAM,aAAa,mCACd,IAAI,CAAC,SAAS,KACjB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAC3B,YAAY;gBACZ,eAAe,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,cAAc;gBACd,6BAA6B;gBAC7B,MAAM,EACN,6BAA6B,EAC3B,IAAI,CAAC,aAAa,CAAC,6BAA6B,GACnD,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QA4DM,iBAAY,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACpE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;YAE9B,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,WAAW,GACZ,GAAG,IAAI,CAAC,UAAU,CAAC;YAEpB,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;YAC7B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;YAEzD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAElD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEvB,MAAM,aAAa,iCACjB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IACxB,IAAI,CAAC,SAAS,KACjB,YAAY;gBACZ,eAAe,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,cAAc;gBACd,6BAA6B;gBAC7B,MAAM,EACN,6BAA6B,EAC3B,IAAI,CAAC,aAAa,CAAC,6BAA6B,GACnD,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QAKM,kBAAa,GAAG,CAAC,OAAuB,EAAQ,EAAE;YACxD,OAAO,CAAC,gBAAgB,CACtB,cAAM,CAAC,QAAQ,EACf,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,cAAM,CAAC,UAAU,EACjB,IAAI,CAAC,aAA8B,CACpC,CAAC;YACF,OAAO,CAAC,gBAAgB,CACtB,cAAM,CAAC,WAAW,EAClB,IAAI,CAAC,YAA6B,CACnC,CAAC;QACJ,CAAC,CAAC;QAKM,oBAAe,GAAG,CAAC,OAAuB,EAAQ,EAAE;YAC1D,OAAO,CAAC,mBAAmB,CACzB,cAAM,CAAC,QAAQ,EACf,IAAI,CAAC,YAA6B,CACnC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,cAAM,CAAC,UAAU,EACjB,IAAI,CAAC,aAA8B,CACpC,CAAC;YACF,OAAO,CAAC,mBAAmB,CACzB,cAAM,CAAC,WAAW,EAClB,IAAI,CAAC,YAA6B,CACnC,CAAC;QACJ,CAAC,CAAC;IAjXF,CAAC;IAcO,aAAa;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAkHO,YAAY,CAAC,GAAoC;QACvD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QACpC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAErD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,MAAM,gCAAgC,GACpC,iCAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,gCAAgC,EAAE;YACrC,OAAO,CAAC,IAAI,CACV,yEAAyE,CAC1E,CAAC;YACF,OAAO;SACR;QAED,MAAM,EAAE,6BAA6B,EAAE,cAAc,EAAE,GACrD,gCAAgC,CAAC;QACnC,MAAM,YAAY,GAChB,2BAAsB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,qBAAkB,CAAC,KAAK,CAAC,uBAAuB,CACnE,WAAW,EACX,6BAA6B,EAC7B,YAAY,CACb,CAAC;QAEF,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAI1C,MAAM,WAAW,GAAG;YAClB,QAAQ,EAAE;gBACR,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;gBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;gBACjC,mBAAmB,EAAE,QAAQ,CAAC,sBAAsB,EAAE;gBACtD,iBAAiB,EAAE,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,YAAY;aACb;YACD,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG;YAChB,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,6BAA6B;YAC7B,YAAY;YACZ,mBAAmB;SACpB,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE7C,IAAA,+CAAsC,EACpC,eAAe,EACf,mBAAmB,CACpB,CAAC;IACJ,CAAC;IA0CO,gBAAgB,CAAC,OAAO,EAAE,YAAY;QAC5C,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,MAAM,MAAM,GAAG,gBAAI,CAAC,UAAU,CAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAChB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAChB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACjB,CAAC;QACF,MAAM,eAAe,GAAG,gBAAI,CAAC,UAAU,CACrC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,CAAC;QACF,MAAM,SAAS,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QAEhC,gBAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAI/C,MAAM,mBAAmB,GAAiB,aAAa,CAAC;YACtD,YAAY,CAAC,CAAC,CAAC;YACf,YAAY,CAAC,CAAC,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,gBAAI,CAAC,MAAM,EAAE,CAAC;QAGzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YACxE,gBAAgB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YACrE,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YACzE,kBAAkB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SAC3E;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,kBAAkB;SACnB,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IA8EM,qBAAqB;QAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAE7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,gBAAgB,CACd,cAAqC,EACrC,gBAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO;SACR;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAEhE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAC9C,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAEhD,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YACzC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YACzC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAI7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAC9C;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC;QAElD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG;YACb,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACrC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1E,MAAM,KAAK,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAG9D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO;SACR;QAED,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,IAAA,uBAAa,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,MAAsB,EACtB,MAAM,EACN;YACE,KAAK;SACN,CACF,CAAC;IACJ,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC7B,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const core_1 = require("@cornerstonejs/core");
7
7
  const base_1 = require("../base");
8
8
  const fillCircle_1 = require("./strategies/fillCircle");
9
+ const eraseCircle_1 = require("./strategies/eraseCircle");
9
10
  const enums_1 = require("../../enums");
10
11
  const drawingSvg_1 = require("../../drawingSvg");
11
12
  const elementCursor_1 = require("../../cursors/elementCursor");
@@ -19,6 +20,7 @@ class CircleScissorsTool extends base_1.BaseTool {
19
20
  configuration: {
20
21
  strategies: {
21
22
  FILL_INSIDE: fillCircle_1.fillInsideCircle,
23
+ ERASE_INSIDE: eraseCircle_1.eraseInsideCircle,
22
24
  },
23
25
  defaultStrategy: 'FILL_INSIDE',
24
26
  activeStrategy: 'FILL_INSIDE',
@@ -150,7 +152,7 @@ class CircleScissorsTool extends base_1.BaseTool {
150
152
  (0, elementCursor_1.resetElementCursor)(element);
151
153
  const enabledElement = (0, core_1.getEnabledElement)(element);
152
154
  const operationData = Object.assign(Object.assign({}, this.editData), { points: data.handles.points, viewPlaneNormal,
153
- viewUp });
155
+ viewUp, strategySpecificConfiguration: {} });
154
156
  this.editData = null;
155
157
  this.isDrawing = false;
156
158
  this.applyActiveStrategy(enabledElement, operationData);
@@ -1 +1 @@
1
- {"version":3,"file":"CircleScissorsTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/CircleScissorsTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAA+D;AAG/D,kCAAmC;AAQnC,wDAA2D;AAC3D,uCAAqC;AACrC,iDAA+D;AAC/D,+DAGqC;AAErC,kIAA0G;AAC1G,qEAK4C;AAC5C,4FAAuF;AAMvF,0EAA2E;AAS3E,MAAM,kBAAmB,SAAQ,eAAQ;IAuBvC,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,WAAW,EAAE,6BAAgB;aAE9B;YACD,eAAe,EAAE,aAAa;YAC9B,cAAc,EAAE,aAAa;SAC9B;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAWrC,yBAAoB,GAAG,CAAC,GAAoC,EAAW,EAAE;YACvE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;YAEvC,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAErC,MAAM,gCAAgC,GACpC,iCAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,gCAAgC,EAAE;gBACrC,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;aACH;YAED,MAAM,EAAE,6BAA6B,EAAE,cAAc,EAAE,IAAI,EAAE,GAC3D,gCAAgC,CAAC;YACnC,MAAM,YAAY,GAChB,2BAAsB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,6BAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAExE,MAAM,YAAY,GAAG,qBAAkB,CAAC,KAAK,CAAC,uBAAuB,CACnE,WAAW,EACX,6BAA6B,EAC7B,YAAY,CACb,CAAC;YAEF,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,mCAAe,EAAC,cAAc,CAAC,CAAC;YAG/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;aACH;YAGD,MAAM,UAAU,GAAG;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE;oBACR,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;oBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;oBACjC,mBAAmB,EAAE,QAAQ,CAAC,sBAAsB,EAAE;oBACtD,iBAAiB,EAAE,EAAE;oBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC5B,YAAY;iBACb;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;wBACpE,iBAAiB,EAAE,IAAI;qBACxB;oBACD,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,EAAE;iBAChB;aACF,CAAC;YAEF,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,GAAG;gBACd,UAAU;gBACV,YAAY,EAAE,SAAS;gBACvB,YAAY;gBACZ,cAAc;gBACd,cAAc;gBACd,YAAY;gBACZ,mBAAmB;gBACnB,WAAW,EAAE,CAAC;gBACd,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,KAAK;gBACf,6BAA6B;aACvB,CAAC;YAET,IAAI,IAAA,uCAAoB,EAAC,YAAwC,CAAC,EAAE;gBAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAA8C,CAAC;gBACpE,MAAM,YAAY,GAAG,YAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAE/C,IAAI,CAAC,QAAQ,mCACR,IAAI,CAAC,QAAQ,KAChB,QAAQ,EACR,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,GACpD,CAAC;aACH;iBAAM;gBACL,MAAM,EAAE,mBAAmB,EAAE,GAC3B,YAA6C,CAAC;gBAEhD,IAAI,CAAC,QAAQ,mCACR,IAAI,CAAC,QAAQ,KAChB,mBAAmB,GACpB,CAAC;aACH;YAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;YAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;YAErB,IAAA,+CAAqC,EAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,GAAoC,EAAE,EAAE;YACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;YACtC,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;YACjD,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACrD,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;YAGnC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAI5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAiB;gBACjC,YAAY,CAAC,CAAC,CAAC;gBACf,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;aACzB,CAAC;YACF,MAAM,SAAS,GAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAiB;gBAC/B,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;gBACxB,YAAY,CAAC,CAAC,CAAC;aAChB,CAAC;YACF,MAAM,WAAW,GAAiB;gBAChC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;gBACxB,YAAY,CAAC,CAAC,CAAC;aAChB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;gBACpB,aAAa,CAAC,YAAY,CAAC;gBAC3B,aAAa,CAAC,SAAS,CAAC;gBACxB,aAAa,CAAC,UAAU,CAAC;gBACzB,aAAa,CAAC,WAAW,CAAC;aAC3B,CAAC;YAEF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAE9B,IAAA,+CAAqC,EAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,GAAoC,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;YAExD,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE;gBAC9B,OAAO;aACR;YAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAEtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAElD,MAAM,aAAa,mCACd,IAAI,CAAC,QAAQ,KAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAC3B,eAAe;gBACf,MAAM,GACP,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QAKF,kBAAa,GAAG,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC,CAAC;QAKF,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YAC5B,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC,CAAC;QAUF,qBAAgB,GAAG,CACjB,cAAqC,EACrC,gBAAkC,EACzB,EAAE;YACX,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE9C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBAC9C,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAGrC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;YACzC,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YAE/C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG;gBACb,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1E,MAAM,KAAK,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YAG9D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACpD,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAA,uBAAa,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,MAAsB,EACtB,MAAM,EACN;gBACE,KAAK;aACN,CACF,CAAC;YAEF,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;IA1SF,CAAC;CA2SF;AAED,kBAAkB,CAAC,QAAQ,GAAG,eAAe,CAAC;AAC9C,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"CircleScissorsTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/CircleScissorsTool.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const core_1 = require("@cornerstonejs/core");
7
7
  const base_1 = require("../base");
8
8
  const fillSphere_1 = require("./strategies/fillSphere");
9
+ const eraseSphere_1 = require("./strategies/eraseSphere");
9
10
  const enums_1 = require("../../enums");
10
11
  const drawingSvg_1 = require("../../drawingSvg");
11
12
  const elementCursor_1 = require("../../cursors/elementCursor");
@@ -19,6 +20,7 @@ class SphereScissorsTool extends base_1.BaseTool {
19
20
  configuration: {
20
21
  strategies: {
21
22
  FILL_INSIDE: fillSphere_1.fillInsideSphere,
23
+ ERASE_INSIDE: eraseSphere_1.eraseInsideSphere,
22
24
  },
23
25
  defaultStrategy: 'FILL_INSIDE',
24
26
  activeStrategy: 'FILL_INSIDE',
@@ -70,6 +72,7 @@ class SphereScissorsTool extends base_1.BaseTool {
70
72
  centerCanvas: canvasPos,
71
73
  segmentationRepresentationUID,
72
74
  segmentIndex,
75
+ segmentationId,
73
76
  segmentsLocked,
74
77
  segmentColor,
75
78
  toolGroupId,
@@ -1 +1 @@
1
- {"version":3,"file":"SphereScissorsTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/SphereScissorsTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SphereScissorsTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/SphereScissorsTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAA+D;AAG/D,kCAAmC;AAQnC,wDAA2D;AAC3D,0DAA6D;AAC7D,uCAAkE;AAClE,iDAA+D;AAC/D,+DAGqC;AAErC,kIAA0G;AAC1G,qEAK4C;AAE5C,4FAAuF;AAMvF,0EAA2E;AAS3E,MAAM,kBAAmB,SAAQ,eAAQ;IAwBvC,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,WAAW,EAAE,6BAAgB;gBAC7B,YAAY,EAAE,+BAAiB;aAChC;YACD,eAAe,EAAE,aAAa;YAC9B,cAAc,EAAE,aAAa;SAC9B;KACF;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAWrC,yBAAoB,GAAG,CAAC,GAAoC,EAAQ,EAAE;YACpE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC;YAEvC,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC;YAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAErC,MAAM,gCAAgC,GACpC,iCAAkB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,gCAAgC,EAAE;gBACrC,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;aACH;YAED,MAAM,EAAE,6BAA6B,EAAE,cAAc,EAAE,GACrD,gCAAgC,CAAC;YACnC,MAAM,YAAY,GAChB,2BAAsB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,6BAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAExE,MAAM,YAAY,GAAG,qBAAkB,CAAC,KAAK,CAAC,uBAAuB,CACnE,WAAW,EACX,6BAA6B,EAC7B,YAAY,CACb,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAGtB,MAAM,UAAU,GAAG;gBACjB,QAAQ,EAAE;oBACR,eAAe,EAAgB,CAAC,GAAG,eAAe,CAAC;oBACnD,MAAM,EAAgB,CAAC,GAAG,MAAM,CAAC;oBACjC,mBAAmB,EAAE,QAAQ,CAAC,sBAAsB,EAAE;oBACtD,iBAAiB,EAAE,EAAE;oBACrB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC5B,YAAY;iBACb;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;wBACpE,iBAAiB,EAAE,IAAI;qBACxB;oBACD,WAAW,EAAE,EAAE;oBACf,WAAW,EAAE,IAAI;iBAClB;aACF,CAAC;YAEF,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,GAAG;gBACd,UAAU;gBACV,YAAY,EAAE,SAAS;gBACvB,6BAA6B;gBAC7B,YAAY;gBACZ,cAAc;gBACd,cAAc;gBACd,YAAY;gBACZ,WAAW;gBACX,mBAAmB;gBACnB,WAAW,EAAE,CAAC;gBACd,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,KAAK;aACT,CAAC;YAET,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,mCAAe,EAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,YAAY,GAChB,kBAAkB,CAAC,mCAA2B,CAAC,QAAQ,CAAC,CAAC;YAE3D,IAAI,IAAA,uCAAoB,EAAC,YAAwC,CAAC,EAAE;gBAClE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAA8C,CAAC;gBACpE,MAAM,YAAY,GAAG,YAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAE/C,IAAI,CAAC,QAAQ,mCACR,IAAI,CAAC,QAAQ,KAChB,QAAQ,EACR,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,GACpD,CAAC;aACH;iBAAM;gBACL,MAAM,EAAE,mBAAmB,EAAE,GAC3B,YAA6C,CAAC;gBAEhD,IAAI,CAAC,QAAQ,mCACR,IAAI,CAAC,QAAQ,KAChB,mBAAmB,GACpB,CAAC;aACH;YAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;YAE3B,GAAG,CAAC,cAAc,EAAE,CAAC;YAErB,IAAA,+CAAqC,EAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAE5E,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,GAAoC,EAAE,EAAE;YACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAChC,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;YACtC,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;YACjD,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACrD,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;YAGnC,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACxE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAE5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAiB;gBACjC,YAAY,CAAC,CAAC,CAAC;gBACf,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;aACzB,CAAC;YACF,MAAM,SAAS,GAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAiB;gBAC/B,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;gBACxB,YAAY,CAAC,CAAC,CAAC;aAChB,CAAC;YACF,MAAM,WAAW,GAAiB;gBAChC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM;gBACxB,YAAY,CAAC,CAAC,CAAC;aAChB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;gBACpB,aAAa,CAAC,YAAY,CAAC;gBAC3B,aAAa,CAAC,SAAS,CAAC;gBACxB,aAAa,CAAC,UAAU,CAAC;gBACzB,aAAa,CAAC,WAAW,CAAC;aAC3B,CAAC;YAEF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAE9B,IAAA,+CAAqC,EAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAC9E,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,GAAoC,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;YAEhC,MAAM,EACJ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,6BAA6B,EAC7B,cAAc,GACf,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;YAExD,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE;gBAC9B,OAAO;aACR;YACD,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAEtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAA,kCAAkB,EAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;YAElD,MAAM,aAAa,mCACd,IAAI,CAAC,QAAQ,KAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAC3B,YAAY;gBACZ,6BAA6B;gBAC7B,cAAc;gBACd,eAAe;gBACf,MAAM,GACP,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC;QAKF,kBAAa,GAAG,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,CAAC,gBAAgB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,CAAC,CAAC;QAKF,oBAAe,GAAG,CAAC,OAAO,EAAE,EAAE;YAC5B,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,CAAC,cAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC,CAAC;QAUF,qBAAgB,GAAG,CACjB,cAAqC,EACrC,gBAAkC,EACzB,EAAE;YACX,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;YACpC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE9C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBAC9C,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAGrC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;YACzC,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YAE/C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG;gBACb,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE1E,MAAM,KAAK,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YAG9D,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACpD,OAAO,YAAY,CAAC;aACrB;YAED,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAA,uBAAa,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,MAAsB,EACtB,MAAM,EACN;gBACE,KAAK;aACN,CACF,CAAC;YAEF,YAAY,GAAG,IAAI,CAAC;YAEpB,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;IA9SF,CAAC;CA+SF;AAED,kBAAkB,CAAC,QAAQ,GAAG,eAAe,CAAC;AAC9C,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ import { utilities as csUtils } from '@cornerstonejs/core';
3
+ import { StrategyCallbacks } from '../../../enums';
4
+ import type { LabelmapToolOperationDataAny } from '../../../types/LabelmapToolOperationData';
5
+ export declare type InitializedOperationData = LabelmapToolOperationDataAny & {
6
+ enabledElement: Types.IEnabledElement;
7
+ centerIJK?: Types.Point3;
8
+ centerWorld: Types.Point3;
9
+ viewport: Types.IViewport;
10
+ imageVoxelManager: csUtils.VoxelManager<number>;
11
+ segmentationVoxelManager: csUtils.VoxelManager<number>;
12
+ segmentationImageData: ImageData;
13
+ previewVoxelManager: csUtils.VoxelManager<number>;
14
+ previewSegmentIndex?: number;
15
+ brushStrategy: BrushStrategy;
16
+ };
17
+ export declare type StrategyFunction = (operationData: InitializedOperationData, ...args: any[]) => unknown;
18
+ export declare type CompositionInstance = {
19
+ [callback in StrategyCallbacks]?: StrategyFunction;
20
+ };
21
+ export declare type CompositionFunction = () => CompositionInstance;
22
+ export declare type Composition = CompositionFunction | CompositionInstance;
23
+ export default class BrushStrategy {
24
+ static COMPOSITIONS: {
25
+ determineSegmentIndex: {
26
+ initialize: (operationData: InitializedOperationData) => void;
27
+ onInteractionStart: (operationData: InitializedOperationData) => void;
28
+ };
29
+ dynamicThreshold: {
30
+ initialize: (operationData: InitializedOperationData) => void;
31
+ onInteractionStart: (operationData: InitializedOperationData) => void;
32
+ };
33
+ erase: {
34
+ initialize: (operationData: InitializedOperationData) => void;
35
+ };
36
+ islandRemoval: {
37
+ onInteractionEnd: (operationData: InitializedOperationData) => void;
38
+ };
39
+ preview: {
40
+ preview: (operationData: InitializedOperationData) => any;
41
+ initialize: (operationData: InitializedOperationData) => void;
42
+ acceptPreview: (operationData: InitializedOperationData) => void;
43
+ rejectPreview: (operationData: InitializedOperationData) => void;
44
+ };
45
+ regionFill: {
46
+ fill: (operationData: InitializedOperationData) => void;
47
+ };
48
+ setValue: {
49
+ setValue: (operationData: InitializedOperationData, { value, index }: {
50
+ value: any;
51
+ index: any;
52
+ }) => void;
53
+ };
54
+ threshold: {
55
+ createIsInThreshold: (operationData: InitializedOperationData) => (index: any) => boolean;
56
+ };
57
+ };
58
+ protected static childFunctions: {
59
+ onInteractionStart: (brushStrategy: any, func: any) => void;
60
+ onInteractionEnd: (brushStrategy: any, func: any) => void;
61
+ fill: (brushStrategy: any, func: any) => void;
62
+ initialize: (brushStrategy: any, func: any) => void;
63
+ createIsInThreshold: (brushStrategy: any, func: any) => void;
64
+ acceptPreview: (brushStrategy: any, func: any) => void;
65
+ rejectPreview: (brushStrategy: any, func: any) => void;
66
+ setValue: (brushStrategy: any, func: any) => void;
67
+ preview: (brushStrategy: any, func: any) => void;
68
+ compositions: any;
69
+ };
70
+ compositions: Composition[];
71
+ strategyFunction: (enabledElement: any, operationData: any) => unknown;
72
+ protected configurationName: string;
73
+ protected _initialize: any[];
74
+ protected _fill: any[];
75
+ protected _acceptPreview: [];
76
+ protected _onInteractionStart: any[];
77
+ constructor(name: any, ...initializers: Composition[]);
78
+ fill: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => any;
79
+ protected initialize(enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny): InitializedOperationData;
80
+ onInteractionStart: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
81
+ onInteractionEnd: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
82
+ rejectPreview: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
83
+ acceptPreview: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
84
+ preview: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => unknown;
85
+ setValue: (operationData: InitializedOperationData, data: any) => void;
86
+ createIsInThreshold: (operationData: InitializedOperationData) => any;
87
+ }