@cornerstonejs/core 1.27.2 → 1.27.3

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 (29) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +4 -4
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/Viewport.js +18 -8
  5. package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
  6. package/dist/cjs/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
  7. package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js +2 -2
  8. package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
  9. package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +1 -1
  10. package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js +4 -4
  11. package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -1
  12. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
  13. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +4 -4
  14. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  15. package/dist/esm/RenderingEngine/Viewport.js +19 -9
  16. package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
  17. package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
  18. package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +2 -2
  19. package/dist/esm/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
  20. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +1 -1
  21. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +4 -4
  22. package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -1
  23. package/dist/umd/index.js +1 -1
  24. package/dist/umd/index.js.map +1 -1
  25. package/package.json +2 -2
  26. package/src/RenderingEngine/BaseVolumeViewport.ts +4 -4
  27. package/src/RenderingEngine/Viewport.ts +20 -9
  28. package/src/RenderingEngine/helpers/createVolumeActor.ts +2 -2
  29. package/src/RenderingEngine/helpers/setDefaultVolumeVOI.ts +4 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/core",
3
- "version": "1.27.2",
3
+ "version": "1.27.3",
4
4
  "description": "",
5
5
  "main": "src/index.ts",
6
6
  "types": "dist/esm/index.d.ts",
@@ -46,5 +46,5 @@
46
46
  "type": "individual",
47
47
  "url": "https://ohif.org/donate"
48
48
  },
49
- "gitHead": "19d7d73eca5190a6bd81429a5a1858c500946d61"
49
+ "gitHead": "217b37f8e2933ee9368d07130152c82ff6e9add2"
50
50
  }
@@ -67,7 +67,7 @@ import { getTransferFunctionNodes } from '../utilities/transferFunctionUtils';
67
67
  */
68
68
  abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
69
69
  useCPURendering = false;
70
- use16BitTexture = false;
70
+ useNativeDataType = false;
71
71
  private _FrameOfReferenceUID: string;
72
72
 
73
73
  protected initialTransferFunctionNodes: any;
@@ -84,7 +84,7 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
84
84
  super(props);
85
85
 
86
86
  this.useCPURendering = getShouldUseCPURendering();
87
- this.use16BitTexture = this._shouldUseNativeDataType();
87
+ this.useNativeDataType = this._shouldUseNativeDataType();
88
88
 
89
89
  if (this.useCPURendering) {
90
90
  throw new Error(
@@ -753,7 +753,7 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
753
753
  this.element,
754
754
  this.id,
755
755
  suppressEvents,
756
- this.use16BitTexture
756
+ this.useNativeDataType
757
757
  );
758
758
 
759
759
  // We cannot use only volumeId since then we cannot have for instance more
@@ -819,7 +819,7 @@ abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
819
819
  this.element,
820
820
  this.id,
821
821
  suppressEvents,
822
- this.use16BitTexture
822
+ this.useNativeDataType
823
823
  );
824
824
 
825
825
  if (visibility === false) {
@@ -1091,22 +1091,33 @@ class Viewport implements IViewport {
1091
1091
 
1092
1092
  // update clipping range only if focal point changed of a new actor is added
1093
1093
  const prevFocalPoint = previousCamera.focalPoint;
1094
+ const prevViewUp = previousCamera.viewUp;
1094
1095
 
1095
- if (prevFocalPoint && focalPoint) {
1096
+ if ((prevFocalPoint && focalPoint) || (prevViewUp && viewUp)) {
1096
1097
  const currentViewPlaneNormal = <Point3>vtkCamera.getViewPlaneNormal();
1098
+ const currentViewUp = <Point3>vtkCamera.getViewUp();
1097
1099
 
1098
- const deltaCamera = <Point3>[
1099
- focalPoint[0] - prevFocalPoint[0],
1100
- focalPoint[1] - prevFocalPoint[1],
1101
- focalPoint[2] - prevFocalPoint[2],
1102
- ];
1100
+ let cameraModifiedOutOfPlane = false;
1101
+ let viewUpHasChanged = false;
1102
+
1103
+ if (focalPoint) {
1104
+ const deltaCamera = <Point3>[
1105
+ focalPoint[0] - prevFocalPoint[0],
1106
+ focalPoint[1] - prevFocalPoint[1],
1107
+ focalPoint[2] - prevFocalPoint[2],
1108
+ ];
1103
1109
 
1104
- const cameraModifiedOutOfPlane =
1105
- Math.abs(vtkMath.dot(deltaCamera, currentViewPlaneNormal)) > 0;
1110
+ cameraModifiedOutOfPlane =
1111
+ Math.abs(vtkMath.dot(deltaCamera, currentViewPlaneNormal)) > 0;
1112
+ }
1113
+
1114
+ if (viewUp) {
1115
+ viewUpHasChanged = isEqual(currentViewUp, prevViewUp);
1116
+ }
1106
1117
 
1107
1118
  // only modify the clipping planes if the camera is modified out of plane
1108
1119
  // or a new actor is added and we need to update the clipping planes
1109
- if (cameraModifiedOutOfPlane || this.newActorAdded) {
1120
+ if (cameraModifiedOutOfPlane || viewUpHasChanged || this.newActorAdded) {
1110
1121
  const actorEntry = this.getDefaultActor();
1111
1122
  if (!actorEntry?.actor) {
1112
1123
  return;
@@ -34,7 +34,7 @@ async function createVolumeActor(
34
34
  element: HTMLDivElement,
35
35
  viewportId: string,
36
36
  suppressEvents = false,
37
- use16BitTexture = false
37
+ useNativeDataType = false
38
38
  ): Promise<VolumeActor> {
39
39
  const { volumeId, callback, blendMode } = props;
40
40
 
@@ -71,7 +71,7 @@ async function createVolumeActor(
71
71
  // types of volumes which might not be composed of imageIds would be e.g., nrrd, nifti
72
72
  // format volumes
73
73
  if (imageVolume.imageIds) {
74
- await setDefaultVolumeVOI(volumeActor, imageVolume, use16BitTexture);
74
+ await setDefaultVolumeVOI(volumeActor, imageVolume, useNativeDataType);
75
75
  }
76
76
 
77
77
  if (callback) {
@@ -24,12 +24,12 @@ const REQUEST_TYPE = RequestType.Prefetch;
24
24
  async function setDefaultVolumeVOI(
25
25
  volumeActor: VolumeActor,
26
26
  imageVolume: IImageVolume,
27
- use16BitTexture: boolean
27
+ useNativeDataType: boolean
28
28
  ): Promise<void> {
29
29
  let voi = getVOIFromMetadata(imageVolume);
30
30
 
31
31
  if (!voi) {
32
- voi = await getVOIFromMinMax(imageVolume, use16BitTexture);
32
+ voi = await getVOIFromMinMax(imageVolume, useNativeDataType);
33
33
  }
34
34
 
35
35
  if (!voi || voi.lower === undefined || voi.upper === undefined) {
@@ -117,7 +117,7 @@ function getVOIFromMetadata(imageVolume: IImageVolume): VOIRange {
117
117
  */
118
118
  async function getVOIFromMinMax(
119
119
  imageVolume: IImageVolume,
120
- use16BitTexture: boolean
120
+ useNativeDataType: boolean
121
121
  ): Promise<VOIRange> {
122
122
  const { imageIds } = imageVolume;
123
123
  const scalarData = imageVolume.getScalarData();
@@ -157,7 +157,7 @@ async function getVOIFromMinMax(
157
157
 
158
158
  const options = {
159
159
  targetBuffer: {
160
- type: use16BitTexture ? undefined : 'Float32Array',
160
+ type: useNativeDataType ? undefined : 'Float32Array',
161
161
  },
162
162
  priority: PRIORITY,
163
163
  requestType: REQUEST_TYPE,