@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.
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +4 -4
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/Viewport.js +18 -8
- package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js +2 -2
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +1 -1
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js +4 -4
- package/dist/cjs/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -1
- package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +4 -4
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/Viewport.js +19 -9
- package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +2 -2
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.d.ts +1 -1
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +4 -4
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/src/RenderingEngine/BaseVolumeViewport.ts +4 -4
- package/src/RenderingEngine/Viewport.ts +20 -9
- package/src/RenderingEngine/helpers/createVolumeActor.ts +2 -2
- 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.
|
|
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": "
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
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
|
-
|
|
1105
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
27
|
+
useNativeDataType: boolean
|
|
28
28
|
): Promise<void> {
|
|
29
29
|
let voi = getVOIFromMetadata(imageVolume);
|
|
30
30
|
|
|
31
31
|
if (!voi) {
|
|
32
|
-
voi = await getVOIFromMinMax(imageVolume,
|
|
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
|
-
|
|
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:
|
|
160
|
+
type: useNativeDataType ? undefined : 'Float32Array',
|
|
161
161
|
},
|
|
162
162
|
priority: PRIORITY,
|
|
163
163
|
requestType: REQUEST_TYPE,
|