@cornerstonejs/core 1.71.4 → 1.71.6
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 +5 -5
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +83 -10
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.d.ts +5 -5
- package/dist/cjs/RenderingEngine/StackViewport.js +71 -50
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/Viewport.d.ts +2 -1
- package/dist/cjs/RenderingEngine/Viewport.js +21 -16
- package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/VolumeViewport.d.ts +3 -2
- package/dist/cjs/RenderingEngine/VolumeViewport.js +13 -14
- package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/cjs/types/IViewport.d.ts +5 -1
- package/dist/cjs/utilities/index.d.ts +3 -2
- package/dist/cjs/utilities/index.js +8 -4
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/isEqual.d.ts +3 -0
- package/dist/cjs/utilities/isEqual.js +8 -0
- package/dist/cjs/utilities/isEqual.js.map +1 -1
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +83 -13
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.js +53 -34
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/Viewport.js +20 -16
- package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport.js +13 -14
- package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/esm/utilities/index.js +3 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/isEqual.js +5 -0
- package/dist/esm/utilities/isEqual.js.map +1 -1
- package/dist/types/RenderingEngine/BaseVolumeViewport.d.ts +5 -5
- package/dist/types/RenderingEngine/BaseVolumeViewport.d.ts.map +1 -1
- package/dist/types/RenderingEngine/StackViewport.d.ts +5 -5
- package/dist/types/RenderingEngine/StackViewport.d.ts.map +1 -1
- package/dist/types/RenderingEngine/Viewport.d.ts +2 -1
- package/dist/types/RenderingEngine/Viewport.d.ts.map +1 -1
- package/dist/types/RenderingEngine/VolumeViewport.d.ts +3 -2
- package/dist/types/RenderingEngine/VolumeViewport.d.ts.map +1 -1
- package/dist/types/types/IViewport.d.ts +5 -1
- package/dist/types/types/IViewport.d.ts.map +1 -1
- package/dist/types/types/displayArea.d.ts.map +1 -1
- package/dist/types/utilities/index.d.ts +3 -2
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/isEqual.d.ts +3 -0
- package/dist/types/utilities/isEqual.d.ts.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 +182 -19
- package/src/RenderingEngine/StackViewport.ts +81 -50
- package/src/RenderingEngine/Viewport.ts +37 -24
- package/src/RenderingEngine/VolumeViewport.ts +40 -25
- package/src/types/IViewport.ts +64 -18
- package/src/types/displayArea.ts +27 -0
- package/src/utilities/index.ts +6 -2
- package/src/utilities/isEqual.ts +27 -0
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { BlendModes, InterpolationType, OrientationAxis } from '../enums';
|
|
2
|
-
import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions } from '../types';
|
|
2
|
+
import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewReference, IVolumeViewport } from '../types';
|
|
3
3
|
import { VoiModifiedEventDetail } from '../types/EventTypes';
|
|
4
4
|
import type { ViewportInput } from '../types/IViewport';
|
|
5
|
-
import type IVolumeViewport from '../types/IVolumeViewport';
|
|
6
|
-
import type { ViewReference } from '../types/IViewport';
|
|
7
5
|
import Viewport from './Viewport';
|
|
8
6
|
declare abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
|
|
9
7
|
useCPURendering: boolean;
|
|
@@ -33,6 +31,8 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
33
31
|
clearDefaultProperties(volumeId?: string): void;
|
|
34
32
|
getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
|
|
35
33
|
isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
|
|
34
|
+
scroll(delta?: number): void;
|
|
35
|
+
setViewReference(viewRef: ViewReference): void;
|
|
36
36
|
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, }?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void;
|
|
37
37
|
resetToDefaultProperties(volumeId: string): void;
|
|
38
38
|
private setPreset;
|
|
@@ -42,7 +42,7 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
42
42
|
setVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
43
43
|
addVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
44
44
|
removeVolumeActors(actorUIDs: Array<string>, immediate?: boolean): void;
|
|
45
|
-
setOrientation(
|
|
45
|
+
setOrientation(_orientation: OrientationAxis | OrientationVectors, _immediate?: boolean): void;
|
|
46
46
|
private initializeColorTransferFunction;
|
|
47
47
|
private _getApplicableVolumeActor;
|
|
48
48
|
private _isValidVolumeInputArray;
|
|
@@ -61,7 +61,7 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
61
61
|
getIntensityFromWorld(point: Point3): number;
|
|
62
62
|
getImageIds: (volumeId?: string) => Array<string>;
|
|
63
63
|
abstract getCurrentImageId(): string;
|
|
64
|
-
protected getVolumeId(specifier
|
|
64
|
+
protected getVolumeId(specifier?: ViewReferenceSpecifier): string;
|
|
65
65
|
getReferenceId(specifier?: ViewReferenceSpecifier): string;
|
|
66
66
|
abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: Array<string>, immediate?: boolean): void;
|
|
67
67
|
abstract setSlabThickness(slabThickness: number, filterActorUIDs?: Array<string>): void;
|
|
@@ -503,12 +503,26 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
503
503
|
}
|
|
504
504
|
getViewReference(viewRefSpecifier = {}) {
|
|
505
505
|
const target = super.getViewReference(viewRefSpecifier);
|
|
506
|
+
const volumeId = this.getVolumeId(viewRefSpecifier);
|
|
506
507
|
if ((viewRefSpecifier === null || viewRefSpecifier === void 0 ? void 0 : viewRefSpecifier.forFrameOfReference) !== false) {
|
|
507
|
-
target.volumeId =
|
|
508
|
+
target.volumeId = volumeId;
|
|
508
509
|
}
|
|
509
|
-
|
|
510
|
+
if (typeof (viewRefSpecifier === null || viewRefSpecifier === void 0 ? void 0 : viewRefSpecifier.sliceIndex) !== 'number') {
|
|
511
|
+
return target;
|
|
512
|
+
}
|
|
513
|
+
const { viewPlaneNormal } = target;
|
|
514
|
+
const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
|
|
515
|
+
const { sliceRangeInfo } = (0, utilities_1.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
516
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
517
|
+
const { focalPoint, position } = camera;
|
|
518
|
+
const { newFocalPoint } = (0, utilities_1.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
519
|
+
target.cameraFocalPoint = newFocalPoint;
|
|
520
|
+
return target;
|
|
510
521
|
}
|
|
511
522
|
isReferenceViewable(viewRef, options) {
|
|
523
|
+
if (!viewRef.FrameOfReferenceUID) {
|
|
524
|
+
return false;
|
|
525
|
+
}
|
|
512
526
|
if (!super.isReferenceViewable(viewRef, options)) {
|
|
513
527
|
return false;
|
|
514
528
|
}
|
|
@@ -522,6 +536,63 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
522
536
|
}
|
|
523
537
|
return sliceIndex === undefined || sliceIndex === currentSliceIndex;
|
|
524
538
|
}
|
|
539
|
+
scroll(delta = 1) {
|
|
540
|
+
const volumeId = this.getVolumeId();
|
|
541
|
+
const { sliceRangeInfo } = (0, utilities_1.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
542
|
+
if (!sliceRangeInfo) {
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
546
|
+
const { focalPoint, viewPlaneNormal, position } = camera;
|
|
547
|
+
const { newFocalPoint, newPosition } = (0, utilities_1.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
548
|
+
this.setCamera({
|
|
549
|
+
focalPoint: newFocalPoint,
|
|
550
|
+
position: newPosition,
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
setViewReference(viewRef) {
|
|
554
|
+
if (!viewRef) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
const volumeId = this.getVolumeId();
|
|
558
|
+
const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
|
|
559
|
+
let { sliceIndex } = viewRef;
|
|
560
|
+
const { focalPoint, viewPlaneNormal, position } = this.getCamera();
|
|
561
|
+
const isNegativeNormal = (0, utilities_1.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
|
|
562
|
+
const isSameNormal = (0, utilities_1.isEqual)(viewPlaneNormal, refViewPlaneNormal);
|
|
563
|
+
if (typeof sliceIndex === 'number' &&
|
|
564
|
+
viewRef.volumeId === volumeId &&
|
|
565
|
+
(isNegativeNormal || isSameNormal)) {
|
|
566
|
+
const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0, utilities_1.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
567
|
+
const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
|
|
568
|
+
if (isNegativeNormal) {
|
|
569
|
+
sliceIndex = numScrollSteps - sliceIndex - 1;
|
|
570
|
+
}
|
|
571
|
+
const delta = sliceIndex - currentStepIndex;
|
|
572
|
+
const { newFocalPoint, newPosition } = (0, utilities_1.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
573
|
+
this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
|
|
574
|
+
}
|
|
575
|
+
else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
|
|
576
|
+
if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
|
|
577
|
+
this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
|
|
578
|
+
return this.setViewReference(viewRef);
|
|
579
|
+
}
|
|
580
|
+
if (cameraFocalPoint) {
|
|
581
|
+
const focalDelta = gl_matrix_1.vec3.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
|
|
582
|
+
const useNormal = refViewPlaneNormal !== null && refViewPlaneNormal !== void 0 ? refViewPlaneNormal : viewPlaneNormal;
|
|
583
|
+
const normalDot = gl_matrix_1.vec3.dot(focalDelta, useNormal);
|
|
584
|
+
if (!(0, utilities_1.isEqual)(normalDot, 0)) {
|
|
585
|
+
gl_matrix_1.vec3.scale(focalDelta, useNormal, normalDot);
|
|
586
|
+
}
|
|
587
|
+
const newFocal = gl_matrix_1.vec3.add([0, 0, 0], focalPoint, focalDelta);
|
|
588
|
+
const newPosition = gl_matrix_1.vec3.add([0, 0, 0], position, focalDelta);
|
|
589
|
+
this.setCamera({ focalPoint: newFocal, position: newPosition });
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
else {
|
|
593
|
+
throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
525
596
|
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
|
|
526
597
|
if (this.globalDefaultProperties == null) {
|
|
527
598
|
this.setDefaultProperties({
|
|
@@ -685,7 +756,7 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
685
756
|
this.render();
|
|
686
757
|
}
|
|
687
758
|
}
|
|
688
|
-
setOrientation(
|
|
759
|
+
setOrientation(_orientation, _immediate = true) {
|
|
689
760
|
console.warn('Method "setOrientation" needs implementation');
|
|
690
761
|
}
|
|
691
762
|
initializeColorTransferFunction(volumeInputArray) {
|
|
@@ -825,15 +896,16 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
825
896
|
return volume.getScalarData()[voxelIndex];
|
|
826
897
|
}
|
|
827
898
|
getVolumeId(specifier) {
|
|
828
|
-
var _a;
|
|
899
|
+
var _a, _b;
|
|
900
|
+
const actorEntries = this.getActors();
|
|
901
|
+
if (!actorEntries) {
|
|
902
|
+
return;
|
|
903
|
+
}
|
|
829
904
|
if (!(specifier === null || specifier === void 0 ? void 0 : specifier.volumeId)) {
|
|
830
|
-
const actorEntries = this.getActors();
|
|
831
|
-
if (!actorEntries) {
|
|
832
|
-
return;
|
|
833
|
-
}
|
|
834
905
|
return (_a = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')) === null || _a === void 0 ? void 0 : _a.uid;
|
|
835
906
|
}
|
|
836
|
-
return
|
|
907
|
+
return (_b = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
|
|
908
|
+
actorEntry.uid === specifier.volumeId)) === null || _b === void 0 ? void 0 : _b.uid;
|
|
837
909
|
}
|
|
838
910
|
getReferenceId(specifier = {}) {
|
|
839
911
|
var _a;
|
|
@@ -845,7 +917,8 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
845
917
|
}
|
|
846
918
|
volumeId = (_a = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')) === null || _a === void 0 ? void 0 : _a.uid;
|
|
847
919
|
}
|
|
848
|
-
|
|
920
|
+
const currentIndex = this.getCurrentImageIdIndex();
|
|
921
|
+
sliceIndex !== null && sliceIndex !== void 0 ? sliceIndex : (sliceIndex = currentIndex);
|
|
849
922
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
850
923
|
const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
|
|
851
924
|
return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseVolumeViewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/BaseVolumeViewport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseVolumeViewport.js","sourceRoot":"","sources":["../../../src/RenderingEngine/BaseVolumeViewport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { vtkImageData as vtkImageDataType } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
2
|
-
import type { ActorEntry, CPUIImageData, ICamera, IImage, IImageData, IImagesLoader, IStackInput, IStackViewport, ImageLoadListener, Mat3, Point2, Point3, Scaling, StackViewportProperties, ViewReference
|
|
2
|
+
import type { ActorEntry, CPUIImageData, ICamera, IImage, IImageData, IImagesLoader, IStackInput, IStackViewport, ImageLoadListener, Mat3, Point2, Point3, Scaling, StackViewportProperties, ViewReference } from '../types';
|
|
3
3
|
import { ViewReferenceSpecifier, ReferenceCompatibleOptions, ViewportInput } from '../types/IViewport';
|
|
4
4
|
import Viewport from './Viewport';
|
|
5
5
|
import { InterpolationType, RequestType, ViewportStatus } from '../enums';
|
|
@@ -78,7 +78,7 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
78
78
|
private _resizeCPU;
|
|
79
79
|
private getImageDataGPU;
|
|
80
80
|
private getImageDataCPU;
|
|
81
|
-
getFrameOfReferenceUID: () => string
|
|
81
|
+
getFrameOfReferenceUID: (sliceIndex?: number) => string;
|
|
82
82
|
getCornerstoneImage: () => IImage;
|
|
83
83
|
private createActorMapper;
|
|
84
84
|
getNumberOfSlices: () => number;
|
|
@@ -116,6 +116,7 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
116
116
|
private _addScalingToViewport;
|
|
117
117
|
private _getNumCompsFromPhotometricInterpretation;
|
|
118
118
|
getImageDataMetadata(image: IImage): ImageDataMetaData;
|
|
119
|
+
getImagePlaneReferenceData(sliceIndex?: number): ViewReference;
|
|
119
120
|
private _getCameraOrientation;
|
|
120
121
|
createVTKImageData({ origin, direction, dimensions, spacing, numComps, pixelArray, }: {
|
|
121
122
|
origin: any;
|
|
@@ -156,7 +157,7 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
156
157
|
renderImageObject: (image: any) => void;
|
|
157
158
|
private _setCSImage;
|
|
158
159
|
private _updateToDisplayImageCPU;
|
|
159
|
-
addImages(stackInputs: Array<IStackInput>):
|
|
160
|
+
addImages(stackInputs: Array<IStackInput>): void;
|
|
160
161
|
private _updateActorToDisplayImageId;
|
|
161
162
|
private _getInitialVOIRange;
|
|
162
163
|
private _getPTPreScaledRange;
|
|
@@ -179,10 +180,9 @@ declare class StackViewport extends Viewport implements IStackViewport, IImagesL
|
|
|
179
180
|
private _getVOIRangeForCurrentImage;
|
|
180
181
|
private _getValidVOILUTFunction;
|
|
181
182
|
getCurrentImageIdIndex: () => number;
|
|
182
|
-
getSliceIndex: () => number;
|
|
183
183
|
isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
|
|
184
184
|
getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
|
|
185
|
-
|
|
185
|
+
setViewReference(viewRef: ViewReference): void;
|
|
186
186
|
getReferenceId(specifier?: ViewReferenceSpecifier): string;
|
|
187
187
|
getTargetImageIdIndex: () => number;
|
|
188
188
|
getImageIds: () => Array<string>;
|
|
@@ -93,20 +93,8 @@ class StackViewport extends Viewport_1.default {
|
|
|
93
93
|
(0, resize_1.default)(this._cpuFallbackEnabledElement);
|
|
94
94
|
}
|
|
95
95
|
};
|
|
96
|
-
this.getFrameOfReferenceUID = () => {
|
|
97
|
-
|
|
98
|
-
if (!imageId) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
102
|
-
if (!imagePlaneModule) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
return imagePlaneModule.frameOfReferenceUID;
|
|
106
|
-
};
|
|
107
|
-
this.getCornerstoneImage = () => {
|
|
108
|
-
return this.csImage;
|
|
109
|
-
};
|
|
96
|
+
this.getFrameOfReferenceUID = (sliceIndex) => { var _a; return (_a = this.getImagePlaneReferenceData(sliceIndex)) === null || _a === void 0 ? void 0 : _a.FrameOfReferenceUID; };
|
|
97
|
+
this.getCornerstoneImage = () => this.csImage;
|
|
110
98
|
this.createActorMapper = (imageData) => {
|
|
111
99
|
const mapper = ImageMapper_1.default.newInstance();
|
|
112
100
|
mapper.setInputData(imageData);
|
|
@@ -267,9 +255,6 @@ class StackViewport extends Viewport_1.default {
|
|
|
267
255
|
this.getCurrentImageIdIndex = () => {
|
|
268
256
|
return this.currentImageIdIndex;
|
|
269
257
|
};
|
|
270
|
-
this.getSliceIndex = () => {
|
|
271
|
-
return this.currentImageIdIndex;
|
|
272
|
-
};
|
|
273
258
|
this.getTargetImageIdIndex = () => {
|
|
274
259
|
return this.targetImageIdIndex;
|
|
275
260
|
};
|
|
@@ -1075,6 +1060,25 @@ class StackViewport extends Viewport_1.default {
|
|
|
1075
1060
|
imagePixelModule,
|
|
1076
1061
|
};
|
|
1077
1062
|
}
|
|
1063
|
+
getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
|
|
1064
|
+
const imageId = this.imageIds[sliceIndex];
|
|
1065
|
+
if (!imageId) {
|
|
1066
|
+
return;
|
|
1067
|
+
}
|
|
1068
|
+
const imagePlaneModule = metaData.get(enums_1.MetadataModules.IMAGE_PLANE, imageId);
|
|
1069
|
+
const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
|
|
1070
|
+
let { rowCosines, columnCosines } = imagePlaneModule;
|
|
1071
|
+
rowCosines || (rowCosines = [1, 0, 0]);
|
|
1072
|
+
columnCosines || (columnCosines = [0, 1, 0]);
|
|
1073
|
+
const viewPlaneNormal = (gl_matrix_1.vec3.cross([0, 0, 0], columnCosines, rowCosines));
|
|
1074
|
+
return {
|
|
1075
|
+
FrameOfReferenceUID,
|
|
1076
|
+
viewPlaneNormal,
|
|
1077
|
+
cameraFocalPoint: imagePositionPatient,
|
|
1078
|
+
referencedImageId: imageId,
|
|
1079
|
+
sliceIndex,
|
|
1080
|
+
};
|
|
1081
|
+
}
|
|
1078
1082
|
_getCameraOrientation(imageDataDirection) {
|
|
1079
1083
|
const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
|
|
1080
1084
|
const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
|
|
@@ -1391,29 +1395,27 @@ class StackViewport extends Viewport_1.default {
|
|
|
1391
1395
|
this._cpuFallbackEnabledElement.transform = (0, calculateTransform_1.default)(this._cpuFallbackEnabledElement);
|
|
1392
1396
|
}
|
|
1393
1397
|
addImages(stackInputs) {
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
pixelArray: image.getPixelData(),
|
|
1406
|
-
});
|
|
1407
|
-
const imageActor = this.createActorMapper(imagedata);
|
|
1408
|
-
if (imageActor) {
|
|
1409
|
-
actors.push({ uid: stackInput.actorUID, actor: imageActor });
|
|
1410
|
-
if (stackInput.callback) {
|
|
1411
|
-
stackInput.callback({ imageActor, imageId: stackInput.imageId });
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1398
|
+
const actors = this.getActors();
|
|
1399
|
+
stackInputs.forEach((stackInput) => {
|
|
1400
|
+
const image = cache_1.default.getImage(stackInput.imageId);
|
|
1401
|
+
const { origin, dimensions, direction, spacing, numComps } = this.getImageDataMetadata(image);
|
|
1402
|
+
const imagedata = this.createVTKImageData({
|
|
1403
|
+
origin,
|
|
1404
|
+
dimensions,
|
|
1405
|
+
direction,
|
|
1406
|
+
spacing,
|
|
1407
|
+
numComps,
|
|
1408
|
+
pixelArray: image.getPixelData(),
|
|
1414
1409
|
});
|
|
1415
|
-
this.
|
|
1410
|
+
const imageActor = this.createActorMapper(imagedata);
|
|
1411
|
+
if (imageActor) {
|
|
1412
|
+
actors.push({ uid: stackInput.actorUID, actor: imageActor });
|
|
1413
|
+
if (stackInput.callback) {
|
|
1414
|
+
stackInput.callback({ imageActor, imageId: stackInput.imageId });
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1416
1417
|
});
|
|
1418
|
+
this.setActors(actors);
|
|
1417
1419
|
}
|
|
1418
1420
|
_updateActorToDisplayImageId(image) {
|
|
1419
1421
|
const sameImageData = this._checkVTKImageDataMatchesCornerstoneImage(image, this._imageData);
|
|
@@ -1682,20 +1684,39 @@ class StackViewport extends Viewport_1.default {
|
|
|
1682
1684
|
return referencedImageId === null || referencedImageId === void 0 ? void 0 : referencedImageId.endsWith(imageURI);
|
|
1683
1685
|
}
|
|
1684
1686
|
getViewReference(viewRefSpecifier = {}) {
|
|
1685
|
-
const { sliceIndex
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1687
|
+
const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
|
|
1688
|
+
const reference = super.getViewReference(viewRefSpecifier);
|
|
1689
|
+
const referencedImageId = this.imageIds[sliceIndex];
|
|
1690
|
+
if (!referencedImageId) {
|
|
1691
|
+
return;
|
|
1692
|
+
}
|
|
1693
|
+
reference.referencedImageId = referencedImageId;
|
|
1694
|
+
if (this.getCurrentImageIdIndex() !== sliceIndex) {
|
|
1695
|
+
const referenceData = this.getImagePlaneReferenceData(sliceIndex);
|
|
1696
|
+
if (!referenceData) {
|
|
1695
1697
|
return;
|
|
1696
1698
|
}
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
+
Object.assign(reference, referenceData);
|
|
1700
|
+
}
|
|
1701
|
+
return reference;
|
|
1702
|
+
}
|
|
1703
|
+
setViewReference(viewRef) {
|
|
1704
|
+
if (!viewRef) {
|
|
1705
|
+
return;
|
|
1706
|
+
}
|
|
1707
|
+
const { referencedImageId, sliceIndex, volumeId } = viewRef;
|
|
1708
|
+
if (typeof sliceIndex === 'number' &&
|
|
1709
|
+
referencedImageId &&
|
|
1710
|
+
referencedImageId === this.imageIds[sliceIndex]) {
|
|
1711
|
+
this.setImageIdIndex(sliceIndex);
|
|
1712
|
+
}
|
|
1713
|
+
else {
|
|
1714
|
+
const foundIndex = this.imageIds.indexOf(referencedImageId);
|
|
1715
|
+
if (foundIndex !== -1) {
|
|
1716
|
+
this.setImageIdIndex(foundIndex);
|
|
1717
|
+
}
|
|
1718
|
+
else {
|
|
1719
|
+
throw new Error('Unsupported - referenced image id not found');
|
|
1699
1720
|
}
|
|
1700
1721
|
}
|
|
1701
1722
|
}
|