@cornerstonejs/core 0.13.0 → 0.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/RenderingEngine/RenderingEngine.js +21 -11
- package/dist/cjs/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/cjs/RenderingEngine/StackViewport.d.ts +1 -0
- package/dist/cjs/RenderingEngine/StackViewport.js +111 -44
- package/dist/cjs/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/cjs/RenderingEngine/Viewport.d.ts +1 -0
- package/dist/cjs/RenderingEngine/Viewport.js +12 -3
- 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/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/CPUIImageData.d.ts +1 -0
- package/dist/cjs/types/IActor.d.ts +3 -1
- package/dist/cjs/types/IImageData.d.ts +1 -0
- package/dist/cjs/types/IImageVolume.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 +21 -11
- package/dist/esm/RenderingEngine/RenderingEngine.js.map +1 -1
- package/dist/esm/RenderingEngine/StackViewport.d.ts +1 -0
- package/dist/esm/RenderingEngine/StackViewport.js +114 -45
- package/dist/esm/RenderingEngine/StackViewport.js.map +1 -1
- package/dist/esm/RenderingEngine/Viewport.d.ts +1 -0
- package/dist/esm/RenderingEngine/Viewport.js +12 -4
- 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/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/CPUIImageData.d.ts +1 -0
- package/dist/esm/types/IActor.d.ts +3 -1
- package/dist/esm/types/IImageData.d.ts +1 -0
- package/dist/esm/types/IImageVolume.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
|
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.getScalingParameters = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.transformWorldToIndex = exports.getVolumeViewportsContainingVolumeId = exports.getVolumeViewportsContainingSameVolumes = exports.indexWithinDimensions = exports.getVolumeActorCorners = exports.getTargetVolumeAndSpacingInNormalDir = exports.getSpacingInNormalDirection = exports.getClosestImageId = exports.windowLevel = exports.createUint8SharedArray = exports.createFloat32SharedArray = exports.isOpposite = exports.isEqual = exports.getRuntimeId = exports.getMinMax = exports.planar = exports.uuidv4 = exports.calibratedPixelSpacingMetadataProvider = exports.imageIdToURI = exports.triggerEvent = exports.scaleRgbTransferFunction = exports.invertRgbTransferFunction = void 0;
|
|
25
|
+
exports.isImageActor = exports.getScalingParameters = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.transformWorldToIndex = exports.getVolumeViewportsContainingVolumeId = exports.getVolumeViewportsContainingSameVolumes = exports.indexWithinDimensions = exports.getVolumeActorCorners = exports.getTargetVolumeAndSpacingInNormalDir = exports.getSpacingInNormalDirection = exports.getClosestImageId = exports.windowLevel = exports.createUint8SharedArray = exports.createFloat32SharedArray = exports.isOpposite = exports.isEqual = exports.getRuntimeId = exports.getMinMax = exports.planar = exports.uuidv4 = exports.calibratedPixelSpacingMetadataProvider = exports.imageIdToURI = exports.triggerEvent = exports.scaleRgbTransferFunction = exports.invertRgbTransferFunction = void 0;
|
|
26
26
|
const invertRgbTransferFunction_1 = __importDefault(require("./invertRgbTransferFunction"));
|
|
27
27
|
exports.invertRgbTransferFunction = invertRgbTransferFunction_1.default;
|
|
28
28
|
const scaleRgbTransferFunction_1 = __importDefault(require("./scaleRgbTransferFunction"));
|
|
@@ -79,6 +79,8 @@ const getImageSliceDataForVolumeViewport_1 = __importDefault(require("./getImage
|
|
|
79
79
|
exports.getImageSliceDataForVolumeViewport = getImageSliceDataForVolumeViewport_1.default;
|
|
80
80
|
const getScalingParameters_1 = __importDefault(require("./getScalingParameters"));
|
|
81
81
|
exports.getScalingParameters = getScalingParameters_1.default;
|
|
82
|
+
const isImageActor_1 = __importDefault(require("./isImageActor"));
|
|
83
|
+
exports.isImageActor = isImageActor_1.default;
|
|
82
84
|
const planar = __importStar(require("./planar"));
|
|
83
85
|
exports.planar = planar;
|
|
84
86
|
const windowLevel = __importStar(require("./windowLevel"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;AAmCrC,oCAnCN,mCAAO,CAmCwB;AAlCtC,0FAAkE;AAmChE,mCAnCK,kCAAwB,CAmCL;AAlC1B,kEAA0C;AAmCxC,uBAnCK,sBAAY,CAmCL;AAlCd,sDAA8B;AAqC5B,iBArCK,gBAAM,CAqCL;AApCR,4DAAoC;AAsClC,oBAtCK,mBAAS,CAsCL;AArCX,kEAA0C;AAsCxC,uBAtCK,sBAAY,CAsCL;AArCd,kEAA0C;AAgCxC,uBAhCK,sBAAY,CAgCL;AA/Bd,sHAA8F;AAgC5F,iDAhCK,gDAAsC,CAgCL;AA/BxC,wDAAgC;AAoC9B,kBApCK,iBAAO,CAoCL;AAnCT,8DAAsC;AAoCpC,qBApCK,oBAAU,CAoCL;AAnCZ,sFAA8D;AAqC5D,iCArCK,gCAAsB,CAqCL;AApCxB,0FAAkE;AAmChE,mCAnCK,kCAAwB,CAmCL;AAlC1B,4EAAoD;AAqClD,4BArCK,2BAAiB,CAqCL;AApCnB,gGAAwE;AAqCtE,sCArCK,qCAA2B,CAqCL;AApC7B,kHAA0F;AAqCxF,+CArCK,8CAAoC,CAqCL;AApCtC,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,wHAAgG;AAqC9F,kDArCK,iDAAuC,CAqCL;AApCzC,kHAA0F;AAqCxF,+CArCK,8CAAoC,CAqCL;AApCtC,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,4EAAoD;AAqClD,4BArCK,2BAAiB,CAqCL;AApCnB,sEAA8C;AAqC5C,yBArCK,wBAAc,CAqCL;AApChB,8EAAsD;AAqCpD,6BArCK,4BAAkB,CAqCL;AApCpB,8EAAsD;AAqCpD,6BArCK,4BAAkB,CAqCL;AApCpB,oEAA4C;AAqC1C,wBArCK,uBAAa,CAqCL;AApCf,oFAA4D;AAqC1D,gCArCK,+BAAqB,CAqCL;AApCvB,8GAAsF;AAqCpF,6CArCK,4CAAkC,CAqCL;AApCpC,kFAA0D;AAqCxD,+BArCK,8BAAoB,CAqCL;AApCtB,kEAA0C;AAqCxC,uBArCK,sBAAY,CAqCL;AAlCd,iDAAmC;AAUjC,wBAAM;AATR,2DAA6C;AAgB3C,kCAAW"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
|
|
2
|
+
import type vtkImageSlice from '@kitware/vtk.js/Rendering/Core/ImageSlice';
|
|
3
|
+
import type vtkVolume from '@kitware/vtk.js/Rendering/Core/Volume';
|
|
4
|
+
export default function isImageActor(actor: vtkActor | vtkVolume | vtkImageSlice): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isImageActor(actor) {
|
|
4
|
+
if (actor.isA('vtkVolume')) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
if (actor.isA('vtkImageSlice')) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
exports.default = isImageActor;
|
|
13
|
+
//# sourceMappingURL=isImageActor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isImageActor.js","sourceRoot":"","sources":["../../../src/utilities/isImageActor.ts"],"names":[],"mappings":";;AAUA,SAAwB,YAAY,CAClC,KAA2C;IAE3C,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAZD,+BAYC"}
|
|
@@ -260,6 +260,10 @@ class RenderingEngine {
|
|
|
260
260
|
const canvasesDrivenByVtkJs = viewportsDrivenByVtkJs.map((vp) => vp.canvas);
|
|
261
261
|
const canvas = getOrCreateCanvas(viewportInputEntry.element);
|
|
262
262
|
canvasesDrivenByVtkJs.push(canvas);
|
|
263
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
264
|
+
const rect = canvas.getBoundingClientRect();
|
|
265
|
+
canvas.width = rect.width * devicePixelRatio;
|
|
266
|
+
canvas.height = rect.height * devicePixelRatio;
|
|
263
267
|
const { offScreenCanvasWidth, offScreenCanvasHeight } = this._resizeOffScreenCanvas(canvasesDrivenByVtkJs);
|
|
264
268
|
const xOffset = this._resize(viewportsDrivenByVtkJs, offScreenCanvasWidth, offScreenCanvasHeight);
|
|
265
269
|
const internalViewportEntry = { ...viewportInputEntry, canvas };
|
|
@@ -366,6 +370,12 @@ class RenderingEngine {
|
|
|
366
370
|
setVtkjsDrivenViewports(viewportInputEntries) {
|
|
367
371
|
if (viewportInputEntries.length) {
|
|
368
372
|
const vtkDrivenCanvases = viewportInputEntries.map((vp) => getOrCreateCanvas(vp.element));
|
|
373
|
+
vtkDrivenCanvases.forEach((canvas) => {
|
|
374
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
375
|
+
const rect = canvas.getBoundingClientRect();
|
|
376
|
+
canvas.width = rect.width * devicePixelRatio;
|
|
377
|
+
canvas.height = rect.height * devicePixelRatio;
|
|
378
|
+
});
|
|
369
379
|
const { offScreenCanvasWidth, offScreenCanvasHeight } = this._resizeOffScreenCanvas(vtkDrivenCanvases);
|
|
370
380
|
let xOffset = 0;
|
|
371
381
|
for (let i = 0; i < viewportInputEntries.length; i++) {
|
|
@@ -380,16 +390,17 @@ class RenderingEngine {
|
|
|
380
390
|
offScreenCanvasHeight,
|
|
381
391
|
xOffset,
|
|
382
392
|
});
|
|
383
|
-
xOffset += canvas.
|
|
393
|
+
xOffset += canvas.width;
|
|
384
394
|
}
|
|
385
395
|
}
|
|
386
396
|
}
|
|
387
397
|
_resizeOffScreenCanvas(canvasesDrivenByVtkJs) {
|
|
388
398
|
const { offScreenCanvasContainer, offscreenMultiRenderWindow } = this;
|
|
389
|
-
const
|
|
399
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
400
|
+
const offScreenCanvasHeight = Math.max(...canvasesDrivenByVtkJs.map((canvas) => canvas.clientHeight * devicePixelRatio));
|
|
390
401
|
let offScreenCanvasWidth = 0;
|
|
391
402
|
canvasesDrivenByVtkJs.forEach((canvas) => {
|
|
392
|
-
offScreenCanvasWidth += canvas.clientWidth;
|
|
403
|
+
offScreenCanvasWidth += canvas.clientWidth * devicePixelRatio;
|
|
393
404
|
});
|
|
394
405
|
offScreenCanvasContainer.width = offScreenCanvasWidth;
|
|
395
406
|
offScreenCanvasContainer.height = offScreenCanvasHeight;
|
|
@@ -401,7 +412,7 @@ class RenderingEngine {
|
|
|
401
412
|
for (let i = 0; i < viewportsDrivenByVtkJs.length; i++) {
|
|
402
413
|
const viewport = viewportsDrivenByVtkJs[i];
|
|
403
414
|
const { sxStartDisplayCoords, syStartDisplayCoords, sxEndDisplayCoords, syEndDisplayCoords, sx, sy, sWidth, sHeight, } = this._getViewportCoordsOnOffScreenCanvas(viewport, offScreenCanvasWidth, offScreenCanvasHeight, _xOffset);
|
|
404
|
-
_xOffset += viewport.
|
|
415
|
+
_xOffset += viewport.canvas.width;
|
|
405
416
|
viewport.sx = sx;
|
|
406
417
|
viewport.sy = sy;
|
|
407
418
|
viewport.sWidth = sWidth;
|
|
@@ -419,16 +430,15 @@ class RenderingEngine {
|
|
|
419
430
|
_getViewportCoordsOnOffScreenCanvas(viewport, offScreenCanvasWidth, offScreenCanvasHeight, _xOffset) {
|
|
420
431
|
const { canvas } = viewport;
|
|
421
432
|
const { clientWidth, clientHeight } = canvas;
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
433
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
434
|
+
const height = clientHeight * devicePixelRatio;
|
|
435
|
+
const width = clientWidth * devicePixelRatio;
|
|
426
436
|
const sx = _xOffset;
|
|
427
437
|
const sy = 0;
|
|
428
|
-
const sWidth =
|
|
429
|
-
const sHeight =
|
|
438
|
+
const sWidth = width;
|
|
439
|
+
const sHeight = height;
|
|
430
440
|
const sxStartDisplayCoords = sx / offScreenCanvasWidth;
|
|
431
|
-
const syStartDisplayCoords = sy + (offScreenCanvasHeight -
|
|
441
|
+
const syStartDisplayCoords = sy + (offScreenCanvasHeight - height) / offScreenCanvasHeight;
|
|
432
442
|
const sWidthDisplayCoords = sWidth / offScreenCanvasWidth;
|
|
433
443
|
const sHeightDisplayCoords = sHeight / offScreenCanvasHeight;
|
|
434
444
|
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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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray';
|
|
2
2
|
import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
3
|
-
import vtkVolume from '@kitware/vtk.js/Rendering/Core/Volume';
|
|
4
|
-
import vtkVolumeMapper from '@kitware/vtk.js/Rendering/Core/VolumeMapper';
|
|
5
3
|
import _cloneDeep from 'lodash.clonedeep';
|
|
6
4
|
import vtkCamera from '@kitware/vtk.js/Rendering/Core/Camera';
|
|
7
5
|
import { vec2, vec3, mat4 } from 'gl-matrix';
|
|
6
|
+
import vtkImageMapper from '@kitware/vtk.js/Rendering/Core/ImageMapper';
|
|
7
|
+
import vtkImageSlice from '@kitware/vtk.js/Rendering/Core/ImageSlice';
|
|
8
|
+
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
|
|
8
9
|
import * as metaData from '../metaData';
|
|
9
10
|
import Viewport from './Viewport';
|
|
10
11
|
import eventTarget from '../eventTarget';
|
|
11
12
|
import Events from '../enums/Events';
|
|
12
|
-
import { triggerEvent, isEqual, invertRgbTransferFunction, windowLevel as windowLevelUtil, imageIdToURI, } from '../utilities';
|
|
13
|
+
import { triggerEvent, isEqual, invertRgbTransferFunction, windowLevel as windowLevelUtil, imageIdToURI, isImageActor, } from '../utilities';
|
|
13
14
|
import drawImageSync from './helpers/cpuFallback/drawImageSync';
|
|
14
15
|
import { getColormap } from './helpers/cpuFallback/colors/index';
|
|
15
16
|
import { loadAndCacheImage } from '../imageLoader';
|
|
@@ -59,18 +60,10 @@ class StackViewport extends Viewport {
|
|
|
59
60
|
return imagePlaneModule.frameOfReferenceUID;
|
|
60
61
|
};
|
|
61
62
|
this.createActorMapper = (imageData) => {
|
|
62
|
-
const mapper =
|
|
63
|
+
const mapper = vtkImageMapper.newInstance();
|
|
63
64
|
mapper.setInputData(imageData);
|
|
64
|
-
const actor =
|
|
65
|
+
const actor = vtkImageSlice.newInstance();
|
|
65
66
|
actor.setMapper(mapper);
|
|
66
|
-
const [xSize, ySize, zSize] = imageData.getDimensions();
|
|
67
|
-
const [xSpacing, ySpacing, zSpacing] = imageData.getSpacing();
|
|
68
|
-
const vSize = vec3.length([
|
|
69
|
-
xSize * xSpacing,
|
|
70
|
-
ySize * ySpacing,
|
|
71
|
-
zSize * zSpacing,
|
|
72
|
-
]);
|
|
73
|
-
mapper.setSampleDistance(vSize / mapper.getMaximumSamplesPerRay());
|
|
74
67
|
if (imageData.getPointData().getNumberOfComponents() > 1) {
|
|
75
68
|
actor.getProperty().setIndependentComponents(false);
|
|
76
69
|
}
|
|
@@ -123,17 +116,34 @@ class StackViewport extends Viewport {
|
|
|
123
116
|
};
|
|
124
117
|
this.canvasToWorldGPU = (canvasPos) => {
|
|
125
118
|
const renderer = this.getRenderer();
|
|
119
|
+
const vtkCamera = this.getVtkActiveCamera();
|
|
120
|
+
const crange = vtkCamera.getClippingRange();
|
|
121
|
+
const distance = vtkCamera.getDistance();
|
|
122
|
+
vtkCamera.setClippingRange(distance, distance + 0.1);
|
|
126
123
|
const offscreenMultiRenderWindow = this.getRenderingEngine().offscreenMultiRenderWindow;
|
|
127
124
|
const openGLRenderWindow = offscreenMultiRenderWindow.getOpenGLRenderWindow();
|
|
128
125
|
const size = openGLRenderWindow.getSize();
|
|
129
|
-
const
|
|
126
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
127
|
+
const canvasPosWithDPR = [
|
|
128
|
+
canvasPos[0] * devicePixelRatio,
|
|
129
|
+
canvasPos[1] * devicePixelRatio,
|
|
130
|
+
];
|
|
131
|
+
const displayCoord = [
|
|
132
|
+
canvasPosWithDPR[0] + this.sx,
|
|
133
|
+
canvasPosWithDPR[1] + this.sy,
|
|
134
|
+
];
|
|
130
135
|
displayCoord[1] = size[1] - displayCoord[1];
|
|
131
136
|
let worldCoord = openGLRenderWindow.displayToWorld(displayCoord[0], displayCoord[1], 0, renderer);
|
|
137
|
+
vtkCamera.setClippingRange(crange[0], crange[1]);
|
|
132
138
|
worldCoord = this.applyFlipTx(worldCoord);
|
|
133
139
|
return worldCoord;
|
|
134
140
|
};
|
|
135
141
|
this.worldToCanvasGPU = (worldPos) => {
|
|
136
142
|
const renderer = this.getRenderer();
|
|
143
|
+
const vtkCamera = this.getVtkActiveCamera();
|
|
144
|
+
const crange = vtkCamera.getClippingRange();
|
|
145
|
+
const distance = vtkCamera.getDistance();
|
|
146
|
+
vtkCamera.setClippingRange(distance, distance + 0.1);
|
|
137
147
|
const offscreenMultiRenderWindow = this.getRenderingEngine().offscreenMultiRenderWindow;
|
|
138
148
|
const openGLRenderWindow = offscreenMultiRenderWindow.getOpenGLRenderWindow();
|
|
139
149
|
const size = openGLRenderWindow.getSize();
|
|
@@ -143,7 +153,13 @@ class StackViewport extends Viewport {
|
|
|
143
153
|
displayCoord[0] - this.sx,
|
|
144
154
|
displayCoord[1] - this.sy,
|
|
145
155
|
];
|
|
146
|
-
|
|
156
|
+
vtkCamera.setClippingRange(crange[0], crange[1]);
|
|
157
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
158
|
+
const canvasCoordWithDPR = [
|
|
159
|
+
canvasCoord[0] / devicePixelRatio,
|
|
160
|
+
canvasCoord[1] / devicePixelRatio,
|
|
161
|
+
];
|
|
162
|
+
return canvasCoordWithDPR;
|
|
147
163
|
};
|
|
148
164
|
this.getCurrentImageIdIndex = () => {
|
|
149
165
|
return this.currentImageIdIndex;
|
|
@@ -240,7 +256,7 @@ class StackViewport extends Viewport {
|
|
|
240
256
|
return;
|
|
241
257
|
}
|
|
242
258
|
const { actor } = defaultActor;
|
|
243
|
-
if (!actor
|
|
259
|
+
if (!isImageActor(actor)) {
|
|
244
260
|
return;
|
|
245
261
|
}
|
|
246
262
|
const vtkImageData = actor.getMapper().getInputData();
|
|
@@ -253,6 +269,7 @@ class StackViewport extends Viewport {
|
|
|
253
269
|
imageData: actor.getMapper().getInputData(),
|
|
254
270
|
metadata: { Modality: this.modality },
|
|
255
271
|
scaling: this.scaling,
|
|
272
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
256
273
|
};
|
|
257
274
|
}
|
|
258
275
|
getImageDataCPU() {
|
|
@@ -284,6 +301,7 @@ class StackViewport extends Viewport {
|
|
|
284
301
|
},
|
|
285
302
|
},
|
|
286
303
|
scalarData: this.cpuImagePixelData,
|
|
304
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
287
305
|
};
|
|
288
306
|
}
|
|
289
307
|
buildMetadata(imageId) {
|
|
@@ -306,6 +324,7 @@ class StackViewport extends Viewport {
|
|
|
306
324
|
}
|
|
307
325
|
this.modality = modality;
|
|
308
326
|
let imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
327
|
+
imagePlaneModule = this._getImagePlaneModule(imagePlaneModule);
|
|
309
328
|
if (!this.useCPURendering) {
|
|
310
329
|
imagePlaneModule = this.calibrateIfNecessary(imageId, imagePlaneModule);
|
|
311
330
|
}
|
|
@@ -511,10 +530,14 @@ class StackViewport extends Viewport {
|
|
|
511
530
|
}
|
|
512
531
|
setFlipCPU({ flipHorizontal, flipVertical }) {
|
|
513
532
|
const { viewport } = this._cpuFallbackEnabledElement;
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
533
|
+
if (flipHorizontal !== undefined) {
|
|
534
|
+
viewport.hflip = flipHorizontal;
|
|
535
|
+
this.flipHorizontal = viewport.hflip;
|
|
536
|
+
}
|
|
537
|
+
if (flipVertical !== undefined) {
|
|
538
|
+
viewport.vflip = flipVertical;
|
|
539
|
+
this.flipVertical = viewport.vflip;
|
|
540
|
+
}
|
|
518
541
|
}
|
|
519
542
|
setVOI(voiRange, suppressEvents) {
|
|
520
543
|
if (this.useCPURendering) {
|
|
@@ -574,7 +597,7 @@ class StackViewport extends Viewport {
|
|
|
574
597
|
return;
|
|
575
598
|
}
|
|
576
599
|
const { actor } = defaultActor;
|
|
577
|
-
if (!actor
|
|
600
|
+
if (!isImageActor(actor)) {
|
|
578
601
|
return;
|
|
579
602
|
}
|
|
580
603
|
const volumeProperty = actor.getProperty();
|
|
@@ -605,15 +628,25 @@ class StackViewport extends Viewport {
|
|
|
605
628
|
return;
|
|
606
629
|
}
|
|
607
630
|
const { actor } = defaultActor;
|
|
608
|
-
if (!actor
|
|
631
|
+
if (!isImageActor(actor)) {
|
|
609
632
|
return;
|
|
610
633
|
}
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
634
|
+
if (actor.isA('vtkVolume')) {
|
|
635
|
+
const volumeActor = actor;
|
|
636
|
+
const tfunc = volumeActor.getProperty().getRGBTransferFunction(0);
|
|
637
|
+
if ((!this.invert && invert) || (this.invert && !invert)) {
|
|
638
|
+
invertRgbTransferFunction(tfunc);
|
|
639
|
+
}
|
|
640
|
+
this.invert = invert;
|
|
641
|
+
}
|
|
642
|
+
else if (actor.isA('vtkImageSlice')) {
|
|
643
|
+
const imageSliceActor = actor;
|
|
644
|
+
const tfunc = imageSliceActor.getProperty().getRGBTransferFunction(0);
|
|
645
|
+
if ((!this.invert && invert) || (this.invert && !invert)) {
|
|
646
|
+
invertRgbTransferFunction(tfunc);
|
|
647
|
+
}
|
|
648
|
+
this.invert = invert;
|
|
615
649
|
}
|
|
616
|
-
this.invert = invert;
|
|
617
650
|
}
|
|
618
651
|
setVOICPU(voiRange, suppressEvents) {
|
|
619
652
|
const { viewport, image } = this._cpuFallbackEnabledElement;
|
|
@@ -659,26 +692,24 @@ class StackViewport extends Viewport {
|
|
|
659
692
|
return;
|
|
660
693
|
}
|
|
661
694
|
const { actor } = defaultActor;
|
|
662
|
-
if (!actor
|
|
695
|
+
if (!isImageActor(actor)) {
|
|
663
696
|
return;
|
|
664
697
|
}
|
|
665
|
-
const
|
|
666
|
-
|
|
667
|
-
if (typeof
|
|
668
|
-
const imageData =
|
|
698
|
+
const imageActor = actor;
|
|
699
|
+
let voiRangeToUse = voiRange;
|
|
700
|
+
if (typeof voiRangeToUse === 'undefined') {
|
|
701
|
+
const imageData = imageActor.getMapper().getInputData();
|
|
669
702
|
const range = imageData.getPointData().getScalars().getRange();
|
|
670
|
-
|
|
671
|
-
voiRange = { lower: range[0], upper: range[1] };
|
|
672
|
-
}
|
|
673
|
-
else {
|
|
674
|
-
const { lower, upper } = voiRange;
|
|
675
|
-
tfunc.setRange(lower, upper);
|
|
703
|
+
voiRangeToUse = { lower: range[0], upper: range[1] };
|
|
676
704
|
}
|
|
705
|
+
const { windowWidth, windowCenter } = windowLevelUtil.toWindowLevel(voiRangeToUse.lower, voiRangeToUse.upper);
|
|
706
|
+
imageActor.getProperty().setColorWindow(windowWidth);
|
|
707
|
+
imageActor.getProperty().setColorLevel(windowCenter);
|
|
677
708
|
this.voiApplied = true;
|
|
678
|
-
this.voiRange =
|
|
709
|
+
this.voiRange = voiRangeToUse;
|
|
679
710
|
const eventDetail = {
|
|
680
711
|
viewportId: this.id,
|
|
681
|
-
range:
|
|
712
|
+
range: voiRangeToUse,
|
|
682
713
|
};
|
|
683
714
|
if (!suppressEvents) {
|
|
684
715
|
triggerEvent(this.element, Events.VOI_MODIFIED, eventDetail);
|
|
@@ -814,8 +845,8 @@ class StackViewport extends Viewport {
|
|
|
814
845
|
if (!imageData) {
|
|
815
846
|
return false;
|
|
816
847
|
}
|
|
817
|
-
const [xSpacing, ySpacing
|
|
818
|
-
const [xVoxels, yVoxels
|
|
848
|
+
const [xSpacing, ySpacing] = imageData.getSpacing();
|
|
849
|
+
const [xVoxels, yVoxels] = imageData.getDimensions();
|
|
819
850
|
const imagePlaneModule = metaData.get('imagePlaneModule', image.imageId);
|
|
820
851
|
const direction = imageData.getDirection();
|
|
821
852
|
const rowCosines = direction.slice(0, 3);
|
|
@@ -1018,9 +1049,6 @@ class StackViewport extends Viewport {
|
|
|
1018
1049
|
const previousCameraProps = _cloneDeep(this.getCamera());
|
|
1019
1050
|
if (sameImageData && !this.stackInvalidated) {
|
|
1020
1051
|
this._updateVTKImageDataFromCornerstoneImage(image);
|
|
1021
|
-
const direction = this._imageData.getDirection();
|
|
1022
|
-
const { viewPlaneNormal, viewUp } = this._getCameraOrientation(direction);
|
|
1023
|
-
this.setCameraNoEvent({ viewUp, viewPlaneNormal });
|
|
1024
1052
|
const cameraProps = this.getCamera();
|
|
1025
1053
|
this.panCache[0] = this.cameraPosOnRender[0] - cameraProps.position[0];
|
|
1026
1054
|
this.panCache[1] = this.cameraPosOnRender[1] - cameraProps.position[1];
|
|
@@ -1064,6 +1092,18 @@ class StackViewport extends Viewport {
|
|
|
1064
1092
|
}
|
|
1065
1093
|
this.initialVOIRange = voiRange;
|
|
1066
1094
|
this.setProperties({ voiRange });
|
|
1095
|
+
const cfun = vtkColorTransferFunction.newInstance();
|
|
1096
|
+
let lower = 0;
|
|
1097
|
+
let upper = 1024;
|
|
1098
|
+
if (voiRange &&
|
|
1099
|
+
voiRange.lower !== undefined &&
|
|
1100
|
+
voiRange.upper !== undefined) {
|
|
1101
|
+
lower = voiRange.lower;
|
|
1102
|
+
upper = voiRange.upper;
|
|
1103
|
+
}
|
|
1104
|
+
cfun.addRGBPoint(lower, 0.0, 0.0, 0.0);
|
|
1105
|
+
cfun.addRGBPoint(upper, 1.0, 1.0, 1.0);
|
|
1106
|
+
actor.getProperty().setRGBTransferFunction(0, cfun);
|
|
1067
1107
|
const { position } = this.getCamera();
|
|
1068
1108
|
this.cameraPosOnRender = position;
|
|
1069
1109
|
this.stackInvalidated = false;
|
|
@@ -1076,6 +1116,7 @@ class StackViewport extends Viewport {
|
|
|
1076
1116
|
throw new Error(`ImageIdIndex provided ${imageIdIndex} is invalid, the stack only has ${this.imageIds.length} elements`);
|
|
1077
1117
|
}
|
|
1078
1118
|
this.currentImageIdIndex = imageIdIndex;
|
|
1119
|
+
this.hasPixelSpacing = true;
|
|
1079
1120
|
const imageId = await this._loadAndDisplayImage(this.imageIds[imageIdIndex], imageIdIndex);
|
|
1080
1121
|
return imageId;
|
|
1081
1122
|
}
|
|
@@ -1301,6 +1342,34 @@ class StackViewport extends Viewport {
|
|
|
1301
1342
|
unsetColormapGPU() {
|
|
1302
1343
|
throw new Error('unsetColormapGPU not implemented.');
|
|
1303
1344
|
}
|
|
1345
|
+
_getImagePlaneModule(imagePlaneModule) {
|
|
1346
|
+
const newImagePlaneModule = {
|
|
1347
|
+
...imagePlaneModule,
|
|
1348
|
+
};
|
|
1349
|
+
if (!newImagePlaneModule.columnPixelSpacing) {
|
|
1350
|
+
newImagePlaneModule.columnPixelSpacing = 1;
|
|
1351
|
+
this.hasPixelSpacing = false;
|
|
1352
|
+
}
|
|
1353
|
+
if (!newImagePlaneModule.rowPixelSpacing) {
|
|
1354
|
+
newImagePlaneModule.rowPixelSpacing = 1;
|
|
1355
|
+
this.hasPixelSpacing = false;
|
|
1356
|
+
}
|
|
1357
|
+
if (!newImagePlaneModule.columnCosines) {
|
|
1358
|
+
newImagePlaneModule.columnCosines = [0, 1, 0];
|
|
1359
|
+
}
|
|
1360
|
+
if (!newImagePlaneModule.rowCosines) {
|
|
1361
|
+
newImagePlaneModule.rowCosines = [1, 0, 0];
|
|
1362
|
+
}
|
|
1363
|
+
if (!newImagePlaneModule.imagePositionPatient) {
|
|
1364
|
+
newImagePlaneModule.imagePositionPatient = [0, 0, 0];
|
|
1365
|
+
}
|
|
1366
|
+
if (!newImagePlaneModule.imageOrientationPatient) {
|
|
1367
|
+
newImagePlaneModule.imageOrientationPatient = new Float32Array([
|
|
1368
|
+
1, 0, 0, 0, 1, 0,
|
|
1369
|
+
]);
|
|
1370
|
+
}
|
|
1371
|
+
return newImagePlaneModule;
|
|
1372
|
+
}
|
|
1304
1373
|
}
|
|
1305
1374
|
export default StackViewport;
|
|
1306
1375
|
//# sourceMappingURL=StackViewport.js.map
|