@cornerstonejs/tools 1.50.3 → 1.51.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 (489) hide show
  1. package/dist/cjs/eventListeners/annotations/annotationCompletedListener.d.ts +2 -0
  2. package/dist/cjs/eventListeners/annotations/annotationCompletedListener.js +35 -0
  3. package/dist/cjs/eventListeners/annotations/annotationCompletedListener.js.map +1 -0
  4. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +2 -0
  5. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +174 -0
  6. package/dist/cjs/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -0
  7. package/dist/cjs/eventListeners/annotations/contourSegmentation/index.d.ts +1 -0
  8. package/dist/cjs/eventListeners/annotations/contourSegmentation/index.js +9 -0
  9. package/dist/cjs/eventListeners/annotations/contourSegmentation/index.js.map +1 -0
  10. package/dist/cjs/eventListeners/annotations/index.d.ts +2 -1
  11. package/dist/cjs/eventListeners/annotations/index.js +3 -1
  12. package/dist/cjs/eventListeners/annotations/index.js.map +1 -1
  13. package/dist/cjs/eventListeners/index.d.ts +2 -2
  14. package/dist/cjs/eventListeners/index.js +2 -1
  15. package/dist/cjs/eventListeners/index.js.map +1 -1
  16. package/dist/cjs/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.d.ts +3 -0
  17. package/dist/cjs/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +89 -0
  18. package/dist/cjs/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js.map +1 -0
  19. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js +5 -53
  20. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  21. package/dist/cjs/init.js +2 -0
  22. package/dist/cjs/init.js.map +1 -1
  23. package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +3 -1
  24. package/dist/cjs/stateManagement/annotation/helpers/state.js +21 -1
  25. package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -1
  26. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +1 -0
  27. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +3 -0
  28. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  29. package/dist/cjs/store/addTool.d.ts +1 -0
  30. package/dist/cjs/store/addTool.js +6 -1
  31. package/dist/cjs/store/addTool.js.map +1 -1
  32. package/dist/cjs/store/index.d.ts +2 -2
  33. package/dist/cjs/store/index.js +2 -1
  34. package/dist/cjs/store/index.js.map +1 -1
  35. package/dist/cjs/store/removeEnabledElement.js +1 -2
  36. package/dist/cjs/store/removeEnabledElement.js.map +1 -1
  37. package/dist/cjs/tools/AdvancedMagnifyTool.js +3 -10
  38. package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -1
  39. package/dist/cjs/tools/annotation/AngleTool.js +5 -18
  40. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  41. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +9 -28
  42. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  43. package/dist/cjs/tools/annotation/BidirectionalTool.js +7 -22
  44. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  45. package/dist/cjs/tools/annotation/CircleROITool.js +7 -22
  46. package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
  47. package/dist/cjs/tools/annotation/CobbAngleTool.js +5 -18
  48. package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
  49. package/dist/cjs/tools/annotation/EllipticalROITool.js +7 -22
  50. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  51. package/dist/cjs/tools/annotation/KeyImageTool.js +5 -12
  52. package/dist/cjs/tools/annotation/KeyImageTool.js.map +1 -1
  53. package/dist/cjs/tools/annotation/LengthTool.js +5 -18
  54. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  55. package/dist/cjs/tools/annotation/LivewireContourTool.d.ts +4 -1
  56. package/dist/cjs/tools/annotation/LivewireContourTool.js +30 -22
  57. package/dist/cjs/tools/annotation/LivewireContourTool.js.map +1 -1
  58. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +2 -1
  59. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js +11 -0
  60. package/dist/cjs/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
  61. package/dist/cjs/tools/annotation/PlanarFreehandROITool.d.ts +2 -10
  62. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +6 -22
  63. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  64. package/dist/cjs/tools/annotation/ProbeTool.js +8 -23
  65. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  66. package/dist/cjs/tools/annotation/RectangleROITool.js +8 -22
  67. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  68. package/dist/cjs/tools/annotation/SplineROITool.d.ts +8 -9
  69. package/dist/cjs/tools/annotation/SplineROITool.js +27 -10
  70. package/dist/cjs/tools/annotation/SplineROITool.js.map +1 -1
  71. package/dist/cjs/tools/annotation/UltrasoundDirectionalTool.js +5 -18
  72. package/dist/cjs/tools/annotation/UltrasoundDirectionalTool.js.map +1 -1
  73. package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +7 -6
  74. package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
  75. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +8 -5
  76. package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  77. package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js +8 -8
  78. package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
  79. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js +6 -5
  80. package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
  81. package/dist/cjs/tools/base/ContourBaseTool.d.ts +2 -8
  82. package/dist/cjs/tools/base/ContourBaseTool.js.map +1 -1
  83. package/dist/cjs/tools/base/ContourSegmentationBaseTool.d.ts +3 -2
  84. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js +13 -1
  85. package/dist/cjs/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  86. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +3 -9
  87. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  88. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +3 -9
  89. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  90. package/dist/cjs/types/AnnotationRenderContext.d.ts +11 -0
  91. package/dist/cjs/types/AnnotationRenderContext.js +3 -0
  92. package/dist/cjs/types/AnnotationRenderContext.js.map +1 -0
  93. package/dist/cjs/types/IToolGroup.d.ts +2 -1
  94. package/dist/cjs/types/index.d.ts +2 -1
  95. package/dist/cjs/utilities/contourSegmentation/areSameSegment.d.ts +2 -0
  96. package/dist/cjs/utilities/contourSegmentation/areSameSegment.js +12 -0
  97. package/dist/cjs/utilities/contourSegmentation/areSameSegment.js.map +1 -0
  98. package/dist/cjs/utilities/contourSegmentation/index.d.ts +2 -0
  99. package/dist/cjs/utilities/contourSegmentation/index.js +11 -0
  100. package/dist/cjs/utilities/contourSegmentation/index.js.map +1 -0
  101. package/dist/cjs/utilities/contourSegmentation/isContourSegmentationAnnotation.d.ts +3 -0
  102. package/dist/cjs/utilities/contourSegmentation/isContourSegmentationAnnotation.js +8 -0
  103. package/dist/cjs/utilities/contourSegmentation/isContourSegmentationAnnotation.js.map +1 -0
  104. package/dist/cjs/utilities/contours/areCoplanarContours.d.ts +2 -0
  105. package/dist/cjs/utilities/contours/areCoplanarContours.js +19 -0
  106. package/dist/cjs/utilities/contours/areCoplanarContours.js.map +1 -0
  107. package/dist/cjs/utilities/contours/index.d.ts +2 -1
  108. package/dist/cjs/utilities/contours/index.js +3 -1
  109. package/dist/cjs/utilities/contours/index.js.map +1 -1
  110. package/dist/cjs/utilities/contours/reverseIfAntiClockwise.js +3 -22
  111. package/dist/cjs/utilities/contours/reverseIfAntiClockwise.js.map +1 -1
  112. package/dist/cjs/utilities/math/aabb/index.d.ts +1 -0
  113. package/dist/cjs/utilities/math/aabb/index.js +3 -1
  114. package/dist/cjs/utilities/math/aabb/index.js.map +1 -1
  115. package/dist/cjs/utilities/math/aabb/intersectAABB.d.ts +2 -0
  116. package/dist/cjs/utilities/math/aabb/intersectAABB.js +10 -0
  117. package/dist/cjs/utilities/math/aabb/intersectAABB.js.map +1 -0
  118. package/dist/cjs/utilities/math/point/distanceToPointSquared.js +4 -1
  119. package/dist/cjs/utilities/math/point/distanceToPointSquared.js.map +1 -1
  120. package/dist/cjs/utilities/math/polyline/areLineSegmentsIntersecting.d.ts +2 -0
  121. package/dist/cjs/utilities/math/polyline/areLineSegmentsIntersecting.js +59 -0
  122. package/dist/cjs/utilities/math/polyline/areLineSegmentsIntersecting.js.map +1 -0
  123. package/dist/cjs/utilities/math/polyline/combinePolyline.d.ts +4 -0
  124. package/dist/cjs/utilities/math/polyline/combinePolyline.js +213 -0
  125. package/dist/cjs/utilities/math/polyline/combinePolyline.js.map +1 -0
  126. package/dist/cjs/utilities/math/polyline/containsPoint.d.ts +2 -0
  127. package/dist/cjs/utilities/math/polyline/containsPoint.js +36 -0
  128. package/dist/cjs/utilities/math/polyline/containsPoint.js.map +1 -0
  129. package/dist/cjs/utilities/math/polyline/getAABB.d.ts +2 -0
  130. package/dist/cjs/utilities/math/polyline/getAABB.js +18 -0
  131. package/dist/cjs/utilities/math/polyline/getAABB.js.map +1 -0
  132. package/dist/cjs/utilities/math/polyline/getArea.d.ts +2 -0
  133. package/dist/cjs/utilities/math/polyline/{calculateAreaOfPoints.js → getArea.js} +3 -3
  134. package/dist/cjs/utilities/math/polyline/getArea.js.map +1 -0
  135. package/dist/cjs/utilities/math/polyline/getClosestLineSegmentIntersection.d.ts +5 -0
  136. package/dist/cjs/utilities/math/polyline/getClosestLineSegmentIntersection.js +51 -0
  137. package/dist/cjs/utilities/math/polyline/getClosestLineSegmentIntersection.js.map +1 -0
  138. package/dist/cjs/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.d.ts +2 -0
  139. package/dist/cjs/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.js +28 -0
  140. package/dist/cjs/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.js.map +1 -0
  141. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.d.ts +2 -0
  142. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.js +20 -0
  143. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.js.map +1 -0
  144. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsIndexes.d.ts +2 -0
  145. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsIndexes.js +22 -0
  146. package/dist/cjs/utilities/math/polyline/getLineSegmentIntersectionsIndexes.js.map +1 -0
  147. package/dist/cjs/utilities/math/polyline/getLineSegmentsIntersection.d.ts +2 -0
  148. package/dist/cjs/utilities/math/polyline/getLineSegmentsIntersection.js +21 -0
  149. package/dist/cjs/utilities/math/polyline/getLineSegmentsIntersection.js.map +1 -0
  150. package/dist/cjs/utilities/math/polyline/getNormal2.d.ts +2 -0
  151. package/dist/cjs/utilities/math/polyline/getNormal2.js +12 -0
  152. package/dist/cjs/utilities/math/polyline/getNormal2.js.map +1 -0
  153. package/dist/cjs/utilities/math/polyline/getNormal3.d.ts +2 -0
  154. package/dist/cjs/utilities/math/polyline/getNormal3.js +29 -0
  155. package/dist/cjs/utilities/math/polyline/getNormal3.js.map +1 -0
  156. package/dist/cjs/utilities/math/polyline/getSignedArea.d.ts +2 -0
  157. package/dist/cjs/utilities/math/polyline/getSignedArea.js +20 -0
  158. package/dist/cjs/utilities/math/polyline/getSignedArea.js.map +1 -0
  159. package/dist/cjs/utilities/math/polyline/index.d.ts +14 -3
  160. package/dist/cjs/utilities/math/polyline/index.js +28 -6
  161. package/dist/cjs/utilities/math/polyline/index.js.map +1 -1
  162. package/dist/cjs/utilities/math/polyline/intersectPolyline.d.ts +2 -0
  163. package/dist/cjs/utilities/math/polyline/intersectPolyline.js +20 -0
  164. package/dist/cjs/utilities/math/polyline/intersectPolyline.js.map +1 -0
  165. package/dist/cjs/utilities/math/polyline/isClosed.d.ts +2 -0
  166. package/dist/cjs/utilities/math/polyline/isClosed.js +39 -0
  167. package/dist/cjs/utilities/math/polyline/isClosed.js.map +1 -0
  168. package/dist/esm/eventListeners/annotations/annotationCompletedListener.js +9 -0
  169. package/dist/esm/eventListeners/annotations/annotationCompletedListener.js.map +1 -0
  170. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +153 -0
  171. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js.map +1 -0
  172. package/dist/esm/eventListeners/annotations/contourSegmentation/index.js +2 -0
  173. package/dist/esm/eventListeners/annotations/contourSegmentation/index.js.map +1 -0
  174. package/dist/esm/eventListeners/annotations/index.js +2 -1
  175. package/dist/esm/eventListeners/annotations/index.js.map +1 -1
  176. package/dist/esm/eventListeners/index.js +2 -2
  177. package/dist/esm/eventListeners/index.js.map +1 -1
  178. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +61 -0
  179. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js.map +1 -0
  180. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +5 -53
  181. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  182. package/dist/esm/init.js +3 -1
  183. package/dist/esm/init.js.map +1 -1
  184. package/dist/esm/stateManagement/annotation/helpers/state.js +19 -1
  185. package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -1
  186. package/dist/esm/store/ToolGroupManager/ToolGroup.js +3 -0
  187. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  188. package/dist/esm/store/addTool.js +4 -0
  189. package/dist/esm/store/addTool.js.map +1 -1
  190. package/dist/esm/store/index.js +2 -2
  191. package/dist/esm/store/index.js.map +1 -1
  192. package/dist/esm/store/removeEnabledElement.js +1 -2
  193. package/dist/esm/store/removeEnabledElement.js.map +1 -1
  194. package/dist/esm/tools/AdvancedMagnifyTool.js +4 -11
  195. package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -1
  196. package/dist/esm/tools/annotation/AngleTool.js +6 -19
  197. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  198. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +10 -29
  199. package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  200. package/dist/esm/tools/annotation/BidirectionalTool.js +8 -23
  201. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  202. package/dist/esm/tools/annotation/CircleROITool.js +8 -23
  203. package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
  204. package/dist/esm/tools/annotation/CobbAngleTool.js +6 -19
  205. package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
  206. package/dist/esm/tools/annotation/EllipticalROITool.js +8 -23
  207. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  208. package/dist/esm/tools/annotation/KeyImageTool.js +6 -13
  209. package/dist/esm/tools/annotation/KeyImageTool.js.map +1 -1
  210. package/dist/esm/tools/annotation/LengthTool.js +6 -19
  211. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  212. package/dist/esm/tools/annotation/LivewireContourTool.js +31 -23
  213. package/dist/esm/tools/annotation/LivewireContourTool.js.map +1 -1
  214. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js +11 -0
  215. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js.map +1 -1
  216. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +7 -23
  217. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  218. package/dist/esm/tools/annotation/ProbeTool.js +9 -24
  219. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  220. package/dist/esm/tools/annotation/RectangleROITool.js +9 -23
  221. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  222. package/dist/esm/tools/annotation/SplineROITool.js +26 -9
  223. package/dist/esm/tools/annotation/SplineROITool.js.map +1 -1
  224. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +6 -19
  225. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js.map +1 -1
  226. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +7 -6
  227. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -1
  228. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +8 -5
  229. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -1
  230. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js +8 -8
  231. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -1
  232. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +6 -5
  233. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -1
  234. package/dist/esm/tools/base/ContourBaseTool.js.map +1 -1
  235. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +13 -1
  236. package/dist/esm/tools/base/ContourSegmentationBaseTool.js.map +1 -1
  237. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +4 -10
  238. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  239. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +4 -10
  240. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  241. package/dist/esm/types/AnnotationRenderContext.js +2 -0
  242. package/dist/esm/types/AnnotationRenderContext.js.map +1 -0
  243. package/dist/esm/utilities/contourSegmentation/areSameSegment.js +9 -0
  244. package/dist/esm/utilities/contourSegmentation/areSameSegment.js.map +1 -0
  245. package/dist/esm/utilities/contourSegmentation/index.js +3 -0
  246. package/dist/esm/utilities/contourSegmentation/index.js.map +1 -0
  247. package/dist/esm/utilities/contourSegmentation/isContourSegmentationAnnotation.js +4 -0
  248. package/dist/esm/utilities/contourSegmentation/isContourSegmentationAnnotation.js.map +1 -0
  249. package/dist/esm/utilities/contours/areCoplanarContours.js +16 -0
  250. package/dist/esm/utilities/contours/areCoplanarContours.js.map +1 -0
  251. package/dist/esm/utilities/contours/index.js +2 -1
  252. package/dist/esm/utilities/contours/index.js.map +1 -1
  253. package/dist/esm/utilities/contours/reverseIfAntiClockwise.js +3 -22
  254. package/dist/esm/utilities/contours/reverseIfAntiClockwise.js.map +1 -1
  255. package/dist/esm/utilities/math/aabb/index.js +1 -0
  256. package/dist/esm/utilities/math/aabb/index.js.map +1 -1
  257. package/dist/esm/utilities/math/aabb/intersectAABB.js +7 -0
  258. package/dist/esm/utilities/math/aabb/intersectAABB.js.map +1 -0
  259. package/dist/esm/utilities/math/point/distanceToPointSquared.js +4 -1
  260. package/dist/esm/utilities/math/point/distanceToPointSquared.js.map +1 -1
  261. package/dist/esm/utilities/math/polyline/areLineSegmentsIntersecting.js +56 -0
  262. package/dist/esm/utilities/math/polyline/areLineSegmentsIntersecting.js.map +1 -0
  263. package/dist/esm/utilities/math/polyline/combinePolyline.js +187 -0
  264. package/dist/esm/utilities/math/polyline/combinePolyline.js.map +1 -0
  265. package/dist/esm/utilities/math/polyline/containsPoint.js +30 -0
  266. package/dist/esm/utilities/math/polyline/containsPoint.js.map +1 -0
  267. package/dist/esm/utilities/math/polyline/getAABB.js +15 -0
  268. package/dist/esm/utilities/math/polyline/getAABB.js.map +1 -0
  269. package/dist/esm/utilities/math/polyline/{calculateAreaOfPoints.js → getArea.js} +2 -2
  270. package/dist/esm/utilities/math/polyline/getArea.js.map +1 -0
  271. package/dist/esm/utilities/math/polyline/getClosestLineSegmentIntersection.js +45 -0
  272. package/dist/esm/utilities/math/polyline/getClosestLineSegmentIntersection.js.map +1 -0
  273. package/dist/esm/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.js +22 -0
  274. package/dist/esm/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.js.map +1 -0
  275. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.js +14 -0
  276. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.js.map +1 -0
  277. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsIndexes.js +16 -0
  278. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsIndexes.js.map +1 -0
  279. package/dist/esm/utilities/math/polyline/getLineSegmentsIntersection.js +18 -0
  280. package/dist/esm/utilities/math/polyline/getLineSegmentsIntersection.js.map +1 -0
  281. package/dist/esm/utilities/math/polyline/getNormal2.js +6 -0
  282. package/dist/esm/utilities/math/polyline/getNormal2.js.map +1 -0
  283. package/dist/esm/utilities/math/polyline/getNormal3.js +26 -0
  284. package/dist/esm/utilities/math/polyline/getNormal3.js.map +1 -0
  285. package/dist/esm/utilities/math/polyline/getSignedArea.js +17 -0
  286. package/dist/esm/utilities/math/polyline/getSignedArea.js.map +1 -0
  287. package/dist/esm/utilities/math/polyline/index.js +14 -3
  288. package/dist/esm/utilities/math/polyline/index.js.map +1 -1
  289. package/dist/esm/utilities/math/polyline/intersectPolyline.js +14 -0
  290. package/dist/esm/utilities/math/polyline/intersectPolyline.js.map +1 -0
  291. package/dist/esm/utilities/math/polyline/isClosed.js +13 -0
  292. package/dist/esm/utilities/math/polyline/isClosed.js.map +1 -0
  293. package/dist/types/eventListeners/annotations/annotationCompletedListener.d.ts +3 -0
  294. package/dist/types/eventListeners/annotations/annotationCompletedListener.d.ts.map +1 -0
  295. package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +3 -0
  296. package/dist/types/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts.map +1 -0
  297. package/dist/types/eventListeners/annotations/contourSegmentation/index.d.ts +2 -0
  298. package/dist/types/eventListeners/annotations/contourSegmentation/index.d.ts.map +1 -0
  299. package/dist/types/eventListeners/annotations/index.d.ts +2 -1
  300. package/dist/types/eventListeners/annotations/index.d.ts.map +1 -1
  301. package/dist/types/eventListeners/index.d.ts +2 -2
  302. package/dist/types/eventListeners/index.d.ts.map +1 -1
  303. package/dist/types/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.d.ts +4 -0
  304. package/dist/types/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.d.ts.map +1 -0
  305. package/dist/types/eventListeners/segmentation/segmentationDataModifiedEventListener.d.ts.map +1 -1
  306. package/dist/types/init.d.ts.map +1 -1
  307. package/dist/types/stateManagement/annotation/helpers/state.d.ts +3 -1
  308. package/dist/types/stateManagement/annotation/helpers/state.d.ts.map +1 -1
  309. package/dist/types/store/ToolGroupManager/ToolGroup.d.ts +1 -0
  310. package/dist/types/store/ToolGroupManager/ToolGroup.d.ts.map +1 -1
  311. package/dist/types/store/addTool.d.ts +1 -0
  312. package/dist/types/store/addTool.d.ts.map +1 -1
  313. package/dist/types/store/index.d.ts +2 -2
  314. package/dist/types/store/index.d.ts.map +1 -1
  315. package/dist/types/store/removeEnabledElement.d.ts.map +1 -1
  316. package/dist/types/tools/AdvancedMagnifyTool.d.ts.map +1 -1
  317. package/dist/types/tools/annotation/AngleTool.d.ts.map +1 -1
  318. package/dist/types/tools/annotation/ArrowAnnotateTool.d.ts.map +1 -1
  319. package/dist/types/tools/annotation/BidirectionalTool.d.ts.map +1 -1
  320. package/dist/types/tools/annotation/CircleROITool.d.ts.map +1 -1
  321. package/dist/types/tools/annotation/CobbAngleTool.d.ts.map +1 -1
  322. package/dist/types/tools/annotation/EllipticalROITool.d.ts.map +1 -1
  323. package/dist/types/tools/annotation/KeyImageTool.d.ts.map +1 -1
  324. package/dist/types/tools/annotation/LengthTool.d.ts.map +1 -1
  325. package/dist/types/tools/annotation/LivewireContourTool.d.ts +4 -1
  326. package/dist/types/tools/annotation/LivewireContourTool.d.ts.map +1 -1
  327. package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +2 -1
  328. package/dist/types/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts.map +1 -1
  329. package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts +2 -10
  330. package/dist/types/tools/annotation/PlanarFreehandROITool.d.ts.map +1 -1
  331. package/dist/types/tools/annotation/ProbeTool.d.ts.map +1 -1
  332. package/dist/types/tools/annotation/RectangleROITool.d.ts.map +1 -1
  333. package/dist/types/tools/annotation/SplineROITool.d.ts +8 -9
  334. package/dist/types/tools/annotation/SplineROITool.d.ts.map +1 -1
  335. package/dist/types/tools/annotation/UltrasoundDirectionalTool.d.ts.map +1 -1
  336. package/dist/types/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts.map +1 -1
  337. package/dist/types/tools/annotation/planarFreehandROITool/drawLoop.d.ts.map +1 -1
  338. package/dist/types/tools/annotation/planarFreehandROITool/editLoopCommon.d.ts.map +1 -1
  339. package/dist/types/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts.map +1 -1
  340. package/dist/types/tools/base/ContourBaseTool.d.ts +2 -8
  341. package/dist/types/tools/base/ContourBaseTool.d.ts.map +1 -1
  342. package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts +3 -2
  343. package/dist/types/tools/base/ContourSegmentationBaseTool.d.ts.map +1 -1
  344. package/dist/types/tools/segmentation/RectangleROIStartEndThresholdTool.d.ts.map +1 -1
  345. package/dist/types/tools/segmentation/RectangleROIThresholdTool.d.ts.map +1 -1
  346. package/dist/types/types/AnnotationRenderContext.d.ts +12 -0
  347. package/dist/types/types/AnnotationRenderContext.d.ts.map +1 -0
  348. package/dist/types/types/IToolGroup.d.ts +2 -1
  349. package/dist/types/types/IToolGroup.d.ts.map +1 -1
  350. package/dist/types/types/index.d.ts +2 -1
  351. package/dist/types/types/index.d.ts.map +1 -1
  352. package/dist/types/utilities/contourSegmentation/areSameSegment.d.ts +3 -0
  353. package/dist/types/utilities/contourSegmentation/areSameSegment.d.ts.map +1 -0
  354. package/dist/types/utilities/contourSegmentation/index.d.ts +3 -0
  355. package/dist/types/utilities/contourSegmentation/index.d.ts.map +1 -0
  356. package/dist/types/utilities/contourSegmentation/isContourSegmentationAnnotation.d.ts +4 -0
  357. package/dist/types/utilities/contourSegmentation/isContourSegmentationAnnotation.d.ts.map +1 -0
  358. package/dist/types/utilities/contours/areCoplanarContours.d.ts +3 -0
  359. package/dist/types/utilities/contours/areCoplanarContours.d.ts.map +1 -0
  360. package/dist/types/utilities/contours/index.d.ts +2 -1
  361. package/dist/types/utilities/contours/index.d.ts.map +1 -1
  362. package/dist/types/utilities/contours/reverseIfAntiClockwise.d.ts.map +1 -1
  363. package/dist/types/utilities/math/aabb/index.d.ts +1 -0
  364. package/dist/types/utilities/math/aabb/index.d.ts.map +1 -1
  365. package/dist/types/utilities/math/aabb/intersectAABB.d.ts +3 -0
  366. package/dist/types/utilities/math/aabb/intersectAABB.d.ts.map +1 -0
  367. package/dist/types/utilities/math/point/distanceToPointSquared.d.ts.map +1 -1
  368. package/dist/types/utilities/math/polyline/areLineSegmentsIntersecting.d.ts +3 -0
  369. package/dist/types/utilities/math/polyline/areLineSegmentsIntersecting.d.ts.map +1 -0
  370. package/dist/types/utilities/math/polyline/combinePolyline.d.ts +5 -0
  371. package/dist/types/utilities/math/polyline/combinePolyline.d.ts.map +1 -0
  372. package/dist/types/utilities/math/polyline/containsPoint.d.ts +3 -0
  373. package/dist/types/utilities/math/polyline/containsPoint.d.ts.map +1 -0
  374. package/dist/types/utilities/math/polyline/getAABB.d.ts +3 -0
  375. package/dist/types/utilities/math/polyline/getAABB.d.ts.map +1 -0
  376. package/dist/types/utilities/math/polyline/getArea.d.ts +3 -0
  377. package/dist/types/utilities/math/polyline/getArea.d.ts.map +1 -0
  378. package/dist/types/utilities/math/polyline/getClosestLineSegmentIntersection.d.ts +6 -0
  379. package/dist/types/utilities/math/polyline/getClosestLineSegmentIntersection.d.ts.map +1 -0
  380. package/dist/types/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.d.ts +3 -0
  381. package/dist/types/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.d.ts.map +1 -0
  382. package/dist/types/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.d.ts +3 -0
  383. package/dist/types/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.d.ts.map +1 -0
  384. package/dist/types/utilities/math/polyline/getLineSegmentIntersectionsIndexes.d.ts +3 -0
  385. package/dist/types/utilities/math/polyline/getLineSegmentIntersectionsIndexes.d.ts.map +1 -0
  386. package/dist/types/utilities/math/polyline/getLineSegmentsIntersection.d.ts +3 -0
  387. package/dist/types/utilities/math/polyline/getLineSegmentsIntersection.d.ts.map +1 -0
  388. package/dist/types/utilities/math/polyline/getNormal2.d.ts +3 -0
  389. package/dist/types/utilities/math/polyline/getNormal2.d.ts.map +1 -0
  390. package/dist/types/utilities/math/polyline/getNormal3.d.ts +3 -0
  391. package/dist/types/utilities/math/polyline/getNormal3.d.ts.map +1 -0
  392. package/dist/types/utilities/math/polyline/getSignedArea.d.ts +3 -0
  393. package/dist/types/utilities/math/polyline/getSignedArea.d.ts.map +1 -0
  394. package/dist/types/utilities/math/polyline/index.d.ts +14 -3
  395. package/dist/types/utilities/math/polyline/index.d.ts.map +1 -1
  396. package/dist/types/utilities/math/polyline/intersectPolyline.d.ts +3 -0
  397. package/dist/types/utilities/math/polyline/intersectPolyline.d.ts.map +1 -0
  398. package/dist/types/utilities/math/polyline/isClosed.d.ts +3 -0
  399. package/dist/types/utilities/math/polyline/isClosed.d.ts.map +1 -0
  400. package/dist/umd/index.js +1 -2
  401. package/dist/umd/index.js.map +1 -1
  402. package/package.json +3 -3
  403. package/src/eventListeners/annotations/annotationCompletedListener.ts +13 -0
  404. package/src/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.ts +273 -0
  405. package/src/eventListeners/annotations/contourSegmentation/index.ts +1 -0
  406. package/src/eventListeners/annotations/index.ts +6 -1
  407. package/src/eventListeners/index.ts +2 -0
  408. package/src/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.ts +117 -0
  409. package/src/eventListeners/segmentation/segmentationDataModifiedEventListener.ts +5 -99
  410. package/src/init.ts +12 -1
  411. package/src/stateManagement/annotation/helpers/state.ts +42 -2
  412. package/src/store/ToolGroupManager/ToolGroup.ts +10 -0
  413. package/src/store/addTool.ts +11 -0
  414. package/src/store/index.ts +2 -1
  415. package/src/store/removeEnabledElement.ts +2 -1
  416. package/src/tools/AdvancedMagnifyTool.ts +4 -21
  417. package/src/tools/annotation/AngleTool.ts +8 -32
  418. package/src/tools/annotation/ArrowAnnotateTool.ts +12 -45
  419. package/src/tools/annotation/BidirectionalTool.ts +11 -39
  420. package/src/tools/annotation/CircleROITool.ts +10 -34
  421. package/src/tools/annotation/CobbAngleTool.ts +9 -32
  422. package/src/tools/annotation/EllipticalROITool.ts +10 -34
  423. package/src/tools/annotation/KeyImageTool.ts +9 -23
  424. package/src/tools/annotation/LengthTool.ts +9 -33
  425. package/src/tools/annotation/LivewireContourTool.ts +58 -33
  426. package/src/tools/annotation/PlanarFreehandContourSegmentationTool.ts +22 -1
  427. package/src/tools/annotation/PlanarFreehandROITool.ts +10 -53
  428. package/src/tools/annotation/ProbeTool.ts +11 -36
  429. package/src/tools/annotation/RectangleROITool.ts +11 -33
  430. package/src/tools/annotation/SplineROITool.ts +53 -24
  431. package/src/tools/annotation/UltrasoundDirectionalTool.ts +8 -29
  432. package/src/tools/annotation/planarFreehandROITool/closedContourEditLoop.ts +9 -11
  433. package/src/tools/annotation/planarFreehandROITool/drawLoop.ts +8 -5
  434. package/src/tools/annotation/planarFreehandROITool/editLoopCommon.ts +9 -8
  435. package/src/tools/annotation/planarFreehandROITool/openContourEditLoop.ts +7 -6
  436. package/src/tools/base/ContourBaseTool.ts +5 -8
  437. package/src/tools/base/ContourSegmentationBaseTool.ts +29 -6
  438. package/src/tools/segmentation/RectangleROIStartEndThresholdTool.ts +3 -13
  439. package/src/tools/segmentation/RectangleROIThresholdTool.ts +3 -14
  440. package/src/types/AnnotationRenderContext.ts +13 -0
  441. package/src/types/IToolGroup.ts +3 -1
  442. package/src/types/index.ts +3 -0
  443. package/src/utilities/contourSegmentation/areSameSegment.ts +24 -0
  444. package/src/utilities/contourSegmentation/index.ts +2 -0
  445. package/src/utilities/contourSegmentation/isContourSegmentationAnnotation.ts +8 -0
  446. package/src/utilities/contours/areCoplanarContours.ts +39 -0
  447. package/src/utilities/contours/index.ts +2 -0
  448. package/src/utilities/contours/reverseIfAntiClockwise.ts +6 -25
  449. package/src/utilities/math/aabb/index.ts +1 -0
  450. package/src/utilities/math/aabb/intersectAABB.ts +19 -0
  451. package/src/utilities/math/point/distanceToPointSquared.ts +6 -1
  452. package/src/utilities/math/polyline/areLineSegmentsIntersecting.ts +118 -0
  453. package/src/utilities/math/polyline/combinePolyline.ts +350 -0
  454. package/src/utilities/math/polyline/containsPoint.ts +63 -0
  455. package/src/utilities/math/polyline/getAABB.ts +20 -0
  456. package/src/utilities/math/polyline/{calculateAreaOfPoints.ts → getArea.ts} +1 -1
  457. package/src/utilities/math/polyline/getClosestLineSegmentIntersection.ts +72 -0
  458. package/src/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.ts +42 -0
  459. package/src/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.ts +30 -0
  460. package/src/utilities/math/polyline/getLineSegmentIntersectionsIndexes.ts +35 -0
  461. package/src/utilities/math/polyline/getLineSegmentsIntersection.ts +47 -0
  462. package/src/utilities/math/polyline/getNormal2.ts +17 -0
  463. package/src/utilities/math/polyline/getNormal3.ts +53 -0
  464. package/src/utilities/math/polyline/getSignedArea.ts +47 -0
  465. package/src/utilities/math/polyline/index.ts +27 -8
  466. package/src/utilities/math/polyline/intersectPolyline.ts +34 -0
  467. package/src/utilities/math/polyline/isClosed.ts +26 -0
  468. package/dist/cjs/utilities/math/polyline/calculateAreaOfPoints.d.ts +0 -2
  469. package/dist/cjs/utilities/math/polyline/calculateAreaOfPoints.js.map +0 -1
  470. package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.d.ts +0 -9
  471. package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.js +0 -160
  472. package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.js.map +0 -1
  473. package/dist/cjs/utilities/math/polyline/pointInPolyline.d.ts +0 -2
  474. package/dist/cjs/utilities/math/polyline/pointInPolyline.js +0 -15
  475. package/dist/cjs/utilities/math/polyline/pointInPolyline.js.map +0 -1
  476. package/dist/esm/utilities/math/polyline/calculateAreaOfPoints.js.map +0 -1
  477. package/dist/esm/utilities/math/polyline/getIntersectionWithPolyline.js +0 -154
  478. package/dist/esm/utilities/math/polyline/getIntersectionWithPolyline.js.map +0 -1
  479. package/dist/esm/utilities/math/polyline/pointInPolyline.js +0 -12
  480. package/dist/esm/utilities/math/polyline/pointInPolyline.js.map +0 -1
  481. package/dist/types/utilities/math/polyline/calculateAreaOfPoints.d.ts +0 -3
  482. package/dist/types/utilities/math/polyline/calculateAreaOfPoints.d.ts.map +0 -1
  483. package/dist/types/utilities/math/polyline/getIntersectionWithPolyline.d.ts +0 -10
  484. package/dist/types/utilities/math/polyline/getIntersectionWithPolyline.d.ts.map +0 -1
  485. package/dist/types/utilities/math/polyline/pointInPolyline.d.ts +0 -3
  486. package/dist/types/utilities/math/polyline/pointInPolyline.d.ts.map +0 -1
  487. package/dist/umd/index.js.LICENSE.txt +0 -6
  488. package/src/utilities/math/polyline/getIntersectionWithPolyline.ts +0 -275
  489. package/src/utilities/math/polyline/pointInPolyline.ts +0 -19
@@ -32,6 +32,17 @@ export function addTool(ToolClass): void {
32
32
  };
33
33
  }
34
34
 
35
+ /**
36
+ * Check if a given tool is already registered
37
+ * @param ToolClass - A tool class to check
38
+ * @returns True if the tool is alredy registered or false otherwise
39
+ */
40
+ export function hasTool(ToolClass): boolean {
41
+ const toolName = ToolClass.toolName;
42
+
43
+ return !!(toolName && state.tools[toolName]);
44
+ }
45
+
35
46
  /**
36
47
  * Removes the tool class from the cornerstoneTools.
37
48
  *
@@ -1,4 +1,4 @@
1
- import { addTool, removeTool } from './addTool';
1
+ import { addTool, hasTool, removeTool } from './addTool';
2
2
  import addEnabledElement from './addEnabledElement';
3
3
  import removeEnabledElement from './removeEnabledElement';
4
4
  import cancelActiveManipulations from './cancelActiveManipulations';
@@ -16,6 +16,7 @@ export {
16
16
  // Store
17
17
  state,
18
18
  addTool,
19
+ hasTool,
19
20
  removeTool,
20
21
  addEnabledElement,
21
22
  removeEnabledElement,
@@ -4,6 +4,7 @@ import {
4
4
  wheelEventListener,
5
5
  touchEventListeners,
6
6
  keyEventListener,
7
+ imageChangeEventListener,
7
8
  } from '../eventListeners';
8
9
  import {
9
10
  imageRenderedEventDispatcher,
@@ -23,7 +24,6 @@ import { removeAnnotation } from '../stateManagement';
23
24
  import getSynchronizersForViewport from './SynchronizerManager/getSynchronizersForViewport';
24
25
  import getToolGroupForViewport from './ToolGroupManager/getToolGroupForViewport';
25
26
  import { annotationRenderingEngine } from '../utilities/triggerAnnotationRender';
26
- import imageChangeEventListener from '../eventListeners/segmentation/imageChangeEventListener';
27
27
 
28
28
  const VIEWPORT_ELEMENT = 'viewport-element';
29
29
 
@@ -52,6 +52,7 @@ function removeEnabledElement(
52
52
  imageRenderedEventDispatcher.disable(element);
53
53
  cameraModifiedEventDispatcher.disable(element);
54
54
  imageSpacingCalibratedEventDispatcher.disable(element);
55
+
55
56
  // Dispatchers: interaction
56
57
  mouseToolEventDispatcher.disable(element);
57
58
  keyboardToolEventDispatcher.disable(element);
@@ -1,11 +1,6 @@
1
1
  import { AnnotationTool } from './base';
2
2
 
3
- import {
4
- getEnabledElement,
5
- eventTarget,
6
- triggerEvent,
7
- utilities as csUtils,
8
- } from '@cornerstonejs/core';
3
+ import { getEnabledElement, utilities as csUtils } from '@cornerstonejs/core';
9
4
  import type { Types } from '@cornerstonejs/core';
10
5
 
11
6
  import {
@@ -14,6 +9,7 @@ import {
14
9
  } from '../stateManagement/annotation/annotationState';
15
10
  import { isAnnotationLocked } from '../stateManagement/annotation/annotationLocking';
16
11
  import { isAnnotationVisible } from '../stateManagement/annotation/annotationVisibility';
12
+ import { triggerAnnotationCompleted } from '../stateManagement/annotation/helpers/state';
17
13
  import {
18
14
  drawCircle as drawCircleSvg,
19
15
  drawHandles as drawHandlesSvg,
@@ -34,7 +30,6 @@ import {
34
30
  } from '../types';
35
31
  import { AdvancedMagnifyAnnotation } from '../types/ToolSpecificAnnotationTypes';
36
32
 
37
- import { AnnotationCompletedEventDetail } from '../types/EventTypes';
38
33
  import triggerAnnotationRenderForViewportIds from '../utilities/triggerAnnotationRenderForViewportIds';
39
34
  import { StyleSpecifier } from '../types/AnnotationStyle';
40
35
  import { getCanvasCircleRadius } from '../utilities/math/circle';
@@ -330,13 +325,7 @@ class AdvancedMagnifyTool extends AnnotationTool {
330
325
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
331
326
 
332
327
  if (newAnnotation) {
333
- const eventType = Events.ANNOTATION_COMPLETED;
334
-
335
- const eventDetail: AnnotationCompletedEventDetail = {
336
- annotation,
337
- };
338
-
339
- triggerEvent(eventTarget, eventType, eventDetail);
328
+ triggerAnnotationCompleted(annotation);
340
329
  }
341
330
  };
342
331
 
@@ -457,13 +446,7 @@ class AdvancedMagnifyTool extends AnnotationTool {
457
446
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
458
447
 
459
448
  if (newAnnotation) {
460
- const eventType = Events.ANNOTATION_COMPLETED;
461
-
462
- const eventDetail: AnnotationCompletedEventDetail = {
463
- annotation,
464
- };
465
-
466
- triggerEvent(eventTarget, eventType, eventDetail);
449
+ triggerAnnotationCompleted(annotation);
467
450
  }
468
451
 
469
452
  this.editData = null;
@@ -1,10 +1,5 @@
1
1
  import { Events } from '../../enums';
2
- import {
3
- getEnabledElement,
4
- triggerEvent,
5
- eventTarget,
6
- utilities as csUtils,
7
- } from '@cornerstonejs/core';
2
+ import { getEnabledElement, utilities as csUtils } from '@cornerstonejs/core';
8
3
  import type { Types } from '@cornerstonejs/core';
9
4
 
10
5
  import { AnnotationTool } from '../base';
@@ -28,9 +23,9 @@ import { state } from '../../store';
28
23
  import { getViewportIdsWithToolToRender } from '../../utilities/viewportFilters';
29
24
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
30
25
  import {
31
- AnnotationCompletedEventDetail,
32
- AnnotationModifiedEventDetail,
33
- } from '../../types/EventTypes';
26
+ triggerAnnotationCompleted,
27
+ triggerAnnotationModified,
28
+ } from '../../stateManagement/annotation/helpers/state';
34
29
 
35
30
  import {
36
31
  resetElementCursor,
@@ -370,13 +365,7 @@ class AngleTool extends AnnotationTool {
370
365
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
371
366
 
372
367
  if (newAnnotation) {
373
- const eventType = Events.ANNOTATION_COMPLETED;
374
-
375
- const eventDetail: AnnotationCompletedEventDetail = {
376
- annotation,
377
- };
378
-
379
- triggerEvent(eventTarget, eventType, eventDetail);
368
+ triggerAnnotationCompleted(annotation);
380
369
  }
381
370
 
382
371
  this.editData = null;
@@ -458,13 +447,7 @@ class AngleTool extends AnnotationTool {
458
447
  );
459
448
 
460
449
  if (newAnnotation) {
461
- const eventType = Events.ANNOTATION_COMPLETED;
462
-
463
- const eventDetail: AnnotationCompletedEventDetail = {
464
- annotation,
465
- };
466
-
467
- triggerEvent(eventTarget, eventType, eventDetail);
450
+ triggerAnnotationCompleted(annotation);
468
451
  }
469
452
 
470
453
  this.editData = null;
@@ -804,7 +787,7 @@ class AngleTool extends AnnotationTool {
804
787
 
805
788
  _calculateCachedStats(annotation, renderingEngine, enabledElement) {
806
789
  const data = annotation.data;
807
- const { viewportId, renderingEngineId } = enabledElement;
790
+ const { element } = enabledElement.viewport;
808
791
 
809
792
  // Until we have all three anchors bail out
810
793
  if (data.handles.points.length !== 3) {
@@ -841,14 +824,7 @@ class AngleTool extends AnnotationTool {
841
824
  annotation.invalidated = false;
842
825
 
843
826
  // Dispatching annotation modified
844
- const eventType = Events.ANNOTATION_MODIFIED;
845
-
846
- const eventDetail: AnnotationModifiedEventDetail = {
847
- annotation,
848
- viewportId,
849
- renderingEngineId,
850
- };
851
- triggerEvent(eventTarget, eventType, eventDetail);
827
+ triggerAnnotationModified(annotation, element);
852
828
 
853
829
  return cachedStats;
854
830
  }
@@ -1,10 +1,5 @@
1
1
  import { Events } from '../../enums';
2
- import {
3
- getEnabledElement,
4
- triggerEvent,
5
- eventTarget,
6
- utilities as csUtils,
7
- } from '@cornerstonejs/core';
2
+ import { getEnabledElement, utilities as csUtils } from '@cornerstonejs/core';
8
3
  import type { Types } from '@cornerstonejs/core';
9
4
 
10
5
  import { AnnotationTool } from '../base';
@@ -26,9 +21,9 @@ import { getViewportIdsWithToolToRender } from '../../utilities/viewportFilters'
26
21
  import { getTextBoxCoordsCanvas } from '../../utilities/drawing';
27
22
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
28
23
  import {
29
- AnnotationCompletedEventDetail,
30
- AnnotationModifiedEventDetail,
31
- } from '../../types/EventTypes';
24
+ triggerAnnotationCompleted,
25
+ triggerAnnotationModified,
26
+ } from '../../stateManagement/annotation/helpers/state';
32
27
 
33
28
  import {
34
29
  resetElementCursor,
@@ -312,8 +307,7 @@ class ArrowAnnotateTool extends AnnotationTool {
312
307
  this._deactivateDraw(element);
313
308
  resetElementCursor(element);
314
309
 
315
- const enabledElement = getEnabledElement(element);
316
- const { viewportId, renderingEngineId, renderingEngine } = enabledElement;
310
+ const { renderingEngine } = getEnabledElement(element);
317
311
 
318
312
  if (
319
313
  this.isHandleOutsideImage &&
@@ -336,13 +330,7 @@ class ArrowAnnotateTool extends AnnotationTool {
336
330
  }
337
331
  annotation.data.text = text;
338
332
 
339
- const eventType = Events.ANNOTATION_COMPLETED;
340
-
341
- const eventDetail: AnnotationCompletedEventDetail = {
342
- annotation,
343
- };
344
-
345
- triggerEvent(eventTarget, eventType, eventDetail);
333
+ triggerAnnotationCompleted(annotation);
346
334
 
347
335
  triggerAnnotationRenderForViewportIds(
348
336
  renderingEngine,
@@ -350,15 +338,7 @@ class ArrowAnnotateTool extends AnnotationTool {
350
338
  );
351
339
  });
352
340
  } else {
353
- const eventType = Events.ANNOTATION_MODIFIED;
354
-
355
- const eventDetail: AnnotationModifiedEventDetail = {
356
- annotation,
357
- viewportId,
358
- renderingEngineId,
359
- };
360
-
361
- triggerEvent(eventTarget, eventType, eventDetail);
341
+ triggerAnnotationModified(annotation, element);
362
342
  }
363
343
 
364
344
  this.editData = null;
@@ -472,8 +452,8 @@ class ArrowAnnotateTool extends AnnotationTool {
472
452
  _doneChangingTextCallback(element, annotation, updatedText): void {
473
453
  annotation.data.text = updatedText;
474
454
 
475
- const { renderingEngine, viewportId, renderingEngineId } =
476
- getEnabledElement(element);
455
+ const enabledElement = getEnabledElement(element);
456
+ const { renderingEngine } = enabledElement;
477
457
 
478
458
  const viewportIdsToRender = getViewportIdsWithToolToRender(
479
459
  element,
@@ -482,13 +462,7 @@ class ArrowAnnotateTool extends AnnotationTool {
482
462
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
483
463
 
484
464
  // Dispatching annotation modified
485
- const eventType = Events.ANNOTATION_MODIFIED;
486
-
487
- triggerEvent(eventTarget, eventType, {
488
- annotation,
489
- viewportId,
490
- renderingEngineId,
491
- });
465
+ triggerAnnotationModified(annotation, element);
492
466
  }
493
467
 
494
468
  cancel = (element: HTMLDivElement) => {
@@ -505,8 +479,7 @@ class ArrowAnnotateTool extends AnnotationTool {
505
479
  annotation.highlighted = false;
506
480
  data.handles.activeHandleIndex = null;
507
481
 
508
- const enabledElement = getEnabledElement(element);
509
- const { renderingEngine } = enabledElement;
482
+ const { renderingEngine } = getEnabledElement(element);
510
483
 
511
484
  triggerAnnotationRenderForViewportIds(
512
485
  renderingEngine,
@@ -514,13 +487,7 @@ class ArrowAnnotateTool extends AnnotationTool {
514
487
  );
515
488
 
516
489
  if (newAnnotation) {
517
- const eventType = Events.ANNOTATION_COMPLETED;
518
-
519
- const eventDetail: AnnotationCompletedEventDetail = {
520
- annotation,
521
- };
522
-
523
- triggerEvent(eventTarget, eventType, eventDetail);
490
+ triggerAnnotationCompleted(annotation);
524
491
  }
525
492
 
526
493
  this.editData = null;
@@ -1,10 +1,5 @@
1
1
  import { vec2, vec3 } from 'gl-matrix';
2
- import {
3
- getEnabledElement,
4
- triggerEvent,
5
- eventTarget,
6
- utilities as csUtils,
7
- } from '@cornerstonejs/core';
2
+ import { getEnabledElement, utilities as csUtils } from '@cornerstonejs/core';
8
3
  import type { Types } from '@cornerstonejs/core';
9
4
 
10
5
  import {
@@ -21,6 +16,10 @@ import {
21
16
  } from '../../stateManagement/annotation/annotationState';
22
17
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
23
18
  import { isAnnotationVisible } from '../../stateManagement/annotation/annotationVisibility';
19
+ import {
20
+ triggerAnnotationCompleted,
21
+ triggerAnnotationModified,
22
+ } from '../../stateManagement/annotation/helpers/state';
24
23
  import {
25
24
  drawLine as drawLineSvg,
26
25
  drawHandles as drawHandlesSvg,
@@ -46,12 +45,6 @@ import {
46
45
  } from '../../types';
47
46
  import { BidirectionalAnnotation } from '../../types/ToolSpecificAnnotationTypes';
48
47
 
49
- import {
50
- AnnotationCompletedEventDetail,
51
- AnnotationModifiedEventDetail,
52
- MouseDragEventType,
53
- MouseMoveEventType,
54
- } from '../../types/EventTypes';
55
48
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
56
49
  import { StyleSpecifier } from '../../types/AnnotationStyle';
57
50
 
@@ -416,8 +409,7 @@ class BidirectionalTool extends AnnotationTool {
416
409
 
417
410
  resetElementCursor(element);
418
411
 
419
- const enabledElement = getEnabledElement(element);
420
- const { renderingEngine } = enabledElement;
412
+ const { renderingEngine } = getEnabledElement(element);
421
413
 
422
414
  if (this.editData.handleIndex !== undefined) {
423
415
  const { points } = data.handles;
@@ -489,13 +481,7 @@ class BidirectionalTool extends AnnotationTool {
489
481
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
490
482
 
491
483
  if (newAnnotation) {
492
- const eventType = Events.ANNOTATION_COMPLETED;
493
-
494
- const eventDetail: AnnotationCompletedEventDetail = {
495
- annotation,
496
- };
497
-
498
- triggerEvent(eventTarget, eventType, eventDetail);
484
+ triggerAnnotationCompleted(annotation);
499
485
  }
500
486
 
501
487
  this.editData = null;
@@ -907,8 +893,7 @@ class BidirectionalTool extends AnnotationTool {
907
893
  annotation.highlighted = false;
908
894
  data.handles.activeHandleIndex = null;
909
895
 
910
- const enabledElement = getEnabledElement(element);
911
- const { renderingEngine } = enabledElement;
896
+ const { renderingEngine } = getEnabledElement(element);
912
897
 
913
898
  triggerAnnotationRenderForViewportIds(
914
899
  renderingEngine,
@@ -916,13 +901,7 @@ class BidirectionalTool extends AnnotationTool {
916
901
  );
917
902
 
918
903
  if (newAnnotation) {
919
- const eventType = Events.ANNOTATION_COMPLETED;
920
-
921
- const eventDetail: AnnotationCompletedEventDetail = {
922
- annotation,
923
- };
924
-
925
- triggerEvent(eventTarget, eventType, eventDetail);
904
+ triggerAnnotationCompleted(annotation);
926
905
  }
927
906
 
928
907
  this.editData = null;
@@ -1270,7 +1249,7 @@ class BidirectionalTool extends AnnotationTool {
1270
1249
 
1271
1250
  _calculateCachedStats = (annotation, renderingEngine, enabledElement) => {
1272
1251
  const { data } = annotation;
1273
- const { viewportId, renderingEngineId } = enabledElement;
1252
+ const { element } = enabledElement.viewport;
1274
1253
 
1275
1254
  const worldPos1 = data.handles.points[0];
1276
1255
  const worldPos2 = data.handles.points[1];
@@ -1318,14 +1297,7 @@ class BidirectionalTool extends AnnotationTool {
1318
1297
  annotation.invalidated = false;
1319
1298
 
1320
1299
  // Dispatching annotation modified
1321
- const eventType = Events.ANNOTATION_MODIFIED;
1322
-
1323
- const eventDetail: AnnotationModifiedEventDetail = {
1324
- annotation,
1325
- viewportId,
1326
- renderingEngineId,
1327
- };
1328
- triggerEvent(eventTarget, eventType, eventDetail);
1300
+ triggerAnnotationModified(annotation, element);
1329
1301
 
1330
1302
  return cachedStats;
1331
1303
  };
@@ -3,8 +3,6 @@ import { AnnotationTool } from '../base';
3
3
  import {
4
4
  getEnabledElement,
5
5
  VolumeViewport,
6
- eventTarget,
7
- triggerEvent,
8
6
  utilities as csUtils,
9
7
  } from '@cornerstonejs/core';
10
8
  import type { Types } from '@cornerstonejs/core';
@@ -24,6 +22,10 @@ import {
24
22
  } from '../../stateManagement/annotation/annotationState';
25
23
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
26
24
  import { isAnnotationVisible } from '../../stateManagement/annotation/annotationVisibility';
25
+ import {
26
+ triggerAnnotationCompleted,
27
+ triggerAnnotationModified,
28
+ } from '../../stateManagement/annotation/helpers/state';
27
29
  import {
28
30
  drawCircle as drawCircleSvg,
29
31
  drawHandles as drawHandlesSvg,
@@ -48,10 +50,6 @@ import {
48
50
  } from '../../types';
49
51
  import { CircleROIAnnotation } from '../../types/ToolSpecificAnnotationTypes';
50
52
 
51
- import {
52
- AnnotationCompletedEventDetail,
53
- AnnotationModifiedEventDetail,
54
- } from '../../types/EventTypes';
55
53
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
56
54
  import { pointInShapeCallback } from '../../utilities';
57
55
  import { StyleSpecifier } from '../../types/AnnotationStyle';
@@ -388,8 +386,7 @@ class CircleROITool extends AnnotationTool {
388
386
 
389
387
  resetElementCursor(element);
390
388
 
391
- const enabledElement = getEnabledElement(element);
392
- const { renderingEngine } = enabledElement;
389
+ const { renderingEngine } = getEnabledElement(element);
393
390
 
394
391
  this.editData = null;
395
392
  this.isDrawing = false;
@@ -404,13 +401,7 @@ class CircleROITool extends AnnotationTool {
404
401
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
405
402
 
406
403
  if (newAnnotation) {
407
- const eventType = Events.ANNOTATION_COMPLETED;
408
-
409
- const eventDetail: AnnotationCompletedEventDetail = {
410
- annotation,
411
- };
412
-
413
- triggerEvent(eventTarget, eventType, eventDetail);
404
+ triggerAnnotationCompleted(annotation);
414
405
  }
415
406
  };
416
407
 
@@ -536,8 +527,7 @@ class CircleROITool extends AnnotationTool {
536
527
  annotation.highlighted = false;
537
528
  data.handles.activeHandleIndex = null;
538
529
 
539
- const enabledElement = getEnabledElement(element);
540
- const { renderingEngine } = enabledElement;
530
+ const { renderingEngine } = getEnabledElement(element);
541
531
 
542
532
  triggerAnnotationRenderForViewportIds(
543
533
  renderingEngine,
@@ -545,13 +535,7 @@ class CircleROITool extends AnnotationTool {
545
535
  );
546
536
 
547
537
  if (newAnnotation) {
548
- const eventType = Events.ANNOTATION_COMPLETED;
549
-
550
- const eventDetail: AnnotationCompletedEventDetail = {
551
- annotation,
552
- };
553
-
554
- triggerEvent(eventTarget, eventType, eventDetail);
538
+ triggerAnnotationCompleted(annotation);
555
539
  }
556
540
 
557
541
  this.editData = null;
@@ -874,7 +858,7 @@ class CircleROITool extends AnnotationTool {
874
858
  enabledElement
875
859
  ) => {
876
860
  const data = annotation.data;
877
- const { viewportId, renderingEngineId } = enabledElement;
861
+ const { element } = viewport;
878
862
 
879
863
  const { points } = data.handles;
880
864
 
@@ -1020,15 +1004,7 @@ class CircleROITool extends AnnotationTool {
1020
1004
  annotation.invalidated = false;
1021
1005
 
1022
1006
  // Dispatching annotation modified
1023
- const eventType = Events.ANNOTATION_MODIFIED;
1024
-
1025
- const eventDetail: AnnotationModifiedEventDetail = {
1026
- annotation,
1027
- viewportId,
1028
- renderingEngineId,
1029
- };
1030
-
1031
- triggerEvent(eventTarget, eventType, eventDetail);
1007
+ triggerAnnotationModified(annotation, element);
1032
1008
 
1033
1009
  return cachedStats;
1034
1010
  };
@@ -1,10 +1,6 @@
1
1
  import { vec3 } from 'gl-matrix';
2
2
  import { Events } from '../../enums';
3
- import {
4
- getEnabledElement,
5
- triggerEvent,
6
- eventTarget,
7
- } from '@cornerstonejs/core';
3
+ import { getEnabledElement } from '@cornerstonejs/core';
8
4
  import type { Types } from '@cornerstonejs/core';
9
5
 
10
6
  import { AnnotationTool } from '../base';
@@ -15,6 +11,10 @@ import {
15
11
  removeAnnotation,
16
12
  } from '../../stateManagement/annotation/annotationState';
17
13
  import { isAnnotationLocked } from '../../stateManagement/annotation/annotationLocking';
14
+ import {
15
+ triggerAnnotationCompleted,
16
+ triggerAnnotationModified,
17
+ } from '../../stateManagement/annotation/helpers/state';
18
18
  import * as lineSegment from '../../utilities/math/line';
19
19
  import angleBetweenLines from '../../utilities/math/angle/angleBetweenLines';
20
20
  import { midPoint2 } from '../../utilities/math/midPoint';
@@ -29,10 +29,6 @@ import { state } from '../../store';
29
29
  import { getViewportIdsWithToolToRender } from '../../utilities/viewportFilters';
30
30
  import { getTextBoxCoordsCanvas } from '../../utilities/drawing';
31
31
  import triggerAnnotationRenderForViewportIds from '../../utilities/triggerAnnotationRenderForViewportIds';
32
- import {
33
- AnnotationCompletedEventDetail,
34
- AnnotationModifiedEventDetail,
35
- } from '../../types/EventTypes';
36
32
 
37
33
  import {
38
34
  resetElementCursor,
@@ -352,13 +348,7 @@ class CobbAngleTool extends AnnotationTool {
352
348
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
353
349
 
354
350
  if (newAnnotation) {
355
- const eventType = Events.ANNOTATION_COMPLETED;
356
-
357
- const eventDetail: AnnotationCompletedEventDetail = {
358
- annotation,
359
- };
360
-
361
- triggerEvent(eventTarget, eventType, eventDetail);
351
+ triggerAnnotationCompleted(annotation);
362
352
  }
363
353
 
364
354
  this.editData = null;
@@ -513,13 +503,7 @@ class CobbAngleTool extends AnnotationTool {
513
503
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);
514
504
 
515
505
  if (newAnnotation) {
516
- const eventType = Events.ANNOTATION_COMPLETED;
517
-
518
- const eventDetail: AnnotationCompletedEventDetail = {
519
- annotation,
520
- };
521
-
522
- triggerEvent(eventTarget, eventType, eventDetail);
506
+ triggerAnnotationCompleted(annotation);
523
507
  }
524
508
 
525
509
  this.editData = null;
@@ -938,7 +922,6 @@ class CobbAngleTool extends AnnotationTool {
938
922
 
939
923
  _calculateCachedStats(annotation, renderingEngine, enabledElement) {
940
924
  const data = annotation.data;
941
- const { viewportId, renderingEngineId } = enabledElement;
942
925
 
943
926
  // Until we have all four anchors bail out
944
927
  if (data.handles.points.length !== 4) {
@@ -973,6 +956,7 @@ class CobbAngleTool extends AnnotationTool {
973
956
  }
974
957
  }
975
958
  const { viewport } = enabledElement;
959
+ const { element } = viewport;
976
960
 
977
961
  const canvasPoints = data.handles.points.map((p) =>
978
962
  viewport.worldToCanvas(p)
@@ -1028,14 +1012,7 @@ class CobbAngleTool extends AnnotationTool {
1028
1012
  annotation.invalidated = false;
1029
1013
 
1030
1014
  // Dispatching annotation modified
1031
- const eventType = Events.ANNOTATION_MODIFIED;
1032
-
1033
- const eventDetail: AnnotationModifiedEventDetail = {
1034
- annotation,
1035
- viewportId,
1036
- renderingEngineId,
1037
- };
1038
- triggerEvent(eventTarget, eventType, eventDetail);
1015
+ triggerAnnotationModified(annotation, element);
1039
1016
 
1040
1017
  return cachedStats;
1041
1018
  }