@cornerstonejs/tools 0.5.3 → 0.7.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/stateManagement/annotation/annotationSelection.d.ts +2 -1
- package/dist/cjs/stateManagement/annotation/annotationSelection.js +2 -1
- package/dist/cjs/stateManagement/annotation/annotationSelection.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +9 -6
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/tools/CrosshairsTool.d.ts +4 -2
- package/dist/cjs/tools/CrosshairsTool.js +12 -1
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
- package/dist/cjs/tools/annotation/BidirectionalTool.js +5 -5
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +3 -3
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +3 -3
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ProbeTool.js +2 -2
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +3 -3
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js +2 -0
- package/dist/cjs/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +19 -6
- package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.d.ts +2 -2
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js +2 -2
- package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +3 -5
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +4 -6
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +3 -5
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/cjs/types/LabelmapTypes.d.ts +1 -0
- package/dist/cjs/utilities/index.d.ts +1 -2
- package/dist/cjs/utilities/index.js +1 -3
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/planar/getPointInLineOfSightWithCriteria.js.map +1 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +4 -3
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +2 -5
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/esm/stateManagement/annotation/annotationSelection.d.ts +2 -1
- package/dist/esm/stateManagement/annotation/annotationSelection.js +1 -1
- package/dist/esm/stateManagement/annotation/annotationSelection.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +9 -6
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/tools/CrosshairsTool.d.ts +4 -2
- package/dist/esm/tools/CrosshairsTool.js +12 -1
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/WindowLevelTool.js.map +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +5 -5
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +3 -3
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +3 -3
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/ProbeTool.js +2 -2
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +3 -3
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js +2 -0
- package/dist/esm/tools/displayTools/Labelmap/labelmapConfig.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +19 -6
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.d.ts +2 -2
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +2 -2
- package/dist/esm/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +3 -2
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +4 -3
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js +3 -2
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/esm/types/LabelmapTypes.d.ts +1 -0
- package/dist/esm/utilities/index.d.ts +1 -2
- package/dist/esm/utilities/index.js +1 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/planar/getPointInLineOfSightWithCriteria.js.map +1 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +4 -3
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +3 -3
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/utilities/transformPhysicalToIndex.d.ts +0 -1
- package/dist/cjs/utilities/transformPhysicalToIndex.js +0 -9
- package/dist/cjs/utilities/transformPhysicalToIndex.js.map +0 -1
- package/dist/esm/utilities/transformPhysicalToIndex.d.ts +0 -1
- package/dist/esm/utilities/transformPhysicalToIndex.js +0 -6
- package/dist/esm/utilities/transformPhysicalToIndex.js.map +0 -1
|
@@ -40,7 +40,7 @@ export default class SegmentationDisplayTool extends BaseTool {
|
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
onSetToolEnabled() {
|
|
44
44
|
const toolGroupId = this.toolGroupId;
|
|
45
45
|
const toolGroupSegmentationRepresentations = getSegmentationRepresentations(toolGroupId);
|
|
46
46
|
if (!toolGroupSegmentationRepresentations ||
|
|
@@ -52,7 +52,7 @@ export default class SegmentationDisplayTool extends BaseTool {
|
|
|
52
52
|
triggerSegmentationRepresentationModified(toolGroupId, segmentationRepresentation.segmentationRepresentationUID);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
onSetToolDisabled() {
|
|
56
56
|
const toolGroupId = this.toolGroupId;
|
|
57
57
|
const toolGroupSegmentationRepresentations = getSegmentationRepresentations(toolGroupId);
|
|
58
58
|
if (!toolGroupSegmentationRepresentations ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/displayTools/SegmentationDisplayTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,eAAe,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,yCAAyC,EAAE,MAAM,8DAA8D,CAAC;AACzH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA4B5C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,QAAQ;IAE3D,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,aAAa,EAAE,EAAE;KAClB;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAsDrC,uBAAkB,GAAG,CAAC,WAAmB,EAAQ,EAAE;YACjD,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAE5C,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO;aACR;YAED,MAAM,oCAAoC,GACxC,8BAA8B,CAAC,WAAW,CAAC,CAAC;YAG9C,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CACpD,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE;gBACpC,MAAM,cAAc,GAAG,sBAAsB,CAC3C,UAAU,EACV,iBAAiB,CAClB,CAAC;gBAEF,IAAI,cAAc,EAAE;oBAClB,OAAO,cAAc,CAAC,QAAQ,CAAC;iBAChC;YACH,CAAC,CACF,CAAC;YAGF,oCAAoC,CAAC,OAAO,CAC1C,CAAC,cAA+C,EAAE,EAAE;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC;gBAEjE,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,IAAI,cAAc,CAAC,IAAI,IAAI,eAAe,CAAC,QAAQ,EAAE;wBACnD,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;qBAC1D;yBAAM;wBACL,MAAM,IAAI,KAAK,CACb,cAAc,cAAc,CAAC,IAAI,uBAAuB,CACzD,CAAC;qBACH;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAGF,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACtC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAlGF,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"SegmentationDisplayTool.js","sourceRoot":"","sources":["../../../../src/tools/displayTools/SegmentationDisplayTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
1
2
|
import { getBoundingBoxAroundShape } from '../../../utilities/segmentation';
|
|
2
|
-
import transformPhysicalToIndex from '../../../utilities/transformPhysicalToIndex';
|
|
3
3
|
import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
4
4
|
import { pointInShapeCallback } from '../../../utilities';
|
|
5
|
+
const { transformWorldToIndex } = csUtils;
|
|
5
6
|
function eraseRectangle(enabledElement, operationData, inside = true) {
|
|
6
7
|
const { volume: segmentation, points, segmentsLocked, segmentationId, } = operationData;
|
|
7
8
|
const { imageData, dimensions, scalarData } = segmentation;
|
|
8
9
|
const rectangleCornersIJK = points.map((world) => {
|
|
9
|
-
return
|
|
10
|
+
return transformWorldToIndex(imageData, world);
|
|
10
11
|
});
|
|
11
12
|
const boundsIJK = getBoundingBoxAroundShape(rectangleCornersIJK, dimensions);
|
|
12
13
|
if (boundsIJK.every(([min, max]) => min !== max)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eraseRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/eraseRectangle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eraseRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/eraseRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAU1C,SAAS,cAAc,CACrB,cAAqC,EACrC,aAAiC,EACjC,MAAM,GAAG,IAAI;IAEb,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,cAAc,EACd,cAAc,GACf,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAE3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,OAAO,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE7E,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAGD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAEhC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QACD,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEnE,+BAA+B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,oBAAoB,CAClC,cAAqC,EACrC,aAAiC;IAEjC,cAAc,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAQD,MAAM,UAAU,qBAAqB,CACnC,cAAqC,EACrC,aAAiC;IAEjC,cAAc,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { vec3 } from 'gl-matrix';
|
|
2
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
3
|
import { getCanvasEllipseCorners, pointInEllipse, } from '../../../utilities/math/ellipse';
|
|
3
4
|
import { getBoundingBoxAroundShape } from '../../../utilities/segmentation';
|
|
4
|
-
import transformPhysicalToIndex from '../../../utilities/transformPhysicalToIndex';
|
|
5
5
|
import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
6
6
|
import { pointInShapeCallback } from '../../../utilities';
|
|
7
|
+
const { transformWorldToIndex } = csUtils;
|
|
7
8
|
function fillCircle(enabledElement, operationData, inside = true) {
|
|
8
9
|
const { volume: segmentationVolume, points, segmentsLocked, segmentIndex, segmentationId, } = operationData;
|
|
9
10
|
const { imageData, dimensions, scalarData } = segmentationVolume;
|
|
@@ -18,8 +19,8 @@ function fillCircle(enabledElement, operationData, inside = true) {
|
|
|
18
19
|
const topLeftWorld = viewport.canvasToWorld(topLeftCanvas);
|
|
19
20
|
const bottomRightWorld = viewport.canvasToWorld(bottomRightCanvas);
|
|
20
21
|
const ellipsoidCornersIJK = [
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
transformWorldToIndex(imageData, topLeftWorld),
|
|
23
|
+
transformWorldToIndex(imageData, bottomRightWorld),
|
|
23
24
|
];
|
|
24
25
|
const boundsIJK = getBoundingBoxAroundShape(ellipsoidCornersIJK, dimensions);
|
|
25
26
|
if (boundsIJK.every(([min, max]) => min !== max)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
1
2
|
import { getBoundingBoxAroundShape } from '../../../utilities/segmentation';
|
|
2
3
|
import { pointInShapeCallback } from '../../../utilities';
|
|
3
|
-
import transformPhysicalToIndex from '../../../utilities/transformPhysicalToIndex';
|
|
4
4
|
import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
5
|
+
const { transformWorldToIndex } = csUtils;
|
|
5
6
|
function fillRectangle(enabledElement, operationData, inside = true) {
|
|
6
7
|
const { volume: segmentation, points, segmentsLocked, segmentIndex, segmentationId, constraintFn, } = operationData;
|
|
7
8
|
const { imageData, dimensions, scalarData } = segmentation;
|
|
8
9
|
let rectangleCornersIJK = points.map((world) => {
|
|
9
|
-
return
|
|
10
|
+
return transformWorldToIndex(imageData, world);
|
|
10
11
|
});
|
|
11
12
|
rectangleCornersIJK = rectangleCornersIJK.map((point) => {
|
|
12
13
|
return point.map((coord) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillRectangle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fillRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAElH,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAoB1C,SAAS,aAAa,CACpB,cAAqC,EACrC,aAA4B,EAC5B,MAAM,GAAG,IAAI;IAEb,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,GACb,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAE3D,IAAI,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,OAAO,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAGH,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE7E,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAGD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAEpC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9C,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;YACjC,OAAO;SACR;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;SAClC;IACH,CAAC,CAAC;IAEF,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvE,+BAA+B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AASD,MAAM,UAAU,mBAAmB,CACjC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AASD,MAAM,UAAU,oBAAoB,CAClC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -5,7 +5,6 @@ import throttle from './throttle';
|
|
|
5
5
|
import isObject from './isObject';
|
|
6
6
|
import calibrateImageSpacing from './calibrateImageSpacing';
|
|
7
7
|
import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
|
|
8
|
-
import transformPhysicalToIndex from './transformPhysicalToIndex';
|
|
9
8
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
10
9
|
import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
|
|
11
10
|
import * as segmentation from './segmentation';
|
|
@@ -15,4 +14,4 @@ import * as planar from './planar';
|
|
|
15
14
|
import * as stackScrollTool from './stackScrollTool';
|
|
16
15
|
import * as viewportFilters from './viewportFilters';
|
|
17
16
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
18
|
-
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement,
|
|
17
|
+
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
|
|
@@ -5,7 +5,6 @@ import throttle from './throttle';
|
|
|
5
5
|
import isObject from './isObject';
|
|
6
6
|
import calibrateImageSpacing from './calibrateImageSpacing';
|
|
7
7
|
import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForViewportIds';
|
|
8
|
-
import transformPhysicalToIndex from './transformPhysicalToIndex';
|
|
9
8
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
10
9
|
import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
|
|
11
10
|
import * as segmentation from './segmentation';
|
|
@@ -15,5 +14,5 @@ import * as planar from './planar';
|
|
|
15
14
|
import * as stackScrollTool from './stackScrollTool';
|
|
16
15
|
import * as viewportFilters from './viewportFilters';
|
|
17
16
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
18
|
-
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement,
|
|
17
|
+
export { math, planar, viewportFilters, stackScrollTool, drawing, debounce, deepMerge, throttle, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, };
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sCAAsC,GACvC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAE5F,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAGlF,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,GACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPointInLineOfSightWithCriteria.js","sourceRoot":"","sources":["../../../../src/utilities/planar/getPointInLineOfSightWithCriteria.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"getPointInLineOfSightWithCriteria.js","sourceRoot":"","sources":["../../../../src/utilities/planar/getPointInLineOfSightWithCriteria.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,MAAM,CAAC,OAAO,UAAU,iCAAiC,CACvD,QAA+B,EAC/B,QAAsB,EACtB,cAAsB,EACtB,gBAA0E,EAC1E,QAAQ,GAAG,IAAI;IAGf,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAI5C,MAAM,EAAE,wBAAwB,EAAE,GAChC,OAAO,CAAC,oCAAoC,CAC1C,QAAQ,EACR,MAAM,EACN,cAAc,CACf,CAAC;IAEJ,MAAM,IAAI,GAAG,wBAAwB,GAAG,QAAQ,CAAC;IAKjD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAGvB,MAAM,MAAM,GAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAGvC,IAAI,KAAK,GAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAGpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAEnD,IAAI,WAAW,CAAC;IAIhB,KAAK,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAAE;QAE9D,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvB,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACnD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAG7C,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;YAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAGxD,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE;gBACf,WAAW,GAAG,WAAW,CAAC;aAC3B;SACF;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAOD,MAAM,SAAS,GAAG,UAChB,KAAmB,EACnB,MAAqB;IAErB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;IACpD,OAAO,CACL,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAChB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
1
2
|
import { vec3 } from 'gl-matrix';
|
|
2
3
|
import { pointInSphere } from './math/sphere';
|
|
3
4
|
import { getBoundingBoxAroundShape } from './segmentation/getBoundingBoxUtils';
|
|
4
5
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
5
|
-
|
|
6
|
+
const { transformWorldToIndex } = csUtils;
|
|
6
7
|
export default function pointInSurroundingSphereCallback(viewport, imageData, circlePoints, callback) {
|
|
7
8
|
const dimensions = imageData.getDimensions();
|
|
8
9
|
const camera = viewport.getCamera();
|
|
@@ -21,8 +22,8 @@ export default function pointInSurroundingSphereCallback(viewport, imageData, ci
|
|
|
21
22
|
vec3.scaleAndAdd(topLeftWorld, topLeftWorld, viewRight, -radiusWorld);
|
|
22
23
|
vec3.scaleAndAdd(bottomRightWorld, bottomRightWorld, viewRight, radiusWorld);
|
|
23
24
|
const sphereCornersIJK = [
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
transformWorldToIndex(imageData, topLeftWorld),
|
|
26
|
+
(transformWorldToIndex(imageData, bottomRightWorld)),
|
|
26
27
|
];
|
|
27
28
|
const boundsIJK = getBoundingBoxAroundShape(sphereCornersIJK, dimensions);
|
|
28
29
|
const sphereObj = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInSurroundingSphereCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInSurroundingSphereCallback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pointInSurroundingSphereCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInSurroundingSphereCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { cache } from '@cornerstonejs/core';
|
|
1
|
+
import { cache, utilities as csUtils } from '@cornerstonejs/core';
|
|
2
2
|
import { getBoundingBoxAroundShape, extend2DBoundingBoxInViewAxis, } from '../segmentation';
|
|
3
3
|
import { pointInShapeCallback } from '../../utilities';
|
|
4
4
|
import { triggerSegmentationDataModified } from '../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
5
|
-
import transformPhysicalToIndex from '../transformPhysicalToIndex';
|
|
6
5
|
import * as SegmentationState from '../../stateManagement/segmentation/segmentationState';
|
|
6
|
+
const { transformWorldToIndex } = csUtils;
|
|
7
7
|
function thresholdVolumeByRange(annotations, referenceVolumes, segmentationRepresentation, options) {
|
|
8
8
|
if (referenceVolumes.length > 1) {
|
|
9
9
|
throw new Error('thresholding more than one volumes is not supported yet');
|
|
@@ -34,7 +34,7 @@ function thresholdVolumeByRange(annotations, referenceVolumes, segmentationRepre
|
|
|
34
34
|
const { projectionPoints } = data.cachedStats;
|
|
35
35
|
pointsToUse = [].concat(...projectionPoints);
|
|
36
36
|
}
|
|
37
|
-
const rectangleCornersIJK = pointsToUse.map((world) =>
|
|
37
|
+
const rectangleCornersIJK = pointsToUse.map((world) => transformWorldToIndex(imageData, world));
|
|
38
38
|
let boundsIJK = getBoundingBoxAroundShape(rectangleCornersIJK, dimensions);
|
|
39
39
|
if (numSlicesToProject && !data.cachedStats?.projectionPoints) {
|
|
40
40
|
boundsIJK = extendBoundingBoxInSliceAxisIfNecessary(boundsIJK, numSlicesToProject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"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"}
|