@cornerstonejs/tools 0.17.4 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/cjs/enums/Events.d.ts +1 -0
  2. package/dist/cjs/enums/Events.js +1 -0
  3. package/dist/cjs/enums/Events.js.map +1 -1
  4. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  5. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
  6. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +3 -0
  7. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  8. package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
  9. package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
  10. package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +2 -1
  11. package/dist/cjs/stateManagement/segmentation/segmentationState.js +7 -1
  12. package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
  13. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
  14. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js +8 -1
  15. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
  16. package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +4 -0
  17. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +17 -5
  18. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  19. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +16 -6
  20. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  21. package/dist/cjs/tools/CrosshairsTool.js +6 -5
  22. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  23. package/dist/cjs/tools/StackScrollTool.d.ts +3 -1
  24. package/dist/cjs/tools/StackScrollTool.js +33 -11
  25. package/dist/cjs/tools/StackScrollTool.js.map +1 -1
  26. package/dist/cjs/tools/StackScrollToolMouseWheelTool.d.ts +4 -1
  27. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js +17 -9
  28. package/dist/cjs/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  29. package/dist/cjs/tools/ZoomTool.d.ts +13 -3
  30. package/dist/cjs/tools/ZoomTool.js +64 -4
  31. package/dist/cjs/tools/ZoomTool.js.map +1 -1
  32. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
  33. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  34. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -2
  35. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  36. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +2 -2
  37. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  38. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -2
  39. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  40. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +1 -1
  41. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  42. package/dist/cjs/types/BoundsIJK.d.ts +3 -0
  43. package/dist/cjs/types/BoundsIJK.js +3 -0
  44. package/dist/cjs/types/BoundsIJK.js.map +1 -0
  45. package/dist/cjs/types/EventTypes.d.ts +5 -1
  46. package/dist/cjs/types/IToolGroup.d.ts +2 -1
  47. package/dist/cjs/types/JumpToSliceOptions.d.ts +1 -0
  48. package/dist/cjs/types/ScrollOptions.d.ts +1 -0
  49. package/dist/cjs/types/index.d.ts +2 -1
  50. package/dist/cjs/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
  51. package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +13 -0
  52. package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
  53. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
  54. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +40 -0
  55. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
  56. package/dist/cjs/utilities/boundingBox/index.d.ts +3 -0
  57. package/dist/cjs/utilities/boundingBox/index.js +11 -0
  58. package/dist/cjs/utilities/boundingBox/index.js.map +1 -0
  59. package/dist/cjs/utilities/cine/playClip.js +8 -7
  60. package/dist/cjs/utilities/cine/playClip.js.map +1 -1
  61. package/dist/cjs/utilities/index.d.ts +5 -2
  62. package/dist/cjs/utilities/index.js +9 -3
  63. package/dist/cjs/utilities/index.js.map +1 -1
  64. package/dist/cjs/utilities/pointInShapeCallback.d.ts +1 -2
  65. package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
  66. package/dist/cjs/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
  67. package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +42 -12
  68. package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +1 -1
  69. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
  70. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +51 -0
  71. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
  72. package/dist/cjs/utilities/rectangleROITool/index.d.ts +2 -0
  73. package/dist/cjs/utilities/rectangleROITool/index.js +9 -0
  74. package/dist/cjs/utilities/rectangleROITool/index.js.map +1 -0
  75. package/dist/cjs/utilities/scroll.d.ts +4 -0
  76. package/dist/cjs/utilities/scroll.js +40 -0
  77. package/dist/cjs/utilities/scroll.js.map +1 -0
  78. package/dist/cjs/utilities/segmentation/index.d.ts +2 -2
  79. package/dist/cjs/utilities/segmentation/index.js +3 -4
  80. package/dist/cjs/utilities/segmentation/index.js.map +1 -1
  81. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
  82. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +42 -0
  83. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
  84. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
  85. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +13 -69
  86. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  87. package/dist/cjs/utilities/stackPrefetch/index.d.ts +2 -0
  88. package/dist/cjs/utilities/stackPrefetch/index.js +9 -0
  89. package/dist/cjs/utilities/stackPrefetch/index.js.map +1 -0
  90. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.d.ts +8 -0
  91. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js +232 -0
  92. package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js.map +1 -0
  93. package/dist/cjs/utilities/stackPrefetch/state.d.ts +3 -0
  94. package/dist/cjs/utilities/stackPrefetch/state.js +18 -0
  95. package/dist/cjs/utilities/stackPrefetch/state.js.map +1 -0
  96. package/dist/cjs/utilities/viewport/jumpToSlice.d.ts +1 -1
  97. package/dist/cjs/utilities/viewport/jumpToSlice.js +9 -7
  98. package/dist/cjs/utilities/viewport/jumpToSlice.js.map +1 -1
  99. package/dist/esm/enums/Events.d.ts +1 -0
  100. package/dist/esm/enums/Events.js +1 -0
  101. package/dist/esm/enums/Events.js.map +1 -1
  102. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  103. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
  104. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +3 -0
  105. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  106. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
  107. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
  108. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +2 -1
  109. package/dist/esm/stateManagement/segmentation/segmentationState.js +7 -2
  110. package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
  111. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
  112. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +7 -1
  113. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
  114. package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +4 -0
  115. package/dist/esm/store/ToolGroupManager/ToolGroup.js +18 -6
  116. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  117. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +17 -7
  118. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  119. package/dist/esm/tools/CrosshairsTool.js +6 -5
  120. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  121. package/dist/esm/tools/StackScrollTool.d.ts +3 -1
  122. package/dist/esm/tools/StackScrollTool.js +34 -12
  123. package/dist/esm/tools/StackScrollTool.js.map +1 -1
  124. package/dist/esm/tools/StackScrollToolMouseWheelTool.d.ts +4 -1
  125. package/dist/esm/tools/StackScrollToolMouseWheelTool.js +17 -9
  126. package/dist/esm/tools/StackScrollToolMouseWheelTool.js.map +1 -1
  127. package/dist/esm/tools/ZoomTool.d.ts +13 -3
  128. package/dist/esm/tools/ZoomTool.js +64 -4
  129. package/dist/esm/tools/ZoomTool.js.map +1 -1
  130. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
  131. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  132. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +1 -1
  133. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  134. package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -1
  135. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  136. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +1 -1
  137. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  138. package/dist/esm/tools/segmentation/strategies/fillSphere.js +1 -1
  139. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  140. package/dist/esm/types/BoundsIJK.d.ts +3 -0
  141. package/dist/esm/types/BoundsIJK.js +2 -0
  142. package/dist/esm/types/BoundsIJK.js.map +1 -0
  143. package/dist/esm/types/EventTypes.d.ts +5 -1
  144. package/dist/esm/types/IToolGroup.d.ts +2 -1
  145. package/dist/esm/types/JumpToSliceOptions.d.ts +1 -0
  146. package/dist/esm/types/ScrollOptions.d.ts +1 -0
  147. package/dist/esm/types/index.d.ts +2 -1
  148. package/dist/esm/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
  149. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +11 -0
  150. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
  151. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
  152. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +38 -0
  153. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
  154. package/dist/esm/utilities/boundingBox/index.d.ts +3 -0
  155. package/dist/esm/utilities/boundingBox/index.js +4 -0
  156. package/dist/esm/utilities/boundingBox/index.js.map +1 -0
  157. package/dist/esm/utilities/cine/playClip.js +8 -7
  158. package/dist/esm/utilities/cine/playClip.js.map +1 -1
  159. package/dist/esm/utilities/index.d.ts +5 -2
  160. package/dist/esm/utilities/index.js +5 -2
  161. package/dist/esm/utilities/index.js.map +1 -1
  162. package/dist/esm/utilities/pointInShapeCallback.d.ts +1 -2
  163. package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
  164. package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
  165. package/dist/esm/utilities/pointInSurroundingSphereCallback.js +40 -10
  166. package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +1 -1
  167. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
  168. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +45 -0
  169. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
  170. package/dist/esm/utilities/rectangleROITool/index.d.ts +2 -0
  171. package/dist/esm/utilities/rectangleROITool/index.js +3 -0
  172. package/dist/esm/utilities/rectangleROITool/index.js.map +1 -0
  173. package/dist/esm/utilities/scroll.d.ts +4 -0
  174. package/dist/esm/utilities/scroll.js +35 -0
  175. package/dist/esm/utilities/scroll.js.map +1 -0
  176. package/dist/esm/utilities/segmentation/index.d.ts +2 -2
  177. package/dist/esm/utilities/segmentation/index.js +2 -2
  178. package/dist/esm/utilities/segmentation/index.js.map +1 -1
  179. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
  180. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +37 -0
  181. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
  182. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
  183. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +13 -47
  184. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  185. package/dist/esm/utilities/stackPrefetch/index.d.ts +2 -0
  186. package/dist/esm/utilities/stackPrefetch/index.js +3 -0
  187. package/dist/esm/utilities/stackPrefetch/index.js.map +1 -0
  188. package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +8 -0
  189. package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +226 -0
  190. package/dist/esm/utilities/stackPrefetch/stackPrefetch.js.map +1 -0
  191. package/dist/esm/utilities/stackPrefetch/state.d.ts +3 -0
  192. package/dist/esm/utilities/stackPrefetch/state.js +14 -0
  193. package/dist/esm/utilities/stackPrefetch/state.js.map +1 -0
  194. package/dist/esm/utilities/viewport/jumpToSlice.d.ts +1 -1
  195. package/dist/esm/utilities/viewport/jumpToSlice.js +9 -7
  196. package/dist/esm/utilities/viewport/jumpToSlice.js.map +1 -1
  197. package/dist/umd/index.js +1 -1
  198. package/dist/umd/index.js.LICENSE.txt +2 -0
  199. package/dist/umd/index.js.map +1 -1
  200. package/package.json +4 -4
  201. package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js +0 -51
  202. package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
  203. package/dist/cjs/utilities/stackScrollTool/index.d.ts +0 -2
  204. package/dist/cjs/utilities/stackScrollTool/index.js +0 -9
  205. package/dist/cjs/utilities/stackScrollTool/index.js.map +0 -1
  206. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.d.ts +0 -3
  207. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js +0 -43
  208. package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js.map +0 -1
  209. package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js +0 -47
  210. package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
  211. package/dist/esm/utilities/stackScrollTool/index.d.ts +0 -2
  212. package/dist/esm/utilities/stackScrollTool/index.js +0 -3
  213. package/dist/esm/utilities/stackScrollTool/index.js.map +0 -1
  214. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.d.ts +0 -3
  215. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js +0 -37
  216. package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "0.17.4",
3
+ "version": "0.19.0",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "dist/umd/index.js",
6
6
  "types": "dist/esm/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "example": "node ../../utils/ExampleRunner/example-runner-cli.js"
25
25
  },
26
26
  "dependencies": {
27
- "@cornerstonejs/core": "^0.10.3",
27
+ "@cornerstonejs/core": "^0.12.0",
28
28
  "lodash.clonedeep": "4.5.0"
29
29
  },
30
30
  "peerDependencies": {
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@cornerstonejs/core": "^0.9.0",
36
- "@cornerstonejs/streaming-image-volume-loader": "^0.3.3",
36
+ "@cornerstonejs/streaming-image-volume-loader": "^0.3.6",
37
37
  "@kitware/vtk.js": "24.0.0"
38
38
  },
39
39
  "contributors": [
@@ -47,5 +47,5 @@
47
47
  "type": "individual",
48
48
  "url": "https://ohif.org/donate"
49
49
  },
50
- "gitHead": "7488bc594f4811dec392051cbc23e65c8e041cd2"
50
+ "gitHead": "52ca61f34940bd07d61761e567f69d62ff0efe5c"
51
51
  }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extend2DBoundingBoxInViewAxis = exports.getBoundingBoxAroundShape = void 0;
4
- function getBoundingBoxAroundShape(vertices, dimensions) {
5
- let xMin = Infinity;
6
- let xMax = 0;
7
- let yMin = Infinity;
8
- let yMax = 0;
9
- let zMin = Infinity;
10
- let zMax = 0;
11
- vertices.forEach((v) => {
12
- xMin = Math.min(v[0], xMin);
13
- xMax = Math.max(v[0], xMax);
14
- yMin = Math.min(v[1], yMin);
15
- yMax = Math.max(v[1], yMax);
16
- zMin = Math.min(v[2], zMin);
17
- zMax = Math.max(v[2], zMax);
18
- });
19
- xMin = Math.floor(xMin);
20
- xMax = Math.floor(xMax);
21
- yMin = Math.floor(yMin);
22
- yMax = Math.floor(yMax);
23
- zMin = Math.floor(zMin);
24
- zMax = Math.floor(zMax);
25
- if (dimensions) {
26
- const [width, height, depth] = dimensions;
27
- xMin = Math.max(0, xMin);
28
- xMax = Math.min(width - 1, xMax);
29
- yMin = Math.max(0, yMin);
30
- yMax = Math.min(height - 1, yMax);
31
- zMin = Math.max(0, zMin);
32
- zMax = Math.min(depth - 1, zMax);
33
- }
34
- return [
35
- [xMin, xMax],
36
- [yMin, yMax],
37
- [zMin, zMax],
38
- ];
39
- }
40
- exports.getBoundingBoxAroundShape = getBoundingBoxAroundShape;
41
- function extend2DBoundingBoxInViewAxis(boundsIJK, numSlicesToProject) {
42
- const sliceNormalIndex = boundsIJK.findIndex(([min, max]) => min === max);
43
- if (sliceNormalIndex === -1) {
44
- throw new Error('3D bounding boxes not supported in an oblique plane');
45
- }
46
- boundsIJK[sliceNormalIndex][0] -= numSlicesToProject;
47
- boundsIJK[sliceNormalIndex][1] += numSlicesToProject;
48
- return boundsIJK;
49
- }
50
- exports.extend2DBoundingBoxInViewAxis = extend2DBoundingBoxInViewAxis;
51
- //# sourceMappingURL=getBoundingBoxUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBoundingBoxUtils.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getBoundingBoxUtils.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import scrollThroughStack from './scrollThroughStack';
2
- export { scrollThroughStack };
@@ -1,9 +0,0 @@
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.scrollThroughStack = void 0;
7
- const scrollThroughStack_1 = __importDefault(require("./scrollThroughStack"));
8
- exports.scrollThroughStack = scrollThroughStack_1.default;
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/index.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAsD;AAE7C,6BAFF,4BAAkB,CAEE"}
@@ -1,3 +0,0 @@
1
- import { Types } from '@cornerstonejs/core';
2
- import { ScrollOptions } from '../../types';
3
- export default function scrollThroughStack(viewport: Types.IStackViewport | Types.IVolumeViewport, options: ScrollOptions): void;
@@ -1,43 +0,0 @@
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
- const core_1 = require("@cornerstonejs/core");
7
- const clip_1 = __importDefault(require("../clip"));
8
- function scrollThroughStack(viewport, options) {
9
- const { type: viewportType } = viewport;
10
- const { volumeId, delta } = options;
11
- if (viewport instanceof core_1.StackViewport) {
12
- const currentImageIdIndex = viewport.getCurrentImageIdIndex();
13
- const numberOfFrames = viewport.getImageIds().length;
14
- let newImageIdIndex = currentImageIdIndex + delta;
15
- newImageIdIndex = (0, clip_1.default)(newImageIdIndex, 0, numberOfFrames - 1);
16
- viewport.setImageIdIndex(newImageIdIndex);
17
- }
18
- else if (viewport instanceof core_1.VolumeViewport) {
19
- const camera = viewport.getCamera();
20
- const { focalPoint, viewPlaneNormal, position } = camera;
21
- const { spacingInNormalDirection, imageVolume } = core_1.utilities.getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
22
- if (!imageVolume) {
23
- return;
24
- }
25
- const actorEntry = viewport.getActor(imageVolume.volumeId);
26
- if (!actorEntry) {
27
- console.warn('No actor found for with actorUID of', imageVolume.volumeId);
28
- }
29
- const volumeActor = actorEntry.actor;
30
- const sliceRange = core_1.utilities.getSliceRange(volumeActor, viewPlaneNormal, focalPoint);
31
- const { newFocalPoint, newPosition } = core_1.utilities.snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
32
- viewport.setCamera({
33
- focalPoint: newFocalPoint,
34
- position: newPosition,
35
- });
36
- viewport.render();
37
- }
38
- else {
39
- throw new Error(`Not implemented for Viewport Type: ${viewportType}`);
40
- }
41
- }
42
- exports.default = scrollThroughStack;
43
- //# sourceMappingURL=scrollThroughStack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":";;;;;AAAA,8CAK6B;AAC7B,mDAA2B;AAY3B,SAAwB,kBAAkB,CACxC,QAAsD,EACtD,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,QAAQ,YAAY,oBAAa,EAAE;QAErC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACrD,IAAI,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAClD,eAAe,GAAG,IAAA,cAAI,EAAC,eAAe,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE/D,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,YAAY,qBAAc,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACzD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,gBAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3E;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;QAC1D,MAAM,UAAU,GAAG,gBAAO,CAAC,aAAa,CACtC,WAAW,EACX,eAAe,EACf,UAAU,CACX,CAAC;QAEF,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,gBAAO,CAAC,qBAAqB,CAClE,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;QAEF,QAAQ,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC;AAvDD,qCAuDC"}
@@ -1,47 +0,0 @@
1
- function getBoundingBoxAroundShape(vertices, dimensions) {
2
- let xMin = Infinity;
3
- let xMax = 0;
4
- let yMin = Infinity;
5
- let yMax = 0;
6
- let zMin = Infinity;
7
- let zMax = 0;
8
- vertices.forEach((v) => {
9
- xMin = Math.min(v[0], xMin);
10
- xMax = Math.max(v[0], xMax);
11
- yMin = Math.min(v[1], yMin);
12
- yMax = Math.max(v[1], yMax);
13
- zMin = Math.min(v[2], zMin);
14
- zMax = Math.max(v[2], zMax);
15
- });
16
- xMin = Math.floor(xMin);
17
- xMax = Math.floor(xMax);
18
- yMin = Math.floor(yMin);
19
- yMax = Math.floor(yMax);
20
- zMin = Math.floor(zMin);
21
- zMax = Math.floor(zMax);
22
- if (dimensions) {
23
- const [width, height, depth] = dimensions;
24
- xMin = Math.max(0, xMin);
25
- xMax = Math.min(width - 1, xMax);
26
- yMin = Math.max(0, yMin);
27
- yMax = Math.min(height - 1, yMax);
28
- zMin = Math.max(0, zMin);
29
- zMax = Math.min(depth - 1, zMax);
30
- }
31
- return [
32
- [xMin, xMax],
33
- [yMin, yMax],
34
- [zMin, zMax],
35
- ];
36
- }
37
- function extend2DBoundingBoxInViewAxis(boundsIJK, numSlicesToProject) {
38
- const sliceNormalIndex = boundsIJK.findIndex(([min, max]) => min === max);
39
- if (sliceNormalIndex === -1) {
40
- throw new Error('3D bounding boxes not supported in an oblique plane');
41
- }
42
- boundsIJK[sliceNormalIndex][0] -= numSlicesToProject;
43
- boundsIJK[sliceNormalIndex][1] += numSlicesToProject;
44
- return boundsIJK;
45
- }
46
- export { getBoundingBoxAroundShape, extend2DBoundingBoxInViewAxis };
47
- //# sourceMappingURL=getBoundingBoxUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBoundingBoxUtils.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getBoundingBoxUtils.ts"],"names":[],"mappings":"AAWA,SAAS,yBAAyB,CAChC,QAAwB,EACxB,UAAyB;IAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAClC;IAED,OAAO;QACL,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,EAAE,IAAI,CAAC;KACb,CAAC;AACJ,CAAC;AAWD,SAAS,6BAA6B,CACpC,SAAqD,EACrD,kBAA0B;IAG1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAE1E,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IASD,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;IACrD,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- import scrollThroughStack from './scrollThroughStack';
2
- export { scrollThroughStack };
@@ -1,3 +0,0 @@
1
- import scrollThroughStack from './scrollThroughStack';
2
- export { scrollThroughStack };
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Types } from '@cornerstonejs/core';
2
- import { ScrollOptions } from '../../types';
3
- export default function scrollThroughStack(viewport: Types.IStackViewport | Types.IVolumeViewport, options: ScrollOptions): void;
@@ -1,37 +0,0 @@
1
- import { StackViewport, VolumeViewport, utilities as csUtils, } from '@cornerstonejs/core';
2
- import clip from '../clip';
3
- export default function scrollThroughStack(viewport, options) {
4
- const { type: viewportType } = viewport;
5
- const { volumeId, delta } = options;
6
- if (viewport instanceof StackViewport) {
7
- const currentImageIdIndex = viewport.getCurrentImageIdIndex();
8
- const numberOfFrames = viewport.getImageIds().length;
9
- let newImageIdIndex = currentImageIdIndex + delta;
10
- newImageIdIndex = clip(newImageIdIndex, 0, numberOfFrames - 1);
11
- viewport.setImageIdIndex(newImageIdIndex);
12
- }
13
- else if (viewport instanceof VolumeViewport) {
14
- const camera = viewport.getCamera();
15
- const { focalPoint, viewPlaneNormal, position } = camera;
16
- const { spacingInNormalDirection, imageVolume } = csUtils.getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
17
- if (!imageVolume) {
18
- return;
19
- }
20
- const actorEntry = viewport.getActor(imageVolume.volumeId);
21
- if (!actorEntry) {
22
- console.warn('No actor found for with actorUID of', imageVolume.volumeId);
23
- }
24
- const volumeActor = actorEntry.actor;
25
- const sliceRange = csUtils.getSliceRange(volumeActor, viewPlaneNormal, focalPoint);
26
- const { newFocalPoint, newPosition } = csUtils.snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
27
- viewport.setCamera({
28
- focalPoint: newFocalPoint,
29
- position: newPosition,
30
- });
31
- viewport.render();
32
- }
33
- else {
34
- throw new Error(`Not implemented for Viewport Type: ${viewportType}`);
35
- }
36
- }
37
- //# sourceMappingURL=scrollThroughStack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrollThroughStack.js","sourceRoot":"","sources":["../../../../src/utilities/stackScrollTool/scrollThroughStack.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,cAAc,EACd,SAAS,IAAI,OAAO,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAY3B,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,QAAsD,EACtD,OAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,QAAQ,YAAY,aAAa,EAAE;QAErC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACrD,IAAI,eAAe,GAAG,mBAAmB,GAAG,KAAK,CAAC;QAClD,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE/D,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;KAC3C;SAAM,IAAI,QAAQ,YAAY,cAAc,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACzD,MAAM,EAAE,wBAAwB,EAAE,WAAW,EAAE,GAC7C,OAAO,CAAC,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3E;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,WAAW,EACX,eAAe,EACf,UAAU,CACX,CAAC;QAEF,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAClE,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,KAAK,CACN,CAAC;QAEF,QAAQ,CAAC,SAAS,CAAC;YACjB,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,CAAC;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;KACvE;AACH,CAAC"}