@cornerstonejs/core 0.20.0 → 0.21.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.
@@ -0,0 +1,2 @@
1
+ import { IStackViewport, IVolumeViewport, Point3 } from '../types';
2
+ export default function getViewportImageCornersInWorld(viewport: IStackViewport | IVolumeViewport): Point3[];
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getViewportImageCornersInWorld(viewport) {
4
+ const { imageData, dimensions } = viewport.getImageData();
5
+ const { canvas } = viewport;
6
+ const topLeftCanvas = [0, 0];
7
+ const topRightCanvas = [canvas.width, 0];
8
+ const bottomRightCanvas = [canvas.width, canvas.height];
9
+ const bottomLeftCanvas = [0, canvas.height];
10
+ const topLeftWorld = viewport.canvasToWorld(topLeftCanvas);
11
+ const topRightWorld = viewport.canvasToWorld(topRightCanvas);
12
+ const bottomRightWorld = viewport.canvasToWorld(bottomRightCanvas);
13
+ const bottomLeftWorld = viewport.canvasToWorld(bottomLeftCanvas);
14
+ const topLeftImage = imageData.worldToIndex(topLeftWorld);
15
+ const topRightImage = imageData.worldToIndex(topRightWorld);
16
+ const bottomRightImage = imageData.worldToIndex(bottomRightWorld);
17
+ const bottomLeftImage = imageData.worldToIndex(bottomLeftWorld);
18
+ return _getStackViewportImageCorners({
19
+ dimensions,
20
+ imageData,
21
+ topLeftImage,
22
+ topRightImage,
23
+ bottomRightImage,
24
+ bottomLeftImage,
25
+ topLeftWorld,
26
+ topRightWorld,
27
+ bottomRightWorld,
28
+ bottomLeftWorld,
29
+ });
30
+ }
31
+ exports.default = getViewportImageCornersInWorld;
32
+ function _getStackViewportImageCorners({ dimensions, imageData, topLeftImage, topRightImage, bottomRightImage, bottomLeftImage, topLeftWorld, topRightWorld, bottomRightWorld, bottomLeftWorld, }) {
33
+ const topLeftImageWorld = _isInBounds(topLeftImage, dimensions)
34
+ ? topLeftWorld
35
+ : imageData.indexToWorld([0, 0, 0]);
36
+ const topRightImageWorld = _isInBounds(topRightImage, dimensions)
37
+ ? topRightWorld
38
+ : imageData.indexToWorld([dimensions[0] - 1, 0, 0]);
39
+ const bottomRightImageWorld = _isInBounds(bottomRightImage, dimensions)
40
+ ? bottomRightWorld
41
+ : imageData.indexToWorld([
42
+ dimensions[0] - 1,
43
+ dimensions[1] - 1,
44
+ 0,
45
+ ]);
46
+ const bottomLeftImageWorld = _isInBounds(bottomLeftImage, dimensions)
47
+ ? bottomLeftWorld
48
+ : imageData.indexToWorld([0, dimensions[1] - 1, 0]);
49
+ return [
50
+ topLeftImageWorld,
51
+ topRightImageWorld,
52
+ bottomLeftImageWorld,
53
+ bottomRightImageWorld,
54
+ ];
55
+ }
56
+ function _isInBounds(imageCoord, dimensions) {
57
+ return (imageCoord[0] > 0 ||
58
+ imageCoord[0] < dimensions[0] - 1 ||
59
+ imageCoord[1] > 0 ||
60
+ imageCoord[1] < dimensions[1] - 1 ||
61
+ imageCoord[2] > 0 ||
62
+ imageCoord[2] < dimensions[2] - 1);
63
+ }
64
+ //# sourceMappingURL=getViewportImageCornersInWorld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getViewportImageCornersInWorld.js","sourceRoot":"","sources":["../../../src/utilities/getViewportImageCornersInWorld.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import isImageActor from './isImageActor';
29
29
  import getViewportsWithImageURI from './getViewportsWithImageURI';
30
30
  import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
31
31
  import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
32
+ import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
32
33
  import * as planar from './planar';
33
34
  import * as windowLevel from './windowLevel';
34
- export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, };
35
+ export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, };
@@ -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.spatialRegistrationMetadataProvider = exports.calculateViewportsSpatialRegistration = exports.getViewportsWithImageURI = 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.invertRgbTransferFunction = void 0;
29
+ exports.getViewportImageCornersInWorld = exports.spatialRegistrationMetadataProvider = exports.calculateViewportsSpatialRegistration = exports.getViewportsWithImageURI = 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.invertRgbTransferFunction = void 0;
30
30
  const invertRgbTransferFunction_1 = __importDefault(require("./invertRgbTransferFunction"));
31
31
  exports.invertRgbTransferFunction = invertRgbTransferFunction_1.default;
32
32
  const scaleRgbTransferFunction_1 = __importDefault(require("./scaleRgbTransferFunction"));
@@ -89,6 +89,8 @@ const calculateViewportsSpatialRegistration_1 = __importDefault(require("./calcu
89
89
  exports.calculateViewportsSpatialRegistration = calculateViewportsSpatialRegistration_1.default;
90
90
  const spatialRegistrationMetadataProvider_1 = __importDefault(require("./spatialRegistrationMetadataProvider"));
91
91
  exports.spatialRegistrationMetadataProvider = spatialRegistrationMetadataProvider_1.default;
92
+ const getViewportImageCornersInWorld_1 = __importDefault(require("./getViewportImageCornersInWorld"));
93
+ exports.getViewportImageCornersInWorld = getViewportImageCornersInWorld_1.default;
92
94
  const planar = __importStar(require("./planar"));
93
95
  exports.planar = planar;
94
96
  const windowLevel = __importStar(require("./windowLevel"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;AAqCrC,oCArCN,mCAAO,CAqCwB;AApCtC,0FAAkE;AAqChE,mCArCK,kCAAwB,CAqCL;AApC1B,kEAA0C;AAqCxC,uBArCK,sBAAY,CAqCL;AApCd,sDAA8B;AAuC5B,iBAvCK,gBAAM,CAuCL;AAtCR,4DAAoC;AAwClC,oBAxCK,mBAAS,CAwCL;AAvCX,kEAA0C;AAwCxC,uBAxCK,sBAAY,CAwCL;AAvCd,kEAA0C;AAkCxC,uBAlCK,sBAAY,CAkCL;AAjCd,sHAA8F;AAkC5F,iDAlCK,gDAAsC,CAkCL;AAjCxC,wDAAgC;AAsC9B,kBAtCK,iBAAO,CAsCL;AArCT,8DAAsC;AAsCpC,qBAtCK,oBAAU,CAsCL;AArCZ,sFAA8D;AAuC5D,iCAvCK,gCAAsB,CAuCL;AAtCxB,0FAAkE;AAqChE,mCArCK,kCAAwB,CAqCL;AApC1B,4EAAoD;AAuClD,4BAvCK,2BAAiB,CAuCL;AAtCnB,gGAAwE;AAuCtE,sCAvCK,qCAA2B,CAuCL;AAtC7B,kHAA0F;AAuCxF,+CAvCK,8CAAoC,CAuCL;AAtCtC,oFAA4D;AAuC1D,gCAvCK,+BAAqB,CAuCL;AAtCvB,oFAA4D;AAuC1D,gCAvCK,+BAAqB,CAuCL;AAtCvB,wHAAgG;AAuC9F,kDAvCK,iDAAuC,CAuCL;AAtCzC,0FAAkE;AAuChE,mCAvCK,kCAAwB,CAuCL;AAtC1B,oFAA4D;AAuC1D,gCAvCK,+BAAqB,CAuCL;AAtCvB,4EAAoD;AAuClD,4BAvCK,2BAAiB,CAuCL;AAtCnB,sEAA8C;AAuC5C,yBAvCK,wBAAc,CAuCL;AAtChB,8EAAsD;AAuCpD,6BAvCK,4BAAkB,CAuCL;AAtCpB,8EAAsD;AAuCpD,6BAvCK,4BAAkB,CAuCL;AAtCpB,oEAA4C;AAuC1C,wBAvCK,uBAAa,CAuCL;AAtCf,oFAA4D;AAuC1D,gCAvCK,+BAAqB,CAuCL;AAtCvB,8GAAsF;AAuCpF,6CAvCK,4CAAkC,CAuCL;AAtCpC,kEAA0C;AAuCxC,uBAvCK,sBAAY,CAuCL;AAtCd,0FAAkE;AAuChE,mCAvCK,kCAAwB,CAuCL;AAtC1B,oHAA4F;AAuC1F,gDAvCK,+CAAqC,CAuCL;AAtCvC,gHAAwF;AAuCtF,8CAvCK,6CAAmC,CAuCL;AApCrC,iDAAmC;AAUjC,wBAAM;AATR,2DAA6C;AAgB3C,kCAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAAkD;AAsCrC,oCAtCN,mCAAO,CAsCwB;AArCtC,0FAAkE;AAsChE,mCAtCK,kCAAwB,CAsCL;AArC1B,kEAA0C;AAsCxC,uBAtCK,sBAAY,CAsCL;AArCd,sDAA8B;AAwC5B,iBAxCK,gBAAM,CAwCL;AAvCR,4DAAoC;AAyClC,oBAzCK,mBAAS,CAyCL;AAxCX,kEAA0C;AAyCxC,uBAzCK,sBAAY,CAyCL;AAxCd,kEAA0C;AAmCxC,uBAnCK,sBAAY,CAmCL;AAlCd,sHAA8F;AAmC5F,iDAnCK,gDAAsC,CAmCL;AAlCxC,wDAAgC;AAuC9B,kBAvCK,iBAAO,CAuCL;AAtCT,8DAAsC;AAuCpC,qBAvCK,oBAAU,CAuCL;AAtCZ,sFAA8D;AAwC5D,iCAxCK,gCAAsB,CAwCL;AAvCxB,0FAAkE;AAsChE,mCAtCK,kCAAwB,CAsCL;AArC1B,4EAAoD;AAwClD,4BAxCK,2BAAiB,CAwCL;AAvCnB,gGAAwE;AAwCtE,sCAxCK,qCAA2B,CAwCL;AAvC7B,kHAA0F;AAwCxF,+CAxCK,8CAAoC,CAwCL;AAvCtC,oFAA4D;AAwC1D,gCAxCK,+BAAqB,CAwCL;AAvCvB,oFAA4D;AAwC1D,gCAxCK,+BAAqB,CAwCL;AAvCvB,wHAAgG;AAwC9F,kDAxCK,iDAAuC,CAwCL;AAvCzC,0FAAkE;AAwChE,mCAxCK,kCAAwB,CAwCL;AAvC1B,oFAA4D;AAwC1D,gCAxCK,+BAAqB,CAwCL;AAvCvB,4EAAoD;AAwClD,4BAxCK,2BAAiB,CAwCL;AAvCnB,sEAA8C;AAwC5C,yBAxCK,wBAAc,CAwCL;AAvChB,8EAAsD;AAwCpD,6BAxCK,4BAAkB,CAwCL;AAvCpB,8EAAsD;AAwCpD,6BAxCK,4BAAkB,CAwCL;AAvCpB,oEAA4C;AAwC1C,wBAxCK,uBAAa,CAwCL;AAvCf,oFAA4D;AAwC1D,gCAxCK,+BAAqB,CAwCL;AAvCvB,8GAAsF;AAwCpF,6CAxCK,4CAAkC,CAwCL;AAvCpC,kEAA0C;AAwCxC,uBAxCK,sBAAY,CAwCL;AAvCd,0FAAkE;AAwChE,mCAxCK,kCAAwB,CAwCL;AAvC1B,oHAA4F;AAwC1F,gDAxCK,+CAAqC,CAwCL;AAvCvC,gHAAwF;AAwCtF,8CAxCK,6CAAmC,CAwCL;AAvCrC,sGAA8E;AAwC5E,yCAxCK,wCAA8B,CAwCL;AArChC,iDAAmC;AAUjC,wBAAM;AATR,2DAA6C;AAgB3C,kCAAW"}
@@ -0,0 +1,2 @@
1
+ import { IStackViewport, IVolumeViewport, Point3 } from '../types';
2
+ export default function getViewportImageCornersInWorld(viewport: IStackViewport | IVolumeViewport): Point3[];
@@ -0,0 +1,61 @@
1
+ export default function getViewportImageCornersInWorld(viewport) {
2
+ const { imageData, dimensions } = viewport.getImageData();
3
+ const { canvas } = viewport;
4
+ const topLeftCanvas = [0, 0];
5
+ const topRightCanvas = [canvas.width, 0];
6
+ const bottomRightCanvas = [canvas.width, canvas.height];
7
+ const bottomLeftCanvas = [0, canvas.height];
8
+ const topLeftWorld = viewport.canvasToWorld(topLeftCanvas);
9
+ const topRightWorld = viewport.canvasToWorld(topRightCanvas);
10
+ const bottomRightWorld = viewport.canvasToWorld(bottomRightCanvas);
11
+ const bottomLeftWorld = viewport.canvasToWorld(bottomLeftCanvas);
12
+ const topLeftImage = imageData.worldToIndex(topLeftWorld);
13
+ const topRightImage = imageData.worldToIndex(topRightWorld);
14
+ const bottomRightImage = imageData.worldToIndex(bottomRightWorld);
15
+ const bottomLeftImage = imageData.worldToIndex(bottomLeftWorld);
16
+ return _getStackViewportImageCorners({
17
+ dimensions,
18
+ imageData,
19
+ topLeftImage,
20
+ topRightImage,
21
+ bottomRightImage,
22
+ bottomLeftImage,
23
+ topLeftWorld,
24
+ topRightWorld,
25
+ bottomRightWorld,
26
+ bottomLeftWorld,
27
+ });
28
+ }
29
+ function _getStackViewportImageCorners({ dimensions, imageData, topLeftImage, topRightImage, bottomRightImage, bottomLeftImage, topLeftWorld, topRightWorld, bottomRightWorld, bottomLeftWorld, }) {
30
+ const topLeftImageWorld = _isInBounds(topLeftImage, dimensions)
31
+ ? topLeftWorld
32
+ : imageData.indexToWorld([0, 0, 0]);
33
+ const topRightImageWorld = _isInBounds(topRightImage, dimensions)
34
+ ? topRightWorld
35
+ : imageData.indexToWorld([dimensions[0] - 1, 0, 0]);
36
+ const bottomRightImageWorld = _isInBounds(bottomRightImage, dimensions)
37
+ ? bottomRightWorld
38
+ : imageData.indexToWorld([
39
+ dimensions[0] - 1,
40
+ dimensions[1] - 1,
41
+ 0,
42
+ ]);
43
+ const bottomLeftImageWorld = _isInBounds(bottomLeftImage, dimensions)
44
+ ? bottomLeftWorld
45
+ : imageData.indexToWorld([0, dimensions[1] - 1, 0]);
46
+ return [
47
+ topLeftImageWorld,
48
+ topRightImageWorld,
49
+ bottomLeftImageWorld,
50
+ bottomRightImageWorld,
51
+ ];
52
+ }
53
+ function _isInBounds(imageCoord, dimensions) {
54
+ return (imageCoord[0] > 0 ||
55
+ imageCoord[0] < dimensions[0] - 1 ||
56
+ imageCoord[1] > 0 ||
57
+ imageCoord[1] < dimensions[1] - 1 ||
58
+ imageCoord[2] > 0 ||
59
+ imageCoord[2] < dimensions[2] - 1);
60
+ }
61
+ //# sourceMappingURL=getViewportImageCornersInWorld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getViewportImageCornersInWorld.js","sourceRoot":"","sources":["../../../src/utilities/getViewportImageCornersInWorld.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import isImageActor from './isImageActor';
29
29
  import getViewportsWithImageURI from './getViewportsWithImageURI';
30
30
  import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
31
31
  import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
32
+ import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
32
33
  import * as planar from './planar';
33
34
  import * as windowLevel from './windowLevel';
34
- export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, };
35
+ export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, };
@@ -29,7 +29,8 @@ import isImageActor from './isImageActor';
29
29
  import getViewportsWithImageURI from './getViewportsWithImageURI';
30
30
  import calculateViewportsSpatialRegistration from './calculateViewportsSpatialRegistration';
31
31
  import spatialRegistrationMetadataProvider from './spatialRegistrationMetadataProvider';
32
+ import getViewportImageCornersInWorld from './getViewportImageCornersInWorld';
32
33
  import * as planar from './planar';
33
34
  import * as windowLevel from './windowLevel';
34
- export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, };
35
+ export { csUtils as invertRgbTransferFunction, 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, getViewportsWithImageURI, calculateViewportsSpatialRegistration, spatialRegistrationMetadataProvider, getViewportImageCornersInWorld, };
35
36
  //# 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,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,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AAGxF,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,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,wBAAwB,EACxB,qCAAqC,EACrC,mCAAmC,GACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,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,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAG9E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,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,wBAAwB,EACxB,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,GAC/B,CAAC"}