@cornerstonejs/tools 1.59.0 → 1.59.1

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.
Files changed (61) hide show
  1. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +14 -2
  2. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js.map +1 -1
  3. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +8 -15
  4. package/dist/cjs/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js.map +1 -1
  5. package/dist/cjs/types/ContourAnnotation.d.ts +1 -0
  6. package/dist/cjs/utilities/math/polyline/combinePolyline.js +2 -2
  7. package/dist/cjs/utilities/math/polyline/containsPoint.d.ts +4 -1
  8. package/dist/cjs/utilities/math/polyline/containsPoint.js +11 -1
  9. package/dist/cjs/utilities/math/polyline/containsPoint.js.map +1 -1
  10. package/dist/cjs/utilities/math/polyline/index.d.ts +2 -1
  11. package/dist/cjs/utilities/math/polyline/index.js +3 -1
  12. package/dist/cjs/utilities/math/polyline/index.js.map +1 -1
  13. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.d.ts +3 -1
  14. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.js +17 -18
  15. package/dist/cjs/utilities/math/polyline/isPointInsidePolyline3D.js.map +1 -1
  16. package/dist/cjs/utilities/math/polyline/projectTo2D.d.ts +5 -0
  17. package/dist/cjs/utilities/math/polyline/projectTo2D.js +30 -0
  18. package/dist/cjs/utilities/math/polyline/projectTo2D.js.map +1 -0
  19. package/dist/cjs/workers/polySegConverters.js +32 -6
  20. package/dist/cjs/workers/polySegConverters.js.map +1 -1
  21. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +13 -2
  22. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js.map +1 -1
  23. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +8 -15
  24. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js.map +1 -1
  25. package/dist/esm/utilities/math/polyline/combinePolyline.js +2 -2
  26. package/dist/esm/utilities/math/polyline/containsPoint.js +11 -1
  27. package/dist/esm/utilities/math/polyline/containsPoint.js.map +1 -1
  28. package/dist/esm/utilities/math/polyline/index.js +2 -1
  29. package/dist/esm/utilities/math/polyline/index.js.map +1 -1
  30. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.js +17 -18
  31. package/dist/esm/utilities/math/polyline/isPointInsidePolyline3D.js.map +1 -1
  32. package/dist/esm/utilities/math/polyline/projectTo2D.js +26 -0
  33. package/dist/esm/utilities/math/polyline/projectTo2D.js.map +1 -0
  34. package/dist/esm/workers/polySegConverters.js +33 -7
  35. package/dist/esm/workers/polySegConverters.js.map +1 -1
  36. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.d.ts.map +1 -1
  37. package/dist/types/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.d.ts.map +1 -1
  38. package/dist/types/types/ContourAnnotation.d.ts +1 -0
  39. package/dist/types/types/ContourAnnotation.d.ts.map +1 -1
  40. package/dist/types/utilities/math/polyline/containsPoint.d.ts +4 -1
  41. package/dist/types/utilities/math/polyline/containsPoint.d.ts.map +1 -1
  42. package/dist/types/utilities/math/polyline/index.d.ts +2 -1
  43. package/dist/types/utilities/math/polyline/index.d.ts.map +1 -1
  44. package/dist/types/utilities/math/polyline/isPointInsidePolyline3D.d.ts +3 -1
  45. package/dist/types/utilities/math/polyline/isPointInsidePolyline3D.d.ts.map +1 -1
  46. package/dist/types/utilities/math/polyline/projectTo2D.d.ts +6 -0
  47. package/dist/types/utilities/math/polyline/projectTo2D.d.ts.map +1 -0
  48. package/dist/umd/985.index.js +1 -1
  49. package/dist/umd/985.index.js.map +1 -1
  50. package/dist/umd/index.js +1 -1
  51. package/dist/umd/index.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.ts +27 -4
  54. package/src/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.ts +9 -15
  55. package/src/types/ContourAnnotation.ts +1 -0
  56. package/src/utilities/math/polyline/combinePolyline.ts +2 -2
  57. package/src/utilities/math/polyline/containsPoint.ts +16 -1
  58. package/src/utilities/math/polyline/index.ts +2 -0
  59. package/src/utilities/math/polyline/isPointInsidePolyline3D.ts +21 -27
  60. package/src/utilities/math/polyline/projectTo2D.ts +52 -0
  61. package/src/workers/polySegConverters.js +51 -17
@@ -1 +1 @@
1
- {"version":3,"file":"containsPoint.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/containsPoint.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAelC,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,QAAwB,EACxB,KAAmB,EACnB,MAAgB;IAEhB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAGzB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAIvB,MAAM,OAAO,GAAG,CAAC,KAAK,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAG7B,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,uBAAuB,GAC3B,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAE1D,IAAI,uBAAuB,EAAE;YAC3B,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,UAAU,GAAG,cAAc,CAAC;YAEhC,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,aAAa,GACjB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEnE,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;aACxC;YAED,gBAAgB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;KACF;IAED,OAAO,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"containsPoint.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/containsPoint.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,6 @@ import pointsAreWithinCloseContourProximity from './pointsAreWithinCloseContourP
19
19
  import addCanvasPointsToArray from './addCanvasPointsToArray';
20
20
  import pointCanProjectOnLine from './pointCanProjectOnLine';
21
21
  import { isPointInsidePolyline3D } from './isPointInsidePolyline3D';
22
- export { isClosed, containsPoint, containsPoints, getAABB, getArea, getSignedArea, getWindingDirection, getNormal3, getNormal2, intersectPolyline, decimate, getFirstLineSegmentIntersectionIndexes, getLineSegmentIntersectionsIndexes, getLineSegmentIntersectionsCoordinates, getClosestLineSegmentIntersection, getSubPixelSpacingAndXYDirections, pointsAreWithinCloseContourProximity, addCanvasPointsToArray, pointCanProjectOnLine, mergePolylines, subtractPolylines, isPointInsidePolyline3D, };
22
+ import { projectTo2D } from './projectTo2D';
23
+ export { isClosed, containsPoint, containsPoints, getAABB, getArea, getSignedArea, getWindingDirection, getNormal3, getNormal2, intersectPolyline, decimate, getFirstLineSegmentIntersectionIndexes, getLineSegmentIntersectionsIndexes, getLineSegmentIntersectionsCoordinates, getClosestLineSegmentIntersection, getSubPixelSpacingAndXYDirections, pointsAreWithinCloseContourProximity, addCanvasPointsToArray, pointCanProjectOnLine, mergePolylines, subtractPolylines, isPointInsidePolyline3D, projectTo2D, };
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,EACtC,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACpC,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,EACtC,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACpC,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,GACZ,CAAC"}
@@ -1,27 +1,26 @@
1
1
  import containsPoint from './containsPoint';
2
- export function isPointInsidePolyline3D(point, polyline) {
3
- let sharedDimensionIndex;
4
- const testPoints = polyline.slice(0, 3);
5
- for (let i = 0; i < 3; i++) {
6
- if (testPoints.every((point, index, array) => point[i] === array[0][i])) {
7
- sharedDimensionIndex = i;
8
- break;
2
+ import { projectTo2D } from './projectTo2D';
3
+ export function isPointInsidePolyline3D(point, polyline, options = {}) {
4
+ const { sharedDimensionIndex, projectedPolyline } = projectTo2D(polyline);
5
+ const { holes } = options;
6
+ const projectedHoles = [];
7
+ if (holes) {
8
+ for (let i = 0; i < holes.length; i++) {
9
+ const hole = holes[i];
10
+ const hole2D = [];
11
+ for (let j = 0; j < hole.length; j++) {
12
+ hole2D.push([
13
+ hole[j][(sharedDimensionIndex + 1) % 3],
14
+ hole[j][(sharedDimensionIndex + 2) % 3],
15
+ ]);
16
+ }
17
+ projectedHoles.push(hole2D);
9
18
  }
10
19
  }
11
- if (sharedDimensionIndex === undefined) {
12
- throw new Error('Cannot find a shared dimension index for polyline, probably oblique plane');
13
- }
14
- const points2D = [];
15
- for (let i = 0; i < polyline.length; i++) {
16
- points2D.push([
17
- polyline[i][(sharedDimensionIndex + 1) % 3],
18
- polyline[i][(sharedDimensionIndex + 2) % 3],
19
- ]);
20
- }
21
20
  const point2D = [
22
21
  point[(sharedDimensionIndex + 1) % 3],
23
22
  point[(sharedDimensionIndex + 2) % 3],
24
23
  ];
25
- return containsPoint(points2D, point2D);
24
+ return containsPoint(projectedPolyline, point2D, { holes: projectedHoles });
26
25
  }
27
26
  //# sourceMappingURL=isPointInsidePolyline3D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isPointInsidePolyline3D.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/isPointInsidePolyline3D.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAa5C,MAAM,UAAU,uBAAuB,CACrC,KAAmB,EACnB,QAAwB;IAOxB,IAAI,oBAAoB,CAAC;IAEzB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACvE,oBAAoB,GAAG,CAAC,CAAC;YACzB,MAAM;SACP;KACF;IAED,IAAI,oBAAoB,KAAK,SAAS,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;KACH;IAGD,MAAM,QAAQ,GAAG,EAAoB,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;IAED,MAAM,OAAO,GAAG;QACd,KAAK,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACtB,CAAC;IAElB,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"isPointInsidePolyline3D.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/isPointInsidePolyline3D.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,MAAM,UAAU,uBAAuB,CACrC,KAAmB,EACnB,QAAwB,EACxB,UAAwC,EAAE;IAE1C,MAAM,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE1E,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,cAAc,GAAG,EAAsB,CAAC;IAE9C,IAAI,KAAK,EAAE;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,EAAoB,CAAC;YAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;iBACxC,CAAC,CAAC;aACJ;YAED,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;KACF;IAED,MAAM,OAAO,GAAG;QACd,KAAK,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACtB,CAAC;IAElB,OAAO,aAAa,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { utilities } from '@cornerstonejs/core';
2
+ const epsilon = 1e-6;
3
+ export function projectTo2D(polyline) {
4
+ let sharedDimensionIndex;
5
+ const testPoints = utilities.getRandomSampleFromArray(polyline, 50);
6
+ for (let i = 0; i < 3; i++) {
7
+ if (testPoints.every((point, index, array) => Math.abs(point[i] - array[0][i]) < epsilon)) {
8
+ sharedDimensionIndex = i;
9
+ break;
10
+ }
11
+ }
12
+ if (sharedDimensionIndex === undefined) {
13
+ throw new Error('Cannot find a shared dimension index for polyline, probably oblique plane');
14
+ }
15
+ const points2D = [];
16
+ const firstDim = (sharedDimensionIndex + 1) % 3;
17
+ const secondDim = (sharedDimensionIndex + 2) % 3;
18
+ for (let i = 0; i < polyline.length; i++) {
19
+ points2D.push([polyline[i][firstDim], polyline[i][secondDim]]);
20
+ }
21
+ return {
22
+ sharedDimensionIndex,
23
+ projectedPolyline: points2D,
24
+ };
25
+ }
26
+ //# sourceMappingURL=projectTo2D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectTo2D.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/projectTo2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,OAAO,GAAG,IAAI,CAAC;AASrB,MAAM,UAAU,WAAW,CAAC,QAAwB;IAIlD,IAAI,oBAAoB,CAAC;IAEzB,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IACE,UAAU,CAAC,KAAK,CACd,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CACpE,EACD;YACA,oBAAoB,GAAG,CAAC,CAAC;YACzB,MAAM;SACP;KACF;IAED,IAAI,oBAAoB,KAAK,SAAS,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;KACH;IAGD,MAAM,QAAQ,GAAG,EAAoB,CAAC;IAEtC,MAAM,QAAQ,GAAG,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAChE;IAED,OAAO;QACL,oBAAoB;QACpB,iBAAiB,EAAE,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ import vtkContourLoopExtraction from '@kitware/vtk.js/Filters/General/ContourLoo
9
9
  import vtkCutter from '@kitware/vtk.js/Filters/Core/Cutter';
10
10
  import { getBoundingBoxAroundShapeWorld } from '../utilities/boundingBox';
11
11
  import { pointInShapeCallback } from '../utilities';
12
- import { getAABB, isPointInsidePolyline3D } from '../utilities/math/polyline';
12
+ import { containsPoint, getAABB, projectTo2D, } from '../utilities/math/polyline';
13
13
  import { isPlaneIntersectingAABB } from '../utilities/planar';
14
14
  const polySegConverters = {
15
15
  polySeg: null,
@@ -73,7 +73,11 @@ const polySegConverters = {
73
73
  for (const index of segmentIndices) {
74
74
  const annotations = annotationUIDsInSegmentMap.get(index);
75
75
  for (const annotation of annotations) {
76
- const bounds = getBoundingBoxAroundShapeWorld(annotation.data.contour.polyline);
76
+ if (!annotation.polyline) {
77
+ continue;
78
+ }
79
+ const { polyline, holesPolyline } = annotation;
80
+ const bounds = getBoundingBoxAroundShapeWorld(polyline);
77
81
  const [iMin, jMin, kMin] = utilities.transformWorldToIndex(imageData, [
78
82
  bounds[0][0],
79
83
  bounds[1][0],
@@ -84,8 +88,19 @@ const polySegConverters = {
84
88
  bounds[1][1],
85
89
  bounds[2][1],
86
90
  ]);
91
+ const { projectedPolyline, sharedDimensionIndex } = projectTo2D(polyline);
92
+ const holes = holesPolyline?.map((hole) => {
93
+ const { projectedPolyline: projectedHole } = projectTo2D(hole);
94
+ return projectedHole;
95
+ });
96
+ const firstDim = (sharedDimensionIndex + 1) % 3;
97
+ const secondDim = (sharedDimensionIndex + 2) % 3;
87
98
  pointInShapeCallback(imageData, (pointLPS) => {
88
- return isPointInsidePolyline3D(pointLPS, annotation.data.contour.polyline);
99
+ const point2D = [pointLPS[firstDim], pointLPS[secondDim]];
100
+ const isInside = containsPoint(projectedPolyline, point2D, {
101
+ holes,
102
+ });
103
+ return isInside;
89
104
  }, ({ pointIJK }) => {
90
105
  segmentationVoxelManager.setAtIJKPoint(pointIJK, index);
91
106
  }, [
@@ -125,11 +140,11 @@ const polySegConverters = {
125
140
  for (const index of segmentIndices) {
126
141
  const annotations = annotationUIDsInSegmentMap.get(index);
127
142
  for (const annotation of annotations) {
128
- if (!annotation?.data) {
143
+ if (!annotation.polyline) {
129
144
  continue;
130
145
  }
131
- const bounds = getBoundingBoxAroundShapeWorld(annotation.data.contour.polyline);
132
- const { referencedImageId } = annotation.metadata;
146
+ const { polyline, holesPolyline, referencedImageId } = annotation;
147
+ const bounds = getBoundingBoxAroundShapeWorld(polyline);
133
148
  const { manager: segmentationVoxelManager, imageData } = segmentationVoxelManagers.get(referencedImageId);
134
149
  const [iMin, jMin, kMin] = utilities.transformWorldToIndex(imageData, [
135
150
  bounds[0][0],
@@ -141,8 +156,19 @@ const polySegConverters = {
141
156
  bounds[1][1],
142
157
  bounds[2][1],
143
158
  ]);
159
+ const { projectedPolyline, sharedDimensionIndex } = projectTo2D(polyline);
160
+ const holes = holesPolyline?.map((hole) => {
161
+ const { projectedPolyline: projectedHole } = projectTo2D(hole);
162
+ return projectedHole;
163
+ });
164
+ const firstDim = (sharedDimensionIndex + 1) % 3;
165
+ const secondDim = (sharedDimensionIndex + 2) % 3;
144
166
  pointInShapeCallback(imageData, (pointLPS) => {
145
- return isPointInsidePolyline3D(pointLPS, annotation.data.contour.polyline);
167
+ const point2D = [pointLPS[firstDim], pointLPS[secondDim]];
168
+ const isInside = containsPoint(projectedPolyline, point2D, {
169
+ holes,
170
+ });
171
+ return isInside;
146
172
  }, ({ pointIJK }) => {
147
173
  segmentationVoxelManager.setAtIJKPoint(pointIJK, index);
148
174
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"polySegConverters.js","sourceRoot":"","sources":["../../../src/workers/polySegConverters.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polySegConverters.js","sourceRoot":"","sources":["../../../src/workers/polySegConverters.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertContourToLabelmap.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAa3B,wBAAsB,8BAA8B,CAClD,yBAAyB,EAAE,uBAAuB,EAClD,OAAO,GAAE,wBAA6B;;GA2EvC;AAED,wBAAsB,6BAA6B,CACjD,yBAAyB,EAAE,uBAAuB,EAClD,OAAO,GAAE,wBAA6B;;GAuIvC"}
1
+ {"version":3,"file":"convertContourToLabelmap.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAa3B,wBAAsB,8BAA8B,CAClD,yBAAyB,EAAE,uBAAuB,EAClD,OAAO,GAAE,wBAA6B;;GA2EvC;AAED,wBAAsB,6BAA6B,CACjD,yBAAyB,EAAE,uBAAuB,EAClD,OAAO,GAAE,wBAA6B;;GAuIvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"labelmapComputationStrategies.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,oBAAY,eAAe,GACvB,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,wBAA6B,4BAwCvC;AAED,iBAAe,sCAAsC,CACnD,cAAc,KAAA,EACd,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,8BAA8B,GAAG,6BAA6B,CAAC,CAsCzE;AAkFD,OAAO,EAAE,sCAAsC,EAAE,CAAC"}
1
+ {"version":3,"file":"labelmapComputationStrategies.d.ts","sourceRoot":"","sources":["../../../../../../src/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,oBAAY,eAAe,GACvB,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,wBAA6B,4BAwCvC;AAED,iBAAe,sCAAsC,CACnD,cAAc,KAAA,EACd,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,8BAA8B,GAAG,6BAA6B,CAAC,CAgCzE;AAkFD,OAAO,EAAE,sCAAsC,EAAE,CAAC"}
@@ -13,6 +13,7 @@ export declare type ContourAnnotationData = {
13
13
  windingDirection?: ContourWindingDirection;
14
14
  };
15
15
  };
16
+ onInterpolationComplete?: () => void;
16
17
  };
17
18
  export declare type ContourAnnotation = Annotation & ContourAnnotationData;
18
19
  //# sourceMappingURL=ContourAnnotation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContourAnnotation.d.ts","sourceRoot":"","sources":["../../../src/types/ContourAnnotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,oBAAY,uBAAuB;IACjC,gBAAgB,KAAK;IACrB,OAAO,IAAI;IACX,SAAS,IAAI;CACd;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,EAAE,OAAO,CAAC;YAChB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;SAC5C,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"ContourAnnotation.d.ts","sourceRoot":"","sources":["../../../src/types/ContourAnnotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,oBAAY,uBAAuB;IACjC,gBAAgB,KAAK;IACrB,OAAO,IAAI;IACX,SAAS,IAAI;CACd;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,EAAE,OAAO,CAAC;YAChB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;SAC5C,CAAC;KACH,CAAC;IACF,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,GAAG,qBAAqB,CAAC"}
@@ -1,3 +1,6 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- export default function containsPoint(polyline: Types.Point2[], point: Types.Point2, closed?: boolean): boolean;
2
+ export default function containsPoint(polyline: Types.Point2[], point: Types.Point2, options?: {
3
+ closed?: boolean;
4
+ holes?: Types.Point2[][];
5
+ }): boolean;
3
6
  //# sourceMappingURL=containsPoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"containsPoint.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/containsPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAgBjD,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EACxB,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CA4CT"}
1
+ {"version":3,"file":"containsPoint.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/containsPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAgBjD,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EACxB,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;CAG1B,GACA,OAAO,CAsDT"}
@@ -19,5 +19,6 @@ import pointsAreWithinCloseContourProximity from './pointsAreWithinCloseContourP
19
19
  import addCanvasPointsToArray from './addCanvasPointsToArray';
20
20
  import pointCanProjectOnLine from './pointCanProjectOnLine';
21
21
  import { isPointInsidePolyline3D } from './isPointInsidePolyline3D';
22
- export { isClosed, containsPoint, containsPoints, getAABB, getArea, getSignedArea, getWindingDirection, getNormal3, getNormal2, intersectPolyline, decimate, getFirstLineSegmentIntersectionIndexes, getLineSegmentIntersectionsIndexes, getLineSegmentIntersectionsCoordinates, getClosestLineSegmentIntersection, getSubPixelSpacingAndXYDirections, pointsAreWithinCloseContourProximity, addCanvasPointsToArray, pointCanProjectOnLine, mergePolylines, subtractPolylines, isPointInsidePolyline3D, };
22
+ import { projectTo2D } from './projectTo2D';
23
+ export { isClosed, containsPoint, containsPoints, getAABB, getArea, getSignedArea, getWindingDirection, getNormal3, getNormal2, intersectPolyline, decimate, getFirstLineSegmentIntersectionIndexes, getLineSegmentIntersectionsIndexes, getLineSegmentIntersectionsCoordinates, getClosestLineSegmentIntersection, getSubPixelSpacingAndXYDirections, pointsAreWithinCloseContourProximity, addCanvasPointsToArray, pointCanProjectOnLine, mergePolylines, subtractPolylines, isPointInsidePolyline3D, projectTo2D, };
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,EACtC,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACpC,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,sCAAsC,EACtC,kCAAkC,EAClC,sCAAsC,EACtC,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACpC,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,GACZ,CAAC"}
@@ -1,3 +1,5 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- export declare function isPointInsidePolyline3D(point: Types.Point3, polyline: Types.Point3[]): boolean;
2
+ export declare function isPointInsidePolyline3D(point: Types.Point3, polyline: Types.Point3[], options?: {
3
+ holes?: Types.Point3[][];
4
+ }): boolean;
3
5
  //# sourceMappingURL=isPointInsidePolyline3D.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isPointInsidePolyline3D.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/isPointInsidePolyline3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAcjD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,WAuCzB"}
1
+ {"version":3,"file":"isPointInsidePolyline3D.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/isPointInsidePolyline3D.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAiBjD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EACxB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAA;CAAO,WA6B3C"}
@@ -0,0 +1,6 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ export declare function projectTo2D(polyline: Types.Point3[]): {
3
+ sharedDimensionIndex: any;
4
+ projectedPolyline: Types.Point2[];
5
+ };
6
+ //# sourceMappingURL=projectTo2D.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectTo2D.d.ts","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/projectTo2D.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAWjD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE;;;EAuCnD"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("@kitware/vtk.js/Common/DataModel/Plane"),require("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Filters/General/ContourLoopExtraction"),require("@kitware/vtk.js/Filters/Core/Cutter"),require("gl-matrix")):"function"==typeof define&&define.amd?define(["@kitware/vtk.js/Common/DataModel/ImageData","@kitware/vtk.js/Common/Core/DataArray","@cornerstonejs/core","@kitware/vtk.js/Common/DataModel/Plane","@kitware/vtk.js/Common/DataModel/PolyData","@kitware/vtk.js/Filters/General/ContourLoopExtraction","@kitware/vtk.js/Filters/Core/Cutter","gl-matrix"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("@kitware/vtk.js/Common/DataModel/Plane"),require("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Filters/General/ContourLoopExtraction"),require("@kitware/vtk.js/Filters/Core/Cutter"),require("gl-matrix")):e.cornerstoneTools3D=t(e["@kitware/vtk.js/Common/DataModel/ImageData"],e["@kitware/vtk.js/Common/Core/DataArray"],e.cornerstone3D,e["@kitware/vtk.js/Common/DataModel/Plane"],e["@kitware/vtk.js/Common/DataModel/PolyData"],e["@kitware/vtk.js/Filters/General/ContourLoopExtraction"],e["@kitware/vtk.js/Filters/Core/Cutter"],e.window)}(self,((e,t,n,o,a,r,i,s)=>(()=>{"use strict";var l,c,m={27:(e,t,n)=>{var o=n(758),a=n(283),r=n.n(a),i=n(785),s=n.n(i),l=n(699),c=n(953),m=n(864),u=n.n(m),g=n(70),p=n.n(g),f=n(336),d=n.n(f),v=n(481),h=n.n(v);const{EPSILON:w}=c.CONSTANTS;function y(e,t){return function(e,t){var n;let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=1/0,r=o?-1/0:0,i=1/0,s=o?-1/0:0,l=1/0,c=o?-1/0:0;const m=3===(null===(n=e[0])||void 0===n?void 0:n.length);for(let t=0;t<e.length;t++){const n=e[t];var u,g;a=Math.min(n[0],a),r=Math.max(n[0],r),i=Math.min(n[1],i),s=Math.max(n[1],s),m&&(l=Math.min(null!==(u=n[2])&&void 0!==u?u:l,l),c=Math.max(null!==(g=n[2])&&void 0!==g?g:c,c))}return t?(a=Math.max(o?t[0]+w:0,a),r=Math.min(o?t[0]-w:t[0]-1,r),i=Math.max(o?t[1]+w:0,i),s=Math.min(o?t[1]-w:t[1]-1,s),m&&3===t.length&&(l=Math.max(o?t[2]+w:0,l),c=Math.min(o?t[2]-w:t[2]-1,c))):o||(a=Math.max(0,a),r=Math.min(1/0,r),i=Math.max(0,i),s=Math.min(1/0,s),m&&(l=Math.max(0,l),c=Math.min(1/0,c))),m?[[a,r],[i,s],[l,c]]:[[a,r],[i,s],null]}(e,t,!0)}var x=n(976);function D(e,t,n,o){let a,r,i,s,l,c,m;const{numComps:u}=e;m=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();const g=e.getDimensions();o?[[a,r],[i,s],[l,c]]=o:(a=0,r=g[0],i=0,s=g[1],l=0,c=g[2]);const p=x.vec3.fromValues(a,i,l),f=e.getDirection(),d=f.slice(0,3),v=f.slice(3,6),h=f.slice(6,9),w=e.getSpacing(),[y,D,I]=w,k=e.indexToWorld(p),S=x.vec3.fromValues(d[0]*y,d[1]*y,d[2]*y),M=x.vec3.fromValues(v[0]*D,v[1]*D,v[2]*D),C=x.vec3.fromValues(h[0]*I,h[1]*I,h[2]*I),P=u||m.length/g[2]/g[1]/g[0],j=g[0]*P,b=g[1]*j,V=[],A=x.vec3.clone(k);for(let e=l;e<=c;e++){const o=x.vec3.clone(A);for(let o=i;o<=s;o++){const i=x.vec3.clone(A);for(let i=a;i<=r;i++){const a=[i,o,e];if(t(A,a)){const t=e*b+o*j+i*P;let r;r=P>2?[m[t],m[t+1],m[t+2]]:m[t],V.push({value:r,index:t,pointIJK:a,pointLPS:A}),n&&n({value:r,index:t,pointIJK:a,pointLPS:A})}x.vec3.add(A,A,S)}x.vec3.copy(A,i),x.vec3.add(A,A,M)}x.vec3.copy(A,o),x.vec3.add(A,A,C)}return V}function I(e,t){let n;const o=t.slice(0,3);for(let e=0;e<3;e++)if(o.every(((t,n,o)=>t[e]===o[0][e]))){n=e;break}if(void 0===n)throw new Error("Cannot find a shared dimension index for polyline, probably oblique plane");const a=[];for(let e=0;e<t.length;e++)a.push([t[e][(n+1)%3],t[e][(n+2)%3]]);return function(e,t,n){if(e.length<3)return!1;const o=e.length;let a=0;const r=!function(e){if(e.length<3)return!1;const t=e.length,n=function(e,t){if(e.length!==t.length)throw Error("Both points should have the same dimensionality");const[n,o,a=0]=e,[r,i,s=0]=t,l=r-n,c=i-o,m=s-a;return l*l+c*c+m*m}(e[0],e[t-1]);return x.glMatrix.equals(0,n)}(e),i=e.length-(r?1:2);for(let n=0;n<=i;n++){const r=e[n],i=e[n===o-1?0:n+1],s=r[0]>=i[0]?r[0]:i[0],l=r[1]>=i[1]?r[1]:i[1],c=r[1]<=i[1]?r[1]:i[1];if(t[0]<=s&&t[1]>=c&&t[1]<l){let e=r[0]===i[0];if(!e){const n=(t[1]-r[1])*(i[0]-r[0])/(i[1]-r[1])+r[0];e=t[0]<=n}a+=e?1:0}}return!!(a%2)}(a,[e[(n+1)%3],e[(n+2)%3]])}function k(e,t){let n=e;const o=(null==t?void 0:t.numDimensions)||2,a=3===o;if(!Array.isArray(e[0])){const t=e,r=t.length/o;n=new Array(t.length/o);for(let e=0,i=r;e<i;e++)n[e]=[t[e*o],t[e*o+1]],a&&n[e].push(t[e*o+2])}let r=1/0,i=1/0,s=-1/0,l=-1/0,c=1/0,m=-1/0;for(let e=0,t=n.length;e<t;e++){const[t,o,u]=n[e];r=r<t?r:t,i=i<o?i:o,s=s>t?s:t,l=l>o?l:o,a&&(c=c<u?c:u,m=m>u?m:u)}return a?{minX:r,maxX:s,minY:i,maxY:l,minZ:c,maxZ:m}:{minX:r,maxX:s,minY:i,maxY:l}}const S=(e,t,n,o,a,r,i,s)=>{const l=[x.vec3.fromValues(n,o,a),x.vec3.fromValues(r,o,a),x.vec3.fromValues(n,i,a),x.vec3.fromValues(r,i,a),x.vec3.fromValues(n,o,s),x.vec3.fromValues(r,o,s),x.vec3.fromValues(n,i,s),x.vec3.fromValues(r,i,s)],c=x.vec3.fromValues(t[0],t[1],t[2]),m=x.vec3.fromValues(e[0],e[1],e[2]),u=-x.vec3.dot(c,m);let g=null;for(const e of l){const t=x.vec3.dot(c,e)+u;if(null===g)g=Math.sign(t);else if(Math.sign(t)!==g)return!0}return!1},M={polySeg:null,polySegInitializing:!1,polySegInitializingPromise:null,async initializePolySeg(e){var t;this.polySegInitializing?await this.polySegInitializingPromise:null!==(t=this.polySeg)&&void 0!==t&&t.instance||(this.polySegInitializing=!0,this.polySegInitializingPromise=new Promise((t=>{this.polySeg=new l.Z,this.polySeg.initialize({updateProgress:e}).then((()=>{this.polySegInitializing=!1,t()}))})),await this.polySegInitializingPromise)},async convertContourToSurface(e){const{polylines:t,numPointsArray:n}=e;for(var o=arguments.length,a=new Array(o>1?o-1:0),r=1;r<o;r++)a[r-1]=arguments[r];const[i]=a;return await this.initializePolySeg(i),await this.polySeg.instance.convertContourRoiToSurface(t,n)},async convertLabelmapToSurface(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertLabelmapToSurface(e.scalarData,e.dimensions,e.spacing,e.direction,e.origin,[e.segmentIndex])},async convertContourToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,i=await new l.Z;await i.initialize({updateProgress:a});const{segmentIndices:m,scalarData:u,annotationUIDsInSegmentMap:g,dimensions:p,origin:f,direction:d,spacing:v}=e,h=c.utilities.VoxelManager.createVolumeVoxelManager(p,u),w=r().newInstance();w.setDimensions(p),w.setOrigin(f),w.setDirection(d),w.setSpacing(v);const x=s().newInstance({name:"Pixels",numberOfComponents:1,values:u});w.getPointData().setScalars(x),w.modified();for(const e of m){const t=g.get(e);for(const n of t){const t=y(n.data.contour.polyline),[o,a,r]=c.utilities.transformWorldToIndex(w,[t[0][0],t[1][0],t[2][0]]),[i,s,l]=c.utilities.transformWorldToIndex(w,[t[0][1],t[1][1],t[2][1]]);D(w,(e=>I(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;h.setAtIJKPoint(n,e)}),[[o,i],[a,s],[r,l]])}}return h.scalarData},async convertContourToStackLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,i=await new l.Z;await i.initialize({updateProgress:a});const{segmentationsInfo:m,annotationUIDsInSegmentMap:u,segmentIndices:g}=e,p=new Map;m.forEach(((e,t)=>{const{dimensions:n,scalarData:o,direction:a,spacing:i,origin:l}=e,m=c.utilities.VoxelManager.createVolumeVoxelManager(n,o),u=r().newInstance();u.setDimensions(n),u.setOrigin(l),u.setDirection(a),u.setSpacing(i);const g=s().newInstance({name:"Pixels",numberOfComponents:1,values:o});u.getPointData().setScalars(g),u.modified(),p.set(t,{manager:m,imageData:u})}));for(const e of g){const t=u.get(e);for(const n of t){if(null==n||!n.data)continue;const t=y(n.data.contour.polyline),{referencedImageId:o}=n.metadata,{manager:a,imageData:r}=p.get(o),[i,s,l]=c.utilities.transformWorldToIndex(r,[t[0][0],t[1][0],t[2][0]]),[m,u,g]=c.utilities.transformWorldToIndex(r,[t[0][1],t[1][1],t[2][1]]);D(r,(e=>I(e,n.data.contour.polyline)),(t=>{let{pointIJK:n}=t;a.setAtIJKPoint(n,e)}),[[i,m],[s,u],[l,g]])}}return m.forEach(((e,t)=>{const{manager:n}=p.get(t);e.scalarData=n.scalarData})),m},async convertSurfaceToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertSurfaceToLabelmap(e.points,e.polys,e.dimensions,e.spacing,e.direction,e.origin)},async convertSurfacesToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;await this.initializePolySeg(a);const{segmentsInfo:i}=e,l=Array.from(i.keys()).map((t=>{const{points:n,polys:o}=i.get(t);return{...this.polySeg.instance.convertSurfaceToLabelmap(n,o,e.dimensions,e.spacing,e.direction,e.origin),segmentIndex:t}})),m=await Promise.all(l),u=r().newInstance();u.setDimensions(e.dimensions),u.setOrigin(e.origin),u.setSpacing(e.spacing),u.setDirection(e.direction);const g=e.dimensions[0]*e.dimensions[1]*e.dimensions[2],p=s().newInstance({name:"Pixels",numberOfComponents:1,values:new Uint8Array(g)});u.getPointData().setScalars(p),u.modified();const f=c.utilities.VoxelManager.createVolumeVoxelManager(e.dimensions,u.getPointData().getScalars().getData()),d=m.map((e=>{const{data:t,dimensions:n,direction:o,origin:a,spacing:i}=e,l=r().newInstance();l.setDimensions(n),l.setOrigin(a),l.setSpacing(i),l.setDirection(o);const m=s().newInstance({name:"Pixels",numberOfComponents:1,values:t});l.getPointData().setScalars(m),l.modified();const u=c.utilities.VoxelManager.createVolumeVoxelManager(n,t),g=l.getExtent();return{volume:l,voxelManager:u,extent:g,scalarData:t,segmentIndex:e.segmentIndex}}));return D(u,(()=>!0),(e=>{let{pointIJK:t,pointLPS:n}=e;try{for(const e of d){const{volume:o,extent:a,voxelManager:r,segmentIndex:i}=e,s=o.worldToIndex(n);if(s[0]<a[0]||s[0]>a[1]||s[1]<a[2]||s[1]>a[3]||s[2]<a[4]||s[2]>a[5])continue;const l=s.map(Math.round);if(r.getAtIJK(...l)>0){f.setAtIJKPoint(t,i);break}}}catch(e){}})),f.scalarData},getSurfacesAABBs(e){let{surfacesInfo:t}=e;const n=new Map;for(const{points:e,id:o}of t){const t=k(e,{numDimensions:3});n.set(o,t)}return n},cutSurfacesIntoPlanes(e,t,n){let{planesInfo:o,surfacesInfo:a,surfacesAABB:r=new Map}=e;const i=o.length,s=h().newInstance(),l=u().newInstance();s.setCutFunction(l);const c=p().newInstance();try{for(const[e,m]of o.entries()){const{sliceIndex:o,planes:u}=m,g=new Map;for(const e of a){const{points:t,polys:n,id:o}=e,a=r.get(o)||k(t,{numDimensions:3});r.has(o)||r.set(o,a);const{minX:i,minY:m,minZ:p,maxX:f,maxY:v,maxZ:h}=a,{origin:w,normal:y}=u[0];if(!S(w,y,i,m,p,f,v,h))continue;c.getPoints().setData(t,3),c.getPolys().setData(n,3),c.modified(),s.setInputData(c),l.setOrigin(w),l.setNormal(y);try{s.update()}catch(e){console.warn("Error during clipping",e);continue}const x=s.getOutputData(),D=x;D.buildLinks();const I=d().newInstance();I.setInputData(D);const M=I.getOutputData();x&&g.set(o,{points:M.getPoints().getData(),lines:M.getLines().getData(),numberOfCells:M.getLines().getNumberOfCells()})}t({progress:(e+1)/i}),n({sliceIndex:o,polyDataResults:g})}}catch(e){console.warn("Error during processing",e)}finally{a=null,l.delete()}}};(0,o.Jj)(M)},785:e=>{e.exports=t},283:t=>{t.exports=e},864:e=>{e.exports=o},70:e=>{e.exports=a},481:e=>{e.exports=i},336:e=>{e.exports=r},953:e=>{e.exports=n},976:e=>{e.exports=s}},u={};function g(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={exports:{}};return m[e](n,n.exports,g),n.exports}return g.m=m,g.x=()=>{var e=g.O(void 0,[78],(()=>g(27)));return g.O(e)},l=[],g.O=(e,t,n,o)=>{if(!t){var a=1/0;for(c=0;c<l.length;c++){t=l[c][0],n=l[c][1],o=l[c][2];for(var r=!0,i=0;i<t.length;i++)(!1&o||a>=o)&&Object.keys(g.O).every((e=>g.O[e](t[i])))?t.splice(i--,1):(r=!1,o<a&&(a=o));if(r){l.splice(c--,1);var s=n();void 0!==s&&(e=s)}}return e}o=o||0;for(var c=l.length;c>0&&l[c-1][2]>o;c--)l[c]=l[c-1];l[c]=[t,n,o]},g.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return g.d(t,{a:t}),t},g.d=(e,t)=>{for(var n in t)g.o(t,n)&&!g.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},g.f={},g.e=e=>Promise.all(Object.keys(g.f).reduce(((t,n)=>(g.f[n](e,t),t)),[])),g.u=e=>e+".index.js",g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;g.g.importScripts&&(e=g.g.location+"");var t=g.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&!e;)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),g.p=e})(),(()=>{var e={985:1};g.f.i=(t,n)=>{e[t]||importScripts(g.p+g.u(t))};var t=self.webpackChunkcornerstoneTools3D=self.webpackChunkcornerstoneTools3D||[],n=t.push.bind(t);t.push=t=>{var o=t[0],a=t[1],r=t[2];for(var i in a)g.o(a,i)&&(g.m[i]=a[i]);for(r&&r(g);o.length;)e[o.pop()]=1;n(t)}})(),c=g.x,g.x=()=>g.e(78).then(c),g.x()})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("@kitware/vtk.js/Common/DataModel/Plane"),require("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Filters/General/ContourLoopExtraction"),require("@kitware/vtk.js/Filters/Core/Cutter"),require("gl-matrix")):"function"==typeof define&&define.amd?define(["@kitware/vtk.js/Common/DataModel/ImageData","@kitware/vtk.js/Common/Core/DataArray","@cornerstonejs/core","@kitware/vtk.js/Common/DataModel/Plane","@kitware/vtk.js/Common/DataModel/PolyData","@kitware/vtk.js/Filters/General/ContourLoopExtraction","@kitware/vtk.js/Filters/Core/Cutter","gl-matrix"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@kitware/vtk.js/Common/DataModel/ImageData"),require("@kitware/vtk.js/Common/Core/DataArray"),require("@cornerstonejs/core"),require("@kitware/vtk.js/Common/DataModel/Plane"),require("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Filters/General/ContourLoopExtraction"),require("@kitware/vtk.js/Filters/Core/Cutter"),require("gl-matrix")):e.cornerstoneTools3D=t(e["@kitware/vtk.js/Common/DataModel/ImageData"],e["@kitware/vtk.js/Common/Core/DataArray"],e.cornerstone3D,e["@kitware/vtk.js/Common/DataModel/Plane"],e["@kitware/vtk.js/Common/DataModel/PolyData"],e["@kitware/vtk.js/Filters/General/ContourLoopExtraction"],e["@kitware/vtk.js/Filters/Core/Cutter"],e.window)}(self,((e,t,n,o,a,r,i,s)=>(()=>{"use strict";var l,c,m={389:(e,t,n)=>{var o=n(758),a=n(283),r=n.n(a),i=n(785),s=n.n(i),l=n(699),c=n(953),m=n(864),u=n.n(m),g=n(70),p=n.n(g),f=n(336),d=n.n(f),v=n(481),h=n.n(v);const{EPSILON:y}=c.CONSTANTS;function w(e,t){return function(e,t){var n;let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=1/0,r=o?-1/0:0,i=1/0,s=o?-1/0:0,l=1/0,c=o?-1/0:0;const m=3===(null===(n=e[0])||void 0===n?void 0:n.length);for(let t=0;t<e.length;t++){const n=e[t];var u,g;a=Math.min(n[0],a),r=Math.max(n[0],r),i=Math.min(n[1],i),s=Math.max(n[1],s),m&&(l=Math.min(null!==(u=n[2])&&void 0!==u?u:l,l),c=Math.max(null!==(g=n[2])&&void 0!==g?g:c,c))}return t?(a=Math.max(o?t[0]+y:0,a),r=Math.min(o?t[0]-y:t[0]-1,r),i=Math.max(o?t[1]+y:0,i),s=Math.min(o?t[1]-y:t[1]-1,s),m&&3===t.length&&(l=Math.max(o?t[2]+y:0,l),c=Math.min(o?t[2]-y:t[2]-1,c))):o||(a=Math.max(0,a),r=Math.min(1/0,r),i=Math.max(0,i),s=Math.min(1/0,s),m&&(l=Math.max(0,l),c=Math.min(1/0,c))),m?[[a,r],[i,s],[l,c]]:[[a,r],[i,s],null]}(e,t,!0)}var x=n(976);function D(e,t,n,o){let a,r,i,s,l,c,m;const{numComps:u}=e;m=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();const g=e.getDimensions();o?[[a,r],[i,s],[l,c]]=o:(a=0,r=g[0],i=0,s=g[1],l=0,c=g[2]);const p=x.vec3.fromValues(a,i,l),f=e.getDirection(),d=f.slice(0,3),v=f.slice(3,6),h=f.slice(6,9),y=e.getSpacing(),[w,D,I]=y,k=e.indexToWorld(p),S=x.vec3.fromValues(d[0]*w,d[1]*w,d[2]*w),P=x.vec3.fromValues(v[0]*D,v[1]*D,v[2]*D),M=x.vec3.fromValues(h[0]*I,h[1]*I,h[2]*I),C=u||m.length/g[2]/g[1]/g[0],j=g[0]*C,b=g[1]*j,V=[],A=x.vec3.clone(k);for(let e=l;e<=c;e++){const o=x.vec3.clone(A);for(let o=i;o<=s;o++){const i=x.vec3.clone(A);for(let i=a;i<=r;i++){const a=[i,o,e];if(t(A,a)){const t=e*b+o*j+i*C;let r;r=C>2?[m[t],m[t+1],m[t+2]]:m[t],V.push({value:r,index:t,pointIJK:a,pointLPS:A}),n&&n({value:r,index:t,pointIJK:a,pointLPS:A})}x.vec3.add(A,A,S)}x.vec3.copy(A,i),x.vec3.add(A,A,P)}x.vec3.copy(A,o),x.vec3.add(A,A,M)}return V}function I(e){let t;const n=c.utilities.getRandomSampleFromArray(e,50);for(let e=0;e<3;e++)if(n.every(((t,n,o)=>Math.abs(t[e]-o[0][e])<1e-6))){t=e;break}if(void 0===t)throw new Error("Cannot find a shared dimension index for polyline, probably oblique plane");const o=[],a=(t+1)%3,r=(t+2)%3;for(let t=0;t<e.length;t++)o.push([e[t][a],e[t][r]]);return{sharedDimensionIndex:t,projectedPolyline:o}}function k(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{closed:void 0};if(e.length<3)return!1;const o=e.length;let a=0;const{closed:r,holes:i}=n;if(null!=i&&i.length)for(const e of i)if(k(e,t))return!1;const s=!(void 0===r?function(e){if(e.length<3)return!1;const t=e.length,n=function(e,t){if(e.length!==t.length)throw Error("Both points should have the same dimensionality");const[n,o,a=0]=e,[r,i,s=0]=t,l=r-n,c=i-o,m=s-a;return l*l+c*c+m*m}(e[0],e[t-1]);return x.glMatrix.equals(0,n)}(e):r),l=e.length-(s?1:2);for(let n=0;n<=l;n++){const r=e[n],i=e[n===o-1?0:n+1],s=r[0]>=i[0]?r[0]:i[0],l=r[1]>=i[1]?r[1]:i[1],c=r[1]<=i[1]?r[1]:i[1];if(t[0]<=s&&t[1]>=c&&t[1]<l){let e=r[0]===i[0];if(!e){const n=(t[1]-r[1])*(i[0]-r[0])/(i[1]-r[1])+r[0];e=t[0]<=n}a+=e?1:0}}return!!(a%2)}function S(e,t){let n=e;const o=(null==t?void 0:t.numDimensions)||2,a=3===o;if(!Array.isArray(e[0])){const t=e,r=t.length/o;n=new Array(t.length/o);for(let e=0,i=r;e<i;e++)n[e]=[t[e*o],t[e*o+1]],a&&n[e].push(t[e*o+2])}let r=1/0,i=1/0,s=-1/0,l=-1/0,c=1/0,m=-1/0;for(let e=0,t=n.length;e<t;e++){const[t,o,u]=n[e];r=r<t?r:t,i=i<o?i:o,s=s>t?s:t,l=l>o?l:o,a&&(c=c<u?c:u,m=m>u?m:u)}return a?{minX:r,maxX:s,minY:i,maxY:l,minZ:c,maxZ:m}:{minX:r,maxX:s,minY:i,maxY:l}}const P=(e,t,n,o,a,r,i,s)=>{const l=[x.vec3.fromValues(n,o,a),x.vec3.fromValues(r,o,a),x.vec3.fromValues(n,i,a),x.vec3.fromValues(r,i,a),x.vec3.fromValues(n,o,s),x.vec3.fromValues(r,o,s),x.vec3.fromValues(n,i,s),x.vec3.fromValues(r,i,s)],c=x.vec3.fromValues(t[0],t[1],t[2]),m=x.vec3.fromValues(e[0],e[1],e[2]),u=-x.vec3.dot(c,m);let g=null;for(const e of l){const t=x.vec3.dot(c,e)+u;if(null===g)g=Math.sign(t);else if(Math.sign(t)!==g)return!0}return!1},M={polySeg:null,polySegInitializing:!1,polySegInitializingPromise:null,async initializePolySeg(e){var t;this.polySegInitializing?await this.polySegInitializingPromise:null!==(t=this.polySeg)&&void 0!==t&&t.instance||(this.polySegInitializing=!0,this.polySegInitializingPromise=new Promise((t=>{this.polySeg=new l.Z,this.polySeg.initialize({updateProgress:e}).then((()=>{this.polySegInitializing=!1,t()}))})),await this.polySegInitializingPromise)},async convertContourToSurface(e){const{polylines:t,numPointsArray:n}=e;for(var o=arguments.length,a=new Array(o>1?o-1:0),r=1;r<o;r++)a[r-1]=arguments[r];const[i]=a;return await this.initializePolySeg(i),await this.polySeg.instance.convertContourRoiToSurface(t,n)},async convertLabelmapToSurface(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertLabelmapToSurface(e.scalarData,e.dimensions,e.spacing,e.direction,e.origin,[e.segmentIndex])},async convertContourToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,i=await new l.Z;await i.initialize({updateProgress:a});const{segmentIndices:m,scalarData:u,annotationUIDsInSegmentMap:g,dimensions:p,origin:f,direction:d,spacing:v}=e,h=c.utilities.VoxelManager.createVolumeVoxelManager(p,u),y=r().newInstance();y.setDimensions(p),y.setOrigin(f),y.setDirection(d),y.setSpacing(v);const x=s().newInstance({name:"Pixels",numberOfComponents:1,values:u});y.getPointData().setScalars(x),y.modified();for(const e of m){const t=g.get(e);for(const n of t){if(!n.polyline)continue;const{polyline:t,holesPolyline:o}=n,a=w(t),[r,i,s]=c.utilities.transformWorldToIndex(y,[a[0][0],a[1][0],a[2][0]]),[l,m,u]=c.utilities.transformWorldToIndex(y,[a[0][1],a[1][1],a[2][1]]),{projectedPolyline:g,sharedDimensionIndex:p}=I(t),f=null==o?void 0:o.map((e=>{const{projectedPolyline:t}=I(e);return t})),d=(p+1)%3,v=(p+2)%3;D(y,(e=>{const t=[e[d],e[v]];return k(g,t,{holes:f})}),(t=>{let{pointIJK:n}=t;h.setAtIJKPoint(n,e)}),[[r,l],[i,m],[s,u]])}}return h.scalarData},async convertContourToStackLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n,i=await new l.Z;await i.initialize({updateProgress:a});const{segmentationsInfo:m,annotationUIDsInSegmentMap:u,segmentIndices:g}=e,p=new Map;m.forEach(((e,t)=>{const{dimensions:n,scalarData:o,direction:a,spacing:i,origin:l}=e,m=c.utilities.VoxelManager.createVolumeVoxelManager(n,o),u=r().newInstance();u.setDimensions(n),u.setOrigin(l),u.setDirection(a),u.setSpacing(i);const g=s().newInstance({name:"Pixels",numberOfComponents:1,values:o});u.getPointData().setScalars(g),u.modified(),p.set(t,{manager:m,imageData:u})}));for(const e of g){const t=u.get(e);for(const n of t){if(!n.polyline)continue;const{polyline:t,holesPolyline:o,referencedImageId:a}=n,r=w(t),{manager:i,imageData:s}=p.get(a),[l,m,u]=c.utilities.transformWorldToIndex(s,[r[0][0],r[1][0],r[2][0]]),[g,f,d]=c.utilities.transformWorldToIndex(s,[r[0][1],r[1][1],r[2][1]]),{projectedPolyline:v,sharedDimensionIndex:h}=I(t),y=null==o?void 0:o.map((e=>{const{projectedPolyline:t}=I(e);return t})),x=(h+1)%3,S=(h+2)%3;D(s,(e=>{const t=[e[x],e[S]];return k(v,t,{holes:y})}),(t=>{let{pointIJK:n}=t;i.setAtIJKPoint(n,e)}),[[l,g],[m,f],[u,d]])}}return m.forEach(((e,t)=>{const{manager:n}=p.get(t);e.scalarData=n.scalarData})),m},async convertSurfaceToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;return await this.initializePolySeg(a),this.polySeg.instance.convertSurfaceToLabelmap(e.points,e.polys,e.dimensions,e.spacing,e.direction,e.origin)},async convertSurfacesToVolumeLabelmap(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];const[a]=n;await this.initializePolySeg(a);const{segmentsInfo:i}=e,l=Array.from(i.keys()).map((t=>{const{points:n,polys:o}=i.get(t);return{...this.polySeg.instance.convertSurfaceToLabelmap(n,o,e.dimensions,e.spacing,e.direction,e.origin),segmentIndex:t}})),m=await Promise.all(l),u=r().newInstance();u.setDimensions(e.dimensions),u.setOrigin(e.origin),u.setSpacing(e.spacing),u.setDirection(e.direction);const g=e.dimensions[0]*e.dimensions[1]*e.dimensions[2],p=s().newInstance({name:"Pixels",numberOfComponents:1,values:new Uint8Array(g)});u.getPointData().setScalars(p),u.modified();const f=c.utilities.VoxelManager.createVolumeVoxelManager(e.dimensions,u.getPointData().getScalars().getData()),d=m.map((e=>{const{data:t,dimensions:n,direction:o,origin:a,spacing:i}=e,l=r().newInstance();l.setDimensions(n),l.setOrigin(a),l.setSpacing(i),l.setDirection(o);const m=s().newInstance({name:"Pixels",numberOfComponents:1,values:t});l.getPointData().setScalars(m),l.modified();const u=c.utilities.VoxelManager.createVolumeVoxelManager(n,t),g=l.getExtent();return{volume:l,voxelManager:u,extent:g,scalarData:t,segmentIndex:e.segmentIndex}}));return D(u,(()=>!0),(e=>{let{pointIJK:t,pointLPS:n}=e;try{for(const e of d){const{volume:o,extent:a,voxelManager:r,segmentIndex:i}=e,s=o.worldToIndex(n);if(s[0]<a[0]||s[0]>a[1]||s[1]<a[2]||s[1]>a[3]||s[2]<a[4]||s[2]>a[5])continue;const l=s.map(Math.round);if(r.getAtIJK(...l)>0){f.setAtIJKPoint(t,i);break}}}catch(e){}})),f.scalarData},getSurfacesAABBs(e){let{surfacesInfo:t}=e;const n=new Map;for(const{points:e,id:o}of t){const t=S(e,{numDimensions:3});n.set(o,t)}return n},cutSurfacesIntoPlanes(e,t,n){let{planesInfo:o,surfacesInfo:a,surfacesAABB:r=new Map}=e;const i=o.length,s=h().newInstance(),l=u().newInstance();s.setCutFunction(l);const c=p().newInstance();try{for(const[e,m]of o.entries()){const{sliceIndex:o,planes:u}=m,g=new Map;for(const e of a){const{points:t,polys:n,id:o}=e,a=r.get(o)||S(t,{numDimensions:3});r.has(o)||r.set(o,a);const{minX:i,minY:m,minZ:p,maxX:f,maxY:v,maxZ:h}=a,{origin:y,normal:w}=u[0];if(!P(y,w,i,m,p,f,v,h))continue;c.getPoints().setData(t,3),c.getPolys().setData(n,3),c.modified(),s.setInputData(c),l.setOrigin(y),l.setNormal(w);try{s.update()}catch(e){console.warn("Error during clipping",e);continue}const x=s.getOutputData(),D=x;D.buildLinks();const I=d().newInstance();I.setInputData(D);const k=I.getOutputData();x&&g.set(o,{points:k.getPoints().getData(),lines:k.getLines().getData(),numberOfCells:k.getLines().getNumberOfCells()})}t({progress:(e+1)/i}),n({sliceIndex:o,polyDataResults:g})}}catch(e){console.warn("Error during processing",e)}finally{a=null,l.delete()}}};(0,o.Jj)(M)},785:e=>{e.exports=t},283:t=>{t.exports=e},864:e=>{e.exports=o},70:e=>{e.exports=a},481:e=>{e.exports=i},336:e=>{e.exports=r},953:e=>{e.exports=n},976:e=>{e.exports=s}},u={};function g(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={exports:{}};return m[e](n,n.exports,g),n.exports}return g.m=m,g.x=()=>{var e=g.O(void 0,[78],(()=>g(389)));return g.O(e)},l=[],g.O=(e,t,n,o)=>{if(!t){var a=1/0;for(c=0;c<l.length;c++){t=l[c][0],n=l[c][1],o=l[c][2];for(var r=!0,i=0;i<t.length;i++)(!1&o||a>=o)&&Object.keys(g.O).every((e=>g.O[e](t[i])))?t.splice(i--,1):(r=!1,o<a&&(a=o));if(r){l.splice(c--,1);var s=n();void 0!==s&&(e=s)}}return e}o=o||0;for(var c=l.length;c>0&&l[c-1][2]>o;c--)l[c]=l[c-1];l[c]=[t,n,o]},g.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return g.d(t,{a:t}),t},g.d=(e,t)=>{for(var n in t)g.o(t,n)&&!g.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},g.f={},g.e=e=>Promise.all(Object.keys(g.f).reduce(((t,n)=>(g.f[n](e,t),t)),[])),g.u=e=>e+".index.js",g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;g.g.importScripts&&(e=g.g.location+"");var t=g.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&!e;)e=n[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),g.p=e})(),(()=>{var e={985:1};g.f.i=(t,n)=>{e[t]||importScripts(g.p+g.u(t))};var t=self.webpackChunkcornerstoneTools3D=self.webpackChunkcornerstoneTools3D||[],n=t.push.bind(t);t.push=t=>{var o=t[0],a=t[1],r=t[2];for(var i in a)g.o(a,i)&&(g.m[i]=a[i]);for(r&&r(g);o.length;)e[o.pop()]=1;n(t)}})(),c=g.x,g.x=()=>g.e(78).then(c),g.x()})()));
2
2
  //# sourceMappingURL=985.index.js.map