@itwin/core-geometry 4.10.0-dev.4 → 4.10.0-dev.6

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 (491) hide show
  1. package/lib/cjs/Constant.js.map +1 -1
  2. package/lib/cjs/Geometry.d.ts +2 -2
  3. package/lib/cjs/Geometry.js +2 -2
  4. package/lib/cjs/Geometry.js.map +1 -1
  5. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  6. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  11. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  13. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  14. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  15. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  16. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  17. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  18. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  19. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  20. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  21. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  22. package/lib/cjs/clipping/ClipPrimitive.d.ts +7 -7
  23. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
  24. package/lib/cjs/clipping/ClipPrimitive.js +1 -1
  25. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  26. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  27. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  28. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  29. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  30. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  31. package/lib/cjs/core-geometry.js.map +1 -1
  32. package/lib/cjs/curve/Arc3d.js.map +1 -1
  33. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  34. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  35. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  36. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  37. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +44 -25
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  39. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  40. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  41. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  42. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  43. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  44. package/lib/cjs/curve/CurveOps.js.map +1 -1
  45. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  46. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  47. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  48. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  49. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  50. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  51. package/lib/cjs/curve/LineString3d.js.map +1 -1
  52. package/lib/cjs/curve/Loop.js.map +1 -1
  53. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  54. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  55. package/lib/cjs/curve/Path.js.map +1 -1
  56. package/lib/cjs/curve/PointString3d.js.map +1 -1
  57. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  58. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  59. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  60. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  61. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  62. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  63. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  64. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  65. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  66. package/lib/cjs/curve/RegionOps.js.map +1 -1
  67. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  68. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  69. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  71. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  78. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  79. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +30 -56
  80. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  82. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  83. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +127 -67
  84. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  85. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  87. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  88. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  89. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  90. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  91. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  92. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  94. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  95. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  96. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  97. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  98. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  99. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  100. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  101. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  102. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  103. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  104. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  105. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  106. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  107. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  108. package/lib/cjs/geometry3d/Angle.d.ts +5 -5
  109. package/lib/cjs/geometry3d/Angle.js +5 -5
  110. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  111. package/lib/cjs/geometry3d/AngleSweep.d.ts +91 -7
  112. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  113. package/lib/cjs/geometry3d/AngleSweep.js +141 -45
  114. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  115. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  116. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  117. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  118. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  119. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  120. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  121. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  122. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  123. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  124. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  125. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  126. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  127. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  128. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  129. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  130. package/lib/cjs/geometry3d/Matrix3d.d.ts +7 -14
  131. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  132. package/lib/cjs/geometry3d/Matrix3d.js +19 -14
  133. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  134. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  135. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  136. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  137. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  138. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  139. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  140. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  141. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  142. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  143. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  144. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  145. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  146. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  147. package/lib/cjs/geometry3d/Range.js.map +1 -1
  148. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  149. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  150. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  151. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  152. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  153. package/lib/cjs/geometry3d/Transform.d.ts +4 -2
  154. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  155. package/lib/cjs/geometry3d/Transform.js +4 -2
  156. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  157. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  158. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  159. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  160. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  161. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  162. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  163. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  164. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  165. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  166. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  167. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  168. package/lib/cjs/numerics/Complex.js.map +1 -1
  169. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  170. package/lib/cjs/numerics/Newton.js.map +1 -1
  171. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  172. package/lib/cjs/numerics/PolarData.js.map +1 -1
  173. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  174. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  175. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  176. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  177. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  178. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  179. package/lib/cjs/polyface/AuxData.js.map +1 -1
  180. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  181. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  182. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  183. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  184. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  185. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  186. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  187. package/lib/cjs/polyface/Polyface.js.map +1 -1
  188. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  189. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  190. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  191. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  192. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  193. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  194. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  195. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  196. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  197. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  198. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  199. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  200. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  201. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  202. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  203. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  204. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  205. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  206. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  207. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  208. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  209. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  210. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  211. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  212. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  213. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  214. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  215. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  216. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  217. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  218. package/lib/cjs/solid/Box.js.map +1 -1
  219. package/lib/cjs/solid/Cone.js.map +1 -1
  220. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  221. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  222. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  223. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  224. package/lib/cjs/solid/Sphere.js.map +1 -1
  225. package/lib/cjs/solid/SweepContour.js.map +1 -1
  226. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  227. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  228. package/lib/cjs/topology/Graph.js.map +1 -1
  229. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  230. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  231. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  232. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  233. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  234. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  235. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  236. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  237. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  238. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  239. package/lib/cjs/topology/MaskManager.js.map +1 -1
  240. package/lib/cjs/topology/Merging.js.map +1 -1
  241. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  242. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  243. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  244. package/lib/cjs/topology/Triangulation.js.map +1 -1
  245. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  246. package/lib/esm/Constant.js.map +1 -1
  247. package/lib/esm/Geometry.d.ts +2 -2
  248. package/lib/esm/Geometry.js +2 -2
  249. package/lib/esm/Geometry.js.map +1 -1
  250. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  251. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  252. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  253. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  254. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  255. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  256. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  257. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  258. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  259. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  260. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  261. package/lib/esm/bspline/KnotVector.js.map +1 -1
  262. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  263. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  264. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  265. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  266. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  267. package/lib/esm/clipping/ClipPrimitive.d.ts +7 -7
  268. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
  269. package/lib/esm/clipping/ClipPrimitive.js +1 -1
  270. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  271. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  272. package/lib/esm/clipping/ClipVector.js.map +1 -1
  273. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  274. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  275. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  276. package/lib/esm/core-geometry.js.map +1 -1
  277. package/lib/esm/curve/Arc3d.js.map +1 -1
  278. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  279. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  280. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  281. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  282. package/lib/esm/curve/CurveChainWithDistanceIndex.js +44 -25
  283. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  284. package/lib/esm/curve/CurveCollection.js.map +1 -1
  285. package/lib/esm/curve/CurveCurve.js.map +1 -1
  286. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  287. package/lib/esm/curve/CurveFactory.js.map +1 -1
  288. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  289. package/lib/esm/curve/CurveOps.js.map +1 -1
  290. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  291. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  292. package/lib/esm/curve/CurveTypes.js.map +1 -1
  293. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  294. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  295. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  296. package/lib/esm/curve/LineString3d.js.map +1 -1
  297. package/lib/esm/curve/Loop.js.map +1 -1
  298. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  299. package/lib/esm/curve/ParityRegion.js.map +1 -1
  300. package/lib/esm/curve/Path.js.map +1 -1
  301. package/lib/esm/curve/PointString3d.js.map +1 -1
  302. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  303. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  304. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  305. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  306. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  307. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  308. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  309. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  310. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  311. package/lib/esm/curve/RegionOps.js.map +1 -1
  312. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  313. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  314. package/lib/esm/curve/UnionRegion.js.map +1 -1
  315. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  316. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  317. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  318. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  319. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  320. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  321. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  322. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  323. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  324. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +30 -56
  325. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  326. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  327. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  328. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +127 -67
  329. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  330. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  331. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  332. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  333. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  334. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  335. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  336. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  337. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  338. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  339. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  340. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  341. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  342. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  343. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  344. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  345. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  346. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  347. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  348. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  349. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  350. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  351. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  352. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  353. package/lib/esm/geometry3d/Angle.d.ts +5 -5
  354. package/lib/esm/geometry3d/Angle.js +5 -5
  355. package/lib/esm/geometry3d/Angle.js.map +1 -1
  356. package/lib/esm/geometry3d/AngleSweep.d.ts +91 -7
  357. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  358. package/lib/esm/geometry3d/AngleSweep.js +141 -45
  359. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  360. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  361. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  362. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  363. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  364. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  365. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  366. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  367. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  368. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  369. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  370. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  371. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  372. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  373. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  374. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  375. package/lib/esm/geometry3d/Matrix3d.d.ts +7 -14
  376. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  377. package/lib/esm/geometry3d/Matrix3d.js +19 -14
  378. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  379. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  380. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  381. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  382. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  383. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  384. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  385. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  386. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  387. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  388. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  389. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  390. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  391. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  392. package/lib/esm/geometry3d/Range.js.map +1 -1
  393. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  394. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  395. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  396. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  397. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  398. package/lib/esm/geometry3d/Transform.d.ts +4 -2
  399. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  400. package/lib/esm/geometry3d/Transform.js +4 -2
  401. package/lib/esm/geometry3d/Transform.js.map +1 -1
  402. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  403. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  404. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  405. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  406. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  407. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  408. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  409. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  410. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  411. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  412. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  413. package/lib/esm/numerics/Complex.js.map +1 -1
  414. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  415. package/lib/esm/numerics/Newton.js.map +1 -1
  416. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  417. package/lib/esm/numerics/PolarData.js.map +1 -1
  418. package/lib/esm/numerics/Polynomials.js.map +1 -1
  419. package/lib/esm/numerics/Quadrature.js.map +1 -1
  420. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  421. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  422. package/lib/esm/numerics/UnionFind.js.map +1 -1
  423. package/lib/esm/numerics/UsageSums.js.map +1 -1
  424. package/lib/esm/polyface/AuxData.js.map +1 -1
  425. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  426. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  427. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  428. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  429. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  430. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  431. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  432. package/lib/esm/polyface/Polyface.js.map +1 -1
  433. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  434. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  435. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  436. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  437. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  438. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  439. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  440. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  441. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  442. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  443. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  444. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  445. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  446. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  447. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  448. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  449. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  450. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  451. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  452. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  453. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  454. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  455. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  456. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  457. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  458. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  459. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  460. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  461. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  462. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  463. package/lib/esm/solid/Box.js.map +1 -1
  464. package/lib/esm/solid/Cone.js.map +1 -1
  465. package/lib/esm/solid/LinearSweep.js.map +1 -1
  466. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  467. package/lib/esm/solid/RuledSweep.js.map +1 -1
  468. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  469. package/lib/esm/solid/Sphere.js.map +1 -1
  470. package/lib/esm/solid/SweepContour.js.map +1 -1
  471. package/lib/esm/solid/TorusPipe.js.map +1 -1
  472. package/lib/esm/topology/ChainMerge.js.map +1 -1
  473. package/lib/esm/topology/Graph.js.map +1 -1
  474. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  475. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  476. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  477. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  478. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  479. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  480. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  481. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  482. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  483. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  484. package/lib/esm/topology/MaskManager.js.map +1 -1
  485. package/lib/esm/topology/Merging.js.map +1 -1
  486. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  487. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  488. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  489. package/lib/esm/topology/Triangulation.js.map +1 -1
  490. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  491. package/package.json +3 -3
@@ -22,6 +22,8 @@ const CurveCollection_1 = require("../CurveCollection");
22
22
  const CurveLocationDetail_1 = require("../CurveLocationDetail");
23
23
  const LineSegment3d_1 = require("../LineSegment3d");
24
24
  const LineString3d_1 = require("../LineString3d");
25
+ const Loop_1 = require("../Loop");
26
+ const Path_1 = require("../Path");
25
27
  // cspell:word XYRR
26
28
  /**
27
29
  * Handler class for XYZ intersections between _geometryB and another geometry.
@@ -37,9 +39,11 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
37
39
  */
38
40
  constructor(extendA, geometryB, extendB) {
39
41
  super();
40
- this._extendA = extendA;
42
+ this._extendA0 = extendA;
43
+ this._extendA1 = extendA;
41
44
  this._geometryB = geometryB;
42
- this._extendB = extendB;
45
+ this._extendB0 = extendB;
46
+ this._extendB1 = extendB;
43
47
  this._results = [];
44
48
  }
45
49
  /** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
@@ -56,10 +60,12 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
56
60
  this._results = [];
57
61
  return result;
58
62
  }
59
- acceptFraction(extend0, fraction, extend1) {
60
- if (!extend0 && fraction < 0.0)
63
+ /** Accept the fraction if it falls inside (possibly extended) fraction range. */
64
+ acceptFraction(extend0, fraction, extend1, fractionTol = 1.0e-12) {
65
+ // Note that default tol is tighter than Geometry.smallFraction. We aggressively toss intersections past endpoints.
66
+ if (!extend0 && fraction < -fractionTol)
61
67
  return false;
62
- if (!extend1 && fraction > 1.0)
68
+ if (!extend1 && fraction > 1.0 + fractionTol)
63
69
  return false;
64
70
  return true;
65
71
  }
@@ -161,13 +167,13 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
161
167
  let lineFraction;
162
168
  let linePoint;
163
169
  for (const c of candidates) {
164
- if (this.acceptFraction(extendB0, c.fraction, extendB1)) {
170
+ const arcFraction = arc.sweep.fractionToSignedPeriodicFraction(c.fraction, extendB0);
171
+ if (this.acceptFraction(extendB0, arcFraction, extendB1)) {
165
172
  lineFraction = Polynomials_1.SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
166
173
  if (lineFraction !== undefined) {
167
174
  linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
168
- if (linePoint.isAlmostEqualMetric(c.point)
169
- && this.acceptFraction(extendA0, lineFraction, extendA1)) {
170
- this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, c.fraction, arc, 0, 1, reversed);
175
+ if (linePoint.isAlmostEqualMetric(c.point) && this.acceptFraction(extendA0, lineFraction, extendA1)) {
176
+ this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
171
177
  }
172
178
  }
173
179
  }
@@ -178,17 +184,17 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
178
184
  // Passes "other" as {center, vector0, vector90} in local xy space of cpA
179
185
  // Solves the arc-arc equations for that local ellipse with unit circle.
180
186
  // Solution fractions map directly to original arcs.
181
- dispatchArcArcInPlane(cpA, extendA, cpB, extendB, reversed) {
187
+ dispatchArcArcInPlane(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed) {
182
188
  const otherVectors = cpA.otherArcAsLocalVectors(cpB);
183
189
  if (otherVectors !== undefined) {
184
190
  const ellipseRadians = [];
185
191
  const circleRadians = [];
186
192
  Polynomials_1.TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
187
193
  for (let i = 0; i < ellipseRadians.length; i++) {
188
- const fractionA = cpA.sweep.radiansToSignedPeriodicFraction(circleRadians[i]);
189
- const fractionB = cpB.sweep.radiansToSignedPeriodicFraction(ellipseRadians[i]);
194
+ const fractionA = cpA.sweep.radiansToSignedFraction(circleRadians[i], extendA0);
195
+ const fractionB = cpB.sweep.radiansToSignedFraction(ellipseRadians[i], extendB0);
190
196
  // hm .. do we really need to check the fractions? We know they are internal to the beziers
191
- if (this.acceptFraction(extendA, fractionA, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
197
+ if (this.acceptFraction(extendA0, fractionA, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
192
198
  this.recordPointWithLocalFractions(fractionA, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
193
199
  }
194
200
  }
@@ -197,7 +203,7 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
197
203
  // Caller accesses data from two arcs.
198
204
  // Selects the best conditioned arc (in xy parts) as "circle after inversion".
199
205
  // Solves the arc-arc equations.
200
- dispatchArcArc(cpA, extendA, cpB, extendB, reversed) {
206
+ dispatchArcArc(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed) {
201
207
  // If arcs are in different planes:
202
208
  // 1) Intersect each plane with the other arc (quadratic)
203
209
  // 2) accept points that appear in both intersection sets.
@@ -208,10 +214,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
208
214
  if (planeA === undefined || planeB === undefined)
209
215
  return;
210
216
  if (planeA.getNormalRef().isParallelTo(planeB.getNormalRef())) {
211
- if (planeA.isPointInPlane(planeB.getOriginRef()) && planeB.isPointInPlane(planeA.getOriginRef())) {
212
- // coplanar
213
- this.dispatchArcArcInPlane(cpA, extendA, cpB, extendB, reversed);
214
- }
217
+ if (planeA.isPointInPlane(planeB.getOriginRef()) && planeB.isPointInPlane(planeA.getOriginRef()))
218
+ this.dispatchArcArcInPlane(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed);
215
219
  }
216
220
  else {
217
221
  const arcBPoints = [];
@@ -221,9 +225,11 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
221
225
  for (const detailB of arcBPoints) {
222
226
  for (const detailA of arcAPoints) {
223
227
  if (detailA.point.isAlmostEqual(detailB.point)) {
224
- if (this.acceptFraction(extendA, detailA.fraction, extendA)
225
- && this.acceptFraction(extendB, detailB.fraction, extendB)) {
226
- this.recordPointWithLocalFractions(detailA.fraction, cpA, 0, 1, detailB.fraction, cpB, 0, 1, reversed);
228
+ const arcFractionA = cpA.sweep.fractionToSignedPeriodicFraction(detailA.fraction, extendA0);
229
+ const arcFractionB = cpB.sweep.fractionToSignedPeriodicFraction(detailB.fraction, extendB0);
230
+ if (this.acceptFraction(extendA0, arcFractionA, extendA1)
231
+ && this.acceptFraction(extendB0, arcFractionB, extendB1)) {
232
+ this.recordPointWithLocalFractions(arcFractionA, cpA, 0, 1, arcFractionB, cpB, 0, 1, reversed);
227
233
  }
228
234
  }
229
235
  }
@@ -233,7 +239,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
233
239
  // Caller accesses data from two arcs.
234
240
  // Selects the best conditioned arc (in xy parts) as "circle after inversion".
235
241
  // Solves the arc-arc equations.
236
- dispatchArcBsplineCurve3d(_arc, _extendA, _cpB, _extendB, _reversed) {
242
+ dispatchArcBsplineCurve3d(_arc, _extendA0, _extendA1, _cpB, _extendB0, _extendB1, _reversed) {
243
+ // TODO: B-spline XYZ intersection implementation
237
244
  /*
238
245
  // Arc: X = C + cU + sV
239
246
  // implicitize the arc as viewed. This "3d" matrix is homogeneous "XYW" not "xyz"
@@ -294,9 +301,9 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
294
301
  const bcurvePoint4d = bezier.fractionToPoint4d(root);
295
302
  const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
296
303
  const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
297
- const arcFraction = cpA.sweep.radiansToSignedPeriodicFraction(Math.atan2(s, c));
298
- if (this.acceptFraction(extendA, arcFraction, extendA) &&
299
- this.acceptFraction(extendB, fractionB, extendB)) {
304
+ const arcFraction = cpA.sweep.radiansToSignedFraction(Math.atan2(s, c), _extendA0);
305
+ if (this.acceptFraction(_extendA0, arcFraction, _extendA1) &&
306
+ this.acceptFraction(_extendB0, fractionB, _extendB1)) {
300
307
  this.recordPointWithLocalFractions(
301
308
  arcFraction, cpA, 0, 1, fractionB, cpB, 0, 1, reversed,
302
309
  );
@@ -308,6 +315,7 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
308
315
  }
309
316
  */
310
317
  }
318
+ // TODO: Bezier XYZ intersection implementation
311
319
  /*
312
320
  // Apply the transformation to bezier curves. Optionally construct ranges.
313
321
  private transformBeziers(beziers: BezierCurve3dH[]): void {
@@ -353,8 +361,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
353
361
  const bcurvePoint4d = bezier.fractionToPoint4d(root);
354
362
  const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
355
363
  const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
356
- const arcFraction = cpA.sweep.radiansToSignedPeriodicFraction(Math.atan2(s, c));
357
- if (this.acceptFraction(extendA, arcFraction, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
364
+ const arcFraction = cpA.sweep.radiansToSignedFraction(Math.atan2(s, c), extendA0);
365
+ if (this.acceptFraction(extendA0, arcFraction, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
358
366
  this.recordPointWithLocalFractions(
359
367
  arcFraction, cpA, 0, 1, fractionB, cpB, 0, 1, reversed,
360
368
  );
@@ -421,6 +429,7 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
421
429
  // Selects the best conditioned arc (in xy parts) as "circle after inversion".
422
430
  // Solves the arc-arc equations.
423
431
  dispatchBSplineCurve3dBSplineCurve3d(_bcurveA, _bcurveB, _reversed) {
432
+ // TODO: B-spline XYZ intersection implementation
424
433
  /*
425
434
  const bezierSpanA = bcurveA.collectBezierSpans(true) as BezierCurve3dH[];
426
435
  const bezierSpanB = bcurveB.collectBezierSpans(true) as BezierCurve3dH[];
@@ -484,7 +493,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
484
493
  // Caller accesses data from segment and bsplineCurve
485
494
  // Selects the best conditioned arc (in xy parts) as "circle after inversion"
486
495
  // Solves the arc-arc equations
487
- dispatchSegmentBsplineCurve(_cpA, _extendA0, _pointA0, _fractionA0, _pointA1, _fractionA1, _extendA1, _bcurve, _extendB, _reversed) {
496
+ dispatchSegmentBsplineCurve(_cpA, _extendA0, _pointA0, _fractionA0, _pointA1, _fractionA1, _extendA1, _bcurve, _extendB0, _extendB1, _reversed) {
497
+ // TODO: B-spline XYZ intersection implementation
488
498
  /*
489
499
  const pointA0H = this.projectPoint(pointA0);
490
500
  const pointA1H = this.projectPoint(pointA1);
@@ -501,8 +511,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
501
511
  const curvePoint = detail.point;
502
512
  const curvePointH = this.projectPoint(curvePoint);
503
513
  const lineFraction = SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
504
- if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
505
- this.acceptFraction(extendB, fractionB, extendB)) {
514
+ if (lineFraction !== undefined && this.acceptFraction(_extendA0, lineFraction, _extendA1) &&
515
+ this.acceptFraction(_extendB0, fractionB, _extendB1)) {
506
516
  this.recordPointWithLocalFractions(
507
517
  lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed,
508
518
  );
@@ -511,7 +521,8 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
511
521
  */
512
522
  }
513
523
  /** Low level dispatch of linestring with (beziers of) a bspline curve */
514
- dispatchLineStringBSplineCurve(_lsA, _extendA, _curveB, _extendB, _reversed) {
524
+ dispatchLineStringBSplineCurve(_lsA, _extendA0, _extendA1, _curveB, _extendB0, _extendB1, _reversed) {
525
+ // TODO: B-spline XYZ intersection implementation
515
526
  /*
516
527
  const numA = lsA.numPoints();
517
528
  if (numA > 1) {
@@ -526,15 +537,15 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
526
537
  lsA.pointAt(iA, pointA1);
527
538
  fA1 = iA * dfA;
528
539
  this.dispatchSegmentBsplineCurve(
529
- lsA, iA === 1 && extendA, pointA0, fA0, pointA1, fA1, (iA + 1) === numA && extendA,
530
- curveB, extendB, reversed);
540
+ lsA, iA === 1 && _extendA0, pointA0, fA0, pointA1, fA1, (iA + 1) === numA && _extendA1,
541
+ curveB, _extendB0, _extendB1 reversed);
531
542
  }
532
543
  }
533
544
  return undefined;
534
545
  */
535
546
  }
536
547
  /** Detail computation for segment intersecting linestring. */
537
- computeSegmentLineString(lsA, extendA, lsB, extendB, reversed) {
548
+ computeSegmentLineString(lsA, extendA0, extendA1, lsB, extendB0, extendB1, reversed) {
538
549
  const pointA0 = lsA.point0Ref;
539
550
  const pointA1 = lsA.point1Ref;
540
551
  const pointB0 = CurveCurveIntersectXYZ._workPointBB0;
@@ -549,13 +560,13 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
549
560
  for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
550
561
  lsB.pointAt(ib, pointB1);
551
562
  fB1 = ib * dfB;
552
- this.dispatchSegmentSegment(lsA, extendA, pointA0, 0.0, pointA1, 1.0, extendA, lsB, ib === 1 && extendB, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB, reversed);
563
+ this.dispatchSegmentSegment(lsA, extendA0, pointA0, 0.0, pointA1, 1.0, extendA1, lsB, ib === 1 && extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB1, reversed);
553
564
  }
554
565
  }
555
566
  return undefined;
556
567
  }
557
568
  /** Detail computation for arc intersecting linestring. */
558
- computeArcLineString(arcA, extendA, lsB, extendB, reversed) {
569
+ computeArcLineString(arcA, extendA0, extendA1, lsB, extendB0, extendB1, reversed) {
559
570
  const pointB0 = CurveCurveIntersectXYZ._workPointBB0;
560
571
  const pointB1 = CurveCurveIntersectXYZ._workPointBB1;
561
572
  const numB = lsB.numPoints();
@@ -568,7 +579,7 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
568
579
  for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
569
580
  lsB.pointAt(ib, pointB1);
570
581
  fB1 = ib * dfB;
571
- this.dispatchSegmentArc(lsB, ib === 1 && extendB, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB, arcA, extendA, extendA, !reversed);
582
+ this.dispatchSegmentArc(lsB, ib === 1 && extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB1, arcA, extendA0, extendA1, !reversed);
572
583
  }
573
584
  }
574
585
  return undefined;
@@ -589,8 +600,6 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
589
600
  let fB0;
590
601
  let fA1;
591
602
  let fB1;
592
- const extendA = this._extendA;
593
- const extendB = this._extendB;
594
603
  lsA.pointAt(0, pointA0);
595
604
  for (let ia = 1; ia < numA; ia++, pointA0.setFrom(pointA1), fA0 = fA1) {
596
605
  fA1 = ia * dfA;
@@ -600,23 +609,45 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
600
609
  for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
601
610
  lsB.pointAt(ib, pointB1);
602
611
  fB1 = ib * dfB;
603
- this.dispatchSegmentSegment(lsA, ia === 1 && extendA, pointA0, fA0, pointA1, fA1, (ia + 1) === numA && extendA, lsB, ib === 1 && extendB, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB, reversed);
612
+ this.dispatchSegmentSegment(lsA, ia === 1 && this._extendA0, pointA0, fA0, pointA1, fA1, (ia + 1) === numA && this._extendA1, lsB, ib === 1 && this._extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && this._extendB1, reversed);
604
613
  }
605
614
  }
606
615
  }
607
616
  }
608
- /** Low level dispatch of curve collection. */
617
+ /**
618
+ * Low level dispatch of curve collection.
619
+ * We take care of extend variables of geometry's children here if geometry is Path or Loop.
620
+ */
609
621
  dispatchCurveCollection(geomA, geomAHandler) {
610
622
  const geomB = this._geometryB; // save
611
623
  if (!geomB || !geomB.children || !(geomB instanceof CurveCollection_1.CurveCollection))
612
624
  return;
613
- for (const child of geomB.children) {
614
- this.resetGeometry(child);
625
+ const children = geomB.children;
626
+ const extendB0 = this._extendB0; // save
627
+ const extendB1 = this._extendB1; // save
628
+ for (let i = 0; i < children.length; i++) {
629
+ this.resetGeometry(children[i]);
630
+ if (geomB instanceof Path_1.Path && children.length > 1) {
631
+ if (i === 0)
632
+ this._extendB1 = false; // first child can only extend from start
633
+ else if (i === children.length - 1)
634
+ this._extendB0 = false; // last child can only extend from end
635
+ else
636
+ this._extendB0 = this._extendB1 = false; // middle children cannot extend
637
+ }
638
+ else if (geomB instanceof Loop_1.Loop) {
639
+ this._extendB0 = this._extendB1 = false; // Loops cannot extend
640
+ }
615
641
  geomAHandler(geomA);
642
+ this._extendB0 = extendB0; // restore
643
+ this._extendB1 = extendB1; // restore
616
644
  }
617
- this._geometryB = geomB; // restore
645
+ this.resetGeometry(geomB); // restore
618
646
  }
619
- /** Low level dispatch to geomA given a CurveChainWithDistanceIndex in geometryB. */
647
+ /**
648
+ * Low level dispatch of CurveChainWithDistanceIndex.
649
+ * We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
650
+ */
620
651
  dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
621
652
  if (!this._geometryB || !(this._geometryB instanceof CurveChainWithDistanceIndex_1.CurveChainWithDistanceIndex))
622
653
  return;
@@ -626,27 +657,51 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
626
657
  }
627
658
  const index0 = this._results.length;
628
659
  const geomB = this._geometryB; // save
629
- for (const child of geomB.path.children) {
630
- this.resetGeometry(child);
631
- geomAHandler(geomA);
632
- }
660
+ this.resetGeometry(geomB.path);
661
+ this.dispatchCurveCollection(geomA, geomAHandler);
633
662
  this.resetGeometry(geomB); // restore
634
663
  this._results = CurveChainWithDistanceIndex_1.CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
635
664
  }
665
+ /**
666
+ * Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
667
+ * We take care of extend variables of geometry's children here if geometry is Path or Loop.
668
+ */
669
+ handleChildren(g) {
670
+ const children = g.children;
671
+ const extendA0 = this._extendA0; // save
672
+ const extendA1 = this._extendA1; // save
673
+ if (children)
674
+ for (let i = 0; i < children.length; i++) {
675
+ if (g instanceof Path_1.Path && children.length > 1) {
676
+ if (i === 0)
677
+ this._extendA1 = false; // first child can only extend from start
678
+ else if (i === children.length - 1)
679
+ this._extendA0 = false; // last child can only extend from end
680
+ else
681
+ this._extendA0 = this._extendA1 = false; // middle children cannot extend
682
+ }
683
+ else if (g instanceof Loop_1.Loop) {
684
+ this._extendA0 = this._extendA1 = false; // Loops cannot extend
685
+ }
686
+ children[i].dispatchToGeometryHandler(this);
687
+ this._extendA0 = extendA0; // restore
688
+ this._extendA1 = extendA1; // restore
689
+ }
690
+ }
636
691
  /** Double dispatch handler for strongly typed segment. */
637
692
  handleLineSegment3d(segmentA) {
638
693
  if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
639
694
  const segmentB = this._geometryB;
640
- this.dispatchSegmentSegment(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, segmentB, this._extendB, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB, false);
695
+ this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
641
696
  }
642
697
  else if (this._geometryB instanceof LineString3d_1.LineString3d) {
643
- this.computeSegmentLineString(segmentA, this._extendA, this._geometryB, this._extendB, false);
698
+ this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
644
699
  }
645
700
  else if (this._geometryB instanceof Arc3d_1.Arc3d) {
646
- this.dispatchSegmentArc(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, this._extendB, false);
701
+ this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
647
702
  }
648
703
  else if (this._geometryB instanceof BSplineCurve_1.BSplineCurve3d) {
649
- this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
704
+ this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
650
705
  }
651
706
  else if (this._geometryB instanceof CurveCollection_1.CurveCollection) {
652
707
  this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
@@ -663,13 +718,13 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
663
718
  this.computeLineStringLineString(lsA, lsB, false);
664
719
  }
665
720
  else if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
666
- this.computeSegmentLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
721
+ this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
667
722
  }
668
723
  else if (this._geometryB instanceof Arc3d_1.Arc3d) {
669
- this.computeArcLineString(this._geometryB, this._extendB, lsA, this._extendA, true);
724
+ this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
670
725
  }
671
726
  else if (this._geometryB instanceof BSplineCurve_1.BSplineCurve3d) {
672
- this.dispatchLineStringBSplineCurve(lsA, this._extendA, this._geometryB, this._extendB, false);
727
+ this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
673
728
  }
674
729
  else if (this._geometryB instanceof CurveCollection_1.CurveCollection) {
675
730
  this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
@@ -682,16 +737,16 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
682
737
  /** Double dispatch handler for strongly typed arc. */
683
738
  handleArc3d(arc0) {
684
739
  if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
685
- this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
740
+ this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
686
741
  }
687
742
  else if (this._geometryB instanceof LineString3d_1.LineString3d) {
688
- this.computeArcLineString(arc0, this._extendA, this._geometryB, this._extendB, false);
743
+ this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
689
744
  }
690
745
  else if (this._geometryB instanceof Arc3d_1.Arc3d) {
691
- this.dispatchArcArc(arc0, this._extendA, this._geometryB, this._extendB, false);
746
+ this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
692
747
  }
693
748
  else if (this._geometryB instanceof BSplineCurve_1.BSplineCurve3d) {
694
- this.dispatchArcBsplineCurve3d(arc0, this._extendA, this._geometryB, this._extendB, false);
749
+ this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
695
750
  }
696
751
  else if (this._geometryB instanceof CurveCollection_1.CurveCollection) {
697
752
  this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
@@ -704,13 +759,13 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
704
759
  /** Double dispatch handler for strongly typed bspline curve. */
705
760
  handleBSplineCurve3d(curve) {
706
761
  if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
707
- this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
762
+ this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
708
763
  }
709
764
  else if (this._geometryB instanceof LineString3d_1.LineString3d) {
710
- this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
765
+ this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
711
766
  }
712
767
  else if (this._geometryB instanceof Arc3d_1.Arc3d) {
713
- this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
768
+ this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
714
769
  }
715
770
  else if (this._geometryB instanceof BSplineCurve_1.BSplineCurve3dBase) {
716
771
  this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
@@ -736,12 +791,17 @@ class CurveCurveIntersectXYZ extends GeometryHandler_1.RecurseToCurvesGeometryHa
736
791
  // "easy" if both present BezierCurve3dH span loaders
737
792
  if (this._geometryB instanceof LineSegment3d) {
738
793
  this.dispatchSegmentBsplineCurve(
739
- this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
740
- curve, this._extendA, true);
794
+ this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1,
795
+ curve, this._extendA0, this.extendA1, true,
796
+ );
741
797
  } else if (this._geometryB instanceof LineString3d) {
742
- this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB, curve, this._extendA, true);
798
+ this.dispatchLineStringBSplineCurve(
799
+ this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true,
800
+ );
743
801
  } else if (this._geometryB instanceof Arc3d) {
744
- this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
802
+ this.dispatchArcBsplineCurve3d(
803
+ this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true,
804
+ );
745
805
  }
746
806
  */
747
807
  return undefined;