@cornerstonejs/core 1.21.2 → 1.22.1

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 (53) hide show
  1. package/dist/cjs/RenderingEngine/BaseVolumeViewport.d.ts +10 -4
  2. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js +112 -16
  3. package/dist/cjs/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  4. package/dist/cjs/RenderingEngine/StackViewport.d.ts +12 -3
  5. package/dist/cjs/RenderingEngine/StackViewport.js +113 -7
  6. package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
  7. package/dist/cjs/RenderingEngine/VolumeViewport.js +9 -0
  8. package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
  9. package/dist/cjs/cache/classes/ImageVolume.js +1 -1
  10. package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
  11. package/dist/cjs/types/IStackViewport.d.ts +5 -4
  12. package/dist/cjs/types/IVolumeViewport.d.ts +5 -2
  13. package/dist/cjs/types/ViewportProperties.d.ts +2 -0
  14. package/dist/cjs/types/VolumeViewportProperties.d.ts +1 -2
  15. package/dist/cjs/utilities/index.d.ts +2 -1
  16. package/dist/cjs/utilities/index.js +3 -1
  17. package/dist/cjs/utilities/index.js.map +1 -1
  18. package/dist/cjs/utilities/transferFunctionUtils.d.ts +3 -0
  19. package/dist/cjs/utilities/transferFunctionUtils.js +22 -0
  20. package/dist/cjs/utilities/transferFunctionUtils.js.map +1 -0
  21. package/dist/esm/RenderingEngine/BaseVolumeViewport.d.ts +10 -4
  22. package/dist/esm/RenderingEngine/BaseVolumeViewport.js +112 -16
  23. package/dist/esm/RenderingEngine/BaseVolumeViewport.js.map +1 -1
  24. package/dist/esm/RenderingEngine/StackViewport.d.ts +12 -3
  25. package/dist/esm/RenderingEngine/StackViewport.js +116 -8
  26. package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
  27. package/dist/esm/RenderingEngine/VolumeViewport.js +10 -1
  28. package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
  29. package/dist/esm/cache/classes/ImageVolume.js +1 -1
  30. package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
  31. package/dist/esm/types/IStackViewport.d.ts +5 -4
  32. package/dist/esm/types/IVolumeViewport.d.ts +5 -2
  33. package/dist/esm/types/ViewportProperties.d.ts +2 -0
  34. package/dist/esm/types/VolumeViewportProperties.d.ts +1 -2
  35. package/dist/esm/utilities/index.d.ts +2 -1
  36. package/dist/esm/utilities/index.js +2 -1
  37. package/dist/esm/utilities/index.js.map +1 -1
  38. package/dist/esm/utilities/transferFunctionUtils.d.ts +3 -0
  39. package/dist/esm/utilities/transferFunctionUtils.js +18 -0
  40. package/dist/esm/utilities/transferFunctionUtils.js.map +1 -0
  41. package/dist/umd/index.js +1 -1
  42. package/dist/umd/index.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/RenderingEngine/BaseVolumeViewport.ts +182 -19
  45. package/src/RenderingEngine/StackViewport.ts +204 -22
  46. package/src/RenderingEngine/VolumeViewport.ts +22 -1
  47. package/src/cache/classes/ImageVolume.ts +1 -1
  48. package/src/types/IStackViewport.ts +31 -8
  49. package/src/types/IVolumeViewport.ts +27 -5
  50. package/src/types/ViewportProperties.ts +3 -0
  51. package/src/types/VolumeViewportProperties.ts +2 -3
  52. package/src/utilities/index.ts +2 -0
  53. 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
- private inverted;
11
- private VOILUTFunction;
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
- setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, }?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void;
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
- getProperties: () => VolumeViewportProperties;
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.inverted = false;
60
- this.getProperties = () => {
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
- const VOILUTFunction = this.VOILUTFunction;
78
- return { voiRange, VOILUTFunction, invert: this.inverted };
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(invert, volumeId, suppressEvents) {
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
- this.inverted = invert;
283
- const { voiRange } = this.getProperties();
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: this.VOILUTFunction,
290
- invert: this.inverted,
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
- if (this.VOILUTFunction === enums_1.VOILUTFunctionType.SAMPLED_SIGMOID) {
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: this.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
- setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, } = {}, volumeId, suppressEvents = false) {
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 && this.inverted !== invert) {
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
- this.inverted = false;
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, CPUFallbackColormapData, IStackViewport, ColormapRegistration } from '../types';
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
- setProperties({ voiRange, VOILUTFunction, invert, interpolationType, rotation, }?: StackViewportProperties, suppressEvents?: boolean): void;
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
- setProperties({ voiRange, VOILUTFunction, invert, interpolationType, rotation, } = {}, suppressEvents = false) {
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
- const voiRange = this._getVOIRangeForCurrentImage();
1481
- cfun.applyColorMap(colormap);
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(colormap);
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() {