@cornerstonejs/tools 1.55.0 → 1.56.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/eventListeners/segmentation/imageChangeEventListener.js +15 -7
- package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +1 -1
- package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js +2 -1
- package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/BrushStrategy.d.ts +3 -2
- package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js +11 -4
- package/dist/cjs/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/compositions/dynamicThreshold.js +9 -3
- package/dist/cjs/tools/segmentation/strategies/compositions/dynamicThreshold.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/compositions/islandRemoval.js +1 -1
- package/dist/cjs/tools/segmentation/strategies/compositions/islandRemoval.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/compositions/threshold.js +6 -2
- package/dist/cjs/tools/segmentation/strategies/compositions/threshold.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.d.ts +2 -3
- package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js +21 -6
- package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.js +3 -1
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/segmentation/floodFill.js +16 -22
- package/dist/cjs/utilities/segmentation/floodFill.js.map +1 -1
- package/dist/cjs/utilities/segmentation/getSegmentAtLabelmapBorder.js +3 -2
- package/dist/cjs/utilities/segmentation/getSegmentAtLabelmapBorder.js.map +1 -1
- package/dist/cjs/utilities/segmentation/getSegmentAtWorldPoint.js +3 -2
- package/dist/cjs/utilities/segmentation/getSegmentAtWorldPoint.js.map +1 -1
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +16 -8
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js +2 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js +10 -3
- package/dist/esm/tools/segmentation/strategies/BrushStrategy.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js +9 -3
- package/dist/esm/tools/segmentation/strategies/compositions/dynamicThreshold.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/islandRemoval.js +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/islandRemoval.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/threshold.js +6 -2
- package/dist/esm/tools/segmentation/strategies/compositions/threshold.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +21 -6
- package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.js +3 -1
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/segmentation/floodFill.js +16 -22
- package/dist/esm/utilities/segmentation/floodFill.js.map +1 -1
- package/dist/esm/utilities/segmentation/getSegmentAtLabelmapBorder.js +3 -2
- package/dist/esm/utilities/segmentation/getSegmentAtLabelmapBorder.js.map +1 -1
- package/dist/esm/utilities/segmentation/getSegmentAtWorldPoint.js +3 -2
- package/dist/esm/utilities/segmentation/getSegmentAtWorldPoint.js.map +1 -1
- package/dist/types/eventListeners/segmentation/imageChangeEventListener.d.ts.map +1 -1
- package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts +3 -2
- package/dist/types/tools/segmentation/strategies/BrushStrategy.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/compositions/dynamicThreshold.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/compositions/islandRemoval.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/compositions/threshold.d.ts.map +1 -1
- package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts +2 -3
- package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts.map +1 -1
- package/dist/types/utilities/pointInShapeCallback.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/floodFill.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/getSegmentAtLabelmapBorder.d.ts.map +1 -1
- package/dist/types/utilities/segmentation/getSegmentAtWorldPoint.d.ts.map +1 -1
- package/dist/umd/985.index.js +1 -1
- package/dist/umd/985.index.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +7 -3
- package/src/eventListeners/segmentation/imageChangeEventListener.ts +28 -13
- package/src/stateManagement/segmentation/polySeg/Labelmap/computeAndAddLabelmapRepresentation.ts +1 -1
- package/src/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.ts +3 -1
- package/src/tools/segmentation/BrushTool.ts +1 -1
- package/src/tools/segmentation/strategies/BrushStrategy.ts +25 -4
- package/src/tools/segmentation/strategies/compositions/dynamicThreshold.ts +12 -2
- package/src/tools/segmentation/strategies/compositions/islandRemoval.ts +1 -2
- package/src/tools/segmentation/strategies/compositions/threshold.ts +8 -6
- package/src/tools/segmentation/strategies/utils/getStrategyData.ts +20 -5
- package/src/utilities/pointInShapeCallback.ts +2 -0
- package/src/utilities/segmentation/floodFill.ts +44 -31
- package/src/utilities/segmentation/getSegmentAtLabelmapBorder.ts +6 -5
- package/src/utilities/segmentation/getSegmentAtWorldPoint.ts +6 -5
|
@@ -5,12 +5,15 @@ function getStrategyData({ operationData, viewport }) {
|
|
|
5
5
|
let segmentationImageData, segmentationScalarData, imageScalarData;
|
|
6
6
|
let imageDimensions;
|
|
7
7
|
let segmentationDimensions;
|
|
8
|
+
let imageVoxelManager;
|
|
9
|
+
let segmentationVoxelManager;
|
|
8
10
|
if (isVolumeSegmentation(operationData, viewport)) {
|
|
9
11
|
const { volumeId, referencedVolumeId } = operationData;
|
|
10
12
|
const segmentationVolume = cache.getVolume(volumeId);
|
|
11
13
|
if (!segmentationVolume) {
|
|
12
14
|
return;
|
|
13
15
|
}
|
|
16
|
+
segmentationVoxelManager = segmentationVolume.voxelManager;
|
|
14
17
|
if (referencedVolumeId) {
|
|
15
18
|
const imageVolume = cache.getVolume(referencedVolumeId);
|
|
16
19
|
imageScalarData = imageVolume.getScalarData();
|
|
@@ -30,22 +33,34 @@ function getStrategyData({ operationData, viewport }) {
|
|
|
30
33
|
return;
|
|
31
34
|
}
|
|
32
35
|
const actor = viewport.getActor(segmentationRepresentationUID);
|
|
36
|
+
if (!actor) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
33
39
|
segmentationImageData = actor.actor.getMapper().getInputData();
|
|
40
|
+
segmentationVoxelManager = segmentationImageData.voxelManager;
|
|
34
41
|
const currentSegmentationImageId = imageIdReferenceMap.get(currentImageId);
|
|
35
42
|
const segmentationImage = cache.getImage(currentSegmentationImageId);
|
|
36
|
-
|
|
43
|
+
if (!segmentationImage) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
segmentationScalarData = segmentationImage.getPixelData?.();
|
|
37
47
|
const image = cache.getImage(currentImageId);
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
const imageData = image ? null : viewport.getImageData();
|
|
49
|
+
imageScalarData = image?.getPixelData() || imageData.getScalarData();
|
|
50
|
+
imageDimensions = image
|
|
51
|
+
? [image.columns, image.rows, 1]
|
|
52
|
+
: imageData.dimensions;
|
|
40
53
|
segmentationDimensions = [
|
|
41
54
|
segmentationImage.columns,
|
|
42
55
|
segmentationImage.rows,
|
|
43
56
|
1,
|
|
44
57
|
];
|
|
58
|
+
imageVoxelManager = image?.voxelManager;
|
|
45
59
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
segmentationVoxelManager ||= VoxelManager.createVolumeVoxelManager(segmentationDimensions, segmentationScalarData);
|
|
61
|
+
imageVoxelManager ||=
|
|
62
|
+
imageDimensions &&
|
|
63
|
+
VoxelManager.createVolumeVoxelManager(imageDimensions, imageScalarData);
|
|
49
64
|
return {
|
|
50
65
|
segmentationImageData,
|
|
51
66
|
segmentationScalarData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStrategyData.js","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/getStrategyData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;AAEnC,SAAS,eAAe,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE;IAClD,IAAI,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,CAAC;IACnE,IAAI,eAA6B,CAAC;IAClC,IAAI,sBAAoC,CAAC;IACzC,IAAI,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;QACjD,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;QAEvD,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO;SACR;
|
|
1
|
+
{"version":3,"file":"getStrategyData.js","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/getStrategyData.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { vec3 } from 'gl-matrix';
|
|
|
2
2
|
export default function pointInShapeCallback(imageData, pointInShapeFn, callback, boundsIJK) {
|
|
3
3
|
let iMin, iMax, jMin, jMax, kMin, kMax;
|
|
4
4
|
let scalarData;
|
|
5
|
+
const { numComps } = imageData;
|
|
5
6
|
if (imageData.getScalarData) {
|
|
6
7
|
scalarData = imageData.getScalarData();
|
|
7
8
|
}
|
|
@@ -34,7 +35,8 @@ export default function pointInShapeCallback(imageData, pointInShapeFn, callback
|
|
|
34
35
|
const rowStep = vec3.fromValues(rowCosines[0] * rowSpacing, rowCosines[1] * rowSpacing, rowCosines[2] * rowSpacing);
|
|
35
36
|
const columnStep = vec3.fromValues(columnCosines[0] * columnSpacing, columnCosines[1] * columnSpacing, columnCosines[2] * columnSpacing);
|
|
36
37
|
const scanAxisStep = vec3.fromValues(scanAxisNormal[0] * scanAxisSpacing, scanAxisNormal[1] * scanAxisSpacing, scanAxisNormal[2] * scanAxisSpacing);
|
|
37
|
-
const xMultiple =
|
|
38
|
+
const xMultiple = numComps ||
|
|
39
|
+
scalarData.length / dimensions[2] / dimensions[1] / dimensions[0];
|
|
38
40
|
const yMultiple = dimensions[0] * xMultiple;
|
|
39
41
|
const zMultiple = dimensions[1] * yMultiple;
|
|
40
42
|
const pointsInShape = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAwCjC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,SAA4C,EAC5C,cAA+B,EAC/B,QAA+B,EAC/B,SAAqB;IAErB,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAEvC,IAAI,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
function floodFill(getter, seed, options = {}) {
|
|
2
2
|
const onFlood = options.onFlood;
|
|
3
3
|
const onBoundary = options.onBoundary;
|
|
4
|
-
const equals = options.equals
|
|
4
|
+
const equals = options.equals;
|
|
5
5
|
const diagonals = options.diagonals || false;
|
|
6
6
|
const startNode = get(seed);
|
|
7
7
|
const permutations = prunedPermutations();
|
|
8
8
|
const stack = [];
|
|
9
9
|
const flooded = [];
|
|
10
|
-
const visits =
|
|
11
|
-
const bounds =
|
|
10
|
+
const visits = new Set();
|
|
11
|
+
const bounds = new Map();
|
|
12
12
|
stack.push({ currentArgs: seed });
|
|
13
13
|
while (stack.length > 0) {
|
|
14
14
|
flood(stack.pop());
|
|
@@ -33,14 +33,18 @@ function floodFill(getter, seed, options = {}) {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
function visited(key) {
|
|
36
|
-
|
|
36
|
+
const [x, y, z = 0] = key;
|
|
37
|
+
const iKey = x + 32768 + 65536 * (y + 32768 + 65536 * (z + 32768));
|
|
38
|
+
return visits.has(iKey);
|
|
37
39
|
}
|
|
38
40
|
function markAsVisited(key) {
|
|
39
|
-
|
|
41
|
+
const [x, y, z = 0] = key;
|
|
42
|
+
const iKey = x + 32768 + 65536 * (y + 32768 + 65536 * (z + 32768));
|
|
43
|
+
visits.add(iKey);
|
|
40
44
|
}
|
|
41
45
|
function member(getArgs) {
|
|
42
|
-
const node =
|
|
43
|
-
return
|
|
46
|
+
const node = get(getArgs);
|
|
47
|
+
return equals ? equals(node, startNode) : node === startNode;
|
|
44
48
|
}
|
|
45
49
|
function markAsFlooded(getArgs) {
|
|
46
50
|
flooded.push(getArgs);
|
|
@@ -49,7 +53,9 @@ function floodFill(getter, seed, options = {}) {
|
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
55
|
function markAsBoundary(prevArgs) {
|
|
52
|
-
|
|
56
|
+
const [x, y, z = 0] = prevArgs;
|
|
57
|
+
const iKey = x + 32768 + 65536 * (y + 32768 + 65536 * (z + 32768));
|
|
58
|
+
bounds.set(iKey, prevArgs);
|
|
53
59
|
if (onBoundary) {
|
|
54
60
|
onBoundary(...prevArgs);
|
|
55
61
|
}
|
|
@@ -70,14 +76,6 @@ function floodFill(getter, seed, options = {}) {
|
|
|
70
76
|
function get(getArgs) {
|
|
71
77
|
return getter(...getArgs);
|
|
72
78
|
}
|
|
73
|
-
function safely(f, args) {
|
|
74
|
-
try {
|
|
75
|
-
return f(...args);
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
79
|
function prunedPermutations() {
|
|
82
80
|
const permutations = permute(seed.length);
|
|
83
81
|
return permutations.filter(function (perm) {
|
|
@@ -99,12 +97,8 @@ function floodFill(getter, seed, options = {}) {
|
|
|
99
97
|
return perms;
|
|
100
98
|
}
|
|
101
99
|
function boundaries() {
|
|
102
|
-
const array =
|
|
103
|
-
|
|
104
|
-
if (bounds[key] !== undefined) {
|
|
105
|
-
array.unshift(bounds[key]);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
100
|
+
const array = Array.from(bounds.values());
|
|
101
|
+
array.reverse();
|
|
108
102
|
return array;
|
|
109
103
|
}
|
|
110
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floodFill.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/floodFill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"floodFill.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/floodFill.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,9 @@ export function getSegmentAtLabelmapBorder(segmentationId, worldPoint, { viewpor
|
|
|
29
29
|
const imageData = segmentationActor?.actor.getMapper().getInputData();
|
|
30
30
|
const indexIJK = utilities.transformWorldToIndex(imageData, worldPoint);
|
|
31
31
|
const dimensions = imageData.getDimensions();
|
|
32
|
-
const voxelManager =
|
|
33
|
-
|
|
32
|
+
const voxelManager = (imageData.voxelManager ||
|
|
33
|
+
utilities.VoxelManager.createVolumeVoxelManager(dimensions, imageData.getPointData().getScalars().getData()));
|
|
34
|
+
const segmentIndex = voxelManager.getAtIJKPoint(indexIJK);
|
|
34
35
|
const onEdge = isSegmentOnEdgeIJK(indexIJK, dimensions, voxelManager, segmentIndex);
|
|
35
36
|
return onEdge ? segmentIndex : undefined;
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSegmentAtLabelmapBorder.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtLabelmapBorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,gCAAgC,GACjC,MAAM,sDAAsD,CAAC;AAK9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAiBlG,MAAM,UAAU,0BAA0B,CACxC,cAAsB,EACtB,UAAwB,EACxB,EAAE,QAAQ,EAAE,YAAY,EAAW;IAEnC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAE9D,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAA8C,CAAC;QACpE,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO;SACR;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAE/C,MAAM,YAAY,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,qBAAqB,CAClC,WAA2B,EAC3B,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,CACb,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;KAC1C;IAGD,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAA6C,CAAC;IAE9E,MAAM,cAAc,GAAI,QAAiC,CAAC,iBAAiB,EAAE,CAAC;IAE9E,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAElD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IAKD,MAAM,2BAA2B,GAAG,gCAAgC,CAClE,YAAY,CAAC,cAAc,CAC5B,CAAC;IAEF,MAAM,EAAE,6BAA6B,EAAE,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"getSegmentAtLabelmapBorder.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtLabelmapBorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,gCAAgC,GACjC,MAAM,sDAAsD,CAAC;AAK9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAiBlG,MAAM,UAAU,0BAA0B,CACxC,cAAsB,EACtB,UAAwB,EACxB,EAAE,QAAQ,EAAE,YAAY,EAAW;IAEnC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAE9D,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAA8C,CAAC;QACpE,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO;SACR;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAE/C,MAAM,YAAY,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,qBAAqB,CAClC,WAA2B,EAC3B,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,CACb,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;KAC1C;IAGD,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAA6C,CAAC;IAE9E,MAAM,cAAc,GAAI,QAAiC,CAAC,iBAAiB,EAAE,CAAC;IAE9E,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAElD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IAKD,MAAM,2BAA2B,GAAG,gCAAgC,CAClE,YAAY,CAAC,cAAc,CAC5B,CAAC;IAEF,MAAM,EAAE,6BAA6B,EAAE,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,YAAY;QAC1C,SAAS,CAAC,YAAY,CAAC,wBAAwB,CAC7C,UAAU,EACV,SAAS,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAChD,CAAmC,CAAC;IAEvC,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,QAAwB,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,kBAAkB,CAC/B,QAAwB,EACxB,UAAU,EACV,YAAY,EACZ,YAAY,CACb,CAAC;IAEF,OAAO,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC;AASD,SAAS,eAAe,CACtB,gBAIuB,EACvB,YAAoB,EACpB,YAAY,GAAG,CAAC;IAEhB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAC9B,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAChC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,CAC3B,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;QAClC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YAClC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;gBAClC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE;oBAChD,SAAS;iBACV;gBAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE/D,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,KAAK,aAAa,EAAE;oBACjE,OAAO,IAAI,CAAC;iBACb;aACF;SACF;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAsB,EACtB,UAAwB,EACxB,YAAiB,EACjB,YAAoB,EACpB,YAAqB;IAErB,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;QAC1E,MAAM,WAAW,GAAG;YAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM;YACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM;YACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM;SACrB,CAAC;QAEF,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAyB,EACzB,YAAoB,EACpB,QAAyB,EACzB,SAAc,EACd,YAAqB;IAErB,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;QAC1D,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,cAA8B,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,OAAO,eAAe,CAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -44,8 +44,9 @@ export function getSegmentAtWorldForLabelmap(segmentation, worldPoint, { viewpor
|
|
|
44
44
|
const imageData = segmentationActor?.actor.getMapper().getInputData();
|
|
45
45
|
const indexIJK = utilities.transformWorldToIndex(imageData, worldPoint);
|
|
46
46
|
const dimensions = imageData.getDimensions();
|
|
47
|
-
const voxelManager =
|
|
48
|
-
|
|
47
|
+
const voxelManager = (imageData.voxelManager ||
|
|
48
|
+
utilities.VoxelManager.createVolumeVoxelManager(dimensions, imageData.getPointData().getScalars().getData()));
|
|
49
|
+
const segmentIndex = voxelManager.getAtIJKPoint(indexIJK);
|
|
49
50
|
return segmentIndex;
|
|
50
51
|
}
|
|
51
52
|
export function getSegmentAtWorldForContour(segmentation, worldPoint, { viewport }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSegmentAtWorldPoint.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtWorldPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,gCAAgC,GACjC,MAAM,sDAAsD,CAAC;AAK9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAc3D,MAAM,UAAU,sBAAsB,CACpC,cAAsB,EACtB,UAAwB,EACxB,UAAU,EAAa;IAEvB,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;IAG3D,MAAM,qBAAqB,GACzB,OAAO,EAAE,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,IAAI,CAAC,qBAAqB,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,gBAAgB,cAAc,oCAAoC,CACnE,CAAC;KACH;IAED,QAAQ,qBAAqB,EAAE;QAC7B,KAAK,2BAA2B,CAAC,QAAQ;YACvC,OAAO,4BAA4B,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzE,KAAK,2BAA2B,CAAC,OAAO;YACtC,OAAO,2BAA2B,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxE;YACE,OAAO;KACV;AACH,CAAC;AAUD,MAAM,UAAU,4BAA4B,CAC1C,YAA0B,EAC1B,UAAwB,EACxB,EAAE,QAAQ,EAAW;IAErB,MAAM,YAAY,GAAG,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAE9D,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAA8C,CAAC;QACpE,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO;SACR;QAED,MAAM,YAAY,GAChB,kBAAkB,CAAC,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAEnE,OAAO,YAAY,CAAC;KACrB;IAGD,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAA6C,CAAC;IAE9E,MAAM,cAAc,GAAI,QAAiC,CAAC,iBAAiB,EAAE,CAAC;IAE9E,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAElD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IAKD,MAAM,2BAA2B,GAAG,gCAAgC,CAClE,YAAY,CAAC,cAAc,CAC5B,CAAC;IAEF,MAAM,EAAE,6BAA6B,EAAE,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,iBAAiB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"getSegmentAtWorldPoint.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtWorldPoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageChangeEventListener.d.ts","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/imageChangeEventListener.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"imageChangeEventListener.d.ts","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/imageChangeEventListener.ts"],"names":[],"mappings":";;;;AA0QA,wBAGE"}
|
package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertSurfaceToLabelmap.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAKN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAYzE,wBAAsB,8BAA8B,CAClD,yBAAyB,EAAE,uBAAuB,EAClD,kBAAkB,EAAE,KAAK,CAAC,YAAY;;GAgEvC;AAED,wBAAsB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"convertSurfaceToLabelmap.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertSurfaceToLabelmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAKN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAYzE,wBAAsB,8BAA8B,CAClD,yBAAyB,EAAE,uBAAuB,EAClD,kBAAkB,EAAE,KAAK,CAAC,YAAY;;GAgEvC;AAED,wBAAsB,6BAA6B,kBAElD"}
|
|
@@ -4,11 +4,12 @@ import { StrategyCallbacks } from '../../../enums';
|
|
|
4
4
|
import type { LabelmapToolOperationDataAny } from '../../../types/LabelmapToolOperationData';
|
|
5
5
|
import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
6
6
|
export declare type InitializedOperationData = LabelmapToolOperationDataAny & {
|
|
7
|
+
operationName?: string;
|
|
7
8
|
enabledElement: Types.IEnabledElement;
|
|
8
9
|
centerIJK?: Types.Point3;
|
|
9
10
|
centerWorld: Types.Point3;
|
|
10
11
|
viewport: Types.IViewport;
|
|
11
|
-
imageVoxelManager: csUtils.VoxelManager<number>;
|
|
12
|
+
imageVoxelManager: csUtils.VoxelManager<number> | csUtils.VoxelManager<Types.RGB>;
|
|
12
13
|
segmentationVoxelManager: csUtils.VoxelManager<number>;
|
|
13
14
|
segmentationImageData: vtkImageData;
|
|
14
15
|
previewVoxelManager: csUtils.VoxelManager<number>;
|
|
@@ -77,7 +78,7 @@ export default class BrushStrategy {
|
|
|
77
78
|
protected _onInteractionStart: any[];
|
|
78
79
|
constructor(name: any, ...initializers: Composition[]);
|
|
79
80
|
fill: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => any;
|
|
80
|
-
protected initialize(enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny): InitializedOperationData;
|
|
81
|
+
protected initialize(enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny, operationName?: string): InitializedOperationData;
|
|
81
82
|
onInteractionStart: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
|
|
82
83
|
onInteractionEnd: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
|
|
83
84
|
rejectPreview: (enabledElement: Types.IEnabledElement, operationData: LabelmapToolOperationDataAny) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrushStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/BrushStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAS,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAMlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,YAAY,MAAM,4CAA4C,CAAC;AAItE,oBAAY,wBAAwB,GAAG,4BAA4B,GAAG;IAEpE,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BrushStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/BrushStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamicThreshold.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/dynamicThreshold.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamicThreshold.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/dynamicThreshold.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;;gCAaf,wBAAwB;wCA6CvD,wBAAwB;;AA9C3C,wBAsDE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islandRemoval.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/islandRemoval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;;sCAc9C,wBAAwB;;AAF3C,
|
|
1
|
+
{"version":3,"file":"islandRemoval.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/islandRemoval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;;sCAc9C,wBAAwB;;AAF3C,wBAqKE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/threshold.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/compositions/threshold.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;;yCAU9C,wBAAwB;;AAF3C,wBA0BE"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { utilities } from '@cornerstonejs/core';
|
|
2
1
|
declare function getStrategyData({ operationData, viewport }: {
|
|
3
2
|
operationData: any;
|
|
4
3
|
viewport: any;
|
|
5
4
|
}): {
|
|
6
5
|
segmentationImageData: any;
|
|
7
6
|
segmentationScalarData: any;
|
|
8
|
-
segmentationVoxelManager:
|
|
7
|
+
segmentationVoxelManager: any;
|
|
9
8
|
imageScalarData: any;
|
|
10
|
-
imageVoxelManager:
|
|
9
|
+
imageVoxelManager: any;
|
|
11
10
|
};
|
|
12
11
|
export { getStrategyData };
|
|
13
12
|
//# sourceMappingURL=getStrategyData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStrategyData.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/getStrategyData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getStrategyData.d.ts","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/getStrategyData.ts"],"names":[],"mappings":"AAOA,iBAAS,eAAe,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE;;;CAAA;;;;;;EA4FnD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInShapeCallback.d.ts","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,oBAAY,oBAAoB,GAAG,CAAC,EAClC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,KAAK,IAAI,CAAC;AAEX,oBAAY,eAAe,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC;AAgB1E,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,SAAS,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,EAC5C,cAAc,EAAE,eAAe,EAC/B,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,KAAK,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"pointInShapeCallback.d.ts","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,oBAAY,oBAAoB,GAAG,CAAC,EAClC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;CAChB,KAAK,IAAI,CAAC;AAEX,oBAAY,eAAe,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC;AAgB1E,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,SAAS,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,EAC5C,cAAc,EAAE,eAAe,EAC/B,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,KAAK,CAAC,YAAY,CAAC,CAkHrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floodFill.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/floodFill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"floodFill.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/floodFill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAwB5C,iBAAS,SAAS,CAChB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EACjC,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAoJjB;AAyBD,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSegmentAtLabelmapBorder.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtLabelmapBorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD,aAAK,OAAO,GAAG;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAYF,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"getSegmentAtLabelmapBorder.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtLabelmapBorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD,aAAK,OAAO,GAAG;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAYF,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAClC,MAAM,CAuER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSegmentAtWorldPoint.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtWorldPoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAU1D,OAAO,EAAiC,YAAY,EAAE,MAAM,aAAa,CAAC;AAI1E,aAAK,OAAO,GAAG;IACb,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AASF,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,OAAO,UAAgB,GACtB,MAAM,CAuBR;AAUD,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,EAAE,QAAQ,EAAE,EAAE,OAAO,GACpB,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"getSegmentAtWorldPoint.d.ts","sourceRoot":"","sources":["../../../../src/utilities/segmentation/getSegmentAtWorldPoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAU1D,OAAO,EAAiC,YAAY,EAAE,MAAM,aAAa,CAAC;AAI1E,aAAK,OAAO,GAAG;IACb,kBAAkB,CAAC,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AASF,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,OAAO,UAAgB,GACtB,MAAM,CAuBR;AAUD,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,EAAE,QAAQ,EAAE,EAAE,OAAO,GACpB,MAAM,GAAG,SAAS,CAoDpB;AAUD,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,EACxB,EAAE,QAAQ,EAAE,EAAE,OAAO,GACpB,MAAM,CAsCR"}
|
package/dist/umd/985.index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("gl-matrix")):"function"==typeof define&&define.amd?define(["@kitware/vtk.js/Common/DataModel/ImageData","@kitware/vtk.js/Common/Core/DataArray","@cornerstonejs/core","gl-matrix"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("gl-matrix")):e.cornerstoneTools3D=t(e["@kitware/vtk.js/Common/DataModel/ImageData"],e["@kitware/vtk.js/Common/Core/DataArray"],e.cornerstone3D,e.window)}(self,((e,t,n,o)=>(()=>{"use strict";var a,i,r={248:(e,t,n)=>{var o=n(758),a=n(283),i=n.n(a),r=n(785),s=n.n(r),l=n(699),c=n(953);const{EPSILON:g}=c.CONSTANTS;function m(e,t){return function(e,t){var n;let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=1/0,i=o?-1/0:0,r=1/0,s=o?-1/0:0,l=1/0,c=o?-1/0:0;const m=3===(null===(n=e[0])||void 0===n?void 0:n.length);for(let t=0;t<e.length;t++){const n=e[t];var u,p;a=Math.min(n[0],a),i=Math.max(n[0],i),r=Math.min(n[1],r),s=Math.max(n[1],s),m&&(l=Math.min(null!==(u=n[2])&&void 0!==u?u:l,l),c=Math.max(null!==(p=n[2])&&void 0!==p?p:c,c))}return t?(a=Math.max(o?t[0]+g:0,a),i=Math.min(o?t[0]-g:t[0]-1,i),r=Math.max(o?t[1]+g:0,r),s=Math.min(o?t[1]-g:t[1]-1,s),m&&3===t.length&&(l=Math.max(o?t[2]+g:0,l),c=Math.min(o?t[2]-g:t[2]-1,c))):o||(a=Math.max(0,a),i=Math.min(1/0,i),r=Math.max(0,r),s=Math.min(1/0,s),m&&(l=Math.max(0,l),c=Math.min(1/0,c))),m?[[a,i],[r,s],[l,c]]:[[a,i],[r,s],null]}(e,t,!0)}var u=n(976);function p(e,t,n,o){let a,i,r,s,l,c,g;g=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();const m=e.getDimensions();o?[[a,i],[r,s],[l,c]]=o:(a=0,i=m[0],r=0,s=m[1],l=0,c=m[2]);const p=u.vec3.fromValues(a,r,l),f=e.getDirection(),d=f.slice(0,3),h=f.slice(3,6),v=f.slice(6,9),y=e.getSpacing(),[x,w,S]=y,I=e.indexToWorld(p),D=u.vec3.fromValues(d[0]*x,d[1]*x,d[2]*x),M=u.vec3.fromValues(h[0]*w,h[1]*w,h[2]*w),P=u.vec3.fromValues(v[0]*S,v[1]*S,v[2]*S),b=g.length/m[2]/m[1]/m[0],k=m[0]*b,T=m[1]*k,C=[],j=u.vec3.clone(I);for(let e=l;e<=c;e++){const o=u.vec3.clone(j);for(let o=r;o<=s;o++){const r=u.vec3.clone(j);for(let r=a;r<=i;r++){const a=[r,o,e];if(t(j,a)){const t=e*T+o*k+r*b;let i;i=b>2?[g[t],g[t+1],g[t+2]]:g[t],C.push({value:i,index:t,pointIJK:a,pointLPS:j}),n&&n({value:i,index:t,pointIJK:a,pointLPS:j})}u.vec3.add(j,j,D)}u.vec3.copy(j,r),u.vec3.add(j,j,M)}u.vec3.copy(j,o),u.vec3.add(j,j,P)}return C}function f(e,t){let n;const o=t.slice(0,3);for(let e=0;e<3;e++)if(o.every(((t,n,o)=>t[e]===o[0][e]))){n=e;break}if(void 0===n)throw new Error("Cannot find a shared dimension index for polyline, probably oblique plane");const a=[];for(let e=0;e<t.length;e++)a.push([t[e][(n+1)%3],t[e][(n+2)%3]]);return function(e,t,n){if(e.length<3)return!1;const o=e.length;let a=0;const i=!function(e){if(e.length<3)return!1;const t=e.length,n=function(e,t){if(e.length!==t.length)throw Error("Both points should have the same dimensionality");const[n,o,a=0]=e,[i,r,s=0]=t,l=i-n,c=r-o,g=s-a;return l*l+c*c+g*g}(e[0],e[t-1]);return u.glMatrix.equals(0,n)}(e),r=e.length-(i?1:2);for(let n=0;n<=r;n++){const i=e[n],r=e[n===o-1?0:n+1],s=i[0]>=r[0]?i[0]:r[0],l=i[1]>=r[1]?i[1]:r[1],c=i[1]<=r[1]?i[1]:r[1];if(t[0]<=s&&t[1]>=c&&t[1]<l){let e=i[0]===r[0];if(!e){const n=(t[1]-i[1])*(r[0]-i[0])/(r[1]-i[1])+i[0];e=t[0]<=n}a+=e?1:0}}return!!(a%2)}(a,[e[(n+1)%3],e[(n+2)%3]])}const d={polySeg:null,polySegInitializing:!1,polySegInitializingPromise:null,async initializePolySeg(e){var t;this.polySegInitializing?await this.polySegInitializingPromise:null!==(t=this.polySeg)&&void 0!==t&&t.instance||(this.polySegInitializing=!0,this.polySegInitializingPromise=new Promise((t=>{this.polySeg=new l.Z,this.polySeg.initialize({updateProgress:e}).then((()=>{this.polySegInitializing=!1,t()}))})),await this.polySegInitializingPromise)},async convertContourToSurface(e){const{polylines:t,numPointsArray:n}=e;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i<o;i++)a[i-1]=arguments[i];const[r]=a;return await this.initializePolySeg(r),await this.polySeg.instance.convertContourRoiToSurface(t,n)},async convertLabelmapToSurface(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertLabelmapToSurface(e.scalarData,e.dimensions,e.spacing,e.direction,e.origin,[e.segmentIndex])},async convertContourToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,r=await new l.Z;await r.initialize({updateProgress:a});const{segmentIndices:g,scalarData:u,annotationUIDsInSegmentMap:d,dimensions:h,origin:v,direction:y,spacing:x}=e,w=c.utilities.VoxelManager.createVolumeVoxelManager(h,u),S=i().newInstance();S.setDimensions(h),S.setOrigin(v),S.setDirection(y),S.setSpacing(x);const I=s().newInstance({name:"Pixels",numberOfComponents:1,values:u});S.getPointData().setScalars(I),S.modified();for(const e of g){const t=d.get(e);for(const n of t){const t=m(n.data.contour.polyline),[o,a,i]=c.utilities.transformWorldToIndex(S,[t[0][0],t[1][0],t[2][0]]),[r,s,l]=c.utilities.transformWorldToIndex(S,[t[0][1],t[1][1],t[2][1]]);p(S,(e=>f(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;w.setAtIJKPoint(n,e)}),[[o,r],[a,s],[i,l]])}}return w.scalarData},async convertContourToStackLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,r=await new l.Z;await r.initialize({updateProgress:a});const{segmentationsInfo:g,annotationUIDsInSegmentMap:u,segmentIndices:d}=e,h=new Map;g.forEach(((e,t)=>{const{dimensions:n,scalarData:o,direction:a,spacing:r,origin:l}=e,g=c.utilities.VoxelManager.createVolumeVoxelManager(n,o),m=i().newInstance();m.setDimensions(n),m.setOrigin(l),m.setDirection(a),m.setSpacing(r);const u=s().newInstance({name:"Pixels",numberOfComponents:1,values:o});m.getPointData().setScalars(u),m.modified(),h.set(t,{manager:g,imageData:m})}));for(const e of d){const t=u.get(e);for(const n of t){if(null==n||!n.data)continue;const t=m(n.data.contour.polyline),{referencedImageId:o}=n.metadata,{manager:a,imageData:i}=h.get(o),[r,s,l]=c.utilities.transformWorldToIndex(i,[t[0][0],t[1][0],t[2][0]]),[g,u,d]=c.utilities.transformWorldToIndex(i,[t[0][1],t[1][1],t[2][1]]);p(i,(e=>f(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;a.setAtIJKPoint(n,e)}),[[r,g],[s,u],[l,d]])}}return g.forEach(((e,t)=>{const{manager:n}=h.get(t);e.scalarData=n.scalarData})),g},async convertSurfaceToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertSurfaceToLabelmap(e.points,e.polys,e.dimensions,e.spacing,e.direction,e.origin)},async convertSurfacesToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;await this.initializePolySeg(a);const{segmentsInfo:r}=e,l=Array.from(r.keys()).map((t=>{const{points:n,polys:o}=r.get(t);return{...this.polySeg.instance.convertSurfaceToLabelmap(n,o,e.dimensions,e.spacing,e.direction,e.origin),segmentIndex:t}})),g=await Promise.all(l),m=i().newInstance();m.setDimensions(e.dimensions),m.setOrigin(e.origin),m.setSpacing(e.spacing),m.setDirection(e.direction);const u=e.dimensions[0]*e.dimensions[1]*e.dimensions[2],f=s().newInstance({name:"Pixels",numberOfComponents:1,values:new Uint8Array(u)});m.getPointData().setScalars(f),m.modified();const d=c.utilities.VoxelManager.createVolumeVoxelManager(e.dimensions,m.getPointData().getScalars().getData()),h=g.map((e=>{const{data:t,dimensions:n,direction:o,origin:a,spacing:r}=e,l=i().newInstance();l.setDimensions(n),l.setOrigin(a),l.setSpacing(r),l.setDirection(o);const g=s().newInstance({name:"Pixels",numberOfComponents:1,values:t});l.getPointData().setScalars(g),l.modified();const m=c.utilities.VoxelManager.createVolumeVoxelManager(n,t),u=l.getExtent();return{volume:l,voxelManager:m,extent:u,scalarData:t,segmentIndex:e.segmentIndex}}));return p(m,(()=>!0),(e=>{let{pointIJK:t,pointLPS:n}=e;try{for(const e of h){const{volume:o,extent:a,voxelManager:i,segmentIndex:r}=e,s=o.worldToIndex(n);if(s[0]<a[0]||s[0]>a[1]||s[1]<a[2]||s[1]>a[3]||s[2]<a[4]||s[2]>a[5])continue;const l=s.map(Math.round);if(i.getAtIJK(...l)>0){d.setAtIJKPoint(t,r);break}}}catch(e){}})),d.scalarData}};(0,o.Jj)(d)},785:e=>{e.exports=t},283:t=>{t.exports=e},953:e=>{e.exports=n},976:e=>{e.exports=o}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,l),n.exports}return l.m=r,l.x=()=>{var e=l.O(void 0,[78],(()=>l(248)));return l.O(e)},a=[],l.O=(e,t,n,o)=>{if(!t){var i=1/0;for(g=0;g<a.length;g++){t=a[g][0],n=a[g][1],o=a[g][2];for(var r=!0,s=0;s<t.length;s++)(!1&o||i>=o)&&Object.keys(l.O).every((e=>l.O[e](t[s])))?t.splice(s--,1):(r=!1,o<i&&(i=o));if(r){a.splice(g--,1);var c=n();void 0!==c&&(e=c)}}return e}o=o||0;for(var g=a.length;g>0&&a[g-1][2]>o;g--)a[g]=a[g-1];a[g]=[t,n,o]},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,n)=>(l.f[n](e,t),t)),[])),l.u=e=>e+".index.js",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&!e;)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e})(),(()=>{var e={985:1};l.f.i=(t,n)=>{e[t]||importScripts(l.p+l.u(t))};var t=self.webpackChunkcornerstoneTools3D=self.webpackChunkcornerstoneTools3D||[],n=t.push.bind(t);t.push=t=>{var o=t[0],a=t[1],i=t[2];for(var r in a)l.o(a,r)&&(l.m[r]=a[r]);for(i&&i(l);o.length;)e[o.pop()]=1;n(t)}})(),i=l.x,l.x=()=>l.e(78).then(i),l.x()})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("gl-matrix")):"function"==typeof define&&define.amd?define(["@kitware/vtk.js/Common/DataModel/ImageData","@kitware/vtk.js/Common/Core/DataArray","@cornerstonejs/core","gl-matrix"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("gl-matrix")):e.cornerstoneTools3D=t(e["@kitware/vtk.js/Common/DataModel/ImageData"],e["@kitware/vtk.js/Common/Core/DataArray"],e.cornerstone3D,e.window)}(self,((e,t,n,o)=>(()=>{"use strict";var a,i,r={248:(e,t,n)=>{var o=n(758),a=n(283),i=n.n(a),r=n(785),s=n.n(r),l=n(699),c=n(953);const{EPSILON:g}=c.CONSTANTS;function m(e,t){return function(e,t){var n;let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=1/0,i=o?-1/0:0,r=1/0,s=o?-1/0:0,l=1/0,c=o?-1/0:0;const m=3===(null===(n=e[0])||void 0===n?void 0:n.length);for(let t=0;t<e.length;t++){const n=e[t];var u,p;a=Math.min(n[0],a),i=Math.max(n[0],i),r=Math.min(n[1],r),s=Math.max(n[1],s),m&&(l=Math.min(null!==(u=n[2])&&void 0!==u?u:l,l),c=Math.max(null!==(p=n[2])&&void 0!==p?p:c,c))}return t?(a=Math.max(o?t[0]+g:0,a),i=Math.min(o?t[0]-g:t[0]-1,i),r=Math.max(o?t[1]+g:0,r),s=Math.min(o?t[1]-g:t[1]-1,s),m&&3===t.length&&(l=Math.max(o?t[2]+g:0,l),c=Math.min(o?t[2]-g:t[2]-1,c))):o||(a=Math.max(0,a),i=Math.min(1/0,i),r=Math.max(0,r),s=Math.min(1/0,s),m&&(l=Math.max(0,l),c=Math.min(1/0,c))),m?[[a,i],[r,s],[l,c]]:[[a,i],[r,s],null]}(e,t,!0)}var u=n(976);function p(e,t,n,o){let a,i,r,s,l,c,g;const{numComps:m}=e;g=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();const p=e.getDimensions();o?[[a,i],[r,s],[l,c]]=o:(a=0,i=p[0],r=0,s=p[1],l=0,c=p[2]);const f=u.vec3.fromValues(a,r,l),d=e.getDirection(),h=d.slice(0,3),v=d.slice(3,6),y=d.slice(6,9),x=e.getSpacing(),[w,S,I]=x,D=e.indexToWorld(f),M=u.vec3.fromValues(h[0]*w,h[1]*w,h[2]*w),P=u.vec3.fromValues(v[0]*S,v[1]*S,v[2]*S),b=u.vec3.fromValues(y[0]*I,y[1]*I,y[2]*I),k=m||g.length/p[2]/p[1]/p[0],C=p[0]*k,T=p[1]*C,j=[],O=u.vec3.clone(D);for(let e=l;e<=c;e++){const o=u.vec3.clone(O);for(let o=r;o<=s;o++){const r=u.vec3.clone(O);for(let r=a;r<=i;r++){const a=[r,o,e];if(t(O,a)){const t=e*T+o*C+r*k;let i;i=k>2?[g[t],g[t+1],g[t+2]]:g[t],j.push({value:i,index:t,pointIJK:a,pointLPS:O}),n&&n({value:i,index:t,pointIJK:a,pointLPS:O})}u.vec3.add(O,O,M)}u.vec3.copy(O,r),u.vec3.add(O,O,P)}u.vec3.copy(O,o),u.vec3.add(O,O,b)}return j}function f(e,t){let n;const o=t.slice(0,3);for(let e=0;e<3;e++)if(o.every(((t,n,o)=>t[e]===o[0][e]))){n=e;break}if(void 0===n)throw new Error("Cannot find a shared dimension index for polyline, probably oblique plane");const a=[];for(let e=0;e<t.length;e++)a.push([t[e][(n+1)%3],t[e][(n+2)%3]]);return function(e,t,n){if(e.length<3)return!1;const o=e.length;let a=0;const i=!function(e){if(e.length<3)return!1;const t=e.length,n=function(e,t){if(e.length!==t.length)throw Error("Both points should have the same dimensionality");const[n,o,a=0]=e,[i,r,s=0]=t,l=i-n,c=r-o,g=s-a;return l*l+c*c+g*g}(e[0],e[t-1]);return u.glMatrix.equals(0,n)}(e),r=e.length-(i?1:2);for(let n=0;n<=r;n++){const i=e[n],r=e[n===o-1?0:n+1],s=i[0]>=r[0]?i[0]:r[0],l=i[1]>=r[1]?i[1]:r[1],c=i[1]<=r[1]?i[1]:r[1];if(t[0]<=s&&t[1]>=c&&t[1]<l){let e=i[0]===r[0];if(!e){const n=(t[1]-i[1])*(r[0]-i[0])/(r[1]-i[1])+i[0];e=t[0]<=n}a+=e?1:0}}return!!(a%2)}(a,[e[(n+1)%3],e[(n+2)%3]])}const d={polySeg:null,polySegInitializing:!1,polySegInitializingPromise:null,async initializePolySeg(e){var t;this.polySegInitializing?await this.polySegInitializingPromise:null!==(t=this.polySeg)&&void 0!==t&&t.instance||(this.polySegInitializing=!0,this.polySegInitializingPromise=new Promise((t=>{this.polySeg=new l.Z,this.polySeg.initialize({updateProgress:e}).then((()=>{this.polySegInitializing=!1,t()}))})),await this.polySegInitializingPromise)},async convertContourToSurface(e){const{polylines:t,numPointsArray:n}=e;for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i<o;i++)a[i-1]=arguments[i];const[r]=a;return await this.initializePolySeg(r),await this.polySeg.instance.convertContourRoiToSurface(t,n)},async convertLabelmapToSurface(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertLabelmapToSurface(e.scalarData,e.dimensions,e.spacing,e.direction,e.origin,[e.segmentIndex])},async convertContourToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,r=await new l.Z;await r.initialize({updateProgress:a});const{segmentIndices:g,scalarData:u,annotationUIDsInSegmentMap:d,dimensions:h,origin:v,direction:y,spacing:x}=e,w=c.utilities.VoxelManager.createVolumeVoxelManager(h,u),S=i().newInstance();S.setDimensions(h),S.setOrigin(v),S.setDirection(y),S.setSpacing(x);const I=s().newInstance({name:"Pixels",numberOfComponents:1,values:u});S.getPointData().setScalars(I),S.modified();for(const e of g){const t=d.get(e);for(const n of t){const t=m(n.data.contour.polyline),[o,a,i]=c.utilities.transformWorldToIndex(S,[t[0][0],t[1][0],t[2][0]]),[r,s,l]=c.utilities.transformWorldToIndex(S,[t[0][1],t[1][1],t[2][1]]);p(S,(e=>f(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;w.setAtIJKPoint(n,e)}),[[o,r],[a,s],[i,l]])}}return w.scalarData},async convertContourToStackLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,r=await new l.Z;await r.initialize({updateProgress:a});const{segmentationsInfo:g,annotationUIDsInSegmentMap:u,segmentIndices:d}=e,h=new Map;g.forEach(((e,t)=>{const{dimensions:n,scalarData:o,direction:a,spacing:r,origin:l}=e,g=c.utilities.VoxelManager.createVolumeVoxelManager(n,o),m=i().newInstance();m.setDimensions(n),m.setOrigin(l),m.setDirection(a),m.setSpacing(r);const u=s().newInstance({name:"Pixels",numberOfComponents:1,values:o});m.getPointData().setScalars(u),m.modified(),h.set(t,{manager:g,imageData:m})}));for(const e of d){const t=u.get(e);for(const n of t){if(null==n||!n.data)continue;const t=m(n.data.contour.polyline),{referencedImageId:o}=n.metadata,{manager:a,imageData:i}=h.get(o),[r,s,l]=c.utilities.transformWorldToIndex(i,[t[0][0],t[1][0],t[2][0]]),[g,u,d]=c.utilities.transformWorldToIndex(i,[t[0][1],t[1][1],t[2][1]]);p(i,(e=>f(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;a.setAtIJKPoint(n,e)}),[[r,g],[s,u],[l,d]])}}return g.forEach(((e,t)=>{const{manager:n}=h.get(t);e.scalarData=n.scalarData})),g},async convertSurfaceToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertSurfaceToLabelmap(e.points,e.polys,e.dimensions,e.spacing,e.direction,e.origin)},async convertSurfacesToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;await this.initializePolySeg(a);const{segmentsInfo:r}=e,l=Array.from(r.keys()).map((t=>{const{points:n,polys:o}=r.get(t);return{...this.polySeg.instance.convertSurfaceToLabelmap(n,o,e.dimensions,e.spacing,e.direction,e.origin),segmentIndex:t}})),g=await Promise.all(l),m=i().newInstance();m.setDimensions(e.dimensions),m.setOrigin(e.origin),m.setSpacing(e.spacing),m.setDirection(e.direction);const u=e.dimensions[0]*e.dimensions[1]*e.dimensions[2],f=s().newInstance({name:"Pixels",numberOfComponents:1,values:new Uint8Array(u)});m.getPointData().setScalars(f),m.modified();const d=c.utilities.VoxelManager.createVolumeVoxelManager(e.dimensions,m.getPointData().getScalars().getData()),h=g.map((e=>{const{data:t,dimensions:n,direction:o,origin:a,spacing:r}=e,l=i().newInstance();l.setDimensions(n),l.setOrigin(a),l.setSpacing(r),l.setDirection(o);const g=s().newInstance({name:"Pixels",numberOfComponents:1,values:t});l.getPointData().setScalars(g),l.modified();const m=c.utilities.VoxelManager.createVolumeVoxelManager(n,t),u=l.getExtent();return{volume:l,voxelManager:m,extent:u,scalarData:t,segmentIndex:e.segmentIndex}}));return p(m,(()=>!0),(e=>{let{pointIJK:t,pointLPS:n}=e;try{for(const e of h){const{volume:o,extent:a,voxelManager:i,segmentIndex:r}=e,s=o.worldToIndex(n);if(s[0]<a[0]||s[0]>a[1]||s[1]<a[2]||s[1]>a[3]||s[2]<a[4]||s[2]>a[5])continue;const l=s.map(Math.round);if(i.getAtIJK(...l)>0){d.setAtIJKPoint(t,r);break}}}catch(e){}})),d.scalarData}};(0,o.Jj)(d)},785:e=>{e.exports=t},283:t=>{t.exports=e},953:e=>{e.exports=n},976:e=>{e.exports=o}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,l),n.exports}return l.m=r,l.x=()=>{var e=l.O(void 0,[78],(()=>l(248)));return l.O(e)},a=[],l.O=(e,t,n,o)=>{if(!t){var i=1/0;for(g=0;g<a.length;g++){t=a[g][0],n=a[g][1],o=a[g][2];for(var r=!0,s=0;s<t.length;s++)(!1&o||i>=o)&&Object.keys(l.O).every((e=>l.O[e](t[s])))?t.splice(s--,1):(r=!1,o<i&&(i=o));if(r){a.splice(g--,1);var c=n();void 0!==c&&(e=c)}}return e}o=o||0;for(var g=a.length;g>0&&a[g-1][2]>o;g--)a[g]=a[g-1];a[g]=[t,n,o]},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,n)=>(l.f[n](e,t),t)),[])),l.u=e=>e+".index.js",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&!e;)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e})(),(()=>{var e={985:1};l.f.i=(t,n)=>{e[t]||importScripts(l.p+l.u(t))};var t=self.webpackChunkcornerstoneTools3D=self.webpackChunkcornerstoneTools3D||[],n=t.push.bind(t);t.push=t=>{var o=t[0],a=t[1],i=t[2];for(var r in a)l.o(a,r)&&(l.m[r]=a[r]);for(i&&i(l);o.length;)e[o.pop()]=1;n(t)}})(),i=l.x,l.x=()=>l.e(78).then(i),l.x()})()));
|
|
2
2
|
//# sourceMappingURL=985.index.js.map
|