@cornerstonejs/core 0.14.5 → 0.15.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.
@@ -23,6 +23,7 @@ declare class Viewport implements IViewport {
23
23
  private _suppressCameraModifiedEvents;
24
24
  readonly suppressEvents: boolean;
25
25
  protected hasPixelSpacing: boolean;
26
+ protected initialCamera: ICamera;
26
27
  constructor(props: ViewportInput);
27
28
  getFrameOfReferenceUID: () => string;
28
29
  canvasToWorld: (canvasPos: Point2) => Point3;
@@ -53,12 +54,17 @@ declare class Viewport implements IViewport {
53
54
  protected resetCameraNoEvent(): void;
54
55
  protected setCameraNoEvent(camera: ICamera): void;
55
56
  private _getViewImageDataIntersections;
56
- protected resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
57
+ protected resetCamera(resetPan?: boolean, resetZoom?: boolean, storeAsInitialCamera?: boolean): boolean;
58
+ protected setInitialCamera(camera: ICamera): void;
59
+ getPan(): Point2;
60
+ setPan(pan: Point2, storeAsInitialCamera?: boolean): void;
61
+ getZoom(): number;
62
+ setZoom(value: number, storeAsInitialCamera?: boolean): void;
57
63
  private _getFocalPointForViewPlaneReset;
58
64
  getCanvas(): HTMLCanvasElement;
59
65
  protected getVtkActiveCamera(): vtkCamera | vtkSlabCamera;
60
66
  getCamera(): ICamera;
61
- setCamera(cameraInterface: ICamera): void;
67
+ setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void;
62
68
  triggerCameraModifiedEventIfNecessary(previousCamera: ICamera, updatedCamera: ICamera): void;
63
69
  protected updateClippingPlanesForActors(updatedCamera: ICamera): void;
64
70
  setOrientationOfClippingPlanes(vtkPlanes: Array<vtkPlane>, slabThickness: number, viewPlaneNormal: Point3, focalPoint: Point3): void;
@@ -149,7 +149,6 @@ class Viewport {
149
149
  gl_matrix_1.mat4.multiply(mat, mat, flipVTx.getMatrix());
150
150
  }
151
151
  actor.setUserMatrix(mat);
152
- this.getRenderingEngine().render();
153
152
  });
154
153
  this.getRenderingEngine().render();
155
154
  }
@@ -259,7 +258,7 @@ class Viewport {
259
258
  }
260
259
  return intersections;
261
260
  }
262
- resetCamera(resetPan = true, resetZoom = true) {
261
+ resetCamera(resetPan = true, resetZoom = true, storeAsInitialCamera = true) {
263
262
  const renderer = this.getRenderer();
264
263
  const previousCamera = (0, lodash_clonedeep_1.default)(this.getCamera());
265
264
  const bounds = renderer.computeVisiblePropBounds();
@@ -313,10 +312,7 @@ class Viewport {
313
312
  if (Math.abs(Math_1.default.dot(viewUp, viewPlaneNormal)) > 0.999) {
314
313
  activeCamera.setViewUp(-viewUp[2], viewUp[0], viewUp[1]);
315
314
  }
316
- let focalPointToSet = focalPoint;
317
- if (!resetPan) {
318
- focalPointToSet = previousCamera.focalPoint;
319
- }
315
+ const focalPointToSet = resetPan ? focalPoint : previousCamera.focalPoint;
320
316
  activeCamera.setFocalPoint(focalPointToSet[0], focalPointToSet[1], focalPointToSet[2]);
321
317
  activeCamera.setPosition(focalPointToSet[0] + distance * viewPlaneNormal[0], focalPointToSet[1] + distance * viewPlaneNormal[1], focalPointToSet[2] + distance * viewPlaneNormal[2]);
322
318
  renderer.resetCameraClippingRange(bounds);
@@ -326,17 +322,61 @@ class Viewport {
326
322
  activeCamera.setPhysicalScale(radius);
327
323
  activeCamera.setPhysicalTranslation(-focalPointToSet[0], -focalPointToSet[1], -focalPointToSet[2]);
328
324
  activeCamera.setClippingRange(-constants_1.RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, constants_1.RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
325
+ if (this.flipHorizontal || this.flipVertical) {
326
+ this.flip({ flipHorizontal: false, flipVertical: false });
327
+ }
328
+ if (storeAsInitialCamera) {
329
+ this.setInitialCamera(this.getCamera());
330
+ }
329
331
  const RESET_CAMERA_EVENT = {
330
332
  type: 'ResetCameraEvent',
331
333
  renderer,
332
334
  };
333
- if (this.flipHorizontal || this.flipVertical) {
334
- this.flip({ flipHorizontal: false, flipVertical: false });
335
- }
336
335
  renderer.invokeEvent(RESET_CAMERA_EVENT);
337
336
  this.triggerCameraModifiedEventIfNecessary(previousCamera, this.getCamera());
338
337
  return true;
339
338
  }
339
+ setInitialCamera(camera) {
340
+ this.initialCamera = camera;
341
+ }
342
+ getPan() {
343
+ const activeCamera = this.getVtkActiveCamera();
344
+ const focalPoint = activeCamera.getFocalPoint();
345
+ const zero3 = this.canvasToWorld([0, 0]);
346
+ const initialCanvasFocal = this.worldToCanvas(gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), this.initialCamera.focalPoint, zero3));
347
+ const currentCanvasFocal = this.worldToCanvas(gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), focalPoint, zero3));
348
+ const result = (gl_matrix_1.vec2.subtract(gl_matrix_1.vec2.create(), initialCanvasFocal, currentCanvasFocal));
349
+ return result;
350
+ }
351
+ setPan(pan, storeAsInitialCamera = false) {
352
+ const previousCamera = this.getCamera();
353
+ const { focalPoint, position } = previousCamera;
354
+ const zero3 = this.canvasToWorld([0, 0]);
355
+ const delta2 = gl_matrix_1.vec2.subtract(gl_matrix_1.vec2.create(), pan, this.getPan());
356
+ if (Math.abs(delta2[0]) < 1 &&
357
+ Math.abs(delta2[1]) < 1 &&
358
+ !storeAsInitialCamera) {
359
+ return;
360
+ }
361
+ const delta = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), this.canvasToWorld(delta2), zero3);
362
+ const newFocal = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), focalPoint, delta);
363
+ const newPosition = gl_matrix_1.vec3.subtract(gl_matrix_1.vec3.create(), position, delta);
364
+ this.setCamera(Object.assign(Object.assign({}, previousCamera), { focalPoint: newFocal, position: newPosition }), storeAsInitialCamera);
365
+ }
366
+ getZoom() {
367
+ const activeCamera = this.getVtkActiveCamera();
368
+ const { parallelScale: initialParallelScale } = this.initialCamera;
369
+ return initialParallelScale / activeCamera.getParallelScale();
370
+ }
371
+ setZoom(value, storeAsInitialCamera = false) {
372
+ const camera = this.getCamera();
373
+ const { parallelScale: initialParallelScale } = this.initialCamera;
374
+ const parallelScale = initialParallelScale / value;
375
+ if (camera.parallelScale === parallelScale && !storeAsInitialCamera) {
376
+ return;
377
+ }
378
+ this.setCamera(Object.assign(Object.assign({}, camera), { parallelScale }), storeAsInitialCamera);
379
+ }
340
380
  _getFocalPointForViewPlaneReset(imageData) {
341
381
  const { focalPoint, viewPlaneNormal: normal } = this.getCamera();
342
382
  const intersections = this._getViewImageDataIntersections(imageData, focalPoint, normal);
@@ -376,7 +416,7 @@ class Viewport {
376
416
  flipVertical: this.flipVertical,
377
417
  };
378
418
  }
379
- setCamera(cameraInterface) {
419
+ setCamera(cameraInterface, storeAsInitialCamera = false) {
380
420
  var _a, _b;
381
421
  const vtkCamera = this.getVtkActiveCamera();
382
422
  const previousCamera = (0, lodash_clonedeep_1.default)(this.getCamera());
@@ -411,6 +451,9 @@ class Viewport {
411
451
  const renderer = this.getRenderer();
412
452
  renderer.resetCameraClippingRange();
413
453
  }
454
+ if (storeAsInitialCamera) {
455
+ this.setInitialCamera(updatedCamera);
456
+ }
414
457
  this.triggerCameraModifiedEventIfNecessary(previousCamera, this.getCamera());
415
458
  }
416
459
  triggerCameraModifiedEventIfNecessary(previousCamera, updatedCamera) {
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/Viewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/Viewport.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { mat4 } from 'gl-matrix';
2
- import type { VtkObject } from '@kitware/vtk.js/interfaces';
2
+ import type { vtkObject } from '@kitware/vtk.js/interfaces';
3
3
 
4
4
  // Copied from VTKCamera
5
5
 
@@ -29,7 +29,7 @@ interface ICameraInitialValues {
29
29
  physicalViewNorth?: number[];
30
30
  }
31
31
 
32
- export interface vtkSlabCamera extends VtkObject {
32
+ export interface vtkSlabCamera extends vtkObject {
33
33
  /**
34
34
  * Apply a transform to the camera.
35
35
  * The camera position, focal-point, and view-up are re-calculated
@@ -11,6 +11,9 @@ class CornerstoneEventTarget {
11
11
  if (!this.listeners[type]) {
12
12
  this.listeners[type] = [];
13
13
  }
14
+ if (this.listeners[type].indexOf(callback) !== -1) {
15
+ return;
16
+ }
14
17
  this.listeners[type].push(callback);
15
18
  }
16
19
  removeEventListener(type, callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"eventTarget.js","sourceRoot":"","sources":["../../src/eventTarget.ts"],"names":[],"mappings":";;AAGA,MAAM,sBAAsB;IAG1B;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,gBAAgB,CAAC,IAAI,EAAE,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,mBAAmB,CAAC,IAAI,EAAE,QAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEnB,OAAO;aACR;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE/B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAEjD,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"eventTarget.js","sourceRoot":"","sources":["../../src/eventTarget.ts"],"names":[],"mappings":";;AAGA,MAAM,sBAAsB;IAG1B;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,gBAAgB,CAAC,IAAI,EAAE,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3B;QAGD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACjD,OAAO;SACR;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,mBAAmB,CAAC,IAAI,EAAE,QAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEnB,OAAO;aACR;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE/B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAEjD,kBAAe,WAAW,CAAC"}
@@ -37,7 +37,11 @@ interface IViewport {
37
37
  reset(immediate: boolean): void;
38
38
  getCanvas(): HTMLCanvasElement;
39
39
  getCamera(): ICamera;
40
- setCamera(cameraInterface: ICamera): void;
40
+ getZoom(): number;
41
+ setZoom(zoom: number, storeAsInitialCamera?: boolean): any;
42
+ getPan(): Point2;
43
+ setPan(pan: Point2, storeAsInitialCamera?: boolean): any;
44
+ setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void;
41
45
  customRenderViewportToCanvas: () => unknown;
42
46
  _getCorners(bounds: Array<number>): Array<number>[];
43
47
  }
@@ -23,6 +23,7 @@ declare class Viewport implements IViewport {
23
23
  private _suppressCameraModifiedEvents;
24
24
  readonly suppressEvents: boolean;
25
25
  protected hasPixelSpacing: boolean;
26
+ protected initialCamera: ICamera;
26
27
  constructor(props: ViewportInput);
27
28
  getFrameOfReferenceUID: () => string;
28
29
  canvasToWorld: (canvasPos: Point2) => Point3;
@@ -53,12 +54,17 @@ declare class Viewport implements IViewport {
53
54
  protected resetCameraNoEvent(): void;
54
55
  protected setCameraNoEvent(camera: ICamera): void;
55
56
  private _getViewImageDataIntersections;
56
- protected resetCamera(resetPan?: boolean, resetZoom?: boolean): boolean;
57
+ protected resetCamera(resetPan?: boolean, resetZoom?: boolean, storeAsInitialCamera?: boolean): boolean;
58
+ protected setInitialCamera(camera: ICamera): void;
59
+ getPan(): Point2;
60
+ setPan(pan: Point2, storeAsInitialCamera?: boolean): void;
61
+ getZoom(): number;
62
+ setZoom(value: number, storeAsInitialCamera?: boolean): void;
57
63
  private _getFocalPointForViewPlaneReset;
58
64
  getCanvas(): HTMLCanvasElement;
59
65
  protected getVtkActiveCamera(): vtkCamera | vtkSlabCamera;
60
66
  getCamera(): ICamera;
61
- setCamera(cameraInterface: ICamera): void;
67
+ setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void;
62
68
  triggerCameraModifiedEventIfNecessary(previousCamera: ICamera, updatedCamera: ICamera): void;
63
69
  protected updateClippingPlanesForActors(updatedCamera: ICamera): void;
64
70
  setOrientationOfClippingPlanes(vtkPlanes: Array<vtkPlane>, slabThickness: number, viewPlaneNormal: Point3, focalPoint: Point3): void;
@@ -1,6 +1,6 @@
1
1
  import vtkMatrixBuilder from '@kitware/vtk.js/Common/Core/MatrixBuilder';
2
2
  import vtkMath from '@kitware/vtk.js/Common/Core/Math';
3
- import { vec3, mat4 } from 'gl-matrix';
3
+ import { vec2, vec3, mat4 } from 'gl-matrix';
4
4
  import _cloneDeep from 'lodash.clonedeep';
5
5
  import Events from '../enums/Events';
6
6
  import renderingEngineCache from './renderingEngineCache';
@@ -144,7 +144,6 @@ class Viewport {
144
144
  mat4.multiply(mat, mat, flipVTx.getMatrix());
145
145
  }
146
146
  actor.setUserMatrix(mat);
147
- this.getRenderingEngine().render();
148
147
  });
149
148
  this.getRenderingEngine().render();
150
149
  }
@@ -254,7 +253,7 @@ class Viewport {
254
253
  }
255
254
  return intersections;
256
255
  }
257
- resetCamera(resetPan = true, resetZoom = true) {
256
+ resetCamera(resetPan = true, resetZoom = true, storeAsInitialCamera = true) {
258
257
  const renderer = this.getRenderer();
259
258
  const previousCamera = _cloneDeep(this.getCamera());
260
259
  const bounds = renderer.computeVisiblePropBounds();
@@ -308,10 +307,7 @@ class Viewport {
308
307
  if (Math.abs(vtkMath.dot(viewUp, viewPlaneNormal)) > 0.999) {
309
308
  activeCamera.setViewUp(-viewUp[2], viewUp[0], viewUp[1]);
310
309
  }
311
- let focalPointToSet = focalPoint;
312
- if (!resetPan) {
313
- focalPointToSet = previousCamera.focalPoint;
314
- }
310
+ const focalPointToSet = resetPan ? focalPoint : previousCamera.focalPoint;
315
311
  activeCamera.setFocalPoint(focalPointToSet[0], focalPointToSet[1], focalPointToSet[2]);
316
312
  activeCamera.setPosition(focalPointToSet[0] + distance * viewPlaneNormal[0], focalPointToSet[1] + distance * viewPlaneNormal[1], focalPointToSet[2] + distance * viewPlaneNormal[2]);
317
313
  renderer.resetCameraClippingRange(bounds);
@@ -321,17 +317,68 @@ class Viewport {
321
317
  activeCamera.setPhysicalScale(radius);
322
318
  activeCamera.setPhysicalTranslation(-focalPointToSet[0], -focalPointToSet[1], -focalPointToSet[2]);
323
319
  activeCamera.setClippingRange(-RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE, RENDERING_DEFAULTS.MAXIMUM_RAY_DISTANCE);
320
+ if (this.flipHorizontal || this.flipVertical) {
321
+ this.flip({ flipHorizontal: false, flipVertical: false });
322
+ }
323
+ if (storeAsInitialCamera) {
324
+ this.setInitialCamera(this.getCamera());
325
+ }
324
326
  const RESET_CAMERA_EVENT = {
325
327
  type: 'ResetCameraEvent',
326
328
  renderer,
327
329
  };
328
- if (this.flipHorizontal || this.flipVertical) {
329
- this.flip({ flipHorizontal: false, flipVertical: false });
330
- }
331
330
  renderer.invokeEvent(RESET_CAMERA_EVENT);
332
331
  this.triggerCameraModifiedEventIfNecessary(previousCamera, this.getCamera());
333
332
  return true;
334
333
  }
334
+ setInitialCamera(camera) {
335
+ this.initialCamera = camera;
336
+ }
337
+ getPan() {
338
+ const activeCamera = this.getVtkActiveCamera();
339
+ const focalPoint = activeCamera.getFocalPoint();
340
+ const zero3 = this.canvasToWorld([0, 0]);
341
+ const initialCanvasFocal = this.worldToCanvas(vec3.subtract(vec3.create(), this.initialCamera.focalPoint, zero3));
342
+ const currentCanvasFocal = this.worldToCanvas(vec3.subtract(vec3.create(), focalPoint, zero3));
343
+ const result = (vec2.subtract(vec2.create(), initialCanvasFocal, currentCanvasFocal));
344
+ return result;
345
+ }
346
+ setPan(pan, storeAsInitialCamera = false) {
347
+ const previousCamera = this.getCamera();
348
+ const { focalPoint, position } = previousCamera;
349
+ const zero3 = this.canvasToWorld([0, 0]);
350
+ const delta2 = vec2.subtract(vec2.create(), pan, this.getPan());
351
+ if (Math.abs(delta2[0]) < 1 &&
352
+ Math.abs(delta2[1]) < 1 &&
353
+ !storeAsInitialCamera) {
354
+ return;
355
+ }
356
+ const delta = vec3.subtract(vec3.create(), this.canvasToWorld(delta2), zero3);
357
+ const newFocal = vec3.subtract(vec3.create(), focalPoint, delta);
358
+ const newPosition = vec3.subtract(vec3.create(), position, delta);
359
+ this.setCamera({
360
+ ...previousCamera,
361
+ focalPoint: newFocal,
362
+ position: newPosition,
363
+ }, storeAsInitialCamera);
364
+ }
365
+ getZoom() {
366
+ const activeCamera = this.getVtkActiveCamera();
367
+ const { parallelScale: initialParallelScale } = this.initialCamera;
368
+ return initialParallelScale / activeCamera.getParallelScale();
369
+ }
370
+ setZoom(value, storeAsInitialCamera = false) {
371
+ const camera = this.getCamera();
372
+ const { parallelScale: initialParallelScale } = this.initialCamera;
373
+ const parallelScale = initialParallelScale / value;
374
+ if (camera.parallelScale === parallelScale && !storeAsInitialCamera) {
375
+ return;
376
+ }
377
+ this.setCamera({
378
+ ...camera,
379
+ parallelScale,
380
+ }, storeAsInitialCamera);
381
+ }
335
382
  _getFocalPointForViewPlaneReset(imageData) {
336
383
  const { focalPoint, viewPlaneNormal: normal } = this.getCamera();
337
384
  const intersections = this._getViewImageDataIntersections(imageData, focalPoint, normal);
@@ -371,7 +418,7 @@ class Viewport {
371
418
  flipVertical: this.flipVertical,
372
419
  };
373
420
  }
374
- setCamera(cameraInterface) {
421
+ setCamera(cameraInterface, storeAsInitialCamera = false) {
375
422
  const vtkCamera = this.getVtkActiveCamera();
376
423
  const previousCamera = _cloneDeep(this.getCamera());
377
424
  const updatedCamera = Object.assign({}, previousCamera, cameraInterface);
@@ -405,6 +452,9 @@ class Viewport {
405
452
  const renderer = this.getRenderer();
406
453
  renderer.resetCameraClippingRange();
407
454
  }
455
+ if (storeAsInitialCamera) {
456
+ this.setInitialCamera(updatedCamera);
457
+ }
408
458
  this.triggerCameraModifiedEventIfNecessary(previousCamera, this.getCamera());
409
459
  }
410
460
  triggerCameraModifiedEventIfNecessary(previousCamera, updatedCamera) {
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/Viewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/Viewport.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { mat4 } from 'gl-matrix';
2
- import type { VtkObject } from '@kitware/vtk.js/interfaces';
2
+ import type { vtkObject } from '@kitware/vtk.js/interfaces';
3
3
 
4
4
  // Copied from VTKCamera
5
5
 
@@ -29,7 +29,7 @@ interface ICameraInitialValues {
29
29
  physicalViewNorth?: number[];
30
30
  }
31
31
 
32
- export interface vtkSlabCamera extends VtkObject {
32
+ export interface vtkSlabCamera extends vtkObject {
33
33
  /**
34
34
  * Apply a transform to the camera.
35
35
  * The camera position, focal-point, and view-up are re-calculated
@@ -9,6 +9,9 @@ class CornerstoneEventTarget {
9
9
  if (!this.listeners[type]) {
10
10
  this.listeners[type] = [];
11
11
  }
12
+ if (this.listeners[type].indexOf(callback) !== -1) {
13
+ return;
14
+ }
12
15
  this.listeners[type].push(callback);
13
16
  }
14
17
  removeEventListener(type, callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"eventTarget.js","sourceRoot":"","sources":["../../src/eventTarget.ts"],"names":[],"mappings":"AAGA,MAAM,sBAAsB;IAG1B;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,gBAAgB,CAAC,IAAI,EAAE,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,mBAAmB,CAAC,IAAI,EAAE,QAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEnB,OAAO;aACR;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE/B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAEjD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"eventTarget.js","sourceRoot":"","sources":["../../src/eventTarget.ts"],"names":[],"mappings":"AAGA,MAAM,sBAAsB;IAG1B;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,gBAAgB,CAAC,IAAI,EAAE,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3B;QAGD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACjD,OAAO;SACR;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,mBAAmB,CAAC,IAAI,EAAE,QAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEnB,OAAO;aACR;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAE/B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,WAAW,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAEjD,eAAe,WAAW,CAAC"}
@@ -37,7 +37,11 @@ interface IViewport {
37
37
  reset(immediate: boolean): void;
38
38
  getCanvas(): HTMLCanvasElement;
39
39
  getCamera(): ICamera;
40
- setCamera(cameraInterface: ICamera): void;
40
+ getZoom(): number;
41
+ setZoom(zoom: number, storeAsInitialCamera?: boolean): any;
42
+ getPan(): Point2;
43
+ setPan(pan: Point2, storeAsInitialCamera?: boolean): any;
44
+ setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void;
41
45
  customRenderViewportToCanvas: () => unknown;
42
46
  _getCorners(bounds: Array<number>): Array<number>[];
43
47
  }