@cornerstonejs/tools 2.0.0-beta.2 → 2.0.0-beta.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 (265) hide show
  1. package/dist/cjs/drawingSvg/getSvgDrawingHelper.js +1 -1
  2. package/dist/cjs/drawingSvg/getSvgDrawingHelper.js.map +1 -1
  3. package/dist/cjs/enums/Events.d.ts +1 -0
  4. package/dist/cjs/enums/Events.js +1 -0
  5. package/dist/cjs/enums/Events.js.map +1 -1
  6. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
  7. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  8. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
  9. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +41 -0
  10. package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
  11. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
  12. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +39 -0
  13. package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
  14. package/dist/cjs/eventListeners/mouse/mouseDownListener.js +5 -1
  15. package/dist/cjs/eventListeners/mouse/mouseDownListener.js.map +1 -1
  16. package/dist/cjs/eventListeners/mouse/mouseMoveListener.js +5 -1
  17. package/dist/cjs/eventListeners/mouse/mouseMoveListener.js.map +1 -1
  18. package/dist/cjs/index.d.ts +2 -2
  19. package/dist/cjs/index.js +5 -2
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +2 -0
  22. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +35 -0
  23. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  24. package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js +1 -1
  25. package/dist/cjs/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
  26. package/dist/cjs/tools/AdvancedMagnifyTool.d.ts +36 -0
  27. package/dist/cjs/tools/AdvancedMagnifyTool.js +448 -0
  28. package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -0
  29. package/dist/cjs/tools/AdvancedMagnifyViewport.d.ts +76 -0
  30. package/dist/cjs/tools/AdvancedMagnifyViewport.js +352 -0
  31. package/dist/cjs/tools/AdvancedMagnifyViewport.js.map +1 -0
  32. package/dist/cjs/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
  33. package/dist/cjs/tools/AdvancedMagnifyViewportManager.js +133 -0
  34. package/dist/cjs/tools/AdvancedMagnifyViewportManager.js.map +1 -0
  35. package/dist/cjs/tools/MagnifyTool.js +2 -2
  36. package/dist/cjs/tools/MagnifyTool.js.map +1 -1
  37. package/dist/cjs/tools/OrientationMarkerTool.d.ts +88 -0
  38. package/dist/cjs/tools/OrientationMarkerTool.js +193 -0
  39. package/dist/cjs/tools/OrientationMarkerTool.js.map +1 -0
  40. package/dist/cjs/tools/OverlayGridTool.d.ts +31 -0
  41. package/dist/cjs/tools/OverlayGridTool.js +170 -0
  42. package/dist/cjs/tools/OverlayGridTool.js.map +1 -0
  43. package/dist/cjs/tools/ReferenceLinesTool.d.ts +3 -0
  44. package/dist/cjs/tools/ReferenceLinesTool.js +71 -2
  45. package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
  46. package/dist/cjs/tools/annotation/AngleTool.js +2 -1
  47. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  48. package/dist/cjs/tools/annotation/BidirectionalTool.js +1 -1
  49. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  50. package/dist/cjs/tools/annotation/CircleROITool.d.ts +1 -2
  51. package/dist/cjs/tools/annotation/CircleROITool.js +8 -8
  52. package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
  53. package/dist/cjs/tools/annotation/CobbAngleTool.d.ts +31 -5
  54. package/dist/cjs/tools/annotation/CobbAngleTool.js +268 -71
  55. package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
  56. package/dist/cjs/tools/annotation/DragProbeTool.js +4 -3
  57. package/dist/cjs/tools/annotation/DragProbeTool.js.map +1 -1
  58. package/dist/cjs/tools/annotation/EllipticalROITool.d.ts +2 -3
  59. package/dist/cjs/tools/annotation/EllipticalROITool.js +20 -16
  60. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  61. package/dist/cjs/tools/annotation/LengthTool.js +1 -1
  62. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  63. package/dist/cjs/tools/annotation/PlanarFreehandROITool.d.ts +1 -2
  64. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +22 -9
  65. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  66. package/dist/cjs/tools/annotation/ProbeTool.d.ts +1 -2
  67. package/dist/cjs/tools/annotation/ProbeTool.js +10 -9
  68. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  69. package/dist/cjs/tools/annotation/RectangleROITool.d.ts +1 -1
  70. package/dist/cjs/tools/annotation/RectangleROITool.js +9 -9
  71. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  72. package/dist/cjs/tools/base/AnnotationDisplayTool.js +4 -0
  73. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  74. package/dist/cjs/tools/base/AnnotationTool.d.ts +1 -1
  75. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  76. package/dist/cjs/tools/displayTools/Contour/contourDisplay.js +3 -0
  77. package/dist/cjs/tools/displayTools/Contour/contourDisplay.js.map +1 -1
  78. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
  79. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  80. package/dist/cjs/tools/index.d.ts +4 -1
  81. package/dist/cjs/tools/index.js +7 -1
  82. package/dist/cjs/tools/index.js.map +1 -1
  83. package/dist/cjs/types/EventTypes.d.ts +9 -1
  84. package/dist/cjs/types/IToolGroup.d.ts +3 -0
  85. package/dist/cjs/types/ToolAction.d.ts +8 -0
  86. package/dist/cjs/types/ToolAction.js +3 -0
  87. package/dist/cjs/types/ToolAction.js.map +1 -0
  88. package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +55 -0
  89. package/dist/cjs/types/index.d.ts +2 -1
  90. package/dist/cjs/utilities/getModalityUnit.js +5 -2
  91. package/dist/cjs/utilities/getModalityUnit.js.map +1 -1
  92. package/dist/cjs/utilities/index.d.ts +2 -2
  93. package/dist/cjs/utilities/index.js +4 -3
  94. package/dist/cjs/utilities/index.js.map +1 -1
  95. package/dist/cjs/utilities/math/angle/angleBetweenLines.d.ts +3 -1
  96. package/dist/cjs/utilities/math/angle/angleBetweenLines.js +18 -1
  97. package/dist/cjs/utilities/math/angle/angleBetweenLines.js.map +1 -1
  98. package/dist/cjs/utilities/stackPrefetch/index.d.ts +3 -2
  99. package/dist/cjs/utilities/stackPrefetch/index.js +8 -6
  100. package/dist/cjs/utilities/stackPrefetch/index.js.map +1 -1
  101. package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
  102. package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js +227 -0
  103. package/dist/cjs/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
  104. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
  105. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js +23 -93
  106. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
  107. package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
  108. package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js +85 -0
  109. package/dist/cjs/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
  110. package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
  111. package/dist/esm/drawingSvg/getSvgDrawingHelper.js.map +1 -1
  112. package/dist/esm/enums/Events.d.ts +1 -0
  113. package/dist/esm/enums/Events.js +1 -0
  114. package/dist/esm/enums/Events.js.map +1 -1
  115. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +6 -1
  116. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
  117. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.d.ts +2 -0
  118. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +35 -0
  119. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js.map +1 -0
  120. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts +3 -0
  121. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +32 -0
  122. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -0
  123. package/dist/esm/eventListeners/mouse/mouseDownListener.js +5 -1
  124. package/dist/esm/eventListeners/mouse/mouseDownListener.js.map +1 -1
  125. package/dist/esm/eventListeners/mouse/mouseMoveListener.js +5 -1
  126. package/dist/esm/eventListeners/mouse/mouseMoveListener.js.map +1 -1
  127. package/dist/esm/index.d.ts +2 -2
  128. package/dist/esm/index.js +2 -2
  129. package/dist/esm/index.js.map +1 -1
  130. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +2 -0
  131. package/dist/esm/store/ToolGroupManager/ToolGroup.js +35 -1
  132. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  133. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js +1 -1
  134. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +1 -1
  135. package/dist/esm/tools/AdvancedMagnifyTool.d.ts +36 -0
  136. package/dist/esm/tools/AdvancedMagnifyTool.js +440 -0
  137. package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -0
  138. package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +76 -0
  139. package/dist/esm/tools/AdvancedMagnifyViewport.js +346 -0
  140. package/dist/esm/tools/AdvancedMagnifyViewport.js.map +1 -0
  141. package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +36 -0
  142. package/dist/esm/tools/AdvancedMagnifyViewportManager.js +128 -0
  143. package/dist/esm/tools/AdvancedMagnifyViewportManager.js.map +1 -0
  144. package/dist/esm/tools/MagnifyTool.js +2 -2
  145. package/dist/esm/tools/MagnifyTool.js.map +1 -1
  146. package/dist/esm/tools/OrientationMarkerTool.d.ts +88 -0
  147. package/dist/esm/tools/OrientationMarkerTool.js +185 -0
  148. package/dist/esm/tools/OrientationMarkerTool.js.map +1 -0
  149. package/dist/esm/tools/OverlayGridTool.d.ts +31 -0
  150. package/dist/esm/tools/OverlayGridTool.js +165 -0
  151. package/dist/esm/tools/OverlayGridTool.js.map +1 -0
  152. package/dist/esm/tools/ReferenceLinesTool.d.ts +3 -0
  153. package/dist/esm/tools/ReferenceLinesTool.js +71 -2
  154. package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
  155. package/dist/esm/tools/annotation/AngleTool.js +2 -1
  156. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  157. package/dist/esm/tools/annotation/BidirectionalTool.js +1 -1
  158. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  159. package/dist/esm/tools/annotation/CircleROITool.d.ts +1 -2
  160. package/dist/esm/tools/annotation/CircleROITool.js +8 -8
  161. package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
  162. package/dist/esm/tools/annotation/CobbAngleTool.d.ts +31 -5
  163. package/dist/esm/tools/annotation/CobbAngleTool.js +275 -72
  164. package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
  165. package/dist/esm/tools/annotation/DragProbeTool.js +4 -3
  166. package/dist/esm/tools/annotation/DragProbeTool.js.map +1 -1
  167. package/dist/esm/tools/annotation/EllipticalROITool.d.ts +2 -3
  168. package/dist/esm/tools/annotation/EllipticalROITool.js +20 -16
  169. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  170. package/dist/esm/tools/annotation/LengthTool.js +1 -1
  171. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  172. package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +1 -2
  173. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +22 -9
  174. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  175. package/dist/esm/tools/annotation/ProbeTool.d.ts +1 -2
  176. package/dist/esm/tools/annotation/ProbeTool.js +10 -9
  177. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  178. package/dist/esm/tools/annotation/RectangleROITool.d.ts +1 -1
  179. package/dist/esm/tools/annotation/RectangleROITool.js +9 -9
  180. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  181. package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -0
  182. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  183. package/dist/esm/tools/base/AnnotationTool.d.ts +1 -1
  184. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  185. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +4 -1
  186. package/dist/esm/tools/displayTools/Contour/contourDisplay.js.map +1 -1
  187. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +1 -1
  188. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  189. package/dist/esm/tools/index.d.ts +4 -1
  190. package/dist/esm/tools/index.js +4 -1
  191. package/dist/esm/tools/index.js.map +1 -1
  192. package/dist/esm/types/EventTypes.d.ts +9 -1
  193. package/dist/esm/types/IToolGroup.d.ts +3 -0
  194. package/dist/esm/types/ToolAction.d.ts +8 -0
  195. package/dist/esm/types/ToolAction.js +2 -0
  196. package/dist/esm/types/ToolAction.js.map +1 -0
  197. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +55 -0
  198. package/dist/esm/types/index.d.ts +2 -1
  199. package/dist/esm/utilities/getModalityUnit.js +5 -2
  200. package/dist/esm/utilities/getModalityUnit.js.map +1 -1
  201. package/dist/esm/utilities/index.d.ts +2 -2
  202. package/dist/esm/utilities/index.js +2 -2
  203. package/dist/esm/utilities/index.js.map +1 -1
  204. package/dist/esm/utilities/math/angle/angleBetweenLines.d.ts +3 -1
  205. package/dist/esm/utilities/math/angle/angleBetweenLines.js +19 -2
  206. package/dist/esm/utilities/math/angle/angleBetweenLines.js.map +1 -1
  207. package/dist/esm/utilities/stackPrefetch/index.d.ts +3 -2
  208. package/dist/esm/utilities/stackPrefetch/index.js +3 -2
  209. package/dist/esm/utilities/stackPrefetch/index.js.map +1 -1
  210. package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.d.ts +16 -0
  211. package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js +220 -0
  212. package/dist/esm/utilities/stackPrefetch/stackContextPrefetch.js.map +1 -0
  213. package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +7 -1
  214. package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +12 -79
  215. package/dist/esm/utilities/stackPrefetch/stackPrefetch.js.map +1 -1
  216. package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.d.ts +14 -0
  217. package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js +77 -0
  218. package/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js.map +1 -0
  219. package/dist/umd/index.js +1 -1
  220. package/dist/umd/index.js.map +1 -1
  221. package/package.json +3 -3
  222. package/src/drawingSvg/getSvgDrawingHelper.ts +4 -1
  223. package/src/enums/Events.ts +9 -0
  224. package/src/eventDispatchers/mouseEventHandlers/mouseDown.ts +11 -2
  225. package/src/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.ts +72 -0
  226. package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +66 -0
  227. package/src/eventListeners/mouse/mouseDownListener.ts +7 -1
  228. package/src/eventListeners/mouse/mouseMoveListener.ts +7 -1
  229. package/src/index.ts +6 -0
  230. package/src/store/ToolGroupManager/ToolGroup.ts +79 -2
  231. package/src/synchronizers/callbacks/stackImageSyncCallback.ts +1 -1
  232. package/src/tools/AdvancedMagnifyTool.ts +725 -0
  233. package/src/tools/AdvancedMagnifyViewport.ts +624 -0
  234. package/src/tools/AdvancedMagnifyViewportManager.ts +291 -0
  235. package/src/tools/MagnifyTool.ts +2 -2
  236. package/src/tools/OrientationMarkerTool.ts +235 -0
  237. package/src/tools/OverlayGridTool.ts +357 -0
  238. package/src/tools/ReferenceLinesTool.ts +131 -3
  239. package/src/tools/annotation/AngleTool.ts +4 -1
  240. package/src/tools/annotation/BidirectionalTool.ts +1 -1
  241. package/src/tools/annotation/CircleROITool.ts +13 -20
  242. package/src/tools/annotation/CobbAngleTool.ts +422 -99
  243. package/src/tools/annotation/DragProbeTool.ts +6 -13
  244. package/src/tools/annotation/EllipticalROITool.ts +28 -29
  245. package/src/tools/annotation/LengthTool.ts +1 -1
  246. package/src/tools/annotation/PlanarFreehandROITool.ts +35 -20
  247. package/src/tools/annotation/ProbeTool.ts +17 -30
  248. package/src/tools/annotation/RectangleROITool.ts +15 -19
  249. package/src/tools/base/AnnotationDisplayTool.ts +4 -0
  250. package/src/tools/base/AnnotationTool.ts +2 -1
  251. package/src/tools/displayTools/Contour/contourDisplay.ts +8 -0
  252. package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +1 -1
  253. package/src/tools/index.ts +6 -0
  254. package/src/types/EventTypes.ts +23 -0
  255. package/src/types/IToolGroup.ts +7 -0
  256. package/src/types/ToolAction.ts +54 -0
  257. package/src/types/ToolSpecificAnnotationTypes.ts +58 -0
  258. package/src/types/index.ts +2 -0
  259. package/src/utilities/getModalityUnit.ts +8 -2
  260. package/src/utilities/index.ts +2 -1
  261. package/src/utilities/math/angle/angleBetweenLines.ts +39 -9
  262. package/src/utilities/stackPrefetch/index.ts +3 -7
  263. package/src/utilities/stackPrefetch/stackContextPrefetch.ts +380 -0
  264. package/src/utilities/stackPrefetch/stackPrefetch.ts +29 -151
  265. package/src/utilities/stackPrefetch/stackPrefetchUtils.ts +114 -0
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ const base_1 = require("./base");
8
+ const core_1 = require("@cornerstonejs/core");
9
+ const annotationState_1 = require("../stateManagement/annotation/annotationState");
10
+ const annotationLocking_1 = require("../stateManagement/annotation/annotationLocking");
11
+ const annotationVisibility_1 = require("../stateManagement/annotation/annotationVisibility");
12
+ const drawingSvg_1 = require("../drawingSvg");
13
+ const store_1 = require("../store");
14
+ const enums_1 = require("../enums");
15
+ const viewportFilters_1 = require("../utilities/viewportFilters");
16
+ const elementCursor_1 = require("../cursors/elementCursor");
17
+ const triggerAnnotationRenderForViewportIds_1 = __importDefault(require("../utilities/triggerAnnotationRenderForViewportIds"));
18
+ const circle_1 = require("../utilities/math/circle");
19
+ const AdvancedMagnifyViewportManager_1 = __importDefault(require("./AdvancedMagnifyViewportManager"));
20
+ class AdvancedMagnifyTool extends base_1.AnnotationTool {
21
+ constructor(toolProps = {}, defaultToolProps = {
22
+ supportedInteractionTypes: ['Mouse', 'Touch'],
23
+ configuration: {
24
+ shadow: true,
25
+ magnifyingGlass: {
26
+ radius: 125,
27
+ zoomFactor: 2.5,
28
+ zoomFactorList: [2.5, 3, 3.5, 4, 4.5, 5],
29
+ autoPan: {
30
+ enabled: true,
31
+ padding: 10,
32
+ },
33
+ },
34
+ actions: [
35
+ {
36
+ method: 'showZoomFactorsList',
37
+ bindings: [
38
+ {
39
+ mouseButton: enums_1.MouseBindings.Secondary,
40
+ modifierKey: enums_1.KeyboardBindings.Shift,
41
+ },
42
+ ],
43
+ },
44
+ ],
45
+ },
46
+ }) {
47
+ super(toolProps, defaultToolProps);
48
+ this.addNewAnnotation = (evt) => {
49
+ const eventDetail = evt.detail;
50
+ const { currentPoints, element } = eventDetail;
51
+ const enabledElement = (0, core_1.getEnabledElement)(element);
52
+ const { viewport, renderingEngine } = enabledElement;
53
+ const worldPos = currentPoints.world;
54
+ const canvasPos = currentPoints.canvas;
55
+ const { magnifyingGlass: config } = this.configuration;
56
+ const { radius, zoomFactor, autoPan } = config;
57
+ const worldHandlesPoints = this._getWorldHandlesPoints(viewport, canvasPos, radius);
58
+ const camera = viewport.getCamera();
59
+ const { viewPlaneNormal, viewUp } = camera;
60
+ const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
61
+ const annotationUID = core_1.utilities.uuidv4();
62
+ const magnifyViewportId = core_1.utilities.uuidv4();
63
+ const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
64
+ const annotation = {
65
+ annotationUID,
66
+ highlighted: true,
67
+ invalidated: true,
68
+ metadata: {
69
+ toolName: this.getToolName(),
70
+ viewPlaneNormal: [...viewPlaneNormal],
71
+ viewUp: [...viewUp],
72
+ FrameOfReferenceUID,
73
+ referencedImageId,
74
+ },
75
+ data: {
76
+ sourceViewportId: viewport.id,
77
+ magnifyViewportId,
78
+ zoomFactor,
79
+ handles: {
80
+ points: worldHandlesPoints,
81
+ activeHandleIndex: null,
82
+ },
83
+ },
84
+ };
85
+ this.magnifyViewportManager.createViewport(annotation, {
86
+ magnifyViewportId,
87
+ sourceEnabledElement: enabledElement,
88
+ position: canvasPos,
89
+ radius,
90
+ zoomFactor,
91
+ autoPan: {
92
+ enabled: autoPan.enabled,
93
+ padding: autoPan.padding,
94
+ callback: (data) => {
95
+ const annotationPoints = annotation.data.handles.points;
96
+ const { world: worldDelta } = data.delta;
97
+ for (let i = 0, len = annotationPoints.length; i < len; i++) {
98
+ annotationPoints[i][0] += worldDelta[0];
99
+ annotationPoints[i][1] += worldDelta[1];
100
+ annotationPoints[i][2] += worldDelta[2];
101
+ }
102
+ },
103
+ },
104
+ });
105
+ (0, annotationState_1.addAnnotation)(annotation, element);
106
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
107
+ evt.preventDefault();
108
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
109
+ return annotation;
110
+ };
111
+ this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
112
+ const enabledElement = (0, core_1.getEnabledElement)(element);
113
+ const { viewport } = enabledElement;
114
+ const { data } = annotation;
115
+ const { points } = data.handles;
116
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
117
+ const canvasTop = canvasCoordinates[0];
118
+ const canvasBottom = canvasCoordinates[2];
119
+ const canvasLeft = canvasCoordinates[3];
120
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
121
+ const center = [
122
+ canvasLeft[0] + radius,
123
+ canvasTop[1] + radius,
124
+ ];
125
+ const radiusPoint = (0, circle_1.getCanvasCircleRadius)([center, canvasCoords]);
126
+ if (Math.abs(radiusPoint - radius) < proximity * 1.5) {
127
+ return true;
128
+ }
129
+ return false;
130
+ };
131
+ this.toolSelectedCallback = (evt, annotation) => {
132
+ const eventDetail = evt.detail;
133
+ const { element } = eventDetail;
134
+ annotation.highlighted = true;
135
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
136
+ this.editData = {
137
+ annotation,
138
+ viewportIdsToRender,
139
+ };
140
+ (0, elementCursor_1.hideElementCursor)(element);
141
+ this._activateModify(element);
142
+ const enabledElement = (0, core_1.getEnabledElement)(element);
143
+ const { renderingEngine } = enabledElement;
144
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
145
+ evt.preventDefault();
146
+ };
147
+ this.handleSelectedCallback = (evt, annotation, handle) => {
148
+ const eventDetail = evt.detail;
149
+ const { element } = eventDetail;
150
+ const { data } = annotation;
151
+ annotation.highlighted = true;
152
+ const { points } = data.handles;
153
+ const handleIndex = points.findIndex((p) => p === handle);
154
+ const viewportIdsToRender = (0, viewportFilters_1.getViewportIdsWithToolToRender)(element, this.getToolName());
155
+ this.editData = {
156
+ annotation,
157
+ viewportIdsToRender,
158
+ handleIndex,
159
+ };
160
+ this._activateModify(element);
161
+ (0, elementCursor_1.hideElementCursor)(element);
162
+ const enabledElement = (0, core_1.getEnabledElement)(element);
163
+ const { renderingEngine } = enabledElement;
164
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
165
+ evt.preventDefault();
166
+ };
167
+ this._endCallback = (evt) => {
168
+ const eventDetail = evt.detail;
169
+ const { element } = eventDetail;
170
+ const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
171
+ const { data } = annotation;
172
+ data.handles.activeHandleIndex = null;
173
+ this._deactivateModify(element);
174
+ (0, elementCursor_1.resetElementCursor)(element);
175
+ const enabledElement = (0, core_1.getEnabledElement)(element);
176
+ const { renderingEngine } = enabledElement;
177
+ this.editData = null;
178
+ this.isDrawing = false;
179
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
180
+ if (newAnnotation) {
181
+ const eventType = enums_1.Events.ANNOTATION_COMPLETED;
182
+ const eventDetail = {
183
+ annotation,
184
+ };
185
+ (0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
186
+ }
187
+ };
188
+ this._dragDrawCallback = (evt) => {
189
+ var _a;
190
+ this.isDrawing = true;
191
+ const eventDetail = evt.detail;
192
+ const { element, deltaPoints } = eventDetail;
193
+ const worldPosDelta = (_a = deltaPoints === null || deltaPoints === void 0 ? void 0 : deltaPoints.world) !== null && _a !== void 0 ? _a : [0, 0, 0];
194
+ const enabledElement = (0, core_1.getEnabledElement)(element);
195
+ const { renderingEngine } = enabledElement;
196
+ const { annotation, viewportIdsToRender } = this.editData;
197
+ const { points } = annotation.data.handles;
198
+ points.forEach((point) => {
199
+ point[0] += worldPosDelta[0];
200
+ point[1] += worldPosDelta[1];
201
+ point[2] += worldPosDelta[2];
202
+ });
203
+ annotation.invalidated = true;
204
+ this.editData.hasMoved = true;
205
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
206
+ };
207
+ this._dragModifyCallback = (evt) => {
208
+ this.isDrawing = true;
209
+ const eventDetail = evt.detail;
210
+ const { element } = eventDetail;
211
+ const { annotation, viewportIdsToRender, handleIndex } = this.editData;
212
+ const { data } = annotation;
213
+ if (handleIndex === undefined) {
214
+ const { deltaPoints } = eventDetail;
215
+ const worldPosDelta = deltaPoints.world;
216
+ const points = data.handles.points;
217
+ points.forEach((point) => {
218
+ point[0] += worldPosDelta[0];
219
+ point[1] += worldPosDelta[1];
220
+ point[2] += worldPosDelta[2];
221
+ });
222
+ annotation.invalidated = true;
223
+ }
224
+ else {
225
+ this._dragHandle(evt);
226
+ annotation.invalidated = true;
227
+ }
228
+ const enabledElement = (0, core_1.getEnabledElement)(element);
229
+ const { renderingEngine } = enabledElement;
230
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
231
+ };
232
+ this._dragHandle = (evt) => {
233
+ const eventDetail = evt.detail;
234
+ const { element } = eventDetail;
235
+ const enabledElement = (0, core_1.getEnabledElement)(element);
236
+ const { viewport } = enabledElement;
237
+ const { worldToCanvas } = viewport;
238
+ const { annotation } = this.editData;
239
+ const { data } = annotation;
240
+ const { points } = data.handles;
241
+ const canvasCoordinates = points.map((p) => worldToCanvas(p));
242
+ const canvasTop = canvasCoordinates[0];
243
+ const canvasBottom = canvasCoordinates[2];
244
+ const canvasLeft = canvasCoordinates[3];
245
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
246
+ const canvasCenter = [
247
+ canvasLeft[0] + radius,
248
+ canvasTop[1] + radius,
249
+ ];
250
+ const { currentPoints } = eventDetail;
251
+ const currentCanvasPoints = currentPoints.canvas;
252
+ const newRadius = (0, circle_1.getCanvasCircleRadius)([
253
+ canvasCenter,
254
+ currentCanvasPoints,
255
+ ]);
256
+ const newWorldHandlesPoints = this._getWorldHandlesPoints(viewport, canvasCenter, newRadius);
257
+ points[0] = newWorldHandlesPoints[0];
258
+ points[1] = newWorldHandlesPoints[1];
259
+ points[2] = newWorldHandlesPoints[2];
260
+ points[3] = newWorldHandlesPoints[3];
261
+ };
262
+ this.cancel = (element) => {
263
+ if (!this.isDrawing) {
264
+ return;
265
+ }
266
+ this.isDrawing = false;
267
+ this._deactivateModify(element);
268
+ (0, elementCursor_1.resetElementCursor)(element);
269
+ const { annotation, viewportIdsToRender, newAnnotation } = this.editData;
270
+ const { data } = annotation;
271
+ annotation.highlighted = false;
272
+ data.handles.activeHandleIndex = null;
273
+ const enabledElement = (0, core_1.getEnabledElement)(element);
274
+ const { renderingEngine } = enabledElement;
275
+ (0, triggerAnnotationRenderForViewportIds_1.default)(renderingEngine, viewportIdsToRender);
276
+ if (newAnnotation) {
277
+ const eventType = enums_1.Events.ANNOTATION_COMPLETED;
278
+ const eventDetail = {
279
+ annotation,
280
+ };
281
+ (0, core_1.triggerEvent)(core_1.eventTarget, eventType, eventDetail);
282
+ }
283
+ this.editData = null;
284
+ return annotation.annotationUID;
285
+ };
286
+ this._activateModify = (element) => {
287
+ store_1.state.isInteractingWithTool = true;
288
+ element.addEventListener(enums_1.Events.MOUSE_UP, this._endCallback);
289
+ element.addEventListener(enums_1.Events.MOUSE_DRAG, this._dragModifyCallback);
290
+ element.addEventListener(enums_1.Events.MOUSE_CLICK, this._endCallback);
291
+ element.addEventListener(enums_1.Events.TOUCH_END, this._endCallback);
292
+ element.addEventListener(enums_1.Events.TOUCH_DRAG, this._dragModifyCallback);
293
+ element.addEventListener(enums_1.Events.TOUCH_TAP, this._endCallback);
294
+ };
295
+ this._deactivateModify = (element) => {
296
+ store_1.state.isInteractingWithTool = false;
297
+ element.removeEventListener(enums_1.Events.MOUSE_UP, this._endCallback);
298
+ element.removeEventListener(enums_1.Events.MOUSE_DRAG, this._dragModifyCallback);
299
+ element.removeEventListener(enums_1.Events.MOUSE_CLICK, this._endCallback);
300
+ element.removeEventListener(enums_1.Events.TOUCH_END, this._endCallback);
301
+ element.removeEventListener(enums_1.Events.TOUCH_DRAG, this._dragModifyCallback);
302
+ element.removeEventListener(enums_1.Events.TOUCH_TAP, this._endCallback);
303
+ };
304
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
305
+ let renderStatus = false;
306
+ const { viewport } = enabledElement;
307
+ const { element } = viewport;
308
+ let annotations = (0, annotationState_1.getAnnotations)(this.getToolName(), element);
309
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
310
+ return renderStatus;
311
+ }
312
+ annotations = this.filterInteractableAnnotationsForElement(element, annotations);
313
+ annotations = annotations === null || annotations === void 0 ? void 0 : annotations.filter((annotation) => annotation.data.sourceViewportId ===
314
+ viewport.id);
315
+ if (!(annotations === null || annotations === void 0 ? void 0 : annotations.length)) {
316
+ return renderStatus;
317
+ }
318
+ const styleSpecifier = {
319
+ toolGroupId: this.toolGroupId,
320
+ toolName: this.getToolName(),
321
+ viewportId: enabledElement.viewport.id,
322
+ };
323
+ for (let i = 0; i < annotations.length; i++) {
324
+ const annotation = annotations[i];
325
+ const { annotationUID, data } = annotation;
326
+ const { magnifyViewportId, zoomFactor, handles } = data;
327
+ const { points, activeHandleIndex } = handles;
328
+ styleSpecifier.annotationUID = annotationUID;
329
+ const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
330
+ const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
331
+ const color = this.getStyle('color', styleSpecifier, annotation);
332
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
333
+ const canvasTop = canvasCoordinates[0];
334
+ const canvasBottom = canvasCoordinates[2];
335
+ const canvasLeft = canvasCoordinates[3];
336
+ const radius = Math.abs(canvasBottom[1] - canvasTop[1]) * 0.5;
337
+ const center = [
338
+ canvasLeft[0] + radius,
339
+ canvasTop[1] + radius,
340
+ ];
341
+ if (!viewport.getRenderingEngine()) {
342
+ console.warn('Rendering Engine has been destroyed');
343
+ return renderStatus;
344
+ }
345
+ let activeHandleCanvasCoords;
346
+ if (!(0, annotationVisibility_1.isAnnotationVisible)(annotationUID)) {
347
+ continue;
348
+ }
349
+ if (!(0, annotationLocking_1.isAnnotationLocked)(annotation) &&
350
+ !this.editData &&
351
+ activeHandleIndex !== null) {
352
+ activeHandleCanvasCoords = [canvasCoordinates[activeHandleIndex]];
353
+ }
354
+ if (activeHandleCanvasCoords) {
355
+ const handleGroupUID = '0';
356
+ (0, drawingSvg_1.drawHandles)(svgDrawingHelper, annotationUID, handleGroupUID, activeHandleCanvasCoords, {
357
+ color,
358
+ });
359
+ }
360
+ const dataId = `${annotationUID}-advancedMagnify`;
361
+ const circleUID = '0';
362
+ (0, drawingSvg_1.drawCircle)(svgDrawingHelper, annotationUID, circleUID, center, radius, {
363
+ color,
364
+ lineDash,
365
+ lineWidth,
366
+ }, dataId);
367
+ const magnifyViewport = this.magnifyViewportManager.getViewport(magnifyViewportId);
368
+ magnifyViewport.position = center;
369
+ magnifyViewport.radius = radius;
370
+ magnifyViewport.zoomFactor = zoomFactor;
371
+ magnifyViewport.update();
372
+ renderStatus = true;
373
+ }
374
+ return renderStatus;
375
+ };
376
+ this._getWorldHandlesPoints = (viewport, canvasCenterPos, canvasRadius) => {
377
+ const canvasHandlesPoints = [
378
+ [canvasCenterPos[0], canvasCenterPos[1] - canvasRadius],
379
+ [canvasCenterPos[0] + canvasRadius, canvasCenterPos[1]],
380
+ [canvasCenterPos[0], canvasCenterPos[1] + canvasRadius],
381
+ [canvasCenterPos[0] - canvasRadius, canvasCenterPos[1]],
382
+ ];
383
+ const worldHandlesPoints = canvasHandlesPoints.map((p) => viewport.canvasToWorld(p));
384
+ return worldHandlesPoints;
385
+ };
386
+ this.magnifyViewportManager = AdvancedMagnifyViewportManager_1.default.getInstance();
387
+ }
388
+ showZoomFactorsList(evt, annotation) {
389
+ const { element, currentPoints } = evt.detail;
390
+ const enabledElement = (0, core_1.getEnabledElement)(element);
391
+ const { viewport } = enabledElement;
392
+ const { canvas: canvasPoint } = currentPoints;
393
+ const viewportElement = element.querySelector(':scope .viewport-element');
394
+ const currentZoomFactor = annotation.data.zoomFactor;
395
+ const remove = () => dropdown.parentElement.removeChild(dropdown);
396
+ const dropdown = this._getZoomFactorsListDropdown(currentZoomFactor, (newZoomFactor) => {
397
+ if (newZoomFactor !== undefined) {
398
+ annotation.data.zoomFactor = Number.parseFloat(newZoomFactor);
399
+ annotation.invalidated = true;
400
+ }
401
+ remove();
402
+ viewport.render();
403
+ });
404
+ Object.assign(dropdown.style, {
405
+ left: `${canvasPoint[0]}px`,
406
+ top: `${canvasPoint[1]}px`,
407
+ });
408
+ viewportElement.appendChild(dropdown);
409
+ dropdown.focus();
410
+ }
411
+ _getZoomFactorsListDropdown(currentZoomFactor, onChangeCallback) {
412
+ const { zoomFactorList } = this.configuration.magnifyingGlass;
413
+ const dropdown = document.createElement('select');
414
+ dropdown.size = 5;
415
+ Object.assign(dropdown.style, {
416
+ width: '50px',
417
+ position: 'absolute',
418
+ });
419
+ ['mousedown', 'mouseup', 'mousemove', 'click'].forEach((eventName) => {
420
+ dropdown.addEventListener(eventName, (evt) => evt.stopPropagation());
421
+ });
422
+ dropdown.addEventListener('change', (evt) => {
423
+ evt.stopPropagation();
424
+ onChangeCallback(dropdown.value);
425
+ });
426
+ dropdown.addEventListener('keydown', (evt) => {
427
+ var _a, _b;
428
+ const shouldCancel = ((_a = evt.keyCode) !== null && _a !== void 0 ? _a : evt.which === 27) ||
429
+ ((_b = evt.key) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'escape';
430
+ if (shouldCancel) {
431
+ evt.stopPropagation();
432
+ onChangeCallback();
433
+ }
434
+ });
435
+ zoomFactorList.forEach((zoomFactor) => {
436
+ const option = document.createElement('option');
437
+ option.label = zoomFactor;
438
+ option.title = `Zoom factor ${zoomFactor.toFixed(1)}`;
439
+ option.value = zoomFactor;
440
+ option.defaultSelected = zoomFactor === currentZoomFactor;
441
+ dropdown.add(option);
442
+ });
443
+ return dropdown;
444
+ }
445
+ }
446
+ exports.default = AdvancedMagnifyTool;
447
+ AdvancedMagnifyTool.toolName = 'AdvancedMagnify';
448
+ //# sourceMappingURL=AdvancedMagnifyTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdvancedMagnifyTool.js","sourceRoot":"","sources":["../../../src/tools/AdvancedMagnifyTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ export declare type AutoPanCallbackData = {
3
+ points: {
4
+ currentPosition: {
5
+ canvas: Types.Point2;
6
+ world: Types.Point3;
7
+ };
8
+ newPosition: {
9
+ canvas: Types.Point2;
10
+ world: Types.Point3;
11
+ };
12
+ };
13
+ delta: {
14
+ canvas: Types.Point2;
15
+ world: Types.Point3;
16
+ };
17
+ };
18
+ export declare type AutoPanCallback = (data: AutoPanCallbackData) => void;
19
+ declare class AdvancedMagnifyViewport {
20
+ private _viewportId;
21
+ private _sourceEnabledElement;
22
+ private _enabledElement;
23
+ private _sourceToolGroup;
24
+ private _magnifyToolGroup;
25
+ private _isViewportReady;
26
+ private _radius;
27
+ private _resized;
28
+ private _resizeViewportAsync;
29
+ private _canAutoPan;
30
+ private _autoPan;
31
+ position: Types.Point2;
32
+ zoomFactor: number;
33
+ visible: boolean;
34
+ constructor({ magnifyViewportId, sourceEnabledElement, radius, position, zoomFactor, autoPan, }: {
35
+ magnifyViewportId?: string;
36
+ sourceEnabledElement: Types.IEnabledElement;
37
+ radius?: number;
38
+ position?: Types.Point2;
39
+ zoomFactor: number;
40
+ autoPan: {
41
+ enabled: boolean;
42
+ padding: number;
43
+ callback: AutoPanCallback;
44
+ };
45
+ });
46
+ get sourceEnabledElement(): Types.IEnabledElement;
47
+ get viewportId(): string;
48
+ get radius(): number;
49
+ set radius(radius: number);
50
+ update(): void;
51
+ dispose(): void;
52
+ private _handleToolModeChanged;
53
+ private _inheritBorderRadius;
54
+ private _createViewportNode;
55
+ private _convertZoomFactorToParalellScale;
56
+ private _isStackViewport;
57
+ private _isVolumeViewport;
58
+ private _cloneToolGroups;
59
+ private _cloneStack;
60
+ private _cloneVolumes;
61
+ private _cloneViewport;
62
+ private _cancelMouseEventCallback;
63
+ private _browserMouseUpCallback;
64
+ private _browserMouseDownCallback;
65
+ private _mouseDragCallback;
66
+ private _addBrowserEventListeners;
67
+ private _removeBrowserEventListeners;
68
+ private _addEventListeners;
69
+ private _removeEventListeners;
70
+ private _initialize;
71
+ private _syncViewportsCameras;
72
+ private _syncStackViewports;
73
+ private _syncViewports;
74
+ private _resizeViewport;
75
+ }
76
+ export { AdvancedMagnifyViewport as default, AdvancedMagnifyViewport };