@cornerstonejs/tools 1.32.3 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/cjs/eventListeners/index.d.ts +2 -2
  2. package/dist/cjs/eventListeners/index.js +2 -1
  3. package/dist/cjs/eventListeners/index.js.map +1 -1
  4. package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.d.ts +5 -0
  5. package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js +143 -0
  6. package/dist/cjs/eventListeners/segmentation/imageChangeEventListener.js.map +1 -0
  7. package/dist/cjs/eventListeners/segmentation/index.d.ts +2 -1
  8. package/dist/cjs/eventListeners/segmentation/index.js +3 -1
  9. package/dist/cjs/eventListeners/segmentation/index.js.map +1 -1
  10. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js +31 -5
  11. package/dist/cjs/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  12. package/dist/cjs/store/SynchronizerManager/Synchronizer.d.ts +1 -0
  13. package/dist/cjs/store/SynchronizerManager/Synchronizer.js +17 -1
  14. package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
  15. package/dist/cjs/store/addEnabledElement.js +1 -0
  16. package/dist/cjs/store/addEnabledElement.js.map +1 -1
  17. package/dist/cjs/store/removeEnabledElement.js +2 -0
  18. package/dist/cjs/store/removeEnabledElement.js.map +1 -1
  19. package/dist/cjs/synchronizers/callbacks/areViewportsCoplanar .d.ts +1 -1
  20. package/dist/cjs/synchronizers/callbacks/areViewportsCoplanar .js.map +1 -1
  21. package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.d.ts → imageSliceSyncCallback.d.ts} +1 -1
  22. package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.js → imageSliceSyncCallback.js} +8 -4
  23. package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.js.map → imageSliceSyncCallback.js.map} +1 -1
  24. package/dist/cjs/synchronizers/index.d.ts +3 -2
  25. package/dist/cjs/synchronizers/index.js +5 -3
  26. package/dist/cjs/synchronizers/index.js.map +1 -1
  27. package/dist/cjs/synchronizers/synchronizers/{createStackImageSynchronizer.d.ts → createImageSliceSynchronizer.d.ts} +1 -1
  28. package/dist/cjs/synchronizers/synchronizers/createImageSliceSynchronizer.js +17 -0
  29. package/dist/cjs/synchronizers/synchronizers/createImageSliceSynchronizer.js.map +1 -0
  30. package/dist/cjs/synchronizers/synchronizers/index.d.ts +3 -2
  31. package/dist/cjs/synchronizers/synchronizers/index.js +5 -3
  32. package/dist/cjs/synchronizers/synchronizers/index.js.map +1 -1
  33. package/dist/cjs/tools/annotation/CircleROITool.js +3 -1
  34. package/dist/cjs/tools/annotation/CircleROITool.js.map +1 -1
  35. package/dist/cjs/tools/annotation/EllipticalROITool.js +1 -1
  36. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  37. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +2 -1
  38. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +23 -10
  39. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  40. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -1
  41. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js +36 -22
  42. package/dist/cjs/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  43. package/dist/cjs/tools/displayTools/Labelmap/validateRepresentationData.js +6 -5
  44. package/dist/cjs/tools/displayTools/Labelmap/validateRepresentationData.js.map +1 -1
  45. package/dist/cjs/tools/segmentation/BrushTool.js +40 -45
  46. package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
  47. package/dist/cjs/tools/segmentation/CircleScissorsTool.d.ts +4 -2
  48. package/dist/cjs/tools/segmentation/CircleScissorsTool.js +18 -17
  49. package/dist/cjs/tools/segmentation/CircleScissorsTool.js.map +1 -1
  50. package/dist/cjs/tools/segmentation/PaintFillTool.js +28 -5
  51. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
  52. package/dist/cjs/tools/segmentation/RectangleScissorsTool.d.ts +3 -1
  53. package/dist/cjs/tools/segmentation/RectangleScissorsTool.js +15 -16
  54. package/dist/cjs/tools/segmentation/RectangleScissorsTool.js.map +1 -1
  55. package/dist/cjs/tools/segmentation/SphereScissorsTool.d.ts +4 -2
  56. package/dist/cjs/tools/segmentation/SphereScissorsTool.js +20 -20
  57. package/dist/cjs/tools/segmentation/SphereScissorsTool.js.map +1 -1
  58. package/dist/cjs/tools/segmentation/strategies/eraseCircle.d.ts +2 -10
  59. package/dist/cjs/tools/segmentation/strategies/eraseCircle.js.map +1 -1
  60. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.d.ts +4 -8
  61. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +4 -20
  62. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  63. package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -10
  64. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  65. package/dist/cjs/tools/segmentation/strategies/fillCircle.d.ts +3 -11
  66. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +57 -32
  67. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  68. package/dist/cjs/tools/segmentation/strategies/fillRectangle.d.ts +2 -7
  69. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +16 -8
  70. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  71. package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +2 -10
  72. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +31 -17
  73. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  74. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.d.ts +9 -0
  75. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js +43 -0
  76. package/dist/cjs/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -0
  77. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +2 -2
  78. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +2 -2
  79. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
  80. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +5 -0
  81. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.js +13 -0
  82. package/dist/cjs/tools/segmentation/strategies/utils/stackVolumeCheck.js.map +1 -0
  83. package/dist/cjs/types/LabelmapToolOperationData.d.ts +14 -0
  84. package/dist/cjs/types/LabelmapToolOperationData.js +3 -0
  85. package/dist/cjs/types/LabelmapToolOperationData.js.map +1 -0
  86. package/dist/cjs/types/LabelmapTypes.d.ts +5 -1
  87. package/dist/cjs/types/index.d.ts +2 -1
  88. package/dist/cjs/utilities/math/ellipse/pointInEllipse.d.ts +7 -9
  89. package/dist/cjs/utilities/math/ellipse/pointInEllipse.js +19 -11
  90. package/dist/cjs/utilities/math/ellipse/pointInEllipse.js.map +1 -1
  91. package/dist/esm/eventListeners/index.js +2 -2
  92. package/dist/esm/eventListeners/index.js.map +1 -1
  93. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +115 -0
  94. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js.map +1 -0
  95. package/dist/esm/eventListeners/segmentation/index.js +2 -1
  96. package/dist/esm/eventListeners/segmentation/index.js.map +1 -1
  97. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +32 -6
  98. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js.map +1 -1
  99. package/dist/esm/store/SynchronizerManager/Synchronizer.js +17 -1
  100. package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
  101. package/dist/esm/store/addEnabledElement.js +2 -1
  102. package/dist/esm/store/addEnabledElement.js.map +1 -1
  103. package/dist/esm/store/removeEnabledElement.js +2 -0
  104. package/dist/esm/store/removeEnabledElement.js.map +1 -1
  105. package/dist/esm/synchronizers/callbacks/areViewportsCoplanar .js.map +1 -1
  106. package/dist/esm/synchronizers/callbacks/{stackImageSyncCallback.js → imageSliceSyncCallback.js} +8 -4
  107. package/dist/esm/synchronizers/callbacks/imageSliceSyncCallback.js.map +1 -0
  108. package/dist/esm/synchronizers/index.js +3 -2
  109. package/dist/esm/synchronizers/index.js.map +1 -1
  110. package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.js +11 -0
  111. package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.js.map +1 -0
  112. package/dist/esm/synchronizers/synchronizers/index.js +3 -2
  113. package/dist/esm/synchronizers/synchronizers/index.js.map +1 -1
  114. package/dist/esm/tools/annotation/CircleROITool.js +4 -2
  115. package/dist/esm/tools/annotation/CircleROITool.js.map +1 -1
  116. package/dist/esm/tools/annotation/EllipticalROITool.js +1 -1
  117. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  118. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +24 -11
  119. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  120. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +36 -22
  121. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js.map +1 -1
  122. package/dist/esm/tools/displayTools/Labelmap/validateRepresentationData.js +6 -5
  123. package/dist/esm/tools/displayTools/Labelmap/validateRepresentationData.js.map +1 -1
  124. package/dist/esm/tools/segmentation/BrushTool.js +38 -29
  125. package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
  126. package/dist/esm/tools/segmentation/CircleScissorsTool.js +27 -15
  127. package/dist/esm/tools/segmentation/CircleScissorsTool.js.map +1 -1
  128. package/dist/esm/tools/segmentation/PaintFillTool.js +28 -5
  129. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
  130. package/dist/esm/tools/segmentation/RectangleScissorsTool.js +26 -17
  131. package/dist/esm/tools/segmentation/RectangleScissorsTool.js.map +1 -1
  132. package/dist/esm/tools/segmentation/SphereScissorsTool.js +28 -17
  133. package/dist/esm/tools/segmentation/SphereScissorsTool.js.map +1 -1
  134. package/dist/esm/tools/segmentation/strategies/eraseCircle.js.map +1 -1
  135. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +4 -20
  136. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  137. package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  138. package/dist/esm/tools/segmentation/strategies/fillCircle.js +56 -31
  139. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  140. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +16 -8
  141. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  142. package/dist/esm/tools/segmentation/strategies/fillSphere.js +32 -18
  143. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  144. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js +40 -0
  145. package/dist/esm/tools/segmentation/strategies/utils/getStrategyData.js.map +1 -0
  146. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +2 -2
  147. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -1
  148. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js +9 -0
  149. package/dist/esm/tools/segmentation/strategies/utils/stackVolumeCheck.js.map +1 -0
  150. package/dist/esm/types/LabelmapToolOperationData.js +2 -0
  151. package/dist/esm/types/LabelmapToolOperationData.js.map +1 -0
  152. package/dist/esm/utilities/math/ellipse/pointInEllipse.js +19 -11
  153. package/dist/esm/utilities/math/ellipse/pointInEllipse.js.map +1 -1
  154. package/dist/types/eventListeners/index.d.ts +2 -2
  155. package/dist/types/eventListeners/index.d.ts.map +1 -1
  156. package/dist/types/eventListeners/segmentation/imageChangeEventListener.d.ts +6 -0
  157. package/dist/types/eventListeners/segmentation/imageChangeEventListener.d.ts.map +1 -0
  158. package/dist/types/eventListeners/segmentation/index.d.ts +2 -1
  159. package/dist/types/eventListeners/segmentation/index.d.ts.map +1 -1
  160. package/dist/types/eventListeners/segmentation/segmentationDataModifiedEventListener.d.ts.map +1 -1
  161. package/dist/types/store/SynchronizerManager/Synchronizer.d.ts +1 -0
  162. package/dist/types/store/SynchronizerManager/Synchronizer.d.ts.map +1 -1
  163. package/dist/types/store/addEnabledElement.d.ts.map +1 -1
  164. package/dist/types/store/removeEnabledElement.d.ts.map +1 -1
  165. package/dist/types/synchronizers/callbacks/areViewportsCoplanar .d.ts +1 -1
  166. package/dist/types/synchronizers/callbacks/areViewportsCoplanar .d.ts.map +1 -1
  167. package/dist/types/synchronizers/callbacks/{stackImageSyncCallback.d.ts → imageSliceSyncCallback.d.ts} +2 -2
  168. package/dist/types/synchronizers/callbacks/imageSliceSyncCallback.d.ts.map +1 -0
  169. package/dist/types/synchronizers/index.d.ts +3 -2
  170. package/dist/types/synchronizers/index.d.ts.map +1 -1
  171. package/dist/types/synchronizers/synchronizers/createImageSliceSynchronizer.d.ts +3 -0
  172. package/dist/types/synchronizers/synchronizers/createImageSliceSynchronizer.d.ts.map +1 -0
  173. package/dist/types/synchronizers/synchronizers/index.d.ts +3 -2
  174. package/dist/types/synchronizers/synchronizers/index.d.ts.map +1 -1
  175. package/dist/types/tools/annotation/CircleROITool.d.ts.map +1 -1
  176. package/dist/types/tools/displayTools/Labelmap/addLabelmapToElement.d.ts +2 -1
  177. package/dist/types/tools/displayTools/Labelmap/addLabelmapToElement.d.ts.map +1 -1
  178. package/dist/types/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -1
  179. package/dist/types/tools/displayTools/Labelmap/labelmapDisplay.d.ts.map +1 -1
  180. package/dist/types/tools/displayTools/Labelmap/validateRepresentationData.d.ts.map +1 -1
  181. package/dist/types/tools/segmentation/BrushTool.d.ts.map +1 -1
  182. package/dist/types/tools/segmentation/CircleScissorsTool.d.ts +4 -2
  183. package/dist/types/tools/segmentation/CircleScissorsTool.d.ts.map +1 -1
  184. package/dist/types/tools/segmentation/PaintFillTool.d.ts.map +1 -1
  185. package/dist/types/tools/segmentation/RectangleScissorsTool.d.ts +3 -1
  186. package/dist/types/tools/segmentation/RectangleScissorsTool.d.ts.map +1 -1
  187. package/dist/types/tools/segmentation/SphereScissorsTool.d.ts +4 -2
  188. package/dist/types/tools/segmentation/SphereScissorsTool.d.ts.map +1 -1
  189. package/dist/types/tools/segmentation/strategies/eraseCircle.d.ts +2 -10
  190. package/dist/types/tools/segmentation/strategies/eraseCircle.d.ts.map +1 -1
  191. package/dist/types/tools/segmentation/strategies/eraseRectangle.d.ts +4 -8
  192. package/dist/types/tools/segmentation/strategies/eraseRectangle.d.ts.map +1 -1
  193. package/dist/types/tools/segmentation/strategies/eraseSphere.d.ts +2 -10
  194. package/dist/types/tools/segmentation/strategies/eraseSphere.d.ts.map +1 -1
  195. package/dist/types/tools/segmentation/strategies/fillCircle.d.ts +3 -11
  196. package/dist/types/tools/segmentation/strategies/fillCircle.d.ts.map +1 -1
  197. package/dist/types/tools/segmentation/strategies/fillRectangle.d.ts +2 -7
  198. package/dist/types/tools/segmentation/strategies/fillRectangle.d.ts.map +1 -1
  199. package/dist/types/tools/segmentation/strategies/fillSphere.d.ts +2 -10
  200. package/dist/types/tools/segmentation/strategies/fillSphere.d.ts.map +1 -1
  201. package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts +10 -0
  202. package/dist/types/tools/segmentation/strategies/utils/getStrategyData.d.ts.map +1 -0
  203. package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +2 -2
  204. package/dist/types/tools/segmentation/strategies/utils/isWithinThreshold.d.ts.map +1 -1
  205. package/dist/types/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts +6 -0
  206. package/dist/types/tools/segmentation/strategies/utils/stackVolumeCheck.d.ts.map +1 -0
  207. package/dist/types/types/LabelmapToolOperationData.d.ts +15 -0
  208. package/dist/types/types/LabelmapToolOperationData.d.ts.map +1 -0
  209. package/dist/types/types/LabelmapTypes.d.ts +5 -1
  210. package/dist/types/types/LabelmapTypes.d.ts.map +1 -1
  211. package/dist/types/types/index.d.ts +2 -1
  212. package/dist/types/types/index.d.ts.map +1 -1
  213. package/dist/types/utilities/math/ellipse/pointInEllipse.d.ts +7 -9
  214. package/dist/types/utilities/math/ellipse/pointInEllipse.d.ts.map +1 -1
  215. package/dist/umd/index.js +1 -1
  216. package/dist/umd/index.js.map +1 -1
  217. package/package.json +3 -3
  218. package/src/eventListeners/index.ts +2 -0
  219. package/src/eventListeners/segmentation/imageChangeEventListener.ts +215 -0
  220. package/src/eventListeners/segmentation/index.ts +2 -0
  221. package/src/eventListeners/segmentation/segmentationDataModifiedEventListener.ts +70 -9
  222. package/src/store/SynchronizerManager/Synchronizer.ts +28 -3
  223. package/src/store/addEnabledElement.ts +2 -0
  224. package/src/store/removeEnabledElement.ts +3 -0
  225. package/src/synchronizers/callbacks/areViewportsCoplanar .ts +2 -2
  226. package/src/synchronizers/callbacks/{stackImageSyncCallback.ts → imageSliceSyncCallback.ts} +16 -8
  227. package/src/synchronizers/index.ts +5 -1
  228. package/src/synchronizers/synchronizers/{createStackImageSynchronizer.ts → createImageSliceSynchronizer.ts} +8 -5
  229. package/src/synchronizers/synchronizers/index.ts +4 -1
  230. package/src/tools/annotation/CircleROITool.ts +5 -5
  231. package/src/tools/annotation/EllipticalROITool.ts +1 -1
  232. package/src/tools/displayTools/Labelmap/addLabelmapToElement.ts +51 -22
  233. package/src/tools/displayTools/Labelmap/labelmapDisplay.ts +65 -35
  234. package/src/tools/displayTools/Labelmap/validateRepresentationData.ts +17 -11
  235. package/src/tools/segmentation/BrushTool.ts +78 -39
  236. package/src/tools/segmentation/CircleScissorsTool.ts +46 -29
  237. package/src/tools/segmentation/PaintFillTool.ts +45 -8
  238. package/src/tools/segmentation/RectangleScissorsTool.ts +41 -31
  239. package/src/tools/segmentation/SphereScissorsTool.ts +46 -28
  240. package/src/tools/segmentation/strategies/eraseCircle.ts +3 -11
  241. package/src/tools/segmentation/strategies/eraseRectangle.ts +13 -42
  242. package/src/tools/segmentation/strategies/eraseSphere.ts +2 -10
  243. package/src/tools/segmentation/strategies/fillCircle.ts +93 -61
  244. package/src/tools/segmentation/strategies/fillRectangle.ts +31 -22
  245. package/src/tools/segmentation/strategies/fillSphere.ts +51 -41
  246. package/src/tools/segmentation/strategies/utils/getStrategyData.ts +58 -0
  247. package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +3 -2
  248. package/src/tools/segmentation/strategies/utils/stackVolumeCheck.ts +33 -0
  249. package/src/types/LabelmapToolOperationData.ts +27 -0
  250. package/src/types/LabelmapTypes.ts +16 -1
  251. package/src/types/index.ts +8 -0
  252. package/src/utilities/math/ellipse/pointInEllipse.ts +43 -22
  253. package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js +0 -15
  254. package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js.map +0 -1
  255. package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +0 -1
  256. package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js +0 -9
  257. package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js.map +0 -1
  258. package/dist/types/synchronizers/callbacks/stackImageSyncCallback.d.ts.map +0 -1
  259. package/dist/types/synchronizers/synchronizers/createStackImageSynchronizer.d.ts +0 -3
  260. package/dist/types/synchronizers/synchronizers/createStackImageSynchronizer.d.ts.map +0 -1
@@ -1,39 +1,60 @@
1
- import type { Types } from '@cornerstonejs/core';
2
- import { vec3 } from 'gl-matrix';
3
-
4
- type Ellipse = {
5
- center: Types.Point3;
6
- xRadius: number;
7
- yRadius: number;
8
- zRadius: number;
9
- };
1
+ interface Inverts {
2
+ invXRadiusSq?: number;
3
+ invYRadiusSq?: number;
4
+ invZRadiusSq?: number;
5
+ fast?: boolean;
6
+ }
10
7
 
11
8
  /**
12
9
  * Given an ellipse and a point, return true if the point is inside the ellipse
13
10
  * @param ellipse - The ellipse object to check against.
14
11
  * @param pointLPS - The point in LPS space to test.
12
+ * @param inverts - An object to cache the inverted radius squared values, if you
13
+ * are testing multiple points against the same ellipse then it is recommended to
14
+ * pass in the same object to cache the values. However, there is a simpler way
15
+ * to do this by passing in the fast flag as true, then on the first iteration
16
+ * the values will be cached and on subsequent iterations the cached values will
17
+ * be used.
18
+ *
15
19
  * @returns A boolean value.
16
20
  */
17
21
  export default function pointInEllipse(
18
- ellipse: Ellipse,
19
- pointLPS: vec3
20
- ): boolean {
21
- const { center: circleCenterWorld, xRadius, yRadius, zRadius } = ellipse;
22
- const [x, y, z] = pointLPS;
23
- const [x0, y0, z0] = circleCenterWorld;
22
+ ellipse,
23
+ pointLPS,
24
+ inverts: Inverts = {}
25
+ ) {
26
+ const { center, xRadius, yRadius, zRadius } = ellipse;
24
27
 
25
- let inside = 0;
26
- if (xRadius !== 0) {
27
- inside += ((x - x0) * (x - x0)) / (xRadius * xRadius);
28
+ // This will run only once since we are caching the values in the same
29
+ // object that is passed in.
30
+ if (
31
+ inverts.invXRadiusSq === undefined ||
32
+ inverts.invYRadiusSq === undefined ||
33
+ inverts.invZRadiusSq === undefined
34
+ ) {
35
+ inverts.invXRadiusSq = xRadius !== 0 ? 1 / xRadius ** 2 : 0;
36
+ inverts.invYRadiusSq = yRadius !== 0 ? 1 / yRadius ** 2 : 0;
37
+ inverts.invZRadiusSq = zRadius !== 0 ? 1 / zRadius ** 2 : 0;
28
38
  }
29
39
 
30
- if (yRadius !== 0) {
31
- inside += ((y - y0) * (y - y0)) / (yRadius * yRadius);
40
+ let inside = 0;
41
+
42
+ // Calculate the sum of normalized squared distances
43
+ const dx = pointLPS[0] - center[0];
44
+ inside += dx * dx * inverts.invXRadiusSq;
45
+ if (inside > 1) {
46
+ return false;
32
47
  }
33
48
 
34
- if (zRadius !== 0) {
35
- inside += ((z - z0) * (z - z0)) / (zRadius * zRadius);
49
+ const dy = pointLPS[1] - center[1];
50
+ inside += dy * dy * inverts.invYRadiusSq;
51
+ if (inside > 1) {
52
+ return false;
36
53
  }
37
54
 
55
+ const dz = pointLPS[2] - center[2];
56
+ inside += dz * dz * inverts.invZRadiusSq;
57
+
58
+ // Check if the point is inside the ellipse
38
59
  return inside <= 1;
39
60
  }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const SynchronizerManager_1 = require("../../store/SynchronizerManager");
7
- const core_1 = require("@cornerstonejs/core");
8
- const stackImageSyncCallback_1 = __importDefault(require("../callbacks/stackImageSyncCallback"));
9
- const { STACK_NEW_IMAGE } = core_1.Enums.Events;
10
- function createStackImageSynchronizer(synchronizerName) {
11
- const stackImageSynchronizer = (0, SynchronizerManager_1.createSynchronizer)(synchronizerName, STACK_NEW_IMAGE, stackImageSyncCallback_1.default);
12
- return stackImageSynchronizer;
13
- }
14
- exports.default = createStackImageSynchronizer;
15
- //# sourceMappingURL=createStackImageSynchronizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createStackImageSynchronizer.js","sourceRoot":"","sources":["../../../../src/synchronizers/synchronizers/createStackImageSynchronizer.ts"],"names":[],"mappings":";;;;;AAAA,yEAAqE;AACrE,8CAA4C;AAC5C,iGAAyE;AAGzE,MAAM,EAAE,eAAe,EAAE,GAAG,YAAK,CAAC,MAAM,CAAC;AASzC,SAAwB,4BAA4B,CAClD,gBAAwB;IAExB,MAAM,sBAAsB,GAAG,IAAA,wCAAkB,EAC/C,gBAAgB,EAChB,eAAe,EACf,gCAAsB,CACvB,CAAC;IAEF,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAVD,+CAUC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stackImageSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { createSynchronizer } from '../../store/SynchronizerManager';
2
- import { Enums } from '@cornerstonejs/core';
3
- import stackImageSyncCallback from '../callbacks/stackImageSyncCallback';
4
- const { STACK_NEW_IMAGE } = Enums.Events;
5
- export default function createStackImageSynchronizer(synchronizerName) {
6
- const stackImageSynchronizer = createSynchronizer(synchronizerName, STACK_NEW_IMAGE, stackImageSyncCallback);
7
- return stackImageSynchronizer;
8
- }
9
- //# sourceMappingURL=createStackImageSynchronizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createStackImageSynchronizer.js","sourceRoot":"","sources":["../../../../src/synchronizers/synchronizers/createStackImageSynchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AAGzE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;AASzC,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,gBAAwB;IAExB,MAAM,sBAAsB,GAAG,kBAAkB,CAC/C,gBAAgB,EAChB,eAAe,EACf,sBAAsB,CACvB,CAAC;IAEF,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stackImageSyncCallback.d.ts","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/stackImageSyncCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,EAGN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgC3C,wBAA8B,sBAAsB,CAClD,oBAAoB,EAAE,YAAY,EAClC,cAAc,EAAE,KAAK,CAAC,WAAW,EACjC,cAAc,EAAE,KAAK,CAAC,WAAW,GAChC,OAAO,CAAC,IAAI,CAAC,CAmFf"}
@@ -1,3 +0,0 @@
1
- import Synchronizer from '../../store/SynchronizerManager/Synchronizer';
2
- export default function createStackImageSynchronizer(synchronizerName: string): Synchronizer;
3
- //# sourceMappingURL=createStackImageSynchronizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createStackImageSynchronizer.d.ts","sourceRoot":"","sources":["../../../../src/synchronizers/synchronizers/createStackImageSynchronizer.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,8CAA8C,CAAC;AAWxE,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,gBAAgB,EAAE,MAAM,GACvB,YAAY,CAQd"}