@cornerstonejs/tools 0.17.4 → 0.19.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/enums/Events.d.ts +1 -0
- package/dist/cjs/enums/Events.js +1 -0
- package/dist/cjs/enums/Events.js.map +1 -1
- package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +3 -0
- package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
- package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js +7 -1
- package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js +8 -1
- package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.d.ts +4 -0
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js +17 -5
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +16 -6
- package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/cjs/tools/CrosshairsTool.js +6 -5
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/StackScrollTool.d.ts +3 -1
- package/dist/cjs/tools/StackScrollTool.js +33 -11
- package/dist/cjs/tools/StackScrollTool.js.map +1 -1
- package/dist/cjs/tools/StackScrollToolMouseWheelTool.d.ts +4 -1
- package/dist/cjs/tools/StackScrollToolMouseWheelTool.js +17 -9
- package/dist/cjs/tools/StackScrollToolMouseWheelTool.js.map +1 -1
- package/dist/cjs/tools/ZoomTool.d.ts +13 -3
- package/dist/cjs/tools/ZoomTool.js +64 -4
- package/dist/cjs/tools/ZoomTool.js.map +1 -1
- package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
- package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -2
- package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/types/BoundsIJK.d.ts +3 -0
- package/dist/cjs/types/BoundsIJK.js +3 -0
- package/dist/cjs/types/BoundsIJK.js.map +1 -0
- package/dist/cjs/types/EventTypes.d.ts +5 -1
- package/dist/cjs/types/IToolGroup.d.ts +2 -1
- package/dist/cjs/types/JumpToSliceOptions.d.ts +1 -0
- package/dist/cjs/types/ScrollOptions.d.ts +1 -0
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
- package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +13 -0
- package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +40 -0
- package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
- package/dist/cjs/utilities/boundingBox/index.d.ts +3 -0
- package/dist/cjs/utilities/boundingBox/index.js +11 -0
- package/dist/cjs/utilities/boundingBox/index.js.map +1 -0
- package/dist/cjs/utilities/cine/playClip.js +8 -7
- package/dist/cjs/utilities/cine/playClip.js.map +1 -1
- package/dist/cjs/utilities/index.d.ts +5 -2
- package/dist/cjs/utilities/index.js +9 -3
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/pointInShapeCallback.d.ts +1 -2
- package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +42 -12
- package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +51 -0
- package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
- package/dist/cjs/utilities/rectangleROITool/index.d.ts +2 -0
- package/dist/cjs/utilities/rectangleROITool/index.js +9 -0
- package/dist/cjs/utilities/rectangleROITool/index.js.map +1 -0
- package/dist/cjs/utilities/scroll.d.ts +4 -0
- package/dist/cjs/utilities/scroll.js +40 -0
- package/dist/cjs/utilities/scroll.js.map +1 -0
- package/dist/cjs/utilities/segmentation/index.d.ts +2 -2
- package/dist/cjs/utilities/segmentation/index.js +3 -4
- package/dist/cjs/utilities/segmentation/index.js.map +1 -1
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +42 -0
- package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +13 -69
- package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/cjs/utilities/stackPrefetch/index.d.ts +2 -0
- package/dist/cjs/utilities/stackPrefetch/index.js +9 -0
- package/dist/cjs/utilities/stackPrefetch/index.js.map +1 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.d.ts +8 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js +232 -0
- package/dist/cjs/utilities/stackPrefetch/stackPrefetch.js.map +1 -0
- package/dist/cjs/utilities/stackPrefetch/state.d.ts +3 -0
- package/dist/cjs/utilities/stackPrefetch/state.js +18 -0
- package/dist/cjs/utilities/stackPrefetch/state.js.map +1 -0
- package/dist/cjs/utilities/viewport/jumpToSlice.d.ts +1 -1
- package/dist/cjs/utilities/viewport/jumpToSlice.js +9 -7
- package/dist/cjs/utilities/viewport/jumpToSlice.js.map +1 -1
- package/dist/esm/enums/Events.d.ts +1 -0
- package/dist/esm/enums/Events.js +1 -0
- package/dist/esm/enums/Events.js.map +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +3 -0
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.js +7 -2
- package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +7 -1
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.d.ts +4 -0
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +18 -6
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +17 -7
- package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
- package/dist/esm/tools/CrosshairsTool.js +6 -5
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/StackScrollTool.d.ts +3 -1
- package/dist/esm/tools/StackScrollTool.js +34 -12
- package/dist/esm/tools/StackScrollTool.js.map +1 -1
- package/dist/esm/tools/StackScrollToolMouseWheelTool.d.ts +4 -1
- package/dist/esm/tools/StackScrollToolMouseWheelTool.js +17 -9
- package/dist/esm/tools/StackScrollToolMouseWheelTool.js.map +1 -1
- package/dist/esm/tools/ZoomTool.d.ts +13 -3
- package/dist/esm/tools/ZoomTool.js +64 -4
- package/dist/esm/tools/ZoomTool.js.map +1 -1
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/types/BoundsIJK.d.ts +3 -0
- package/dist/esm/types/BoundsIJK.js +2 -0
- package/dist/esm/types/BoundsIJK.js.map +1 -0
- package/dist/esm/types/EventTypes.d.ts +5 -1
- package/dist/esm/types/IToolGroup.d.ts +2 -1
- package/dist/esm/types/JumpToSliceOptions.d.ts +1 -0
- package/dist/esm/types/ScrollOptions.d.ts +1 -0
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
- package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +11 -0
- package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +38 -0
- package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
- package/dist/esm/utilities/boundingBox/index.d.ts +3 -0
- package/dist/esm/utilities/boundingBox/index.js +4 -0
- package/dist/esm/utilities/boundingBox/index.js.map +1 -0
- package/dist/esm/utilities/cine/playClip.js +8 -7
- package/dist/esm/utilities/cine/playClip.js.map +1 -1
- package/dist/esm/utilities/index.d.ts +5 -2
- package/dist/esm/utilities/index.js +5 -2
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/pointInShapeCallback.d.ts +1 -2
- package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js +40 -10
- package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +1 -1
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +45 -0
- package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
- package/dist/esm/utilities/rectangleROITool/index.d.ts +2 -0
- package/dist/esm/utilities/rectangleROITool/index.js +3 -0
- package/dist/esm/utilities/rectangleROITool/index.js.map +1 -0
- package/dist/esm/utilities/scroll.d.ts +4 -0
- package/dist/esm/utilities/scroll.js +35 -0
- package/dist/esm/utilities/scroll.js.map +1 -0
- package/dist/esm/utilities/segmentation/index.d.ts +2 -2
- package/dist/esm/utilities/segmentation/index.js +2 -2
- package/dist/esm/utilities/segmentation/index.js.map +1 -1
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +37 -0
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +13 -47
- package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
- package/dist/esm/utilities/stackPrefetch/index.d.ts +2 -0
- package/dist/esm/utilities/stackPrefetch/index.js +3 -0
- package/dist/esm/utilities/stackPrefetch/index.js.map +1 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.d.ts +8 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js +226 -0
- package/dist/esm/utilities/stackPrefetch/stackPrefetch.js.map +1 -0
- package/dist/esm/utilities/stackPrefetch/state.d.ts +3 -0
- package/dist/esm/utilities/stackPrefetch/state.js +14 -0
- package/dist/esm/utilities/stackPrefetch/state.js.map +1 -0
- package/dist/esm/utilities/viewport/jumpToSlice.d.ts +1 -1
- package/dist/esm/utilities/viewport/jumpToSlice.js +9 -7
- package/dist/esm/utilities/viewport/jumpToSlice.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.LICENSE.txt +2 -0
- package/dist/umd/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js +0 -51
- package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
- package/dist/cjs/utilities/stackScrollTool/index.d.ts +0 -2
- package/dist/cjs/utilities/stackScrollTool/index.js +0 -9
- package/dist/cjs/utilities/stackScrollTool/index.js.map +0 -1
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.d.ts +0 -3
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js +0 -43
- package/dist/cjs/utilities/stackScrollTool/scrollThroughStack.js.map +0 -1
- package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js +0 -47
- package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
- package/dist/esm/utilities/stackScrollTool/index.d.ts +0 -2
- package/dist/esm/utilities/stackScrollTool/index.js +0 -3
- package/dist/esm/utilities/stackScrollTool/index.js.map +0 -1
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.d.ts +0 -3
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js +0 -37
- package/dist/esm/utilities/stackScrollTool/scrollThroughStack.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,gCAAgC,CAAC;AAC3E,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,7 +1,7 @@
|
|
|
1
1
|
import { vec3 } from 'gl-matrix';
|
|
2
2
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
3
3
|
import { getCanvasEllipseCorners, pointInEllipse, } from '../../../utilities/math/ellipse';
|
|
4
|
-
import { getBoundingBoxAroundShape } from '../../../utilities/
|
|
4
|
+
import { getBoundingBoxAroundShape } from '../../../utilities/boundingBox';
|
|
5
5
|
import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
6
6
|
import { pointInShapeCallback } from '../../../utilities';
|
|
7
7
|
const { transformWorldToIndex } = csUtils;
|
|
@@ -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;AAEjC,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,uBAAuB,EACvB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
|
-
import { getBoundingBoxAroundShape } from '../../../utilities/
|
|
2
|
+
import { getBoundingBoxAroundShape } from '../../../utilities/boundingBox';
|
|
3
3
|
import { pointInShapeCallback } from '../../../utilities';
|
|
4
4
|
import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
|
|
5
5
|
const { transformWorldToIndex } = csUtils;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,gCAAgC,CAAC;AAC3E,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"}
|
|
@@ -10,7 +10,7 @@ function fillSphere(enabledElement, operationData, _inside = true) {
|
|
|
10
10
|
}
|
|
11
11
|
scalarData[index] = segmentIndex;
|
|
12
12
|
};
|
|
13
|
-
pointInSurroundingSphereCallback(
|
|
13
|
+
pointInSurroundingSphereCallback(imageData, [points[0], points[1]], callback, viewport);
|
|
14
14
|
triggerSegmentationDataModified(segmentationId);
|
|
15
15
|
}
|
|
16
16
|
export function fillInsideSphere(enabledElement, operationData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAatE,SAAS,UAAU,CACjB,cAAqC,EACrC,aAA4B,EAC5B,OAAO,GAAG,IAAI;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,GACP,GAAG,aAAa,CAAC;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAE/C,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,YAAY,CAAC;IACnC,CAAC,CAAC;IAEF,gCAAgC,CAC9B,
|
|
1
|
+
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAatE,SAAS,UAAU,CACjB,cAAqC,EACrC,aAA4B,EAC5B,OAAO,GAAG,IAAI;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,GACP,GAAG,aAAa,CAAC;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAE/C,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,YAAY,CAAC;IACnC,CAAC,CAAC;IAEF,gCAAgC,CAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAEF,+BAA+B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundsIJK.js","sourceRoot":"","sources":["../../../src/types/BoundsIJK.ts"],"names":[],"mappings":""}
|
|
@@ -58,6 +58,9 @@ declare type SegmentationRepresentationModifiedEventDetail = {
|
|
|
58
58
|
toolGroupId: string;
|
|
59
59
|
segmentationRepresentationUID: string;
|
|
60
60
|
};
|
|
61
|
+
declare type SegmentationRemovedEventDetail = {
|
|
62
|
+
segmentationId: string;
|
|
63
|
+
};
|
|
61
64
|
declare type SegmentationRepresentationRemovedEventDetail = {
|
|
62
65
|
toolGroupId: string;
|
|
63
66
|
segmentationRepresentationUID: string;
|
|
@@ -139,6 +142,7 @@ declare type AnnotationLockChangeEventType = Types.CustomEventType<AnnotationLoc
|
|
|
139
142
|
declare type AnnotationVisibilityChangeEventType = Types.CustomEventType<AnnotationVisibilityChangeEventDetail>;
|
|
140
143
|
declare type SegmentationDataModifiedEventType = Types.CustomEventType<SegmentationDataModifiedEventDetail>;
|
|
141
144
|
declare type SegmentationRepresentationModifiedEventType = Types.CustomEventType<SegmentationRepresentationModifiedEventDetail>;
|
|
145
|
+
declare type SegmentationRemovedEventType = Types.CustomEventType<SegmentationRemovedEventDetail>;
|
|
142
146
|
declare type SegmentationRepresentationRemovedEventType = Types.CustomEventType<SegmentationRepresentationRemovedEventDetail>;
|
|
143
147
|
declare type SegmentationRenderedEventType = Types.CustomEventType<SegmentationRenderedEventDetail>;
|
|
144
148
|
declare type SegmentationModifiedEventType = Types.CustomEventType<SegmentationModifiedEventDetail>;
|
|
@@ -152,4 +156,4 @@ declare type MouseClickEventType = Types.CustomEventType<MouseClickEventDetail>;
|
|
|
152
156
|
declare type MouseMoveEventType = Types.CustomEventType<MouseMoveEventDetail>;
|
|
153
157
|
declare type MouseDoubleClickEventType = Types.CustomEventType<MouseDoubleClickEventDetail>;
|
|
154
158
|
declare type MouseWheelEventType = Types.CustomEventType<MouseWheelEventDetail>;
|
|
155
|
-
export { NormalizedMouseEventDetail, NormalizedMouseEventType, AnnotationAddedEventDetail, AnnotationAddedEventType, AnnotationCompletedEventDetail, AnnotationCompletedEventType, AnnotationModifiedEventDetail, AnnotationModifiedEventType, AnnotationRemovedEventDetail, AnnotationRemovedEventType, AnnotationSelectionChangeEventDetail, AnnotationSelectionChangeEventType, AnnotationRenderedEventDetail, AnnotationRenderedEventType, AnnotationLockChangeEventDetail, AnnotationVisibilityChangeEventDetail, AnnotationLockChangeEventType, AnnotationVisibilityChangeEventType, SegmentationDataModifiedEventType, SegmentationRepresentationModifiedEventDetail, SegmentationRepresentationModifiedEventType, SegmentationRepresentationRemovedEventDetail, SegmentationRepresentationRemovedEventType, SegmentationDataModifiedEventDetail, SegmentationRenderedEventType, SegmentationRenderedEventDetail, SegmentationModifiedEventType, SegmentationModifiedEventDetail, KeyDownEventDetail, KeyDownEventType, KeyUpEventDetail, KeyUpEventType, MouseDownEventDetail, MouseDownEventType, MouseDownActivateEventDetail, MouseDownActivateEventType, MouseDragEventDetail, MouseDragEventType, MouseUpEventDetail, MouseUpEventType, MouseClickEventDetail, MouseClickEventType, MouseMoveEventDetail, MouseMoveEventType, MouseDoubleClickEventDetail, MouseDoubleClickEventType, MouseWheelEventDetail, MouseWheelEventType, };
|
|
159
|
+
export { NormalizedMouseEventDetail, NormalizedMouseEventType, AnnotationAddedEventDetail, AnnotationAddedEventType, AnnotationCompletedEventDetail, AnnotationCompletedEventType, AnnotationModifiedEventDetail, AnnotationModifiedEventType, AnnotationRemovedEventDetail, AnnotationRemovedEventType, AnnotationSelectionChangeEventDetail, AnnotationSelectionChangeEventType, AnnotationRenderedEventDetail, AnnotationRenderedEventType, AnnotationLockChangeEventDetail, AnnotationVisibilityChangeEventDetail, AnnotationLockChangeEventType, AnnotationVisibilityChangeEventType, SegmentationDataModifiedEventType, SegmentationRepresentationModifiedEventDetail, SegmentationRepresentationModifiedEventType, SegmentationRepresentationRemovedEventDetail, SegmentationRepresentationRemovedEventType, SegmentationRemovedEventType, SegmentationRemovedEventDetail, SegmentationDataModifiedEventDetail, SegmentationRenderedEventType, SegmentationRenderedEventDetail, SegmentationModifiedEventType, SegmentationModifiedEventDetail, KeyDownEventDetail, KeyDownEventType, KeyUpEventDetail, KeyUpEventType, MouseDownEventDetail, MouseDownEventType, MouseDownActivateEventDetail, MouseDownActivateEventType, MouseDragEventDetail, MouseDragEventType, MouseUpEventDetail, MouseUpEventType, MouseClickEventDetail, MouseClickEventType, MouseMoveEventDetail, MouseMoveEventType, MouseDoubleClickEventDetail, MouseDoubleClickEventType, MouseWheelEventDetail, MouseWheelEventType, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Types } from '@cornerstonejs/core';
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
2
|
import { SetToolBindingsType, ToolOptionsType } from './ISetToolModeOptions';
|
|
3
3
|
export default interface IToolGroup {
|
|
4
4
|
_toolInstances: Record<string, any>;
|
|
@@ -6,6 +6,7 @@ export default interface IToolGroup {
|
|
|
6
6
|
viewportsInfo: Array<Types.IViewportId>;
|
|
7
7
|
toolOptions: Record<string, any>;
|
|
8
8
|
getViewportIds: () => string[];
|
|
9
|
+
getViewportsInfo: () => Array<Types.IViewportId>;
|
|
9
10
|
getToolInstance: {
|
|
10
11
|
(toolName: string): any;
|
|
11
12
|
};
|
|
@@ -14,6 +14,7 @@ import type { ToolProps, PublicToolProps } from './ToolProps';
|
|
|
14
14
|
import type { SVGCursorDescriptor, SVGPoint } from './CursorTypes';
|
|
15
15
|
import type JumpToSliceOptions from './JumpToSliceOptions';
|
|
16
16
|
import type ScrollOptions from './ScrollOptions';
|
|
17
|
+
import type BoundsIJK from './BoundsIJK';
|
|
17
18
|
import type * as CINETypes from './CINETypes';
|
|
18
19
|
import type { Color, ColorLUT, RepresentationConfig, SegmentationRepresentationConfig, SegmentationRepresentationData, Segmentation, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, SegmentationState, RepresentationPublicInput } from './SegmentationStateTypes';
|
|
19
|
-
export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, };
|
|
20
|
+
export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, BoundsIJK, };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
|
-
declare function getBoundingBoxAroundShape(vertices: Types.Point3[], dimensions?: Types.Point3): [Types.Point2, Types.Point2, Types.Point2];
|
|
3
2
|
declare function extend2DBoundingBoxInViewAxis(boundsIJK: [Types.Point2, Types.Point2, Types.Point2], numSlicesToProject: number): [Types.Point2, Types.Point2, Types.Point2];
|
|
4
|
-
export
|
|
3
|
+
export default extend2DBoundingBoxInViewAxis;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function extend2DBoundingBoxInViewAxis(boundsIJK, numSlicesToProject) {
|
|
2
|
+
const sliceNormalIndex = boundsIJK.findIndex(([min, max]) => min === max);
|
|
3
|
+
if (sliceNormalIndex === -1) {
|
|
4
|
+
throw new Error('3D bounding boxes not supported in an oblique plane');
|
|
5
|
+
}
|
|
6
|
+
boundsIJK[sliceNormalIndex][0] -= numSlicesToProject;
|
|
7
|
+
boundsIJK[sliceNormalIndex][1] += numSlicesToProject;
|
|
8
|
+
return boundsIJK;
|
|
9
|
+
}
|
|
10
|
+
export default extend2DBoundingBoxInViewAxis;
|
|
11
|
+
//# sourceMappingURL=extend2DBoundingBoxInViewAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend2DBoundingBoxInViewAxis.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/extend2DBoundingBoxInViewAxis.ts"],"names":[],"mappings":"AAWA,SAAS,6BAA6B,CACpC,SAAqD,EACrD,kBAA0B;IAG1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAE1E,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAGD,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;IACrD,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,eAAe,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function getBoundingBoxAroundShape(points, dimensions) {
|
|
2
|
+
let xMin = Infinity;
|
|
3
|
+
let xMax = 0;
|
|
4
|
+
let yMin = Infinity;
|
|
5
|
+
let yMax = 0;
|
|
6
|
+
let zMin = Infinity;
|
|
7
|
+
let zMax = 0;
|
|
8
|
+
points.forEach((p) => {
|
|
9
|
+
xMin = Math.min(p[0], xMin);
|
|
10
|
+
xMax = Math.max(p[0], xMax);
|
|
11
|
+
yMin = Math.min(p[1], yMin);
|
|
12
|
+
yMax = Math.max(p[1], yMax);
|
|
13
|
+
zMin = Math.min(p[2], zMin);
|
|
14
|
+
zMax = Math.max(p[2], zMax);
|
|
15
|
+
});
|
|
16
|
+
xMin = Math.floor(xMin);
|
|
17
|
+
xMax = Math.floor(xMax);
|
|
18
|
+
yMin = Math.floor(yMin);
|
|
19
|
+
yMax = Math.floor(yMax);
|
|
20
|
+
zMin = Math.floor(zMin);
|
|
21
|
+
zMax = Math.floor(zMax);
|
|
22
|
+
if (dimensions) {
|
|
23
|
+
const [width, height, depth] = dimensions;
|
|
24
|
+
xMin = Math.max(0, xMin);
|
|
25
|
+
xMax = Math.min(width - 1, xMax);
|
|
26
|
+
yMin = Math.max(0, yMin);
|
|
27
|
+
yMax = Math.min(height - 1, yMax);
|
|
28
|
+
zMin = Math.max(0, zMin);
|
|
29
|
+
zMax = Math.min(depth - 1, zMax);
|
|
30
|
+
}
|
|
31
|
+
return [
|
|
32
|
+
[xMin, xMax],
|
|
33
|
+
[yMin, yMax],
|
|
34
|
+
[zMin, zMax],
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
export default getBoundingBoxAroundShape;
|
|
38
|
+
//# sourceMappingURL=getBoundingBoxAroundShape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBoundingBoxAroundShape.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/getBoundingBoxAroundShape.ts"],"names":[],"mappings":"AAWA,SAAS,yBAAyB,CAChC,MAAsB,EACtB,UAAyB;IAEzB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,UAAU,EAAE;QAEd,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAClC;IAED,OAAO;QACL,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,IAAI,EAAE,IAAI,CAAC;KACb,CAAC;AACJ,CAAC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/boundingBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { utilities, getEnabledElement, StackViewport, } from '@cornerstonejs/cor
|
|
|
2
2
|
import CINE_EVENTS from './events';
|
|
3
3
|
import { addToolState, getToolState } from './state';
|
|
4
4
|
const { triggerEvent } = utilities;
|
|
5
|
+
const debounced = true;
|
|
6
|
+
const loop = true;
|
|
5
7
|
function playClip(element, playClipOptions) {
|
|
6
8
|
let playClipTimeouts;
|
|
7
9
|
let playClipIsTimeVarying;
|
|
@@ -17,7 +19,7 @@ function playClip(element, playClipOptions) {
|
|
|
17
19
|
throw new Error('playClip: element must be a stack viewport, volume viewport playClip not yet implemented');
|
|
18
20
|
}
|
|
19
21
|
const stackData = {
|
|
20
|
-
|
|
22
|
+
targetImageIdIndex: viewport.getTargetImageIdIndex(),
|
|
21
23
|
imageIds: viewport.getImageIds(),
|
|
22
24
|
};
|
|
23
25
|
let playClipData = getToolState(element);
|
|
@@ -52,7 +54,7 @@ function playClip(element, playClipOptions) {
|
|
|
52
54
|
playClipIsTimeVarying = isTimeVarying;
|
|
53
55
|
}
|
|
54
56
|
const playClipAction = () => {
|
|
55
|
-
let newImageIdIndex = stackData.
|
|
57
|
+
let newImageIdIndex = stackData.targetImageIdIndex;
|
|
56
58
|
const imageCount = stackData.imageIds.length;
|
|
57
59
|
if (playClipData.reverse) {
|
|
58
60
|
newImageIdIndex--;
|
|
@@ -75,10 +77,9 @@ function playClip(element, playClipOptions) {
|
|
|
75
77
|
if (newImageIdIndex < 0) {
|
|
76
78
|
newImageIdIndex = imageCount - 1;
|
|
77
79
|
}
|
|
78
|
-
if (newImageIdIndex !== stackData.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
80
|
+
if (newImageIdIndex !== stackData.targetImageIdIndex) {
|
|
81
|
+
const delta = newImageIdIndex - stackData.targetImageIdIndex;
|
|
82
|
+
viewport.scroll(delta, debounced, loop);
|
|
82
83
|
}
|
|
83
84
|
};
|
|
84
85
|
if (playClipTimeouts &&
|
|
@@ -86,7 +87,7 @@ function playClip(element, playClipOptions) {
|
|
|
86
87
|
playClipIsTimeVarying) {
|
|
87
88
|
playClipData.usingFrameTimeVector = true;
|
|
88
89
|
playClipData.intervalId = window.setTimeout(function playClipTimeoutHandler() {
|
|
89
|
-
playClipData.intervalId = window.setTimeout(playClipTimeoutHandler, playClipTimeouts[stackData.
|
|
90
|
+
playClipData.intervalId = window.setTimeout(playClipTimeoutHandler, playClipTimeouts[stackData.targetImageIdIndex]);
|
|
90
91
|
playClipAction();
|
|
91
92
|
}, 0);
|
|
92
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playClip.js","sourceRoot":"","sources":["../../../../src/utilities/cine/playClip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,WAAW,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGrD,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"playClip.js","sourceRoot":"","sources":["../../../../src/utilities/cine/playClip.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,16 @@ import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForV
|
|
|
9
9
|
import jumpToSlice from './viewport/jumpToSlice';
|
|
10
10
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
11
11
|
import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
|
|
12
|
+
import scroll from './scroll';
|
|
12
13
|
import * as segmentation from './segmentation';
|
|
13
14
|
import * as drawing from './drawing';
|
|
14
15
|
import * as math from './math';
|
|
15
16
|
import * as planar from './planar';
|
|
16
|
-
import * as stackScrollTool from './stackScrollTool';
|
|
17
17
|
import * as viewportFilters from './viewportFilters';
|
|
18
18
|
import * as orientation from './orientation';
|
|
19
19
|
import * as cine from './cine';
|
|
20
|
+
import * as boundingBox from './boundingBox';
|
|
21
|
+
import * as rectangleROITool from './rectangleROITool';
|
|
22
|
+
import * as stackPrefetch from './stackPrefetch';
|
|
20
23
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
21
|
-
export { math, planar, viewportFilters,
|
|
24
|
+
export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, cine, clip, boundingBox, rectangleROITool, stackPrefetch, scroll, };
|
|
@@ -9,14 +9,17 @@ import triggerAnnotationRenderForViewportIds from './triggerAnnotationRenderForV
|
|
|
9
9
|
import jumpToSlice from './viewport/jumpToSlice';
|
|
10
10
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
11
11
|
import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
|
|
12
|
+
import scroll from './scroll';
|
|
12
13
|
import * as segmentation from './segmentation';
|
|
13
14
|
import * as drawing from './drawing';
|
|
14
15
|
import * as math from './math';
|
|
15
16
|
import * as planar from './planar';
|
|
16
|
-
import * as stackScrollTool from './stackScrollTool';
|
|
17
17
|
import * as viewportFilters from './viewportFilters';
|
|
18
18
|
import * as orientation from './orientation';
|
|
19
19
|
import * as cine from './cine';
|
|
20
|
+
import * as boundingBox from './boundingBox';
|
|
21
|
+
import * as rectangleROITool from './rectangleROITool';
|
|
22
|
+
import * as stackPrefetch from './stackPrefetch';
|
|
20
23
|
import { triggerEvent } from '@cornerstonejs/core';
|
|
21
|
-
export { math, planar, viewportFilters,
|
|
24
|
+
export { math, planar, viewportFilters, drawing, debounce, deepMerge, throttle, orientation, isObject, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, cine, clip, boundingBox, rectangleROITool, stackPrefetch, scroll, };
|
|
22
25
|
//# 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,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,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,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,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,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,MAAM,GACP,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
2
|
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
3
|
+
import BoundsIJK from '../types/BoundsIJK';
|
|
3
4
|
export declare type PointInShapeCallback = ({ value, index, pointIJK, pointLPS, }: {
|
|
4
5
|
value: number;
|
|
5
6
|
index: number;
|
|
@@ -7,6 +8,4 @@ export declare type PointInShapeCallback = ({ value, index, pointIJK, pointLPS,
|
|
|
7
8
|
pointLPS: Types.Point3;
|
|
8
9
|
}) => void;
|
|
9
10
|
export declare type ShapeFnCriteria = (pointIJK: Types.Point3, pointLPS: Types.Point3) => boolean;
|
|
10
|
-
declare type BoundsIJK = [Types.Point2, Types.Point2, Types.Point2];
|
|
11
11
|
export default function pointInShapeCallback(imageData: vtkImageData | Types.CPUImageData, pointInShapeFn: ShapeFnCriteria, callback: PointInShapeCallback, boundsIJK?: BoundsIJK): void;
|
|
12
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pointInShapeCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInShapeCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
2
|
import type { vtkImageData } from '@kitware/vtk.js/Common/DataModel/ImageData';
|
|
3
3
|
import { PointInShapeCallback } from './pointInShapeCallback';
|
|
4
|
-
export default function pointInSurroundingSphereCallback(
|
|
4
|
+
export default function pointInSurroundingSphereCallback(imageData: vtkImageData, circlePoints: [Types.Point3, Types.Point3], callback: PointInShapeCallback, viewport?: Types.IVolumeViewport): void;
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
2
|
import { vec3 } from 'gl-matrix';
|
|
3
3
|
import { pointInSphere } from './math/sphere';
|
|
4
|
-
import { getBoundingBoxAroundShape } from './segmentation/getBoundingBoxUtils';
|
|
5
4
|
import pointInShapeCallback from './pointInShapeCallback';
|
|
5
|
+
import { getBoundingBoxAroundShape } from './boundingBox';
|
|
6
6
|
const { transformWorldToIndex } = csUtils;
|
|
7
|
-
export default function pointInSurroundingSphereCallback(
|
|
7
|
+
export default function pointInSurroundingSphereCallback(imageData, circlePoints, callback, viewport) {
|
|
8
|
+
const { boundsIJK, centerWorld, radiusWorld } = _getBounds(circlePoints, imageData, viewport);
|
|
9
|
+
const sphereObj = {
|
|
10
|
+
center: centerWorld,
|
|
11
|
+
radius: radiusWorld,
|
|
12
|
+
};
|
|
13
|
+
pointInShapeCallback(imageData, (pointLPS) => pointInSphere(sphereObj, pointLPS), callback, boundsIJK);
|
|
14
|
+
}
|
|
15
|
+
function _getBounds(circlePoints, imageData, viewport) {
|
|
16
|
+
const [bottom, top] = circlePoints;
|
|
17
|
+
const centerWorld = vec3.fromValues((bottom[0] + top[0]) / 2, (bottom[1] + top[1]) / 2, (bottom[2] + top[2]) / 2);
|
|
18
|
+
const radiusWorld = vec3.distance(bottom, top) / 2;
|
|
19
|
+
let boundsIJK;
|
|
20
|
+
if (!viewport) {
|
|
21
|
+
const centerIJK = transformWorldToIndex(imageData, centerWorld);
|
|
22
|
+
const spacings = imageData.getSpacing();
|
|
23
|
+
const minSpacing = Math.min(...spacings);
|
|
24
|
+
const maxRadiusIJK = Math.ceil(radiusWorld / minSpacing);
|
|
25
|
+
boundsIJK = [
|
|
26
|
+
[centerIJK[0] - maxRadiusIJK, centerIJK[0] + maxRadiusIJK],
|
|
27
|
+
[centerIJK[1] - maxRadiusIJK, centerIJK[1] + maxRadiusIJK],
|
|
28
|
+
[centerIJK[2] - maxRadiusIJK, centerIJK[2] + maxRadiusIJK],
|
|
29
|
+
];
|
|
30
|
+
return {
|
|
31
|
+
boundsIJK,
|
|
32
|
+
centerWorld: centerWorld,
|
|
33
|
+
radiusWorld,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
boundsIJK = _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld);
|
|
37
|
+
return {
|
|
38
|
+
boundsIJK,
|
|
39
|
+
centerWorld: centerWorld,
|
|
40
|
+
radiusWorld,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function _computeBoundsIJKWithCamera(imageData, viewport, circlePoints, centerWorld, radiusWorld) {
|
|
44
|
+
const [bottom, top] = circlePoints;
|
|
8
45
|
const dimensions = imageData.getDimensions();
|
|
9
46
|
const camera = viewport.getCamera();
|
|
10
47
|
const viewUp = vec3.fromValues(camera.viewUp[0], camera.viewUp[1], camera.viewUp[2]);
|
|
@@ -12,9 +49,6 @@ export default function pointInSurroundingSphereCallback(viewport, imageData, ci
|
|
|
12
49
|
let viewRight = vec3.create();
|
|
13
50
|
vec3.cross(viewRight, viewUp, viewPlaneNormal);
|
|
14
51
|
viewRight = [-viewRight[0], -viewRight[1], -viewRight[2]];
|
|
15
|
-
const [bottom, top] = circlePoints;
|
|
16
|
-
const sphereCenterWorld = vec3.fromValues((bottom[0] + top[0]) / 2, (bottom[1] + top[1]) / 2, (bottom[2] + top[2]) / 2);
|
|
17
|
-
const radiusWorld = vec3.distance(bottom, top) / 2;
|
|
18
52
|
const topLeftWorld = vec3.create();
|
|
19
53
|
const bottomRightWorld = vec3.create();
|
|
20
54
|
vec3.scaleAndAdd(topLeftWorld, top, viewPlaneNormal, radiusWorld);
|
|
@@ -26,10 +60,6 @@ export default function pointInSurroundingSphereCallback(viewport, imageData, ci
|
|
|
26
60
|
(transformWorldToIndex(imageData, bottomRightWorld)),
|
|
27
61
|
];
|
|
28
62
|
const boundsIJK = getBoundingBoxAroundShape(sphereCornersIJK, dimensions);
|
|
29
|
-
|
|
30
|
-
center: sphereCenterWorld,
|
|
31
|
-
radius: radiusWorld,
|
|
32
|
-
};
|
|
33
|
-
pointInShapeCallback(imageData, (pointLPS) => pointInSphere(sphereObj, pointLPS), callback, boundsIJK);
|
|
63
|
+
return boundsIJK;
|
|
34
64
|
}
|
|
35
65
|
//# sourceMappingURL=pointInSurroundingSphereCallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pointInSurroundingSphereCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInSurroundingSphereCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"pointInSurroundingSphereCallback.js","sourceRoot":"","sources":["../../../src/utilities/pointInSurroundingSphereCallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { utilities as csUtils } from '@cornerstonejs/core';
|
|
2
|
+
import getBoundingBoxAroundShape from '../boundingBox/getBoundingBoxAroundShape';
|
|
3
|
+
import extend2DBoundingBoxInViewAxis from '../boundingBox/extend2DBoundingBoxInViewAxis';
|
|
4
|
+
function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, options = {}) {
|
|
5
|
+
const AllBoundsIJK = [];
|
|
6
|
+
annotations.forEach((annotation) => {
|
|
7
|
+
const { data } = annotation;
|
|
8
|
+
const { points } = data.handles;
|
|
9
|
+
const { imageData, dimensions } = referenceVolume;
|
|
10
|
+
let pointsToUse = points;
|
|
11
|
+
if (data.cachedStats?.projectionPoints) {
|
|
12
|
+
const { projectionPoints } = data.cachedStats;
|
|
13
|
+
pointsToUse = [].concat(...projectionPoints);
|
|
14
|
+
}
|
|
15
|
+
const rectangleCornersIJK = pointsToUse.map((world) => csUtils.transformWorldToIndex(imageData, world));
|
|
16
|
+
let boundsIJK = getBoundingBoxAroundShape(rectangleCornersIJK, dimensions);
|
|
17
|
+
if (options.numSlicesToProject && !data.cachedStats?.projectionPoints) {
|
|
18
|
+
boundsIJK = extend2DBoundingBoxInViewAxis(boundsIJK, options.numSlicesToProject);
|
|
19
|
+
}
|
|
20
|
+
AllBoundsIJK.push(boundsIJK);
|
|
21
|
+
});
|
|
22
|
+
if (AllBoundsIJK.length === 1) {
|
|
23
|
+
return AllBoundsIJK[0];
|
|
24
|
+
}
|
|
25
|
+
const boundsIJK = AllBoundsIJK.reduce((accumulator, currentValue) => {
|
|
26
|
+
return {
|
|
27
|
+
iMin: Math.min(accumulator.iMin, currentValue.iMin),
|
|
28
|
+
jMin: Math.min(accumulator.jMin, currentValue.jMin),
|
|
29
|
+
kMin: Math.min(accumulator.kMin, currentValue.kMin),
|
|
30
|
+
iMax: Math.max(accumulator.iMax, currentValue.iMax),
|
|
31
|
+
jMax: Math.max(accumulator.jMax, currentValue.jMax),
|
|
32
|
+
kMax: Math.max(accumulator.kMax, currentValue.kMax),
|
|
33
|
+
};
|
|
34
|
+
}, {
|
|
35
|
+
iMin: Infinity,
|
|
36
|
+
jMin: Infinity,
|
|
37
|
+
kMin: Infinity,
|
|
38
|
+
iMax: -Infinity,
|
|
39
|
+
jMax: -Infinity,
|
|
40
|
+
kMax: -Infinity,
|
|
41
|
+
});
|
|
42
|
+
return boundsIJK;
|
|
43
|
+
}
|
|
44
|
+
export default getBoundsIJKFromRectangleAnnotations;
|
|
45
|
+
//# sourceMappingURL=getBoundsIJKFromRectangleAnnotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBoundsIJKFromRectangleAnnotations.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,6BAA6B,MAAM,8CAA8C,CAAC;AAMzF,SAAS,oCAAoC,CAC3C,WAAW,EACX,eAAe,EACf,UAAU,EAAa;IAEvB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;QAElD,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;SAC9C;QAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAiB,CAC3E,CAAC;QACF,IAAI,SAAS,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAI3E,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACrE,SAAS,GAAG,6BAA6B,CACvC,SAAS,EACT,OAAO,CAAC,kBAAkB,CAC3B,CAAC;SACH;QAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAID,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACpD,CAAC;IACJ,CAAC,EACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;KAChB,CACF,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,eAAe,oCAAoC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/index.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAE1F,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Types, VolumeViewport } from '@cornerstonejs/core';
|
|
2
|
+
import { ScrollOptions } from '../types';
|
|
3
|
+
export default function scroll(viewport: Types.IStackViewport | Types.IVolumeViewport, options: ScrollOptions): void;
|
|
4
|
+
export declare function scrollVolume(viewport: VolumeViewport, volumeId: string, delta: number): void;
|