@cornerstonejs/tools 1.22.1 → 1.23.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 (117) hide show
  1. package/dist/cjs/drawingSvg/drawPolyline.d.ts +2 -0
  2. package/dist/cjs/drawingSvg/drawPolyline.js +5 -2
  3. package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
  4. package/dist/cjs/enums/SegmentationRepresentations.d.ts +2 -1
  5. package/dist/cjs/enums/SegmentationRepresentations.js +1 -0
  6. package/dist/cjs/enums/SegmentationRepresentations.js.map +1 -1
  7. package/dist/cjs/index.d.ts +2 -2
  8. package/dist/cjs/index.js +3 -2
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/stateManagement/segmentation/addSegmentationRepresentations.js +5 -0
  11. package/dist/cjs/stateManagement/segmentation/addSegmentationRepresentations.js.map +1 -1
  12. package/dist/cjs/tools/SegmentationIntersectionTool.d.ts +18 -0
  13. package/dist/cjs/tools/SegmentationIntersectionTool.js +184 -0
  14. package/dist/cjs/tools/SegmentationIntersectionTool.js.map +1 -0
  15. package/dist/cjs/tools/displayTools/Contour/addContourSetsToElement.js.map +1 -1
  16. package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js +7 -3
  17. package/dist/cjs/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
  18. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.d.ts +2 -0
  19. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.js +84 -0
  20. package/dist/cjs/tools/displayTools/Surface/addSurfaceToElement.js.map +1 -0
  21. package/dist/cjs/tools/displayTools/Surface/index.d.ts +2 -0
  22. package/dist/cjs/tools/displayTools/Surface/index.js +9 -0
  23. package/dist/cjs/tools/displayTools/Surface/index.js.map +1 -0
  24. package/dist/cjs/tools/displayTools/Surface/removeSurfaceFromElement.d.ts +2 -0
  25. package/dist/cjs/tools/displayTools/Surface/removeSurfaceFromElement.js +14 -0
  26. package/dist/cjs/tools/displayTools/Surface/removeSurfaceFromElement.js.map +1 -0
  27. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.d.ts +11 -0
  28. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.js +140 -0
  29. package/dist/cjs/tools/displayTools/Surface/surfaceDisplay.js.map +1 -0
  30. package/dist/cjs/tools/index.d.ts +2 -1
  31. package/dist/cjs/tools/index.js +3 -1
  32. package/dist/cjs/tools/index.js.map +1 -1
  33. package/dist/cjs/types/SegmentationStateTypes.d.ts +9 -1
  34. package/dist/cjs/types/SurfaceTypes.d.ts +4 -0
  35. package/dist/cjs/types/SurfaceTypes.js +3 -0
  36. package/dist/cjs/types/SurfaceTypes.js.map +1 -0
  37. package/dist/cjs/utilities/index.d.ts +3 -1
  38. package/dist/cjs/utilities/index.js +5 -1
  39. package/dist/cjs/utilities/index.js.map +1 -1
  40. package/dist/cjs/utilities/math/point/distanceToPoint.d.ts +3 -1
  41. package/dist/cjs/utilities/math/point/distanceToPoint.js +5 -5
  42. package/dist/cjs/utilities/math/point/distanceToPoint.js.map +1 -1
  43. package/dist/cjs/utilities/pointToString.d.ts +1 -0
  44. package/dist/cjs/utilities/pointToString.js +13 -0
  45. package/dist/cjs/utilities/pointToString.js.map +1 -0
  46. package/dist/cjs/utilities/polyData/utils.d.ts +4 -0
  47. package/dist/cjs/utilities/polyData/utils.js +58 -0
  48. package/dist/cjs/utilities/polyData/utils.js.map +1 -0
  49. package/dist/esm/drawingSvg/drawPolyline.d.ts +2 -0
  50. package/dist/esm/drawingSvg/drawPolyline.js +5 -2
  51. package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
  52. package/dist/esm/enums/SegmentationRepresentations.d.ts +2 -1
  53. package/dist/esm/enums/SegmentationRepresentations.js +1 -0
  54. package/dist/esm/enums/SegmentationRepresentations.js.map +1 -1
  55. package/dist/esm/index.d.ts +2 -2
  56. package/dist/esm/index.js +2 -2
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.js +5 -0
  59. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentations.js.map +1 -1
  60. package/dist/esm/tools/SegmentationIntersectionTool.d.ts +18 -0
  61. package/dist/esm/tools/SegmentationIntersectionTool.js +177 -0
  62. package/dist/esm/tools/SegmentationIntersectionTool.js.map +1 -0
  63. package/dist/esm/tools/displayTools/Contour/addContourSetsToElement.js.map +1 -1
  64. package/dist/esm/tools/displayTools/SegmentationDisplayTool.js +7 -3
  65. package/dist/esm/tools/displayTools/SegmentationDisplayTool.js.map +1 -1
  66. package/dist/esm/tools/displayTools/Surface/addSurfaceToElement.d.ts +2 -0
  67. package/dist/esm/tools/displayTools/Surface/addSurfaceToElement.js +79 -0
  68. package/dist/esm/tools/displayTools/Surface/addSurfaceToElement.js.map +1 -0
  69. package/dist/esm/tools/displayTools/Surface/index.d.ts +2 -0
  70. package/dist/esm/tools/displayTools/Surface/index.js +3 -0
  71. package/dist/esm/tools/displayTools/Surface/index.js.map +1 -0
  72. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.d.ts +2 -0
  73. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.js +12 -0
  74. package/dist/esm/tools/displayTools/Surface/removeSurfaceFromElement.js.map +1 -0
  75. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.d.ts +11 -0
  76. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +101 -0
  77. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js.map +1 -0
  78. package/dist/esm/tools/index.d.ts +2 -1
  79. package/dist/esm/tools/index.js +2 -1
  80. package/dist/esm/tools/index.js.map +1 -1
  81. package/dist/esm/types/SegmentationStateTypes.d.ts +9 -1
  82. package/dist/esm/types/SurfaceTypes.d.ts +4 -0
  83. package/dist/esm/types/SurfaceTypes.js +2 -0
  84. package/dist/esm/types/SurfaceTypes.js.map +1 -0
  85. package/dist/esm/utilities/index.d.ts +3 -1
  86. package/dist/esm/utilities/index.js +3 -1
  87. package/dist/esm/utilities/index.js.map +1 -1
  88. package/dist/esm/utilities/math/point/distanceToPoint.d.ts +3 -1
  89. package/dist/esm/utilities/math/point/distanceToPoint.js +5 -5
  90. package/dist/esm/utilities/math/point/distanceToPoint.js.map +1 -1
  91. package/dist/esm/utilities/pointToString.d.ts +1 -0
  92. package/dist/esm/utilities/pointToString.js +9 -0
  93. package/dist/esm/utilities/pointToString.js.map +1 -0
  94. package/dist/esm/utilities/polyData/utils.d.ts +4 -0
  95. package/dist/esm/utilities/polyData/utils.js +52 -0
  96. package/dist/esm/utilities/polyData/utils.js.map +1 -0
  97. package/dist/umd/index.js +1 -1
  98. package/dist/umd/index.js.map +1 -1
  99. package/package.json +4 -4
  100. package/src/drawingSvg/drawPolyline.ts +17 -11
  101. package/src/enums/SegmentationRepresentations.ts +1 -1
  102. package/src/index.ts +2 -0
  103. package/src/stateManagement/segmentation/addSegmentationRepresentations.ts +8 -0
  104. package/src/tools/SegmentationIntersectionTool.ts +300 -0
  105. package/src/tools/displayTools/Contour/addContourSetsToElement.ts +1 -1
  106. package/src/tools/displayTools/SegmentationDisplayTool.ts +10 -4
  107. package/src/tools/displayTools/Surface/addSurfaceToElement.ts +115 -0
  108. package/src/tools/displayTools/Surface/index.ts +3 -0
  109. package/src/tools/displayTools/Surface/removeSurfaceFromElement.ts +35 -0
  110. package/src/tools/displayTools/Surface/surfaceDisplay.ts +215 -0
  111. package/src/tools/index.ts +2 -0
  112. package/src/types/SegmentationStateTypes.ts +18 -1
  113. package/src/types/SurfaceTypes.ts +10 -0
  114. package/src/utilities/index.ts +4 -0
  115. package/src/utilities/math/point/distanceToPoint.ts +12 -11
  116. package/src/utilities/pointToString.ts +10 -0
  117. package/src/utilities/polyData/utils.ts +82 -0
@@ -11,6 +11,7 @@ import pointInShapeCallback from './pointInShapeCallback';
11
11
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
12
12
  import scroll from './scroll';
13
13
  import roundNumber from './roundNumber';
14
+ import { pointToString } from './pointToString';
14
15
  import * as segmentation from './segmentation';
15
16
  import * as drawing from './drawing';
16
17
  import * as math from './math';
@@ -25,5 +26,6 @@ import { stackPrefetch, stackContextPrefetch } from './stackPrefetch';
25
26
  import * as viewport from './viewport';
26
27
  import * as touch from './touch';
27
28
  import * as dynamicVolume from './dynamicVolume';
29
+ import * as polyDataUtils from './polyData/utils';
28
30
  import { triggerEvent } from '@cornerstonejs/core';
29
- export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, };
31
+ export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, };
@@ -11,6 +11,7 @@ import pointInShapeCallback from './pointInShapeCallback';
11
11
  import pointInSurroundingSphereCallback from './pointInSurroundingSphereCallback';
12
12
  import scroll from './scroll';
13
13
  import roundNumber from './roundNumber';
14
+ import { pointToString } from './pointToString';
14
15
  import * as segmentation from './segmentation';
15
16
  import * as drawing from './drawing';
16
17
  import * as math from './math';
@@ -25,6 +26,7 @@ import { stackPrefetch, stackContextPrefetch } from './stackPrefetch';
25
26
  import * as viewport from './viewport';
26
27
  import * as touch from './touch';
27
28
  import * as dynamicVolume from './dynamicVolume';
29
+ import * as polyDataUtils from './polyData/utils';
28
30
  import { triggerEvent } from '@cornerstonejs/core';
29
- export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, };
31
+ export { math, planar, viewportFilters, drawing, debounce, dynamicVolume, throttle, orientation, isObject, touch, triggerEvent, calibrateImageSpacing, segmentation, triggerAnnotationRenderForViewportIds, triggerAnnotationRender, pointInShapeCallback, pointInSurroundingSphereCallback, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, jumpToSlice, viewport, cine, clip, boundingBox, rectangleROITool, planarFreehandROITool, stackPrefetch, stackContextPrefetch, scroll, roundNumber, pointToString, polyDataUtils, };
30
32
  //# 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,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,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,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,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,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,aAAa,EACb,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,WAAW,GACZ,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,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,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,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,qBAAqB,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,eAAe,EACf,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sCAAsC,EACtC,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,WAAW,EACX,aAAa,EACb,aAAa,GACd,CAAC"}
@@ -1,2 +1,4 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- export default function distanceToPoint(p1: Types.Point2, p2: Types.Point2): number;
2
+ declare type Point = Types.Point2 | Types.Point3;
3
+ export default function distanceToPoint(p1: Point, p2: Point): number;
4
+ export {};
@@ -1,9 +1,9 @@
1
1
  export default function distanceToPoint(p1, p2) {
2
- if (p1?.length !== 2 || p2?.length !== 2) {
3
- throw Error('points should have 2 elements of [x, y]');
2
+ if (p1.length !== p2.length) {
3
+ throw Error('Both points should have the same dimensionality');
4
4
  }
5
- const [x1, y1] = p1;
6
- const [x2, y2] = p2;
7
- return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
5
+ const [x1, y1, z1 = 0] = p1;
6
+ const [x2, y2, z2 = 0] = p2;
7
+ return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2) + Math.pow(z1 - z2, 2));
8
8
  }
9
9
  //# sourceMappingURL=distanceToPoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distanceToPoint.js","sourceRoot":"","sources":["../../../../../src/utilities/math/point/distanceToPoint.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,EAAgB,EAChB,EAAgB;IAEhB,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;QACxC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;KACxD;IAED,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"distanceToPoint.js","sourceRoot":"","sources":["../../../../../src/utilities/math/point/distanceToPoint.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAS,EAAE,EAAS;IAC1D,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE;QAC3B,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;KAChE;IAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAE5B,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function pointToString(point: any, decimals?: number): string;
@@ -0,0 +1,9 @@
1
+ export function pointToString(point, decimals = 5) {
2
+ return (parseFloat(point[0]).toFixed(decimals) +
3
+ ',' +
4
+ parseFloat(point[1]).toFixed(decimals) +
5
+ ',' +
6
+ parseFloat(point[2]).toFixed(decimals) +
7
+ ',');
8
+ }
9
+ //# sourceMappingURL=pointToString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointToString.js","sourceRoot":"","sources":["../../../src/utilities/pointToString.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC;IAC/C,OAAO,CACL,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,GAAG;QACH,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,GAAG;QACH,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,GAAG,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import vtkPolyData from '@kitware/vtk.js/Common/DataModel/PolyData';
2
+ export declare function getPoint(points: any, idx: any): any[];
3
+ export declare function getPolyDataPointIndexes(polyData: vtkPolyData): any[];
4
+ export declare function getPolyDataPoints(polyData: vtkPolyData): any[];
@@ -0,0 +1,52 @@
1
+ export function getPoint(points, idx) {
2
+ if (idx < points.length / 3) {
3
+ return [points[idx * 3], points[idx * 3 + 1], points[idx * 3 + 2]];
4
+ }
5
+ }
6
+ export function getPolyDataPointIndexes(polyData) {
7
+ const linesData = polyData.getLines().getData();
8
+ let idx = 0;
9
+ const lineSegments = new Map();
10
+ while (idx < linesData.length) {
11
+ const segmentSize = linesData[idx++];
12
+ const segment = [];
13
+ for (let i = 0; i < segmentSize; i++) {
14
+ segment.push(linesData[idx + i]);
15
+ }
16
+ lineSegments.set(segment[0], segment);
17
+ idx += segmentSize;
18
+ }
19
+ const contours = [];
20
+ const findStartingPoint = (map) => {
21
+ for (const [key, value] of map.entries()) {
22
+ if (value !== undefined) {
23
+ return key;
24
+ }
25
+ }
26
+ return -1;
27
+ };
28
+ let startPoint = findStartingPoint(lineSegments);
29
+ while (startPoint !== -1) {
30
+ const contour = [startPoint];
31
+ while (lineSegments.has(startPoint)) {
32
+ const nextPoint = lineSegments.get(startPoint)[1];
33
+ if (lineSegments.has(nextPoint)) {
34
+ contour.push(nextPoint);
35
+ }
36
+ lineSegments.delete(startPoint);
37
+ startPoint = nextPoint;
38
+ }
39
+ contours.push(contour);
40
+ startPoint = findStartingPoint(lineSegments);
41
+ }
42
+ return contours.length ? contours : undefined;
43
+ }
44
+ export function getPolyDataPoints(polyData) {
45
+ const contoursIndexes = getPolyDataPointIndexes(polyData);
46
+ if (!contoursIndexes) {
47
+ return;
48
+ }
49
+ const rawPointsData = polyData.getPoints().getData();
50
+ return contoursIndexes.map((contourIndexes) => contourIndexes.map((index) => getPoint(rawPointsData, index)));
51
+ }
52
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utilities/polyData/utils.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,QAAQ,CAAC,MAAM,EAAE,GAAG;IAClC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACpE;AACH,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,QAAqB;IAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAGjD,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;QAC7B,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACtC,GAAG,IAAI,WAAW,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC;IAGpB,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,EAAE;QAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;YACxC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,OAAO,GAAG,CAAC;aACZ;SACF;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC;IAGF,IAAI,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,UAAU,KAAK,CAAC,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;YACD,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,UAAU,GAAG,SAAS,CAAC;SACxB;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,QAAqB;IACrD,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO;KACR;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;IACrD,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAC5C,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC"}