@cornerstonejs/core 1.21.1 → 1.22.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.
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +10 -4
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +112 -16
- package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.d.ts +12 -3
- package/dist/cjs/RenderingEngine/StackViewport.js +113 -7
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/VolumeViewport.js +9 -0
- package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/cjs/types/IStackViewport.d.ts +5 -4
- package/dist/cjs/types/IVolumeViewport.d.ts +5 -2
- package/dist/cjs/types/ViewportProperties.d.ts +2 -0
- package/dist/cjs/types/VolumeViewportProperties.d.ts +1 -2
- package/dist/cjs/utilities/index.d.ts +2 -1
- package/dist/cjs/utilities/index.js +3 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/transferFunctionUtils.d.ts +3 -0
- package/dist/cjs/utilities/transferFunctionUtils.js +22 -0
- package/dist/cjs/utilities/transferFunctionUtils.js.map +1 -0
- package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +10 -4
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +112 -16
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.d.ts +12 -3
- package/dist/esm/RenderingEngine/StackViewport.js +116 -8
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport.js +10 -1
- package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/esm/types/IStackViewport.d.ts +5 -4
- package/dist/esm/types/IVolumeViewport.d.ts +5 -2
- package/dist/esm/types/ViewportProperties.d.ts +2 -0
- package/dist/esm/types/VolumeViewportProperties.d.ts +1 -2
- package/dist/esm/utilities/index.d.ts +2 -1
- package/dist/esm/utilities/index.js +2 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/transferFunctionUtils.d.ts +3 -0
- package/dist/esm/utilities/transferFunctionUtils.js +18 -0
- package/dist/esm/utilities/transferFunctionUtils.js.map +1 -0
- 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 +204 -22
- package/src/RenderingEngine/VolumeViewport.ts +22 -1
- package/src/types/IStackViewport.ts +31 -8
- package/src/types/IVolumeViewport.ts +27 -5
- package/src/types/ViewportProperties.ts +3 -0
- package/src/types/VolumeViewportProperties.ts +2 -3
- package/src/utilities/index.ts +2 -0
- package/src/utilities/transferFunctionUtils.ts +23 -0
|
@@ -7,8 +7,10 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
7
7
|
useCPURendering: boolean;
|
|
8
8
|
use16BitTexture: boolean;
|
|
9
9
|
private _FrameOfReferenceUID;
|
|
10
|
-
|
|
11
|
-
private
|
|
10
|
+
protected initialTransferFunctionNodes: any;
|
|
11
|
+
private globalDefaultProperties;
|
|
12
|
+
private perVolumeIdDefaultProperties;
|
|
13
|
+
private viewportProperties;
|
|
12
14
|
constructor(props: ViewportInput);
|
|
13
15
|
static get useCustomRenderingPipeline(): boolean;
|
|
14
16
|
protected applyViewOrientation(orientation: OrientationAxis | OrientationVectors): void;
|
|
@@ -21,9 +23,13 @@ declare abstract class BaseVolumeViewport extends Viewport implements IVolumeVie
|
|
|
21
23
|
private _getOrCreateColorTransferFunction;
|
|
22
24
|
private setInterpolationType;
|
|
23
25
|
private setVOI;
|
|
24
|
-
|
|
26
|
+
setDefaultProperties(ViewportProperties: VolumeViewportProperties, volumeId?: string): void;
|
|
27
|
+
clearDefaultProperties(volumeId?: string): void;
|
|
28
|
+
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, }?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void;
|
|
29
|
+
resetToDefaultProperties(volumeId: string): void;
|
|
25
30
|
private setPreset;
|
|
26
|
-
|
|
31
|
+
getDefaultProperties: (volumeId?: string) => VolumeViewportProperties;
|
|
32
|
+
getProperties: (volumeId?: string) => VolumeViewportProperties;
|
|
27
33
|
setVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
28
34
|
addVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
|
|
29
35
|
removeVolumeActors(actorUIDs: Array<string>, immediate?: boolean): void;
|
|
@@ -51,15 +51,33 @@ const volumeNewImageEventDispatcher_1 = __importStar(require("./helpers/volumeNe
|
|
|
51
51
|
const Viewport_1 = __importDefault(require("./Viewport"));
|
|
52
52
|
const vtkSlabCamera_1 = __importDefault(require("./vtkClasses/vtkSlabCamera"));
|
|
53
53
|
const transformWorldToIndex_1 = __importDefault(require("../utilities/transformWorldToIndex"));
|
|
54
|
+
const transferFunctionUtils_1 = require("../utilities/transferFunctionUtils");
|
|
54
55
|
class BaseVolumeViewport extends Viewport_1.default {
|
|
55
56
|
constructor(props) {
|
|
56
57
|
super(props);
|
|
57
58
|
this.useCPURendering = false;
|
|
58
59
|
this.use16BitTexture = false;
|
|
59
|
-
this.
|
|
60
|
-
this.
|
|
60
|
+
this.perVolumeIdDefaultProperties = new Map();
|
|
61
|
+
this.viewportProperties = {};
|
|
62
|
+
this.getDefaultProperties = (volumeId) => {
|
|
63
|
+
let volumeProperties;
|
|
64
|
+
if (volumeId !== undefined) {
|
|
65
|
+
volumeProperties = this.perVolumeIdDefaultProperties.get(volumeId);
|
|
66
|
+
}
|
|
67
|
+
if (volumeProperties !== undefined) {
|
|
68
|
+
return volumeProperties;
|
|
69
|
+
}
|
|
70
|
+
return Object.assign({}, this.globalDefaultProperties);
|
|
71
|
+
};
|
|
72
|
+
this.getProperties = (volumeId) => {
|
|
73
|
+
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
74
|
+
if (!applicableVolumeActorInfo) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const { colormap, VOILUTFunction, interpolationType, invert, slabThickness, } = this.viewportProperties;
|
|
61
78
|
const voiRanges = this.getActors()
|
|
62
79
|
.map((actorEntry) => {
|
|
80
|
+
var _a;
|
|
63
81
|
const volumeActor = actorEntry.actor;
|
|
64
82
|
const volumeId = actorEntry.uid;
|
|
65
83
|
const volume = cache_1.default.getVolume(volumeId);
|
|
@@ -67,15 +85,21 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
67
85
|
return null;
|
|
68
86
|
}
|
|
69
87
|
const cfun = volumeActor.getProperty().getRGBTransferFunction(0);
|
|
70
|
-
const [lower, upper] = this.VOILUTFunction === 'SIGMOID'
|
|
88
|
+
const [lower, upper] = ((_a = this.viewportProperties) === null || _a === void 0 ? void 0 : _a.VOILUTFunction) === 'SIGMOID'
|
|
71
89
|
? (0, utilities_1.getVoiFromSigmoidRGBTransferFunction)(cfun)
|
|
72
90
|
: cfun.getRange();
|
|
73
91
|
return { volumeId, voiRange: { lower, upper } };
|
|
74
92
|
})
|
|
75
93
|
.filter(Boolean);
|
|
76
94
|
const voiRange = voiRanges.length ? voiRanges[0].voiRange : null;
|
|
77
|
-
|
|
78
|
-
|
|
95
|
+
return {
|
|
96
|
+
colormap: colormap,
|
|
97
|
+
voiRange: voiRange,
|
|
98
|
+
VOILUTFunction: VOILUTFunction,
|
|
99
|
+
interpolationType: interpolationType,
|
|
100
|
+
invert: invert,
|
|
101
|
+
slabThickness: slabThickness,
|
|
102
|
+
};
|
|
79
103
|
};
|
|
80
104
|
this.getFrameOfReferenceUID = () => {
|
|
81
105
|
return this._FrameOfReferenceUID;
|
|
@@ -221,8 +245,8 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
221
245
|
voiLUTFunction = enums_1.VOILUTFunctionType.LINEAR;
|
|
222
246
|
}
|
|
223
247
|
const { voiRange } = this.getProperties();
|
|
224
|
-
this.VOILUTFunction = voiLUTFunction;
|
|
225
248
|
this.setVOI(voiRange, volumeId, suppressEvents);
|
|
249
|
+
this.viewportProperties.VOILUTFunction = voiLUTFunction;
|
|
226
250
|
}
|
|
227
251
|
setColormap(colormap, volumeId, suppressEvents) {
|
|
228
252
|
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
@@ -248,6 +272,7 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
248
272
|
cfun.applyColorMap(colormapObj);
|
|
249
273
|
cfun.setMappingRange(range[0], range[1]);
|
|
250
274
|
volumeActor.getProperty().setRGBTransferFunction(0, cfun);
|
|
275
|
+
this.viewportProperties.colormap = colormap;
|
|
251
276
|
}
|
|
252
277
|
setOpacity(colormap, volumeId) {
|
|
253
278
|
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
@@ -270,8 +295,9 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
270
295
|
});
|
|
271
296
|
}
|
|
272
297
|
volumeActor.getProperty().setScalarOpacity(0, ofun);
|
|
298
|
+
this.viewportProperties.colormap.opacity = colormap.opacity;
|
|
273
299
|
}
|
|
274
|
-
setInvert(
|
|
300
|
+
setInvert(inverted, volumeId, suppressEvents) {
|
|
275
301
|
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
276
302
|
if (!applicableVolumeActorInfo) {
|
|
277
303
|
return;
|
|
@@ -279,15 +305,15 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
279
305
|
const volumeIdToUse = applicableVolumeActorInfo.volumeId;
|
|
280
306
|
const cfun = this._getOrCreateColorTransferFunction(volumeIdToUse);
|
|
281
307
|
(0, utilities_1.invertRgbTransferFunction)(cfun);
|
|
282
|
-
|
|
283
|
-
|
|
308
|
+
const { voiRange, VOILUTFunction, invert } = this.getProperties(volumeIdToUse);
|
|
309
|
+
this.viewportProperties.invert = invert;
|
|
284
310
|
if (!suppressEvents) {
|
|
285
311
|
const eventDetail = {
|
|
286
312
|
viewportId: this.id,
|
|
287
313
|
range: voiRange,
|
|
288
314
|
volumeId: volumeIdToUse,
|
|
289
|
-
VOILUTFunction:
|
|
290
|
-
invert:
|
|
315
|
+
VOILUTFunction: VOILUTFunction,
|
|
316
|
+
invert: invert,
|
|
291
317
|
invertStateChanged: true,
|
|
292
318
|
};
|
|
293
319
|
(0, utilities_1.triggerEvent)(this.element, enums_1.Events.VOI_MODIFIED, eventDetail);
|
|
@@ -317,6 +343,7 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
317
343
|
const { volumeActor } = applicableVolumeActorInfo;
|
|
318
344
|
const volumeProperty = volumeActor.getProperty();
|
|
319
345
|
volumeProperty.setInterpolationType(interpolationType);
|
|
346
|
+
this.viewportProperties.interpolationType = interpolationType;
|
|
320
347
|
}
|
|
321
348
|
setVOI(voiRange, volumeId, suppressEvents = false) {
|
|
322
349
|
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
@@ -332,7 +359,8 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
332
359
|
const maxVoiRange = { lower: range[0], upper: range[1] };
|
|
333
360
|
voiRangeToUse = maxVoiRange;
|
|
334
361
|
}
|
|
335
|
-
|
|
362
|
+
const { VOILUTFunction } = this.getProperties(volumeIdToUse);
|
|
363
|
+
if (VOILUTFunction === enums_1.VOILUTFunctionType.SAMPLED_SIGMOID) {
|
|
336
364
|
const cfun = (0, utilities_1.createSigmoidRGBTransferFunction)(voiRangeToUse);
|
|
337
365
|
volumeActor.getProperty().setRGBTransferFunction(0, cfun);
|
|
338
366
|
}
|
|
@@ -342,18 +370,54 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
342
370
|
.getProperty()
|
|
343
371
|
.getRGBTransferFunction(0)
|
|
344
372
|
.setRange(lower, upper);
|
|
373
|
+
if (!this.initialTransferFunctionNodes) {
|
|
374
|
+
const transferFunction = volumeActor
|
|
375
|
+
.getProperty()
|
|
376
|
+
.getRGBTransferFunction(0);
|
|
377
|
+
this.initialTransferFunctionNodes =
|
|
378
|
+
(0, transferFunctionUtils_1.getTransferFunctionNodes)(transferFunction);
|
|
379
|
+
}
|
|
345
380
|
}
|
|
346
381
|
if (!suppressEvents) {
|
|
347
382
|
const eventDetail = {
|
|
348
383
|
viewportId: this.id,
|
|
349
384
|
range: voiRange,
|
|
350
385
|
volumeId: volumeIdToUse,
|
|
351
|
-
VOILUTFunction:
|
|
386
|
+
VOILUTFunction: VOILUTFunction,
|
|
352
387
|
};
|
|
353
388
|
(0, utilities_1.triggerEvent)(this.element, enums_1.Events.VOI_MODIFIED, eventDetail);
|
|
354
389
|
}
|
|
390
|
+
this.viewportProperties.voiRange = voiRangeToUse;
|
|
355
391
|
}
|
|
356
|
-
|
|
392
|
+
setDefaultProperties(ViewportProperties, volumeId) {
|
|
393
|
+
if (volumeId == null) {
|
|
394
|
+
this.globalDefaultProperties = ViewportProperties;
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
this.perVolumeIdDefaultProperties.set(volumeId, ViewportProperties);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
clearDefaultProperties(volumeId) {
|
|
401
|
+
if (volumeId == null) {
|
|
402
|
+
this.globalDefaultProperties = {};
|
|
403
|
+
this.resetProperties();
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
this.perVolumeIdDefaultProperties.delete(volumeId);
|
|
407
|
+
this.resetToDefaultProperties(volumeId);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, } = {}, volumeId, suppressEvents = false) {
|
|
411
|
+
if (this.globalDefaultProperties == null) {
|
|
412
|
+
this.setDefaultProperties({
|
|
413
|
+
voiRange,
|
|
414
|
+
VOILUTFunction,
|
|
415
|
+
invert,
|
|
416
|
+
colormap,
|
|
417
|
+
preset,
|
|
418
|
+
slabThickness,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
357
421
|
if (colormap === null || colormap === void 0 ? void 0 : colormap.name) {
|
|
358
422
|
this.setColormap(colormap, volumeId, suppressEvents);
|
|
359
423
|
}
|
|
@@ -369,12 +433,40 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
369
433
|
if (VOILUTFunction !== undefined) {
|
|
370
434
|
this.setVOILUTFunction(VOILUTFunction, volumeId, suppressEvents);
|
|
371
435
|
}
|
|
372
|
-
if (invert !== undefined
|
|
436
|
+
if (invert !== undefined) {
|
|
373
437
|
this.setInvert(invert, volumeId, suppressEvents);
|
|
374
438
|
}
|
|
375
439
|
if (preset !== undefined) {
|
|
376
440
|
this.setPreset(preset, volumeId, suppressEvents);
|
|
377
441
|
}
|
|
442
|
+
if (slabThickness !== undefined) {
|
|
443
|
+
this.setSlabThickness(slabThickness);
|
|
444
|
+
this.viewportProperties.slabThickness = slabThickness;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
resetToDefaultProperties(volumeId) {
|
|
448
|
+
var _a, _b;
|
|
449
|
+
const properties = this.globalDefaultProperties;
|
|
450
|
+
if ((_a = properties.colormap) === null || _a === void 0 ? void 0 : _a.name) {
|
|
451
|
+
this.setColormap(properties.colormap, volumeId);
|
|
452
|
+
}
|
|
453
|
+
if (((_b = properties.colormap) === null || _b === void 0 ? void 0 : _b.opacity) != null) {
|
|
454
|
+
this.setOpacity(properties.colormap, volumeId);
|
|
455
|
+
}
|
|
456
|
+
if (properties.voiRange !== undefined) {
|
|
457
|
+
this.setVOI(properties.voiRange, volumeId);
|
|
458
|
+
}
|
|
459
|
+
if (properties.VOILUTFunction !== undefined) {
|
|
460
|
+
this.setVOILUTFunction(properties.VOILUTFunction, volumeId);
|
|
461
|
+
}
|
|
462
|
+
if (properties.invert !== undefined) {
|
|
463
|
+
this.setInvert(properties.invert, volumeId);
|
|
464
|
+
}
|
|
465
|
+
if (properties.slabThickness !== undefined) {
|
|
466
|
+
this.setSlabThickness(properties.slabThickness);
|
|
467
|
+
this.viewportProperties.slabThickness = properties.slabThickness;
|
|
468
|
+
}
|
|
469
|
+
this.render();
|
|
378
470
|
}
|
|
379
471
|
setPreset(presetName, volumeId, suppressEvents) {
|
|
380
472
|
const applicableVolumeActorInfo = this._getApplicableVolumeActor(volumeId);
|
|
@@ -389,6 +481,7 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
389
481
|
return;
|
|
390
482
|
}
|
|
391
483
|
(0, utilities_1.applyPreset)(volumeActor, preset);
|
|
484
|
+
this.viewportProperties.preset = presetName;
|
|
392
485
|
}
|
|
393
486
|
setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
394
487
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -540,7 +633,10 @@ class BaseVolumeViewport extends Viewport_1.default {
|
|
|
540
633
|
};
|
|
541
634
|
}
|
|
542
635
|
_setVolumeActors(volumeActorEntries) {
|
|
543
|
-
|
|
636
|
+
for (let i = 0; i < volumeActorEntries.length; i++) {
|
|
637
|
+
const volumeId = volumeActorEntries[i].uid;
|
|
638
|
+
this.viewportProperties.invert = false;
|
|
639
|
+
}
|
|
544
640
|
this.setActors(volumeActorEntries);
|
|
545
641
|
}
|
|
546
642
|
_getOrientationVectors(orientation) {
|
|
@@ -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 Viewport from './Viewport';
|
|
2
|
-
import { Point2, Point3, ICamera, IImage, IImageData, CPUIImageData, Scaling, StackViewportProperties, ActorEntry,
|
|
2
|
+
import { Point2, Point3, ICamera, IImage, IImageData, CPUIImageData, Scaling, StackViewportProperties, ActorEntry, IStackViewport } from '../types';
|
|
3
3
|
import { ViewportInput } from '../types/IViewport';
|
|
4
4
|
import ViewportStatus from '../enums/ViewportStatus';
|
|
5
5
|
declare class StackViewport extends Viewport implements IStackViewport {
|
|
@@ -7,11 +7,15 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
7
7
|
private currentImageIdIndex;
|
|
8
8
|
private targetImageIdIndex;
|
|
9
9
|
private debouncedTimeout;
|
|
10
|
+
private globalDefaultProperties;
|
|
11
|
+
private perImageIdDefaultProperties;
|
|
12
|
+
private colormap;
|
|
10
13
|
private voiRange;
|
|
11
14
|
private voiUpdatedWithSetProperties;
|
|
12
15
|
private VOILUTFunction;
|
|
13
16
|
private invert;
|
|
14
17
|
private initialInvert;
|
|
18
|
+
private initialTransferFunctionNodes;
|
|
15
19
|
private interpolationType;
|
|
16
20
|
private _imageData;
|
|
17
21
|
private cameraFocalPointOnRender;
|
|
@@ -35,7 +39,6 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
35
39
|
private _resetCPUFallbackElement;
|
|
36
40
|
private _resetGPUViewport;
|
|
37
41
|
getImageData: () => IImageData | CPUIImageData;
|
|
38
|
-
setColormap: (colormap: CPUFallbackColormapData | ColormapRegistration) => void;
|
|
39
42
|
getCamera: () => ICamera;
|
|
40
43
|
setCamera: (cameraInterface: ICamera, storeAsInitialCamera?: boolean) => void;
|
|
41
44
|
getRotation: () => number;
|
|
@@ -54,6 +57,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
54
57
|
private setVOI;
|
|
55
58
|
private setInterpolationType;
|
|
56
59
|
private setInvertColor;
|
|
60
|
+
private setColormap;
|
|
57
61
|
private initializeElementDisabledHandler;
|
|
58
62
|
resize: () => void;
|
|
59
63
|
private _resizeCPU;
|
|
@@ -64,10 +68,14 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
64
68
|
private createActorMapper;
|
|
65
69
|
private buildMetadata;
|
|
66
70
|
private calibrateIfNecessary;
|
|
67
|
-
|
|
71
|
+
setDefaultProperties(ViewportProperties: StackViewportProperties, imageId?: string): void;
|
|
72
|
+
clearDefaultProperties(imageId?: string): void;
|
|
73
|
+
setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, rotation, }?: StackViewportProperties, suppressEvents?: boolean): void;
|
|
74
|
+
getDefaultProperties: (imageId?: string) => StackViewportProperties;
|
|
68
75
|
getProperties: () => StackViewportProperties;
|
|
69
76
|
resetProperties(): void;
|
|
70
77
|
private _resetProperties;
|
|
78
|
+
resetToDefaultProperties(): void;
|
|
71
79
|
private _setPropertiesFromCache;
|
|
72
80
|
private getCameraCPU;
|
|
73
81
|
private setCameraCPU;
|
|
@@ -83,6 +91,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
83
91
|
private setInvertColorCPU;
|
|
84
92
|
private setInvertColorGPU;
|
|
85
93
|
private setVOICPU;
|
|
94
|
+
private getTransferFunction;
|
|
86
95
|
private setVOIGPU;
|
|
87
96
|
private _addScalingToViewport;
|
|
88
97
|
private _getNumCompsFromPhotometricInterpretation;
|
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
const DataArray_1 = __importDefault(require("@kitware/vtk.js/Common/Core/DataArray"));
|
|
39
39
|
const ImageData_1 = __importDefault(require("@kitware/vtk.js/Common/DataModel/ImageData"));
|
|
40
|
+
const ColorMaps_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps"));
|
|
40
41
|
const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep"));
|
|
41
42
|
const Camera_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/Camera"));
|
|
42
43
|
const gl_matrix_1 = require("gl-matrix");
|
|
@@ -64,13 +65,16 @@ const cache_1 = __importDefault(require("../cache"));
|
|
|
64
65
|
const correctShift_1 = __importDefault(require("./helpers/cpuFallback/rendering/correctShift"));
|
|
65
66
|
const createLinearRGBTransferFunction_1 = __importDefault(require("../utilities/createLinearRGBTransferFunction"));
|
|
66
67
|
const ViewportStatus_1 = __importDefault(require("../enums/ViewportStatus"));
|
|
68
|
+
const transferFunctionUtils_1 = require("../utilities/transferFunctionUtils");
|
|
67
69
|
const EPSILON = 1;
|
|
68
70
|
class StackViewport extends Viewport_1.default {
|
|
69
71
|
constructor(props) {
|
|
70
72
|
super(props);
|
|
73
|
+
this.perImageIdDefaultProperties = new Map();
|
|
71
74
|
this.voiUpdatedWithSetProperties = false;
|
|
72
75
|
this.invert = false;
|
|
73
76
|
this.initialInvert = false;
|
|
77
|
+
this.initialTransferFunctionNodes = null;
|
|
74
78
|
this.stackInvalidated = false;
|
|
75
79
|
this._publishCalibratedEvent = false;
|
|
76
80
|
this.useNativeDataType = false;
|
|
@@ -115,10 +119,21 @@ class StackViewport extends Viewport_1.default {
|
|
|
115
119
|
}
|
|
116
120
|
return actor;
|
|
117
121
|
};
|
|
122
|
+
this.getDefaultProperties = (imageId) => {
|
|
123
|
+
let imageProperties;
|
|
124
|
+
if (imageId !== undefined) {
|
|
125
|
+
imageProperties = this.perImageIdDefaultProperties.get(imageId);
|
|
126
|
+
}
|
|
127
|
+
if (imageProperties !== undefined) {
|
|
128
|
+
return imageProperties;
|
|
129
|
+
}
|
|
130
|
+
return Object.assign(Object.assign({}, this.globalDefaultProperties), { rotation: this.getRotation() });
|
|
131
|
+
};
|
|
118
132
|
this.getProperties = () => {
|
|
119
|
-
const { voiRange, VOILUTFunction, interpolationType, invert, voiUpdatedWithSetProperties, } = this;
|
|
133
|
+
const { colormap, voiRange, VOILUTFunction, interpolationType, invert, voiUpdatedWithSetProperties, } = this;
|
|
120
134
|
const rotation = this.getRotation();
|
|
121
135
|
return {
|
|
136
|
+
colormap,
|
|
122
137
|
voiRange,
|
|
123
138
|
VOILUTFunction,
|
|
124
139
|
interpolationType,
|
|
@@ -523,10 +538,44 @@ class StackViewport extends Viewport_1.default {
|
|
|
523
538
|
};
|
|
524
539
|
return imagePlaneModule;
|
|
525
540
|
}
|
|
526
|
-
|
|
541
|
+
setDefaultProperties(ViewportProperties, imageId) {
|
|
542
|
+
if (imageId == null) {
|
|
543
|
+
this.globalDefaultProperties = ViewportProperties;
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
this.perImageIdDefaultProperties.set(imageId, ViewportProperties);
|
|
547
|
+
if (this.getCurrentImageId() === imageId) {
|
|
548
|
+
this.setProperties(ViewportProperties);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
clearDefaultProperties(imageId) {
|
|
553
|
+
if (imageId == null) {
|
|
554
|
+
this.globalDefaultProperties = {};
|
|
555
|
+
this.resetProperties();
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
this.perImageIdDefaultProperties.delete(imageId);
|
|
559
|
+
this.resetToDefaultProperties();
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, rotation, } = {}, suppressEvents = false) {
|
|
527
563
|
this.viewportStatus = this.csImage
|
|
528
564
|
? ViewportStatus_1.default.PRE_RENDER
|
|
529
565
|
: ViewportStatus_1.default.LOADING;
|
|
566
|
+
if (this.globalDefaultProperties == null) {
|
|
567
|
+
this.setDefaultProperties({
|
|
568
|
+
colormap,
|
|
569
|
+
voiRange,
|
|
570
|
+
VOILUTFunction,
|
|
571
|
+
invert,
|
|
572
|
+
interpolationType,
|
|
573
|
+
rotation,
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
if (typeof colormap !== 'undefined') {
|
|
577
|
+
this.setColormap(colormap);
|
|
578
|
+
}
|
|
530
579
|
if (typeof voiRange !== 'undefined') {
|
|
531
580
|
const voiUpdatedWithSetProperties = true;
|
|
532
581
|
this.setVOI(voiRange, { suppressEvents, voiUpdatedWithSetProperties });
|
|
@@ -571,6 +620,37 @@ class StackViewport extends Viewport_1.default {
|
|
|
571
620
|
}
|
|
572
621
|
this.setInterpolationType(enums_1.InterpolationType.LINEAR);
|
|
573
622
|
this.setInvertColor(this.initialInvert);
|
|
623
|
+
const transferFunction = this.getTransferFunction();
|
|
624
|
+
(0, transferFunctionUtils_1.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
|
|
625
|
+
}
|
|
626
|
+
resetToDefaultProperties() {
|
|
627
|
+
var _a;
|
|
628
|
+
this.cpuRenderingInvalidated = true;
|
|
629
|
+
this.viewportStatus = ViewportStatus_1.default.PRE_RENDER;
|
|
630
|
+
this.fillWithBackgroundColor();
|
|
631
|
+
if (this.useCPURendering) {
|
|
632
|
+
this._cpuFallbackEnabledElement.renderingTools = {};
|
|
633
|
+
}
|
|
634
|
+
const currentImageId = this.getCurrentImageId();
|
|
635
|
+
const properties = this.perImageIdDefaultProperties.get(currentImageId) ||
|
|
636
|
+
this.globalDefaultProperties;
|
|
637
|
+
if ((_a = properties.colormap) === null || _a === void 0 ? void 0 : _a.name) {
|
|
638
|
+
this.setColormap(properties.colormap);
|
|
639
|
+
}
|
|
640
|
+
let voiRange;
|
|
641
|
+
if (properties.voiRange == undefined) {
|
|
642
|
+
voiRange = this._getVOIRangeForCurrentImage();
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
voiRange = properties.voiRange;
|
|
646
|
+
}
|
|
647
|
+
this.setVOI(voiRange);
|
|
648
|
+
if (this.getRotation() !== 0) {
|
|
649
|
+
this.setRotation(0);
|
|
650
|
+
}
|
|
651
|
+
this.setInterpolationType(enums_1.InterpolationType.LINEAR);
|
|
652
|
+
this.setInvertColor(false);
|
|
653
|
+
this.render();
|
|
574
654
|
}
|
|
575
655
|
_setPropertiesFromCache() {
|
|
576
656
|
var _a;
|
|
@@ -808,6 +888,17 @@ class StackViewport extends Viewport_1.default {
|
|
|
808
888
|
(0, utilities_1.triggerEvent)(this.element, enums_1.Events.VOI_MODIFIED, eventDetail);
|
|
809
889
|
}
|
|
810
890
|
}
|
|
891
|
+
getTransferFunction() {
|
|
892
|
+
const defaultActor = this.getDefaultActor();
|
|
893
|
+
if (!defaultActor) {
|
|
894
|
+
return;
|
|
895
|
+
}
|
|
896
|
+
if (!(0, utilities_1.isImageActor)(defaultActor)) {
|
|
897
|
+
return;
|
|
898
|
+
}
|
|
899
|
+
const imageActor = defaultActor.actor;
|
|
900
|
+
return imageActor.getProperty().getRGBTransferFunction(0);
|
|
901
|
+
}
|
|
811
902
|
setVOIGPU(voiRange, options = {}) {
|
|
812
903
|
const { suppressEvents = false, forceRecreateLUTFunction = false, voiUpdatedWithSetProperties = false, } = options;
|
|
813
904
|
if (voiRange &&
|
|
@@ -845,6 +936,8 @@ class StackViewport extends Viewport_1.default {
|
|
|
845
936
|
(0, utilities_1.invertRgbTransferFunction)(transferFunction);
|
|
846
937
|
}
|
|
847
938
|
imageActor.getProperty().setRGBTransferFunction(0, transferFunction);
|
|
939
|
+
this.initialTransferFunctionNodes =
|
|
940
|
+
(0, transferFunctionUtils_1.getTransferFunctionNodes)(transferFunction);
|
|
848
941
|
}
|
|
849
942
|
if (!isSigmoidTFun) {
|
|
850
943
|
transferFunction.setRange(voiRangeToUse.lower, voiRangeToUse.upper);
|
|
@@ -1274,7 +1367,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
1274
1367
|
}
|
|
1275
1368
|
_getInitialVOIRange(image) {
|
|
1276
1369
|
if (this.voiRange && this.voiUpdatedWithSetProperties) {
|
|
1277
|
-
return this.voiRange;
|
|
1370
|
+
return this.globalDefaultProperties.voiRange;
|
|
1278
1371
|
}
|
|
1279
1372
|
const { windowCenter, windowWidth } = image;
|
|
1280
1373
|
let voiRange = this._getVOIRangeFromWindowLevel(windowWidth, windowCenter);
|
|
@@ -1323,6 +1416,15 @@ class StackViewport extends Viewport_1.default {
|
|
|
1323
1416
|
this.hasPixelSpacing = true;
|
|
1324
1417
|
this.viewportStatus = ViewportStatus_1.default.PRE_RENDER;
|
|
1325
1418
|
const imageId = yield this._loadAndDisplayImage(this.imageIds[imageIdIndex], imageIdIndex);
|
|
1419
|
+
if (this.perImageIdDefaultProperties.size >= 1) {
|
|
1420
|
+
const defaultProperties = this.perImageIdDefaultProperties.get(imageId);
|
|
1421
|
+
if (defaultProperties !== undefined) {
|
|
1422
|
+
this.setProperties(defaultProperties);
|
|
1423
|
+
}
|
|
1424
|
+
else if (this.globalDefaultProperties !== undefined) {
|
|
1425
|
+
this.setProperties(this.globalDefaultProperties);
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1326
1428
|
return imageId;
|
|
1327
1429
|
});
|
|
1328
1430
|
}
|
|
@@ -1463,6 +1565,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
1463
1565
|
this.render();
|
|
1464
1566
|
}
|
|
1465
1567
|
setColormapCPU(colormapData) {
|
|
1568
|
+
this.colormap = colormapData;
|
|
1466
1569
|
const colormap = (0, index_1.getColormap)(colormapData.name, colormapData);
|
|
1467
1570
|
this._cpuFallbackEnabledElement.viewport.colormap = colormap;
|
|
1468
1571
|
this._cpuFallbackEnabledElement.renderingTools = {};
|
|
@@ -1475,17 +1578,20 @@ class StackViewport extends Viewport_1.default {
|
|
|
1475
1578
|
const actor = ActorEntry.actor;
|
|
1476
1579
|
const actorProp = actor.getProperty();
|
|
1477
1580
|
const rgbTransferFunction = actorProp.getRGBTransferFunction();
|
|
1581
|
+
const colormapObj = utilities_1.colormap.getColormap(colormap.name) ||
|
|
1582
|
+
ColorMaps_1.default.getPresetByName(colormap.name);
|
|
1478
1583
|
if (!rgbTransferFunction) {
|
|
1479
1584
|
const cfun = ColorTransferFunction_1.default.newInstance();
|
|
1480
|
-
|
|
1481
|
-
cfun.
|
|
1482
|
-
cfun.setMappingRange(voiRange.lower, voiRange.upper);
|
|
1585
|
+
cfun.applyColorMap(colormapObj);
|
|
1586
|
+
cfun.setMappingRange(this.voiRange.lower, this.voiRange.upper);
|
|
1483
1587
|
actorProp.setRGBTransferFunction(0, cfun);
|
|
1484
1588
|
}
|
|
1485
1589
|
else {
|
|
1486
|
-
rgbTransferFunction.applyColorMap(
|
|
1590
|
+
rgbTransferFunction.applyColorMap(colormapObj);
|
|
1591
|
+
rgbTransferFunction.setMappingRange(this.voiRange.lower, this.voiRange.upper);
|
|
1487
1592
|
actorProp.setRGBTransferFunction(0, rgbTransferFunction);
|
|
1488
1593
|
}
|
|
1594
|
+
this.colormap = colormap;
|
|
1489
1595
|
this.render();
|
|
1490
1596
|
}
|
|
1491
1597
|
unsetColormapGPU() {
|