@cornerstonejs/tools 1.9.3 → 1.10.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 (126) hide show
  1. package/dist/cjs/enums/Events.d.ts +1 -0
  2. package/dist/cjs/enums/Events.js +1 -0
  3. package/dist/cjs/enums/Events.js.map +1 -1
  4. package/dist/cjs/eventDispatchers/shared/getMouseModifier.js +10 -5
  5. package/dist/cjs/eventDispatchers/shared/getMouseModifier.js.map +1 -1
  6. package/dist/cjs/eventListeners/mouse/mouseDownListener.js +2 -1
  7. package/dist/cjs/eventListeners/mouse/mouseDownListener.js.map +1 -1
  8. package/dist/cjs/eventListeners/touch/touchStartListener.js +10 -5
  9. package/dist/cjs/eventListeners/touch/touchStartListener.js.map +1 -1
  10. package/dist/cjs/stateManagement/annotation/config/getState.js +6 -3
  11. package/dist/cjs/stateManagement/annotation/config/getState.js.map +1 -1
  12. package/dist/cjs/stateManagement/annotation/config/helpers.js +4 -2
  13. package/dist/cjs/stateManagement/annotation/config/helpers.js.map +1 -1
  14. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +8 -1
  15. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  16. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
  17. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
  18. package/dist/cjs/tools/MIPJumpToClickTool.js +4 -2
  19. package/dist/cjs/tools/MIPJumpToClickTool.js.map +1 -1
  20. package/dist/cjs/tools/PlanarRotateTool.js +2 -1
  21. package/dist/cjs/tools/PlanarRotateTool.js.map +1 -1
  22. package/dist/cjs/tools/ReferenceCursors.js +58 -29
  23. package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
  24. package/dist/cjs/tools/ScaleOverlayTool.js +2 -1
  25. package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
  26. package/dist/cjs/tools/annotation/AngleTool.js +4 -2
  27. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  28. package/dist/cjs/tools/annotation/CircleROITool.js +2 -1
  29. package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
  30. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +6 -3
  31. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  32. package/dist/cjs/tools/segmentation/PaintFillTool.js +4 -2
  33. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
  34. package/dist/cjs/types/EventTypes.d.ts +8 -1
  35. package/dist/cjs/types/ISetToolModeOptions.d.ts +2 -2
  36. package/dist/cjs/utilities/cine/playClip.js +2 -1
  37. package/dist/cjs/utilities/cine/playClip.js.map +1 -1
  38. package/dist/cjs/utilities/getCalibratedUnits.js +10 -5
  39. package/dist/cjs/utilities/getCalibratedUnits.js.map +1 -1
  40. package/dist/cjs/utilities/math/midPoint.js +2 -1
  41. package/dist/cjs/utilities/math/midPoint.js.map +1 -1
  42. package/dist/cjs/utilities/math/polyline/pointInPolyline.js +2 -1
  43. package/dist/cjs/utilities/math/polyline/pointInPolyline.js.map +1 -1
  44. package/dist/cjs/utilities/math/vec2/liangBarksyClip.js +10 -5
  45. package/dist/cjs/utilities/math/vec2/liangBarksyClip.js.map +1 -1
  46. package/dist/cjs/utilities/roundNumber.js +4 -2
  47. package/dist/cjs/utilities/roundNumber.js.map +1 -1
  48. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +2 -1
  49. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  50. package/dist/esm/enums/Events.d.ts +1 -0
  51. package/dist/esm/enums/Events.js +1 -0
  52. package/dist/esm/enums/Events.js.map +1 -1
  53. package/dist/esm/eventDispatchers/shared/getMouseModifier.js +10 -5
  54. package/dist/esm/eventDispatchers/shared/getMouseModifier.js.map +1 -1
  55. package/dist/esm/eventListeners/mouse/mouseDownListener.js +2 -1
  56. package/dist/esm/eventListeners/mouse/mouseDownListener.js.map +1 -1
  57. package/dist/esm/eventListeners/touch/touchStartListener.js +10 -5
  58. package/dist/esm/eventListeners/touch/touchStartListener.js.map +1 -1
  59. package/dist/esm/stateManagement/annotation/config/getState.js +6 -3
  60. package/dist/esm/stateManagement/annotation/config/getState.js.map +1 -1
  61. package/dist/esm/stateManagement/annotation/config/helpers.js +4 -2
  62. package/dist/esm/stateManagement/annotation/config/helpers.js.map +1 -1
  63. package/dist/esm/store/ToolGroupManager/ToolGroup.js +9 -2
  64. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  65. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +2 -1
  66. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -1
  67. package/dist/esm/tools/MIPJumpToClickTool.js +4 -2
  68. package/dist/esm/tools/MIPJumpToClickTool.js.map +1 -1
  69. package/dist/esm/tools/PlanarRotateTool.js +2 -1
  70. package/dist/esm/tools/PlanarRotateTool.js.map +1 -1
  71. package/dist/esm/tools/ReferenceCursors.js +58 -29
  72. package/dist/esm/tools/ReferenceCursors.js.map +1 -1
  73. package/dist/esm/tools/ScaleOverlayTool.js +2 -1
  74. package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
  75. package/dist/esm/tools/annotation/AngleTool.js +4 -2
  76. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  77. package/dist/esm/tools/annotation/CircleROITool.js +2 -1
  78. package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
  79. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +6 -3
  80. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  81. package/dist/esm/tools/segmentation/PaintFillTool.js +4 -2
  82. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
  83. package/dist/esm/types/EventTypes.d.ts +8 -1
  84. package/dist/esm/types/ISetToolModeOptions.d.ts +2 -2
  85. package/dist/esm/utilities/cine/playClip.js +2 -1
  86. package/dist/esm/utilities/cine/playClip.js.map +1 -1
  87. package/dist/esm/utilities/getCalibratedUnits.js +10 -5
  88. package/dist/esm/utilities/getCalibratedUnits.js.map +1 -1
  89. package/dist/esm/utilities/math/midPoint.js +2 -1
  90. package/dist/esm/utilities/math/midPoint.js.map +1 -1
  91. package/dist/esm/utilities/math/polyline/pointInPolyline.js +2 -1
  92. package/dist/esm/utilities/math/polyline/pointInPolyline.js.map +1 -1
  93. package/dist/esm/utilities/math/vec2/liangBarksyClip.js +10 -5
  94. package/dist/esm/utilities/math/vec2/liangBarksyClip.js.map +1 -1
  95. package/dist/esm/utilities/roundNumber.js +4 -2
  96. package/dist/esm/utilities/roundNumber.js.map +1 -1
  97. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +2 -1
  98. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  99. package/dist/umd/index.js +1 -1
  100. package/dist/umd/index.js.map +1 -1
  101. package/package.json +3 -3
  102. package/src/enums/Events.ts +13 -0
  103. package/src/eventDispatchers/shared/getMouseModifier.ts +15 -5
  104. package/src/eventListeners/mouse/mouseDownListener.ts +3 -1
  105. package/src/eventListeners/touch/touchStartListener.ts +15 -5
  106. package/src/stateManagement/annotation/config/getState.ts +7 -3
  107. package/src/stateManagement/annotation/config/helpers.ts +6 -2
  108. package/src/store/ToolGroupManager/ToolGroup.ts +13 -1
  109. package/src/store/ToolGroupManager/getToolGroupsWithToolName.ts +3 -1
  110. package/src/tools/MIPJumpToClickTool.ts +6 -2
  111. package/src/tools/PlanarRotateTool.ts +3 -1
  112. package/src/tools/ReferenceCursors.ts +85 -29
  113. package/src/tools/ScaleOverlayTool.ts +3 -1
  114. package/src/tools/annotation/AngleTool.ts +6 -2
  115. package/src/tools/annotation/CircleROITool.ts +3 -1
  116. package/src/tools/annotation/PlanarFreehandROITool.ts +8 -3
  117. package/src/tools/segmentation/PaintFillTool.ts +6 -2
  118. package/src/types/EventTypes.ts +20 -0
  119. package/src/types/ISetToolModeOptions.ts +2 -2
  120. package/src/utilities/cine/playClip.ts +3 -1
  121. package/src/utilities/getCalibratedUnits.ts +15 -5
  122. package/src/utilities/math/midPoint.ts +3 -1
  123. package/src/utilities/math/polyline/pointInPolyline.ts +3 -1
  124. package/src/utilities/math/vec2/liangBarksyClip.ts +15 -5
  125. package/src/utilities/roundNumber.ts +6 -2
  126. package/src/utilities/segmentation/thresholdVolumeByRange.ts +3 -1
@@ -4,22 +4,27 @@ const PIXEL_UNITS = 'px';
4
4
  const getCalibratedLengthUnits = (handles, image) => {
5
5
  const { calibration, hasPixelSpacing } = image;
6
6
  const units = hasPixelSpacing ? 'mm' : PIXEL_UNITS;
7
- if (!calibration || !calibration.type)
7
+ if (!calibration || !calibration.type) {
8
8
  return units;
9
- if (calibration.type === CalibrationTypes.UNCALIBRATED)
9
+ }
10
+ if (calibration.type === CalibrationTypes.UNCALIBRATED) {
10
11
  return PIXEL_UNITS;
11
- if (calibration.SequenceOfUltrasoundRegions)
12
+ }
13
+ if (calibration.SequenceOfUltrasoundRegions) {
12
14
  return 'US Region';
15
+ }
13
16
  return `${units} ${calibration.type}`;
14
17
  };
15
18
  const SQUARE = '\xb2';
16
19
  const getCalibratedAreaUnits = (handles, image) => {
17
20
  const { calibration, hasPixelSpacing } = image;
18
21
  const units = (hasPixelSpacing ? 'mm' : PIXEL_UNITS) + SQUARE;
19
- if (!calibration || !calibration.type)
22
+ if (!calibration || !calibration.type) {
20
23
  return units;
21
- if (calibration.SequenceOfUltrasoundRegions)
24
+ }
25
+ if (calibration.SequenceOfUltrasoundRegions) {
22
26
  return 'US Region';
27
+ }
23
28
  return `${units} ${calibration.type}`;
24
29
  };
25
30
  const getCalibratedScale = (image) => image.calibration?.scale || 1;
@@ -1 +1 @@
1
- {"version":3,"file":"getCalibratedUnits.js","sourceRoot":"","sources":["../../../src/utilities/getCalibratedUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;AACnC,MAAM,WAAW,GAAG,IAAI,CAAC;AAkBzB,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IAC1D,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IACnD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC,YAAY;QAAE,OAAO,WAAW,CAAC;IAE3E,IAAI,WAAW,CAAC,2BAA2B;QAAE,OAAO,WAAW,CAAC;IAChE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC;AAItB,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IACxD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,WAAW,CAAC,2BAA2B;QAAE,OAAO,WAAW,CAAC;IAChE,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAMF,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;AAQpE,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;AAEtE,eAAe,wBAAwB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"getCalibratedUnits.js","sourceRoot":"","sources":["../../../src/utilities/getCalibratedUnits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;AACnC,MAAM,WAAW,GAAG,IAAI,CAAC;AAkBzB,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IAC1D,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IACnD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,CAAC,YAAY,EAAE;QACtD,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,WAAW,CAAC,2BAA2B,EAAE;QAC3C,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC;AAItB,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAU,EAAE;IACxD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,WAAW,CAAC,2BAA2B,EAAE;QAC3C,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAMF,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;AAQpE,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;AAEtE,eAAe,wBAAwB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC"}
@@ -4,8 +4,9 @@ const midPoint = (...args) => {
4
4
  for (const arg of args) {
5
5
  ret[0] += arg[0] / len;
6
6
  ret[1] += arg[1] / len;
7
- if (ret.length === 3)
7
+ if (ret.length === 3) {
8
8
  ret[2] += arg[2] / len;
9
+ }
9
10
  }
10
11
  return ret;
11
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"midPoint.js","sourceRoot":"","sources":["../../../../src/utilities/math/midPoint.ts"],"names":[],"mappings":"AAKA,MAAM,QAAQ,GAAG,CACf,GAAG,IAAqC,EACX,EAAE;IAC/B,MAAM,GAAG,GACP,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAC9C;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,QAAqD,CAAC;AAExE,eAAe,QAAQ,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"midPoint.js","sourceRoot":"","sources":["../../../../src/utilities/math/midPoint.ts"],"names":[],"mappings":"AAKA,MAAM,QAAQ,GAAG,CACf,GAAG,IAAqC,EACX,EAAE;IAC/B,MAAM,GAAG,GACP,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;SACxB;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,QAAqD,CAAC;AAExE,eAAe,QAAQ,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -4,8 +4,9 @@ export default function pointInPolyline(points, point, pointEnd) {
4
4
  point[0],
5
5
  pointEnd[1],
6
6
  ]);
7
- if (intersections.length % 2 === 0)
7
+ if (intersections.length % 2 === 0) {
8
8
  return false;
9
+ }
9
10
  return true;
10
11
  }
11
12
  //# sourceMappingURL=pointInPolyline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointInPolyline.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/pointInPolyline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,MAAsB,EACtB,KAAmB,EACnB,QAAsB;IAEtB,MAAM,aAAa,GAAG,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE;QACnE,KAAK,CAAC,CAAC,CAAC;QACR,QAAQ,CAAC,CAAC,CAAC;KACZ,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"pointInPolyline.js","sourceRoot":"","sources":["../../../../../src/utilities/math/polyline/pointInPolyline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,MAAsB,EACtB,KAAmB,EACnB,QAAsB;IAEtB,MAAM,aAAa,GAAG,+BAA+B,CAAC,MAAM,EAAE,KAAK,EAAE;QACnE,KAAK,CAAC,CAAC,CAAC;QACR,QAAQ,CAAC,CAAC,CAAC;KACZ,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QAClC,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,20 +3,25 @@ const INSIDE = 1;
3
3
  const OUTSIDE = 0;
4
4
  function clipT(num, denom, c) {
5
5
  const [tE, tL] = c;
6
- if (Math.abs(denom) < EPSILON)
6
+ if (Math.abs(denom) < EPSILON) {
7
7
  return num < 0;
8
+ }
8
9
  const t = num / denom;
9
10
  if (denom > 0) {
10
- if (t > tL)
11
+ if (t > tL) {
11
12
  return 0;
12
- if (t > tE)
13
+ }
14
+ if (t > tE) {
13
15
  c[0] = t;
16
+ }
14
17
  }
15
18
  else {
16
- if (t < tE)
19
+ if (t < tE) {
17
20
  return 0;
18
- if (t < tL)
21
+ }
22
+ if (t < tL) {
19
23
  c[1] = t;
24
+ }
20
25
  }
21
26
  return 1;
22
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"liangBarksyClip.js","sourceRoot":"","sources":["../../../../../src/utilities/math/vec2/liangBarksyClip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"liangBarksyClip.js","sourceRoot":"","sources":["../../../../../src/utilities/math/vec2/liangBarksyClip.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  function roundNumber(value, precision = 2) {
2
- if (value === undefined || value === null || value === '')
2
+ if (value === undefined || value === null || value === '') {
3
3
  return 'NaN';
4
+ }
4
5
  value = Number(value);
5
- if (value < 0.0001)
6
+ if (value < 0.0001) {
6
7
  return `${value}`;
8
+ }
7
9
  const fixedPrecision = value >= 100
8
10
  ? precision - 2
9
11
  : value >= 10
@@ -1 +1 @@
1
- {"version":3,"file":"roundNumber.js","sourceRoot":"","sources":["../../../src/utilities/roundNumber.ts"],"names":[],"mappings":"AAYA,SAAS,WAAW,CAAC,KAAsB,EAAE,SAAS,GAAG,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACxE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,MAAM;QAAE,OAAO,GAAG,KAAK,EAAE,CAAC;IACtC,MAAM,cAAc,GAClB,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,SAAS,GAAG,CAAC;QACf,CAAC,CAAC,KAAK,IAAI,EAAE;YACb,CAAC,CAAC,SAAS,GAAG,CAAC;YACf,CAAC,CAAC,KAAK,IAAI,CAAC;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,IAAI,GAAG;oBACd,CAAC,CAAC,SAAS,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,IAAI,IAAI;wBACf,CAAC,CAAC,SAAS,GAAG,CAAC;wBACf,CAAC,CAAC,KAAK,IAAI,KAAK;4BAChB,CAAC,CAAC,SAAS,GAAG,CAAC;4BACf,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"roundNumber.js","sourceRoot":"","sources":["../../../src/utilities/roundNumber.ts"],"names":[],"mappings":"AAYA,SAAS,WAAW,CAAC,KAAsB,EAAE,SAAS,GAAG,CAAC;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;QACzD,OAAO,KAAK,CAAC;KACd;IACD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,MAAM,EAAE;QAClB,OAAO,GAAG,KAAK,EAAE,CAAC;KACnB;IACD,MAAM,cAAc,GAClB,KAAK,IAAI,GAAG;QACV,CAAC,CAAC,SAAS,GAAG,CAAC;QACf,CAAC,CAAC,KAAK,IAAI,EAAE;YACb,CAAC,CAAC,SAAS,GAAG,CAAC;YACf,CAAC,CAAC,KAAK,IAAI,CAAC;gBACZ,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,KAAK,IAAI,GAAG;oBACd,CAAC,CAAC,SAAS,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,IAAI,IAAI;wBACf,CAAC,CAAC,SAAS,GAAG,CAAC;wBACf,CAAC,CAAC,KAAK,IAAI,KAAK;4BAChB,CAAC,CAAC,SAAS,GAAG,CAAC;4BACf,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -59,8 +59,9 @@ function thresholdVolumeByRange(segmentationVolume, thresholdVolumeInformation,
59
59
  break;
60
60
  }
61
61
  }
62
- if (insert)
62
+ if (insert) {
63
63
  scalarData[index] = 1;
64
+ }
64
65
  };
65
66
  pointInShapeCallback(segmentationImageData, () => true, callback, boundsIJK);
66
67
  triggerSegmentationDataModified(segmentationVolume.volumeId);
@@ -1 +1 @@
1
- {"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"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"}