@itwin/core-geometry 4.2.0-dev.3 → 4.2.0-dev.30

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 (336) hide show
  1. package/CHANGELOG.md +59 -1
  2. package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts +4 -3
  3. package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
  4. package/lib/cjs/clipping/AlternatingConvexClipTree.js +1 -1
  5. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  6. package/lib/cjs/clipping/BooleanClipNode.d.ts +4 -3
  7. package/lib/cjs/clipping/BooleanClipNode.d.ts.map +1 -1
  8. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  9. package/lib/cjs/clipping/ClipPlane.d.ts +12 -8
  10. package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
  11. package/lib/cjs/clipping/ClipPlane.js +5 -3
  12. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  13. package/lib/cjs/clipping/ClipUtils.d.ts +20 -8
  14. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  15. package/lib/cjs/clipping/ClipUtils.js +77 -2
  16. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  17. package/lib/cjs/clipping/ClipVector.d.ts +6 -5
  18. package/lib/cjs/clipping/ClipVector.d.ts.map +1 -1
  19. package/lib/cjs/clipping/ClipVector.js +1 -1
  20. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  21. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +6 -4
  22. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  23. package/lib/cjs/clipping/ConvexClipPlaneSet.js +3 -2
  24. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  25. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +4 -3
  26. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  27. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -2
  28. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  29. package/lib/cjs/core-geometry.d.ts +1 -3
  30. package/lib/cjs/core-geometry.d.ts.map +1 -1
  31. package/lib/cjs/core-geometry.js +1 -3
  32. package/lib/cjs/core-geometry.js.map +1 -1
  33. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  34. package/lib/cjs/curve/Arc3d.js +4 -4
  35. package/lib/cjs/curve/Arc3d.js.map +1 -1
  36. package/lib/cjs/curve/CoordinateXYZ.d.ts +15 -15
  37. package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -1
  38. package/lib/cjs/curve/CoordinateXYZ.js +15 -15
  39. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  40. package/lib/cjs/curve/CurveCollection.d.ts +4 -17
  41. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  42. package/lib/cjs/curve/CurveCollection.js +3 -22
  43. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  44. package/lib/cjs/curve/CurveCurve.d.ts +41 -26
  45. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  46. package/lib/cjs/curve/CurveCurve.js +73 -40
  47. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  48. package/lib/cjs/curve/CurveFactory.d.ts +1 -1
  49. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  50. package/lib/cjs/curve/CurveLocationDetail.d.ts +12 -1
  51. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  52. package/lib/cjs/curve/CurveLocationDetail.js +13 -2
  53. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  54. package/lib/cjs/curve/CurveOps.d.ts +1 -1
  55. package/lib/cjs/curve/CurveOps.js.map +1 -1
  56. package/lib/cjs/curve/CurveProcessor.d.ts +1 -1
  57. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  58. package/lib/cjs/curve/CurveTypes.d.ts +19 -0
  59. package/lib/cjs/curve/CurveTypes.d.ts.map +1 -0
  60. package/lib/cjs/curve/{CurveChain.js → CurveTypes.js} +1 -1
  61. package/lib/cjs/curve/CurveTypes.js.map +1 -0
  62. package/lib/cjs/curve/CurveWireMomentsXYZ.d.ts +1 -1
  63. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  64. package/lib/cjs/curve/ParityRegion.d.ts +1 -1
  65. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  66. package/lib/cjs/curve/Path.d.ts +1 -1
  67. package/lib/cjs/curve/Path.d.ts.map +1 -1
  68. package/lib/cjs/curve/Path.js +1 -1
  69. package/lib/cjs/curve/Path.js.map +1 -1
  70. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts +3 -2
  71. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  72. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +2 -2
  73. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  74. package/lib/cjs/curve/Query/CurveSplitContext.d.ts +1 -1
  75. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  76. package/lib/cjs/curve/Query/CylindricalRange.d.ts +1 -1
  77. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  78. package/lib/cjs/curve/Query/InOutTests.d.ts +1 -1
  79. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  80. package/lib/cjs/curve/Query/StrokeCountChain.d.ts +1 -1
  81. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  82. package/lib/cjs/curve/RegionOps.d.ts +16 -2
  83. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  84. package/lib/cjs/curve/RegionOps.js +18 -1
  85. package/lib/cjs/curve/RegionOps.js.map +1 -1
  86. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +1 -1
  87. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  88. package/lib/cjs/curve/UnionRegion.d.ts +1 -1
  89. package/lib/cjs/curve/UnionRegion.js +1 -1
  90. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  91. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +225 -0
  92. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -0
  93. package/lib/cjs/curve/{CurveCurveCloseApproachXY.js → internalContexts/CurveCurveCloseApproachXY.js} +249 -189
  94. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -0
  95. package/lib/{esm/curve → cjs/curve/internalContexts}/CurveCurveIntersectXY.d.ts +14 -27
  96. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -0
  97. package/lib/cjs/curve/{CurveCurveIntersectXY.js → internalContexts/CurveCurveIntersectXY.js} +31 -42
  98. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -0
  99. package/lib/cjs/curve/{CurveCurveIntersectXYZ.d.ts → internalContexts/CurveCurveIntersectXYZ.d.ts} +11 -12
  100. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -0
  101. package/lib/cjs/curve/{CurveCurveIntersectXYZ.js → internalContexts/CurveCurveIntersectXYZ.js} +12 -14
  102. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -0
  103. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +1 -1
  104. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  105. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +1 -0
  106. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  107. package/lib/cjs/geometry3d/BarycentricTriangle.js +1 -0
  108. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  109. package/lib/cjs/geometry3d/FrameBuilder.d.ts +57 -36
  110. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  111. package/lib/cjs/geometry3d/FrameBuilder.js +99 -74
  112. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  113. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +0 -8
  114. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  115. package/lib/cjs/geometry3d/GrowableXYZArray.js +0 -16
  116. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  117. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +4 -4
  118. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  119. package/lib/cjs/geometry3d/IndexedXYZCollection.js +12 -0
  120. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  121. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  122. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  123. package/lib/cjs/geometry3d/Point3dArrayCarrier.d.ts.map +1 -1
  124. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  125. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +0 -1
  126. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  127. package/lib/cjs/geometry3d/Point3dVector3d.js +0 -1
  128. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  129. package/lib/cjs/geometry3d/PolygonOps.d.ts +1 -1
  130. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  131. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  132. package/lib/cjs/geometry3d/Ray3d.d.ts +3 -1
  133. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  134. package/lib/cjs/geometry3d/Ray3d.js +4 -3
  135. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  136. package/lib/cjs/geometry3d/ReusableObjectCache.d.ts +2 -1
  137. package/lib/cjs/geometry3d/ReusableObjectCache.d.ts.map +1 -1
  138. package/lib/cjs/geometry3d/ReusableObjectCache.js +1 -1
  139. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  140. package/lib/cjs/geometry3d/SortablePolygon.d.ts +1 -1
  141. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  142. package/lib/cjs/geometry3d/YawPitchRollAngles.js +1 -1
  143. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  144. package/lib/cjs/numerics/Polynomials.d.ts +2 -2
  145. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  146. package/lib/cjs/numerics/Polynomials.js +2 -2
  147. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  148. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +1 -1
  149. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  150. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  151. package/lib/cjs/solid/LinearSweep.d.ts +1 -1
  152. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  153. package/lib/cjs/solid/RotationalSweep.d.ts +1 -1
  154. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  155. package/lib/cjs/solid/RuledSweep.d.ts +1 -1
  156. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  157. package/lib/cjs/solid/SweepContour.d.ts +1 -1
  158. package/lib/cjs/solid/SweepContour.js.map +1 -1
  159. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts +4 -3
  160. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
  161. package/lib/esm/clipping/AlternatingConvexClipTree.js +1 -1
  162. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  163. package/lib/esm/clipping/BooleanClipNode.d.ts +4 -3
  164. package/lib/esm/clipping/BooleanClipNode.d.ts.map +1 -1
  165. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  166. package/lib/esm/clipping/ClipPlane.d.ts +12 -8
  167. package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
  168. package/lib/esm/clipping/ClipPlane.js +5 -3
  169. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  170. package/lib/esm/clipping/ClipUtils.d.ts +20 -8
  171. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  172. package/lib/esm/clipping/ClipUtils.js +77 -2
  173. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  174. package/lib/esm/clipping/ClipVector.d.ts +6 -5
  175. package/lib/esm/clipping/ClipVector.d.ts.map +1 -1
  176. package/lib/esm/clipping/ClipVector.js +1 -1
  177. package/lib/esm/clipping/ClipVector.js.map +1 -1
  178. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +6 -4
  179. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  180. package/lib/esm/clipping/ConvexClipPlaneSet.js +3 -2
  181. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  182. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +4 -3
  183. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  184. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -2
  185. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  186. package/lib/esm/core-geometry.d.ts +1 -3
  187. package/lib/esm/core-geometry.d.ts.map +1 -1
  188. package/lib/esm/core-geometry.js +1 -3
  189. package/lib/esm/core-geometry.js.map +1 -1
  190. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  191. package/lib/esm/curve/Arc3d.js +4 -4
  192. package/lib/esm/curve/Arc3d.js.map +1 -1
  193. package/lib/esm/curve/CoordinateXYZ.d.ts +15 -15
  194. package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -1
  195. package/lib/esm/curve/CoordinateXYZ.js +15 -15
  196. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  197. package/lib/esm/curve/CurveCollection.d.ts +4 -17
  198. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  199. package/lib/esm/curve/CurveCollection.js +2 -20
  200. package/lib/esm/curve/CurveCollection.js.map +1 -1
  201. package/lib/esm/curve/CurveCurve.d.ts +41 -26
  202. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  203. package/lib/esm/curve/CurveCurve.js +73 -40
  204. package/lib/esm/curve/CurveCurve.js.map +1 -1
  205. package/lib/esm/curve/CurveFactory.d.ts +1 -1
  206. package/lib/esm/curve/CurveFactory.js.map +1 -1
  207. package/lib/esm/curve/CurveLocationDetail.d.ts +12 -1
  208. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  209. package/lib/esm/curve/CurveLocationDetail.js +11 -1
  210. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  211. package/lib/esm/curve/CurveOps.d.ts +1 -1
  212. package/lib/esm/curve/CurveOps.js.map +1 -1
  213. package/lib/esm/curve/CurveProcessor.d.ts +1 -1
  214. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  215. package/lib/esm/curve/CurveTypes.d.ts +19 -0
  216. package/lib/esm/curve/CurveTypes.d.ts.map +1 -0
  217. package/lib/esm/curve/{CurveChain.js → CurveTypes.js} +1 -1
  218. package/lib/esm/curve/CurveTypes.js.map +1 -0
  219. package/lib/esm/curve/CurveWireMomentsXYZ.d.ts +1 -1
  220. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  221. package/lib/esm/curve/ParityRegion.d.ts +1 -1
  222. package/lib/esm/curve/ParityRegion.js.map +1 -1
  223. package/lib/esm/curve/Path.d.ts +1 -1
  224. package/lib/esm/curve/Path.d.ts.map +1 -1
  225. package/lib/esm/curve/Path.js +1 -1
  226. package/lib/esm/curve/Path.js.map +1 -1
  227. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts +3 -2
  228. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  229. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -1
  230. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  231. package/lib/esm/curve/Query/CurveSplitContext.d.ts +1 -1
  232. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  233. package/lib/esm/curve/Query/CylindricalRange.d.ts +1 -1
  234. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  235. package/lib/esm/curve/Query/InOutTests.d.ts +1 -1
  236. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  237. package/lib/esm/curve/Query/StrokeCountChain.d.ts +1 -1
  238. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  239. package/lib/esm/curve/RegionOps.d.ts +16 -2
  240. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  241. package/lib/esm/curve/RegionOps.js +16 -0
  242. package/lib/esm/curve/RegionOps.js.map +1 -1
  243. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +1 -1
  244. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  245. package/lib/esm/curve/UnionRegion.d.ts +1 -1
  246. package/lib/esm/curve/UnionRegion.js +1 -1
  247. package/lib/esm/curve/UnionRegion.js.map +1 -1
  248. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +225 -0
  249. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -0
  250. package/lib/esm/curve/{CurveCurveCloseApproachXY.js → internalContexts/CurveCurveCloseApproachXY.js} +249 -189
  251. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -0
  252. package/lib/{cjs/curve → esm/curve/internalContexts}/CurveCurveIntersectXY.d.ts +14 -27
  253. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -0
  254. package/lib/esm/curve/{CurveCurveIntersectXY.js → internalContexts/CurveCurveIntersectXY.js} +30 -40
  255. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -0
  256. package/lib/esm/curve/{CurveCurveIntersectXYZ.d.ts → internalContexts/CurveCurveIntersectXYZ.d.ts} +11 -12
  257. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -0
  258. package/lib/esm/curve/{CurveCurveIntersectXYZ.js → internalContexts/CurveCurveIntersectXYZ.js} +11 -13
  259. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -0
  260. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +1 -1
  261. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  262. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +1 -0
  263. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  264. package/lib/esm/geometry3d/BarycentricTriangle.js +1 -0
  265. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  266. package/lib/esm/geometry3d/FrameBuilder.d.ts +57 -36
  267. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  268. package/lib/esm/geometry3d/FrameBuilder.js +99 -74
  269. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  270. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +0 -8
  271. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  272. package/lib/esm/geometry3d/GrowableXYZArray.js +0 -16
  273. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  274. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +4 -4
  275. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  276. package/lib/esm/geometry3d/IndexedXYZCollection.js +12 -0
  277. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  278. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  279. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  280. package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts.map +1 -1
  281. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  282. package/lib/esm/geometry3d/Point3dVector3d.d.ts +0 -1
  283. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  284. package/lib/esm/geometry3d/Point3dVector3d.js +0 -1
  285. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  286. package/lib/esm/geometry3d/PolygonOps.d.ts +1 -1
  287. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  288. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  289. package/lib/esm/geometry3d/Ray3d.d.ts +3 -1
  290. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  291. package/lib/esm/geometry3d/Ray3d.js +4 -3
  292. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  293. package/lib/esm/geometry3d/ReusableObjectCache.d.ts +2 -1
  294. package/lib/esm/geometry3d/ReusableObjectCache.d.ts.map +1 -1
  295. package/lib/esm/geometry3d/ReusableObjectCache.js +1 -1
  296. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  297. package/lib/esm/geometry3d/SortablePolygon.d.ts +1 -1
  298. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  299. package/lib/esm/geometry3d/YawPitchRollAngles.js +1 -1
  300. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  301. package/lib/esm/numerics/Polynomials.d.ts +2 -2
  302. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  303. package/lib/esm/numerics/Polynomials.js +2 -2
  304. package/lib/esm/numerics/Polynomials.js.map +1 -1
  305. package/lib/esm/polyface/PolyfaceBuilder.d.ts +1 -1
  306. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  307. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  308. package/lib/esm/solid/LinearSweep.d.ts +1 -1
  309. package/lib/esm/solid/LinearSweep.js.map +1 -1
  310. package/lib/esm/solid/RotationalSweep.d.ts +1 -1
  311. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  312. package/lib/esm/solid/RuledSweep.d.ts +1 -1
  313. package/lib/esm/solid/RuledSweep.js.map +1 -1
  314. package/lib/esm/solid/SweepContour.d.ts +1 -1
  315. package/lib/esm/solid/SweepContour.js.map +1 -1
  316. package/package.json +3 -3
  317. package/lib/cjs/curve/CurveChain.d.ts +0 -17
  318. package/lib/cjs/curve/CurveChain.d.ts.map +0 -1
  319. package/lib/cjs/curve/CurveChain.js.map +0 -1
  320. package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts +0 -164
  321. package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +0 -1
  322. package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +0 -1
  323. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +0 -1
  324. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +0 -1
  325. package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +0 -1
  326. package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +0 -1
  327. package/lib/esm/curve/CurveChain.d.ts +0 -17
  328. package/lib/esm/curve/CurveChain.d.ts.map +0 -1
  329. package/lib/esm/curve/CurveChain.js.map +0 -1
  330. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +0 -164
  331. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +0 -1
  332. package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +0 -1
  333. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +0 -1
  334. package/lib/esm/curve/CurveCurveIntersectXY.js.map +0 -1
  335. package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +0 -1
  336. package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UnionRegion.js","sourceRoot":"","sources":["../../../src/curve/UnionRegion.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAO/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IAG9C,yCAAyC;IAClC,mBAAmB,CAAC,KAAoB;QAC7C,OAAO,KAAK,YAAY,WAAW,CAAC;IACtC,CAAC;IAGD,kCAAkC;IAClC,IAAoB,QAAQ;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,iDAAiD;IACjD;QACE,KAAK,EAAE,CAAC;QAdV,wCAAwC;QACxB,wBAAmB,GAAG,aAAa,CAAC;QAclD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,wDAAwD;IACjD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAgC;QACtD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACxB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,+EAA+E;IACxE,eAAe;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,2FAA2F;IACpF,wBAAwB,CAAC,SAAkC,EAAE,gBAAwB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IACD,uDAAuD;IAChD,YAAY,CAAC,OAAuB;QACzC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC;QACV,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,YAAY;gBACd,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACrC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,qCAAqC;IAC9B,cAAc;QACnB,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IACD;;;OAGG;IACI,WAAW,CAAC,KAAe;QAChC,IAAI,KAAK,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,IAAI,EAAE;YACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,0CAA0C;IACnC,QAAQ,CAAC,CAAS;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,8EAA8E;IACvE,yBAAyB,CAAC,OAAwB;QACvD,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { AnyCurve } from \"./CurveChain\";\r\nimport { CurveCollection } from \"./CurveCollection\";\r\nimport { RecursiveCurveProcessor } from \"./CurveProcessor\";\r\nimport { GeometryQuery } from \"./GeometryQuery\";\r\nimport { Loop } from \"./Loop\";\r\nimport { ParityRegion } from \"./ParityRegion\";\r\nimport { StrokeOptions } from \"./StrokeOptions\";\r\n\r\n/**\r\n * * A `UnionRegion` is a collection of other planar region types -- `Loop` and `ParityRegion`.\r\n * * The composite is the union of the contained regions.\r\n * * A point is \"in\" the composite if it is \"in\" one or more of the contained regions.\r\n * @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.\r\n * @public\r\n */\r\nexport class UnionRegion extends CurveCollection {\r\n /** String name for schema properties */\r\n public readonly curveCollectionType = \"unionRegion\";\r\n /** Test if `other` is a `UnionRegion` */\r\n public isSameGeometryClass(other: GeometryQuery): boolean {\r\n return other instanceof UnionRegion;\r\n }\r\n /** Collection of Loop and ParityRegion children. */\r\n protected _children: Array<ParityRegion | Loop>;\r\n /** Return the array of regions */\r\n public override get children(): Array<ParityRegion | Loop> {\r\n return this._children;\r\n }\r\n /** Constructor -- initialize with no children */\r\n public constructor() {\r\n super();\r\n this._children = [];\r\n }\r\n /** Create a `UnionRegion` with given region children */\r\n public static create(...data: Array<ParityRegion | Loop>): UnionRegion {\r\n const result = new UnionRegion();\r\n for (const child of data) {\r\n result.tryAddChild(child);\r\n }\r\n return result;\r\n }\r\n /** Return the boundary type (5) of a corresponding MicroStation CurveVector */\r\n public dgnBoundaryType(): number {\r\n return 5;\r\n }\r\n /** Dispatch to more strongly typed `processor.announceUnionRegion(this, indexInParent)` */\r\n public announceToCurveProcessor(processor: RecursiveCurveProcessor, indexInParent: number = -1): void {\r\n return processor.announceUnionRegion(this, indexInParent);\r\n }\r\n /** Return structural clone with stroked primitives. */\r\n public cloneStroked(options?: StrokeOptions): UnionRegion {\r\n const clone = new UnionRegion();\r\n let child;\r\n for (child of this._children) {\r\n const childStrokes = child.cloneStroked(options);\r\n if (childStrokes)\r\n clone.children.push(childStrokes);\r\n }\r\n return clone;\r\n }\r\n /** Return new empty `UnionRegion` */\r\n public cloneEmptyPeer(): UnionRegion {\r\n return new UnionRegion();\r\n }\r\n /**\r\n * Try to add a child.\r\n * * Returns false if the `AnyCurve` child is not a region type.\r\n */\r\n public tryAddChild(child: AnyCurve): boolean {\r\n if (child && child instanceof ParityRegion || child instanceof Loop) {\r\n this._children.push(child);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Return a child identified by index. */\r\n public getChild(i: number): Loop | ParityRegion | undefined {\r\n if (i < this._children.length)\r\n return this._children[i];\r\n return undefined;\r\n }\r\n /** Second step of double dispatch: call `handler.handleUnionRegion(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleUnionRegion(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UnionRegion.js","sourceRoot":"","sources":["../../../src/curve/UnionRegion.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAO/F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IAG9C,yCAAyC;IAClC,mBAAmB,CAAC,KAAoB;QAC7C,OAAO,KAAK,YAAY,WAAW,CAAC;IACtC,CAAC;IAGD,kCAAkC;IAClC,IAAoB,QAAQ;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,iDAAiD;IACjD;QACE,KAAK,EAAE,CAAC;QAdV,wCAAwC;QACxB,wBAAmB,GAAG,aAAa,CAAC;QAclD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,wDAAwD;IACjD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAgC;QACtD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACxB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,+EAA+E;IACxE,eAAe;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,2FAA2F;IACpF,wBAAwB,CAAC,SAAkC,EAAE,gBAAwB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IACD,uDAAuD;IAChD,YAAY,CAAC,OAAuB;QACzC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC;QACV,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,YAAY;gBACd,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACrC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,qCAAqC;IAC9B,cAAc;QACnB,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IACD;;;OAGG;IACI,WAAW,CAAC,KAAe;QAChC,IAAI,KAAK,IAAI,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE;YACrE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,0CAA0C;IACnC,QAAQ,CAAC,CAAS;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,8EAA8E;IACvE,yBAAyB,CAAC,OAAwB;QACvD,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { AnyCurve } from \"./CurveTypes\";\r\nimport { CurveCollection } from \"./CurveCollection\";\r\nimport { RecursiveCurveProcessor } from \"./CurveProcessor\";\r\nimport { GeometryQuery } from \"./GeometryQuery\";\r\nimport { Loop } from \"./Loop\";\r\nimport { ParityRegion } from \"./ParityRegion\";\r\nimport { StrokeOptions } from \"./StrokeOptions\";\r\n\r\n/**\r\n * * A `UnionRegion` is a collection of other planar region types -- `Loop` and `ParityRegion`.\r\n * * The composite is the union of the contained regions.\r\n * * A point is \"in\" the composite if it is \"in\" one or more of the contained regions.\r\n * @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article.\r\n * @public\r\n */\r\nexport class UnionRegion extends CurveCollection {\r\n /** String name for schema properties */\r\n public readonly curveCollectionType = \"unionRegion\";\r\n /** Test if `other` is a `UnionRegion` */\r\n public isSameGeometryClass(other: GeometryQuery): boolean {\r\n return other instanceof UnionRegion;\r\n }\r\n /** Collection of Loop and ParityRegion children. */\r\n protected _children: Array<ParityRegion | Loop>;\r\n /** Return the array of regions */\r\n public override get children(): Array<ParityRegion | Loop> {\r\n return this._children;\r\n }\r\n /** Constructor -- initialize with no children */\r\n public constructor() {\r\n super();\r\n this._children = [];\r\n }\r\n /** Create a `UnionRegion` with given region children */\r\n public static create(...data: Array<ParityRegion | Loop>): UnionRegion {\r\n const result = new UnionRegion();\r\n for (const child of data) {\r\n result.tryAddChild(child);\r\n }\r\n return result;\r\n }\r\n /** Return the boundary type (5) of a corresponding MicroStation CurveVector */\r\n public dgnBoundaryType(): number {\r\n return 5;\r\n }\r\n /** Dispatch to more strongly typed `processor.announceUnionRegion(this, indexInParent)` */\r\n public announceToCurveProcessor(processor: RecursiveCurveProcessor, indexInParent: number = -1): void {\r\n return processor.announceUnionRegion(this, indexInParent);\r\n }\r\n /** Return structural clone with stroked primitives. */\r\n public cloneStroked(options?: StrokeOptions): UnionRegion {\r\n const clone = new UnionRegion();\r\n let child;\r\n for (child of this._children) {\r\n const childStrokes = child.cloneStroked(options);\r\n if (childStrokes)\r\n clone.children.push(childStrokes);\r\n }\r\n return clone;\r\n }\r\n /** Return new empty `UnionRegion` */\r\n public cloneEmptyPeer(): UnionRegion {\r\n return new UnionRegion();\r\n }\r\n /**\r\n * Try to add a child.\r\n * * Returns false if the `AnyCurve` child is not a region type.\r\n */\r\n public tryAddChild(child: AnyCurve): boolean {\r\n if (child && (child instanceof ParityRegion || child instanceof Loop)) {\r\n this._children.push(child);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Return a child identified by index. */\r\n public getChild(i: number): Loop | ParityRegion | undefined {\r\n if (i < this._children.length)\r\n return this._children[i];\r\n return undefined;\r\n }\r\n /** Second step of double dispatch: call `handler.handleUnionRegion(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleUnionRegion(this);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,225 @@
1
+ /** @packageDocumentation
2
+ * @module Curve
3
+ */
4
+ import { BSplineCurve3d } from "../../bspline/BSplineCurve";
5
+ import { BSplineCurve3dH } from "../../bspline/BSplineCurve3dH";
6
+ import { RecurseToCurvesGeometryHandler } from "../../geometry3d/GeometryHandler";
7
+ import { Arc3d } from "../Arc3d";
8
+ import { AnyCurve } from "../CurveTypes";
9
+ import { CurveLocationDetail, CurveLocationDetailPair } from "../CurveLocationDetail";
10
+ import { CurvePrimitive } from "../CurvePrimitive";
11
+ import { LineSegment3d } from "../LineSegment3d";
12
+ import { LineString3d } from "../LineString3d";
13
+ /**
14
+ * Handler class for XY close approach between _geometryB and another geometry.
15
+ * * Approach means the XY distance (z is ignored) between _geometryB and another geometry.
16
+ * * Closest approach is a measure of the proximity of one curve to another. It's the length of the shortest line
17
+ * segment perpendicular to both curves; if the curves intersect, the closest approach is zero. In the context of
18
+ * this class, z-coordinates are ignored, so the closest approach is as seen in the top view. If you have coplanar
19
+ * input curves and want to find closest approach in their plane, rotate them first into a plane parallel to the
20
+ * xy-plane, then afterward, rotate the results back as required.
21
+ * * Close approach can also be from a curve endpoint perpendicular to another curve or from a curve endpoint to
22
+ * another curve endpoint.
23
+ * * Instances are initialized and called from CurveCurve.
24
+ * * geometryB is saved for later reference.
25
+ * @internal
26
+ */
27
+ export declare class CurveCurveCloseApproachXY extends RecurseToCurvesGeometryHandler {
28
+ private _geometryB;
29
+ private _circularArcB;
30
+ private _circularRadiusB;
31
+ private setGeometryB;
32
+ /**
33
+ * Maximum XY distance (z is ignored). Approach larger than this is not interesting.
34
+ * This is caller defined and can be undefined.
35
+ */
36
+ private _maxDistanceToAccept;
37
+ /** Squared max distance. This is private, and is forced to at least small metric distance squared. */
38
+ private _maxDistanceSquared;
39
+ /**
40
+ * Start and end points of line segments that meet closest approach criteria, i.e., they are perpendicular to
41
+ * both curves and their length is smaller than _maxDistanceToAccept.
42
+ */
43
+ private _results;
44
+ private static _workPointAA0;
45
+ private static _workPointAA1;
46
+ private static _workPointBB0;
47
+ private static _workPointBB1;
48
+ private static _workPointB;
49
+ private reinitialize;
50
+ /**
51
+ * Constructor.
52
+ * @param geometryB second curve for intersection. Saved for reference by specific handler methods.
53
+ */
54
+ constructor(geometryB: AnyCurve | undefined);
55
+ /** Set the (possibly undefined) max XY distance (z is ignored) to accept. */
56
+ set maxDistanceToAccept(value: number | undefined);
57
+ /** Access the (possibly undefined) max XY distance (z is ignored) to accept. */
58
+ get maxDistanceToAccept(): number | undefined;
59
+ /** Ask if the maxDistanceToAccept value is defined and positive */
60
+ get isMaxDistanceSet(): boolean;
61
+ /** Reset the geometry and flags, leaving all other parts unchanged (and preserving accumulated intersections) */
62
+ resetGeometry(geometryB: AnyCurve): void;
63
+ /** returns true if `fraction` is in [0,1] within tolerance */
64
+ private acceptFraction;
65
+ /**
66
+ * Return the results structure for the intersection calculation, structured as an array of CurveLocationDetailPair.
67
+ * @param reinitialize if true, a new results structure is created for use by later calls.
68
+ */
69
+ grabPairedResults(reinitialize?: boolean): CurveLocationDetailPair[];
70
+ /** Returns `true` if `detail` has same curve and fraction. */
71
+ private sameCurveAndFraction;
72
+ /**
73
+ * If distance between pointA and pointB is less than maxDistance, record CurveLocationDetailPair which is
74
+ * the approach from pointA to pointB.
75
+ */
76
+ private testAndRecordPointPairApproach;
77
+ /**
78
+ * Create a close approach pair if XY distance is within maxDistance.
79
+ * @param localFractionA a fraction on first curve
80
+ * @param cpA the first curve
81
+ * @param fractionA0 start of the first curve
82
+ * @param fractionA1 end of the first curve
83
+ * @param localFractionB a fraction on second curve
84
+ * @param cpB the second curve
85
+ * @param fractionB0 start of the second curve
86
+ * @param fractionB1 end of the second curve
87
+ * @param reversed true to have order reversed in final structures
88
+ * @param intervalDetails optional CurveLocationDetailPair
89
+ */
90
+ private recordPointWithLocalFractions;
91
+ /**
92
+ * Capture a close approach pair that has point and local fraction but not curve.
93
+ * * Record the pair, each detail modified with global fraction and input curve.
94
+ * * Pair is neither modified nor recorded if it would be a duplicate of the last recorded pair.
95
+ * @param pair details computed with local fractions
96
+ * @param cpA curveA
97
+ * @param fractionA0 global start fraction on curveA
98
+ * @param fractionA1 global end fraction on curveA
99
+ * @param cpB curveB
100
+ * @param fractionB0 global start fraction on curveB
101
+ * @param fractionB1 global end fraction on curveB
102
+ * @param reversed whether to reverse the details in the pair
103
+ */
104
+ private capturePairWithLocalFractions;
105
+ /**
106
+ * Emit recordPoint for multiple pairs (on full curve) if within maxDistance.
107
+ * @param cpA first curve primitive (possibly different from curve in detailA, but fraction compatible)
108
+ * @param cpB second curve primitive (possibly different from curve in detailA, but fraction compatible)
109
+ * @param pairs array of pairs
110
+ * @param reversed true to have order reversed in final structures.
111
+ */
112
+ recordPairs(cpA: CurvePrimitive, cpB: CurvePrimitive, pairs: CurveLocationDetailPair[] | undefined, reversed: boolean): void;
113
+ /**
114
+ * Record fully assembled (but possibly reversed) detail pair.
115
+ * @param detailA first detail
116
+ * @param detailB second detail
117
+ * @param reversed true to have order reversed in final structures.
118
+ */
119
+ captureDetailPair(detailA: CurveLocationDetail | undefined, detailB: CurveLocationDetail | undefined, reversed: boolean): void;
120
+ private static updatePointToSegmentDistance;
121
+ /**
122
+ * Return fractions of close approach within maxDistance between two line segments (a0,a1) and (b0,b1).
123
+ * * Math details can be found at docs/learning/geometry/CurveCurve.md
124
+ * @param a0 start point of line a
125
+ * @param a1 end point of line a
126
+ * @param b0 start point of line b
127
+ * @param b1 end point of line b
128
+ * @param maxDistanceSquared maximum distance squared (assumed to be positive)
129
+ * @returns the fractional (not xy) coordinates in result.x and result.y. result.x is fraction on line a.
130
+ * result.y is fraction on line b.
131
+ */
132
+ private static segmentSegmentBoundedApproach;
133
+ /**
134
+ * Check different combination of fractions on curveA and curveB. If distance between points at 2 fractions
135
+ * is less than maxDistance, record CurveLocationDetailPair which is the approach between the 2 points.
136
+ * Optionally, record close approaches of one curve's points if they fall between the other curve's points.
137
+ * @param cpA curveA
138
+ * @param fA0 fraction0 on curveA
139
+ * @param fA1 fraction1 on curveA
140
+ * @param testProjectionOnA whether to record projections of the given curveB points onto curveA
141
+ * @param cpB curveB
142
+ * @param fB0 fraction0 on curveB
143
+ * @param fB1 fraction0 on curveB
144
+ * @param testProjectionOnB whether to record projections of the given curveA points onto curveB
145
+ * @param reversed true to have order reversed in final structures.
146
+ */
147
+ private testAndRecordFractionalPairApproach;
148
+ /** Find the closest approach between pointA and cpB. Add the approach if it's within fB0 and fB1. */
149
+ private testAndRecordProjection;
150
+ /**
151
+ * Compute intersection of two line segments.
152
+ * Filter by extension rules.
153
+ * Record with fraction mapping.
154
+ * * The fraction mappings allow portions of a linestring to be passed here.
155
+ */
156
+ private computeSegmentSegment3D;
157
+ /** Low level dispatch of segment with segment. */
158
+ private dispatchSegmentSegment;
159
+ /**
160
+ * Low level dispatch of segment with arc.
161
+ * Find close approaches within maxDistance between a line segments (pointA0, pointA1) and an arc.
162
+ * To consider:
163
+ * 1) intersection between arc and segment.
164
+ * 2) arc endpoints to segment endpoints or arc endpoints projection to the segment.
165
+ * 3) line parallel to arc tangent.
166
+ * @param cpA curve A (line segment or line string)
167
+ * @param pointA0 start point of the segment
168
+ * @param fractionA0 fraction of the start of the segment
169
+ * @param pointA1 end point of the segment
170
+ * @param fractionA1 fraction of the end of the segment
171
+ * @param arc the arc
172
+ * @param reversed true to have order reversed in final structures
173
+ */
174
+ private dispatchSegmentArc;
175
+ /** Low level dispatch of circular arc with circular arc. radiusA must be larger than or equal to radiusB. */
176
+ private dispatchCircularCircularOrdered;
177
+ /** Find the fractional point (if any) on the circular `arc` in the direction of `radialVector`. */
178
+ private resolveDirectionToArcXYFraction;
179
+ /** Low level dispatch of arc with arc. Only circular arcs are supported. */
180
+ private dispatchArcArc;
181
+ /** Low level dispatch of arc with (beziers of) a bspline curve */
182
+ private dispatchArcBsplineCurve3d;
183
+ /** Low level dispatch of (beziers of) a bspline curve with (beziers of) a bspline curve */
184
+ private dispatchBSplineCurve3dBSplineCurve3d;
185
+ /** Low level dispatch of linestring with (beziers of) a bspline curve */
186
+ dispatchLineStringBSplineCurve(lsA: LineString3d, curveB: BSplineCurve3d, reversed: boolean): any;
187
+ /** Low level dispatch of segment with (beziers of) a bspline curve */
188
+ dispatchSegmentBsplineCurve(segA: LineSegment3d, curveB: BSplineCurve3d, reversed: boolean): any;
189
+ /** Detail computation for segment approaching linestring. */
190
+ computeSegmentLineString(segA: LineSegment3d, lsB: LineString3d, reversed: boolean): void;
191
+ /** Detail computation for arc approaching linestring. */
192
+ computeArcLineString(arcA: Arc3d, lsB: LineString3d, reversed: boolean): any;
193
+ /** Low level dispatch of curve collection. */
194
+ private dispatchCurveCollection;
195
+ /** Double dispatch handler for strongly typed segment. */
196
+ handleLineSegment3d(segmentA: LineSegment3d): any;
197
+ /**
198
+ * Set bits for comparison to range xy
199
+ * * bit 0x01 => x smaller than range.low.x
200
+ * * bit 0x02 => x larger than range.high.x
201
+ * * bit 0x04 => y smaller than range.low.y
202
+ * * bit 0x08 => y larger than range.high.y
203
+ * * If we divide XY plane into 9 areas using the range, the function returns 0 for points
204
+ * inside the range. Below is other binary numbers returned by the function for all 9 areas:
205
+ * 1001 | 1000 | 1010
206
+ * ------------------
207
+ * 1 | 0 | 10
208
+ * ------------------
209
+ * 101 | 100 | 110
210
+ * @param xy point to test
211
+ * @param range range for comparison
212
+ */
213
+ private classifyBitsPointRangeXY;
214
+ /** Low level dispatch of line string with line string. */
215
+ private computeLineStringLineString;
216
+ /** Double dispatch handler for strongly typed linestring. */
217
+ handleLineString3d(lsA: LineString3d): any;
218
+ /** Double dispatch handler for strongly typed arc. */
219
+ handleArc3d(arc0: Arc3d): any;
220
+ /** Double dispatch handler for strongly typed bspline curve. */
221
+ handleBSplineCurve3d(curve: BSplineCurve3d): any;
222
+ /** Double dispatch handler for strongly typed homogeneous bspline curve .. */
223
+ handleBSplineCurve3dH(_curve: BSplineCurve3dH): any;
224
+ }
225
+ //# sourceMappingURL=CurveCurveCloseApproachXY.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CurveCurveCloseApproachXY.d.ts","sourceRoot":"","sources":["../../../../src/curve/internalContexts/CurveCurveCloseApproachXY.ts"],"names":[],"mappings":"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"}