@cornerstonejs/core 1.38.1 → 1.39.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/utilities/getCurrentVolumeViewportSlice.d.ts +10 -0
- package/dist/cjs/utilities/getCurrentVolumeViewportSlice.js +86 -0
- package/dist/cjs/utilities/getCurrentVolumeViewportSlice.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +3 -1
- package/dist/cjs/utilities/index.js +6 -2
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/transformCanvasToIJK.d.ts +2 -0
- package/dist/cjs/utilities/transformCanvasToIJK.js +14 -0
- package/dist/cjs/utilities/transformCanvasToIJK.js.map +1 -0
- package/dist/cjs/utilities/transformIJKToCanvas.d.ts +2 -0
- package/dist/cjs/utilities/transformIJKToCanvas.js +14 -0
- package/dist/cjs/utilities/transformIJKToCanvas.js.map +1 -0
- package/dist/cjs/utilities/transformIndexToWorld.d.ts +2 -0
- package/dist/cjs/utilities/transformIndexToWorld.js +7 -0
- package/dist/cjs/utilities/transformIndexToWorld.js.map +1 -0
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.js +82 -0
- package/dist/esm/utilities/getCurrentVolumeViewportSlice.js.map +1 -0
- package/dist/esm/utilities/index.js +3 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/transformCanvasToIJK.js +7 -0
- package/dist/esm/utilities/transformCanvasToIJK.js.map +1 -0
- package/dist/esm/utilities/transformIJKToCanvas.js +7 -0
- package/dist/esm/utilities/transformIJKToCanvas.js.map +1 -0
- package/dist/esm/utilities/transformIndexToWorld.js +4 -0
- package/dist/esm/utilities/transformIndexToWorld.js.map +1 -0
- package/dist/types/utilities/getCurrentVolumeViewportSlice.d.ts +11 -0
- package/dist/types/utilities/getCurrentVolumeViewportSlice.d.ts.map +1 -0
- package/dist/types/utilities/index.d.ts +3 -1
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/transformCanvasToIJK.d.ts +3 -0
- package/dist/types/utilities/transformCanvasToIJK.d.ts.map +1 -0
- package/dist/types/utilities/transformIJKToCanvas.d.ts +3 -0
- package/dist/types/utilities/transformIJKToCanvas.d.ts.map +1 -0
- package/dist/types/utilities/transformIndexToWorld.d.ts +3 -0
- package/dist/types/utilities/transformIndexToWorld.d.ts.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/utilities/getCurrentVolumeViewportSlice.ts +166 -0
- package/src/utilities/index.ts +4 -0
- package/src/utilities/transformCanvasToIJK.ts +18 -0
- package/src/utilities/transformIJKToCanvas.ts +18 -0
- package/src/utilities/transformIndexToWorld.ts +14 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { mat4 } from 'gl-matrix';
|
|
2
|
+
import { IVolumeViewport } from '../types';
|
|
3
|
+
declare function getCurrentVolumeViewportSlice(viewport: IVolumeViewport): {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
scalarData: any;
|
|
7
|
+
sliceToIndexMatrix: mat4;
|
|
8
|
+
indexToSliceMatrix: mat4;
|
|
9
|
+
};
|
|
10
|
+
export { getCurrentVolumeViewportSlice as default, getCurrentVolumeViewportSlice, };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCurrentVolumeViewportSlice = exports.default = void 0;
|
|
4
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
5
|
+
const transformIJKToCanvas_1 = require("./transformIJKToCanvas");
|
|
6
|
+
const transformCanvasToIJK_1 = require("./transformCanvasToIJK");
|
|
7
|
+
function getCurrentVolumeViewportSlice(viewport) {
|
|
8
|
+
const { dimensions, scalarData } = viewport.getImageData();
|
|
9
|
+
const { width: canvasWidth, height: canvasHeight } = viewport.getCanvas();
|
|
10
|
+
const ijkOriginPoint = (0, transformCanvasToIJK_1.transformCanvasToIJK)(viewport, [0, 0]);
|
|
11
|
+
const ijkRowPoint = (0, transformCanvasToIJK_1.transformCanvasToIJK)(viewport, [canvasWidth - 1, 0]);
|
|
12
|
+
const ijkColPoint = (0, transformCanvasToIJK_1.transformCanvasToIJK)(viewport, [0, canvasHeight - 1]);
|
|
13
|
+
const ijkRowVec = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), ijkRowPoint, ijkOriginPoint);
|
|
14
|
+
const ijkColVec = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), ijkColPoint, ijkOriginPoint);
|
|
15
|
+
const ijkSliceVec = gl_matrix_1.vec3.cross(gl_matrix_1.vec3.create(), ijkRowVec, ijkColVec);
|
|
16
|
+
gl_matrix_1.vec3.normalize(ijkRowVec, ijkRowVec);
|
|
17
|
+
gl_matrix_1.vec3.normalize(ijkColVec, ijkColVec);
|
|
18
|
+
gl_matrix_1.vec3.normalize(ijkSliceVec, ijkSliceVec);
|
|
19
|
+
const maxIJKRowVec = Math.max(Math.abs(ijkRowVec[0]), Math.abs(ijkRowVec[1]), Math.abs(ijkRowVec[2]));
|
|
20
|
+
const maxIJKColVec = Math.max(Math.abs(ijkColVec[0]), Math.abs(ijkColVec[1]), Math.abs(ijkColVec[2]));
|
|
21
|
+
if (!gl_matrix_1.glMatrix.equals(1, maxIJKRowVec) || !gl_matrix_1.glMatrix.equals(1, maxIJKColVec)) {
|
|
22
|
+
throw new Error('Livewire is not available for rotate/oblique viewports');
|
|
23
|
+
}
|
|
24
|
+
const [sx, sy, sz] = dimensions;
|
|
25
|
+
const ijkCorners = [
|
|
26
|
+
[0, 0, 0],
|
|
27
|
+
[sx - 1, 0, 0],
|
|
28
|
+
[0, sy - 1, 0],
|
|
29
|
+
[sx - 1, sy - 1, 0],
|
|
30
|
+
[0, 0, sz - 1],
|
|
31
|
+
[sx - 1, 0, sz - 1],
|
|
32
|
+
[0, sy - 1, sz - 1],
|
|
33
|
+
[sx - 1, sy - 1, sz - 1],
|
|
34
|
+
];
|
|
35
|
+
const canvasCorners = ijkCorners.map((ijkCorner) => (0, transformIJKToCanvas_1.transformIJKToCanvas)(viewport, ijkCorner));
|
|
36
|
+
const canvasAABB = canvasCorners.reduce((aabb, canvasPoint) => {
|
|
37
|
+
aabb.minX = Math.min(aabb.minX, canvasPoint[0]);
|
|
38
|
+
aabb.minY = Math.min(aabb.minY, canvasPoint[1]);
|
|
39
|
+
aabb.maxX = Math.max(aabb.maxX, canvasPoint[0]);
|
|
40
|
+
aabb.maxY = Math.max(aabb.maxY, canvasPoint[1]);
|
|
41
|
+
return aabb;
|
|
42
|
+
}, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });
|
|
43
|
+
const ijkTopLeft = (0, transformCanvasToIJK_1.transformCanvasToIJK)(viewport, [
|
|
44
|
+
canvasAABB.minX,
|
|
45
|
+
canvasAABB.minY,
|
|
46
|
+
]);
|
|
47
|
+
const ijkBottomRight = (0, transformCanvasToIJK_1.transformCanvasToIJK)(viewport, [
|
|
48
|
+
canvasAABB.maxX,
|
|
49
|
+
canvasAABB.maxY,
|
|
50
|
+
]);
|
|
51
|
+
const ijkDiagonal = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), ijkBottomRight, ijkTopLeft);
|
|
52
|
+
const sliceToIndexMatrix = gl_matrix_1.mat4.fromValues(ijkRowVec[0], ijkRowVec[1], ijkRowVec[2], 0, ijkColVec[0], ijkColVec[1], ijkColVec[2], 0, ijkSliceVec[0], ijkSliceVec[1], ijkSliceVec[2], 0, ijkTopLeft[0], ijkTopLeft[1], ijkTopLeft[2], 1);
|
|
53
|
+
const indexToSliceMatrix = gl_matrix_1.mat4.invert(gl_matrix_1.mat4.create(), sliceToIndexMatrix);
|
|
54
|
+
const sliceWidth = gl_matrix_1.vec3.dot(ijkRowVec, ijkDiagonal) + 1;
|
|
55
|
+
const sliceHeight = gl_matrix_1.vec3.dot(ijkColVec, ijkDiagonal) + 1;
|
|
56
|
+
const TypedArray = scalarData.constructor;
|
|
57
|
+
const sliceData = new TypedArray(sliceWidth * sliceHeight);
|
|
58
|
+
const pixelsPerSlice = dimensions[0] * dimensions[1];
|
|
59
|
+
const ijkPixelRow = gl_matrix_1.vec3.clone(ijkTopLeft);
|
|
60
|
+
const ijkPixelCol = gl_matrix_1.vec3.create();
|
|
61
|
+
let slicePixelIndex = 0;
|
|
62
|
+
for (let y = 0; y < sliceHeight; y++) {
|
|
63
|
+
gl_matrix_1.vec3.copy(ijkPixelCol, ijkPixelRow);
|
|
64
|
+
for (let x = 0; x < sliceWidth; x++) {
|
|
65
|
+
const volumePixelIndex = ijkPixelCol[2] * pixelsPerSlice +
|
|
66
|
+
ijkPixelCol[1] * dimensions[0] +
|
|
67
|
+
ijkPixelCol[0];
|
|
68
|
+
if (volumePixelIndex < scalarData.length) {
|
|
69
|
+
sliceData[slicePixelIndex] = scalarData[volumePixelIndex];
|
|
70
|
+
}
|
|
71
|
+
slicePixelIndex++;
|
|
72
|
+
gl_matrix_1.vec3.add(ijkPixelCol, ijkPixelCol, ijkRowVec);
|
|
73
|
+
}
|
|
74
|
+
gl_matrix_1.vec3.add(ijkPixelRow, ijkPixelRow, ijkColVec);
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
width: sliceWidth,
|
|
78
|
+
height: sliceHeight,
|
|
79
|
+
scalarData: sliceData,
|
|
80
|
+
sliceToIndexMatrix,
|
|
81
|
+
indexToSliceMatrix,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
exports.default = getCurrentVolumeViewportSlice;
|
|
85
|
+
exports.getCurrentVolumeViewportSlice = getCurrentVolumeViewportSlice;
|
|
86
|
+
//# sourceMappingURL=getCurrentVolumeViewportSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrentVolumeViewportSlice.js","sourceRoot":"","sources":["../../../src/utilities/getCurrentVolumeViewportSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ import indexWithinDimensions from './indexWithinDimensions';
|
|
|
26
26
|
import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContainingSameVolumes';
|
|
27
27
|
import getViewportsWithVolumeId from './getViewportsWithVolumeId';
|
|
28
28
|
import transformWorldToIndex from './transformWorldToIndex';
|
|
29
|
+
import transformIndexToWorld from './transformIndexToWorld';
|
|
29
30
|
import loadImageToCanvas from './loadImageToCanvas';
|
|
30
31
|
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
31
32
|
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
@@ -39,6 +40,7 @@ import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeView
|
|
|
39
40
|
import { isImageActor, actorIsA } from './actorCheck';
|
|
40
41
|
import getViewportsWithImageURI from './getViewportsWithImageURI';
|
|
41
42
|
import getClosestStackImageIndexForPoint from './getClosestStackImageIndexForPoint';
|
|
43
|
+
import getCurrentVolumeViewportSlice from './getCurrentVolumeViewportSlice';
|
|
42
44
|
import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
|
|
43
45
|
import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
|
|
44
46
|
import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
|
|
@@ -64,4 +66,4 @@ import * as planar from './planar';
|
|
|
64
66
|
import * as windowLevel from './windowLevel';
|
|
65
67
|
import * as colormap from './colormap';
|
|
66
68
|
import * as transferFunctionUtils from './transferFunctionUtils';
|
|
67
|
-
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
69
|
+
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
@@ -26,8 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
exports.VoxelManager = exports.getBufferConfiguration = exports.isVideoTransferSyntax = exports.genericMetadataProvider = exports.isValidVolume = exports.makeVolumeMetadata = exports.sortImageIdsAndGetSpacing = exports.updateVTKImageDataWithCornerstoneImage = exports.transferFunctionUtils = exports.imageRetrieveMetadataProvider = exports.decimate = exports.ProgressiveIterator = exports.getImageLegacy = exports.colormap = exports.getScalarDataType = exports.getScalingParameters = exports.deepMerge = void 0;
|
|
29
|
+
exports.getViewportImageCornersInWorld = exports.spatialRegistrationMetadataProvider = exports.calculateViewportsSpatialRegistration = exports.getCurrentVolumeViewportSlice = exports.getClosestStackImageIndexForPoint = exports.getViewportsWithImageURI = exports.actorIsA = exports.isPTPrescaledWithSUV = exports.isImageActor = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.getVolumeViewportScrollInfo = exports.getVolumeSliceRangeInfo = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvasGPU = exports.renderToCanvasCPU = exports.loadImageToCanvas = exports.transformIndexToWorld = exports.transformWorldToIndex = exports.getViewportsWithVolumeId = exports.getVolumeViewportsContainingSameVolumes = exports.indexWithinDimensions = exports.getVolumeActorCorners = exports.getTargetVolumeAndSpacingInNormalDir = exports.getSpacingInNormalDirection = exports.getClosestImageId = exports.windowLevel = exports.getViewportModality = exports.createInt16SharedArray = exports.createUint16SharedArray = exports.createUint8SharedArray = exports.createFloat32SharedArray = exports.isOpposite = exports.isEqual = exports.getRuntimeId = exports.getMinMax = exports.planar = exports.uuidv4 = exports.clamp = exports.calibratedPixelSpacingMetadataProvider = exports.imageIdToURI = exports.triggerEvent = exports.scaleRgbTransferFunction = exports.createLinearRGBTransferFunction = exports.getVoiFromSigmoidRGBTransferFunction = exports.createSigmoidRGBTransferFunction = exports.invertRgbTransferFunction = exports.eventListener = void 0;
|
|
30
|
+
exports.VoxelManager = exports.getBufferConfiguration = exports.isVideoTransferSyntax = exports.genericMetadataProvider = exports.isValidVolume = exports.makeVolumeMetadata = exports.sortImageIdsAndGetSpacing = exports.updateVTKImageDataWithCornerstoneImage = exports.transferFunctionUtils = exports.imageRetrieveMetadataProvider = exports.decimate = exports.ProgressiveIterator = exports.getImageLegacy = exports.colormap = exports.getScalarDataType = exports.getScalingParameters = exports.deepMerge = exports.applyPreset = exports.hasNaNValues = void 0;
|
|
31
31
|
const eventListener = __importStar(require("./eventListener"));
|
|
32
32
|
exports.eventListener = eventListener;
|
|
33
33
|
const invertRgbTransferFunction_1 = __importDefault(require("./invertRgbTransferFunction"));
|
|
@@ -84,6 +84,8 @@ const getViewportsWithVolumeId_1 = __importDefault(require("./getViewportsWithVo
|
|
|
84
84
|
exports.getViewportsWithVolumeId = getViewportsWithVolumeId_1.default;
|
|
85
85
|
const transformWorldToIndex_1 = __importDefault(require("./transformWorldToIndex"));
|
|
86
86
|
exports.transformWorldToIndex = transformWorldToIndex_1.default;
|
|
87
|
+
const transformIndexToWorld_1 = __importDefault(require("./transformIndexToWorld"));
|
|
88
|
+
exports.transformIndexToWorld = transformIndexToWorld_1.default;
|
|
87
89
|
const loadImageToCanvas_1 = __importDefault(require("./loadImageToCanvas"));
|
|
88
90
|
exports.loadImageToCanvas = loadImageToCanvas_1.default;
|
|
89
91
|
const renderToCanvasCPU_1 = __importDefault(require("./renderToCanvasCPU"));
|
|
@@ -111,6 +113,8 @@ const getViewportsWithImageURI_1 = __importDefault(require("./getViewportsWithIm
|
|
|
111
113
|
exports.getViewportsWithImageURI = getViewportsWithImageURI_1.default;
|
|
112
114
|
const getClosestStackImageIndexForPoint_1 = __importDefault(require("./getClosestStackImageIndexForPoint"));
|
|
113
115
|
exports.getClosestStackImageIndexForPoint = getClosestStackImageIndexForPoint_1.default;
|
|
116
|
+
const getCurrentVolumeViewportSlice_1 = __importDefault(require("./getCurrentVolumeViewportSlice"));
|
|
117
|
+
exports.getCurrentVolumeViewportSlice = getCurrentVolumeViewportSlice_1.default;
|
|
114
118
|
const calculateViewportsSpatialRegistration_1 = __importDefault(require("./calculateViewportsSpatialRegistration"));
|
|
115
119
|
exports.calculateViewportsSpatialRegistration = calculateViewportsSpatialRegistration_1.default;
|
|
116
120
|
const spatialRegistrationMetadataProvider_1 = __importDefault(require("./spatialRegistrationMetadataProvider"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAiD;AAwE/C,sCAAa;AAvEf,4FAAkD;AAwErC,oCAxEN,mCAAO,CAwEwB;AAvEtC,0GAAkF;AAwEhF,2CAxEK,0CAAgC,CAwEL;AAvElC,kHAA0F;AAwExF,+CAxEK,8CAAoC,CAwEL;AAvEtC,wGAAgF;AAwE9E,0CAxEK,yCAA+B,CAwEL;AAvEjC,0FAAkE;AAwEhE,mCAxEK,kCAAwB,CAwEL;AAvE1B,kEAA0C;AAwExC,uBAxEK,sBAAY,CAwEL;AAvEd,sDAA8B;AA2E5B,iBA3EK,gBAAM,CA2EL;AA1ER,4DAAoC;AA4ElC,oBA5EK,mBAAS,CA4EL;AA3EX,kEAA0C;AA4ExC,uBA5EK,sBAAY,CA4EL;AA3Ed,kEAA0C;AAqExC,uBArEK,sBAAY,CAqEL;AApEd,sHAA8F;AAqE5F,iDArEK,gDAAsC,CAqEL;AApExC,oDAA4B;AAqE1B,gBArEK,eAAK,CAqEL;AApEP,wDAAgC;AAyE9B,kBAzEK,iBAAO,CAyEL;AAxET,8DAAsC;AAyEpC,qBAzEK,oBAAU,CAyEL;AAxEZ,sFAA8D;AA0E5D,iCA1EK,gCAAsB,CA0EL;AAzExB,0FAAkE;AAwEhE,mCAxEK,kCAAwB,CAwEL;AAvE1B,wFAAgE;AAyE9D,kCAzEK,iCAAuB,CAyEL;AAxEzB,sFAA8D;AAyE5D,iCAzEK,gCAAsB,CAyEL;AAxExB,gFAAwD;AAyEtD,8BAzEK,6BAAmB,CAyEL;AAxErB,4EAAoD;AA0ElD,4BA1EK,2BAAiB,CA0EL;AAzEnB,gGAAwE;AA0EtE,sCA1EK,qCAA2B,CA0EL;AAzE7B,kHAA0F;AA0ExF,+CA1EK,8CAAoC,CA0EL;AAzEtC,oFAA4D;AA0E1D,gCA1EK,+BAAqB,CA0EL;AAzEvB,oFAA4D;AA0E1D,gCA1EK,+BAAqB,CA0EL;AAzEvB,wHAAgG;AA0E9F,kDA1EK,iDAAuC,CA0EL;AAzEzC,0FAAkE;AA0EhE,mCA1EK,kCAAwB,CA0EL;AAzE1B,oFAA4D;AA0E1D,gCA1EK,+BAAqB,CA0EL;AAzEvB,oFAA4D;AA0E1D,gCA1EK,+BAAqB,CA0EL;AAzEvB,4EAAoD;AA0ElD,4BA1EK,2BAAiB,CA0EL;AAzEnB,4EAAoD;AA0ElD,4BA1EK,2BAAiB,CA0EL;AAzEnB,4EAAoD;AA0ElD,4BA1EK,2BAAiB,CA0EL;AAzEnB,8EAAsD;AA0EpD,6BA1EK,4BAAkB,CA0EL;AAzEpB,8EAAsD;AA0EpD,6BA1EK,4BAAkB,CA0EL;AAzEpB,wFAAgE;AA0E9D,kCA1EK,iCAAuB,CA0EL;AAzEzB,gGAAwE;AA0EtE,sCA1EK,qCAA2B,CA0EL;AAzE7B,oEAA4C;AA0E1C,wBA1EK,uBAAa,CA0EL;AAzEf,oFAA4D;AA0E1D,gCA1EK,+BAAqB,CA0EL;AAzEvB,8GAAsF;AA0EpF,6CA1EK,4CAAkC,CA0EL;AAzEpC,6CAAsD;AA0EpD,6FA1EO,yBAAY,OA0EP;AAEZ,yFA5EqB,qBAAQ,OA4ErB;AA3EV,0FAAkE;AA4EhE,mCA5EK,kCAAwB,CA4EL;AA3E1B,4GAAoF;AA4ElF,4CA5EK,2CAAiC,CA4EL;AA3EnC,oGAA4E;AA4E1E,wCA5EK,uCAA6B,CA4EL;AA3E/B,oHAA4F;AA4E1F,gDA5EK,+CAAqC,CA4EL;AA3EvC,gHAAwF;AA4EtF,8CA5EK,6CAAmC,CA4EL;AA3ErC,sGAA8E;AA4E5E,yCA5EK,wCAA8B,CA4EL;AA3EhC,kEAA0C;AA4ExC,uBA5EK,sBAAY,CA4EL;AA3Ed,gEAAwC;AA4EtC,sBA5EK,qBAAW,CA4EL;AA3Eb,4DAAoC;AA4ElC,oBA5EK,mBAAS,CA4EL;AA3EX,kFAA0D;AA4ExD,+BA5EK,8BAAoB,CA4EL;AA3EtB,4EAAoD;AA4ElD,4BA5EK,2BAAiB,CA4EL;AA3EnB,kFAA0D;AA+DxD,+BA/DK,8BAAoB,CA+DL;AA9DtB,sEAA8C;AA4E5C,yBA5EK,wBAAc,CA4EL;AA3EhB,4FAAoE;AAiFlE,oCAjFK,mCAAyB,CAiFL;AAhF3B,8EAAsD;AAiFpD,6BAjFK,4BAAkB,CAiFL;AAhFpB,wFAAgE;AAkF9D,kCAlFK,iCAAuB,CAkFL;AAjFzB,mDAAgD;AAgF9C,8FAhFO,6BAAa,OAgFP;AA/Ef,qGAAkG;AA4EhG,uHA5EO,+EAAsC,OA4EP;AA3ExC,gFAAwD;AAuEtD,8BAvEK,6BAAmB,CAuEL;AAtErB,0DAAkC;AAuEhC,mBAvEK,kBAAQ,CAuEL;AAtEV,oGAA4E;AAuE1E,wCAvEK,uCAA6B,CAuEL;AAtE/B,oFAA4D;AA6E1D,gCA7EK,+BAAqB,CA6EL;AA5EvB,qEAAkE;AA6EhE,uGA7EO,+CAAsB,OA6EP;AA5ExB,kEAA0C;AA6ExC,uBA7EK,sBAAY,CA6EL;AA1Ed,iDAAmC;AAiBjC,wBAAM;AAhBR,2DAA6C;AA0B3C,kCAAW;AAzBb,qDAAuC;AA2DrC,4BAAQ;AA1DV,+EAAiE;AA+D/D,sDAAqB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.transformCanvasToIJK = void 0;
|
|
7
|
+
const transformWorldToIndex_1 = __importDefault(require("./transformWorldToIndex"));
|
|
8
|
+
function transformCanvasToIJK(viewport, canvasPoint) {
|
|
9
|
+
const { imageData: vtkImageData } = viewport.getImageData();
|
|
10
|
+
const worldPoint = viewport.canvasToWorld(canvasPoint);
|
|
11
|
+
return (0, transformWorldToIndex_1.default)(vtkImageData, worldPoint);
|
|
12
|
+
}
|
|
13
|
+
exports.transformCanvasToIJK = transformCanvasToIJK;
|
|
14
|
+
//# sourceMappingURL=transformCanvasToIJK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformCanvasToIJK.js","sourceRoot":"","sources":["../../../src/utilities/transformCanvasToIJK.ts"],"names":[],"mappings":";;;;;;AACA,oFAA4D;AAQ5D,SAAgB,oBAAoB,CAClC,QAA0C,EAC1C,WAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,IAAA,+BAAqB,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AARD,oDAQC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.transformIJKToCanvas = void 0;
|
|
7
|
+
const transformIndexToWorld_1 = __importDefault(require("./transformIndexToWorld"));
|
|
8
|
+
function transformIJKToCanvas(viewport, ijkPoint) {
|
|
9
|
+
const { imageData: vtkImageData } = viewport.getImageData();
|
|
10
|
+
const worldPoint = (0, transformIndexToWorld_1.default)(vtkImageData, ijkPoint);
|
|
11
|
+
return viewport.worldToCanvas(worldPoint);
|
|
12
|
+
}
|
|
13
|
+
exports.transformIJKToCanvas = transformIJKToCanvas;
|
|
14
|
+
//# sourceMappingURL=transformIJKToCanvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIJKToCanvas.js","sourceRoot":"","sources":["../../../src/utilities/transformIJKToCanvas.ts"],"names":[],"mappings":";;;;;;AACA,oFAA4D;AAQ5D,SAAgB,oBAAoB,CAClC,QAA0C,EAC1C,QAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAA,+BAAqB,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEjE,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AARD,oDAQC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function transformIndexToWorld(imageData, voxelPos) {
|
|
4
|
+
return imageData.indexToWorld(voxelPos);
|
|
5
|
+
}
|
|
6
|
+
exports.default = transformIndexToWorld;
|
|
7
|
+
//# sourceMappingURL=transformIndexToWorld.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIndexToWorld.js","sourceRoot":"","sources":["../../../src/utilities/transformIndexToWorld.ts"],"names":[],"mappings":";;AAWA,SAAwB,qBAAqB,CAAC,SAAS,EAAE,QAAgB;IACvE,OAAO,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAFD,wCAEC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { glMatrix, mat4, vec3 } from 'gl-matrix';
|
|
2
|
+
import { transformIJKToCanvas } from './transformIJKToCanvas';
|
|
3
|
+
import { transformCanvasToIJK } from './transformCanvasToIJK';
|
|
4
|
+
function getCurrentVolumeViewportSlice(viewport) {
|
|
5
|
+
const { dimensions, scalarData } = viewport.getImageData();
|
|
6
|
+
const { width: canvasWidth, height: canvasHeight } = viewport.getCanvas();
|
|
7
|
+
const ijkOriginPoint = transformCanvasToIJK(viewport, [0, 0]);
|
|
8
|
+
const ijkRowPoint = transformCanvasToIJK(viewport, [canvasWidth - 1, 0]);
|
|
9
|
+
const ijkColPoint = transformCanvasToIJK(viewport, [0, canvasHeight - 1]);
|
|
10
|
+
const ijkRowVec = vec3.sub(vec3.create(), ijkRowPoint, ijkOriginPoint);
|
|
11
|
+
const ijkColVec = vec3.sub(vec3.create(), ijkColPoint, ijkOriginPoint);
|
|
12
|
+
const ijkSliceVec = vec3.cross(vec3.create(), ijkRowVec, ijkColVec);
|
|
13
|
+
vec3.normalize(ijkRowVec, ijkRowVec);
|
|
14
|
+
vec3.normalize(ijkColVec, ijkColVec);
|
|
15
|
+
vec3.normalize(ijkSliceVec, ijkSliceVec);
|
|
16
|
+
const maxIJKRowVec = Math.max(Math.abs(ijkRowVec[0]), Math.abs(ijkRowVec[1]), Math.abs(ijkRowVec[2]));
|
|
17
|
+
const maxIJKColVec = Math.max(Math.abs(ijkColVec[0]), Math.abs(ijkColVec[1]), Math.abs(ijkColVec[2]));
|
|
18
|
+
if (!glMatrix.equals(1, maxIJKRowVec) || !glMatrix.equals(1, maxIJKColVec)) {
|
|
19
|
+
throw new Error('Livewire is not available for rotate/oblique viewports');
|
|
20
|
+
}
|
|
21
|
+
const [sx, sy, sz] = dimensions;
|
|
22
|
+
const ijkCorners = [
|
|
23
|
+
[0, 0, 0],
|
|
24
|
+
[sx - 1, 0, 0],
|
|
25
|
+
[0, sy - 1, 0],
|
|
26
|
+
[sx - 1, sy - 1, 0],
|
|
27
|
+
[0, 0, sz - 1],
|
|
28
|
+
[sx - 1, 0, sz - 1],
|
|
29
|
+
[0, sy - 1, sz - 1],
|
|
30
|
+
[sx - 1, sy - 1, sz - 1],
|
|
31
|
+
];
|
|
32
|
+
const canvasCorners = ijkCorners.map((ijkCorner) => transformIJKToCanvas(viewport, ijkCorner));
|
|
33
|
+
const canvasAABB = canvasCorners.reduce((aabb, canvasPoint) => {
|
|
34
|
+
aabb.minX = Math.min(aabb.minX, canvasPoint[0]);
|
|
35
|
+
aabb.minY = Math.min(aabb.minY, canvasPoint[1]);
|
|
36
|
+
aabb.maxX = Math.max(aabb.maxX, canvasPoint[0]);
|
|
37
|
+
aabb.maxY = Math.max(aabb.maxY, canvasPoint[1]);
|
|
38
|
+
return aabb;
|
|
39
|
+
}, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });
|
|
40
|
+
const ijkTopLeft = transformCanvasToIJK(viewport, [
|
|
41
|
+
canvasAABB.minX,
|
|
42
|
+
canvasAABB.minY,
|
|
43
|
+
]);
|
|
44
|
+
const ijkBottomRight = transformCanvasToIJK(viewport, [
|
|
45
|
+
canvasAABB.maxX,
|
|
46
|
+
canvasAABB.maxY,
|
|
47
|
+
]);
|
|
48
|
+
const ijkDiagonal = vec3.sub(vec3.create(), ijkBottomRight, ijkTopLeft);
|
|
49
|
+
const sliceToIndexMatrix = mat4.fromValues(ijkRowVec[0], ijkRowVec[1], ijkRowVec[2], 0, ijkColVec[0], ijkColVec[1], ijkColVec[2], 0, ijkSliceVec[0], ijkSliceVec[1], ijkSliceVec[2], 0, ijkTopLeft[0], ijkTopLeft[1], ijkTopLeft[2], 1);
|
|
50
|
+
const indexToSliceMatrix = mat4.invert(mat4.create(), sliceToIndexMatrix);
|
|
51
|
+
const sliceWidth = vec3.dot(ijkRowVec, ijkDiagonal) + 1;
|
|
52
|
+
const sliceHeight = vec3.dot(ijkColVec, ijkDiagonal) + 1;
|
|
53
|
+
const TypedArray = scalarData.constructor;
|
|
54
|
+
const sliceData = new TypedArray(sliceWidth * sliceHeight);
|
|
55
|
+
const pixelsPerSlice = dimensions[0] * dimensions[1];
|
|
56
|
+
const ijkPixelRow = vec3.clone(ijkTopLeft);
|
|
57
|
+
const ijkPixelCol = vec3.create();
|
|
58
|
+
let slicePixelIndex = 0;
|
|
59
|
+
for (let y = 0; y < sliceHeight; y++) {
|
|
60
|
+
vec3.copy(ijkPixelCol, ijkPixelRow);
|
|
61
|
+
for (let x = 0; x < sliceWidth; x++) {
|
|
62
|
+
const volumePixelIndex = ijkPixelCol[2] * pixelsPerSlice +
|
|
63
|
+
ijkPixelCol[1] * dimensions[0] +
|
|
64
|
+
ijkPixelCol[0];
|
|
65
|
+
if (volumePixelIndex < scalarData.length) {
|
|
66
|
+
sliceData[slicePixelIndex] = scalarData[volumePixelIndex];
|
|
67
|
+
}
|
|
68
|
+
slicePixelIndex++;
|
|
69
|
+
vec3.add(ijkPixelCol, ijkPixelCol, ijkRowVec);
|
|
70
|
+
}
|
|
71
|
+
vec3.add(ijkPixelRow, ijkPixelRow, ijkColVec);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
width: sliceWidth,
|
|
75
|
+
height: sliceHeight,
|
|
76
|
+
scalarData: sliceData,
|
|
77
|
+
sliceToIndexMatrix,
|
|
78
|
+
indexToSliceMatrix,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export { getCurrentVolumeViewportSlice as default, getCurrentVolumeViewportSlice, };
|
|
82
|
+
//# sourceMappingURL=getCurrentVolumeViewportSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrentVolumeViewportSlice.js","sourceRoot":"","sources":["../../../src/utilities/getCurrentVolumeViewportSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ import indexWithinDimensions from './indexWithinDimensions';
|
|
|
26
26
|
import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContainingSameVolumes';
|
|
27
27
|
import getViewportsWithVolumeId from './getViewportsWithVolumeId';
|
|
28
28
|
import transformWorldToIndex from './transformWorldToIndex';
|
|
29
|
+
import transformIndexToWorld from './transformIndexToWorld';
|
|
29
30
|
import loadImageToCanvas from './loadImageToCanvas';
|
|
30
31
|
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
31
32
|
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
@@ -39,6 +40,7 @@ import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeView
|
|
|
39
40
|
import { isImageActor, actorIsA } from './actorCheck';
|
|
40
41
|
import getViewportsWithImageURI from './getViewportsWithImageURI';
|
|
41
42
|
import getClosestStackImageIndexForPoint from './getClosestStackImageIndexForPoint';
|
|
43
|
+
import getCurrentVolumeViewportSlice from './getCurrentVolumeViewportSlice';
|
|
42
44
|
import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
|
|
43
45
|
import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
|
|
44
46
|
import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
|
|
@@ -64,5 +66,5 @@ import * as planar from './planar';
|
|
|
64
66
|
import * as windowLevel from './windowLevel';
|
|
65
67
|
import * as colormap from './colormap';
|
|
66
68
|
import * as transferFunctionUtils from './transferFunctionUtils';
|
|
67
|
-
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
69
|
+
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
68
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import transformWorldToIndex from './transformWorldToIndex';
|
|
2
|
+
export function transformCanvasToIJK(viewport, canvasPoint) {
|
|
3
|
+
const { imageData: vtkImageData } = viewport.getImageData();
|
|
4
|
+
const worldPoint = viewport.canvasToWorld(canvasPoint);
|
|
5
|
+
return transformWorldToIndex(vtkImageData, worldPoint);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=transformCanvasToIJK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformCanvasToIJK.js","sourceRoot":"","sources":["../../../src/utilities/transformCanvasToIJK.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAQ5D,MAAM,UAAU,oBAAoB,CAClC,QAA0C,EAC1C,WAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import transformIndexToWorld from './transformIndexToWorld';
|
|
2
|
+
export function transformIJKToCanvas(viewport, ijkPoint) {
|
|
3
|
+
const { imageData: vtkImageData } = viewport.getImageData();
|
|
4
|
+
const worldPoint = transformIndexToWorld(vtkImageData, ijkPoint);
|
|
5
|
+
return viewport.worldToCanvas(worldPoint);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=transformIJKToCanvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIJKToCanvas.js","sourceRoot":"","sources":["../../../src/utilities/transformIJKToCanvas.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAQ5D,MAAM,UAAU,oBAAoB,CAClC,QAA0C,EAC1C,QAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEjE,OAAO,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIndexToWorld.js","sourceRoot":"","sources":["../../../src/utilities/transformIndexToWorld.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,SAAS,EAAE,QAAgB;IACvE,OAAO,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { mat4 } from 'gl-matrix';
|
|
2
|
+
import { IVolumeViewport } from '../types';
|
|
3
|
+
declare function getCurrentVolumeViewportSlice(viewport: IVolumeViewport): {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
scalarData: any;
|
|
7
|
+
sliceToIndexMatrix: mat4;
|
|
8
|
+
indexToSliceMatrix: mat4;
|
|
9
|
+
};
|
|
10
|
+
export { getCurrentVolumeViewportSlice as default, getCurrentVolumeViewportSlice, };
|
|
11
|
+
//# sourceMappingURL=getCurrentVolumeViewportSlice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrentVolumeViewportSlice.d.ts","sourceRoot":"","sources":["../../../src/utilities/getCurrentVolumeViewportSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAQ,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,eAAe,EAAU,MAAM,UAAU,CAAC;AAYnD,iBAAS,6BAA6B,CAAC,QAAQ,EAAE,eAAe;;;;;;EAmJ/D;AAED,OAAO,EACL,6BAA6B,IAAI,OAAO,EACxC,6BAA6B,GAC9B,CAAC"}
|
|
@@ -26,6 +26,7 @@ import indexWithinDimensions from './indexWithinDimensions';
|
|
|
26
26
|
import getVolumeViewportsContainingSameVolumes from './getVolumeViewportsContainingSameVolumes';
|
|
27
27
|
import getViewportsWithVolumeId from './getViewportsWithVolumeId';
|
|
28
28
|
import transformWorldToIndex from './transformWorldToIndex';
|
|
29
|
+
import transformIndexToWorld from './transformIndexToWorld';
|
|
29
30
|
import loadImageToCanvas from './loadImageToCanvas';
|
|
30
31
|
import renderToCanvasCPU from './renderToCanvasCPU';
|
|
31
32
|
import renderToCanvasGPU from './renderToCanvasGPU';
|
|
@@ -39,6 +40,7 @@ import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeView
|
|
|
39
40
|
import { isImageActor, actorIsA } from './actorCheck';
|
|
40
41
|
import getViewportsWithImageURI from './getViewportsWithImageURI';
|
|
41
42
|
import getClosestStackImageIndexForPoint from './getClosestStackImageIndexForPoint';
|
|
43
|
+
import getCurrentVolumeViewportSlice from './getCurrentVolumeViewportSlice';
|
|
42
44
|
import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
|
|
43
45
|
import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
|
|
44
46
|
import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
|
|
@@ -64,5 +66,5 @@ import * as planar from './planar';
|
|
|
64
66
|
import * as windowLevel from './windowLevel';
|
|
65
67
|
import * as colormap from './colormap';
|
|
66
68
|
import * as transferFunctionUtils from './transferFunctionUtils';
|
|
67
|
-
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
69
|
+
export { eventListener, csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, clamp, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, createUint16SharedArray, createInt16SharedArray, getViewportModality, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, transformIndexToWorld, loadImageToCanvas, renderToCanvasCPU, renderToCanvasGPU, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, isPTPrescaledWithSUV, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, getCurrentVolumeViewportSlice, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, deepMerge, getScalingParameters, getScalarDataType, colormap, getImageLegacy, ProgressiveIterator, decimate, imageRetrieveMetadataProvider, transferFunctionUtils, updateVTKImageDataWithCornerstoneImage, sortImageIdsAndGetSpacing, makeVolumeMetadata, isValidVolume, genericMetadataProvider, isVideoTransferSyntax, getBufferConfiguration, VoxelManager, };
|
|
68
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformCanvasToIJK.d.ts","sourceRoot":"","sources":["../../../src/utilities/transformCanvasToIJK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASnE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG,cAAc,EAC1C,WAAW,EAAE,MAAM,OAMpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIJKToCanvas.d.ts","sourceRoot":"","sources":["../../../src/utilities/transformIJKToCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASnE,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG,cAAc,EAC1C,QAAQ,EAAE,MAAM,qCAMjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformIndexToWorld.d.ts","sourceRoot":"","sources":["../../../src/utilities/transformIndexToWorld.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAW1C,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,SAAS,KAAA,EAAE,QAAQ,EAAE,MAAM,OAExE"}
|