@cornerstonejs/tools 1.77.12 → 1.78.1

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 (41) hide show
  1. package/dist/cjs/tools/PanTool.js +5 -0
  2. package/dist/cjs/tools/PanTool.js.map +1 -1
  3. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +1 -1
  4. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  5. package/dist/cjs/tools/base/AnnotationDisplayTool.js +2 -8
  6. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  7. package/dist/cjs/tools/base/BaseTool.js +1 -1
  8. package/dist/cjs/tools/base/BaseTool.js.map +1 -1
  9. package/dist/cjs/utilities/pointInShapeCallback.js +4 -0
  10. package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
  11. package/dist/cjs/utilities/scroll.js +2 -9
  12. package/dist/cjs/utilities/scroll.js.map +1 -1
  13. package/dist/esm/tools/PanTool.js +5 -0
  14. package/dist/esm/tools/PanTool.js.map +1 -1
  15. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +1 -1
  16. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  17. package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -9
  18. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  19. package/dist/esm/tools/base/BaseTool.js +1 -1
  20. package/dist/esm/tools/base/BaseTool.js.map +1 -1
  21. package/dist/esm/utilities/pointInShapeCallback.js +4 -0
  22. package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
  23. package/dist/esm/utilities/scroll.js +3 -10
  24. package/dist/esm/utilities/scroll.js.map +1 -1
  25. package/dist/types/tools/PanTool.d.ts.map +1 -1
  26. package/dist/types/tools/base/AnnotationDisplayTool.d.ts.map +1 -1
  27. package/dist/types/utilities/pointInShapeCallback.d.ts.map +1 -1
  28. package/dist/types/utilities/scroll.d.ts.map +1 -1
  29. package/dist/umd/78.index.js +1 -1
  30. package/dist/umd/78.index.js.map +1 -1
  31. package/dist/umd/985.index.js +1 -1
  32. package/dist/umd/985.index.js.map +1 -1
  33. package/dist/umd/index.js +1 -1
  34. package/dist/umd/index.js.map +1 -1
  35. package/package.json +3 -3
  36. package/src/tools/PanTool.ts +8 -0
  37. package/src/tools/annotation/PlanarFreehandROITool.ts +1 -1
  38. package/src/tools/base/AnnotationDisplayTool.ts +3 -6
  39. package/src/tools/base/BaseTool.ts +1 -1
  40. package/src/utilities/pointInShapeCallback.ts +5 -0
  41. package/src/utilities/scroll.ts +6 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "1.77.12",
3
+ "version": "1.78.1",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/types/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
30
30
  },
31
31
  "dependencies": {
32
- "@cornerstonejs/core": "^1.77.12",
32
+ "@cornerstonejs/core": "^1.78.1",
33
33
  "@icr/polyseg-wasm": "0.4.0",
34
34
  "@types/offscreencanvas": "2019.7.3",
35
35
  "comlink": "^4.4.1",
@@ -59,5 +59,5 @@
59
59
  "type": "individual",
60
60
  "url": "https://ohif.org/donate"
61
61
  },
62
- "gitHead": "21f9869a43912ca4a1eb70391d439e9e11252f07"
62
+ "gitHead": "a3f12ef5eecb12158a9067945c7dc779f6feb3ea"
63
63
  }
@@ -31,6 +31,14 @@ class PanTool extends BaseTool {
31
31
  const enabledElement = getEnabledElement(element);
32
32
 
33
33
  const deltaPointsWorld = deltaPoints.world;
34
+ // This occurs when the mouse event is fired but the mouse hasn't moved a full pixel yet (high resolution mice)
35
+ if (
36
+ deltaPointsWorld[0] === 0 &&
37
+ deltaPointsWorld[1] === 0 &&
38
+ deltaPointsWorld[2] === 0
39
+ ) {
40
+ return;
41
+ }
34
42
  const camera = enabledElement.viewport.getCamera();
35
43
  const { focalPoint, position } = camera;
36
44
 
@@ -1030,7 +1030,7 @@ function defaultGetTextLines(data, targetId): string[] {
1030
1030
  textLines.push(`Mean: ${roundNumber(mean)} ${modalityUnit}`);
1031
1031
  }
1032
1032
 
1033
- if (max) {
1033
+ if (Number.isFinite(max)) {
1034
1034
  textLines.push(`Max: ${roundNumber(max)} ${modalityUnit}`);
1035
1035
  }
1036
1036
 
@@ -4,6 +4,7 @@ import {
4
4
  StackViewport,
5
5
  cache,
6
6
  VideoViewport,
7
+ BaseVolumeViewport,
7
8
  } from '@cornerstonejs/core';
8
9
  import type { Types } from '@cornerstonejs/core';
9
10
 
@@ -130,13 +131,9 @@ abstract class AnnotationDisplayTool extends BaseTool {
130
131
  ): string {
131
132
  const targetId = this.getTargetId(viewport);
132
133
 
133
- let referencedImageId;
134
+ let referencedImageId = targetId.split(/^[a-zA-Z]+:/)[1];
134
135
 
135
- if (viewport instanceof StackViewport) {
136
- referencedImageId = targetId.split('imageId:')[1];
137
- } else if (viewport instanceof VideoViewport) {
138
- referencedImageId = targetId.split('videoId:')[1];
139
- } else {
136
+ if (viewport instanceof BaseVolumeViewport) {
140
137
  const volumeId = utilities.getVolumeId(targetId);
141
138
  const imageVolume = cache.getVolume(volumeId);
142
139
 
@@ -257,7 +257,7 @@ abstract class BaseTool implements IBaseTool {
257
257
  if (viewport instanceof BaseVolumeViewport) {
258
258
  return `volumeId:${this.getTargetVolumeId(viewport)}`;
259
259
  }
260
- throw new Error('getTargetId: viewport must have a getTargetId method');
260
+ throw new Error('getTargetId: viewport must have a getReferenceId method');
261
261
  }
262
262
  }
263
263
 
@@ -59,6 +59,11 @@ export default function pointInShapeCallback(
59
59
  .getData();
60
60
  }
61
61
 
62
+ if (!scalarData) {
63
+ console.warn('No scalar data found for imageData', imageData);
64
+ return;
65
+ }
66
+
62
67
  const dimensions = imageData.getDimensions();
63
68
 
64
69
  if (!boundsIJK) {
@@ -6,7 +6,6 @@ import {
6
6
  EVENTS,
7
7
  utilities as csUtils,
8
8
  getEnabledElement,
9
- VideoViewport,
10
9
  } from '@cornerstonejs/core';
11
10
  import { ScrollOptions, EventTypes } from '../types';
12
11
 
@@ -37,17 +36,16 @@ export default function scroll(
37
36
  throw new Error('Scroll::Stack Viewport has no images');
38
37
  }
39
38
 
40
- const { type: viewportType } = viewport;
41
39
  const { volumeId, delta, scrollSlabs } = options;
42
40
 
43
- if (viewport instanceof StackViewport) {
44
- viewport.scroll(delta, options.debounceLoading, options.loop);
45
- } else if (viewport instanceof VolumeViewport) {
41
+ if (viewport instanceof VolumeViewport) {
46
42
  scrollVolume(viewport, volumeId, delta, scrollSlabs);
47
- } else if (viewport instanceof VideoViewport) {
48
- viewport.scroll(delta);
49
43
  } else {
50
- throw new Error(`Not implemented for Viewport Type: ${viewportType}`);
44
+ (viewport as Types.IStackViewport).scroll(
45
+ delta,
46
+ options.debounceLoading,
47
+ options.loop
48
+ );
51
49
  }
52
50
  }
53
51