@cornerstonejs/tools 0.46.2 → 0.46.3

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.
@@ -6,15 +6,21 @@ const utilities_1 = require("../../../utilities");
6
6
  function fillSphere(enabledElement, operationData, _inside = true) {
7
7
  const { viewport } = enabledElement;
8
8
  const { volume: segmentation, segmentsLocked, segmentIndex, segmentationId, points, } = operationData;
9
- const { scalarData, imageData } = segmentation;
9
+ const { scalarData, imageData, dimensions } = segmentation;
10
+ const scalarIndex = [];
10
11
  const callback = ({ index, value }) => {
11
12
  if (segmentsLocked.includes(value)) {
12
13
  return;
13
14
  }
14
15
  scalarData[index] = segmentIndex;
16
+ scalarIndex.push(index);
15
17
  };
16
18
  (0, utilities_1.pointInSurroundingSphereCallback)(imageData, [points[0], points[1]], callback, viewport);
17
- (0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId);
19
+ const zMultiple = dimensions[0] * dimensions[1];
20
+ const minSlice = Math.floor(scalarIndex[0] / zMultiple);
21
+ const maxSlice = Math.floor(scalarIndex[scalarIndex.length - 1] / zMultiple);
22
+ const sliceArray = Array.from({ length: maxSlice - minSlice + 1 }, (v, k) => k + minSlice);
23
+ (0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId, sliceArray);
18
24
  }
19
25
  function fillInsideSphere(enabledElement, operationData) {
20
26
  fillSphere(enabledElement, operationData, true);
@@ -1 +1 @@
1
- {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":";;;AAEA,+GAAkH;AAClH,kDAAsE;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,IAAA,4CAAgC,EAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAEF,IAAA,2DAA+B,EAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAQD,SAAgB,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AALD,4CAKC;AAQD,SAAgB,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AALD,8CAKC"}
1
+ {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":";;;AAEA,+GAAkH;AAClH,kDAAsE;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,UAAU,EAAE,GAAG,YAAY,CAAC;IAC3D,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,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;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAA,4CAAgC,EAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAKF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CACvB,CAAC;IAEF,IAAA,2DAA+B,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC;AAQD,SAAgB,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AALD,4CAKC;AAQD,SAAgB,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AALD,8CAKC"}
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  function pointInSphere(sphere, pointLPS) {
4
4
  const { center, radius } = sphere;
5
- const [x, y, z] = pointLPS;
6
- const [x0, y0, z0] = center;
7
- return Math.pow((x - x0), 2) + Math.pow((y - y0), 2) + Math.pow((z - z0), 2) <= Math.pow(radius, 2);
5
+ return (Math.pow((pointLPS[0] - center[0]), 2) +
6
+ Math.pow((pointLPS[1] - center[1]), 2) +
7
+ Math.pow((pointLPS[2] - center[2]), 2) <=
8
+ Math.pow(radius, 2));
8
9
  }
9
10
  exports.default = pointInSphere;
10
11
  //# sourceMappingURL=pointInSphere.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointInSphere.js","sourceRoot":"","sources":["../../../../../src/utilities/math/sphere/pointInSphere.ts"],"names":[],"mappings":";;AAkBA,SAAwB,aAAa,CACnC,MAAc,EACd,QAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAE5B,OAAO,SAAA,CAAC,CAAC,GAAG,EAAE,CAAC,EAAI,CAAC,CAAA,GAAG,SAAA,CAAC,CAAC,GAAG,EAAE,CAAC,EAAI,CAAC,CAAA,GAAG,SAAA,CAAC,CAAC,GAAG,EAAE,CAAC,EAAI,CAAC,CAAA,IAAI,SAAA,MAAM,EAAI,CAAC,CAAA,CAAC;AACtE,CAAC;AATD,gCASC"}
1
+ {"version":3,"file":"pointInSphere.js","sourceRoot":"","sources":["../../../../../src/utilities/math/sphere/pointInSphere.ts"],"names":[],"mappings":";;AAkBA,SAAwB,aAAa,CACnC,MAAc,EACd,QAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAElC,OAAO,CACL,SAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAI,CAAC,CAAA;QAC5B,SAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAI,CAAC,CAAA;QAC9B,SAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAI,CAAC,CAAA;QAChC,SAAA,MAAM,EAAI,CAAC,CAAA,CACZ,CAAC;AACJ,CAAC;AAZD,gCAYC"}
@@ -3,15 +3,21 @@ import { pointInSurroundingSphereCallback } from '../../../utilities';
3
3
  function fillSphere(enabledElement, operationData, _inside = true) {
4
4
  const { viewport } = enabledElement;
5
5
  const { volume: segmentation, segmentsLocked, segmentIndex, segmentationId, points, } = operationData;
6
- const { scalarData, imageData } = segmentation;
6
+ const { scalarData, imageData, dimensions } = segmentation;
7
+ const scalarIndex = [];
7
8
  const callback = ({ index, value }) => {
8
9
  if (segmentsLocked.includes(value)) {
9
10
  return;
10
11
  }
11
12
  scalarData[index] = segmentIndex;
13
+ scalarIndex.push(index);
12
14
  };
13
15
  pointInSurroundingSphereCallback(imageData, [points[0], points[1]], callback, viewport);
14
- triggerSegmentationDataModified(segmentationId);
16
+ const zMultiple = dimensions[0] * dimensions[1];
17
+ const minSlice = Math.floor(scalarIndex[0] / zMultiple);
18
+ const maxSlice = Math.floor(scalarIndex[scalarIndex.length - 1] / zMultiple);
19
+ const sliceArray = Array.from({ length: maxSlice - minSlice + 1 }, (v, k) => k + minSlice);
20
+ triggerSegmentationDataModified(segmentationId, sliceArray);
15
21
  }
16
22
  export function fillInsideSphere(enabledElement, operationData) {
17
23
  fillSphere(enabledElement, operationData, true);
@@ -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,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"}
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,UAAU,EAAE,GAAG,YAAY,CAAC;IAC3D,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,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;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,gCAAgC,CAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAKF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CACvB,CAAC;IAEF,+BAA+B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,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"}
@@ -1,7 +1,8 @@
1
1
  export default function pointInSphere(sphere, pointLPS) {
2
2
  const { center, radius } = sphere;
3
- const [x, y, z] = pointLPS;
4
- const [x0, y0, z0] = center;
5
- return (x - x0) ** 2 + (y - y0) ** 2 + (z - z0) ** 2 <= radius ** 2;
3
+ return ((pointLPS[0] - center[0]) ** 2 +
4
+ (pointLPS[1] - center[1]) ** 2 +
5
+ (pointLPS[2] - center[2]) ** 2 <=
6
+ radius ** 2);
6
7
  }
7
8
  //# sourceMappingURL=pointInSphere.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointInSphere.js","sourceRoot":"","sources":["../../../../../src/utilities/math/sphere/pointInSphere.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAc,EACd,QAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAE5B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"pointInSphere.js","sourceRoot":"","sources":["../../../../../src/utilities/math/sphere/pointInSphere.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAc,EACd,QAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAElC,OAAO,CACL,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9B,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChC,MAAM,IAAI,CAAC,CACZ,CAAC;AACJ,CAAC"}