@cornerstonejs/core 1.71.3 → 1.71.4

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/RenderingEngine/BaseVolumeViewport.d.ts +2 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +4 -2
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/RenderingEngine.js +6 -1
  5. package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
  6. package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +2 -1
  7. package/dist/cjs/RenderingEngine/VolumeViewport.js +26 -1
  8. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  9. package/dist/cjs/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  10. package/dist/cjs/RenderingEngine/VolumeViewport3D.js +3 -0
  11. package/dist/cjs/RenderingEngine/VolumeViewport3D.js.map +1 -1
  12. package/dist/cjs/types/EventTypes.d.ts +8 -1
  13. package/dist/cjs/types/IVolumeViewport.d.ts +2 -1
  14. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +4 -2
  15. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  16. package/dist/esm/RenderingEngine/RenderingEngine.js +6 -1
  17. package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
  18. package/dist/esm/RenderingEngine/VolumeViewport.js +26 -1
  19. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  20. package/dist/esm/RenderingEngine/VolumeViewport3D.js +3 -0
  21. package/dist/esm/RenderingEngine/VolumeViewport3D.js.map +1 -1
  22. package/dist/types/RenderingEngine/BaseVolumeViewport.d.ts +2 -1
  23. package/dist/types/RenderingEngine/BaseVolumeViewport.d.ts.map +1 -1
  24. package/dist/types/RenderingEngine/RenderingEngine.d.ts.map +1 -1
  25. package/dist/types/RenderingEngine/VolumeViewport.d.ts +2 -1
  26. package/dist/types/RenderingEngine/VolumeViewport.d.ts.map +1 -1
  27. package/dist/types/RenderingEngine/VolumeViewport3D.d.ts +1 -0
  28. package/dist/types/RenderingEngine/VolumeViewport3D.d.ts.map +1 -1
  29. package/dist/types/types/EventTypes.d.ts +8 -1
  30. package/dist/types/types/EventTypes.d.ts.map +1 -1
  31. package/dist/types/types/IVolumeViewport.d.ts +2 -1
  32. package/dist/types/types/IVolumeViewport.d.ts.map +1 -1
  33. package/dist/umd/index.js +1 -1
  34. package/dist/umd/index.js.map +1 -1
  35. package/package.json +2 -2
  36. package/src/RenderingEngine/BaseVolumeViewport.ts +7 -2
  37. package/src/RenderingEngine/RenderingEngine.ts +12 -1
  38. package/src/RenderingEngine/VolumeViewport.ts +35 -1
  39. package/src/RenderingEngine/VolumeViewport3D.ts +4 -0
  40. package/src/types/EventTypes.ts +19 -0
  41. package/src/types/IVolumeViewport.ts +6 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "1.71.3",
3
+ "version": "1.71.4",
4
4
  "description": "",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/types/index.d.ts",
@@ -47,5 +47,5 @@
47
47
  "type": "individual",
48
48
  "url": "https://ohif.org/donate"
49
49
  },
50
- "gitHead": "1f8cced111f519d18a4f832acf9204c8b160d0ab"
50
+ "gitHead": "c80a68cc56c7e2c96168051a6e2b8d83dab91cc0"
51
51
  }
@@ -126,7 +126,8 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
126
126
  }
127
127
 
128
128
  protected applyViewOrientation(
129
- orientation: OrientationAxis | OrientationVectors
129
+ orientation: OrientationAxis | OrientationVectors,
130
+ resetCamera = true
130
131
  ) {
131
132
  const { viewPlaneNormal, viewUp } =
132
133
  this._getOrientationVectors(orientation);
@@ -139,7 +140,9 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
139
140
  camera.setViewUpFrom(viewUp);
140
141
  this.initialViewUp = viewUp;
141
142
 
142
- this.resetCamera();
143
+ if (resetCamera) {
144
+ this.resetCamera();
145
+ }
143
146
  }
144
147
 
145
148
  private initializeVolumeNewImageEventDispatcher(): void {
@@ -1611,6 +1614,8 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
1611
1614
  filterActorUIDs?: Array<string>
1612
1615
  ): void;
1613
1616
 
1617
+ abstract resetSlabThickness(): void;
1618
+
1614
1619
  abstract resetProperties(volumeId?: string): void;
1615
1620
  }
1616
1621
 
@@ -626,7 +626,18 @@ class RenderingEngine implements IRenderingEngine {
626
626
  const prevCamera = vp.getCamera();
627
627
  const rotation = vp.getRotation();
628
628
  const { flipHorizontal } = prevCamera;
629
- vp.resetCamera();
629
+ const resetPan = true;
630
+ const resetZoom = true;
631
+ const resetToCenter = true;
632
+ const resetRotation = false;
633
+ const supressEvents = true;
634
+ vp.resetCamera(
635
+ resetPan,
636
+ resetZoom,
637
+ resetToCenter,
638
+ resetRotation,
639
+ supressEvents
640
+ );
630
641
 
631
642
  const displayArea = vp.getDisplayArea();
632
643
 
@@ -12,6 +12,7 @@ import type {
12
12
  IVolumeInput,
13
13
  OrientationVectors,
14
14
  Point3,
15
+ EventTypes,
15
16
  } from '../types';
16
17
  import type { ViewportInput } from '../types/IViewport';
17
18
  import {
@@ -253,8 +254,13 @@ class VolumeViewport extends BaseVolumeViewport {
253
254
  resetPan = true,
254
255
  resetZoom = true,
255
256
  resetToCenter = true,
256
- resetRotation = false
257
+ resetRotation = false,
258
+ supressEvents = false
257
259
  ): boolean {
260
+ const { orientation } = this.viewportProperties;
261
+ if (orientation) {
262
+ this.applyViewOrientation(orientation, false);
263
+ }
258
264
  super.resetCamera(resetPan, resetZoom, resetToCenter);
259
265
 
260
266
  this.resetVolumeViewportClippingRange();
@@ -310,6 +316,16 @@ class VolumeViewport extends BaseVolumeViewport {
310
316
  });
311
317
  }
312
318
 
319
+ if (!supressEvents) {
320
+ const eventDetail: EventTypes.CameraResetEventDetail = {
321
+ viewportId: this.id,
322
+ camera: this.getCamera(),
323
+ renderingEngineId: this.renderingEngineId,
324
+ element: this.element,
325
+ };
326
+
327
+ triggerEvent(this.element, Events.CAMERA_RESET, eventDetail);
328
+ }
313
329
  return true;
314
330
  }
315
331
 
@@ -348,6 +364,24 @@ class VolumeViewport extends BaseVolumeViewport {
348
364
  this.viewportProperties.slabThickness = slabThickness;
349
365
  }
350
366
 
367
+ /**
368
+ * Resets the slab thickness of the actors of the viewport to the default value.
369
+ */
370
+ public resetSlabThickness(): void {
371
+ const actorEntries = this.getActors();
372
+
373
+ actorEntries.forEach((actorEntry) => {
374
+ if (actorIsA(actorEntry, 'vtkVolume')) {
375
+ actorEntry.slabThickness = RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
376
+ }
377
+ });
378
+
379
+ const currentCamera = this.getCamera();
380
+ this.updateClippingPlanesForActors(currentCamera);
381
+ this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
382
+ this.viewportProperties.slabThickness = undefined;
383
+ }
384
+
351
385
  /**
352
386
  * Uses the origin and focalPoint to calculate the slice index.
353
387
  *
@@ -64,6 +64,10 @@ class VolumeViewport3D extends BaseVolumeViewport {
64
64
  resetProperties(volumeId?: string): void {
65
65
  return null;
66
66
  }
67
+
68
+ resetSlabThickness(): void {
69
+ return null;
70
+ }
67
71
  }
68
72
 
69
73
  export default VolumeViewport3D;
@@ -31,6 +31,23 @@ type CameraModifiedEventDetail = {
31
31
  rotation?: number;
32
32
  };
33
33
 
34
+ /**
35
+ * CAMERA_RESET Event's data
36
+ */
37
+
38
+ type CameraResetEventDetail = {
39
+ /** Viewport HTML element in the DOM */
40
+ element: HTMLDivElement;
41
+ /** Viewport Unique ID in the renderingEngine */
42
+ viewportId: string;
43
+ /** Unique ID for the renderingEngine */
44
+ renderingEngineId: string;
45
+ /** Camera properties */
46
+ camera: ICamera;
47
+ };
48
+
49
+ type CameraResetEvent = CustomEventType<CameraResetEventDetail>;
50
+
34
51
  /**
35
52
  * VOI_MODIFIED Event's data
36
53
  */
@@ -461,4 +478,6 @@ export type {
461
478
  StackViewportNewStackEventDetail,
462
479
  StackViewportScrollEvent,
463
480
  StackViewportScrollEventDetail,
481
+ CameraResetEvent,
482
+ CameraResetEventDetail,
464
483
  };
@@ -137,8 +137,13 @@ export default interface IVolumeViewport extends IViewport {
137
137
  resetPan?: boolean,
138
138
  resetZoom?: boolean,
139
139
  resetToCenter?: boolean,
140
- resetRotation?: boolean
140
+ resetRotation?: boolean,
141
+ supressEvents?: boolean
141
142
  ): boolean;
143
+ /**
144
+ * Reset the slab thickness for actors of the viewport.
145
+ */
146
+ resetSlabThickness(): void;
142
147
  /**
143
148
  * Sets the blendMode for actors of the viewport.
144
149
  */