@cornerstonejs/tools 1.51.5 → 1.53.0

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 (339) hide show
  1. package/dist/cjs/drawingSvg/drawPath.d.ts +11 -0
  2. package/dist/cjs/drawingSvg/drawPath.js +55 -0
  3. package/dist/cjs/drawingSvg/drawPath.js.map +1 -0
  4. package/dist/cjs/drawingSvg/drawPolyline.d.ts +1 -1
  5. package/dist/cjs/drawingSvg/drawPolyline.js +3 -11
  6. package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
  7. package/dist/cjs/drawingSvg/index.d.ts +2 -1
  8. package/dist/cjs/drawingSvg/index.js +3 -1
  9. package/dist/cjs/drawingSvg/index.js.map +1 -1
  10. package/dist/cjs/enums/ChangeTypes.d.ts +2 -1
  11. package/dist/cjs/enums/ChangeTypes.js +1 -0
  12. package/dist/cjs/enums/ChangeTypes.js.map +1 -1
  13. package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js +1 -1
  14. package/dist/cjs/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
  15. package/dist/cjs/eventDispatchers/shared/getActiveToolForMouseEvent.js.map +1 -1
  16. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +1 -1
  17. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +165 -78
  18. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
  19. package/dist/cjs/stateManagement/annotation/annotationState.d.ts +6 -1
  20. package/dist/cjs/stateManagement/annotation/annotationState.js +49 -1
  21. package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
  22. package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -2
  23. package/dist/cjs/stateManagement/annotation/helpers/state.js +16 -4
  24. package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -1
  25. package/dist/cjs/stateManagement/index.d.ts +6 -1
  26. package/dist/cjs/stateManagement/index.js +6 -1
  27. package/dist/cjs/stateManagement/index.js.map +1 -1
  28. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +3 -1
  29. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +3 -2
  30. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  31. package/dist/cjs/tools/SegmentationIntersectionTool.js +1 -1
  32. package/dist/cjs/tools/SegmentationIntersectionTool.js.map +1 -1
  33. package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.d.ts +4 -0
  34. package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.js +82 -0
  35. package/dist/cjs/tools/annotation/LivewireContourSegmentationTool.js.map +1 -1
  36. package/dist/cjs/tools/annotation/LivewireContourTool.d.ts +13 -11
  37. package/dist/cjs/tools/annotation/LivewireContourTool.js +78 -65
  38. package/dist/cjs/tools/annotation/LivewireContourTool.js.map +1 -1
  39. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +3 -1
  40. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  41. package/dist/cjs/tools/annotation/SplineROITool.d.ts +6 -3
  42. package/dist/cjs/tools/annotation/SplineROITool.js +40 -21
  43. package/dist/cjs/tools/annotation/SplineROITool.js.map +1 -1
  44. package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +12 -7
  45. package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
  46. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +24 -18
  47. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  48. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js +16 -10
  49. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
  50. package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js +19 -7
  51. package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
  52. package/dist/cjs/tools/annotation/splines/LinearSpline.js +1 -1
  53. package/dist/cjs/tools/annotation/splines/LinearSpline.js.map +1 -1
  54. package/dist/cjs/tools/annotation/splines/Spline.d.ts +2 -0
  55. package/dist/cjs/tools/annotation/splines/Spline.js +7 -3
  56. package/dist/cjs/tools/annotation/splines/Spline.js.map +1 -1
  57. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  58. package/dist/cjs/tools/base/ContourBaseTool.d.ts +1 -0
  59. package/dist/cjs/tools/base/ContourBaseTool.js +18 -1
  60. package/dist/cjs/tools/base/ContourBaseTool.js.map +1 -1
  61. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js +4 -0
  62. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  63. package/dist/cjs/tools/displayTools/Contour/contourConfig.js +1 -0
  64. package/dist/cjs/tools/displayTools/Contour/contourConfig.js.map +1 -1
  65. package/dist/cjs/types/AnnotationTypes.d.ts +2 -0
  66. package/dist/cjs/types/ContourAnnotation.d.ts +6 -0
  67. package/dist/cjs/types/ContourAnnotation.js +7 -0
  68. package/dist/cjs/types/ContourAnnotation.js.map +1 -1
  69. package/dist/cjs/types/ContourSegmentationAnnotation.d.ts +8 -0
  70. package/dist/cjs/types/ContourTypes.d.ts +1 -0
  71. package/dist/cjs/types/EventTypes.d.ts +4 -1
  72. package/dist/cjs/types/ISpline.d.ts +1 -0
  73. package/dist/cjs/types/InterpolationTypes.d.ts +2 -0
  74. package/dist/cjs/types/SplineProps.d.ts +1 -0
  75. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +2 -5
  76. package/dist/cjs/utilities/contours/getContourHolesDataCanvas.d.ts +3 -0
  77. package/dist/cjs/utilities/contours/getContourHolesDataCanvas.js +21 -0
  78. package/dist/cjs/utilities/contours/getContourHolesDataCanvas.js.map +1 -0
  79. package/dist/cjs/utilities/contours/getContourHolesDataWorld.d.ts +3 -0
  80. package/dist/cjs/utilities/contours/getContourHolesDataWorld.js +10 -0
  81. package/dist/cjs/utilities/contours/getContourHolesDataWorld.js.map +1 -0
  82. package/dist/cjs/utilities/contours/index.d.ts +4 -1
  83. package/dist/cjs/utilities/contours/index.js +7 -1
  84. package/dist/cjs/utilities/contours/index.js.map +1 -1
  85. package/dist/cjs/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js.map +1 -1
  86. package/dist/cjs/utilities/contours/interpolation/createPolylineToolData.js +2 -1
  87. package/dist/cjs/utilities/contours/interpolation/createPolylineToolData.js.map +1 -1
  88. package/dist/cjs/utilities/contours/interpolation/findAnnotationForInterpolation.js +2 -1
  89. package/dist/cjs/utilities/contours/interpolation/findAnnotationForInterpolation.js.map +1 -1
  90. package/dist/cjs/utilities/contours/interpolation/getInterpolationData.js +3 -1
  91. package/dist/cjs/utilities/contours/interpolation/getInterpolationData.js.map +1 -1
  92. package/dist/cjs/utilities/contours/interpolation/interpolate.d.ts +8 -0
  93. package/dist/cjs/utilities/contours/interpolation/interpolate.js +56 -42
  94. package/dist/cjs/utilities/contours/interpolation/interpolate.js.map +1 -1
  95. package/dist/cjs/utilities/contours/interpolation/selectHandles.d.ts +4 -0
  96. package/dist/cjs/utilities/contours/interpolation/selectHandles.js +170 -0
  97. package/dist/cjs/utilities/contours/interpolation/selectHandles.js.map +1 -0
  98. package/dist/cjs/utilities/contours/updateContourPolyline.d.ts +10 -0
  99. package/dist/cjs/utilities/contours/updateContourPolyline.js +64 -0
  100. package/dist/cjs/utilities/contours/updateContourPolyline.js.map +1 -0
  101. package/dist/cjs/utilities/livewire/LivewireScissors.d.ts +2 -1
  102. package/dist/cjs/utilities/livewire/LivewireScissors.js +46 -24
  103. package/dist/cjs/utilities/livewire/LivewireScissors.js.map +1 -1
  104. package/dist/cjs/utilities/math/polyline/containsPoints.d.ts +2 -0
  105. package/dist/cjs/utilities/math/polyline/containsPoints.js +16 -0
  106. package/dist/cjs/utilities/math/polyline/containsPoints.js.map +1 -0
  107. package/dist/cjs/utilities/math/polyline/getWindingDirection.d.ts +2 -0
  108. package/dist/cjs/utilities/math/polyline/getWindingDirection.js +12 -0
  109. package/dist/cjs/utilities/math/polyline/getWindingDirection.js.map +1 -0
  110. package/dist/cjs/utilities/math/polyline/index.d.ts +3 -1
  111. package/dist/cjs/utilities/math/polyline/index.js +5 -1
  112. package/dist/cjs/utilities/math/polyline/index.js.map +1 -1
  113. package/dist/cjs/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +1 -0
  114. package/dist/cjs/utilities/segmentation/InterpolationManager/InterpolationManager.js +13 -3
  115. package/dist/cjs/utilities/segmentation/InterpolationManager/InterpolationManager.js.map +1 -1
  116. package/dist/esm/drawingSvg/drawPath.js +49 -0
  117. package/dist/esm/drawingSvg/drawPath.js.map +1 -0
  118. package/dist/esm/drawingSvg/drawPolyline.js +3 -11
  119. package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
  120. package/dist/esm/drawingSvg/index.js +2 -1
  121. package/dist/esm/drawingSvg/index.js.map +1 -1
  122. package/dist/esm/enums/ChangeTypes.js +1 -0
  123. package/dist/esm/enums/ChangeTypes.js.map +1 -1
  124. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +1 -1
  125. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js.map +1 -1
  126. package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js.map +1 -1
  127. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +106 -32
  128. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -1
  129. package/dist/esm/stateManagement/annotation/annotationState.js +42 -1
  130. package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
  131. package/dist/esm/stateManagement/annotation/helpers/state.js +15 -4
  132. package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -1
  133. package/dist/esm/stateManagement/index.js +2 -2
  134. package/dist/esm/stateManagement/index.js.map +1 -1
  135. package/dist/esm/store/ToolGroupManager/ToolGroup.js +3 -2
  136. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  137. package/dist/esm/tools/SegmentationIntersectionTool.js +1 -1
  138. package/dist/esm/tools/SegmentationIntersectionTool.js.map +1 -1
  139. package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js +81 -0
  140. package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js.map +1 -1
  141. package/dist/esm/tools/annotation/LivewireContourTool.js +80 -67
  142. package/dist/esm/tools/annotation/LivewireContourTool.js.map +1 -1
  143. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +3 -1
  144. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  145. package/dist/esm/tools/annotation/SplineROITool.js +40 -22
  146. package/dist/esm/tools/annotation/SplineROITool.js.map +1 -1
  147. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +12 -7
  148. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
  149. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +25 -19
  150. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  151. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +16 -10
  152. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
  153. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +20 -8
  154. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
  155. package/dist/esm/tools/annotation/splines/LinearSpline.js +1 -1
  156. package/dist/esm/tools/annotation/splines/LinearSpline.js.map +1 -1
  157. package/dist/esm/tools/annotation/splines/Spline.js +5 -1
  158. package/dist/esm/tools/annotation/splines/Spline.js.map +1 -1
  159. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  160. package/dist/esm/tools/base/ContourBaseTool.js +20 -3
  161. package/dist/esm/tools/base/ContourBaseTool.js.map +1 -1
  162. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +4 -0
  163. package/dist/esm/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  164. package/dist/esm/tools/displayTools/Contour/contourConfig.js +1 -0
  165. package/dist/esm/tools/displayTools/Contour/contourConfig.js.map +1 -1
  166. package/dist/esm/types/ContourAnnotation.js +6 -1
  167. package/dist/esm/types/ContourAnnotation.js.map +1 -1
  168. package/dist/esm/utilities/contours/getContourHolesDataCanvas.js +15 -0
  169. package/dist/esm/utilities/contours/getContourHolesDataCanvas.js.map +1 -0
  170. package/dist/esm/utilities/contours/getContourHolesDataWorld.js +6 -0
  171. package/dist/esm/utilities/contours/getContourHolesDataWorld.js.map +1 -0
  172. package/dist/esm/utilities/contours/index.js +4 -1
  173. package/dist/esm/utilities/contours/index.js.map +1 -1
  174. package/dist/esm/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js.map +1 -1
  175. package/dist/esm/utilities/contours/interpolation/createPolylineToolData.js +2 -1
  176. package/dist/esm/utilities/contours/interpolation/createPolylineToolData.js.map +1 -1
  177. package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.js +2 -1
  178. package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.js.map +1 -1
  179. package/dist/esm/utilities/contours/interpolation/getInterpolationData.js +3 -1
  180. package/dist/esm/utilities/contours/interpolation/getInterpolationData.js.map +1 -1
  181. package/dist/esm/utilities/contours/interpolation/interpolate.js +57 -43
  182. package/dist/esm/utilities/contours/interpolation/interpolate.js.map +1 -1
  183. package/dist/esm/utilities/contours/interpolation/selectHandles.js +164 -0
  184. package/dist/esm/utilities/contours/interpolation/selectHandles.js.map +1 -0
  185. package/dist/esm/utilities/contours/updateContourPolyline.js +38 -0
  186. package/dist/esm/utilities/contours/updateContourPolyline.js.map +1 -0
  187. package/dist/esm/utilities/livewire/LivewireScissors.js +46 -24
  188. package/dist/esm/utilities/livewire/LivewireScissors.js.map +1 -1
  189. package/dist/esm/utilities/math/polyline/containsPoints.js +10 -0
  190. package/dist/esm/utilities/math/polyline/containsPoints.js.map +1 -0
  191. package/dist/esm/utilities/math/polyline/getWindingDirection.js +6 -0
  192. package/dist/esm/utilities/math/polyline/getWindingDirection.js.map +1 -0
  193. package/dist/esm/utilities/math/polyline/index.js +3 -1
  194. package/dist/esm/utilities/math/polyline/index.js.map +1 -1
  195. package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js +13 -3
  196. package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js.map +1 -1
  197. package/dist/types/drawingSvg/drawPath.d.ts +12 -0
  198. package/dist/types/drawingSvg/drawPath.d.ts.map +1 -0
  199. package/dist/types/drawingSvg/drawPolyline.d.ts +1 -1
  200. package/dist/types/drawingSvg/drawPolyline.d.ts.map +1 -1
  201. package/dist/types/drawingSvg/index.d.ts +2 -1
  202. package/dist/types/drawingSvg/index.d.ts.map +1 -1
  203. package/dist/types/enums/ChangeTypes.d.ts +2 -1
  204. package/dist/types/enums/ChangeTypes.d.ts.map +1 -1
  205. package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +1 -1
  206. package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts.map +1 -1
  207. package/dist/types/stateManagement/annotation/annotationState.d.ts +6 -1
  208. package/dist/types/stateManagement/annotation/annotationState.d.ts.map +1 -1
  209. package/dist/types/stateManagement/annotation/helpers/state.d.ts +4 -2
  210. package/dist/types/stateManagement/annotation/helpers/state.d.ts.map +1 -1
  211. package/dist/types/stateManagement/index.d.ts +6 -1
  212. package/dist/types/store/ToolGroupManager/ToolGroup.d.ts +3 -1
  213. package/dist/types/store/ToolGroupManager/ToolGroup.d.ts.map +1 -1
  214. package/dist/types/tools/annotation/LivewireContourSegmentationTool.d.ts +4 -0
  215. package/dist/types/tools/annotation/LivewireContourSegmentationTool.d.ts.map +1 -1
  216. package/dist/types/tools/annotation/LivewireContourTool.d.ts +13 -11
  217. package/dist/types/tools/annotation/LivewireContourTool.d.ts.map +1 -1
  218. package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts.map +1 -1
  219. package/dist/types/tools/annotation/SplineROITool.d.ts +6 -3
  220. package/dist/types/tools/annotation/SplineROITool.d.ts.map +1 -1
  221. package/dist/types/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts.map +1 -1
  222. package/dist/types/tools/annotation/planarFreehandROITool/drawLoop.d.ts.map +1 -1
  223. package/dist/types/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts.map +1 -1
  224. package/dist/types/tools/annotation/planarFreehandROITool/renderMethods.d.ts.map +1 -1
  225. package/dist/types/tools/annotation/splines/Spline.d.ts +2 -0
  226. package/dist/types/tools/annotation/splines/Spline.d.ts.map +1 -1
  227. package/dist/types/tools/base/AnnotationTool.d.ts.map +1 -1
  228. package/dist/types/tools/base/ContourBaseTool.d.ts +1 -0
  229. package/dist/types/tools/base/ContourBaseTool.d.ts.map +1 -1
  230. package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts.map +1 -1
  231. package/dist/types/tools/displayTools/Contour/contourConfig.d.ts.map +1 -1
  232. package/dist/types/types/AnnotationTypes.d.ts +2 -0
  233. package/dist/types/types/AnnotationTypes.d.ts.map +1 -1
  234. package/dist/types/types/ContourAnnotation.d.ts +6 -0
  235. package/dist/types/types/ContourAnnotation.d.ts.map +1 -1
  236. package/dist/types/types/ContourSegmentationAnnotation.d.ts +8 -0
  237. package/dist/types/types/ContourSegmentationAnnotation.d.ts.map +1 -1
  238. package/dist/types/types/ContourTypes.d.ts +1 -0
  239. package/dist/types/types/ContourTypes.d.ts.map +1 -1
  240. package/dist/types/types/EventTypes.d.ts +4 -1
  241. package/dist/types/types/EventTypes.d.ts.map +1 -1
  242. package/dist/types/types/ISpline.d.ts +1 -0
  243. package/dist/types/types/ISpline.d.ts.map +1 -1
  244. package/dist/types/types/InterpolationTypes.d.ts +2 -0
  245. package/dist/types/types/InterpolationTypes.d.ts.map +1 -1
  246. package/dist/types/types/SplineProps.d.ts +1 -0
  247. package/dist/types/types/SplineProps.d.ts.map +1 -1
  248. package/dist/types/types/ToolSpecificAnnotationTypes.d.ts +2 -5
  249. package/dist/types/types/ToolSpecificAnnotationTypes.d.ts.map +1 -1
  250. package/dist/types/utilities/contours/getContourHolesDataCanvas.d.ts +4 -0
  251. package/dist/types/utilities/contours/getContourHolesDataCanvas.d.ts.map +1 -0
  252. package/dist/types/utilities/contours/getContourHolesDataWorld.d.ts +4 -0
  253. package/dist/types/utilities/contours/getContourHolesDataWorld.d.ts.map +1 -0
  254. package/dist/types/utilities/contours/index.d.ts +4 -1
  255. package/dist/types/utilities/contours/index.d.ts.map +1 -1
  256. package/dist/types/utilities/contours/interpolation/acceptAutogeneratedInterpolations.d.ts.map +1 -1
  257. package/dist/types/utilities/contours/interpolation/createPolylineToolData.d.ts.map +1 -1
  258. package/dist/types/utilities/contours/interpolation/findAnnotationForInterpolation.d.ts.map +1 -1
  259. package/dist/types/utilities/contours/interpolation/getInterpolationData.d.ts.map +1 -1
  260. package/dist/types/utilities/contours/interpolation/interpolate.d.ts +8 -0
  261. package/dist/types/utilities/contours/interpolation/interpolate.d.ts.map +1 -1
  262. package/dist/types/utilities/contours/interpolation/selectHandles.d.ts +5 -0
  263. package/dist/types/utilities/contours/interpolation/selectHandles.d.ts.map +1 -0
  264. package/dist/types/utilities/contours/updateContourPolyline.d.ts +11 -0
  265. package/dist/types/utilities/contours/updateContourPolyline.d.ts.map +1 -0
  266. package/dist/types/utilities/livewire/LivewireScissors.d.ts +2 -1
  267. package/dist/types/utilities/livewire/LivewireScissors.d.ts.map +1 -1
  268. package/dist/types/utilities/math/polyline/containsPoints.d.ts +3 -0
  269. package/dist/types/utilities/math/polyline/containsPoints.d.ts.map +1 -0
  270. package/dist/types/utilities/math/polyline/getWindingDirection.d.ts +3 -0
  271. package/dist/types/utilities/math/polyline/getWindingDirection.d.ts.map +1 -0
  272. package/dist/types/utilities/math/polyline/index.d.ts +3 -1
  273. package/dist/types/utilities/math/polyline/index.d.ts.map +1 -1
  274. package/dist/types/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +1 -0
  275. package/dist/types/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts.map +1 -1
  276. package/dist/types/utilities/segmentation/InterpolationManager/InterpolationManager.d.ts.map +1 -1
  277. package/dist/umd/index.js +1 -1
  278. package/dist/umd/index.js.map +1 -1
  279. package/package.json +3 -3
  280. package/src/drawingSvg/drawPath.ts +96 -0
  281. package/src/drawingSvg/drawPolyline.ts +13 -17
  282. package/src/drawingSvg/index.ts +2 -0
  283. package/src/enums/ChangeTypes.ts +4 -0
  284. package/src/eventDispatchers/keyboardEventHandlers/keyDown.ts +1 -1
  285. package/src/eventDispatchers/shared/getActiveToolForMouseEvent.ts +1 -1
  286. package/src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts +194 -58
  287. package/src/stateManagement/annotation/annotationState.ts +101 -0
  288. package/src/stateManagement/annotation/helpers/state.ts +33 -3
  289. package/src/stateManagement/index.js +10 -0
  290. package/src/store/ToolGroupManager/ToolGroup.ts +9 -2
  291. package/src/tools/SegmentationIntersectionTool.ts +1 -1
  292. package/src/tools/annotation/LivewireContourSegmentationTool.ts +151 -0
  293. package/src/tools/annotation/LivewireContourTool.ts +172 -114
  294. package/src/tools/annotation/PlanarFreehandROITool.ts +13 -3
  295. package/src/tools/annotation/SplineROITool.ts +78 -31
  296. package/src/tools/annotation/planarFreehandROITool/closedContourEditLoop.ts +20 -11
  297. package/src/tools/annotation/planarFreehandROITool/drawLoop.ts +40 -21
  298. package/src/tools/annotation/planarFreehandROITool/openContourEditLoop.ts +28 -13
  299. package/src/tools/annotation/planarFreehandROITool/renderMethods.ts +28 -10
  300. package/src/tools/annotation/splines/LinearSpline.ts +1 -1
  301. package/src/tools/annotation/splines/Spline.ts +13 -1
  302. package/src/tools/base/AnnotationTool.ts +1 -0
  303. package/src/tools/base/ContourBaseTool.ts +45 -3
  304. package/src/tools/base/ContourSegmentationBaseTool.ts +6 -0
  305. package/src/tools/displayTools/Contour/contourConfig.ts +1 -0
  306. package/src/types/AnnotationTypes.ts +14 -0
  307. package/src/types/ContourAnnotation.ts +13 -0
  308. package/src/types/ContourSegmentationAnnotation.ts +38 -0
  309. package/src/types/ContourTypes.ts +3 -0
  310. package/src/types/EventTypes.ts +9 -0
  311. package/src/types/ISpline.ts +3 -0
  312. package/src/types/InterpolationTypes.ts +6 -0
  313. package/src/types/SplineProps.ts +10 -0
  314. package/src/types/ToolSpecificAnnotationTypes.ts +7 -5
  315. package/src/utilities/contours/getContourHolesDataCanvas.ts +33 -0
  316. package/src/utilities/contours/getContourHolesDataWorld.ts +19 -0
  317. package/src/utilities/contours/index.ts +6 -0
  318. package/src/utilities/contours/interpolation/acceptAutogeneratedInterpolations.ts +3 -1
  319. package/src/utilities/contours/interpolation/createPolylineToolData.ts +7 -1
  320. package/src/utilities/contours/interpolation/findAnnotationForInterpolation.ts +2 -1
  321. package/src/utilities/contours/interpolation/getInterpolationData.ts +3 -1
  322. package/src/utilities/contours/interpolation/interpolate.ts +94 -75
  323. package/src/utilities/contours/interpolation/selectHandles.ts +240 -0
  324. package/src/utilities/contours/updateContourPolyline.ts +74 -0
  325. package/src/utilities/livewire/LivewireScissors.ts +65 -53
  326. package/src/utilities/math/polyline/containsPoint.ts +1 -1
  327. package/src/utilities/math/polyline/containsPoints.ts +22 -0
  328. package/src/utilities/math/polyline/getWindingDirection.ts +14 -0
  329. package/src/utilities/math/polyline/index.ts +4 -0
  330. package/src/utilities/math/polyline/planarFreehandROIInternalTypes.ts +1 -0
  331. package/src/utilities/segmentation/InterpolationManager/InterpolationManager.ts +39 -4
  332. package/dist/cjs/utilities/contours/PointsArray.d.ts +0 -29
  333. package/dist/cjs/utilities/contours/PointsArray.js +0 -104
  334. package/dist/cjs/utilities/contours/PointsArray.js.map +0 -1
  335. package/dist/esm/utilities/contours/PointsArray.js +0 -98
  336. package/dist/esm/utilities/contours/PointsArray.js.map +0 -1
  337. package/dist/types/utilities/contours/PointsArray.d.ts +0 -30
  338. package/dist/types/utilities/contours/PointsArray.d.ts.map +0 -1
  339. package/src/utilities/contours/PointsArray.ts +0 -165
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarFreehandROITool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/PlanarFreehandROITool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanarFreehandROITool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/PlanarFreehandROITool.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,21 @@
1
1
  import { getEnabledElement, eventTarget, triggerEvent, utilities, } from '@cornerstonejs/core';
2
2
  import { vec3 } from 'gl-matrix';
3
- import { removeAnnotation } from '../../stateManagement/annotation/annotationState';
3
+ import { getChildAnnotations, removeAnnotation, } from '../../stateManagement/annotation/annotationState';
4
4
  import { drawHandles as drawHandlesSvg, drawPolyline as drawPolylineSvg, drawLinkedTextBox as drawLinkedTextBoxSvg, } from '../../drawingSvg';
5
5
  import { state } from '../../store';
6
6
  import { Events, MouseBindings, KeyboardBindings, ChangeTypes, } from '../../enums';
7
7
  import { resetElementCursor } from '../../cursors/elementCursor';
8
8
  import { math, throttle, roundNumber, triggerAnnotationRenderForViewportIds, getCalibratedScale, getCalibratedAreaUnits, } from '../../utilities';
9
+ import getMouseModifierKey from '../../eventDispatchers/shared/getMouseModifier';
9
10
  import { getViewportIdsWithToolToRender } from '../../utilities/viewportFilters';
10
11
  import { getTextBoxCoordsCanvas } from '../../utilities/drawing';
12
+ import { ContourWindingDirection } from '../../types/ContourAnnotation';
11
13
  import { CardinalSpline } from './splines/CardinalSpline';
12
14
  import { LinearSpline } from './splines/LinearSpline';
13
15
  import { CatmullRomSpline } from './splines/CatmullRomSpline';
14
16
  import { BSpline } from './splines/BSpline';
15
17
  import ContourSegmentationBaseTool from '../base/ContourSegmentationBaseTool';
16
- import reverseIfAntiClockwise from '../../utilities/contours/reverseIfAntiClockwise';
18
+ import updateContourPolyline from '../../utilities/contours/updateContourPolyline';
17
19
  const SPLINE_MIN_POINTS = 3;
18
20
  const SPLINE_CLICK_CLOSE_CURVE_DIST = 10;
19
21
  const DEFAULT_SPLINE_CONFIG = {
@@ -43,6 +45,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
43
45
  preventHandleOutsideImage: false,
44
46
  calculateStats: true,
45
47
  getTextLines: defaultGetTextLines,
48
+ contourHoleAdditionModifierKey: KeyboardBindings.Shift,
46
49
  spline: {
47
50
  configuration: {
48
51
  [SplineTypesEnum.Cardinal]: {
@@ -141,7 +144,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
141
144
  this._endCallback = (evt) => {
142
145
  const eventDetail = evt.detail;
143
146
  const { element } = eventDetail;
144
- const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
147
+ const { annotation, viewportIdsToRender, newAnnotation, contourHoleProcessingEnabled, } = this.editData;
145
148
  const { data } = annotation;
146
149
  annotation.autoGenerated = false;
147
150
  data.handles.activeHandleIndex = null;
@@ -164,6 +167,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
164
167
  changeType: newAnnotation
165
168
  ? ChangeTypes.Completed
166
169
  : ChangeTypes.HandlesUpdated,
170
+ contourHoleProcessingEnabled,
167
171
  };
168
172
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
169
173
  this.editData = null;
@@ -255,13 +259,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
255
259
  else if (handleIndex === undefined) {
256
260
  const { deltaPoints } = eventDetail;
257
261
  const worldPosDelta = deltaPoints.world;
258
- const points = data.handles.points;
259
- points.forEach((point) => {
260
- point[0] += worldPosDelta[0];
261
- point[1] += worldPosDelta[1];
262
- point[2] += worldPosDelta[2];
263
- });
264
- annotation.invalidated = true;
262
+ this.moveAnnotation(annotation, worldPosDelta);
265
263
  }
266
264
  else {
267
265
  const { currentPoints } = eventDetail;
@@ -274,11 +272,12 @@ class SplineROITool extends ContourSegmentationBaseTool {
274
272
  const { renderingEngine } = enabledElement;
275
273
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
276
274
  };
277
- this.triggerAnnotationCompleted = (annotation) => {
275
+ this.triggerAnnotationCompleted = (annotation, contourHoleProcessingEnabled) => {
278
276
  const eventType = Events.ANNOTATION_COMPLETED;
279
277
  const eventDetail = {
280
278
  annotation,
281
279
  changeType: ChangeTypes.Completed,
280
+ contourHoleProcessingEnabled,
282
281
  };
283
282
  triggerEvent(eventTarget, eventType, eventDetail);
284
283
  };
@@ -293,9 +292,9 @@ class SplineROITool extends ContourSegmentationBaseTool {
293
292
  };
294
293
  triggerEvent(eventTarget, eventType, eventDetail);
295
294
  };
296
- this.triggerChangeEvent = (annotation, enabledElement, changeType = ChangeTypes.StatsUpdated) => {
295
+ this.triggerChangeEvent = (annotation, enabledElement, changeType = ChangeTypes.StatsUpdated, contourHoleProcessingEnabled) => {
297
296
  if (changeType === ChangeTypes.Completed) {
298
- this.triggerAnnotationCompleted(annotation);
297
+ this.triggerAnnotationCompleted(annotation, contourHoleProcessingEnabled);
299
298
  }
300
299
  else {
301
300
  this.triggerAnnotationModified(annotation, enabledElement, changeType);
@@ -457,6 +456,8 @@ class SplineROITool extends ContourSegmentationBaseTool {
457
456
  const eventDetail = evt.detail;
458
457
  const { currentPoints, element } = eventDetail;
459
458
  const { canvas: canvasPos } = currentPoints;
459
+ const contourHoleProcessingEnabled = getMouseModifierKey(evt.detail.event) ===
460
+ this.configuration.contourHoleAdditionModifierKey;
460
461
  const enabledElement = getEnabledElement(element);
461
462
  const { renderingEngine } = enabledElement;
462
463
  const annotation = this.createAnnotation(evt);
@@ -470,6 +471,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
470
471
  newAnnotation: true,
471
472
  hasMoved: false,
472
473
  lastCanvasPoint: canvasPos,
474
+ contourHoleProcessingEnabled,
473
475
  };
474
476
  this._activateDraw(element);
475
477
  evt.preventDefault();
@@ -513,10 +515,22 @@ class SplineROITool extends ContourSegmentationBaseTool {
513
515
  const { drawPreviewEnabled } = this.configuration.spline;
514
516
  const splineType = annotation.data.spline.type;
515
517
  const splineConfig = this._getSplineConfig(splineType);
516
- const spline = this._updateSplineInstance(element, annotation);
517
- const splinePolylineCanvas = reverseIfAntiClockwise(spline.getPolylinePoints());
518
- const splinePolylineWorld = splinePolylineCanvas.map((point2) => viewport.canvasToWorld(point2));
519
- data.contour.polyline = splinePolylineWorld;
518
+ const spline = annotation.data.spline.instance;
519
+ if (annotation.invalidated) {
520
+ const splineAnnotationsGroup = [
521
+ annotation,
522
+ ...getChildAnnotations(annotation),
523
+ ].filter((annotation) => this._isSplineROIAnnotation(annotation));
524
+ splineAnnotationsGroup.forEach((annotation) => {
525
+ const spline = this._updateSplineInstance(element, annotation);
526
+ const splinePolylineCanvas = spline.getPolylinePoints();
527
+ updateContourPolyline(annotation, {
528
+ points: splinePolylineCanvas,
529
+ closed: data.contour.closed,
530
+ targetWindingDirection: ContourWindingDirection.Clockwise,
531
+ }, viewport);
532
+ });
533
+ }
520
534
  super.renderAnnotationInstance(renderContext);
521
535
  if (!data.cachedStats[targetId] ||
522
536
  data.cachedStats[targetId].areaUnit == null) {
@@ -566,7 +580,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
566
580
  }
567
581
  this._renderStats(annotation, viewport, svgDrawingHelper, annotationStyle.textbox);
568
582
  if (this.fireChangeOnUpdate?.annotationUID === annotationUID) {
569
- this.triggerChangeEvent(annotation, enabledElement, this.fireChangeOnUpdate.changeType);
583
+ this.triggerChangeEvent(annotation, enabledElement, this.fireChangeOnUpdate.changeType, this.fireChangeOnUpdate.contourHoleProcessingEnabled);
570
584
  this.fireChangeOnUpdate = null;
571
585
  }
572
586
  annotation.invalidated = false;
@@ -599,9 +613,9 @@ class SplineROITool extends ContourSegmentationBaseTool {
599
613
  instance: spline,
600
614
  resolution: splineConfig.resolution,
601
615
  });
602
- let postInterpolateAction;
616
+ let onInterpolationComplete;
603
617
  if (this.configuration.interpolation?.enabled) {
604
- postInterpolateAction = (annotation) => {
618
+ onInterpolationComplete = (annotation) => {
605
619
  annotation.data.spline ||= createSpline();
606
620
  this.createInterpolatedSplineControl(annotation);
607
621
  };
@@ -614,7 +628,7 @@ class SplineROITool extends ContourSegmentationBaseTool {
614
628
  spline: createSpline(),
615
629
  cachedStats: {},
616
630
  },
617
- postInterpolateAction,
631
+ onInterpolationComplete,
618
632
  });
619
633
  }
620
634
  _deleteControlPointByIndex(element, annotation, controlPointIndex) {
@@ -631,6 +645,9 @@ class SplineROITool extends ContourSegmentationBaseTool {
631
645
  annotation.invalidated = true;
632
646
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
633
647
  }
648
+ _isSplineROIAnnotation(annotation) {
649
+ return !!annotation.data?.spline;
650
+ }
634
651
  _getSplineConfig(type) {
635
652
  const { configuration: config } = this;
636
653
  const splineConfigs = config.spline.configuration;
@@ -647,7 +664,8 @@ class SplineROITool extends ContourSegmentationBaseTool {
647
664
  const canvasPoints = worldPoints.map(worldToCanvas);
648
665
  spline.setControlPoints(canvasPoints);
649
666
  spline.closed = !!data.contour.closed;
650
- if (spline.resolution !== splineConfig.resolution) {
667
+ if (!spline.fixedResolution &&
668
+ spline.resolution !== splineConfig.resolution) {
651
669
  spline.resolution = parseInt(splineConfig.resolution);
652
670
  annotation.invalidated = true;
653
671
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SplineROITool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/SplineROITool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplineROITool.js","sourceRoot":"","sources":["../../../../src/tools/annotation/SplineROITool.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@ import { state } from '../../../store';
4
4
  import { Events } from '../../../enums';
5
5
  import { resetElementCursor, hideElementCursor, } from '../../../cursors/elementCursor';
6
6
  import { polyline } from '../../../utilities/math';
7
+ import { ContourWindingDirection } from '../../../types/ContourAnnotation';
7
8
  import { getInterpolatedPoints, shouldSmooth, } from '../../../utilities/planarFreehandROITool/smoothPoints';
8
9
  import triggerAnnotationRenderForViewportIds from '../../../utilities/triggerAnnotationRenderForViewportIds';
10
+ import updateContourPolyline from '../../../utilities/contours/updateContourPolyline';
9
11
  import { triggerAnnotationModified } from '../../../stateManagement/annotation/helpers/state';
10
12
  const { getSubPixelSpacingAndXYDirections, addCanvasPointsToArray, getArea } = polyline;
11
13
  function activateClosedContourEdit(evt, annotation, viewportIdsToRender) {
@@ -100,9 +102,11 @@ function finishEditAndStartNewEdit(evt) {
100
102
  const { viewport, renderingEngine } = enabledElement;
101
103
  const { annotation, viewportIdsToRender } = this.commonData;
102
104
  const { fusedCanvasPoints, editCanvasPoints } = this.editData;
103
- const worldPoints = fusedCanvasPoints.map((canvasPoint) => viewport.canvasToWorld(canvasPoint));
104
- annotation.data.contour.polyline = worldPoints;
105
- annotation.data.contour.closed = true;
105
+ updateContourPolyline(annotation, {
106
+ points: fusedCanvasPoints,
107
+ closed: true,
108
+ targetWindingDirection: ContourWindingDirection.Clockwise,
109
+ }, viewport);
106
110
  if (annotation.autoGenerated) {
107
111
  annotation.autoGenerated = false;
108
112
  }
@@ -206,10 +210,11 @@ function completeClosedContourEdit(element) {
206
210
  const updatedPoints = shouldSmooth(this.configuration, annotation)
207
211
  ? getInterpolatedPoints(this.configuration, fusedCanvasPoints, prevCanvasPoints)
208
212
  : fusedCanvasPoints;
209
- const worldPoints = updatedPoints.map((canvasPoint) => viewport.canvasToWorld(canvasPoint));
210
- annotation.data.contour.polyline = worldPoints;
211
- annotation.data.contour.closed = true;
212
- annotation.invalidated = true;
213
+ updateContourPolyline(annotation, {
214
+ points: updatedPoints,
215
+ closed: true,
216
+ targetWindingDirection: ContourWindingDirection.Clockwise,
217
+ }, viewport);
213
218
  if (annotation.autoGenerated) {
214
219
  annotation.autoGenerated = false;
215
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"closedContourEditLoop.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/closedContourEditLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closedContourEditLoop.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/planarFreehandROITool/closedContourEditLoop.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@ import { Events } from '../../../enums';
4
4
  import { state } from '../../../store';
5
5
  import { vec3 } from 'gl-matrix';
6
6
  import { shouldSmooth, getInterpolatedPoints, } from '../../../utilities/planarFreehandROITool/smoothPoints';
7
+ import getMouseModifierKey from '../../../eventDispatchers/shared/getMouseModifier';
7
8
  import triggerAnnotationRenderForViewportIds from '../../../utilities/triggerAnnotationRenderForViewportIds';
8
- import { triggerAnnotationCompleted } from '../../../stateManagement/annotation/helpers/state';
9
+ import { triggerContourAnnotationCompleted } from '../../../stateManagement/annotation/helpers/state';
9
10
  import findOpenUShapedContourVectorToPeak from './findOpenUShapedContourVectorToPeak';
10
11
  import { polyline } from '../../../utilities/math';
11
12
  import { removeAnnotation } from '../../../stateManagement/annotation/annotationState';
13
+ import { updateContourPolyline } from '../../../utilities/contours/';
12
14
  import reverseIfAntiClockwise from '../../../utilities/contours/reverseIfAntiClockwise';
13
15
  const { addCanvasPointsToArray, pointsAreWithinCloseContourProximity, getFirstLineSegmentIntersectionIndexes, getSubPixelSpacingAndXYDirections, } = polyline;
14
16
  function activateDraw(evt, annotation, viewportIdsToRender) {
@@ -18,10 +20,13 @@ function activateDraw(evt, annotation, viewportIdsToRender) {
18
20
  const canvasPos = currentPoints.canvas;
19
21
  const enabledElement = getEnabledElement(element);
20
22
  const { viewport } = enabledElement;
23
+ const contourHoleProcessingEnabled = getMouseModifierKey(evt.detail.event) ===
24
+ this.configuration.contourHoleAdditionModifierKey;
21
25
  const { spacing, xDir, yDir } = getSubPixelSpacingAndXYDirections(viewport, this.configuration.subPixelResolution);
22
26
  this.drawData = {
23
27
  canvasPoints: [canvasPos],
24
28
  polylineIndex: 0,
29
+ contourHoleProcessingEnabled,
25
30
  };
26
31
  this.commonData = {
27
32
  annotation,
@@ -93,20 +98,20 @@ function mouseDragDrawCallback(evt) {
93
98
  }
94
99
  function mouseUpDrawCallback(evt) {
95
100
  const { allowOpenContours } = this.configuration;
96
- const { canvasPoints } = this.drawData;
101
+ const { canvasPoints, contourHoleProcessingEnabled } = this.drawData;
97
102
  const firstPoint = canvasPoints[0];
98
103
  const lastPoint = canvasPoints[canvasPoints.length - 1];
99
104
  const eventDetail = evt.detail;
100
105
  const { element } = eventDetail;
101
106
  if (allowOpenContours &&
102
107
  !pointsAreWithinCloseContourProximity(firstPoint, lastPoint, this.configuration.closeContourProximity)) {
103
- this.completeDrawOpenContour(element);
108
+ this.completeDrawOpenContour(element, contourHoleProcessingEnabled);
104
109
  }
105
110
  else {
106
- this.completeDrawClosedContour(element);
111
+ this.completeDrawClosedContour(element, contourHoleProcessingEnabled);
107
112
  }
108
113
  }
109
- function completeDrawClosedContour(element) {
114
+ function completeDrawClosedContour(element, contourHoleProcessingEnabled) {
110
115
  this.removeCrossedLinesOnCompleteDraw();
111
116
  const { canvasPoints } = this.drawData;
112
117
  if (this.haltDrawing(element, canvasPoints)) {
@@ -123,13 +128,13 @@ function completeDrawClosedContour(element) {
123
128
  const updatedPoints = shouldSmooth(this.configuration, annotation)
124
129
  ? getInterpolatedPoints(this.configuration, clockwise)
125
130
  : clockwise;
126
- const worldPoints = updatedPoints.map((canvasPoint) => viewport.canvasToWorld(canvasPoint));
127
- annotation.data.contour.polyline = worldPoints;
128
- annotation.data.contour.closed = true;
129
- annotation.invalidated = true;
131
+ updateContourPolyline(annotation, {
132
+ points: updatedPoints,
133
+ closed: true,
134
+ }, viewport);
130
135
  const { textBox } = annotation.data.handles;
131
136
  if (!textBox.hasMoved) {
132
- triggerAnnotationCompleted(annotation);
137
+ triggerContourAnnotationCompleted(annotation, contourHoleProcessingEnabled);
133
138
  }
134
139
  this.isDrawing = false;
135
140
  this.drawData = undefined;
@@ -149,7 +154,7 @@ function removeCrossedLinesOnCompleteDraw() {
149
154
  this.drawData.canvasPoints = canvasPoints.splice(0, indexToRemoveUpTo);
150
155
  }
151
156
  }
152
- function completeDrawOpenContour(element) {
157
+ function completeDrawOpenContour(element, contourHoleProcessingEnabled) {
153
158
  const { canvasPoints } = this.drawData;
154
159
  if (this.haltDrawing(element, canvasPoints)) {
155
160
  return false;
@@ -160,11 +165,12 @@ function completeDrawOpenContour(element) {
160
165
  const updatedPoints = shouldSmooth(this.configuration, annotation)
161
166
  ? getInterpolatedPoints(this.configuration, canvasPoints)
162
167
  : canvasPoints;
163
- const worldPoints = updatedPoints.map((canvasPoint) => viewport.canvasToWorld(canvasPoint));
164
- annotation.data.contour.polyline = worldPoints;
165
- annotation.data.contour.closed = false;
166
- annotation.invalidated = true;
168
+ updateContourPolyline(annotation, {
169
+ points: updatedPoints,
170
+ closed: false,
171
+ }, viewport);
167
172
  const { textBox } = annotation.data.handles;
173
+ const worldPoints = annotation.data.contour.polyline;
168
174
  annotation.data.handles.points = [
169
175
  worldPoints[0],
170
176
  worldPoints[worldPoints.length - 1],
@@ -174,7 +180,7 @@ function completeDrawOpenContour(element) {
174
180
  findOpenUShapedContourVectorToPeak(canvasPoints, viewport);
175
181
  }
176
182
  if (!textBox.hasMoved) {
177
- triggerAnnotationCompleted(annotation);
183
+ triggerContourAnnotationCompleted(annotation, contourHoleProcessingEnabled);
178
184
  }
179
185
  this.isDrawing = false;
180
186
  this.drawData = undefined;
@@ -213,15 +219,15 @@ function applyCreateOnCross(evt, crossingIndex) {
213
219
  }
214
220
  function cancelDrawing(element) {
215
221
  const { allowOpenContours } = this.configuration;
216
- const { canvasPoints } = this.drawData;
222
+ const { canvasPoints, contourHoleProcessingEnabled } = this.drawData;
217
223
  const firstPoint = canvasPoints[0];
218
224
  const lastPoint = canvasPoints[canvasPoints.length - 1];
219
225
  if (allowOpenContours &&
220
226
  !pointsAreWithinCloseContourProximity(firstPoint, lastPoint, this.configuration.closeContourProximity)) {
221
- this.completeDrawOpenContour(element);
227
+ this.completeDrawOpenContour(element, contourHoleProcessingEnabled);
222
228
  }
223
229
  else {
224
- this.completeDrawClosedContour(element);
230
+ this.completeDrawClosedContour(element, contourHoleProcessingEnabled);
225
231
  }
226
232
  }
227
233
  function shouldHaltDrawing(canvasPoints, subPixelResolution) {