@cornerstonejs/tools 0.63.3 → 0.65.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "0.63.3",
3
+ "version": "0.65.0",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "dist/umd/index.js",
6
6
  "types": "dist/esm/index.d.ts",
@@ -26,12 +26,12 @@
26
26
  "webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
27
27
  },
28
28
  "dependencies": {
29
- "@cornerstonejs/core": "^0.43.1",
29
+ "@cornerstonejs/core": "^0.44.0",
30
30
  "lodash.clonedeep": "4.5.0",
31
31
  "lodash.get": "^4.4.2"
32
32
  },
33
33
  "peerDependencies": {
34
- "@kitware/vtk.js": "26.5.6",
34
+ "@kitware/vtk.js": "27.3.1",
35
35
  "@types/d3-array": "^3.0.3",
36
36
  "@types/d3-interpolate": "^3.0.1",
37
37
  "d3-array": "^3.0.3",
@@ -39,7 +39,7 @@
39
39
  "gl-matrix": "^3.4.3"
40
40
  },
41
41
  "devDependencies": {
42
- "@kitware/vtk.js": "26.5.6"
42
+ "@kitware/vtk.js": "27.3.1"
43
43
  },
44
44
  "contributors": [
45
45
  {
@@ -52,5 +52,5 @@
52
52
  "type": "individual",
53
53
  "url": "https://ohif.org/donate"
54
54
  },
55
- "gitHead": "f64bb238239adaf0cf80ecdc2dca68341207bdd8"
55
+ "gitHead": "06ba42597fb76be663ec565463e8ef4b2ac968c8"
56
56
  }
@@ -16,7 +16,6 @@ class ZoomTool extends BaseTool {
16
16
  initialMousePosWorld: Types.Point3;
17
17
  dirVec: Types.Point3;
18
18
 
19
- // Apparently TS says super _must_ be the first call? This seems a bit opinionated.
20
19
  constructor(
21
20
  toolProps: PublicToolProps = {},
22
21
  defaultToolProps: ToolProps = {
@@ -28,6 +27,7 @@ class ZoomTool extends BaseTool {
28
27
  maxZoomScale: 30,
29
28
  pinchToZoom: true,
30
29
  pan: true,
30
+ invert: false,
31
31
  },
32
32
  }
33
33
  ) {
@@ -146,7 +146,7 @@ class ZoomTool extends BaseTool {
146
146
  const { parallelScale, focalPoint, position } = camera;
147
147
 
148
148
  const zoomScale = 1.5 / size[1];
149
- const k = deltaY * zoomScale;
149
+ const k = deltaY * zoomScale * (this.configuration.invert ? -1 : 1);
150
150
 
151
151
  let parallelScaleToSet = (1.0 - k) * parallelScale;
152
152
 
@@ -169,7 +169,7 @@ class ZoomTool extends BaseTool {
169
169
  // and the initial mouse position by some amount until ultimately we
170
170
  // reach the mouse position at the focal point
171
171
  const zoomScale = 5 / size[1];
172
- const k = deltaY * zoomScale;
172
+ const k = deltaY * zoomScale * (this.configuration.invert ? -1 : 1);
173
173
  parallelScaleToSet = (1.0 - k) * parallelScale;
174
174
 
175
175
  positionToSet = vec3.scaleAndAdd(
@@ -244,7 +244,9 @@ class ZoomTool extends BaseTool {
244
244
  -viewPlaneNormal[2],
245
245
  ];
246
246
 
247
- const k = deltaY * zoomScale;
247
+ const k = this.configuration.invert
248
+ ? deltaY / zoomScale
249
+ : deltaY * zoomScale;
248
250
 
249
251
  let tmp = k * directionOfProjection[0];
250
252
  position[0] += tmp;
@@ -1,4 +1,8 @@
1
- import { StackViewport, VolumeViewport, utilities } from '@cornerstonejs/core';
1
+ import {
2
+ StackViewport,
3
+ utilities,
4
+ BaseVolumeViewport,
5
+ } from '@cornerstonejs/core';
2
6
  import { Types } from '@cornerstonejs/core';
3
7
  import { ToolModes } from '../../enums';
4
8
  import { InteractionTypes, ToolProps, PublicToolProps } from '../../types';
@@ -199,7 +203,7 @@ abstract class BaseTool implements IBaseTool {
199
203
  protected getTargetId(viewport: Types.IViewport): string | undefined {
200
204
  if (viewport instanceof StackViewport) {
201
205
  return `imageId:${viewport.getCurrentImageId()}`;
202
- } else if (viewport instanceof VolumeViewport) {
206
+ } else if (viewport instanceof BaseVolumeViewport) {
203
207
  return `volumeId:${this.getTargetVolumeId(viewport)}`;
204
208
  } else {
205
209
  throw new Error(
@@ -104,7 +104,10 @@ export function addContourSetsToElement(
104
104
 
105
105
  actor.setForceOpaque(true);
106
106
 
107
- viewport.addActor({ uid: contourActorUID, actor });
107
+ viewport.addActor({
108
+ uid: contourActorUID,
109
+ actor: actor as unknown as Types.Actor,
110
+ });
108
111
  viewport.resetCamera();
109
112
  viewport.render();
110
113
  }
@@ -34,7 +34,9 @@ export function updateContourSets(
34
34
  const newOutlineWithActive = newContourConfig.outlineWidthActive;
35
35
 
36
36
  if (cachedConfig?.outlineWidthActive !== newOutlineWithActive) {
37
- (actor as vtkActor).getProperty().setLineWidth(newOutlineWithActive);
37
+ (actor as unknown as vtkActor)
38
+ .getProperty()
39
+ .setLineWidth(newOutlineWithActive);
38
40
 
39
41
  setConfigCache(
40
42
  segmentationRepresentationUID,
@@ -44,7 +46,7 @@ export function updateContourSets(
44
46
  );
45
47
  }
46
48
 
47
- const mapper = (actor as vtkActor).getMapper();
49
+ const mapper = (actor as unknown as vtkActor).getMapper();
48
50
  const lut = mapper.getLookupTable();
49
51
 
50
52
  const segmentsToSetToInvisible = [];