@cornerstonejs/core 0.12.0 → 0.13.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.
- package/dist/cjs/RenderingEngine/RenderingEngine.js +18 -12
- package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.d.ts +2 -1
- package/dist/cjs/RenderingEngine/StackViewport.js +167 -68
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/Viewport.d.ts +1 -0
- package/dist/cjs/RenderingEngine/Viewport.js +13 -4
- package/dist/cjs/RenderingEngine/Viewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/VolumeViewport.js +16 -2
- package/dist/cjs/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/drawImageSync.js +0 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/drawImageSync.js.map +1 -1
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +7 -0
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js +19 -0
- package/dist/cjs/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js.map +1 -0
- package/dist/cjs/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/cjs/RenderingEngine/vtkClasses/vtkOffscreenMultiRenderWindow.js +1 -2
- package/dist/cjs/RenderingEngine/vtkClasses/vtkOffscreenMultiRenderWindow.js.map +1 -1
- package/dist/cjs/cache/classes/ImageVolume.d.ts +1 -0
- package/dist/cjs/cache/classes/ImageVolume.js.map +1 -1
- package/dist/cjs/enums/BlendModes.d.ts +4 -4
- package/dist/cjs/enums/BlendModes.js +4 -4
- package/dist/cjs/enums/BlendModes.js.map +1 -1
- package/dist/cjs/types/CPUFallbackViewport.d.ts +2 -0
- package/dist/cjs/types/CPUIImageData.d.ts +1 -0
- package/dist/cjs/types/IActor.d.ts +3 -1
- package/dist/cjs/types/ICamera.d.ts +1 -0
- package/dist/cjs/types/IImageData.d.ts +1 -0
- package/dist/cjs/types/IImageVolume.d.ts +1 -0
- package/dist/cjs/types/StackViewportProperties.d.ts +1 -0
- 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/isImageActor.d.ts +4 -0
- package/dist/cjs/utilities/isImageActor.js +13 -0
- package/dist/cjs/utilities/isImageActor.js.map +1 -0
- package/dist/esm/RenderingEngine/RenderingEngine.js +18 -12
- package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.d.ts +2 -1
- package/dist/esm/RenderingEngine/StackViewport.js +171 -68
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/Viewport.d.ts +1 -0
- package/dist/esm/RenderingEngine/Viewport.js +13 -5
- package/dist/esm/RenderingEngine/Viewport.js.map +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport.js +16 -2
- package/dist/esm/RenderingEngine/VolumeViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js +0 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js.map +1 -1
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.d.ts +7 -0
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js +16 -0
- package/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/correctShift.js.map +1 -0
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.d.ts +1 -1
- package/dist/esm/RenderingEngine/vtkClasses/vtkOffscreenMultiRenderWindow.js +1 -2
- package/dist/esm/RenderingEngine/vtkClasses/vtkOffscreenMultiRenderWindow.js.map +1 -1
- package/dist/esm/cache/classes/ImageVolume.d.ts +1 -0
- package/dist/esm/cache/classes/ImageVolume.js.map +1 -1
- package/dist/esm/enums/BlendModes.d.ts +4 -4
- package/dist/esm/enums/BlendModes.js +4 -4
- package/dist/esm/enums/BlendModes.js.map +1 -1
- package/dist/esm/types/CPUFallbackViewport.d.ts +2 -0
- package/dist/esm/types/CPUIImageData.d.ts +1 -0
- package/dist/esm/types/IActor.d.ts +3 -1
- package/dist/esm/types/ICamera.d.ts +1 -0
- package/dist/esm/types/IImageData.d.ts +1 -0
- package/dist/esm/types/IImageVolume.d.ts +1 -0
- package/dist/esm/types/StackViewportProperties.d.ts +1 -0
- 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/isImageActor.d.ts +4 -0
- package/dist/esm/utilities/isImageActor.js +10 -0
- package/dist/esm/utilities/isImageActor.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -259,6 +259,10 @@ class RenderingEngine {
|
|
|
259
259
|
const canvasesDrivenByVtkJs = viewportsDrivenByVtkJs.map((vp) => vp.canvas);
|
|
260
260
|
const canvas = (0, getOrCreateCanvas_1.default)(viewportInputEntry.element);
|
|
261
261
|
canvasesDrivenByVtkJs.push(canvas);
|
|
262
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
263
|
+
const rect = canvas.getBoundingClientRect();
|
|
264
|
+
canvas.width = rect.width * devicePixelRatio;
|
|
265
|
+
canvas.height = rect.height * devicePixelRatio;
|
|
262
266
|
const { offScreenCanvasWidth, offScreenCanvasHeight } = this._resizeOffScreenCanvas(canvasesDrivenByVtkJs);
|
|
263
267
|
const xOffset = this._resize(viewportsDrivenByVtkJs, offScreenCanvasWidth, offScreenCanvasHeight);
|
|
264
268
|
const internalViewportEntry = Object.assign(Object.assign({}, viewportInputEntry), { canvas });
|
|
@@ -365,6 +369,12 @@ class RenderingEngine {
|
|
|
365
369
|
setVtkjsDrivenViewports(viewportInputEntries) {
|
|
366
370
|
if (viewportInputEntries.length) {
|
|
367
371
|
const vtkDrivenCanvases = viewportInputEntries.map((vp) => (0, getOrCreateCanvas_1.default)(vp.element));
|
|
372
|
+
vtkDrivenCanvases.forEach((canvas) => {
|
|
373
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
374
|
+
const rect = canvas.getBoundingClientRect();
|
|
375
|
+
canvas.width = rect.width * devicePixelRatio;
|
|
376
|
+
canvas.height = rect.height * devicePixelRatio;
|
|
377
|
+
});
|
|
368
378
|
const { offScreenCanvasWidth, offScreenCanvasHeight } = this._resizeOffScreenCanvas(vtkDrivenCanvases);
|
|
369
379
|
let xOffset = 0;
|
|
370
380
|
for (let i = 0; i < viewportInputEntries.length; i++) {
|
|
@@ -376,16 +386,16 @@ class RenderingEngine {
|
|
|
376
386
|
offScreenCanvasHeight,
|
|
377
387
|
xOffset,
|
|
378
388
|
});
|
|
379
|
-
xOffset += canvas.
|
|
389
|
+
xOffset += canvas.width;
|
|
380
390
|
}
|
|
381
391
|
}
|
|
382
392
|
}
|
|
383
393
|
_resizeOffScreenCanvas(canvasesDrivenByVtkJs) {
|
|
384
394
|
const { offScreenCanvasContainer, offscreenMultiRenderWindow } = this;
|
|
385
|
-
const offScreenCanvasHeight = Math.max(...canvasesDrivenByVtkJs.map((canvas) => canvas.
|
|
395
|
+
const offScreenCanvasHeight = Math.max(...canvasesDrivenByVtkJs.map((canvas) => canvas.height));
|
|
386
396
|
let offScreenCanvasWidth = 0;
|
|
387
397
|
canvasesDrivenByVtkJs.forEach((canvas) => {
|
|
388
|
-
offScreenCanvasWidth += canvas.
|
|
398
|
+
offScreenCanvasWidth += canvas.width;
|
|
389
399
|
});
|
|
390
400
|
offScreenCanvasContainer.width = offScreenCanvasWidth;
|
|
391
401
|
offScreenCanvasContainer.height = offScreenCanvasHeight;
|
|
@@ -397,7 +407,7 @@ class RenderingEngine {
|
|
|
397
407
|
for (let i = 0; i < viewportsDrivenByVtkJs.length; i++) {
|
|
398
408
|
const viewport = viewportsDrivenByVtkJs[i];
|
|
399
409
|
const { sxStartDisplayCoords, syStartDisplayCoords, sxEndDisplayCoords, syEndDisplayCoords, sx, sy, sWidth, sHeight, } = this._getViewportCoordsOnOffScreenCanvas(viewport, offScreenCanvasWidth, offScreenCanvasHeight, _xOffset);
|
|
400
|
-
_xOffset += viewport.
|
|
410
|
+
_xOffset += viewport.canvas.width;
|
|
401
411
|
viewport.sx = sx;
|
|
402
412
|
viewport.sy = sy;
|
|
403
413
|
viewport.sWidth = sWidth;
|
|
@@ -414,17 +424,13 @@ class RenderingEngine {
|
|
|
414
424
|
}
|
|
415
425
|
_getViewportCoordsOnOffScreenCanvas(viewport, offScreenCanvasWidth, offScreenCanvasHeight, _xOffset) {
|
|
416
426
|
const { canvas } = viewport;
|
|
417
|
-
const {
|
|
418
|
-
if (canvas.width !== clientWidth || canvas.height !== clientHeight) {
|
|
419
|
-
canvas.width = clientWidth;
|
|
420
|
-
canvas.height = clientHeight;
|
|
421
|
-
}
|
|
427
|
+
const { width, height } = canvas;
|
|
422
428
|
const sx = _xOffset;
|
|
423
429
|
const sy = 0;
|
|
424
|
-
const sWidth =
|
|
425
|
-
const sHeight =
|
|
430
|
+
const sWidth = width;
|
|
431
|
+
const sHeight = height;
|
|
426
432
|
const sxStartDisplayCoords = sx / offScreenCanvasWidth;
|
|
427
|
-
const syStartDisplayCoords = sy + (offScreenCanvasHeight -
|
|
433
|
+
const syStartDisplayCoords = sy + (offScreenCanvasHeight - height) / offScreenCanvasHeight;
|
|
428
434
|
const sWidthDisplayCoords = sWidth / offScreenCanvasWidth;
|
|
429
435
|
const sHeightDisplayCoords = sHeight / offScreenCanvasHeight;
|
|
430
436
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingEngine.js","sourceRoot":"","sources":["../../../src/RenderingEngine/RenderingEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RenderingEngine.js","sourceRoot":"","sources":["../../../src/RenderingEngine/RenderingEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
37
37
|
private createActorMapper;
|
|
38
38
|
private buildMetadata;
|
|
39
39
|
private calibrateIfNecessary;
|
|
40
|
-
setProperties({ voiRange, invert, interpolationType, rotation, }?: StackViewportProperties): void;
|
|
40
|
+
setProperties({ voiRange, invert, interpolationType, rotation, }?: StackViewportProperties, suppressEvents?: boolean): void;
|
|
41
41
|
getProperties: () => StackViewportProperties;
|
|
42
42
|
resetProperties(): void;
|
|
43
43
|
getCamera(): ICamera;
|
|
@@ -116,5 +116,6 @@ declare class StackViewport extends Viewport implements IStackViewport {
|
|
|
116
116
|
private setColormapCPU;
|
|
117
117
|
private setColormapGPU;
|
|
118
118
|
private unsetColormapGPU;
|
|
119
|
+
private _getImagePlaneModule;
|
|
119
120
|
}
|
|
120
121
|
export default StackViewport;
|
|
@@ -33,11 +33,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
34
|
const DataArray_1 = __importDefault(require("@kitware/vtk.js/Common/Core/DataArray"));
|
|
35
35
|
const ImageData_1 = __importDefault(require("@kitware/vtk.js/Common/DataModel/ImageData"));
|
|
36
|
-
const Volume_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/Volume"));
|
|
37
|
-
const VolumeMapper_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/VolumeMapper"));
|
|
38
36
|
const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep"));
|
|
39
37
|
const Camera_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/Camera"));
|
|
40
38
|
const gl_matrix_1 = require("gl-matrix");
|
|
39
|
+
const ImageMapper_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/ImageMapper"));
|
|
40
|
+
const ImageSlice_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/ImageSlice"));
|
|
41
|
+
const ColorTransferFunction_1 = __importDefault(require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"));
|
|
41
42
|
const metaData = __importStar(require("../metaData"));
|
|
42
43
|
const Viewport_1 = __importDefault(require("./Viewport"));
|
|
43
44
|
const eventTarget_1 = __importDefault(require("../eventTarget"));
|
|
@@ -59,6 +60,7 @@ const init_1 = require("../init");
|
|
|
59
60
|
const RequestType_1 = __importDefault(require("../enums/RequestType"));
|
|
60
61
|
const getScalingParameters_1 = __importDefault(require("../utilities/getScalingParameters"));
|
|
61
62
|
const cache_1 = __importDefault(require("../cache"));
|
|
63
|
+
const correctShift_1 = __importDefault(require("./helpers/cpuFallback/rendering/correctShift"));
|
|
62
64
|
const EPSILON = 1;
|
|
63
65
|
class StackViewport extends Viewport_1.default {
|
|
64
66
|
constructor(props) {
|
|
@@ -91,18 +93,10 @@ class StackViewport extends Viewport_1.default {
|
|
|
91
93
|
return imagePlaneModule.frameOfReferenceUID;
|
|
92
94
|
};
|
|
93
95
|
this.createActorMapper = (imageData) => {
|
|
94
|
-
const mapper =
|
|
96
|
+
const mapper = ImageMapper_1.default.newInstance();
|
|
95
97
|
mapper.setInputData(imageData);
|
|
96
|
-
const actor =
|
|
98
|
+
const actor = ImageSlice_1.default.newInstance();
|
|
97
99
|
actor.setMapper(mapper);
|
|
98
|
-
const [xSize, ySize, zSize] = imageData.getDimensions();
|
|
99
|
-
const [xSpacing, ySpacing, zSpacing] = imageData.getSpacing();
|
|
100
|
-
const vSize = gl_matrix_1.vec3.length([
|
|
101
|
-
xSize * xSpacing,
|
|
102
|
-
ySize * ySpacing,
|
|
103
|
-
zSize * zSpacing,
|
|
104
|
-
]);
|
|
105
|
-
mapper.setSampleDistance(vSize / mapper.getMaximumSamplesPerRay());
|
|
106
100
|
if (imageData.getPointData().getNumberOfComponents() > 1) {
|
|
107
101
|
actor.getProperty().setIndependentComponents(false);
|
|
108
102
|
}
|
|
@@ -155,17 +149,34 @@ class StackViewport extends Viewport_1.default {
|
|
|
155
149
|
};
|
|
156
150
|
this.canvasToWorldGPU = (canvasPos) => {
|
|
157
151
|
const renderer = this.getRenderer();
|
|
152
|
+
const vtkCamera = this.getVtkActiveCamera();
|
|
153
|
+
const crange = vtkCamera.getClippingRange();
|
|
154
|
+
const distance = vtkCamera.getDistance();
|
|
155
|
+
vtkCamera.setClippingRange(distance, distance + 0.1);
|
|
158
156
|
const offscreenMultiRenderWindow = this.getRenderingEngine().offscreenMultiRenderWindow;
|
|
159
157
|
const openGLRenderWindow = offscreenMultiRenderWindow.getOpenGLRenderWindow();
|
|
160
158
|
const size = openGLRenderWindow.getSize();
|
|
161
|
-
const
|
|
159
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
160
|
+
const canvasPosWithDPR = [
|
|
161
|
+
canvasPos[0] * devicePixelRatio,
|
|
162
|
+
canvasPos[1] * devicePixelRatio,
|
|
163
|
+
];
|
|
164
|
+
const displayCoord = [
|
|
165
|
+
canvasPosWithDPR[0] + this.sx,
|
|
166
|
+
canvasPosWithDPR[1] + this.sy,
|
|
167
|
+
];
|
|
162
168
|
displayCoord[1] = size[1] - displayCoord[1];
|
|
163
169
|
let worldCoord = openGLRenderWindow.displayToWorld(displayCoord[0], displayCoord[1], 0, renderer);
|
|
170
|
+
vtkCamera.setClippingRange(crange[0], crange[1]);
|
|
164
171
|
worldCoord = this.applyFlipTx(worldCoord);
|
|
165
172
|
return worldCoord;
|
|
166
173
|
};
|
|
167
174
|
this.worldToCanvasGPU = (worldPos) => {
|
|
168
175
|
const renderer = this.getRenderer();
|
|
176
|
+
const vtkCamera = this.getVtkActiveCamera();
|
|
177
|
+
const crange = vtkCamera.getClippingRange();
|
|
178
|
+
const distance = vtkCamera.getDistance();
|
|
179
|
+
vtkCamera.setClippingRange(distance, distance + 0.1);
|
|
169
180
|
const offscreenMultiRenderWindow = this.getRenderingEngine().offscreenMultiRenderWindow;
|
|
170
181
|
const openGLRenderWindow = offscreenMultiRenderWindow.getOpenGLRenderWindow();
|
|
171
182
|
const size = openGLRenderWindow.getSize();
|
|
@@ -175,7 +186,13 @@ class StackViewport extends Viewport_1.default {
|
|
|
175
186
|
displayCoord[0] - this.sx,
|
|
176
187
|
displayCoord[1] - this.sy,
|
|
177
188
|
];
|
|
178
|
-
|
|
189
|
+
vtkCamera.setClippingRange(crange[0], crange[1]);
|
|
190
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
191
|
+
const canvasCoordWithDPR = [
|
|
192
|
+
canvasCoord[0] / devicePixelRatio,
|
|
193
|
+
canvasCoord[1] / devicePixelRatio,
|
|
194
|
+
];
|
|
195
|
+
return canvasCoordWithDPR;
|
|
179
196
|
};
|
|
180
197
|
this.getCurrentImageIdIndex = () => {
|
|
181
198
|
return this.currentImageIdIndex;
|
|
@@ -272,7 +289,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
272
289
|
return;
|
|
273
290
|
}
|
|
274
291
|
const { actor } = defaultActor;
|
|
275
|
-
if (!
|
|
292
|
+
if (!(0, utilities_1.isImageActor)(actor)) {
|
|
276
293
|
return;
|
|
277
294
|
}
|
|
278
295
|
const vtkImageData = actor.getMapper().getInputData();
|
|
@@ -285,6 +302,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
285
302
|
imageData: actor.getMapper().getInputData(),
|
|
286
303
|
metadata: { Modality: this.modality },
|
|
287
304
|
scaling: this.scaling,
|
|
305
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
288
306
|
};
|
|
289
307
|
}
|
|
290
308
|
getImageDataCPU() {
|
|
@@ -316,6 +334,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
316
334
|
},
|
|
317
335
|
},
|
|
318
336
|
scalarData: this.cpuImagePixelData,
|
|
337
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
319
338
|
};
|
|
320
339
|
}
|
|
321
340
|
buildMetadata(imageId) {
|
|
@@ -338,6 +357,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
338
357
|
}
|
|
339
358
|
this.modality = modality;
|
|
340
359
|
let imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
360
|
+
imagePlaneModule = this._getImagePlaneModule(imagePlaneModule);
|
|
341
361
|
if (!this.useCPURendering) {
|
|
342
362
|
imagePlaneModule = this.calibrateIfNecessary(imageId, imagePlaneModule);
|
|
343
363
|
}
|
|
@@ -399,9 +419,9 @@ class StackViewport extends Viewport_1.default {
|
|
|
399
419
|
};
|
|
400
420
|
return imagePlaneModule;
|
|
401
421
|
}
|
|
402
|
-
setProperties({ voiRange, invert, interpolationType, rotation, } = {}) {
|
|
422
|
+
setProperties({ voiRange, invert, interpolationType, rotation, } = {}, suppressEvents = false) {
|
|
403
423
|
if (typeof voiRange !== 'undefined' || !this.voiApplied) {
|
|
404
|
-
this.setVOI(voiRange);
|
|
424
|
+
this.setVOI(voiRange, suppressEvents);
|
|
405
425
|
}
|
|
406
426
|
if (typeof invert !== 'undefined') {
|
|
407
427
|
this.setInvertColor(invert);
|
|
@@ -450,12 +470,13 @@ class StackViewport extends Viewport_1.default {
|
|
|
450
470
|
});
|
|
451
471
|
}
|
|
452
472
|
_setPropertiesFromCache() {
|
|
473
|
+
const suppressEvents = true;
|
|
453
474
|
this.setProperties({
|
|
454
475
|
voiRange: this.voiRange,
|
|
455
476
|
rotation: this.rotation,
|
|
456
477
|
interpolationType: this.interpolationType,
|
|
457
478
|
invert: this.invert,
|
|
458
|
-
});
|
|
479
|
+
}, suppressEvents);
|
|
459
480
|
}
|
|
460
481
|
getCameraCPU() {
|
|
461
482
|
const { metadata, viewport } = this._cpuFallbackEnabledElement;
|
|
@@ -466,43 +487,65 @@ class StackViewport extends Viewport_1.default {
|
|
|
466
487
|
const rotationMatrix = gl_matrix_1.mat4.fromRotation(gl_matrix_1.mat4.create(), (this.rotation * Math.PI) / 180, viewPlaneNormal);
|
|
467
488
|
viewUp = gl_matrix_1.vec3.transformMat4(gl_matrix_1.vec3.create(), viewUp, rotationMatrix);
|
|
468
489
|
}
|
|
490
|
+
const canvasCenter = [
|
|
491
|
+
this.element.clientWidth / 2,
|
|
492
|
+
this.element.clientHeight / 2,
|
|
493
|
+
];
|
|
494
|
+
const canvasCenterWorld = this.canvasToWorld(canvasCenter);
|
|
495
|
+
const topLeftWorld = this.canvasToWorld([0, 0]);
|
|
496
|
+
const bottomLeftWorld = this.canvasToWorld([0, this.element.clientHeight]);
|
|
497
|
+
const parallelScale = gl_matrix_1.vec3.distance(topLeftWorld, bottomLeftWorld) / 2;
|
|
469
498
|
return {
|
|
470
499
|
parallelProjection: true,
|
|
471
|
-
focalPoint:
|
|
500
|
+
focalPoint: canvasCenterWorld,
|
|
472
501
|
position: [0, 0, 0],
|
|
473
|
-
parallelScale
|
|
502
|
+
parallelScale,
|
|
503
|
+
scale: viewport.scale,
|
|
474
504
|
viewPlaneNormal: [
|
|
475
505
|
viewPlaneNormal[0],
|
|
476
506
|
viewPlaneNormal[1],
|
|
477
507
|
viewPlaneNormal[2],
|
|
478
508
|
],
|
|
479
509
|
viewUp: [viewUp[0], viewUp[1], viewUp[2]],
|
|
510
|
+
flipHorizontal: this.flipHorizontal,
|
|
511
|
+
flipVertical: this.flipVertical,
|
|
480
512
|
};
|
|
481
513
|
}
|
|
482
514
|
setCameraCPU(cameraInterface) {
|
|
483
|
-
const { viewport } = this._cpuFallbackEnabledElement;
|
|
515
|
+
const { viewport, image } = this._cpuFallbackEnabledElement;
|
|
484
516
|
const previousCamera = this.getCameraCPU();
|
|
485
|
-
const { focalPoint, viewUp, parallelScale, flipHorizontal, flipVertical } = cameraInterface;
|
|
517
|
+
const { focalPoint, viewUp, parallelScale, scale, flipHorizontal, flipVertical, } = cameraInterface;
|
|
518
|
+
const { clientHeight } = this.element;
|
|
486
519
|
if (focalPoint) {
|
|
487
|
-
const focalPointCanvas = this.worldToCanvasCPU(
|
|
488
|
-
const
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
520
|
+
const focalPointCanvas = this.worldToCanvasCPU(focalPoint);
|
|
521
|
+
const focalPointPixel = (0, canvasToPixel_1.default)(this._cpuFallbackEnabledElement, focalPointCanvas);
|
|
522
|
+
const prevFocalPointCanvas = this.worldToCanvasCPU(previousCamera.focalPoint);
|
|
523
|
+
const prevFocalPointPixel = (0, canvasToPixel_1.default)(this._cpuFallbackEnabledElement, prevFocalPointCanvas);
|
|
524
|
+
const deltaPixel = gl_matrix_1.vec2.create();
|
|
525
|
+
gl_matrix_1.vec2.subtract(deltaPixel, gl_matrix_1.vec2.fromValues(focalPointPixel[0], focalPointPixel[1]), gl_matrix_1.vec2.fromValues(prevFocalPointPixel[0], prevFocalPointPixel[1]));
|
|
526
|
+
const shift = (0, correctShift_1.default)({ x: deltaPixel[0], y: deltaPixel[1] }, viewport);
|
|
527
|
+
viewport.translation.x -= shift.x;
|
|
528
|
+
viewport.translation.y -= shift.y;
|
|
529
|
+
}
|
|
530
|
+
if (parallelScale) {
|
|
531
|
+
const { rowPixelSpacing } = image;
|
|
532
|
+
const scale = (clientHeight * rowPixelSpacing * 0.5) / parallelScale;
|
|
533
|
+
viewport.scale = scale;
|
|
534
|
+
viewport.parallelScale = parallelScale;
|
|
535
|
+
}
|
|
536
|
+
if (scale) {
|
|
537
|
+
const { rowPixelSpacing } = image;
|
|
538
|
+
viewport.scale = scale;
|
|
539
|
+
viewport.parallelScale = (clientHeight * rowPixelSpacing * 0.5) / scale;
|
|
540
|
+
}
|
|
541
|
+
if (flipHorizontal !== undefined || flipVertical !== undefined) {
|
|
499
542
|
this.setFlipCPU({ flipHorizontal, flipVertical });
|
|
500
543
|
}
|
|
544
|
+
this._cpuFallbackEnabledElement.transform = (0, calculateTransform_1.default)(this._cpuFallbackEnabledElement);
|
|
501
545
|
const updatedCamera = Object.assign(Object.assign({}, previousCamera), { focalPoint,
|
|
502
546
|
viewUp,
|
|
503
|
-
parallelScale,
|
|
504
547
|
flipHorizontal,
|
|
505
|
-
flipVertical });
|
|
548
|
+
flipVertical, parallelScale: viewport.parallelScale, scale: viewport.scale });
|
|
506
549
|
const eventDetail = {
|
|
507
550
|
previousCamera,
|
|
508
551
|
camera: updatedCamera,
|
|
@@ -520,12 +563,12 @@ class StackViewport extends Viewport_1.default {
|
|
|
520
563
|
viewport.vflip = flipVertical;
|
|
521
564
|
this.flipVertical = viewport.vflip;
|
|
522
565
|
}
|
|
523
|
-
setVOI(voiRange) {
|
|
566
|
+
setVOI(voiRange, suppressEvents) {
|
|
524
567
|
if (this.useCPURendering) {
|
|
525
|
-
this.setVOICPU(voiRange);
|
|
568
|
+
this.setVOICPU(voiRange, suppressEvents);
|
|
526
569
|
return;
|
|
527
570
|
}
|
|
528
|
-
this.setVOIGPU(voiRange);
|
|
571
|
+
this.setVOIGPU(voiRange, suppressEvents);
|
|
529
572
|
}
|
|
530
573
|
setRotation(rotationCache, rotation) {
|
|
531
574
|
const previousCamera = this.getCamera();
|
|
@@ -578,7 +621,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
578
621
|
return;
|
|
579
622
|
}
|
|
580
623
|
const { actor } = defaultActor;
|
|
581
|
-
if (!
|
|
624
|
+
if (!(0, utilities_1.isImageActor)(actor)) {
|
|
582
625
|
return;
|
|
583
626
|
}
|
|
584
627
|
const volumeProperty = actor.getProperty();
|
|
@@ -609,17 +652,27 @@ class StackViewport extends Viewport_1.default {
|
|
|
609
652
|
return;
|
|
610
653
|
}
|
|
611
654
|
const { actor } = defaultActor;
|
|
612
|
-
if (!
|
|
655
|
+
if (!(0, utilities_1.isImageActor)(actor)) {
|
|
613
656
|
return;
|
|
614
657
|
}
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
(
|
|
658
|
+
if (actor.isA('vtkVolume')) {
|
|
659
|
+
const volumeActor = actor;
|
|
660
|
+
const tfunc = volumeActor.getProperty().getRGBTransferFunction(0);
|
|
661
|
+
if ((!this.invert && invert) || (this.invert && !invert)) {
|
|
662
|
+
(0, utilities_1.invertRgbTransferFunction)(tfunc);
|
|
663
|
+
}
|
|
664
|
+
this.invert = invert;
|
|
665
|
+
}
|
|
666
|
+
else if (actor.isA('vtkImageSlice')) {
|
|
667
|
+
const imageSliceActor = actor;
|
|
668
|
+
const tfunc = imageSliceActor.getProperty().getRGBTransferFunction(0);
|
|
669
|
+
if ((!this.invert && invert) || (this.invert && !invert)) {
|
|
670
|
+
(0, utilities_1.invertRgbTransferFunction)(tfunc);
|
|
671
|
+
}
|
|
672
|
+
this.invert = invert;
|
|
619
673
|
}
|
|
620
|
-
this.invert = invert;
|
|
621
674
|
}
|
|
622
|
-
setVOICPU(voiRange) {
|
|
675
|
+
setVOICPU(voiRange, suppressEvents) {
|
|
623
676
|
const { viewport, image } = this._cpuFallbackEnabledElement;
|
|
624
677
|
if (!viewport || !image) {
|
|
625
678
|
return;
|
|
@@ -653,36 +706,38 @@ class StackViewport extends Viewport_1.default {
|
|
|
653
706
|
viewportId: this.id,
|
|
654
707
|
range: voiRange,
|
|
655
708
|
};
|
|
656
|
-
(
|
|
709
|
+
if (!suppressEvents) {
|
|
710
|
+
(0, utilities_1.triggerEvent)(this.element, Events_1.default.VOI_MODIFIED, eventDetail);
|
|
711
|
+
}
|
|
657
712
|
}
|
|
658
|
-
setVOIGPU(voiRange) {
|
|
713
|
+
setVOIGPU(voiRange, suppressEvents) {
|
|
659
714
|
const defaultActor = this.getDefaultActor();
|
|
660
715
|
if (!defaultActor) {
|
|
661
716
|
return;
|
|
662
717
|
}
|
|
663
718
|
const { actor } = defaultActor;
|
|
664
|
-
if (!
|
|
719
|
+
if (!(0, utilities_1.isImageActor)(actor)) {
|
|
665
720
|
return;
|
|
666
721
|
}
|
|
667
|
-
const
|
|
668
|
-
|
|
669
|
-
if (typeof
|
|
670
|
-
const imageData =
|
|
722
|
+
const imageActor = actor;
|
|
723
|
+
let voiRangeToUse = voiRange;
|
|
724
|
+
if (typeof voiRangeToUse === 'undefined') {
|
|
725
|
+
const imageData = imageActor.getMapper().getInputData();
|
|
671
726
|
const range = imageData.getPointData().getScalars().getRange();
|
|
672
|
-
|
|
673
|
-
voiRange = { lower: range[0], upper: range[1] };
|
|
674
|
-
}
|
|
675
|
-
else {
|
|
676
|
-
const { lower, upper } = voiRange;
|
|
677
|
-
tfunc.setRange(lower, upper);
|
|
727
|
+
voiRangeToUse = { lower: range[0], upper: range[1] };
|
|
678
728
|
}
|
|
729
|
+
const { windowWidth, windowCenter } = utilities_1.windowLevel.toWindowLevel(voiRangeToUse.lower, voiRangeToUse.upper);
|
|
730
|
+
imageActor.getProperty().setColorWindow(windowWidth);
|
|
731
|
+
imageActor.getProperty().setColorLevel(windowCenter);
|
|
679
732
|
this.voiApplied = true;
|
|
680
|
-
this.voiRange =
|
|
733
|
+
this.voiRange = voiRangeToUse;
|
|
681
734
|
const eventDetail = {
|
|
682
735
|
viewportId: this.id,
|
|
683
|
-
range:
|
|
736
|
+
range: voiRangeToUse,
|
|
684
737
|
};
|
|
685
|
-
(
|
|
738
|
+
if (!suppressEvents) {
|
|
739
|
+
(0, utilities_1.triggerEvent)(this.element, Events_1.default.VOI_MODIFIED, eventDetail);
|
|
740
|
+
}
|
|
686
741
|
}
|
|
687
742
|
_addScalingToViewport(imageIdScalingFactor) {
|
|
688
743
|
if (!this.scaling.PET) {
|
|
@@ -816,8 +871,8 @@ class StackViewport extends Viewport_1.default {
|
|
|
816
871
|
if (!imageData) {
|
|
817
872
|
return false;
|
|
818
873
|
}
|
|
819
|
-
const [xSpacing, ySpacing
|
|
820
|
-
const [xVoxels, yVoxels
|
|
874
|
+
const [xSpacing, ySpacing] = imageData.getSpacing();
|
|
875
|
+
const [xVoxels, yVoxels] = imageData.getDimensions();
|
|
821
876
|
const imagePlaneModule = metaData.get('imagePlaneModule', image.imageId);
|
|
822
877
|
const direction = imageData.getDirection();
|
|
823
878
|
const rowCosines = direction.slice(0, 3);
|
|
@@ -1020,9 +1075,6 @@ class StackViewport extends Viewport_1.default {
|
|
|
1020
1075
|
const previousCameraProps = (0, lodash_clonedeep_1.default)(this.getCamera());
|
|
1021
1076
|
if (sameImageData && !this.stackInvalidated) {
|
|
1022
1077
|
this._updateVTKImageDataFromCornerstoneImage(image);
|
|
1023
|
-
const direction = this._imageData.getDirection();
|
|
1024
|
-
const { viewPlaneNormal, viewUp } = this._getCameraOrientation(direction);
|
|
1025
|
-
this.setCameraNoEvent({ viewUp, viewPlaneNormal });
|
|
1026
1078
|
const cameraProps = this.getCamera();
|
|
1027
1079
|
this.panCache[0] = this.cameraPosOnRender[0] - cameraProps.position[0];
|
|
1028
1080
|
this.panCache[1] = this.cameraPosOnRender[1] - cameraProps.position[1];
|
|
@@ -1066,6 +1118,18 @@ class StackViewport extends Viewport_1.default {
|
|
|
1066
1118
|
}
|
|
1067
1119
|
this.initialVOIRange = voiRange;
|
|
1068
1120
|
this.setProperties({ voiRange });
|
|
1121
|
+
const cfun = ColorTransferFunction_1.default.newInstance();
|
|
1122
|
+
let lower = 0;
|
|
1123
|
+
let upper = 1024;
|
|
1124
|
+
if (voiRange &&
|
|
1125
|
+
voiRange.lower !== undefined &&
|
|
1126
|
+
voiRange.upper !== undefined) {
|
|
1127
|
+
lower = voiRange.lower;
|
|
1128
|
+
upper = voiRange.upper;
|
|
1129
|
+
}
|
|
1130
|
+
cfun.addRGBPoint(lower, 0.0, 0.0, 0.0);
|
|
1131
|
+
cfun.addRGBPoint(upper, 1.0, 1.0, 1.0);
|
|
1132
|
+
actor.getProperty().setRGBTransferFunction(0, cfun);
|
|
1069
1133
|
const { position } = this.getCamera();
|
|
1070
1134
|
this.cameraPosOnRender = position;
|
|
1071
1135
|
this.stackInvalidated = false;
|
|
@@ -1079,6 +1143,7 @@ class StackViewport extends Viewport_1.default {
|
|
|
1079
1143
|
throw new Error(`ImageIdIndex provided ${imageIdIndex} is invalid, the stack only has ${this.imageIds.length} elements`);
|
|
1080
1144
|
}
|
|
1081
1145
|
this.currentImageIdIndex = imageIdIndex;
|
|
1146
|
+
this.hasPixelSpacing = true;
|
|
1082
1147
|
const imageId = yield this._loadAndDisplayImage(this.imageIds[imageIdIndex], imageIdIndex);
|
|
1083
1148
|
return imageId;
|
|
1084
1149
|
});
|
|
@@ -1100,6 +1165,14 @@ class StackViewport extends Viewport_1.default {
|
|
|
1100
1165
|
return;
|
|
1101
1166
|
}
|
|
1102
1167
|
(0, resetCamera_1.default)(this._cpuFallbackEnabledElement, resetPan, resetZoom);
|
|
1168
|
+
const { scale } = this._cpuFallbackEnabledElement.viewport;
|
|
1169
|
+
const { clientWidth, clientHeight } = this.element;
|
|
1170
|
+
const center = [clientWidth / 2, clientHeight / 2];
|
|
1171
|
+
const centerWorld = this.canvasToWorldCPU(center);
|
|
1172
|
+
this.setCameraCPU({
|
|
1173
|
+
focalPoint: centerWorld,
|
|
1174
|
+
scale,
|
|
1175
|
+
});
|
|
1103
1176
|
}
|
|
1104
1177
|
resetCameraGPU(resetPan, resetZoom) {
|
|
1105
1178
|
return super.resetCamera(resetPan, resetZoom);
|
|
@@ -1291,6 +1364,32 @@ class StackViewport extends Viewport_1.default {
|
|
|
1291
1364
|
unsetColormapGPU() {
|
|
1292
1365
|
throw new Error('unsetColormapGPU not implemented.');
|
|
1293
1366
|
}
|
|
1367
|
+
_getImagePlaneModule(imagePlaneModule) {
|
|
1368
|
+
const newImagePlaneModule = Object.assign({}, imagePlaneModule);
|
|
1369
|
+
if (!newImagePlaneModule.columnPixelSpacing) {
|
|
1370
|
+
newImagePlaneModule.columnPixelSpacing = 1;
|
|
1371
|
+
this.hasPixelSpacing = false;
|
|
1372
|
+
}
|
|
1373
|
+
if (!newImagePlaneModule.rowPixelSpacing) {
|
|
1374
|
+
newImagePlaneModule.rowPixelSpacing = 1;
|
|
1375
|
+
this.hasPixelSpacing = false;
|
|
1376
|
+
}
|
|
1377
|
+
if (!newImagePlaneModule.columnCosines) {
|
|
1378
|
+
newImagePlaneModule.columnCosines = [0, 1, 0];
|
|
1379
|
+
}
|
|
1380
|
+
if (!newImagePlaneModule.rowCosines) {
|
|
1381
|
+
newImagePlaneModule.rowCosines = [1, 0, 0];
|
|
1382
|
+
}
|
|
1383
|
+
if (!newImagePlaneModule.imagePositionPatient) {
|
|
1384
|
+
newImagePlaneModule.imagePositionPatient = [0, 0, 0];
|
|
1385
|
+
}
|
|
1386
|
+
if (!newImagePlaneModule.imageOrientationPatient) {
|
|
1387
|
+
newImagePlaneModule.imageOrientationPatient = new Float32Array([
|
|
1388
|
+
1, 0, 0, 0, 1, 0,
|
|
1389
|
+
]);
|
|
1390
|
+
}
|
|
1391
|
+
return newImagePlaneModule;
|
|
1392
|
+
}
|
|
1294
1393
|
}
|
|
1295
1394
|
exports.default = StackViewport;
|
|
1296
1395
|
//# sourceMappingURL=StackViewport.js.map
|