@itwin/core-geometry 4.1.0-dev.67 → 4.1.0-dev.69

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 (367) hide show
  1. package/lib/cjs/Geometry.js.map +1 -1
  2. package/lib/cjs/bspline/BSplineCurve.d.ts +1 -1
  3. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  4. package/lib/cjs/bspline/BSplineCurve.js +2 -2
  5. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BSplineSurface.js +1 -1
  8. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  9. package/lib/cjs/bspline/BezierCurveBase.d.ts +1 -1
  10. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  11. package/lib/cjs/bspline/BezierCurveBase.js +2 -2
  12. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  13. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  14. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  15. package/lib/cjs/core-geometry.d.ts +3 -2
  16. package/lib/cjs/core-geometry.d.ts.map +1 -1
  17. package/lib/cjs/core-geometry.js +4 -5
  18. package/lib/cjs/core-geometry.js.map +1 -1
  19. package/lib/cjs/curve/Arc3d.d.ts +1 -1
  20. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  21. package/lib/cjs/curve/Arc3d.js +2 -2
  22. package/lib/cjs/curve/Arc3d.js.map +1 -1
  23. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +1 -1
  24. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  25. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +2 -2
  26. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  27. package/lib/cjs/curve/CurveCollection.d.ts +2 -2
  28. package/lib/cjs/curve/CurveCollection.js +2 -2
  29. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  30. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  31. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  32. package/lib/cjs/curve/CurveOps.d.ts +77 -0
  33. package/lib/cjs/curve/CurveOps.d.ts.map +1 -0
  34. package/lib/cjs/curve/CurveOps.js +160 -0
  35. package/lib/cjs/curve/CurveOps.js.map +1 -0
  36. package/lib/cjs/curve/CurvePrimitive.d.ts +13 -13
  37. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  38. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  39. package/lib/cjs/curve/GeometryQuery.d.ts +2 -2
  40. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  41. package/lib/cjs/curve/GeometryQuery.js +2 -2
  42. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  43. package/lib/cjs/curve/LineSegment3d.d.ts +1 -1
  44. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  45. package/lib/cjs/curve/LineSegment3d.js +2 -2
  46. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  47. package/lib/cjs/curve/LineString3d.d.ts +1 -1
  48. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  49. package/lib/cjs/curve/LineString3d.js +2 -2
  50. package/lib/cjs/curve/LineString3d.js.map +1 -1
  51. package/lib/cjs/curve/Loop.js.map +1 -1
  52. package/lib/cjs/curve/OffsetOptions.d.ts +97 -0
  53. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -0
  54. package/lib/cjs/curve/OffsetOptions.js +166 -0
  55. package/lib/cjs/curve/OffsetOptions.js.map +1 -0
  56. package/lib/cjs/curve/ProxyCurve.d.ts +1 -1
  57. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  58. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  59. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  60. package/lib/cjs/curve/RegionOps.d.ts +11 -13
  61. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  62. package/lib/cjs/curve/RegionOps.js +17 -17
  63. package/lib/cjs/curve/RegionOps.js.map +1 -1
  64. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +2 -2
  65. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  66. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  67. package/lib/cjs/curve/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
  68. package/lib/cjs/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
  69. package/lib/cjs/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
  70. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -0
  71. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +59 -74
  72. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  73. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +130 -223
  74. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +7 -101
  77. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  78. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +13 -168
  79. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  80. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +1 -1
  81. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  82. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +1 -1
  83. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  84. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +2 -2
  85. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  86. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +1 -1
  87. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  88. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  89. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  90. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  91. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  92. package/lib/cjs/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
  93. package/lib/cjs/geometry3d/GrowableBlockedArray.js +1 -1
  94. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  95. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  96. package/lib/cjs/geometry3d/GrowableFloat64Array.js +1 -1
  97. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  98. package/lib/cjs/geometry3d/Matrix3d.js +5 -5
  99. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  100. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  101. package/lib/cjs/geometry3d/Plane3d.d.ts +41 -32
  102. package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
  103. package/lib/cjs/geometry3d/Plane3d.js +11 -8
  104. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  105. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
  106. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  107. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
  108. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  109. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  110. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +2 -0
  111. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  112. package/lib/cjs/geometry3d/Point2dVector2d.d.ts +8 -9
  113. package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
  114. package/lib/cjs/geometry3d/Point2dVector2d.js +9 -10
  115. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  116. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  117. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +4 -4
  118. package/lib/cjs/geometry3d/Point3dVector3d.js +5 -5
  119. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  120. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  121. package/lib/cjs/geometry3d/PointHelpers.js +5 -5
  122. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  123. package/lib/cjs/geometry3d/PolygonOps.d.ts +1 -2
  124. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  125. package/lib/cjs/geometry3d/PolygonOps.js +2 -3
  126. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  127. package/lib/cjs/geometry3d/Range.js.map +1 -1
  128. package/lib/cjs/geometry3d/Ray2d.d.ts +69 -0
  129. package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -0
  130. package/lib/cjs/geometry3d/Ray2d.js +146 -0
  131. package/lib/cjs/geometry3d/Ray2d.js.map +1 -0
  132. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  133. package/lib/cjs/geometry3d/Transform.d.ts +3 -3
  134. package/lib/cjs/geometry3d/Transform.js +6 -6
  135. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  136. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  137. package/lib/cjs/numerics/ConvexPolygon2d.d.ts +7 -49
  138. package/lib/cjs/numerics/ConvexPolygon2d.d.ts.map +1 -1
  139. package/lib/cjs/numerics/ConvexPolygon2d.js +16 -107
  140. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  141. package/lib/cjs/numerics/Newton.js.map +1 -1
  142. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  143. package/lib/cjs/numerics/Polynomials.js +0 -2
  144. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  145. package/lib/cjs/numerics/Quadrature.js +5 -5
  146. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  147. package/lib/cjs/polyface/IndexedEdgeMatcher.js +1 -1
  148. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  149. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  150. package/lib/cjs/polyface/PolyfaceBuilder.js +2 -2
  151. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  152. package/lib/cjs/polyface/PolyfaceQuery.d.ts +10 -7
  153. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  154. package/lib/cjs/polyface/PolyfaceQuery.js +13 -12
  155. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  156. package/lib/cjs/polyface/TaggedNumericData.js +1 -1
  157. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  158. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
  159. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  160. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  161. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  162. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  163. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  164. package/lib/cjs/serialization/IModelJsonSchema.d.ts +2 -7
  165. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  166. package/lib/cjs/serialization/IModelJsonSchema.js +2 -7
  167. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  168. package/lib/cjs/topology/ChainMerge.js +1 -1
  169. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  170. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  171. package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -1
  172. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  173. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +1 -1
  174. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  175. package/lib/cjs/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
  176. package/lib/cjs/topology/HalfEdgePriorityQueue.js +1 -1
  177. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  178. package/lib/cjs/topology/RegularizeFace.js +3 -3
  179. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  180. package/lib/cjs/topology/Triangulation.js +1 -1
  181. package/lib/cjs/topology/Triangulation.js.map +1 -1
  182. package/lib/esm/Geometry.js.map +1 -1
  183. package/lib/esm/bspline/BSplineCurve.d.ts +1 -1
  184. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  185. package/lib/esm/bspline/BSplineCurve.js +1 -1
  186. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  187. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  188. package/lib/esm/bspline/BSplineSurface.js +1 -1
  189. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  190. package/lib/esm/bspline/BezierCurveBase.d.ts +1 -1
  191. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  192. package/lib/esm/bspline/BezierCurveBase.js +1 -1
  193. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  194. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  195. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  196. package/lib/esm/core-geometry.d.ts +3 -2
  197. package/lib/esm/core-geometry.d.ts.map +1 -1
  198. package/lib/esm/core-geometry.js +3 -3
  199. package/lib/esm/core-geometry.js.map +1 -1
  200. package/lib/esm/curve/Arc3d.d.ts +1 -1
  201. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  202. package/lib/esm/curve/Arc3d.js +1 -1
  203. package/lib/esm/curve/Arc3d.js.map +1 -1
  204. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +1 -1
  205. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  206. package/lib/esm/curve/CurveChainWithDistanceIndex.js +1 -1
  207. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  208. package/lib/esm/curve/CurveCollection.d.ts +2 -2
  209. package/lib/esm/curve/CurveCollection.js +2 -2
  210. package/lib/esm/curve/CurveCollection.js.map +1 -1
  211. package/lib/esm/curve/CurveCurve.js.map +1 -1
  212. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  213. package/lib/esm/curve/CurveOps.d.ts +77 -0
  214. package/lib/esm/curve/CurveOps.d.ts.map +1 -0
  215. package/lib/esm/curve/CurveOps.js +156 -0
  216. package/lib/esm/curve/CurveOps.js.map +1 -0
  217. package/lib/esm/curve/CurvePrimitive.d.ts +13 -13
  218. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  219. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  220. package/lib/esm/curve/GeometryQuery.d.ts +2 -2
  221. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  222. package/lib/esm/curve/GeometryQuery.js +2 -2
  223. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  224. package/lib/esm/curve/LineSegment3d.d.ts +1 -1
  225. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  226. package/lib/esm/curve/LineSegment3d.js +1 -1
  227. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  228. package/lib/esm/curve/LineString3d.d.ts +1 -1
  229. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  230. package/lib/esm/curve/LineString3d.js +1 -1
  231. package/lib/esm/curve/LineString3d.js.map +1 -1
  232. package/lib/esm/curve/Loop.js.map +1 -1
  233. package/lib/esm/curve/OffsetOptions.d.ts +97 -0
  234. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -0
  235. package/lib/esm/curve/OffsetOptions.js +161 -0
  236. package/lib/esm/curve/OffsetOptions.js.map +1 -0
  237. package/lib/esm/curve/ProxyCurve.d.ts +1 -1
  238. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  239. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  240. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  241. package/lib/esm/curve/RegionOps.d.ts +11 -13
  242. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  243. package/lib/esm/curve/RegionOps.js +18 -18
  244. package/lib/esm/curve/RegionOps.js.map +1 -1
  245. package/lib/esm/curve/RegionOpsClassificationSweeps.js +2 -2
  246. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  247. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  248. package/lib/esm/curve/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
  249. package/lib/esm/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
  250. package/lib/esm/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
  251. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -0
  252. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +59 -74
  253. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  254. package/lib/esm/curve/internalContexts/MultiChainCollector.js +129 -221
  255. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  256. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  257. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +7 -101
  258. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  259. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +10 -163
  260. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  261. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +1 -1
  262. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  263. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +1 -1
  264. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  265. package/lib/esm/curve/spiral/TransitionSpiral3d.js +1 -1
  266. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  267. package/lib/esm/curve/spiral/XYCurveEvaluator.js +1 -1
  268. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  269. package/lib/esm/geometry3d/Angle.js.map +1 -1
  270. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  271. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  272. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  273. package/lib/esm/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
  274. package/lib/esm/geometry3d/GrowableBlockedArray.js +1 -1
  275. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  276. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  277. package/lib/esm/geometry3d/GrowableFloat64Array.js +1 -1
  278. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  279. package/lib/esm/geometry3d/Matrix3d.js +5 -5
  280. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  281. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  282. package/lib/esm/geometry3d/Plane3d.d.ts +41 -32
  283. package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
  284. package/lib/esm/geometry3d/Plane3d.js +11 -8
  285. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  286. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
  287. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  288. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
  289. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  290. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  291. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +2 -0
  292. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  293. package/lib/esm/geometry3d/Point2dVector2d.d.ts +8 -9
  294. package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
  295. package/lib/esm/geometry3d/Point2dVector2d.js +9 -10
  296. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  297. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  298. package/lib/esm/geometry3d/Point3dVector3d.d.ts +4 -4
  299. package/lib/esm/geometry3d/Point3dVector3d.js +5 -5
  300. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  301. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  302. package/lib/esm/geometry3d/PointHelpers.js +5 -5
  303. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  304. package/lib/esm/geometry3d/PolygonOps.d.ts +1 -2
  305. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  306. package/lib/esm/geometry3d/PolygonOps.js +2 -3
  307. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  308. package/lib/esm/geometry3d/Range.js.map +1 -1
  309. package/lib/esm/geometry3d/Ray2d.d.ts +69 -0
  310. package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -0
  311. package/lib/esm/geometry3d/Ray2d.js +142 -0
  312. package/lib/esm/geometry3d/Ray2d.js.map +1 -0
  313. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  314. package/lib/esm/geometry3d/Transform.d.ts +3 -3
  315. package/lib/esm/geometry3d/Transform.js +6 -6
  316. package/lib/esm/geometry3d/Transform.js.map +1 -1
  317. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  318. package/lib/esm/numerics/ConvexPolygon2d.d.ts +7 -49
  319. package/lib/esm/numerics/ConvexPolygon2d.d.ts.map +1 -1
  320. package/lib/esm/numerics/ConvexPolygon2d.js +14 -104
  321. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  322. package/lib/esm/numerics/Newton.js.map +1 -1
  323. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  324. package/lib/esm/numerics/Polynomials.js +0 -2
  325. package/lib/esm/numerics/Polynomials.js.map +1 -1
  326. package/lib/esm/numerics/Quadrature.js +5 -5
  327. package/lib/esm/numerics/Quadrature.js.map +1 -1
  328. package/lib/esm/polyface/IndexedEdgeMatcher.js +1 -1
  329. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  330. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  331. package/lib/esm/polyface/PolyfaceBuilder.js +2 -2
  332. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  333. package/lib/esm/polyface/PolyfaceQuery.d.ts +10 -7
  334. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  335. package/lib/esm/polyface/PolyfaceQuery.js +14 -13
  336. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  337. package/lib/esm/polyface/TaggedNumericData.js +1 -1
  338. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  339. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
  340. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  341. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  342. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  343. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  344. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  345. package/lib/esm/serialization/IModelJsonSchema.d.ts +2 -7
  346. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  347. package/lib/esm/serialization/IModelJsonSchema.js +2 -7
  348. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  349. package/lib/esm/topology/ChainMerge.js +1 -1
  350. package/lib/esm/topology/ChainMerge.js.map +1 -1
  351. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  352. package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -1
  353. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  354. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +1 -1
  355. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  356. package/lib/esm/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
  357. package/lib/esm/topology/HalfEdgePriorityQueue.js +1 -1
  358. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  359. package/lib/esm/topology/RegularizeFace.js +3 -3
  360. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  361. package/lib/esm/topology/Triangulation.js +1 -1
  362. package/lib/esm/topology/Triangulation.js.map +1 -1
  363. package/package.json +5 -16
  364. package/lib/cjs/curve/ChainCollectorContext.d.ts.map +0 -1
  365. package/lib/cjs/curve/ChainCollectorContext.js.map +0 -1
  366. package/lib/esm/curve/ChainCollectorContext.d.ts.map +0 -1
  367. package/lib/esm/curve/ChainCollectorContext.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChainCollectorContext.js","sourceRoot":"","sources":["../../../src/curve/ChainCollectorContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAM/F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,qBAAqB;IAOhC;;OAEG;IACK,YAAY,CAAC,SAA0B;QAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,SAAS;YACX,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,qBAAqB,CAAC,GAAY;QAExC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;gBACnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;gBACnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACpD;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,YAAmB,UAAmB;QACpC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAID;;;;;OAKG;IACI,sBAAsB,CAAC,SAAyB,EAAE,kBAA2B,KAAK;QACvF,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,YAAY,cAAc,CAAC;oBACxD,OAAO;gBACT,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3C,SAAS,GAAG,UAAU,CAAC;aACxB;YACD,IAAI,CAAC,eAAe,EAAE;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;oBAC/H,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;oBAE5B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAChC;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzD,IAAI,OAAO,EAAE;oBACX,IAAI,OAAO,CAAC,KAAK,EAAE;wBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAClD;yBAAM;wBACL,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;qBAC1D;iBACF;qBAAM;oBACL,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpD,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrD,IAAI,OAAO,EAAE,EAAG,4BAA4B;wBAC1C,IAAI,OAAO,CAAC,KAAK,EAAE;4BACjB,SAAS,CAAC,cAAc,EAAE,CAAC;4BAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAClD;6BAAM;4BACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;yBAC1D;qBACF;yBAAM;wBACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;qBAChC;iBACF;aACF;SACF;IACH,CAAC;IACD,yEAAyE;IACjE,cAAc,CAAC,MAAsB,EAAE,IAAoB;QACjE,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SAC7B;IACH,CAAC;IACD;;;OAGG;IACK,oBAAoB,CAAC,MAAwB,EAAE,gBAAyB;QAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,IAAI,gBAAgB,EAAE;YACpB,qBAAqB,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAChG,qBAAqB,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC9G,IAAI,qBAAqB,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC;gBACxF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,8EAA8E;IACvE,UAAU,CAAC,mBAA4B,KAAK;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC7D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,0BAA0B,CAAC,UAAsC,EAAE,UAAsC,EAAE,WAAoB,KAAK;QAChJ,IAAI,UAAU,KAAK,SAAS;YAC1B,OAAO,IAAI,CAAC;QACd,IAAI,UAAU,KAAK,SAAS;YAC1B,OAAO,IAAI,CAAC;QACd,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;YACjC,OAAO,IAAI,CAAC;QACd,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;YACnC,OAAO,IAAI,CAAC;QACd,qBAAqB,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC/F,qBAAqB,CAAC,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACjG,OAAO,QAAQ;YACb,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,aAAa,CAAC;YAC3F,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC9F,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 { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { BagOfCurves } from \"./CurveCollection\";\r\nimport { CurvePrimitive } from \"./CurvePrimitive\";\r\nimport { Loop } from \"./Loop\";\r\nimport { Path } from \"./Path\";\r\n\r\n/**\r\n * Manage a growing array of arrays of curve primitives that are to be joined \"head to tail\" in paths.\r\n * * The caller makes a sequence of calls to announce individual primitives.\r\n * * The collector has 2 use cases in mind, controlled by `searchAllPaths` flag on `chainCollectorContext.announceCurvePrimitive`\r\n * * (a) \"simple chains\" -- the caller has the curve primitives in order and just needs to have them monitored for coordinate breaks that indicate transition to a new chain.\r\n * * The collector needs to watch for connection to the most recent path but not search for prior paths to join to instead.\r\n * * (b) \"mixed\" primitives -- primitive order is NOT significant for chain assembly.\r\n * * The collector needs to search all prior paths at both start and end, and consider connection to both the start and end of each new primitive.\r\n * * The per-curve announcement is\r\n * * chainCollector.announceCurvePrimitive (curve, searchAllPaths).\r\n * * When all curves have been announced, the call to grab the paths option\r\n * * formLoopsIfClosed\r\n * * If true, convert closed paths to `Loop`, open paths to `Path`\r\n * * If false, convert all paths (open or not) to `Path`\r\n * * Usage pattern is\r\n * * initialization: `context = new ChainCollectorContext (makeClones: boolean)`\r\n * * many times: ` context.announceCurvePrimitive (primitive, searchAllPaths)`\r\n * * end: ` result = context.grabResults (formLoopsIfClosed)`\r\n * @internal\r\n */\r\nexport class ChainCollectorContext {\r\n private _chains: CurvePrimitive[][];\r\n private _makeClones: boolean;\r\n\r\n private static _staticPointA: Point3d;\r\n private static _staticPointB: Point3d;\r\n\r\n /**\r\n * Push a new chain with an optional first primitive.\r\n */\r\n private pushNewChain(primitive?: CurvePrimitive) {\r\n const chain = [];\r\n if (primitive)\r\n chain.push(primitive);\r\n this._chains.push(chain);\r\n }\r\n private findOrCreateTailChain(): CurvePrimitive[] {\r\n if (this._chains.length === 0)\r\n this.pushNewChain();\r\n return this._chains[this._chains.length - 1];\r\n }\r\n private _xyzWork0?: Point3d;\r\n private findAnyChainToConnect(xyz: Point3d): { chainIndex: number, atEnd: boolean } | undefined {\r\n\r\n for (let chainIndexA = 0; chainIndexA < this._chains.length; chainIndexA++) {\r\n const path = this._chains[chainIndexA];\r\n this._xyzWork1 = path[path.length - 1].endPoint(this._xyzWork1);\r\n if (this._xyzWork1.isAlmostEqual(xyz))\r\n return { chainIndex: chainIndexA, atEnd: true };\r\n this._xyzWork1 = path[0].startPoint(this._xyzWork1);\r\n if (this._xyzWork1.isAlmostEqual(xyz))\r\n return { chainIndex: chainIndexA, atEnd: false };\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Initialize with an empty array of chains.\r\n * @param makeClones if true, all CurvePrimitives sent to `announceCurvePrimitive` is immediately cloned. If false, the reference to the original curve is maintained.\r\n */\r\n public constructor(makeClones: boolean) {\r\n this._chains = [];\r\n this._makeClones = makeClones;\r\n }\r\n\r\n private _xyzWork1?: Point3d;\r\n\r\n /** Announce a curve primitive\r\n * * searchAllChains controls the extent of search for connecting points.\r\n * * false ==> only consider connection to most recent chain.\r\n * * true ==> search for any connection, reversing direction as needed.\r\n * * Otherwise start a new chain.\r\n */\r\n public announceCurvePrimitive(candidate: CurvePrimitive, searchAllChains: boolean = false) {\r\n if (candidate) {\r\n if (this._makeClones) {\r\n const candidate1 = candidate.clone();\r\n if (!candidate1 || !(candidate1 instanceof CurvePrimitive))\r\n return;\r\n this.transferMarkup(candidate, candidate1);\r\n candidate = candidate1;\r\n }\r\n if (!searchAllChains) {\r\n const activeChain = this.findOrCreateTailChain();\r\n if (activeChain.length === 0 || !ChainCollectorContext.needBreakBetweenPrimitives(activeChain[activeChain.length - 1], candidate))\r\n activeChain.push(candidate);\r\n else\r\n this.pushNewChain(candidate);\r\n } else {\r\n this._xyzWork0 = candidate.startPoint(this._xyzWork0);\r\n let connect = this.findAnyChainToConnect(this._xyzWork0);\r\n if (connect) {\r\n if (connect.atEnd) {\r\n this._chains[connect.chainIndex].push(candidate);\r\n } else {\r\n candidate.reverseInPlace();\r\n this._chains[connect.chainIndex].splice(0, 0, candidate);\r\n }\r\n } else {\r\n this._xyzWork0 = candidate.endPoint(this._xyzWork0);\r\n connect = this.findAnyChainToConnect(this._xyzWork0);\r\n if (connect) { // START of new primitive ..\r\n if (connect.atEnd) {\r\n candidate.reverseInPlace();\r\n this._chains[connect.chainIndex].push(candidate);\r\n } else {\r\n this._chains[connect.chainIndex].splice(0, 0, candidate);\r\n }\r\n } else {\r\n this._chains.push([candidate]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Transfer markup (e.g. startCut, endCut) from source to destination */\r\n private transferMarkup(source: CurvePrimitive, dest: CurvePrimitive) {\r\n if (source && dest) {\r\n dest.startCut = source.startCut;\r\n dest.endCut = source.endCut;\r\n }\r\n }\r\n /** turn an array of curve primitives into the simplest possible strongly typed curve structure.\r\n * * The input array is assumed to be connected appropriately to act as the curves of a Path.\r\n * * When a path is created the curves array is CAPTURED.\r\n */\r\n private promoteArrayToCurves(curves: CurvePrimitive[], makeLoopIfClosed: boolean): CurvePrimitive | Path | Loop | undefined {\r\n if (curves.length === 0)\r\n return undefined;\r\n if (makeLoopIfClosed) {\r\n ChainCollectorContext._staticPointA = curves[0].startPoint(ChainCollectorContext._staticPointA);\r\n ChainCollectorContext._staticPointB = curves[curves.length - 1].endPoint(ChainCollectorContext._staticPointB);\r\n if (ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB))\r\n return Loop.createArray(curves);\r\n }\r\n if (curves.length === 1)\r\n return curves[0];\r\n return Path.createArray(curves);\r\n }\r\n /** Return the collected results, structured as the simplest possible type. */\r\n public grabResult(makeLoopIfClosed: boolean = false): CurvePrimitive | Path | BagOfCurves | Loop | undefined {\r\n const chains = this._chains;\r\n if (chains.length === 0)\r\n return undefined;\r\n if (chains.length === 1)\r\n return this.promoteArrayToCurves(chains[0], makeLoopIfClosed);\r\n const bag = BagOfCurves.create();\r\n for (const chain of chains) {\r\n const q = this.promoteArrayToCurves(chain, makeLoopIfClosed);\r\n bag.tryAddChild(q);\r\n }\r\n return bag;\r\n }\r\n /** test if there is a break between primitiveA and primitiveB, due to any condition such as\r\n * * primitiveA.endCut\r\n * * primitiveB.startCut\r\n * * physical gap between primitives.\r\n */\r\n public static needBreakBetweenPrimitives(primitiveA: CurvePrimitive | undefined, primitiveB: CurvePrimitive | undefined, isXYOnly: boolean = false): boolean {\r\n if (primitiveA === undefined)\r\n return true;\r\n if (primitiveB === undefined)\r\n return true;\r\n if (primitiveA.endCut !== undefined)\r\n return true;\r\n if (primitiveB.startCut !== undefined)\r\n return true;\r\n ChainCollectorContext._staticPointA = primitiveA.endPoint(ChainCollectorContext._staticPointA);\r\n ChainCollectorContext._staticPointB = primitiveB.startPoint(ChainCollectorContext._staticPointB);\r\n return isXYOnly\r\n ? !ChainCollectorContext._staticPointA.isAlmostEqualXY(ChainCollectorContext._staticPointB)\r\n : !ChainCollectorContext._staticPointA.isAlmostEqual(ChainCollectorContext._staticPointB);\r\n }\r\n}\r\n"]}