@cornerstonejs/tools 3.0.2 → 3.0.3

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 (1262) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +4 -183
  3. package/dist/esm/config.d.ts +30 -0
  4. package/dist/esm/config.js +23 -0
  5. package/dist/esm/constants/COLOR_LUT.d.ts +3 -0
  6. package/dist/esm/constants/COLOR_LUT.js +258 -0
  7. package/dist/esm/constants/index.d.ts +2 -0
  8. package/dist/esm/constants/index.js +2 -0
  9. package/dist/esm/cursors/ImageMouseCursor.d.ts +9 -0
  10. package/dist/esm/cursors/ImageMouseCursor.js +22 -0
  11. package/dist/esm/cursors/MouseCursor.d.ts +12 -0
  12. package/dist/esm/cursors/MouseCursor.js +88 -0
  13. package/dist/esm/cursors/SVGCursorDescriptor.d.ts +9 -0
  14. package/dist/esm/cursors/SVGCursorDescriptor.js +442 -0
  15. package/dist/esm/cursors/SVGMouseCursor.d.ts +6 -0
  16. package/dist/esm/cursors/SVGMouseCursor.js +74 -0
  17. package/dist/esm/cursors/elementCursor.d.ts +6 -0
  18. package/dist/esm/cursors/elementCursor.js +36 -0
  19. package/dist/esm/cursors/index.d.ts +8 -0
  20. package/dist/esm/cursors/index.js +8 -0
  21. package/dist/esm/cursors/setCursorForElement.d.ts +2 -0
  22. package/dist/esm/cursors/setCursorForElement.js +15 -0
  23. package/dist/esm/drawingSvg/_getHash.d.ts +2 -0
  24. package/dist/esm/drawingSvg/_getHash.js +4 -0
  25. package/dist/esm/drawingSvg/clearByToolType.d.ts +2 -0
  26. package/dist/esm/drawingSvg/clearByToolType.js +13 -0
  27. package/dist/esm/drawingSvg/draw.d.ts +3 -0
  28. package/dist/esm/drawingSvg/draw.js +7 -0
  29. package/dist/esm/drawingSvg/drawArrow.d.ts +3 -0
  30. package/dist/esm/drawingSvg/drawArrow.js +79 -0
  31. package/dist/esm/drawingSvg/drawCircle.d.ts +4 -0
  32. package/dist/esm/drawingSvg/drawCircle.js +42 -0
  33. package/dist/esm/drawingSvg/drawEllipse.d.ts +4 -0
  34. package/dist/esm/drawingSvg/drawEllipse.js +10 -0
  35. package/dist/esm/drawingSvg/drawEllipseByCoordinates.d.ts +4 -0
  36. package/dist/esm/drawingSvg/drawEllipseByCoordinates.js +46 -0
  37. package/dist/esm/drawingSvg/drawHandle.d.ts +4 -0
  38. package/dist/esm/drawingSvg/drawHandle.js +60 -0
  39. package/dist/esm/drawingSvg/drawHandles.d.ts +4 -0
  40. package/dist/esm/drawingSvg/drawHandles.js +7 -0
  41. package/dist/esm/drawingSvg/drawHeight.d.ts +3 -0
  42. package/dist/esm/drawingSvg/drawHeight.js +45 -0
  43. package/dist/esm/drawingSvg/drawLine.d.ts +3 -0
  44. package/dist/esm/drawingSvg/drawLine.js +39 -0
  45. package/dist/esm/drawingSvg/drawLink.d.ts +4 -0
  46. package/dist/esm/drawingSvg/drawLink.js +26 -0
  47. package/dist/esm/drawingSvg/drawLinkedTextBox.d.ts +4 -0
  48. package/dist/esm/drawingSvg/drawLinkedTextBox.js +15 -0
  49. package/dist/esm/drawingSvg/drawPath.d.ts +11 -0
  50. package/dist/esm/drawingSvg/drawPath.js +48 -0
  51. package/dist/esm/drawingSvg/drawPolyline.d.ts +13 -0
  52. package/dist/esm/drawingSvg/drawPolyline.js +40 -0
  53. package/dist/esm/drawingSvg/drawRect.d.ts +3 -0
  54. package/dist/esm/drawingSvg/drawRect.js +9 -0
  55. package/dist/esm/drawingSvg/drawRectByCoordinates.d.ts +3 -0
  56. package/dist/esm/drawingSvg/drawRectByCoordinates.js +52 -0
  57. package/dist/esm/drawingSvg/drawRedactionRect.d.ts +3 -0
  58. package/dist/esm/drawingSvg/drawRedactionRect.js +37 -0
  59. package/dist/esm/drawingSvg/drawTextBox.d.ts +4 -0
  60. package/dist/esm/drawingSvg/drawTextBox.js +123 -0
  61. package/dist/esm/drawingSvg/getSvgDrawingHelper.d.ts +3 -0
  62. package/dist/esm/drawingSvg/getSvgDrawingHelper.js +65 -0
  63. package/dist/esm/drawingSvg/index.d.ts +19 -0
  64. package/dist/esm/drawingSvg/index.js +19 -0
  65. package/dist/esm/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
  66. package/dist/esm/drawingSvg/setAttributesIfNecessary.js +13 -0
  67. package/dist/esm/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
  68. package/dist/esm/drawingSvg/setNewAttributesIfValid.js +9 -0
  69. package/dist/esm/enums/AnnotationStyleStates.d.ts +8 -0
  70. package/dist/esm/enums/AnnotationStyleStates.js +9 -0
  71. package/dist/esm/enums/ChangeTypes.d.ts +11 -0
  72. package/dist/esm/enums/ChangeTypes.js +12 -0
  73. package/dist/esm/enums/Events.d.ts +42 -0
  74. package/dist/esm/enums/Events.js +43 -0
  75. package/dist/esm/enums/SegmentationRepresentations.d.ts +6 -0
  76. package/dist/esm/enums/SegmentationRepresentations.js +7 -0
  77. package/dist/esm/enums/StrategyCallbacks.d.ts +19 -0
  78. package/dist/esm/enums/StrategyCallbacks.js +20 -0
  79. package/dist/esm/enums/ToolBindings.d.ts +26 -0
  80. package/dist/esm/enums/ToolBindings.js +28 -0
  81. package/dist/esm/enums/ToolModes.d.ts +7 -0
  82. package/dist/esm/enums/ToolModes.js +8 -0
  83. package/dist/esm/enums/Touch.d.ts +7 -0
  84. package/dist/esm/enums/Touch.js +8 -0
  85. package/dist/esm/enums/WorkerTypes.d.ts +10 -0
  86. package/dist/esm/enums/WorkerTypes.js +11 -0
  87. package/dist/esm/enums/index.d.ts +11 -0
  88. package/dist/esm/enums/index.js +10 -0
  89. package/dist/esm/eventDispatchers/annotationInterpolationEventDispatcher.d.ts +5 -0
  90. package/dist/esm/eventDispatchers/annotationInterpolationEventDispatcher.js +17 -0
  91. package/dist/esm/eventDispatchers/annotationModifiedEventDispatcher.d.ts +5 -0
  92. package/dist/esm/eventDispatchers/annotationModifiedEventDispatcher.js +18 -0
  93. package/dist/esm/eventDispatchers/cameraModifiedEventDispatcher.d.ts +5 -0
  94. package/dist/esm/eventDispatchers/cameraModifiedEventDispatcher.js +26 -0
  95. package/dist/esm/eventDispatchers/cameraResetEventDispatcher.d.ts +5 -0
  96. package/dist/esm/eventDispatchers/cameraResetEventDispatcher.js +26 -0
  97. package/dist/esm/eventDispatchers/imageRenderedEventDispatcher.d.ts +5 -0
  98. package/dist/esm/eventDispatchers/imageRenderedEventDispatcher.js +15 -0
  99. package/dist/esm/eventDispatchers/imageSpacingCalibratedEventDispatcher.d.ts +5 -0
  100. package/dist/esm/eventDispatchers/imageSpacingCalibratedEventDispatcher.js +26 -0
  101. package/dist/esm/eventDispatchers/index.d.ts +9 -0
  102. package/dist/esm/eventDispatchers/index.js +9 -0
  103. package/dist/esm/eventDispatchers/keyboardEventHandlers/index.d.ts +3 -0
  104. package/dist/esm/eventDispatchers/keyboardEventHandlers/index.js +3 -0
  105. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.d.ts +2 -0
  106. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +25 -0
  107. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyUp.d.ts +2 -0
  108. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyUp.js +16 -0
  109. package/dist/esm/eventDispatchers/keyboardToolEventDispatcher.d.ts +5 -0
  110. package/dist/esm/eventDispatchers/keyboardToolEventDispatcher.js +15 -0
  111. package/dist/esm/eventDispatchers/mouseEventHandlers/index.d.ts +9 -0
  112. package/dist/esm/eventDispatchers/mouseEventHandlers/index.js +9 -0
  113. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseClick.d.ts +2 -0
  114. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseClick.js +3 -0
  115. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDoubleClick.d.ts +2 -0
  116. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDoubleClick.js +3 -0
  117. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.d.ts +2 -0
  118. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +90 -0
  119. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.d.ts +2 -0
  120. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +19 -0
  121. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
  122. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +34 -0
  123. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDrag.d.ts +2 -0
  124. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDrag.js +13 -0
  125. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.d.ts +2 -0
  126. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.js +37 -0
  127. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseUp.d.ts +2 -0
  128. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseUp.js +3 -0
  129. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseWheel.d.ts +3 -0
  130. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseWheel.js +16 -0
  131. package/dist/esm/eventDispatchers/mouseToolEventDispatcher.d.ts +5 -0
  132. package/dist/esm/eventDispatchers/mouseToolEventDispatcher.js +27 -0
  133. package/dist/esm/eventDispatchers/shared/customCallbackHandler.d.ts +1 -0
  134. package/dist/esm/eventDispatchers/shared/customCallbackHandler.js +30 -0
  135. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.d.ts +2 -0
  136. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +29 -0
  137. package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.d.ts +2 -0
  138. package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js +28 -0
  139. package/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.d.ts +2 -0
  140. package/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.js +29 -0
  141. package/dist/esm/eventDispatchers/shared/getMouseModifier.d.ts +3 -0
  142. package/dist/esm/eventDispatchers/shared/getMouseModifier.js +32 -0
  143. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.d.ts +3 -0
  144. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +28 -0
  145. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +4 -0
  146. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +32 -0
  147. package/dist/esm/eventDispatchers/shared/getToolsWithModesForMouseEvent.d.ts +5 -0
  148. package/dist/esm/eventDispatchers/shared/getToolsWithModesForMouseEvent.js +23 -0
  149. package/dist/esm/eventDispatchers/shared/getToolsWithModesForTouchEvent.d.ts +5 -0
  150. package/dist/esm/eventDispatchers/shared/getToolsWithModesForTouchEvent.js +23 -0
  151. package/dist/esm/eventDispatchers/touchEventHandlers/index.d.ts +7 -0
  152. package/dist/esm/eventDispatchers/touchEventHandlers/index.js +7 -0
  153. package/dist/esm/eventDispatchers/touchEventHandlers/touchDrag.d.ts +2 -0
  154. package/dist/esm/eventDispatchers/touchEventHandlers/touchDrag.js +13 -0
  155. package/dist/esm/eventDispatchers/touchEventHandlers/touchEnd.d.ts +2 -0
  156. package/dist/esm/eventDispatchers/touchEventHandlers/touchEnd.js +3 -0
  157. package/dist/esm/eventDispatchers/touchEventHandlers/touchPress.d.ts +2 -0
  158. package/dist/esm/eventDispatchers/touchEventHandlers/touchPress.js +3 -0
  159. package/dist/esm/eventDispatchers/touchEventHandlers/touchStart.d.ts +2 -0
  160. package/dist/esm/eventDispatchers/touchEventHandlers/touchStart.js +79 -0
  161. package/dist/esm/eventDispatchers/touchEventHandlers/touchStartActivate.d.ts +2 -0
  162. package/dist/esm/eventDispatchers/touchEventHandlers/touchStartActivate.js +19 -0
  163. package/dist/esm/eventDispatchers/touchEventHandlers/touchTap.d.ts +2 -0
  164. package/dist/esm/eventDispatchers/touchEventHandlers/touchTap.js +3 -0
  165. package/dist/esm/eventDispatchers/touchToolEventDispatcher.d.ts +5 -0
  166. package/dist/esm/eventDispatchers/touchToolEventDispatcher.js +22 -0
  167. package/dist/esm/eventListeners/annotations/annotationCompletedListener.d.ts +2 -0
  168. package/dist/esm/eventListeners/annotations/annotationCompletedListener.js +8 -0
  169. package/dist/esm/eventListeners/annotations/annotationModifiedListener.d.ts +2 -0
  170. package/dist/esm/eventListeners/annotations/annotationModifiedListener.js +6 -0
  171. package/dist/esm/eventListeners/annotations/annotationRemovedListener.d.ts +2 -0
  172. package/dist/esm/eventListeners/annotations/annotationRemovedListener.js +8 -0
  173. package/dist/esm/eventListeners/annotations/annotationSelectionListener.d.ts +2 -0
  174. package/dist/esm/eventListeners/annotations/annotationSelectionListener.js +15 -0
  175. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.d.ts +5 -0
  176. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +233 -0
  177. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.d.ts +2 -0
  178. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationRemoved.js +5 -0
  179. package/dist/esm/eventListeners/annotations/contourSegmentation/index.d.ts +2 -0
  180. package/dist/esm/eventListeners/annotations/contourSegmentation/index.js +2 -0
  181. package/dist/esm/eventListeners/annotations/index.d.ts +5 -0
  182. package/dist/esm/eventListeners/annotations/index.js +5 -0
  183. package/dist/esm/eventListeners/index.d.ts +7 -0
  184. package/dist/esm/eventListeners/index.js +7 -0
  185. package/dist/esm/eventListeners/keyboard/index.d.ts +9 -0
  186. package/dist/esm/eventListeners/keyboard/index.js +13 -0
  187. package/dist/esm/eventListeners/keyboard/keyDownListener.d.ts +4 -0
  188. package/dist/esm/eventListeners/keyboard/keyDownListener.js +64 -0
  189. package/dist/esm/eventListeners/mouse/getMouseEventPoints.d.ts +2 -0
  190. package/dist/esm/eventListeners/mouse/getMouseEventPoints.js +31 -0
  191. package/dist/esm/eventListeners/mouse/index.d.ts +7 -0
  192. package/dist/esm/eventListeners/mouse/index.js +24 -0
  193. package/dist/esm/eventListeners/mouse/mouseDoubleClickListener.d.ts +2 -0
  194. package/dist/esm/eventListeners/mouse/mouseDoubleClickListener.js +32 -0
  195. package/dist/esm/eventListeners/mouse/mouseDownListener.d.ts +4 -0
  196. package/dist/esm/eventListeners/mouse/mouseDownListener.js +266 -0
  197. package/dist/esm/eventListeners/mouse/mouseMoveListener.d.ts +2 -0
  198. package/dist/esm/eventListeners/mouse/mouseMoveListener.js +28 -0
  199. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.d.ts +5 -0
  200. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +128 -0
  201. package/dist/esm/eventListeners/segmentation/index.d.ts +4 -0
  202. package/dist/esm/eventListeners/segmentation/index.js +4 -0
  203. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.d.ts +3 -0
  204. package/dist/esm/eventListeners/segmentation/labelmap/onLabelmapSegmentationDataModified.js +83 -0
  205. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.d.ts +3 -0
  206. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +12 -0
  207. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.d.ts +3 -0
  208. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +6 -0
  209. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedListener.d.ts +3 -0
  210. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedListener.js +6 -0
  211. package/dist/esm/eventListeners/touch/getTouchEventPoints.d.ts +2 -0
  212. package/dist/esm/eventListeners/touch/getTouchEventPoints.js +38 -0
  213. package/dist/esm/eventListeners/touch/index.d.ts +7 -0
  214. package/dist/esm/eventListeners/touch/index.js +17 -0
  215. package/dist/esm/eventListeners/touch/preventGhostClick.d.ts +7 -0
  216. package/dist/esm/eventListeners/touch/preventGhostClick.js +47 -0
  217. package/dist/esm/eventListeners/touch/touchStartListener.d.ts +2 -0
  218. package/dist/esm/eventListeners/touch/touchStartListener.js +282 -0
  219. package/dist/esm/eventListeners/wheel/index.d.ts +7 -0
  220. package/dist/esm/eventListeners/wheel/index.js +12 -0
  221. package/dist/esm/eventListeners/wheel/normalizeWheel.d.ts +6 -0
  222. package/dist/esm/eventListeners/wheel/normalizeWheel.js +48 -0
  223. package/dist/esm/eventListeners/wheel/wheelListener.d.ts +2 -0
  224. package/dist/esm/eventListeners/wheel/wheelListener.js +34 -0
  225. package/dist/esm/index.d.ts +17 -0
  226. package/dist/esm/index.js +17 -0
  227. package/dist/esm/init.d.ts +4 -0
  228. package/dist/esm/init.js +70 -0
  229. package/dist/esm/stateManagement/annotation/AnnotationGroup.d.ts +18 -0
  230. package/dist/esm/stateManagement/annotation/AnnotationGroup.js +69 -0
  231. package/dist/esm/stateManagement/annotation/AnnotationRenderingEngine.d.ts +20 -0
  232. package/dist/esm/stateManagement/annotation/AnnotationRenderingEngine.js +112 -0
  233. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +27 -0
  234. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +210 -0
  235. package/dist/esm/stateManagement/annotation/annotationLocking.d.ts +7 -0
  236. package/dist/esm/stateManagement/annotation/annotationLocking.js +73 -0
  237. package/dist/esm/stateManagement/annotation/annotationSelection.d.ts +7 -0
  238. package/dist/esm/stateManagement/annotation/annotationSelection.js +85 -0
  239. package/dist/esm/stateManagement/annotation/annotationState.d.ts +18 -0
  240. package/dist/esm/stateManagement/annotation/annotationState.js +118 -0
  241. package/dist/esm/stateManagement/annotation/annotationVisibility.d.ts +5 -0
  242. package/dist/esm/stateManagement/annotation/annotationVisibility.js +65 -0
  243. package/dist/esm/stateManagement/annotation/config/ToolStyle.d.ts +18 -0
  244. package/dist/esm/stateManagement/annotation/config/ToolStyle.js +135 -0
  245. package/dist/esm/stateManagement/annotation/config/getFont.d.ts +4 -0
  246. package/dist/esm/stateManagement/annotation/config/getFont.js +7 -0
  247. package/dist/esm/stateManagement/annotation/config/getState.d.ts +4 -0
  248. package/dist/esm/stateManagement/annotation/config/getState.js +21 -0
  249. package/dist/esm/stateManagement/annotation/config/helpers.d.ts +4 -0
  250. package/dist/esm/stateManagement/annotation/config/helpers.js +21 -0
  251. package/dist/esm/stateManagement/annotation/config/index.d.ts +4 -0
  252. package/dist/esm/stateManagement/annotation/config/index.js +4 -0
  253. package/dist/esm/stateManagement/annotation/helpers/state.d.ts +10 -0
  254. package/dist/esm/stateManagement/annotation/helpers/state.js +76 -0
  255. package/dist/esm/stateManagement/annotation/index.d.ts +34 -0
  256. package/dist/esm/stateManagement/annotation/index.js +15 -0
  257. package/dist/esm/stateManagement/annotation/resetAnnotationManager.d.ts +1 -0
  258. package/dist/esm/stateManagement/annotation/resetAnnotationManager.js +21 -0
  259. package/dist/esm/stateManagement/annotation/utilities/defineProperties.d.ts +4 -0
  260. package/dist/esm/stateManagement/annotation/utilities/defineProperties.js +22 -0
  261. package/dist/esm/stateManagement/index.d.ts +18 -0
  262. package/dist/esm/stateManagement/index.js +6 -0
  263. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.d.ts +20 -0
  264. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +153 -0
  265. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +91 -0
  266. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +470 -0
  267. package/dist/esm/stateManagement/segmentation/SegmentationStyle.d.ts +39 -0
  268. package/dist/esm/stateManagement/segmentation/SegmentationStyle.js +223 -0
  269. package/dist/esm/stateManagement/segmentation/activeSegmentation.d.ts +4 -0
  270. package/dist/esm/stateManagement/segmentation/activeSegmentation.js +9 -0
  271. package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -0
  272. package/dist/esm/stateManagement/segmentation/addColorLUT.js +25 -0
  273. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.d.ts +15 -0
  274. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationsToViewport.js +49 -0
  275. package/dist/esm/stateManagement/segmentation/addSegmentations.d.ts +3 -0
  276. package/dist/esm/stateManagement/segmentation/addSegmentations.js +14 -0
  277. package/dist/esm/stateManagement/segmentation/config/index.d.ts +4 -0
  278. package/dist/esm/stateManagement/segmentation/config/index.js +4 -0
  279. package/dist/esm/stateManagement/segmentation/config/segmentationColor.d.ts +6 -0
  280. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +50 -0
  281. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.d.ts +22 -0
  282. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +49 -0
  283. package/dist/esm/stateManagement/segmentation/config/styleHelpers.d.ts +25 -0
  284. package/dist/esm/stateManagement/segmentation/config/styleHelpers.js +37 -0
  285. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationAdded.d.ts +1 -0
  286. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationAdded.js +8 -0
  287. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.d.ts +1 -0
  288. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.js +12 -0
  289. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.d.ts +1 -0
  290. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.js +8 -0
  291. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.d.ts +1 -0
  292. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.js +8 -0
  293. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +2 -0
  294. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +10 -0
  295. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +2 -0
  296. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +10 -0
  297. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.d.ts +1 -0
  298. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.js +9 -0
  299. package/dist/esm/stateManagement/segmentation/getActiveSegmentation.d.ts +2 -0
  300. package/dist/esm/stateManagement/segmentation/getActiveSegmentation.js +5 -0
  301. package/dist/esm/stateManagement/segmentation/getColorLUT.d.ts +2 -0
  302. package/dist/esm/stateManagement/segmentation/getColorLUT.js +5 -0
  303. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -0
  304. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.js +5 -0
  305. package/dist/esm/stateManagement/segmentation/getGlobalStyle.d.ts +3 -0
  306. package/dist/esm/stateManagement/segmentation/getGlobalStyle.js +4 -0
  307. package/dist/esm/stateManagement/segmentation/getLabelmapImageIds.d.ts +1 -0
  308. package/dist/esm/stateManagement/segmentation/getLabelmapImageIds.js +7 -0
  309. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.d.ts +1 -0
  310. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.js +5 -0
  311. package/dist/esm/stateManagement/segmentation/getSegmentation.d.ts +2 -0
  312. package/dist/esm/stateManagement/segmentation/getSegmentation.js +5 -0
  313. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +14 -0
  314. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +17 -0
  315. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +5 -0
  316. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +5 -0
  317. package/dist/esm/stateManagement/segmentation/getSegmentations.d.ts +2 -0
  318. package/dist/esm/stateManagement/segmentation/getSegmentations.js +6 -0
  319. package/dist/esm/stateManagement/segmentation/getStackSegmentationImageIdsForViewport.d.ts +1 -0
  320. package/dist/esm/stateManagement/segmentation/getStackSegmentationImageIdsForViewport.js +5 -0
  321. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.d.ts +1 -0
  322. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +10 -0
  323. package/dist/esm/stateManagement/segmentation/getViewportSegmentations.d.ts +3 -0
  324. package/dist/esm/stateManagement/segmentation/getViewportSegmentations.js +15 -0
  325. package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.d.ts +1 -0
  326. package/dist/esm/stateManagement/segmentation/helpers/clearSegmentValue.js +30 -0
  327. package/dist/esm/stateManagement/segmentation/helpers/computeStackLabelmapFromVolume.d.ts +13 -0
  328. package/dist/esm/stateManagement/segmentation/helpers/computeStackLabelmapFromVolume.js +22 -0
  329. package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.d.ts +3 -0
  330. package/dist/esm/stateManagement/segmentation/helpers/computeVolumeLabelmapFromStack.js +4 -0
  331. package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.d.ts +1 -0
  332. package/dist/esm/stateManagement/segmentation/helpers/convertStackToVolumeLabelmap.js +7 -0
  333. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.d.ts +6 -0
  334. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationActor.js +34 -0
  335. package/dist/esm/stateManagement/segmentation/helpers/index.d.ts +3 -0
  336. package/dist/esm/stateManagement/segmentation/helpers/index.js +3 -0
  337. package/dist/esm/stateManagement/segmentation/helpers/internalGetHiddenSegmentIndices.d.ts +5 -0
  338. package/dist/esm/stateManagement/segmentation/helpers/internalGetHiddenSegmentIndices.js +14 -0
  339. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.d.ts +3 -0
  340. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +71 -0
  341. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.d.ts +8 -0
  342. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +31 -0
  343. package/dist/esm/stateManagement/segmentation/helpers/validateSegmentationInput.d.ts +3 -0
  344. package/dist/esm/stateManagement/segmentation/helpers/validateSegmentationInput.js +20 -0
  345. package/dist/esm/stateManagement/segmentation/index.d.ts +28 -0
  346. package/dist/esm/stateManagement/segmentation/index.js +28 -0
  347. package/dist/esm/stateManagement/segmentation/internalAddRepresentationData.d.ts +12 -0
  348. package/dist/esm/stateManagement/segmentation/internalAddRepresentationData.js +32 -0
  349. package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.d.ts +3 -0
  350. package/dist/esm/stateManagement/segmentation/internalAddSegmentationRepresentation.js +38 -0
  351. package/dist/esm/stateManagement/segmentation/removeColorLUT.d.ts +1 -0
  352. package/dist/esm/stateManagement/segmentation/removeColorLUT.js +5 -0
  353. package/dist/esm/stateManagement/segmentation/removeSegment.d.ts +3 -0
  354. package/dist/esm/stateManagement/segmentation/removeSegment.js +50 -0
  355. package/dist/esm/stateManagement/segmentation/removeSegmentation.d.ts +2 -0
  356. package/dist/esm/stateManagement/segmentation/removeSegmentation.js +24 -0
  357. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.d.ts +20 -0
  358. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +73 -0
  359. package/dist/esm/stateManagement/segmentation/segmentIndex.d.ts +3 -0
  360. package/dist/esm/stateManagement/segmentation/segmentIndex.js +48 -0
  361. package/dist/esm/stateManagement/segmentation/segmentLocking.d.ts +4 -0
  362. package/dist/esm/stateManagement/segmentation/segmentLocking.js +29 -0
  363. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +17 -0
  364. package/dist/esm/stateManagement/segmentation/segmentationState.js +20 -0
  365. package/dist/esm/stateManagement/segmentation/setActiveSegmentation.d.ts +1 -0
  366. package/dist/esm/stateManagement/segmentation/setActiveSegmentation.js +5 -0
  367. package/dist/esm/stateManagement/segmentation/setGlobalStyle.d.ts +3 -0
  368. package/dist/esm/stateManagement/segmentation/setGlobalStyle.js +8 -0
  369. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +5 -0
  370. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +5 -0
  371. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +6 -0
  372. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +6 -0
  373. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.d.ts +1 -0
  374. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.js +5 -0
  375. package/dist/esm/stateManagement/segmentation/updateSegmentations.d.ts +5 -0
  376. package/dist/esm/stateManagement/segmentation/updateSegmentations.js +11 -0
  377. package/dist/esm/store/SynchronizerManager/Synchronizer.d.ts +48 -0
  378. package/dist/esm/store/SynchronizerManager/Synchronizer.js +221 -0
  379. package/dist/esm/store/SynchronizerManager/createSynchronizer.d.ts +4 -0
  380. package/dist/esm/store/SynchronizerManager/createSynchronizer.js +12 -0
  381. package/dist/esm/store/SynchronizerManager/destroy.d.ts +2 -0
  382. package/dist/esm/store/SynchronizerManager/destroy.js +8 -0
  383. package/dist/esm/store/SynchronizerManager/destroySynchronizer.d.ts +2 -0
  384. package/dist/esm/store/SynchronizerManager/destroySynchronizer.js +10 -0
  385. package/dist/esm/store/SynchronizerManager/getAllSynchronizers.d.ts +3 -0
  386. package/dist/esm/store/SynchronizerManager/getAllSynchronizers.js +5 -0
  387. package/dist/esm/store/SynchronizerManager/getSynchronizer.d.ts +3 -0
  388. package/dist/esm/store/SynchronizerManager/getSynchronizer.js +5 -0
  389. package/dist/esm/store/SynchronizerManager/getSynchronizersForViewport.d.ts +3 -0
  390. package/dist/esm/store/SynchronizerManager/getSynchronizersForViewport.js +18 -0
  391. package/dist/esm/store/SynchronizerManager/index.d.ts +7 -0
  392. package/dist/esm/store/SynchronizerManager/index.js +7 -0
  393. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +48 -0
  394. package/dist/esm/store/ToolGroupManager/ToolGroup.js +460 -0
  395. package/dist/esm/store/ToolGroupManager/createToolGroup.d.ts +3 -0
  396. package/dist/esm/store/ToolGroupManager/createToolGroup.js +13 -0
  397. package/dist/esm/store/ToolGroupManager/destroy.d.ts +2 -0
  398. package/dist/esm/store/ToolGroupManager/destroy.js +10 -0
  399. package/dist/esm/store/ToolGroupManager/destroyToolGroup.d.ts +2 -0
  400. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +8 -0
  401. package/dist/esm/store/ToolGroupManager/getAllToolGroups.d.ts +3 -0
  402. package/dist/esm/store/ToolGroupManager/getAllToolGroups.js +5 -0
  403. package/dist/esm/store/ToolGroupManager/getToolGroup.d.ts +3 -0
  404. package/dist/esm/store/ToolGroupManager/getToolGroup.js +5 -0
  405. package/dist/esm/store/ToolGroupManager/getToolGroupForViewport.d.ts +3 -0
  406. package/dist/esm/store/ToolGroupManager/getToolGroupForViewport.js +18 -0
  407. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
  408. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +21 -0
  409. package/dist/esm/store/ToolGroupManager/index.d.ts +8 -0
  410. package/dist/esm/store/ToolGroupManager/index.js +8 -0
  411. package/dist/esm/store/addEnabledElement.d.ts +2 -0
  412. package/dist/esm/store/addEnabledElement.js +68 -0
  413. package/dist/esm/store/addTool.d.ts +5 -0
  414. package/dist/esm/store/addTool.js +31 -0
  415. package/dist/esm/store/cancelActiveManipulations.d.ts +1 -0
  416. package/dist/esm/store/cancelActiveManipulations.js +16 -0
  417. package/dist/esm/store/filterMoveableAnnotationTools.d.ts +3 -0
  418. package/dist/esm/store/filterMoveableAnnotationTools.js +20 -0
  419. package/dist/esm/store/filterToolsWithAnnotationsForElement.d.ts +3 -0
  420. package/dist/esm/store/filterToolsWithAnnotationsForElement.js +22 -0
  421. package/dist/esm/store/filterToolsWithMoveableHandles.d.ts +3 -0
  422. package/dist/esm/store/filterToolsWithMoveableHandles.js +21 -0
  423. package/dist/esm/store/index.d.ts +10 -0
  424. package/dist/esm/store/index.js +10 -0
  425. package/dist/esm/store/removeEnabledElement.d.ts +3 -0
  426. package/dist/esm/store/removeEnabledElement.js +85 -0
  427. package/dist/esm/store/state.d.ts +18 -0
  428. package/dist/esm/store/state.js +34 -0
  429. package/dist/esm/store/svgNodeCache.d.ts +3 -0
  430. package/dist/esm/store/svgNodeCache.js +5 -0
  431. package/dist/esm/synchronizers/callbacks/areViewportsCoplanar.d.ts +2 -0
  432. package/dist/esm/synchronizers/callbacks/areViewportsCoplanar.js +7 -0
  433. package/dist/esm/synchronizers/callbacks/cameraSyncCallback.d.ts +3 -0
  434. package/dist/esm/synchronizers/callbacks/cameraSyncCallback.js +11 -0
  435. package/dist/esm/synchronizers/callbacks/imageSliceSyncCallback.d.ts +3 -0
  436. package/dist/esm/synchronizers/callbacks/imageSliceSyncCallback.js +67 -0
  437. package/dist/esm/synchronizers/callbacks/presentationViewSyncCallback.d.ts +2 -0
  438. package/dist/esm/synchronizers/callbacks/presentationViewSyncCallback.js +12 -0
  439. package/dist/esm/synchronizers/callbacks/slabThicknessSyncCallback.d.ts +2 -0
  440. package/dist/esm/synchronizers/callbacks/slabThicknessSyncCallback.js +15 -0
  441. package/dist/esm/synchronizers/callbacks/voiSyncCallback.d.ts +5 -0
  442. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +35 -0
  443. package/dist/esm/synchronizers/callbacks/zoomPanSyncCallback.d.ts +3 -0
  444. package/dist/esm/synchronizers/callbacks/zoomPanSyncCallback.js +19 -0
  445. package/dist/esm/synchronizers/index.d.ts +8 -0
  446. package/dist/esm/synchronizers/index.js +8 -0
  447. package/dist/esm/synchronizers/synchronizers/createCameraPositionSynchronizer.d.ts +2 -0
  448. package/dist/esm/synchronizers/synchronizers/createCameraPositionSynchronizer.js +8 -0
  449. package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.d.ts +2 -0
  450. package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.js +14 -0
  451. package/dist/esm/synchronizers/synchronizers/createPresentationViewSynchronizer.d.ts +3 -0
  452. package/dist/esm/synchronizers/synchronizers/createPresentationViewSynchronizer.js +8 -0
  453. package/dist/esm/synchronizers/synchronizers/createSlabThicknessSynchronizer.d.ts +2 -0
  454. package/dist/esm/synchronizers/synchronizers/createSlabThicknessSynchronizer.js +8 -0
  455. package/dist/esm/synchronizers/synchronizers/createVOISynchronizer.d.ts +7 -0
  456. package/dist/esm/synchronizers/synchronizers/createVOISynchronizer.js +15 -0
  457. package/dist/esm/synchronizers/synchronizers/createZoomPanSynchronizer.d.ts +2 -0
  458. package/dist/esm/synchronizers/synchronizers/createZoomPanSynchronizer.js +8 -0
  459. package/dist/esm/synchronizers/synchronizers/index.d.ts +7 -0
  460. package/dist/esm/synchronizers/synchronizers/index.js +7 -0
  461. package/dist/esm/tools/AdvancedMagnifyTool.d.ts +130 -0
  462. package/dist/esm/tools/AdvancedMagnifyTool.js +927 -0
  463. package/dist/esm/tools/AnnotationEraserTool.d.ts +10 -0
  464. package/dist/esm/tools/AnnotationEraserTool.js +56 -0
  465. package/dist/esm/tools/CrosshairsTool.d.ts +71 -0
  466. package/dist/esm/tools/CrosshairsTool.js +1449 -0
  467. package/dist/esm/tools/MIPJumpToClickTool.d.ts +8 -0
  468. package/dist/esm/tools/MIPJumpToClickTool.js +56 -0
  469. package/dist/esm/tools/MagnifyTool.d.ts +25 -0
  470. package/dist/esm/tools/MagnifyTool.js +180 -0
  471. package/dist/esm/tools/OrientationMarkerTool.d.ts +78 -0
  472. package/dist/esm/tools/OrientationMarkerTool.js +284 -0
  473. package/dist/esm/tools/OverlayGridTool.d.ts +29 -0
  474. package/dist/esm/tools/OverlayGridTool.js +164 -0
  475. package/dist/esm/tools/PanTool.d.ts +10 -0
  476. package/dist/esm/tools/PanTool.js +44 -0
  477. package/dist/esm/tools/PlanarRotateTool.d.ts +12 -0
  478. package/dist/esm/tools/PlanarRotateTool.js +64 -0
  479. package/dist/esm/tools/ReferenceCursors.d.ts +24 -0
  480. package/dist/esm/tools/ReferenceCursors.js +308 -0
  481. package/dist/esm/tools/ReferenceLinesTool.d.ts +27 -0
  482. package/dist/esm/tools/ReferenceLinesTool.js +232 -0
  483. package/dist/esm/tools/ScaleOverlayTool.d.ts +38 -0
  484. package/dist/esm/tools/ScaleOverlayTool.js +397 -0
  485. package/dist/esm/tools/SculptorTool/CircleSculptCursor.d.ts +20 -0
  486. package/dist/esm/tools/SculptorTool/CircleSculptCursor.js +107 -0
  487. package/dist/esm/tools/SculptorTool.d.ts +41 -0
  488. package/dist/esm/tools/SculptorTool.js +289 -0
  489. package/dist/esm/tools/SegmentationIntersectionTool.d.ts +18 -0
  490. package/dist/esm/tools/SegmentationIntersectionTool.js +177 -0
  491. package/dist/esm/tools/StackScrollTool.d.ts +15 -0
  492. package/dist/esm/tools/StackScrollTool.js +78 -0
  493. package/dist/esm/tools/TrackballRotateTool.d.ts +19 -0
  494. package/dist/esm/tools/TrackballRotateTool.js +179 -0
  495. package/dist/esm/tools/VolumeRotateTool.d.ts +10 -0
  496. package/dist/esm/tools/VolumeRotateTool.js +52 -0
  497. package/dist/esm/tools/WindowLevelRegionTool.d.ts +26 -0
  498. package/dist/esm/tools/WindowLevelRegionTool.js +220 -0
  499. package/dist/esm/tools/WindowLevelTool.d.ts +37 -0
  500. package/dist/esm/tools/WindowLevelTool.js +201 -0
  501. package/dist/esm/tools/ZoomTool.d.ts +19 -0
  502. package/dist/esm/tools/ZoomTool.js +180 -0
  503. package/dist/esm/tools/annotation/AngleTool.d.ts +37 -0
  504. package/dist/esm/tools/annotation/AngleTool.js +486 -0
  505. package/dist/esm/tools/annotation/ArrowAnnotateTool.d.ts +39 -0
  506. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +467 -0
  507. package/dist/esm/tools/annotation/BidirectionalTool.d.ts +40 -0
  508. package/dist/esm/tools/annotation/BidirectionalTool.js +728 -0
  509. package/dist/esm/tools/annotation/CircleROITool.d.ts +39 -0
  510. package/dist/esm/tools/annotation/CircleROITool.js +638 -0
  511. package/dist/esm/tools/annotation/CobbAngleTool.d.ts +61 -0
  512. package/dist/esm/tools/annotation/CobbAngleTool.js +688 -0
  513. package/dist/esm/tools/annotation/DragProbeTool.d.ts +23 -0
  514. package/dist/esm/tools/annotation/DragProbeTool.js +130 -0
  515. package/dist/esm/tools/annotation/ETDRSGridTool.d.ts +41 -0
  516. package/dist/esm/tools/annotation/ETDRSGridTool.js +354 -0
  517. package/dist/esm/tools/annotation/EllipticalROITool.d.ts +45 -0
  518. package/dist/esm/tools/annotation/EllipticalROITool.js +710 -0
  519. package/dist/esm/tools/annotation/HeightTool.d.ts +36 -0
  520. package/dist/esm/tools/annotation/HeightTool.js +434 -0
  521. package/dist/esm/tools/annotation/KeyImageTool.d.ts +34 -0
  522. package/dist/esm/tools/annotation/KeyImageTool.js +269 -0
  523. package/dist/esm/tools/annotation/LabelTool.d.ts +35 -0
  524. package/dist/esm/tools/annotation/LabelTool.js +323 -0
  525. package/dist/esm/tools/annotation/LengthTool.d.ts +38 -0
  526. package/dist/esm/tools/annotation/LengthTool.js +468 -0
  527. package/dist/esm/tools/annotation/LivewireContourSegmentationTool.d.ts +10 -0
  528. package/dist/esm/tools/annotation/LivewireContourSegmentationTool.js +89 -0
  529. package/dist/esm/tools/annotation/LivewireContourTool.d.ts +67 -0
  530. package/dist/esm/tools/annotation/LivewireContourTool.js +657 -0
  531. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +9 -0
  532. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.js +29 -0
  533. package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +59 -0
  534. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +530 -0
  535. package/dist/esm/tools/annotation/ProbeTool.d.ts +35 -0
  536. package/dist/esm/tools/annotation/ProbeTool.js +363 -0
  537. package/dist/esm/tools/annotation/RectangleROITool.d.ts +43 -0
  538. package/dist/esm/tools/annotation/RectangleROITool.js +566 -0
  539. package/dist/esm/tools/annotation/RegionSegmentPlusTool.d.ts +16 -0
  540. package/dist/esm/tools/annotation/RegionSegmentPlusTool.js +55 -0
  541. package/dist/esm/tools/annotation/RegionSegmentTool.d.ts +21 -0
  542. package/dist/esm/tools/annotation/RegionSegmentTool.js +102 -0
  543. package/dist/esm/tools/annotation/SplineContourSegmentationTool.d.ts +8 -0
  544. package/dist/esm/tools/annotation/SplineContourSegmentationTool.js +17 -0
  545. package/dist/esm/tools/annotation/SplineROITool.d.ts +73 -0
  546. package/dist/esm/tools/annotation/SplineROITool.js +788 -0
  547. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.d.ts +34 -0
  548. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +461 -0
  549. package/dist/esm/tools/annotation/VideoRedactionTool.d.ts +46 -0
  550. package/dist/esm/tools/annotation/VideoRedactionTool.js +442 -0
  551. package/dist/esm/tools/annotation/WholeBodySegmentTool.d.ts +29 -0
  552. package/dist/esm/tools/annotation/WholeBodySegmentTool.js +223 -0
  553. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts +2 -0
  554. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +260 -0
  555. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.d.ts +2 -0
  556. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +289 -0
  557. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.d.ts +2 -0
  558. package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js +146 -0
  559. package/dist/esm/tools/annotation/planarFreehandROITool/findOpenUShapedContourVectorToPeak.d.ts +4 -0
  560. package/dist/esm/tools/annotation/planarFreehandROITool/findOpenUShapedContourVectorToPeak.js +39 -0
  561. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts +2 -0
  562. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +329 -0
  563. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.d.ts +2 -0
  564. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +48 -0
  565. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.d.ts +2 -0
  566. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +216 -0
  567. package/dist/esm/tools/annotation/splines/BSpline.d.ts +5 -0
  568. package/dist/esm/tools/annotation/splines/BSpline.js +9 -0
  569. package/dist/esm/tools/annotation/splines/CardinalSpline.d.ts +12 -0
  570. package/dist/esm/tools/annotation/splines/CardinalSpline.js +32 -0
  571. package/dist/esm/tools/annotation/splines/CatmullRomSpline.d.ts +5 -0
  572. package/dist/esm/tools/annotation/splines/CatmullRomSpline.js +7 -0
  573. package/dist/esm/tools/annotation/splines/CubicSpline.d.ts +13 -0
  574. package/dist/esm/tools/annotation/splines/CubicSpline.js +164 -0
  575. package/dist/esm/tools/annotation/splines/LinearSpline.d.ts +5 -0
  576. package/dist/esm/tools/annotation/splines/LinearSpline.js +7 -0
  577. package/dist/esm/tools/annotation/splines/QuadraticBezier.d.ts +6 -0
  578. package/dist/esm/tools/annotation/splines/QuadraticBezier.js +15 -0
  579. package/dist/esm/tools/annotation/splines/QuadraticSpline.d.ts +9 -0
  580. package/dist/esm/tools/annotation/splines/QuadraticSpline.js +13 -0
  581. package/dist/esm/tools/annotation/splines/Spline.d.ts +51 -0
  582. package/dist/esm/tools/annotation/splines/Spline.js +395 -0
  583. package/dist/esm/tools/annotation/splines/index.d.ts +9 -0
  584. package/dist/esm/tools/annotation/splines/index.js +9 -0
  585. package/dist/esm/tools/base/AnnotationDisplayTool.d.ts +14 -0
  586. package/dist/esm/tools/base/AnnotationDisplayTool.js +98 -0
  587. package/dist/esm/tools/base/AnnotationTool.d.ts +71 -0
  588. package/dist/esm/tools/base/AnnotationTool.js +271 -0
  589. package/dist/esm/tools/base/BaseTool.d.ts +38 -0
  590. package/dist/esm/tools/base/BaseTool.js +128 -0
  591. package/dist/esm/tools/base/ContourBaseTool.d.ts +25 -0
  592. package/dist/esm/tools/base/ContourBaseTool.js +121 -0
  593. package/dist/esm/tools/base/ContourSegmentationBaseTool.d.ts +19 -0
  594. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +133 -0
  595. package/dist/esm/tools/base/GrowCutBaseTool.d.ts +64 -0
  596. package/dist/esm/tools/base/GrowCutBaseTool.js +209 -0
  597. package/dist/esm/tools/base/index.d.ts +4 -0
  598. package/dist/esm/tools/base/index.js +4 -0
  599. package/dist/esm/tools/displayTools/Contour/contourConfig.d.ts +3 -0
  600. package/dist/esm/tools/displayTools/Contour/contourConfig.js +20 -0
  601. package/dist/esm/tools/displayTools/Contour/contourDisplay.d.ts +9 -0
  602. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +51 -0
  603. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.d.ts +5 -0
  604. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +77 -0
  605. package/dist/esm/tools/displayTools/Contour/contourHandler/utils.d.ts +4 -0
  606. package/dist/esm/tools/displayTools/Contour/contourHandler/utils.js +41 -0
  607. package/dist/esm/tools/displayTools/Contour/index.d.ts +2 -0
  608. package/dist/esm/tools/displayTools/Contour/index.js +2 -0
  609. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.d.ts +2 -0
  610. package/dist/esm/tools/displayTools/Contour/removeContourFromElement.js +12 -0
  611. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +7 -0
  612. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +93 -0
  613. package/dist/esm/tools/displayTools/Labelmap/addVolumesAsIndependentComponents.d.ts +10 -0
  614. package/dist/esm/tools/displayTools/Labelmap/addVolumesAsIndependentComponents.js +123 -0
  615. package/dist/esm/tools/displayTools/Labelmap/index.d.ts +4 -0
  616. package/dist/esm/tools/displayTools/Labelmap/index.js +4 -0
  617. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.d.ts +3 -0
  618. package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +17 -0
  619. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +11 -0
  620. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +267 -0
  621. package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.d.ts +2 -0
  622. package/dist/esm/tools/displayTools/Labelmap/removeLabelmapFromElement.js +8 -0
  623. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.d.ts +3 -0
  624. package/dist/esm/tools/displayTools/Surface/addOrUpdateSurfaceToElement.js +67 -0
  625. package/dist/esm/tools/displayTools/Surface/index.d.ts +2 -0
  626. package/dist/esm/tools/displayTools/Surface/index.js +2 -0
  627. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.d.ts +2 -0
  628. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.js +10 -0
  629. package/dist/esm/tools/displayTools/Surface/surfaceConfig.d.ts +3 -0
  630. package/dist/esm/tools/displayTools/Surface/surfaceConfig.js +8 -0
  631. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.d.ts +10 -0
  632. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +76 -0
  633. package/dist/esm/tools/distancePointToContour.d.ts +3 -0
  634. package/dist/esm/tools/distancePointToContour.js +18 -0
  635. package/dist/esm/tools/index.d.ts +57 -0
  636. package/dist/esm/tools/index.js +57 -0
  637. package/dist/esm/tools/segmentation/BrushTool.d.ts +27 -0
  638. package/dist/esm/tools/segmentation/BrushTool.js +355 -0
  639. package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.d.ts +68 -0
  640. package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +478 -0
  641. package/dist/esm/tools/segmentation/CircleScissorsTool.d.ts +34 -0
  642. package/dist/esm/tools/segmentation/CircleScissorsTool.js +233 -0
  643. package/dist/esm/tools/segmentation/LabelmapBaseTool.d.ts +99 -0
  644. package/dist/esm/tools/segmentation/LabelmapBaseTool.js +289 -0
  645. package/dist/esm/tools/segmentation/PaintFillTool.d.ts +13 -0
  646. package/dist/esm/tools/segmentation/PaintFillTool.js +231 -0
  647. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.d.ts +69 -0
  648. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +437 -0
  649. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.d.ts +45 -0
  650. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +145 -0
  651. package/dist/esm/tools/segmentation/RectangleScissorsTool.d.ts +32 -0
  652. package/dist/esm/tools/segmentation/RectangleScissorsTool.js +227 -0
  653. package/dist/esm/tools/segmentation/SegmentSelectTool.d.ts +20 -0
  654. package/dist/esm/tools/segmentation/SegmentSelectTool.js +99 -0
  655. package/dist/esm/tools/segmentation/SphereScissorsTool.d.ts +33 -0
  656. package/dist/esm/tools/segmentation/SphereScissorsTool.js +227 -0
  657. package/dist/esm/tools/segmentation/strategies/BrushStrategy.d.ts +125 -0
  658. package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +156 -0
  659. package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.d.ts +6 -0
  660. package/dist/esm/tools/segmentation/strategies/compositions/determineSegmentIndex.js +59 -0
  661. package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.d.ts +7 -0
  662. package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +83 -0
  663. package/dist/esm/tools/segmentation/strategies/compositions/ensureImageVolume.d.ts +4 -0
  664. package/dist/esm/tools/segmentation/strategies/compositions/ensureImageVolume.js +35 -0
  665. package/dist/esm/tools/segmentation/strategies/compositions/ensureSegmentationVolume.d.ts +4 -0
  666. package/dist/esm/tools/segmentation/strategies/compositions/ensureSegmentationVolume.js +20 -0
  667. package/dist/esm/tools/segmentation/strategies/compositions/erase.d.ts +5 -0
  668. package/dist/esm/tools/segmentation/strategies/compositions/erase.js +6 -0
  669. package/dist/esm/tools/segmentation/strategies/compositions/index.d.ts +47 -0
  670. package/dist/esm/tools/segmentation/strategies/compositions/index.js +24 -0
  671. package/dist/esm/tools/segmentation/strategies/compositions/islandRemovalComposition.d.ts +5 -0
  672. package/dist/esm/tools/segmentation/strategies/compositions/islandRemovalComposition.js +28 -0
  673. package/dist/esm/tools/segmentation/strategies/compositions/labelmapStatistics.d.ts +7 -0
  674. package/dist/esm/tools/segmentation/strategies/compositions/labelmapStatistics.js +12 -0
  675. package/dist/esm/tools/segmentation/strategies/compositions/preview.d.ts +8 -0
  676. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +92 -0
  677. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.d.ts +5 -0
  678. package/dist/esm/tools/segmentation/strategies/compositions/regionFill.js +23 -0
  679. package/dist/esm/tools/segmentation/strategies/compositions/setValue.d.ts +8 -0
  680. package/dist/esm/tools/segmentation/strategies/compositions/setValue.js +29 -0
  681. package/dist/esm/tools/segmentation/strategies/compositions/threshold.d.ts +5 -0
  682. package/dist/esm/tools/segmentation/strategies/compositions/threshold.js +21 -0
  683. package/dist/esm/tools/segmentation/strategies/eraseCircle.d.ts +2 -0
  684. package/dist/esm/tools/segmentation/strategies/eraseCircle.js +6 -0
  685. package/dist/esm/tools/segmentation/strategies/eraseRectangle.d.ts +8 -0
  686. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +13 -0
  687. package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
  688. package/dist/esm/tools/segmentation/strategies/eraseSphere.js +6 -0
  689. package/dist/esm/tools/segmentation/strategies/fillCircle.d.ts +14 -0
  690. package/dist/esm/tools/segmentation/strategies/fillCircle.js +71 -0
  691. package/dist/esm/tools/segmentation/strategies/fillRectangle.d.ts +6 -0
  692. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +71 -0
  693. package/dist/esm/tools/segmentation/strategies/fillSphere.d.ts +7 -0
  694. package/dist/esm/tools/segmentation/strategies/fillSphere.js +40 -0
  695. package/dist/esm/tools/segmentation/strategies/index.d.ts +3 -0
  696. package/dist/esm/tools/segmentation/strategies/index.js +3 -0
  697. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.d.ts +15 -0
  698. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +112 -0
  699. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +5 -0
  700. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +8 -0
  701. package/dist/esm/types/AnnotationGroupSelector.d.ts +2 -0
  702. package/dist/esm/types/AnnotationGroupSelector.js +0 -0
  703. package/dist/esm/types/AnnotationRenderContext.d.ts +12 -0
  704. package/dist/esm/types/AnnotationRenderContext.js +0 -0
  705. package/dist/esm/types/AnnotationStyle.d.ts +30 -0
  706. package/dist/esm/types/AnnotationStyle.js +0 -0
  707. package/dist/esm/types/AnnotationTypes.d.ts +45 -0
  708. package/dist/esm/types/AnnotationTypes.js +0 -0
  709. package/dist/esm/types/BoundsIJK.d.ts +3 -0
  710. package/dist/esm/types/BoundsIJK.js +0 -0
  711. package/dist/esm/types/CINETypes.d.ts +30 -0
  712. package/dist/esm/types/CINETypes.js +0 -0
  713. package/dist/esm/types/CalculatorTypes.d.ts +42 -0
  714. package/dist/esm/types/CalculatorTypes.js +0 -0
  715. package/dist/esm/types/CardinalSplineProps.d.ts +5 -0
  716. package/dist/esm/types/CardinalSplineProps.js +0 -0
  717. package/dist/esm/types/ClosestControlPoint.d.ts +4 -0
  718. package/dist/esm/types/ClosestControlPoint.js +0 -0
  719. package/dist/esm/types/ClosestPoint.d.ts +5 -0
  720. package/dist/esm/types/ClosestPoint.js +0 -0
  721. package/dist/esm/types/ClosestSplinePoint.d.ts +4 -0
  722. package/dist/esm/types/ClosestSplinePoint.js +0 -0
  723. package/dist/esm/types/ContourAnnotation.d.ts +20 -0
  724. package/dist/esm/types/ContourAnnotation.js +6 -0
  725. package/dist/esm/types/ContourSegmentationAnnotation.d.ts +24 -0
  726. package/dist/esm/types/ContourSegmentationAnnotation.js +0 -0
  727. package/dist/esm/types/ContourTypes.d.ts +27 -0
  728. package/dist/esm/types/ContourTypes.js +0 -0
  729. package/dist/esm/types/ControlPointInfo.d.ts +5 -0
  730. package/dist/esm/types/ControlPointInfo.js +0 -0
  731. package/dist/esm/types/CursorTypes.d.ts +18 -0
  732. package/dist/esm/types/CursorTypes.js +0 -0
  733. package/dist/esm/types/EventTypes.d.ts +234 -0
  734. package/dist/esm/types/EventTypes.js +0 -0
  735. package/dist/esm/types/FloodFillTypes.d.ts +16 -0
  736. package/dist/esm/types/FloodFillTypes.js +0 -0
  737. package/dist/esm/types/IAnnotationManager.d.ts +14 -0
  738. package/dist/esm/types/IAnnotationManager.js +0 -0
  739. package/dist/esm/types/IBaseTool.d.ts +2 -0
  740. package/dist/esm/types/IBaseTool.js +0 -0
  741. package/dist/esm/types/IDistance.d.ts +7 -0
  742. package/dist/esm/types/IDistance.js +0 -0
  743. package/dist/esm/types/IPoints.d.ts +8 -0
  744. package/dist/esm/types/IPoints.js +0 -0
  745. package/dist/esm/types/ISculptToolShape.d.ts +12 -0
  746. package/dist/esm/types/ISculptToolShape.js +0 -0
  747. package/dist/esm/types/ISetToolModeOptions.d.ts +16 -0
  748. package/dist/esm/types/ISetToolModeOptions.js +0 -0
  749. package/dist/esm/types/ISpline.d.ts +30 -0
  750. package/dist/esm/types/ISpline.js +0 -0
  751. package/dist/esm/types/ISynchronizerEventHandler.d.ts +5 -0
  752. package/dist/esm/types/ISynchronizerEventHandler.js +0 -0
  753. package/dist/esm/types/IToolClassReference.d.ts +3 -0
  754. package/dist/esm/types/IToolClassReference.js +0 -0
  755. package/dist/esm/types/IToolGroup.d.ts +3 -0
  756. package/dist/esm/types/IToolGroup.js +0 -0
  757. package/dist/esm/types/ITouchPoints.d.ts +11 -0
  758. package/dist/esm/types/ITouchPoints.js +0 -0
  759. package/dist/esm/types/InteractionTypes.d.ts +2 -0
  760. package/dist/esm/types/InteractionTypes.js +0 -0
  761. package/dist/esm/types/InternalToolTypes.d.ts +15 -0
  762. package/dist/esm/types/InternalToolTypes.js +0 -0
  763. package/dist/esm/types/InterpolationTypes.d.ts +20 -0
  764. package/dist/esm/types/InterpolationTypes.js +0 -0
  765. package/dist/esm/types/LabelmapToolOperationData.d.ts +26 -0
  766. package/dist/esm/types/LabelmapToolOperationData.js +0 -0
  767. package/dist/esm/types/LabelmapTypes.d.ts +29 -0
  768. package/dist/esm/types/LabelmapTypes.js +0 -0
  769. package/dist/esm/types/PlanarBoundingBox.d.ts +7 -0
  770. package/dist/esm/types/PlanarBoundingBox.js +0 -0
  771. package/dist/esm/types/SVGDrawingHelper.d.ts +9 -0
  772. package/dist/esm/types/SVGDrawingHelper.js +0 -0
  773. package/dist/esm/types/SegmentationStateTypes.d.ts +96 -0
  774. package/dist/esm/types/SegmentationStateTypes.js +0 -0
  775. package/dist/esm/types/SplineCurveSegment.d.ts +14 -0
  776. package/dist/esm/types/SplineCurveSegment.js +0 -0
  777. package/dist/esm/types/SplineLineSegment.d.ts +10 -0
  778. package/dist/esm/types/SplineLineSegment.js +0 -0
  779. package/dist/esm/types/SplineProps.d.ts +5 -0
  780. package/dist/esm/types/SplineProps.js +0 -0
  781. package/dist/esm/types/SurfaceTypes.d.ts +5 -0
  782. package/dist/esm/types/SurfaceTypes.js +0 -0
  783. package/dist/esm/types/ToolAction.d.ts +8 -0
  784. package/dist/esm/types/ToolAction.js +0 -0
  785. package/dist/esm/types/ToolHandle.d.ts +15 -0
  786. package/dist/esm/types/ToolHandle.js +0 -0
  787. package/dist/esm/types/ToolProps.d.ts +13 -0
  788. package/dist/esm/types/ToolProps.js +0 -0
  789. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +477 -0
  790. package/dist/esm/types/ToolSpecificAnnotationTypes.js +0 -0
  791. package/dist/esm/types/index.d.ts +49 -0
  792. package/dist/esm/types/index.js +0 -0
  793. package/dist/esm/utilities/AnnotationMultiSlice.d.ts +11 -0
  794. package/dist/esm/utilities/AnnotationMultiSlice.js +68 -0
  795. package/dist/esm/utilities/BucketQueue.d.ts +20 -0
  796. package/dist/esm/utilities/BucketQueue.js +78 -0
  797. package/dist/esm/utilities/annotationHydration.d.ts +9 -0
  798. package/dist/esm/utilities/annotationHydration.js +82 -0
  799. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.d.ts +3 -0
  800. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +10 -0
  801. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +5 -0
  802. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +55 -0
  803. package/dist/esm/utilities/boundingBox/index.d.ts +3 -0
  804. package/dist/esm/utilities/boundingBox/index.js +3 -0
  805. package/dist/esm/utilities/calibrateImageSpacing.d.ts +2 -0
  806. package/dist/esm/utilities/calibrateImageSpacing.js +18 -0
  807. package/dist/esm/utilities/cine/events.d.ts +5 -0
  808. package/dist/esm/utilities/cine/events.js +6 -0
  809. package/dist/esm/utilities/cine/index.d.ts +4 -0
  810. package/dist/esm/utilities/cine/index.js +4 -0
  811. package/dist/esm/utilities/cine/playClip.d.ts +8 -0
  812. package/dist/esm/utilities/cine/playClip.js +352 -0
  813. package/dist/esm/utilities/cine/state.d.ts +5 -0
  814. package/dist/esm/utilities/cine/state.js +16 -0
  815. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.d.ts +2 -0
  816. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js +24 -0
  817. package/dist/esm/utilities/contourSegmentation/areSameSegment.d.ts +2 -0
  818. package/dist/esm/utilities/contourSegmentation/areSameSegment.js +6 -0
  819. package/dist/esm/utilities/contourSegmentation/index.d.ts +4 -0
  820. package/dist/esm/utilities/contourSegmentation/index.js +4 -0
  821. package/dist/esm/utilities/contourSegmentation/isContourSegmentationAnnotation.d.ts +3 -0
  822. package/dist/esm/utilities/contourSegmentation/isContourSegmentationAnnotation.js +3 -0
  823. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.d.ts +2 -0
  824. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +17 -0
  825. package/dist/esm/utilities/contours/AnnotationToPointData.d.ts +11 -0
  826. package/dist/esm/utilities/contours/AnnotationToPointData.js +38 -0
  827. package/dist/esm/utilities/contours/RectangleROIStartEndThreshold.d.ts +6 -0
  828. package/dist/esm/utilities/contours/RectangleROIStartEndThreshold.js +40 -0
  829. package/dist/esm/utilities/contours/areCoplanarContours.d.ts +2 -0
  830. package/dist/esm/utilities/contours/areCoplanarContours.js +15 -0
  831. package/dist/esm/utilities/contours/calculatePerimeter.d.ts +2 -0
  832. package/dist/esm/utilities/contours/calculatePerimeter.js +16 -0
  833. package/dist/esm/utilities/contours/contourFinder.d.ts +7 -0
  834. package/dist/esm/utilities/contours/contourFinder.js +62 -0
  835. package/dist/esm/utilities/contours/detectContourHoles.d.ts +5 -0
  836. package/dist/esm/utilities/contours/detectContourHoles.js +73 -0
  837. package/dist/esm/utilities/contours/findHandlePolylineIndex.d.ts +2 -0
  838. package/dist/esm/utilities/contours/findHandlePolylineIndex.js +31 -0
  839. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.d.ts +4 -0
  840. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js +110 -0
  841. package/dist/esm/utilities/contours/getContourHolesDataCanvas.d.ts +3 -0
  842. package/dist/esm/utilities/contours/getContourHolesDataCanvas.js +14 -0
  843. package/dist/esm/utilities/contours/getContourHolesDataWorld.d.ts +3 -0
  844. package/dist/esm/utilities/contours/getContourHolesDataWorld.js +5 -0
  845. package/dist/esm/utilities/contours/getDeduplicatedVTKPolyDataPoints.d.ts +11 -0
  846. package/dist/esm/utilities/contours/getDeduplicatedVTKPolyDataPoints.js +45 -0
  847. package/dist/esm/utilities/contours/index.d.ts +13 -0
  848. package/dist/esm/utilities/contours/index.js +13 -0
  849. package/dist/esm/utilities/contours/interpolation/acceptAutogeneratedInterpolations.d.ts +3 -0
  850. package/dist/esm/utilities/contours/interpolation/acceptAutogeneratedInterpolations.js +4 -0
  851. package/dist/esm/utilities/contours/interpolation/createPolylineToolData.d.ts +2 -0
  852. package/dist/esm/utilities/contours/interpolation/createPolylineToolData.js +38 -0
  853. package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.d.ts +7 -0
  854. package/dist/esm/utilities/contours/interpolation/findAnnotationForInterpolation.js +106 -0
  855. package/dist/esm/utilities/contours/interpolation/getInterpolationData.d.ts +7 -0
  856. package/dist/esm/utilities/contours/interpolation/getInterpolationData.js +47 -0
  857. package/dist/esm/utilities/contours/interpolation/getInterpolationDataCollection.d.ts +4 -0
  858. package/dist/esm/utilities/contours/interpolation/getInterpolationDataCollection.js +14 -0
  859. package/dist/esm/utilities/contours/interpolation/interpolate.d.ts +11 -0
  860. package/dist/esm/utilities/contours/interpolation/interpolate.js +339 -0
  861. package/dist/esm/utilities/contours/interpolation/selectHandles.d.ts +4 -0
  862. package/dist/esm/utilities/contours/interpolation/selectHandles.js +162 -0
  863. package/dist/esm/utilities/contours/interpolation/updateChildInterpolationUID.d.ts +2 -0
  864. package/dist/esm/utilities/contours/interpolation/updateChildInterpolationUID.js +12 -0
  865. package/dist/esm/utilities/contours/reverseIfAntiClockwise.d.ts +2 -0
  866. package/dist/esm/utilities/contours/reverseIfAntiClockwise.js +11 -0
  867. package/dist/esm/utilities/contours/updateContourPolyline.d.ts +17 -0
  868. package/dist/esm/utilities/contours/updateContourPolyline.js +52 -0
  869. package/dist/esm/utilities/debounce.d.ts +6 -0
  870. package/dist/esm/utilities/debounce.js +113 -0
  871. package/dist/esm/utilities/drawing/getTextBoxCoordsCanvas.d.ts +2 -0
  872. package/dist/esm/utilities/drawing/getTextBoxCoordsCanvas.js +24 -0
  873. package/dist/esm/utilities/drawing/index.d.ts +2 -0
  874. package/dist/esm/utilities/drawing/index.js +2 -0
  875. package/dist/esm/utilities/dynamicVolume/generateImageFromTimeData.d.ts +12 -0
  876. package/dist/esm/utilities/dynamicVolume/generateImageFromTimeData.js +98 -0
  877. package/dist/esm/utilities/dynamicVolume/getDataInTime.d.ts +8 -0
  878. package/dist/esm/utilities/dynamicVolume/getDataInTime.js +111 -0
  879. package/dist/esm/utilities/dynamicVolume/index.d.ts +4 -0
  880. package/dist/esm/utilities/dynamicVolume/index.js +4 -0
  881. package/dist/esm/utilities/geometricSurfaceUtils.d.ts +8 -0
  882. package/dist/esm/utilities/geometricSurfaceUtils.js +103 -0
  883. package/dist/esm/utilities/getAnnotationNearPoint.d.ts +5 -0
  884. package/dist/esm/utilities/getAnnotationNearPoint.js +46 -0
  885. package/dist/esm/utilities/getCalibratedUnits.d.ts +16 -0
  886. package/dist/esm/utilities/getCalibratedUnits.js +155 -0
  887. package/dist/esm/utilities/getPixelValueUnits.d.ts +8 -0
  888. package/dist/esm/utilities/getPixelValueUnits.js +31 -0
  889. package/dist/esm/utilities/getSphereBoundsInfo.d.ts +14 -0
  890. package/dist/esm/utilities/getSphereBoundsInfo.js +64 -0
  891. package/dist/esm/utilities/getToolsWithModesForElement.d.ts +4 -0
  892. package/dist/esm/utilities/getToolsWithModesForElement.js +24 -0
  893. package/dist/esm/utilities/getVOIMultipliers.d.ts +5 -0
  894. package/dist/esm/utilities/getVOIMultipliers.js +18 -0
  895. package/dist/esm/utilities/getViewportForAnnotation.d.ts +3 -0
  896. package/dist/esm/utilities/getViewportForAnnotation.js +5 -0
  897. package/dist/esm/utilities/getViewportsForAnnotation.d.ts +3 -0
  898. package/dist/esm/utilities/getViewportsForAnnotation.js +16 -0
  899. package/dist/esm/utilities/index.d.ts +40 -0
  900. package/dist/esm/utilities/index.js +40 -0
  901. package/dist/esm/utilities/isObject.d.ts +2 -0
  902. package/dist/esm/utilities/isObject.js +5 -0
  903. package/dist/esm/utilities/livewire/LiveWirePath.d.ts +19 -0
  904. package/dist/esm/utilities/livewire/LiveWirePath.js +71 -0
  905. package/dist/esm/utilities/livewire/LivewireScissors.d.ts +38 -0
  906. package/dist/esm/utilities/livewire/LivewireScissors.js +305 -0
  907. package/dist/esm/utilities/math/aabb/distanceToPoint.d.ts +2 -0
  908. package/dist/esm/utilities/math/aabb/distanceToPoint.js +4 -0
  909. package/dist/esm/utilities/math/aabb/distanceToPointSquared.d.ts +2 -0
  910. package/dist/esm/utilities/math/aabb/distanceToPointSquared.js +20 -0
  911. package/dist/esm/utilities/math/aabb/index.d.ts +3 -0
  912. package/dist/esm/utilities/math/aabb/index.js +3 -0
  913. package/dist/esm/utilities/math/aabb/intersectAABB.d.ts +2 -0
  914. package/dist/esm/utilities/math/aabb/intersectAABB.js +6 -0
  915. package/dist/esm/utilities/math/angle/angleBetweenLines.d.ts +6 -0
  916. package/dist/esm/utilities/math/angle/angleBetweenLines.js +30 -0
  917. package/dist/esm/utilities/math/angle/index.d.ts +2 -0
  918. package/dist/esm/utilities/math/angle/index.js +2 -0
  919. package/dist/esm/utilities/math/basic/BasicStatsCalculator.d.ts +26 -0
  920. package/dist/esm/utilities/math/basic/BasicStatsCalculator.js +119 -0
  921. package/dist/esm/utilities/math/basic/Calculator.d.ts +8 -0
  922. package/dist/esm/utilities/math/basic/Calculator.js +3 -0
  923. package/dist/esm/utilities/math/basic/index.d.ts +3 -0
  924. package/dist/esm/utilities/math/basic/index.js +3 -0
  925. package/dist/esm/utilities/math/circle/_types.d.ts +5 -0
  926. package/dist/esm/utilities/math/circle/_types.js +0 -0
  927. package/dist/esm/utilities/math/circle/getCanvasCircleCorners.d.ts +3 -0
  928. package/dist/esm/utilities/math/circle/getCanvasCircleCorners.js +8 -0
  929. package/dist/esm/utilities/math/circle/getCanvasCircleRadius.d.ts +2 -0
  930. package/dist/esm/utilities/math/circle/getCanvasCircleRadius.js +5 -0
  931. package/dist/esm/utilities/math/circle/index.d.ts +3 -0
  932. package/dist/esm/utilities/math/circle/index.js +3 -0
  933. package/dist/esm/utilities/math/ellipse/getCanvasEllipseCorners.d.ts +8 -0
  934. package/dist/esm/utilities/math/ellipse/getCanvasEllipseCorners.js +6 -0
  935. package/dist/esm/utilities/math/ellipse/index.d.ts +3 -0
  936. package/dist/esm/utilities/math/ellipse/index.js +3 -0
  937. package/dist/esm/utilities/math/ellipse/pointInEllipse.d.ts +11 -0
  938. package/dist/esm/utilities/math/ellipse/pointInEllipse.js +36 -0
  939. package/dist/esm/utilities/math/ellipse/pointInEllipsoidWithConstraint.d.ts +9 -0
  940. package/dist/esm/utilities/math/ellipse/pointInEllipsoidWithConstraint.js +2 -0
  941. package/dist/esm/utilities/math/index.d.ts +11 -0
  942. package/dist/esm/utilities/math/index.js +11 -0
  943. package/dist/esm/utilities/math/line/distanceToPoint.d.ts +2 -0
  944. package/dist/esm/utilities/math/line/distanceToPoint.js +7 -0
  945. package/dist/esm/utilities/math/line/distanceToPointSquared.d.ts +2 -0
  946. package/dist/esm/utilities/math/line/distanceToPointSquared.js +4 -0
  947. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.d.ts +5 -0
  948. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +29 -0
  949. package/dist/esm/utilities/math/line/index.d.ts +6 -0
  950. package/dist/esm/utilities/math/line/index.js +6 -0
  951. package/dist/esm/utilities/math/line/intersectLine.d.ts +2 -0
  952. package/dist/esm/utilities/math/line/intersectLine.js +41 -0
  953. package/dist/esm/utilities/math/line/isPointOnLineSegment.d.ts +2 -0
  954. package/dist/esm/utilities/math/line/isPointOnLineSegment.js +18 -0
  955. package/dist/esm/utilities/math/midPoint.d.ts +5 -0
  956. package/dist/esm/utilities/math/midPoint.js +15 -0
  957. package/dist/esm/utilities/math/point/distanceToPoint.d.ts +4 -0
  958. package/dist/esm/utilities/math/point/distanceToPoint.js +4 -0
  959. package/dist/esm/utilities/math/point/distanceToPointSquared.d.ts +4 -0
  960. package/dist/esm/utilities/math/point/distanceToPointSquared.js +11 -0
  961. package/dist/esm/utilities/math/point/index.d.ts +3 -0
  962. package/dist/esm/utilities/math/point/index.js +3 -0
  963. package/dist/esm/utilities/math/point/mirror.d.ts +2 -0
  964. package/dist/esm/utilities/math/point/mirror.js +7 -0
  965. package/dist/esm/utilities/math/polyline/addCanvasPointsToArray.d.ts +4 -0
  966. package/dist/esm/utilities/math/polyline/addCanvasPointsToArray.js +38 -0
  967. package/dist/esm/utilities/math/polyline/areLineSegmentsIntersecting.d.ts +2 -0
  968. package/dist/esm/utilities/math/polyline/areLineSegmentsIntersecting.js +55 -0
  969. package/dist/esm/utilities/math/polyline/combinePolyline.d.ts +4 -0
  970. package/dist/esm/utilities/math/polyline/combinePolyline.js +186 -0
  971. package/dist/esm/utilities/math/polyline/containsPoint.d.ts +5 -0
  972. package/dist/esm/utilities/math/polyline/containsPoint.js +39 -0
  973. package/dist/esm/utilities/math/polyline/containsPoints.d.ts +2 -0
  974. package/dist/esm/utilities/math/polyline/containsPoints.js +9 -0
  975. package/dist/esm/utilities/math/polyline/decimate.d.ts +2 -0
  976. package/dist/esm/utilities/math/polyline/decimate.js +46 -0
  977. package/dist/esm/utilities/math/polyline/getAABB.d.ts +4 -0
  978. package/dist/esm/utilities/math/polyline/getAABB.js +40 -0
  979. package/dist/esm/utilities/math/polyline/getArea.d.ts +2 -0
  980. package/dist/esm/utilities/math/polyline/getArea.js +10 -0
  981. package/dist/esm/utilities/math/polyline/getClosestLineSegmentIntersection.d.ts +5 -0
  982. package/dist/esm/utilities/math/polyline/getClosestLineSegmentIntersection.js +44 -0
  983. package/dist/esm/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.d.ts +2 -0
  984. package/dist/esm/utilities/math/polyline/getFirstLineSegmentIntersectionIndexes.js +21 -0
  985. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.d.ts +2 -0
  986. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsCoordinates.js +13 -0
  987. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsIndexes.d.ts +2 -0
  988. package/dist/esm/utilities/math/polyline/getLineSegmentIntersectionsIndexes.js +15 -0
  989. package/dist/esm/utilities/math/polyline/getLinesIntersection.d.ts +2 -0
  990. package/dist/esm/utilities/math/polyline/getLinesIntersection.js +51 -0
  991. package/dist/esm/utilities/math/polyline/getNormal2.d.ts +2 -0
  992. package/dist/esm/utilities/math/polyline/getNormal2.js +5 -0
  993. package/dist/esm/utilities/math/polyline/getNormal3.d.ts +2 -0
  994. package/dist/esm/utilities/math/polyline/getNormal3.js +25 -0
  995. package/dist/esm/utilities/math/polyline/getSignedArea.d.ts +2 -0
  996. package/dist/esm/utilities/math/polyline/getSignedArea.js +19 -0
  997. package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.d.ts +7 -0
  998. package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js +72 -0
  999. package/dist/esm/utilities/math/polyline/getWindingDirection.d.ts +2 -0
  1000. package/dist/esm/utilities/math/polyline/getWindingDirection.js +5 -0
  1001. package/dist/esm/utilities/math/polyline/index.d.ts +23 -0
  1002. package/dist/esm/utilities/math/polyline/index.js +23 -0
  1003. package/dist/esm/utilities/math/polyline/intersectPolyline.d.ts +2 -0
  1004. package/dist/esm/utilities/math/polyline/intersectPolyline.js +13 -0
  1005. package/dist/esm/utilities/math/polyline/isClosed.d.ts +2 -0
  1006. package/dist/esm/utilities/math/polyline/isClosed.js +12 -0
  1007. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.d.ts +4 -0
  1008. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.js +25 -0
  1009. package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +25 -0
  1010. package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.js +0 -0
  1011. package/dist/esm/utilities/math/polyline/pointCanProjectOnLine.d.ts +3 -0
  1012. package/dist/esm/utilities/math/polyline/pointCanProjectOnLine.js +32 -0
  1013. package/dist/esm/utilities/math/polyline/pointsAreWithinCloseContourProximity.d.ts +3 -0
  1014. package/dist/esm/utilities/math/polyline/pointsAreWithinCloseContourProximity.js +5 -0
  1015. package/dist/esm/utilities/math/polyline/projectTo2D.d.ts +5 -0
  1016. package/dist/esm/utilities/math/polyline/projectTo2D.js +25 -0
  1017. package/dist/esm/utilities/math/rectangle/distanceToPoint.d.ts +2 -0
  1018. package/dist/esm/utilities/math/rectangle/distanceToPoint.js +34 -0
  1019. package/dist/esm/utilities/math/rectangle/index.d.ts +2 -0
  1020. package/dist/esm/utilities/math/rectangle/index.js +2 -0
  1021. package/dist/esm/utilities/math/sphere/index.d.ts +2 -0
  1022. package/dist/esm/utilities/math/sphere/index.js +2 -0
  1023. package/dist/esm/utilities/math/sphere/pointInSphere.d.ts +9 -0
  1024. package/dist/esm/utilities/math/sphere/pointInSphere.js +8 -0
  1025. package/dist/esm/utilities/math/vec2/findClosestPoint.d.ts +2 -0
  1026. package/dist/esm/utilities/math/vec2/findClosestPoint.js +17 -0
  1027. package/dist/esm/utilities/math/vec2/index.d.ts +3 -0
  1028. package/dist/esm/utilities/math/vec2/index.js +3 -0
  1029. package/dist/esm/utilities/math/vec2/liangBarksyClip.d.ts +1 -0
  1030. package/dist/esm/utilities/math/vec2/liangBarksyClip.js +68 -0
  1031. package/dist/esm/utilities/math/vec3/interpolateVec3.d.ts +2 -0
  1032. package/dist/esm/utilities/math/vec3/interpolateVec3.js +8 -0
  1033. package/dist/esm/utilities/normalizeViewportPlane.d.ts +19 -0
  1034. package/dist/esm/utilities/normalizeViewportPlane.js +35 -0
  1035. package/dist/esm/utilities/orientation/getOrientationStringLPS.d.ts +2 -0
  1036. package/dist/esm/utilities/orientation/getOrientationStringLPS.js +41 -0
  1037. package/dist/esm/utilities/orientation/index.d.ts +3 -0
  1038. package/dist/esm/utilities/orientation/index.js +3 -0
  1039. package/dist/esm/utilities/orientation/invertOrientationStringLPS.d.ts +1 -0
  1040. package/dist/esm/utilities/orientation/invertOrientationStringLPS.js +10 -0
  1041. package/dist/esm/utilities/planar/filterAnnotationsForDisplay.d.ts +3 -0
  1042. package/dist/esm/utilities/planar/filterAnnotationsForDisplay.js +26 -0
  1043. package/dist/esm/utilities/planar/filterAnnotationsWithinPlane.d.ts +3 -0
  1044. package/dist/esm/utilities/planar/filterAnnotationsWithinPlane.js +26 -0
  1045. package/dist/esm/utilities/planar/filterAnnotationsWithinSlice.d.ts +3 -0
  1046. package/dist/esm/utilities/planar/filterAnnotationsWithinSlice.js +46 -0
  1047. package/dist/esm/utilities/planar/getPointInLineOfSightWithCriteria.d.ts +6 -0
  1048. package/dist/esm/utilities/planar/getPointInLineOfSightWithCriteria.js +49 -0
  1049. package/dist/esm/utilities/planar/getWorldWidthAndHeightFromCorners.d.ts +5 -0
  1050. package/dist/esm/utilities/planar/getWorldWidthAndHeightFromCorners.js +18 -0
  1051. package/dist/esm/utilities/planar/getWorldWidthAndHeightFromTwoPoints.d.ts +5 -0
  1052. package/dist/esm/utilities/planar/getWorldWidthAndHeightFromTwoPoints.js +18 -0
  1053. package/dist/esm/utilities/planar/index.d.ts +19 -0
  1054. package/dist/esm/utilities/planar/index.js +18 -0
  1055. package/dist/esm/utilities/planar/isPlaneIntersectingAABB.d.ts +1 -0
  1056. package/dist/esm/utilities/planar/isPlaneIntersectingAABB.js +27 -0
  1057. package/dist/esm/utilities/planarFreehandROITool/index.d.ts +6 -0
  1058. package/dist/esm/utilities/planarFreehandROITool/index.js +5 -0
  1059. package/dist/esm/utilities/planarFreehandROITool/interpolation/algorithms/bspline.d.ts +2 -0
  1060. package/dist/esm/utilities/planarFreehandROITool/interpolation/algorithms/bspline.js +22 -0
  1061. package/dist/esm/utilities/planarFreehandROITool/interpolation/interpolateSegmentPoints.d.ts +2 -0
  1062. package/dist/esm/utilities/planarFreehandROITool/interpolation/interpolateSegmentPoints.js +41 -0
  1063. package/dist/esm/utilities/planarFreehandROITool/smoothAnnotation.d.ts +6 -0
  1064. package/dist/esm/utilities/planarFreehandROITool/smoothAnnotation.js +56 -0
  1065. package/dist/esm/utilities/planarFreehandROITool/smoothPoints.d.ts +11 -0
  1066. package/dist/esm/utilities/planarFreehandROITool/smoothPoints.js +91 -0
  1067. package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +8 -0
  1068. package/dist/esm/utilities/pointInSurroundingSphereCallback.js +71 -0
  1069. package/dist/esm/utilities/pointToString.d.ts +1 -0
  1070. package/dist/esm/utilities/pointToString.js +8 -0
  1071. package/dist/esm/utilities/polyData/utils.d.ts +5 -0
  1072. package/dist/esm/utilities/polyData/utils.js +53 -0
  1073. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
  1074. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +44 -0
  1075. package/dist/esm/utilities/rectangleROITool/index.d.ts +3 -0
  1076. package/dist/esm/utilities/rectangleROITool/index.js +3 -0
  1077. package/dist/esm/utilities/rectangleROITool/isAxisAlignedRectangle.d.ts +2 -0
  1078. package/dist/esm/utilities/rectangleROITool/isAxisAlignedRectangle.js +22 -0
  1079. package/dist/esm/utilities/registerComputeWorker.d.ts +1 -0
  1080. package/dist/esm/utilities/registerComputeWorker.js +23 -0
  1081. package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.d.ts +11 -0
  1082. package/dist/esm/utilities/segmentation/InterpolationManager/InterpolationManager.js +177 -0
  1083. package/dist/esm/utilities/segmentation/InterpolationManager/deleteRelatedAnnotations.d.ts +2 -0
  1084. package/dist/esm/utilities/segmentation/InterpolationManager/deleteRelatedAnnotations.js +66 -0
  1085. package/dist/esm/utilities/segmentation/VolumetricCalculator.d.ts +15 -0
  1086. package/dist/esm/utilities/segmentation/VolumetricCalculator.js +48 -0
  1087. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.d.ts +2 -0
  1088. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +40 -0
  1089. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.d.ts +7 -0
  1090. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +45 -0
  1091. package/dist/esm/utilities/segmentation/computeAndAddRepresentation.d.ts +3 -0
  1092. package/dist/esm/utilities/segmentation/computeAndAddRepresentation.js +45 -0
  1093. package/dist/esm/utilities/segmentation/contourAndFindLargestBidirectional.d.ts +1 -0
  1094. package/dist/esm/utilities/segmentation/contourAndFindLargestBidirectional.js +23 -0
  1095. package/dist/esm/utilities/segmentation/createBidirectionalToolData.d.ts +14 -0
  1096. package/dist/esm/utilities/segmentation/createBidirectionalToolData.js +35 -0
  1097. package/dist/esm/utilities/segmentation/createLabelmapMemo.d.ts +44 -0
  1098. package/dist/esm/utilities/segmentation/createLabelmapMemo.js +68 -0
  1099. package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.d.ts +9 -0
  1100. package/dist/esm/utilities/segmentation/createLabelmapVolumeForViewport.js +28 -0
  1101. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.d.ts +3 -0
  1102. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.js +34 -0
  1103. package/dist/esm/utilities/segmentation/findLargestBidirectional.d.ts +1 -0
  1104. package/dist/esm/utilities/segmentation/findLargestBidirectional.js +95 -0
  1105. package/dist/esm/utilities/segmentation/floodFill.d.ts +4 -0
  1106. package/dist/esm/utilities/segmentation/floodFill.js +120 -0
  1107. package/dist/esm/utilities/segmentation/getBrushToolInstances.d.ts +1 -0
  1108. package/dist/esm/utilities/segmentation/getBrushToolInstances.js +17 -0
  1109. package/dist/esm/utilities/segmentation/getHoveredContourSegmentationAnnotation.d.ts +1 -0
  1110. package/dist/esm/utilities/segmentation/getHoveredContourSegmentationAnnotation.js +13 -0
  1111. package/dist/esm/utilities/segmentation/getOrCreateSegmentationVolume.d.ts +2 -0
  1112. package/dist/esm/utilities/segmentation/getOrCreateSegmentationVolume.js +21 -0
  1113. package/dist/esm/utilities/segmentation/getSVGStyleForSegment.d.ts +17 -0
  1114. package/dist/esm/utilities/segmentation/getSVGStyleForSegment.js +68 -0
  1115. package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.d.ts +7 -0
  1116. package/dist/esm/utilities/segmentation/getSegmentIndexAtLabelmapBorder.js +76 -0
  1117. package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.d.ts +11 -0
  1118. package/dist/esm/utilities/segmentation/getSegmentIndexAtWorldPoint.js +74 -0
  1119. package/dist/esm/utilities/segmentation/getStatistics.d.ts +5 -0
  1120. package/dist/esm/utilities/segmentation/getStatistics.js +210 -0
  1121. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.d.ts +2 -0
  1122. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +80 -0
  1123. package/dist/esm/utilities/segmentation/growCut/growCutShader.d.ts +2 -0
  1124. package/dist/esm/utilities/segmentation/growCut/growCutShader.js +106 -0
  1125. package/dist/esm/utilities/segmentation/growCut/index.d.ts +7 -0
  1126. package/dist/esm/utilities/segmentation/growCut/index.js +4 -0
  1127. package/dist/esm/utilities/segmentation/growCut/runGrowCut.d.ts +16 -0
  1128. package/dist/esm/utilities/segmentation/growCut/runGrowCut.js +269 -0
  1129. package/dist/esm/utilities/segmentation/growCut/runGrowCutForBoundingBox.d.ts +15 -0
  1130. package/dist/esm/utilities/segmentation/growCut/runGrowCutForBoundingBox.js +110 -0
  1131. package/dist/esm/utilities/segmentation/growCut/runGrowCutForSphere.d.ts +9 -0
  1132. package/dist/esm/utilities/segmentation/growCut/runGrowCutForSphere.js +164 -0
  1133. package/dist/esm/utilities/segmentation/growCut/runOneClickGrowCut.d.ts +9 -0
  1134. package/dist/esm/utilities/segmentation/growCut/runOneClickGrowCut.js +176 -0
  1135. package/dist/esm/utilities/segmentation/index.d.ts +28 -0
  1136. package/dist/esm/utilities/segmentation/index.js +28 -0
  1137. package/dist/esm/utilities/segmentation/invalidateBrushCursor.d.ts +1 -0
  1138. package/dist/esm/utilities/segmentation/invalidateBrushCursor.js +20 -0
  1139. package/dist/esm/utilities/segmentation/isLineInSegment.d.ts +9 -0
  1140. package/dist/esm/utilities/segmentation/isLineInSegment.js +49 -0
  1141. package/dist/esm/utilities/segmentation/islandRemoval.d.ts +28 -0
  1142. package/dist/esm/utilities/segmentation/islandRemoval.js +181 -0
  1143. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +20 -0
  1144. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +35 -0
  1145. package/dist/esm/utilities/segmentation/segmentContourAction.d.ts +17 -0
  1146. package/dist/esm/utilities/segmentation/segmentContourAction.js +95 -0
  1147. package/dist/esm/utilities/segmentation/thresholdSegmentationByRange.d.ts +4 -0
  1148. package/dist/esm/utilities/segmentation/thresholdSegmentationByRange.js +58 -0
  1149. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.d.ts +11 -0
  1150. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +79 -0
  1151. package/dist/esm/utilities/segmentation/utilities.d.ts +25 -0
  1152. package/dist/esm/utilities/segmentation/utilities.js +86 -0
  1153. package/dist/esm/utilities/segmentation/validateLabelmap.d.ts +4 -0
  1154. package/dist/esm/utilities/segmentation/validateLabelmap.js +32 -0
  1155. package/dist/esm/utilities/stackPrefetch/index.d.ts +3 -0
  1156. package/dist/esm/utilities/stackPrefetch/index.js +3 -0
  1157. package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
  1158. package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js +221 -0
  1159. package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +14 -0
  1160. package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +150 -0
  1161. package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
  1162. package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js +76 -0
  1163. package/dist/esm/utilities/stackPrefetch/state.d.ts +22 -0
  1164. package/dist/esm/utilities/stackPrefetch/state.js +13 -0
  1165. package/dist/esm/utilities/throttle.d.ts +5 -0
  1166. package/dist/esm/utilities/throttle.js +19 -0
  1167. package/dist/esm/utilities/touch/index.d.ts +10 -0
  1168. package/dist/esm/utilities/touch/index.js +152 -0
  1169. package/dist/esm/utilities/triggerAnnotationRender.d.ts +2 -0
  1170. package/dist/esm/utilities/triggerAnnotationRender.js +5 -0
  1171. package/dist/esm/utilities/triggerAnnotationRenderForToolGroupIds.d.ts +2 -0
  1172. package/dist/esm/utilities/triggerAnnotationRenderForToolGroupIds.js +24 -0
  1173. package/dist/esm/utilities/triggerAnnotationRenderForViewportIds.d.ts +2 -0
  1174. package/dist/esm/utilities/triggerAnnotationRenderForViewportIds.js +22 -0
  1175. package/dist/esm/utilities/viewport/index.d.ts +2 -0
  1176. package/dist/esm/utilities/viewport/index.js +2 -0
  1177. package/dist/esm/utilities/viewport/isViewportPreScaled.d.ts +3 -0
  1178. package/dist/esm/utilities/viewport/isViewportPreScaled.js +16 -0
  1179. package/dist/esm/utilities/viewportFilters/filterViewportsWithFrameOfReferenceUID.d.ts +2 -0
  1180. package/dist/esm/utilities/viewportFilters/filterViewportsWithFrameOfReferenceUID.js +11 -0
  1181. package/dist/esm/utilities/viewportFilters/filterViewportsWithParallelNormals.d.ts +2 -0
  1182. package/dist/esm/utilities/viewportFilters/filterViewportsWithParallelNormals.js +10 -0
  1183. package/dist/esm/utilities/viewportFilters/filterViewportsWithSameOrientation.d.ts +2 -0
  1184. package/dist/esm/utilities/viewportFilters/filterViewportsWithSameOrientation.js +9 -0
  1185. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.d.ts +2 -0
  1186. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js +28 -0
  1187. package/dist/esm/utilities/viewportFilters/getViewportIdsWithToolToRender.d.ts +1 -0
  1188. package/dist/esm/utilities/viewportFilters/getViewportIdsWithToolToRender.js +17 -0
  1189. package/dist/esm/utilities/viewportFilters/index.d.ts +5 -0
  1190. package/dist/esm/utilities/viewportFilters/index.js +5 -0
  1191. package/dist/esm/utilities/voi/colorbar/Colorbar.d.ts +44 -0
  1192. package/dist/esm/utilities/voi/colorbar/Colorbar.js +242 -0
  1193. package/dist/esm/utilities/voi/colorbar/ColorbarCanvas.d.ts +29 -0
  1194. package/dist/esm/utilities/voi/colorbar/ColorbarCanvas.js +182 -0
  1195. package/dist/esm/utilities/voi/colorbar/ColorbarTicks.d.ts +46 -0
  1196. package/dist/esm/utilities/voi/colorbar/ColorbarTicks.js +280 -0
  1197. package/dist/esm/utilities/voi/colorbar/ViewportColorbar.d.ts +25 -0
  1198. package/dist/esm/utilities/voi/colorbar/ViewportColorbar.js +146 -0
  1199. package/dist/esm/utilities/voi/colorbar/common/areColorbarRangesEqual.d.ts +3 -0
  1200. package/dist/esm/utilities/voi/colorbar/common/areColorbarRangesEqual.js +4 -0
  1201. package/dist/esm/utilities/voi/colorbar/common/areColorbarSizesEqual.d.ts +3 -0
  1202. package/dist/esm/utilities/voi/colorbar/common/areColorbarSizesEqual.js +4 -0
  1203. package/dist/esm/utilities/voi/colorbar/common/index.d.ts +4 -0
  1204. package/dist/esm/utilities/voi/colorbar/common/index.js +4 -0
  1205. package/dist/esm/utilities/voi/colorbar/common/isColorbarSizeValid.d.ts +3 -0
  1206. package/dist/esm/utilities/voi/colorbar/common/isColorbarSizeValid.js +4 -0
  1207. package/dist/esm/utilities/voi/colorbar/common/isRangeTextPositionValid.d.ts +3 -0
  1208. package/dist/esm/utilities/voi/colorbar/common/isRangeTextPositionValid.js +9 -0
  1209. package/dist/esm/utilities/voi/colorbar/common/isRangeValid.d.ts +3 -0
  1210. package/dist/esm/utilities/voi/colorbar/common/isRangeValid.js +4 -0
  1211. package/dist/esm/utilities/voi/colorbar/enums/ColorbarRangeTextPosition.d.ts +6 -0
  1212. package/dist/esm/utilities/voi/colorbar/enums/ColorbarRangeTextPosition.js +7 -0
  1213. package/dist/esm/utilities/voi/colorbar/enums/index.d.ts +1 -0
  1214. package/dist/esm/utilities/voi/colorbar/enums/index.js +1 -0
  1215. package/dist/esm/utilities/voi/colorbar/index.d.ts +6 -0
  1216. package/dist/esm/utilities/voi/colorbar/index.js +4 -0
  1217. package/dist/esm/utilities/voi/colorbar/types/ColorbarCanvasProps.d.ts +12 -0
  1218. package/dist/esm/utilities/voi/colorbar/types/ColorbarCanvasProps.js +0 -0
  1219. package/dist/esm/utilities/voi/colorbar/types/ColorbarCommonProps.d.ts +11 -0
  1220. package/dist/esm/utilities/voi/colorbar/types/ColorbarCommonProps.js +0 -0
  1221. package/dist/esm/utilities/voi/colorbar/types/ColorbarImageRange.d.ts +4 -0
  1222. package/dist/esm/utilities/voi/colorbar/types/ColorbarImageRange.js +0 -0
  1223. package/dist/esm/utilities/voi/colorbar/types/ColorbarProps.d.ts +7 -0
  1224. package/dist/esm/utilities/voi/colorbar/types/ColorbarProps.js +0 -0
  1225. package/dist/esm/utilities/voi/colorbar/types/ColorbarSize.d.ts +4 -0
  1226. package/dist/esm/utilities/voi/colorbar/types/ColorbarSize.js +0 -0
  1227. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksProps.d.ts +7 -0
  1228. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksProps.js +0 -0
  1229. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksStyle.d.ts +8 -0
  1230. package/dist/esm/utilities/voi/colorbar/types/ColorbarTicksStyle.js +0 -0
  1231. package/dist/esm/utilities/voi/colorbar/types/ColorbarVOIRange.d.ts +2 -0
  1232. package/dist/esm/utilities/voi/colorbar/types/ColorbarVOIRange.js +0 -0
  1233. package/dist/esm/utilities/voi/colorbar/types/ViewportColorbarProps.d.ts +5 -0
  1234. package/dist/esm/utilities/voi/colorbar/types/ViewportColorbarProps.js +0 -0
  1235. package/dist/esm/utilities/voi/colorbar/types/index.d.ts +8 -0
  1236. package/dist/esm/utilities/voi/colorbar/types/index.js +0 -0
  1237. package/dist/esm/utilities/voi/index.d.ts +3 -0
  1238. package/dist/esm/utilities/voi/index.js +3 -0
  1239. package/dist/esm/utilities/voi/windowlevel/calculateMinMaxMean.d.ts +6 -0
  1240. package/dist/esm/utilities/voi/windowlevel/calculateMinMaxMean.js +25 -0
  1241. package/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.d.ts +11 -0
  1242. package/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.js +42 -0
  1243. package/dist/esm/utilities/voi/windowlevel/getLuminanceFromRegion.d.ts +2 -0
  1244. package/dist/esm/utilities/voi/windowlevel/getLuminanceFromRegion.js +27 -0
  1245. package/dist/esm/utilities/voi/windowlevel/index.d.ts +4 -0
  1246. package/dist/esm/utilities/voi/windowlevel/index.js +4 -0
  1247. package/dist/esm/widgets/Widget.d.ts +17 -0
  1248. package/dist/esm/widgets/Widget.js +66 -0
  1249. package/dist/esm/widgets/types/WidgetProps.d.ts +4 -0
  1250. package/dist/esm/widgets/types/WidgetProps.js +0 -0
  1251. package/dist/esm/widgets/types/WidgetSize.d.ts +4 -0
  1252. package/dist/esm/widgets/types/WidgetSize.js +0 -0
  1253. package/dist/esm/widgets/types/index.d.ts +2 -0
  1254. package/dist/esm/widgets/types/index.js +0 -0
  1255. package/dist/esm/workers/computeWorker.d.ts +1 -0
  1256. package/dist/esm/workers/computeWorker.js +78 -0
  1257. package/package.json +113 -100
  1258. package/changelog.md +0 -304
  1259. package/dist/cornerstoneTools.js +0 -27391
  1260. package/dist/cornerstoneTools.js.map +0 -1
  1261. package/dist/cornerstoneTools.min.js +0 -3
  1262. package/dist/cornerstoneTools.min.js.map +0 -1
@@ -0,0 +1,927 @@
1
+ import { AnnotationTool } from './base';
2
+ import { getEnabledElement, utilities as csUtils, eventTarget, Enums, getRenderingEngine, CONSTANTS, getEnabledElementByViewportId, } from '@cornerstonejs/core';
3
+ import { addAnnotation, getAllAnnotations, getAnnotations, removeAnnotation, } from '../stateManagement/annotation/annotationState';
4
+ import { isAnnotationLocked } from '../stateManagement/annotation/annotationLocking';
5
+ import { isAnnotationVisible } from '../stateManagement/annotation/annotationVisibility';
6
+ import { triggerAnnotationCompleted } from '../stateManagement/annotation/helpers/state';
7
+ import { drawCircle as drawCircleSvg, drawHandles as drawHandlesSvg, } from '../drawingSvg';
8
+ import { state } from '../store/state';
9
+ import { Events, MouseBindings, KeyboardBindings, Events as cstEvents, SegmentationRepresentations, ToolModes, } from '../enums';
10
+ import { getViewportIdsWithToolToRender } from '../utilities/viewportFilters';
11
+ import { resetElementCursor, hideElementCursor, } from '../cursors/elementCursor';
12
+ import triggerAnnotationRenderForViewportIds from '../utilities/triggerAnnotationRenderForViewportIds';
13
+ import { getCanvasCircleRadius } from '../utilities/math/circle';
14
+ import { vec2, vec3 } from 'gl-matrix';
15
+ import { getToolGroupForViewport } from '../store/ToolGroupManager';
16
+ import debounce from '../utilities/debounce';
17
+ import { distanceToPoint } from '../utilities/math/point';
18
+ import { addSegmentationRepresentations } from '../stateManagement/segmentation';
19
+ const MAGNIFY_CLASSNAME = 'advancedMagnifyTool';
20
+ const MAGNIFY_VIEWPORT_INITIAL_RADIUS = 125;
21
+ const { Events: csEvents } = Enums;
22
+ const isSegmentation = (actor) => actor.uid !== actor.referencedId;
23
+ var AdvancedMagnifyToolActions;
24
+ (function (AdvancedMagnifyToolActions) {
25
+ AdvancedMagnifyToolActions["ShowZoomFactorsList"] = "showZoomFactorsList";
26
+ })(AdvancedMagnifyToolActions || (AdvancedMagnifyToolActions = {}));
27
+ const ADVANCED_MAGNIFY_TOOL_NAME = 'AdvancedMagnify';
28
+ const PARALLEL_THRESHOLD = 1 - CONSTANTS.EPSILON;
29
+ class AdvancedMagnifyTool extends AnnotationTool {
30
+ static { this.Actions = AdvancedMagnifyToolActions; }
31
+ constructor(toolProps = {}, defaultToolProps = {
32
+ supportedInteractionTypes: ['Mouse', 'Touch'],
33
+ configuration: {
34
+ shadow: true,
35
+ magnifyingGlass: {
36
+ radius: 125,
37
+ zoomFactor: 3,
38
+ zoomFactorList: [1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5],
39
+ autoPan: {
40
+ enabled: true,
41
+ padding: 10,
42
+ },
43
+ },
44
+ actions: {
45
+ showZoomFactorsList: {
46
+ method: 'showZoomFactorsList',
47
+ bindings: [
48
+ {
49
+ mouseButton: MouseBindings.Secondary,
50
+ modifierKey: KeyboardBindings.Shift,
51
+ },
52
+ ],
53
+ },
54
+ },
55
+ },
56
+ }) {
57
+ super(toolProps, defaultToolProps);
58
+ this.addNewAnnotation = (evt) => {
59
+ const eventDetail = evt.detail;
60
+ const { currentPoints, element } = eventDetail;
61
+ const enabledElement = getEnabledElement(element);
62
+ const { viewport, renderingEngine } = enabledElement;
63
+ const worldPos = currentPoints.world;
64
+ const canvasPos = currentPoints.canvas;
65
+ const { magnifyingGlass: config } = this.configuration;
66
+ const { radius, zoomFactor, autoPan } = config;
67
+ const canvasHandlePoints = this._getCanvasHandlePoints(canvasPos, radius);
68
+ const camera = viewport.getCamera();
69
+ const { viewPlaneNormal, viewUp } = camera;
70
+ const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
71
+ const annotationUID = csUtils.uuidv4();
72
+ const magnifyViewportId = csUtils.uuidv4();
73
+ const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
74
+ const annotation = {
75
+ annotationUID,
76
+ highlighted: true,
77
+ invalidated: true,
78
+ metadata: {
79
+ toolName: this.getToolName(),
80
+ viewPlaneNormal: [...viewPlaneNormal],
81
+ viewUp: [...viewUp],
82
+ FrameOfReferenceUID,
83
+ referencedImageId,
84
+ },
85
+ data: {
86
+ sourceViewportId: viewport.id,
87
+ magnifyViewportId,
88
+ zoomFactor,
89
+ isCanvasAnnotation: true,
90
+ handles: {
91
+ points: canvasHandlePoints,
92
+ activeHandleIndex: null,
93
+ },
94
+ },
95
+ };
96
+ this.magnifyViewportManager.createViewport(annotation, {
97
+ magnifyViewportId,
98
+ sourceEnabledElement: enabledElement,
99
+ position: canvasPos,
100
+ radius,
101
+ zoomFactor,
102
+ autoPan: {
103
+ enabled: autoPan.enabled,
104
+ padding: autoPan.padding,
105
+ callback: (data) => {
106
+ const annotationPoints = annotation.data.handles.points;
107
+ const { canvas: canvasDelta } = data.delta;
108
+ for (let i = 0, len = annotationPoints.length; i < len; i++) {
109
+ const point = annotationPoints[i];
110
+ point[0] += canvasDelta[0];
111
+ point[1] += canvasDelta[1];
112
+ annotation.invalidated = true;
113
+ }
114
+ },
115
+ },
116
+ });
117
+ addAnnotation(annotation, element);
118
+ const viewportIdsToRender = getViewportIdsWithToolToRender(element, this.getToolName());
119
+ evt.preventDefault();
120
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
121
+ return annotation;
122
+ };
123
+ this.onSetToolDisabled = () => {
124
+ this.magnifyViewportManager.dispose();
125
+ const annotations = getAllAnnotations();
126
+ annotations.forEach((annotation) => {
127
+ if (annotation.metadata.toolName === this.getToolName()) {
128
+ removeAnnotation(annotation.annotationUID);
129
+ }
130
+ });
131
+ };
132
+ this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
133
+ const { data } = annotation;
134
+ const { points } = data.handles;
135
+ const canvasCoordinates = points;
136
+ const canvasTop = canvasCoordinates[0];
137
+ const canvasBottom = canvasCoordinates[2];
138
+ const canvasLeft = canvasCoordinates[3];
139
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
140
+ const center = [
141
+ canvasLeft[0] + radius,
142
+ canvasTop[1] + radius,
143
+ ];
144
+ const radiusPoint = getCanvasCircleRadius([center, canvasCoords]);
145
+ if (Math.abs(radiusPoint - radius) < proximity * 2) {
146
+ return true;
147
+ }
148
+ return false;
149
+ };
150
+ this.toolSelectedCallback = (evt, annotation) => {
151
+ const eventDetail = evt.detail;
152
+ const { element } = eventDetail;
153
+ annotation.highlighted = true;
154
+ const viewportIdsToRender = getViewportIdsWithToolToRender(element, this.getToolName());
155
+ this.editData = {
156
+ annotation,
157
+ viewportIdsToRender,
158
+ };
159
+ hideElementCursor(element);
160
+ this._activateModify(element);
161
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
162
+ evt.preventDefault();
163
+ };
164
+ this.handleSelectedCallback = (evt, annotation, handle) => {
165
+ const eventDetail = evt.detail;
166
+ const { element } = eventDetail;
167
+ const { data } = annotation;
168
+ annotation.highlighted = true;
169
+ const { points } = data.handles;
170
+ const handleIndex = points.findIndex((p) => p === handle);
171
+ const viewportIdsToRender = getViewportIdsWithToolToRender(element, this.getToolName());
172
+ this.editData = {
173
+ annotation,
174
+ viewportIdsToRender,
175
+ handleIndex,
176
+ };
177
+ this._activateModify(element);
178
+ hideElementCursor(element);
179
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
180
+ evt.preventDefault();
181
+ };
182
+ this._endCallback = (evt) => {
183
+ const eventDetail = evt.detail;
184
+ const { element } = eventDetail;
185
+ const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
186
+ const { data } = annotation;
187
+ data.handles.activeHandleIndex = null;
188
+ this._deactivateModify(element);
189
+ resetElementCursor(element);
190
+ this.editData = null;
191
+ this.isDrawing = false;
192
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
193
+ if (newAnnotation) {
194
+ triggerAnnotationCompleted(annotation);
195
+ }
196
+ };
197
+ this._dragDrawCallback = (evt) => {
198
+ this.isDrawing = true;
199
+ const eventDetail = evt.detail;
200
+ const { deltaPoints } = eventDetail;
201
+ const canvasDelta = deltaPoints?.canvas ?? [0, 0, 0];
202
+ const { annotation, viewportIdsToRender } = this.editData;
203
+ const { points } = annotation.data.handles;
204
+ points.forEach((point) => {
205
+ point[0] += canvasDelta[0];
206
+ point[1] += canvasDelta[1];
207
+ });
208
+ annotation.invalidated = true;
209
+ this.editData.hasMoved = true;
210
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
211
+ };
212
+ this._dragModifyCallback = (evt) => {
213
+ this.isDrawing = true;
214
+ const eventDetail = evt.detail;
215
+ const { element } = eventDetail;
216
+ const { annotation, viewportIdsToRender, handleIndex } = this.editData;
217
+ const { data } = annotation;
218
+ if (handleIndex === undefined) {
219
+ const { deltaPoints } = eventDetail;
220
+ const canvasDelta = deltaPoints.canvas;
221
+ const points = data.handles.points;
222
+ points.forEach((point) => {
223
+ point[0] += canvasDelta[0];
224
+ point[1] += canvasDelta[1];
225
+ });
226
+ annotation.invalidated = true;
227
+ }
228
+ else {
229
+ this._dragHandle(evt);
230
+ annotation.invalidated = true;
231
+ }
232
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
233
+ };
234
+ this._dragHandle = (evt) => {
235
+ const eventDetail = evt.detail;
236
+ const { annotation } = this.editData;
237
+ const { data } = annotation;
238
+ const { points } = data.handles;
239
+ const canvasCoordinates = points;
240
+ const canvasTop = canvasCoordinates[0];
241
+ const canvasBottom = canvasCoordinates[2];
242
+ const canvasLeft = canvasCoordinates[3];
243
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
244
+ const canvasCenter = [
245
+ canvasLeft[0] + radius,
246
+ canvasTop[1] + radius,
247
+ ];
248
+ const { currentPoints } = eventDetail;
249
+ const currentCanvasPoints = currentPoints.canvas;
250
+ const newRadius = getCanvasCircleRadius([
251
+ canvasCenter,
252
+ currentCanvasPoints,
253
+ ]);
254
+ const newCanvasHandlePoints = this._getCanvasHandlePoints(canvasCenter, newRadius);
255
+ points[0] = newCanvasHandlePoints[0];
256
+ points[1] = newCanvasHandlePoints[1];
257
+ points[2] = newCanvasHandlePoints[2];
258
+ points[3] = newCanvasHandlePoints[3];
259
+ };
260
+ this.cancel = (element) => {
261
+ if (!this.isDrawing) {
262
+ return;
263
+ }
264
+ this.isDrawing = false;
265
+ this._deactivateModify(element);
266
+ resetElementCursor(element);
267
+ const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
268
+ const { data } = annotation;
269
+ annotation.highlighted = false;
270
+ data.handles.activeHandleIndex = null;
271
+ triggerAnnotationRenderForViewportIds(viewportIdsToRender);
272
+ if (newAnnotation) {
273
+ triggerAnnotationCompleted(annotation);
274
+ }
275
+ this.editData = null;
276
+ return annotation.annotationUID;
277
+ };
278
+ this._activateModify = (element) => {
279
+ state.isInteractingWithTool = true;
280
+ element.addEventListener(Events.MOUSE_UP, this._endCallback);
281
+ element.addEventListener(Events.MOUSE_DRAG, this._dragModifyCallback);
282
+ element.addEventListener(Events.MOUSE_CLICK, this._endCallback);
283
+ element.addEventListener(Events.TOUCH_END, this._endCallback);
284
+ element.addEventListener(Events.TOUCH_DRAG, this._dragModifyCallback);
285
+ element.addEventListener(Events.TOUCH_TAP, this._endCallback);
286
+ };
287
+ this._deactivateModify = (element) => {
288
+ state.isInteractingWithTool = false;
289
+ element.removeEventListener(Events.MOUSE_UP, this._endCallback);
290
+ element.removeEventListener(Events.MOUSE_DRAG, this._dragModifyCallback);
291
+ element.removeEventListener(Events.MOUSE_CLICK, this._endCallback);
292
+ element.removeEventListener(Events.TOUCH_END, this._endCallback);
293
+ element.removeEventListener(Events.TOUCH_DRAG, this._dragModifyCallback);
294
+ element.removeEventListener(Events.TOUCH_TAP, this._endCallback);
295
+ };
296
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
297
+ let renderStatus = false;
298
+ const { viewport } = enabledElement;
299
+ const { element } = viewport;
300
+ let annotations = getAnnotations(this.getToolName(), element);
301
+ if (!annotations?.length) {
302
+ return renderStatus;
303
+ }
304
+ annotations = annotations?.filter((annotation) => annotation.data.sourceViewportId ===
305
+ viewport.id);
306
+ const filteredAnnotations = this.filterInteractableAnnotationsForElement(element, annotations);
307
+ if (!filteredAnnotations?.length) {
308
+ return renderStatus;
309
+ }
310
+ const styleSpecifier = {
311
+ toolGroupId: this.toolGroupId,
312
+ toolName: this.getToolName(),
313
+ viewportId: enabledElement.viewport.id,
314
+ };
315
+ for (let i = 0; i < filteredAnnotations.length; i++) {
316
+ const annotation = filteredAnnotations[i];
317
+ const { annotationUID, data } = annotation;
318
+ const { magnifyViewportId, zoomFactor, handles } = data;
319
+ const { points, activeHandleIndex } = handles;
320
+ styleSpecifier.annotationUID = annotationUID;
321
+ const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
322
+ const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
323
+ const color = this.getStyle('color', styleSpecifier, annotation);
324
+ const canvasCoordinates = points;
325
+ const canvasTop = canvasCoordinates[0];
326
+ const canvasBottom = canvasCoordinates[2];
327
+ const canvasLeft = canvasCoordinates[3];
328
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
329
+ const center = [
330
+ canvasLeft[0] + radius,
331
+ canvasTop[1] + radius,
332
+ ];
333
+ if (!viewport.getRenderingEngine()) {
334
+ console.warn('Rendering Engine has been destroyed');
335
+ return renderStatus;
336
+ }
337
+ let activeHandleCanvasCoords;
338
+ if (!isAnnotationVisible(annotationUID)) {
339
+ continue;
340
+ }
341
+ if (!isAnnotationLocked(annotationUID) &&
342
+ !this.editData &&
343
+ activeHandleIndex !== null) {
344
+ activeHandleCanvasCoords = [canvasCoordinates[activeHandleIndex]];
345
+ }
346
+ if (activeHandleCanvasCoords) {
347
+ const handleGroupUID = '0';
348
+ drawHandlesSvg(svgDrawingHelper, annotationUID, handleGroupUID, activeHandleCanvasCoords, {
349
+ color,
350
+ });
351
+ }
352
+ const dataId = `${annotationUID}-advancedMagnify`;
353
+ const circleUID = '0';
354
+ drawCircleSvg(svgDrawingHelper, annotationUID, circleUID, center, radius, {
355
+ color,
356
+ lineWidth: 5,
357
+ }, dataId);
358
+ const magnifyViewport = this.magnifyViewportManager.getViewport(magnifyViewportId);
359
+ magnifyViewport.position = center;
360
+ magnifyViewport.radius = radius;
361
+ magnifyViewport.zoomFactor = zoomFactor;
362
+ magnifyViewport.update();
363
+ renderStatus = true;
364
+ }
365
+ return renderStatus;
366
+ };
367
+ this._getCanvasHandlePoints = (canvasCenterPos, canvasRadius) => {
368
+ return [
369
+ [canvasCenterPos[0], canvasCenterPos[1] - canvasRadius, 0],
370
+ [canvasCenterPos[0] + canvasRadius, canvasCenterPos[1], 0],
371
+ [canvasCenterPos[0], canvasCenterPos[1] + canvasRadius, 0],
372
+ [canvasCenterPos[0] - canvasRadius, canvasCenterPos[1], 0],
373
+ ];
374
+ };
375
+ this.magnifyViewportManager = AdvancedMagnifyViewportManager.getInstance();
376
+ }
377
+ showZoomFactorsList(evt, annotation) {
378
+ const { element, currentPoints } = evt.detail;
379
+ const enabledElement = getEnabledElement(element);
380
+ const { viewport } = enabledElement;
381
+ const { canvas: canvasPoint } = currentPoints;
382
+ const viewportElement = element.querySelector(':scope .viewport-element');
383
+ const currentZoomFactor = annotation.data.zoomFactor;
384
+ const remove = () => dropdown.parentElement.removeChild(dropdown);
385
+ const dropdown = this._getZoomFactorsListDropdown(currentZoomFactor, (newZoomFactor) => {
386
+ if (newZoomFactor !== undefined) {
387
+ annotation.data.zoomFactor = Number.parseFloat(newZoomFactor);
388
+ annotation.invalidated = true;
389
+ }
390
+ remove();
391
+ viewport.render();
392
+ });
393
+ Object.assign(dropdown.style, {
394
+ left: `${canvasPoint[0]}px`,
395
+ top: `${canvasPoint[1]}px`,
396
+ });
397
+ viewportElement.appendChild(dropdown);
398
+ dropdown.focus();
399
+ }
400
+ _getZoomFactorsListDropdown(currentZoomFactor, onChangeCallback) {
401
+ const { zoomFactorList } = this.configuration.magnifyingGlass;
402
+ const dropdown = document.createElement('select');
403
+ dropdown.size = 5;
404
+ Object.assign(dropdown.style, {
405
+ width: '50px',
406
+ position: 'absolute',
407
+ });
408
+ ['mousedown', 'mouseup', 'mousemove', 'click'].forEach((eventName) => {
409
+ dropdown.addEventListener(eventName, (evt) => evt.stopPropagation());
410
+ });
411
+ dropdown.addEventListener('change', (evt) => {
412
+ evt.stopPropagation();
413
+ onChangeCallback(dropdown.value);
414
+ });
415
+ dropdown.addEventListener('keydown', (evt) => {
416
+ const shouldCancel = (evt.keyCode ?? evt.which === 27) ||
417
+ evt.key?.toLowerCase() === 'escape';
418
+ if (shouldCancel) {
419
+ evt.stopPropagation();
420
+ onChangeCallback();
421
+ }
422
+ });
423
+ zoomFactorList.forEach((zoomFactor) => {
424
+ const option = document.createElement('option');
425
+ option.label = zoomFactor;
426
+ option.title = `Zoom factor ${zoomFactor.toFixed(1)}`;
427
+ option.value = zoomFactor;
428
+ option.defaultSelected = zoomFactor === currentZoomFactor;
429
+ dropdown.add(option);
430
+ });
431
+ return dropdown;
432
+ }
433
+ }
434
+ class AdvancedMagnifyViewportManager {
435
+ constructor() {
436
+ this.createViewport = (annotation, viewportInfo) => {
437
+ const { magnifyViewportId, sourceEnabledElement, position, radius, zoomFactor, autoPan, } = viewportInfo;
438
+ const { viewport: sourceViewport } = sourceEnabledElement;
439
+ const { element: sourceElement } = sourceViewport;
440
+ const magnifyViewport = new AdvancedMagnifyViewport({
441
+ magnifyViewportId,
442
+ sourceEnabledElement,
443
+ radius,
444
+ position,
445
+ zoomFactor,
446
+ autoPan,
447
+ });
448
+ this._addSourceElementEventListener(sourceElement);
449
+ this._magnifyViewportsMap.set(magnifyViewport.viewportId, {
450
+ annotation,
451
+ magnifyViewport,
452
+ magnifyViewportInfo: viewportInfo,
453
+ });
454
+ return magnifyViewport;
455
+ };
456
+ this._annotationRemovedCallback = (evt) => {
457
+ const { annotation } = evt.detail;
458
+ if (annotation.metadata.toolName !== ADVANCED_MAGNIFY_TOOL_NAME) {
459
+ return;
460
+ }
461
+ this.destroyViewport(annotation.data.magnifyViewportId);
462
+ };
463
+ this._newStackImageCallback = (evt) => {
464
+ const { viewportId: sourceViewportId, imageId } = evt.detail;
465
+ const magnifyViewportsMapEntries = this._getMagnifyViewportsMapEntriesBySourceViewportId(sourceViewportId);
466
+ const { viewport } = getEnabledElementByViewportId(sourceViewportId);
467
+ if (viewport.stackActorReInitialized) {
468
+ this._reset(sourceViewportId);
469
+ }
470
+ magnifyViewportsMapEntries.forEach(({ annotation }) => {
471
+ annotation.metadata.referencedImageId = imageId;
472
+ annotation.invalidated = true;
473
+ });
474
+ };
475
+ this._newVolumeImageCallback = (evt) => {
476
+ const { renderingEngineId, viewportId: sourceViewportId } = evt.detail;
477
+ const renderingEngine = getRenderingEngine(renderingEngineId);
478
+ const sourceViewport = renderingEngine.getViewport(sourceViewportId);
479
+ const { viewPlaneNormal: currentViewPlaneNormal } = sourceViewport.getCamera();
480
+ const magnifyViewportsMapEntries = this._getMagnifyViewportsMapEntriesBySourceViewportId(sourceViewportId);
481
+ magnifyViewportsMapEntries.forEach(({ annotation }) => {
482
+ const { viewPlaneNormal } = annotation.metadata;
483
+ const isParallel = Math.abs(vec3.dot(viewPlaneNormal, currentViewPlaneNormal)) >
484
+ PARALLEL_THRESHOLD;
485
+ if (!isParallel) {
486
+ return;
487
+ }
488
+ const { handles } = annotation.data;
489
+ const worldImagePlanePoint = sourceViewport.canvasToWorld([0, 0]);
490
+ const vecHandleToImagePlane = vec3.sub(vec3.create(), worldImagePlanePoint, handles.points[0]);
491
+ const worldDist = vec3.dot(vecHandleToImagePlane, currentViewPlaneNormal);
492
+ const worldDelta = vec3.scale(vec3.create(), currentViewPlaneNormal, worldDist);
493
+ for (let i = 0, len = handles.points.length; i < len; i++) {
494
+ const point = handles.points[i];
495
+ point[0] += worldDelta[0];
496
+ point[1] += worldDelta[1];
497
+ point[2] += worldDelta[2];
498
+ }
499
+ annotation.invalidated = true;
500
+ });
501
+ };
502
+ this._magnifyViewportsMap = new Map();
503
+ this._initialize();
504
+ }
505
+ static getInstance() {
506
+ AdvancedMagnifyViewportManager._singleton =
507
+ AdvancedMagnifyViewportManager._singleton ??
508
+ new AdvancedMagnifyViewportManager();
509
+ return AdvancedMagnifyViewportManager._singleton;
510
+ }
511
+ getViewport(magnifyViewportId) {
512
+ return this._magnifyViewportsMap.get(magnifyViewportId)?.magnifyViewport;
513
+ }
514
+ dispose() {
515
+ this._removeEventListeners();
516
+ this._destroyViewports();
517
+ }
518
+ destroyViewport(magnifyViewportId) {
519
+ const magnifyViewportMapEntry = this._magnifyViewportsMap.get(magnifyViewportId);
520
+ if (magnifyViewportMapEntry) {
521
+ const { magnifyViewport } = magnifyViewportMapEntry;
522
+ const { viewport: sourceViewport } = magnifyViewport.sourceEnabledElement;
523
+ const { element: sourceElement } = sourceViewport;
524
+ this._removeSourceElementEventListener(sourceElement);
525
+ magnifyViewport.dispose();
526
+ this._magnifyViewportsMap.delete(magnifyViewportId);
527
+ }
528
+ }
529
+ _destroyViewports() {
530
+ const magnifyViewportIds = Array.from(this._magnifyViewportsMap.keys());
531
+ magnifyViewportIds.forEach((magnifyViewportId) => this.destroyViewport(magnifyViewportId));
532
+ }
533
+ _getMagnifyViewportsMapEntriesBySourceViewportId(sourceViewportId) {
534
+ const magnifyViewportsMapEntries = Array.from(this._magnifyViewportsMap.values());
535
+ return magnifyViewportsMapEntries.filter(({ magnifyViewport }) => {
536
+ const { viewport } = magnifyViewport.sourceEnabledElement;
537
+ return viewport.id === sourceViewportId;
538
+ });
539
+ }
540
+ _reset(sourceViewportId) {
541
+ const magnifyViewports = this._getMagnifyViewportsMapEntriesBySourceViewportId(sourceViewportId);
542
+ magnifyViewports.forEach(({ magnifyViewport, annotation, magnifyViewportInfo }) => {
543
+ this.destroyViewport(magnifyViewport.viewportId);
544
+ const newEnabledElement = getEnabledElementByViewportId(sourceViewportId);
545
+ this.createViewport(annotation, {
546
+ ...magnifyViewportInfo,
547
+ sourceEnabledElement: {
548
+ ...newEnabledElement,
549
+ },
550
+ });
551
+ });
552
+ }
553
+ _addEventListeners() {
554
+ eventTarget.addEventListener(cstEvents.ANNOTATION_REMOVED, this._annotationRemovedCallback);
555
+ }
556
+ _removeEventListeners() {
557
+ eventTarget.removeEventListener(cstEvents.ANNOTATION_REMOVED, this._annotationRemovedCallback);
558
+ }
559
+ _addSourceElementEventListener(element) {
560
+ element.addEventListener(csEvents.STACK_NEW_IMAGE, this._newStackImageCallback);
561
+ const newStackHandler = (evt) => {
562
+ const { viewportId: sourceViewportId } = evt.detail;
563
+ this._reset(sourceViewportId);
564
+ };
565
+ element.addEventListener(csEvents.VIEWPORT_NEW_IMAGE_SET, newStackHandler);
566
+ const newVolumeHandler = (evt) => {
567
+ const { viewportId: sourceViewportId } = evt.detail;
568
+ this._reset(sourceViewportId);
569
+ };
570
+ element.addEventListener(csEvents.VOLUME_VIEWPORT_NEW_VOLUME, newVolumeHandler);
571
+ element.addEventListener(csEvents.VOLUME_NEW_IMAGE, this._newVolumeImageCallback);
572
+ element.newStackHandler = newStackHandler;
573
+ element.newVolumeHandler = newVolumeHandler;
574
+ }
575
+ _removeSourceElementEventListener(element) {
576
+ element.removeEventListener(csEvents.STACK_NEW_IMAGE, this._newStackImageCallback);
577
+ element.removeEventListener(csEvents.VOLUME_NEW_IMAGE, this._newVolumeImageCallback);
578
+ element.removeEventListener(csEvents.VIEWPORT_NEW_IMAGE_SET, element.newStackHandler);
579
+ element.removeEventListener(csEvents.VOLUME_VIEWPORT_NEW_VOLUME, element.newVolumeHandler);
580
+ delete element.newStackHandler;
581
+ delete element.newVolumeHandler;
582
+ }
583
+ _initialize() {
584
+ this._addEventListeners();
585
+ }
586
+ }
587
+ class AdvancedMagnifyViewport {
588
+ constructor({ magnifyViewportId, sourceEnabledElement, radius = MAGNIFY_VIEWPORT_INITIAL_RADIUS, position = [0, 0], zoomFactor, autoPan, }) {
589
+ this._enabledElement = null;
590
+ this._sourceToolGroup = null;
591
+ this._magnifyToolGroup = null;
592
+ this._isViewportReady = false;
593
+ this._radius = 0;
594
+ this._resized = false;
595
+ this._canAutoPan = false;
596
+ this._viewportId = magnifyViewportId ?? csUtils.uuidv4();
597
+ this._sourceEnabledElement = sourceEnabledElement;
598
+ this._autoPan = autoPan;
599
+ this.radius = radius;
600
+ this.position = position;
601
+ this.zoomFactor = zoomFactor;
602
+ this.visible = true;
603
+ this._browserMouseDownCallback = this._browserMouseDownCallback.bind(this);
604
+ this._browserMouseUpCallback = this._browserMouseUpCallback.bind(this);
605
+ this._handleToolModeChanged = this._handleToolModeChanged.bind(this);
606
+ this._mouseDragCallback = this._mouseDragCallback.bind(this);
607
+ this._resizeViewportAsync = (debounce(this._resizeViewport.bind(this), 1));
608
+ this._initialize();
609
+ }
610
+ get sourceEnabledElement() {
611
+ return this._sourceEnabledElement;
612
+ }
613
+ get viewportId() {
614
+ return this._viewportId;
615
+ }
616
+ get radius() {
617
+ return this._radius;
618
+ }
619
+ set radius(radius) {
620
+ if (Math.abs(this._radius - radius) > 0.00001) {
621
+ this._radius = radius;
622
+ this._resized = true;
623
+ }
624
+ }
625
+ update() {
626
+ const { radius, position, visible } = this;
627
+ const { viewport } = this._enabledElement;
628
+ const { element } = viewport;
629
+ const size = 2 * radius;
630
+ const [x, y] = position;
631
+ if (this._resized) {
632
+ this._resizeViewportAsync();
633
+ this._resized = false;
634
+ }
635
+ Object.assign(element.style, {
636
+ display: visible ? 'block' : 'hidden',
637
+ width: `${size}px`,
638
+ height: `${size}px`,
639
+ left: `${-radius}px`,
640
+ top: `${-radius}px`,
641
+ transform: `translate(${x}px, ${y}px)`,
642
+ });
643
+ if (this._isViewportReady) {
644
+ this._syncViewports();
645
+ viewport.render();
646
+ }
647
+ }
648
+ dispose() {
649
+ const { viewport } = this._enabledElement;
650
+ const { element } = viewport;
651
+ const renderingEngine = viewport.getRenderingEngine();
652
+ this._removeEventListeners(element);
653
+ renderingEngine.disableElement(viewport.id);
654
+ if (element.parentNode) {
655
+ element.parentNode.removeChild(element);
656
+ }
657
+ }
658
+ _handleToolModeChanged(evt) {
659
+ const { _magnifyToolGroup: magnifyToolGroup } = this;
660
+ const { toolGroupId, toolName, mode, toolBindingsOptions } = evt.detail;
661
+ if (this._sourceToolGroup?.id !== toolGroupId) {
662
+ return;
663
+ }
664
+ switch (mode) {
665
+ case ToolModes.Active:
666
+ magnifyToolGroup.setToolActive(toolName, toolBindingsOptions);
667
+ break;
668
+ case ToolModes.Passive:
669
+ magnifyToolGroup.setToolPassive(toolName);
670
+ break;
671
+ case ToolModes.Enabled:
672
+ magnifyToolGroup.setToolEnabled(toolName);
673
+ break;
674
+ case ToolModes.Disabled:
675
+ magnifyToolGroup.setToolDisabled(toolName);
676
+ break;
677
+ default:
678
+ throw new Error(`Unknow tool mode (${mode})`);
679
+ }
680
+ }
681
+ _inheritBorderRadius(magnifyElement) {
682
+ const viewport = magnifyElement.querySelector('.viewport-element');
683
+ const canvas = magnifyElement.querySelector('.cornerstone-canvas');
684
+ viewport.style.borderRadius = 'inherit';
685
+ canvas.style.borderRadius = 'inherit';
686
+ }
687
+ _createViewportNode() {
688
+ const magnifyElement = document.createElement('div');
689
+ const { radius } = this;
690
+ const size = radius * 2;
691
+ magnifyElement.classList.add(MAGNIFY_CLASSNAME);
692
+ Object.assign(magnifyElement.style, {
693
+ display: 'block',
694
+ width: `${size}px`,
695
+ height: `${size}px`,
696
+ position: 'absolute',
697
+ overflow: 'hidden',
698
+ borderRadius: '50%',
699
+ boxSizing: 'border-box',
700
+ left: `${-radius}px`,
701
+ top: `${-radius}px`,
702
+ transform: `translate(-1000px, -1000px)`,
703
+ });
704
+ return magnifyElement;
705
+ }
706
+ _convertZoomFactorToParallelScale(viewport, magnifyViewport, zoomFactor) {
707
+ const { parallelScale } = viewport.getCamera();
708
+ const canvasRatio = magnifyViewport.canvas.offsetWidth / viewport.canvas.offsetWidth;
709
+ return parallelScale * (1 / zoomFactor) * canvasRatio;
710
+ }
711
+ _isStackViewport(viewport) {
712
+ return 'setStack' in viewport;
713
+ }
714
+ _isVolumeViewport(viewport) {
715
+ return 'addVolumes' in viewport;
716
+ }
717
+ _cloneToolGroups(sourceViewport, magnifyViewport) {
718
+ const sourceActors = sourceViewport.getActors();
719
+ const magnifyToolGroupId = `${magnifyViewport.id}-toolGroup`;
720
+ const sourceToolGroup = getToolGroupForViewport(sourceViewport.id, sourceViewport.renderingEngineId);
721
+ const magnifyToolGroup = sourceToolGroup.clone(magnifyToolGroupId, (toolName) => {
722
+ const toolInstance = sourceToolGroup.getToolInstance(toolName);
723
+ const isAnnotationTool = toolInstance instanceof AnnotationTool &&
724
+ !(toolInstance instanceof AdvancedMagnifyTool);
725
+ return isAnnotationTool;
726
+ });
727
+ magnifyToolGroup.addViewport(magnifyViewport.id, magnifyViewport.renderingEngineId);
728
+ sourceActors.filter(isSegmentation).forEach((actor) => {
729
+ addSegmentationRepresentations(this.viewportId, [
730
+ {
731
+ segmentationId: actor.referencedId,
732
+ type: SegmentationRepresentations.Labelmap,
733
+ },
734
+ ]);
735
+ });
736
+ return { sourceToolGroup, magnifyToolGroup };
737
+ }
738
+ _cloneStack(sourceViewport, magnifyViewport) {
739
+ const imageIds = sourceViewport.getImageIds();
740
+ magnifyViewport.setStack(imageIds).then(() => {
741
+ this._isViewportReady = true;
742
+ this.update();
743
+ });
744
+ }
745
+ _cloneVolumes(sourceViewport, magnifyViewport) {
746
+ const actors = sourceViewport.getActors();
747
+ const volumeInputArray = actors
748
+ .filter((actor) => !isSegmentation(actor))
749
+ .map((actor) => ({ volumeId: actor.uid }));
750
+ magnifyViewport.setVolumes(volumeInputArray).then(() => {
751
+ this._isViewportReady = true;
752
+ this.update();
753
+ });
754
+ return magnifyViewport;
755
+ }
756
+ _cloneViewport(sourceViewport, magnifyElement) {
757
+ const { viewportId: magnifyViewportId } = this;
758
+ const renderingEngine = sourceViewport.getRenderingEngine();
759
+ const { options: sourceViewportOptions } = sourceViewport;
760
+ const viewportInput = {
761
+ element: magnifyElement,
762
+ viewportId: magnifyViewportId,
763
+ type: sourceViewport.type,
764
+ defaultOptions: { ...sourceViewportOptions },
765
+ };
766
+ renderingEngine.enableElement(viewportInput);
767
+ const magnifyViewport = (renderingEngine.getViewport(magnifyViewportId));
768
+ if (this._isStackViewport(sourceViewport)) {
769
+ this._cloneStack(sourceViewport, magnifyViewport);
770
+ }
771
+ else if (this._isVolumeViewport(sourceViewport)) {
772
+ this._cloneVolumes(sourceViewport, magnifyViewport);
773
+ }
774
+ this._inheritBorderRadius(magnifyElement);
775
+ const toolGroups = this._cloneToolGroups(sourceViewport, magnifyViewport);
776
+ this._sourceToolGroup = toolGroups.sourceToolGroup;
777
+ this._magnifyToolGroup = toolGroups.magnifyToolGroup;
778
+ }
779
+ _cancelMouseEventCallback(evt) {
780
+ evt.stopPropagation();
781
+ evt.preventDefault();
782
+ }
783
+ _browserMouseUpCallback(evt) {
784
+ const { element } = this._enabledElement.viewport;
785
+ document.removeEventListener('mouseup', this._browserMouseUpCallback);
786
+ element.addEventListener('mouseup', this._cancelMouseEventCallback);
787
+ element.addEventListener('mousemove', this._cancelMouseEventCallback);
788
+ }
789
+ _browserMouseDownCallback(evt) {
790
+ const { element } = this._enabledElement.viewport;
791
+ this._canAutoPan = !!evt.target?.closest('.advancedMagnifyTool');
792
+ document.addEventListener('mouseup', this._browserMouseUpCallback);
793
+ element.removeEventListener('mouseup', this._cancelMouseEventCallback);
794
+ element.removeEventListener('mousemove', this._cancelMouseEventCallback);
795
+ }
796
+ _mouseDragCallback(evt) {
797
+ if (!state.isInteractingWithTool) {
798
+ return;
799
+ }
800
+ const { _autoPan: autoPan } = this;
801
+ if (!autoPan.enabled || !this._canAutoPan) {
802
+ return;
803
+ }
804
+ const { currentPoints } = evt.detail;
805
+ const { viewport } = this._enabledElement;
806
+ const { canvasToWorld } = viewport;
807
+ const { canvas: canvasCurrent } = currentPoints;
808
+ const { radius: magnifyRadius } = this;
809
+ const canvasCenter = [magnifyRadius, magnifyRadius];
810
+ const dist = distanceToPoint(canvasCenter, canvasCurrent);
811
+ const maxDist = magnifyRadius - autoPan.padding;
812
+ if (dist <= maxDist) {
813
+ return;
814
+ }
815
+ const panDist = dist - maxDist;
816
+ const canvasDeltaPos = vec2.sub(vec2.create(), canvasCurrent, canvasCenter);
817
+ vec2.normalize(canvasDeltaPos, canvasDeltaPos);
818
+ vec2.scale(canvasDeltaPos, canvasDeltaPos, panDist);
819
+ const newCanvasPosition = vec2.add(vec2.create(), this.position, canvasDeltaPos);
820
+ const currentWorldPos = canvasToWorld(this.position);
821
+ const newWorldPos = canvasToWorld(newCanvasPosition);
822
+ const worldDeltaPos = vec3.sub(vec3.create(), newWorldPos, currentWorldPos);
823
+ const autoPanCallbackData = {
824
+ points: {
825
+ currentPosition: {
826
+ canvas: this.position,
827
+ world: currentWorldPos,
828
+ },
829
+ newPosition: {
830
+ canvas: newCanvasPosition,
831
+ world: newWorldPos,
832
+ },
833
+ },
834
+ delta: {
835
+ canvas: canvasDeltaPos,
836
+ world: worldDeltaPos,
837
+ },
838
+ };
839
+ autoPan.callback(autoPanCallbackData);
840
+ }
841
+ _addBrowserEventListeners(element) {
842
+ document.addEventListener('mousedown', this._browserMouseDownCallback, true);
843
+ element.addEventListener('mousedown', this._cancelMouseEventCallback);
844
+ element.addEventListener('mouseup', this._cancelMouseEventCallback);
845
+ element.addEventListener('mousemove', this._cancelMouseEventCallback);
846
+ element.addEventListener('dblclick', this._cancelMouseEventCallback);
847
+ }
848
+ _removeBrowserEventListeners(element) {
849
+ document.removeEventListener('mousedown', this._browserMouseDownCallback, true);
850
+ document.removeEventListener('mouseup', this._browserMouseUpCallback);
851
+ element.removeEventListener('mousedown', this._cancelMouseEventCallback);
852
+ element.removeEventListener('mouseup', this._cancelMouseEventCallback);
853
+ element.removeEventListener('mousemove', this._cancelMouseEventCallback);
854
+ element.removeEventListener('dblclick', this._cancelMouseEventCallback);
855
+ }
856
+ _addEventListeners(element) {
857
+ eventTarget.addEventListener(cstEvents.TOOL_MODE_CHANGED, this._handleToolModeChanged);
858
+ element.addEventListener(cstEvents.MOUSE_MOVE, this._mouseDragCallback);
859
+ element.addEventListener(cstEvents.MOUSE_DRAG, this._mouseDragCallback);
860
+ this._addBrowserEventListeners(element);
861
+ }
862
+ _removeEventListeners(element) {
863
+ eventTarget.removeEventListener(cstEvents.TOOL_MODE_CHANGED, this._handleToolModeChanged);
864
+ element.addEventListener(cstEvents.MOUSE_MOVE, this._mouseDragCallback);
865
+ element.addEventListener(cstEvents.MOUSE_DRAG, this._mouseDragCallback);
866
+ this._removeBrowserEventListeners(element);
867
+ }
868
+ _initialize() {
869
+ const { _sourceEnabledElement: sourceEnabledElement } = this;
870
+ const { viewport: sourceViewport } = sourceEnabledElement;
871
+ const { canvas: sourceCanvas } = sourceViewport;
872
+ const magnifyElement = this._createViewportNode();
873
+ sourceCanvas.parentNode.appendChild(magnifyElement);
874
+ this._addEventListeners(magnifyElement);
875
+ this._cloneViewport(sourceViewport, magnifyElement);
876
+ this._enabledElement = getEnabledElement(magnifyElement);
877
+ }
878
+ _syncViewportsCameras(sourceViewport, magnifyViewport) {
879
+ const worldPos = sourceViewport.canvasToWorld(this.position);
880
+ const parallelScale = this._convertZoomFactorToParallelScale(sourceViewport, magnifyViewport, this.zoomFactor);
881
+ const { focalPoint, position, viewPlaneNormal } = magnifyViewport.getCamera();
882
+ const distance = Math.sqrt(Math.pow(focalPoint[0] - position[0], 2) +
883
+ Math.pow(focalPoint[1] - position[1], 2) +
884
+ Math.pow(focalPoint[2] - position[2], 2));
885
+ const updatedFocalPoint = [
886
+ worldPos[0],
887
+ worldPos[1],
888
+ worldPos[2],
889
+ ];
890
+ const updatedPosition = [
891
+ updatedFocalPoint[0] + distance * viewPlaneNormal[0],
892
+ updatedFocalPoint[1] + distance * viewPlaneNormal[1],
893
+ updatedFocalPoint[2] + distance * viewPlaneNormal[2],
894
+ ];
895
+ magnifyViewport.setCamera({
896
+ parallelScale,
897
+ focalPoint: updatedFocalPoint,
898
+ position: updatedPosition,
899
+ });
900
+ }
901
+ _syncStackViewports(sourceViewport, magnifyViewport) {
902
+ magnifyViewport.setImageIdIndex(sourceViewport.getCurrentImageIdIndex());
903
+ }
904
+ _syncViewports() {
905
+ const { viewport: sourceViewport } = this._sourceEnabledElement;
906
+ const { viewport: magnifyViewport } = this._enabledElement;
907
+ const sourceProperties = sourceViewport.getProperties();
908
+ const imageData = magnifyViewport.getImageData();
909
+ if (!imageData) {
910
+ return;
911
+ }
912
+ magnifyViewport.setProperties(sourceProperties);
913
+ this._syncViewportsCameras(sourceViewport, magnifyViewport);
914
+ if (this._isStackViewport(sourceViewport)) {
915
+ this._syncStackViewports(sourceViewport, magnifyViewport);
916
+ }
917
+ this._syncViewportsCameras(sourceViewport, magnifyViewport);
918
+ magnifyViewport.render();
919
+ }
920
+ _resizeViewport() {
921
+ const { viewport } = this._enabledElement;
922
+ const renderingEngine = viewport.getRenderingEngine();
923
+ renderingEngine.resize();
924
+ }
925
+ }
926
+ AdvancedMagnifyTool.toolName = 'AdvancedMagnify';
927
+ export { AdvancedMagnifyTool as default };