@cornerstonejs/core 0.33.2 → 0.34.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/getVolumeSliceRangeInfo.d.ts +7 -0
- package/dist/cjs/utilities/getVolumeSliceRangeInfo.js +29 -0
- package/dist/cjs/utilities/getVolumeSliceRangeInfo.js.map +1 -0
- package/dist/cjs/utilities/getVolumeViewportScrollInfo.d.ts +6 -0
- package/dist/cjs/utilities/getVolumeViewportScrollInfo.js +17 -0
- package/dist/cjs/utilities/getVolumeViewportScrollInfo.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +3 -1
- package/dist/cjs/utilities/index.js +5 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/esm/utilities/getVolumeSliceRangeInfo.d.ts +7 -0
- package/dist/esm/utilities/getVolumeSliceRangeInfo.js +24 -0
- package/dist/esm/utilities/getVolumeSliceRangeInfo.js.map +1 -0
- package/dist/esm/utilities/getVolumeViewportScrollInfo.d.ts +6 -0
- package/dist/esm/utilities/getVolumeViewportScrollInfo.js +12 -0
- package/dist/esm/utilities/getVolumeViewportScrollInfo.js.map +1 -0
- package/dist/esm/utilities/index.d.ts +3 -1
- package/dist/esm/utilities/index.js +3 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActorSliceRange, IVolumeViewport, ICamera } from '../types';
|
|
2
|
+
declare function getVolumeSliceRangeInfo(viewport: IVolumeViewport, volumeId: string): {
|
|
3
|
+
sliceRange: ActorSliceRange;
|
|
4
|
+
spacingInNormalDirection: number;
|
|
5
|
+
camera: ICamera;
|
|
6
|
+
};
|
|
7
|
+
export default getVolumeSliceRangeInfo;
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
const getSliceRange_1 = __importDefault(require("./getSliceRange"));
|
|
7
|
+
const getTargetVolumeAndSpacingInNormalDir_1 = __importDefault(require("./getTargetVolumeAndSpacingInNormalDir"));
|
|
8
|
+
function getVolumeSliceRangeInfo(viewport, volumeId) {
|
|
9
|
+
const camera = viewport.getCamera();
|
|
10
|
+
const { focalPoint, viewPlaneNormal } = camera;
|
|
11
|
+
const { spacingInNormalDirection, actorUID } = (0, getTargetVolumeAndSpacingInNormalDir_1.default)(viewport, camera, volumeId);
|
|
12
|
+
if (!actorUID) {
|
|
13
|
+
throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
|
|
14
|
+
}
|
|
15
|
+
const actorEntry = viewport.getActor(actorUID);
|
|
16
|
+
if (!actorEntry) {
|
|
17
|
+
console.warn('No actor found for with actorUID of', actorUID);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const volumeActor = actorEntry.actor;
|
|
21
|
+
const sliceRange = (0, getSliceRange_1.default)(volumeActor, viewPlaneNormal, focalPoint);
|
|
22
|
+
return {
|
|
23
|
+
sliceRange,
|
|
24
|
+
spacingInNormalDirection,
|
|
25
|
+
camera,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.default = getVolumeSliceRangeInfo;
|
|
29
|
+
//# sourceMappingURL=getVolumeSliceRangeInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getVolumeSliceRangeInfo.js","sourceRoot":"","sources":["../../../src/utilities/getVolumeSliceRangeInfo.ts"],"names":[],"mappings":";;;;;AAAA,oEAA4C;AAC5C,kHAA0F;AAc1F,SAAS,uBAAuB,CAC9B,QAAyB,EACzB,QAAgB;IAMhB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAC1C,IAAA,8CAAoC,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,kBAAkB,CAClE,CAAC;KACH;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAAoB,CAAC;IACpD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAE3E,OAAO;QACL,UAAU;QACV,wBAAwB;QACxB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,kBAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
const getVolumeSliceRangeInfo_1 = __importDefault(require("./getVolumeSliceRangeInfo"));
|
|
7
|
+
function getVolumeViewportScrollInfo(viewport, volumeId) {
|
|
8
|
+
const { sliceRange, spacingInNormalDirection } = (0, getVolumeSliceRangeInfo_1.default)(viewport, volumeId);
|
|
9
|
+
const { min, max, current } = sliceRange;
|
|
10
|
+
const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
|
|
11
|
+
const fraction = (current - min) / (max - min);
|
|
12
|
+
const floatingStepNumber = fraction * numScrollSteps;
|
|
13
|
+
const currentStepIndex = Math.round(floatingStepNumber);
|
|
14
|
+
return { numScrollSteps, currentStepIndex };
|
|
15
|
+
}
|
|
16
|
+
exports.default = getVolumeViewportScrollInfo;
|
|
17
|
+
//# sourceMappingURL=getVolumeViewportScrollInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getVolumeViewportScrollInfo.js","sourceRoot":"","sources":["../../../src/utilities/getVolumeViewportScrollInfo.ts"],"names":[],"mappings":";;;;;AACA,wFAAgE;AAQhE,SAAS,2BAA2B,CAClC,QAAyB,EACzB,QAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,GAAG,IAAA,iCAAuB,EACtE,QAAQ,EACR,QAAQ,CACT,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAGzC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAG1E,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,QAAQ,GAAG,cAAc,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAExD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAC9C,CAAC;AAED,kBAAe,2BAA2B,CAAC"}
|
|
@@ -25,6 +25,8 @@ import loadImageToCanvas from './loadImageToCanvas';
|
|
|
25
25
|
import renderToCanvas from './renderToCanvas';
|
|
26
26
|
import worldToImageCoords from './worldToImageCoords';
|
|
27
27
|
import imageToWorldCoords from './imageToWorldCoords';
|
|
28
|
+
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
29
|
+
import getVolumeViewportScrollInfo from './getVolumeViewportScrollInfo';
|
|
28
30
|
import getSliceRange from './getSliceRange';
|
|
29
31
|
import snapFocalPointToSlice from './snapFocalPointToSlice';
|
|
30
32
|
import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeViewport';
|
|
@@ -38,4 +40,4 @@ import hasNaNValues from './hasNaNValues';
|
|
|
38
40
|
import applyPreset from './applyPreset';
|
|
39
41
|
import * as planar from './planar';
|
|
40
42
|
import * as windowLevel from './windowLevel';
|
|
41
|
-
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
43
|
+
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
@@ -26,7 +26,7 @@ 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.applyPreset = exports.hasNaNValues = exports.getViewportImageCornersInWorld = exports.spatialRegistrationMetadataProvider = exports.calculateViewportsSpatialRegistration = exports.getClosestStackImageIndexForPoint = exports.getViewportsWithImageURI = exports.actorIsA = exports.isImageActor = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.transformWorldToIndex = exports.getViewportsWithVolumeId = 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.createLinearRGBTransferFunction = exports.getVoiFromSigmoidRGBTransferFunction = exports.createSigmoidRGBTransferFunction = exports.invertRgbTransferFunction = void 0;
|
|
29
|
+
exports.applyPreset = exports.hasNaNValues = exports.getViewportImageCornersInWorld = exports.spatialRegistrationMetadataProvider = exports.calculateViewportsSpatialRegistration = exports.getClosestStackImageIndexForPoint = exports.getViewportsWithImageURI = exports.actorIsA = exports.isImageActor = exports.getImageSliceDataForVolumeViewport = exports.snapFocalPointToSlice = exports.getSliceRange = exports.getVolumeViewportScrollInfo = exports.getVolumeSliceRangeInfo = exports.imageToWorldCoords = exports.worldToImageCoords = exports.renderToCanvas = exports.loadImageToCanvas = exports.transformWorldToIndex = exports.getViewportsWithVolumeId = 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.createLinearRGBTransferFunction = exports.getVoiFromSigmoidRGBTransferFunction = exports.createSigmoidRGBTransferFunction = exports.invertRgbTransferFunction = void 0;
|
|
30
30
|
const invertRgbTransferFunction_1 = __importDefault(require("./invertRgbTransferFunction"));
|
|
31
31
|
exports.invertRgbTransferFunction = invertRgbTransferFunction_1.default;
|
|
32
32
|
const createSigmoidRGBTransferFunction_1 = __importDefault(require("./createSigmoidRGBTransferFunction"));
|
|
@@ -81,6 +81,10 @@ const worldToImageCoords_1 = __importDefault(require("./worldToImageCoords"));
|
|
|
81
81
|
exports.worldToImageCoords = worldToImageCoords_1.default;
|
|
82
82
|
const imageToWorldCoords_1 = __importDefault(require("./imageToWorldCoords"));
|
|
83
83
|
exports.imageToWorldCoords = imageToWorldCoords_1.default;
|
|
84
|
+
const getVolumeSliceRangeInfo_1 = __importDefault(require("./getVolumeSliceRangeInfo"));
|
|
85
|
+
exports.getVolumeSliceRangeInfo = getVolumeSliceRangeInfo_1.default;
|
|
86
|
+
const getVolumeViewportScrollInfo_1 = __importDefault(require("./getVolumeViewportScrollInfo"));
|
|
87
|
+
exports.getVolumeViewportScrollInfo = getVolumeViewportScrollInfo_1.default;
|
|
84
88
|
const getSliceRange_1 = __importDefault(require("./getSliceRange"));
|
|
85
89
|
exports.getSliceRange = getSliceRange_1.default;
|
|
86
90
|
const snapFocalPointToSlice_1 = __importDefault(require("./snapFocalPointToSlice"));
|
|
@@ -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;AA8CrC,oCA9CN,mCAAO,CA8CwB;AA7CtC,0GAAkF;AA8ChF,2CA9CK,0CAAgC,CA8CL;AA7ClC,kHAA0F;AA8CxF,+CA9CK,8CAAoC,CA8CL;AA7CtC,wGAAgF;AA8C9E,0CA9CK,yCAA+B,CA8CL;AA7CjC,0FAAkE;AA8ChE,mCA9CK,kCAAwB,CA8CL;AA7C1B,kEAA0C;AA8CxC,uBA9CK,sBAAY,CA8CL;AA7Cd,sDAA8B;AAgD5B,iBAhDK,gBAAM,CAgDL;AA/CR,4DAAoC;AAiDlC,oBAjDK,mBAAS,CAiDL;AAhDX,kEAA0C;AAiDxC,uBAjDK,sBAAY,CAiDL;AAhDd,kEAA0C;AA2CxC,uBA3CK,sBAAY,CA2CL;AA1Cd,sHAA8F;AA2C5F,iDA3CK,gDAAsC,CA2CL;AA1CxC,wDAAgC;AA+C9B,kBA/CK,iBAAO,CA+CL;AA9CT,8DAAsC;AA+CpC,qBA/CK,oBAAU,CA+CL;AA9CZ,sFAA8D;AAgD5D,iCAhDK,gCAAsB,CAgDL;AA/CxB,0FAAkE;AA8ChE,mCA9CK,kCAAwB,CA8CL;AA7C1B,4EAAoD;AAgDlD,4BAhDK,2BAAiB,CAgDL;AA/CnB,gGAAwE;AAgDtE,sCAhDK,qCAA2B,CAgDL;AA/C7B,kHAA0F;AAgDxF,+CAhDK,8CAAoC,CAgDL;AA/CtC,oFAA4D;AAgD1D,gCAhDK,+BAAqB,CAgDL;AA/CvB,oFAA4D;AAgD1D,gCAhDK,+BAAqB,CAgDL;AA/CvB,wHAAgG;AAgD9F,kDAhDK,iDAAuC,CAgDL;AA/CzC,0FAAkE;AAgDhE,mCAhDK,kCAAwB,CAgDL;AA/C1B,oFAA4D;AAgD1D,gCAhDK,+BAAqB,CAgDL;AA/CvB,4EAAoD;AAgDlD,4BAhDK,2BAAiB,CAgDL;AA/CnB,sEAA8C;AAgD5C,yBAhDK,wBAAc,CAgDL;AA/ChB,8EAAsD;AAgDpD,6BAhDK,4BAAkB,CAgDL;AA/CpB,8EAAsD;AAgDpD,6BAhDK,4BAAkB,CAgDL;AA/CpB,wFAAgE;AAgD9D,kCAhDK,iCAAuB,CAgDL;AA/CzB,gGAAwE;AAgDtE,sCAhDK,qCAA2B,CAgDL;AA/C7B,oEAA4C;AAgD1C,wBAhDK,uBAAa,CAgDL;AA/Cf,oFAA4D;AAgD1D,gCAhDK,+BAAqB,CAgDL;AA/CvB,8GAAsF;AAgDpF,6CAhDK,4CAAkC,CAgDL;AA/CpC,6CAAsD;AAgDpD,6FAhDO,yBAAY,OAgDP;AACZ,yFAjDqB,qBAAQ,OAiDrB;AAhDV,0FAAkE;AAiDhE,mCAjDK,kCAAwB,CAiDL;AAhD1B,4GAAoF;AAiDlF,4CAjDK,2CAAiC,CAiDL;AAhDnC,oHAA4F;AAiD1F,gDAjDK,+CAAqC,CAiDL;AAhDvC,gHAAwF;AAiDtF,8CAjDK,6CAAmC,CAiDL;AAhDrC,sGAA8E;AAiD5E,yCAjDK,wCAA8B,CAiDL;AAhDhC,kEAA0C;AAiDxC,uBAjDK,sBAAY,CAiDL;AAhDd,gEAAwC;AAiDtC,sBAjDK,qBAAW,CAiDL;AA9Cb,iDAAmC;AAajC,wBAAM;AAZR,2DAA6C;AAmB3C,kCAAW"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActorSliceRange, IVolumeViewport, ICamera } from '../types';
|
|
2
|
+
declare function getVolumeSliceRangeInfo(viewport: IVolumeViewport, volumeId: string): {
|
|
3
|
+
sliceRange: ActorSliceRange;
|
|
4
|
+
spacingInNormalDirection: number;
|
|
5
|
+
camera: ICamera;
|
|
6
|
+
};
|
|
7
|
+
export default getVolumeSliceRangeInfo;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import getSliceRange from './getSliceRange';
|
|
2
|
+
import getTargetVolumeAndSpacingInNormalDir from './getTargetVolumeAndSpacingInNormalDir';
|
|
3
|
+
function getVolumeSliceRangeInfo(viewport, volumeId) {
|
|
4
|
+
const camera = viewport.getCamera();
|
|
5
|
+
const { focalPoint, viewPlaneNormal } = camera;
|
|
6
|
+
const { spacingInNormalDirection, actorUID } = getTargetVolumeAndSpacingInNormalDir(viewport, camera, volumeId);
|
|
7
|
+
if (!actorUID) {
|
|
8
|
+
throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
|
|
9
|
+
}
|
|
10
|
+
const actorEntry = viewport.getActor(actorUID);
|
|
11
|
+
if (!actorEntry) {
|
|
12
|
+
console.warn('No actor found for with actorUID of', actorUID);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const volumeActor = actorEntry.actor;
|
|
16
|
+
const sliceRange = getSliceRange(volumeActor, viewPlaneNormal, focalPoint);
|
|
17
|
+
return {
|
|
18
|
+
sliceRange,
|
|
19
|
+
spacingInNormalDirection,
|
|
20
|
+
camera,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export default getVolumeSliceRangeInfo;
|
|
24
|
+
//# sourceMappingURL=getVolumeSliceRangeInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getVolumeSliceRangeInfo.js","sourceRoot":"","sources":["../../../src/utilities/getVolumeSliceRangeInfo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAc1F,SAAS,uBAAuB,CAC9B,QAAyB,EACzB,QAAgB;IAMhB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAC1C,oCAAoC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,kBAAkB,CAClE,CAAC;KACH;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAAoB,CAAC;IACpD,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAE3E,OAAO;QACL,UAAU;QACV,wBAAwB;QACxB,MAAM;KACP,CAAC;AACJ,CAAC;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
2
|
+
function getVolumeViewportScrollInfo(viewport, volumeId) {
|
|
3
|
+
const { sliceRange, spacingInNormalDirection } = getVolumeSliceRangeInfo(viewport, volumeId);
|
|
4
|
+
const { min, max, current } = sliceRange;
|
|
5
|
+
const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
|
|
6
|
+
const fraction = (current - min) / (max - min);
|
|
7
|
+
const floatingStepNumber = fraction * numScrollSteps;
|
|
8
|
+
const currentStepIndex = Math.round(floatingStepNumber);
|
|
9
|
+
return { numScrollSteps, currentStepIndex };
|
|
10
|
+
}
|
|
11
|
+
export default getVolumeViewportScrollInfo;
|
|
12
|
+
//# sourceMappingURL=getVolumeViewportScrollInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getVolumeViewportScrollInfo.js","sourceRoot":"","sources":["../../../src/utilities/getVolumeViewportScrollInfo.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAQhE,SAAS,2BAA2B,CAClC,QAAyB,EACzB,QAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,GAAG,uBAAuB,CACtE,QAAQ,EACR,QAAQ,CACT,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAGzC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAG1E,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC/C,MAAM,kBAAkB,GAAG,QAAQ,GAAG,cAAc,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAExD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAC9C,CAAC;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -25,6 +25,8 @@ import loadImageToCanvas from './loadImageToCanvas';
|
|
|
25
25
|
import renderToCanvas from './renderToCanvas';
|
|
26
26
|
import worldToImageCoords from './worldToImageCoords';
|
|
27
27
|
import imageToWorldCoords from './imageToWorldCoords';
|
|
28
|
+
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
29
|
+
import getVolumeViewportScrollInfo from './getVolumeViewportScrollInfo';
|
|
28
30
|
import getSliceRange from './getSliceRange';
|
|
29
31
|
import snapFocalPointToSlice from './snapFocalPointToSlice';
|
|
30
32
|
import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeViewport';
|
|
@@ -38,4 +40,4 @@ import hasNaNValues from './hasNaNValues';
|
|
|
38
40
|
import applyPreset from './applyPreset';
|
|
39
41
|
import * as planar from './planar';
|
|
40
42
|
import * as windowLevel from './windowLevel';
|
|
41
|
-
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
43
|
+
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
@@ -25,6 +25,8 @@ import loadImageToCanvas from './loadImageToCanvas';
|
|
|
25
25
|
import renderToCanvas from './renderToCanvas';
|
|
26
26
|
import worldToImageCoords from './worldToImageCoords';
|
|
27
27
|
import imageToWorldCoords from './imageToWorldCoords';
|
|
28
|
+
import getVolumeSliceRangeInfo from './getVolumeSliceRangeInfo';
|
|
29
|
+
import getVolumeViewportScrollInfo from './getVolumeViewportScrollInfo';
|
|
28
30
|
import getSliceRange from './getSliceRange';
|
|
29
31
|
import snapFocalPointToSlice from './snapFocalPointToSlice';
|
|
30
32
|
import getImageSliceDataForVolumeViewport from './getImageSliceDataForVolumeViewport';
|
|
@@ -38,5 +40,5 @@ import hasNaNValues from './hasNaNValues';
|
|
|
38
40
|
import applyPreset from './applyPreset';
|
|
39
41
|
import * as planar from './planar';
|
|
40
42
|
import * as windowLevel from './windowLevel';
|
|
41
|
-
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
43
|
+
export { csUtils as invertRgbTransferFunction, createSigmoidRGBTransferFunction, getVoiFromSigmoidRGBTransferFunction, createLinearRGBTransferFunction, scaleRgbTransferFunction, triggerEvent, imageIdToURI, calibratedPixelSpacingMetadataProvider, uuidv4, planar, getMinMax, getRuntimeId, isEqual, isOpposite, createFloat32SharedArray, createUint8SharedArray, windowLevel, getClosestImageId, getSpacingInNormalDirection, getTargetVolumeAndSpacingInNormalDir, getVolumeActorCorners, indexWithinDimensions, getVolumeViewportsContainingSameVolumes, getViewportsWithVolumeId, transformWorldToIndex, loadImageToCanvas, renderToCanvas, worldToImageCoords, imageToWorldCoords, getVolumeSliceRangeInfo, getVolumeViewportScrollInfo, getSliceRange, snapFocalPointToSlice, getImageSliceDataForVolumeViewport, isImageActor, actorIsA, getViewportsWithImageURI, getClosestStackImageIndexForPoint, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, hasNaNValues, applyPreset, };
|
|
42
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,gCAAgC,EAChC,oCAAoC,EACpC,+BAA+B,EAC/B,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,sCAAsC,EACtC,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,uCAAuC,EACvC,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,kCAAkC,EAClC,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,EAC9B,YAAY,EACZ,WAAW,GACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,gCAAgC,EAChC,oCAAoC,EACpC,+BAA+B,EAC/B,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,sCAAsC,EACtC,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,OAAO,EACP,UAAU,EACV,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,uCAAuC,EACvC,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EACrB,kCAAkC,EAClC,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,EAC9B,YAAY,EACZ,WAAW,GACZ,CAAC"}
|