@itwin/core-geometry 5.8.2 → 5.9.0-dev.10

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 (652) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +10 -7
  4. package/lib/cjs/Geometry.d.ts.map +1 -1
  5. package/lib/cjs/Geometry.js +8 -6
  6. package/lib/cjs/Geometry.js.map +1 -1
  7. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  8. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  12. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  13. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  14. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  15. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  16. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  17. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  18. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  19. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  20. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  21. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  22. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  23. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  24. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  25. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  26. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  27. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  28. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  29. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  30. package/lib/cjs/core-geometry.js.map +1 -1
  31. package/lib/cjs/curve/Arc3d.d.ts +7 -0
  32. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  33. package/lib/cjs/curve/Arc3d.js +18 -6
  34. package/lib/cjs/curve/Arc3d.js.map +1 -1
  35. package/lib/cjs/curve/ConstrainedCurve2d.js.map +1 -1
  36. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  37. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -2
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -15
  41. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  42. package/lib/cjs/curve/CurveCollection.d.ts +15 -6
  43. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  44. package/lib/cjs/curve/CurveCollection.js +15 -6
  45. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  46. package/lib/cjs/curve/CurveCurve.d.ts +1 -1
  47. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  48. package/lib/cjs/curve/CurveCurve.js +2 -1
  49. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  50. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  51. package/lib/cjs/curve/CurveFactory.d.ts +73 -1
  52. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  53. package/lib/cjs/curve/CurveFactory.js +228 -1
  54. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  55. package/lib/cjs/curve/CurveLocationDetail.d.ts +21 -0
  56. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  57. package/lib/cjs/curve/CurveLocationDetail.js +59 -0
  58. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  59. package/lib/cjs/curve/CurveOps.js.map +1 -1
  60. package/lib/cjs/curve/CurvePrimitive.d.ts +13 -12
  61. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  62. package/lib/cjs/curve/CurvePrimitive.js +12 -11
  63. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  64. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  65. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  66. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  67. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  68. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  69. package/lib/cjs/curve/LineString3d.js.map +1 -1
  70. package/lib/cjs/curve/Loop.js.map +1 -1
  71. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  72. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  73. package/lib/cjs/curve/Path.js.map +1 -1
  74. package/lib/cjs/curve/PointString3d.js.map +1 -1
  75. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  76. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  77. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  78. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  79. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  80. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  81. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  82. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  83. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  84. package/lib/cjs/curve/RegionOps.d.ts +17 -4
  85. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  86. package/lib/cjs/curve/RegionOps.js +114 -18
  87. package/lib/cjs/curve/RegionOps.js.map +1 -1
  88. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +3 -11
  89. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  90. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +1 -91
  91. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  92. package/lib/cjs/curve/StrokeOptions.d.ts +13 -6
  93. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  94. package/lib/cjs/curve/StrokeOptions.js +13 -6
  95. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  96. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +1 -1
  98. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -1
  99. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js +1 -2
  100. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts +1 -1
  102. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts.map +1 -1
  103. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +1 -2
  104. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  105. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  106. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  107. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  108. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
  109. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  110. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +1 -2
  111. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  112. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  113. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +113 -103
  114. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  115. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +368 -337
  116. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +2 -3
  118. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  119. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +20 -32
  120. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  125. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  126. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  127. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/PointToCurveTangentHandler.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  131. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/geometry2d/ConstrainedImplicitCurve2d.js.map +1 -1
  134. package/lib/cjs/curve/internalContexts/geometry2d/ConstraintSet.js.map +1 -1
  135. package/lib/cjs/curve/internalContexts/geometry2d/ImplicitCurve2d.js.map +1 -1
  136. package/lib/cjs/curve/internalContexts/geometry2d/ImplicitCurve2dConverter.js.map +1 -1
  137. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedCircle2d.js.map +1 -1
  138. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedEllipse2d.js.map +1 -1
  139. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedHyperbola2d.js.map +1 -1
  140. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedLine2d.js.map +1 -1
  141. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedParabola2d.js.map +1 -1
  142. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  143. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  144. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  145. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  146. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  147. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +1 -2
  148. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  149. package/lib/cjs/curve/spiral/DirectSpiral3d.js +9 -3
  150. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +1 -2
  152. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  153. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +10 -4
  154. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  155. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  156. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  157. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  158. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  159. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  160. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  161. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  162. package/lib/cjs/geometry3d/AngleSweep.d.ts +3 -1
  163. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  164. package/lib/cjs/geometry3d/AngleSweep.js +6 -2
  165. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  166. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  167. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  168. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  169. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  170. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  171. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  172. package/lib/cjs/geometry3d/GeometryHandler.d.ts +33 -4
  173. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  174. package/lib/cjs/geometry3d/GeometryHandler.js +79 -1
  175. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  176. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  177. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  178. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +9 -6
  179. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  180. package/lib/cjs/geometry3d/GrowableXYArray.js +20 -10
  181. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  182. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +9 -6
  183. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  184. package/lib/cjs/geometry3d/GrowableXYZArray.js +20 -10
  185. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  186. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  187. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  188. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  189. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  190. package/lib/cjs/geometry3d/Matrix3d.d.ts +4 -4
  191. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  192. package/lib/cjs/geometry3d/Matrix3d.js +5 -4
  193. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  194. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  195. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  196. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  197. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  198. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  199. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  200. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  201. package/lib/cjs/geometry3d/Point3dVector3d.js +1 -1
  202. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  203. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  204. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  205. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  206. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  207. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  208. package/lib/cjs/geometry3d/Range.js.map +1 -1
  209. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  210. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  211. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  212. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  213. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  214. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  215. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  216. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  217. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  218. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  219. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  220. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  221. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  222. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  223. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  224. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  225. package/lib/cjs/numerics/BezierPolynomials.js +1 -1
  226. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  227. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  228. package/lib/cjs/numerics/Complex.js.map +1 -1
  229. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  230. package/lib/cjs/numerics/Newton.d.ts +44 -13
  231. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  232. package/lib/cjs/numerics/Newton.js +73 -23
  233. package/lib/cjs/numerics/Newton.js.map +1 -1
  234. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  235. package/lib/cjs/numerics/PolarData.js.map +1 -1
  236. package/lib/cjs/numerics/Polynomials.d.ts +1 -1
  237. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  238. package/lib/cjs/numerics/Polynomials.js +21 -9
  239. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  240. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  241. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  242. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  243. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  244. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  245. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  246. package/lib/cjs/polyface/AuxData.js.map +1 -1
  247. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  248. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  249. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  250. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  251. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  252. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  253. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  254. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  255. package/lib/cjs/polyface/Polyface.js.map +1 -1
  256. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  257. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  258. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  259. package/lib/cjs/polyface/PolyfaceQuery.d.ts +14 -14
  260. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  261. package/lib/cjs/polyface/PolyfaceQuery.js +14 -14
  262. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  263. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  264. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  265. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  266. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  267. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  268. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  269. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  270. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  271. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  272. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  273. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  274. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  275. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  276. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  277. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  278. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  279. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  280. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  281. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  282. package/lib/cjs/serialization/BGFBReader.js +2 -2
  283. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  284. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  285. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  286. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  287. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  288. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  289. package/lib/cjs/solid/Box.js.map +1 -1
  290. package/lib/cjs/solid/Cone.js.map +1 -1
  291. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  292. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  293. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  294. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  295. package/lib/cjs/solid/Sphere.js.map +1 -1
  296. package/lib/cjs/solid/SweepContour.js.map +1 -1
  297. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  298. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  299. package/lib/cjs/topology/Graph.d.ts +15 -15
  300. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  301. package/lib/cjs/topology/Graph.js +1 -1
  302. package/lib/cjs/topology/Graph.js.map +1 -1
  303. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  304. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +3 -3
  305. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  306. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  307. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  308. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  309. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  310. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  311. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  312. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  313. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  314. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  315. package/lib/cjs/topology/MaskManager.js.map +1 -1
  316. package/lib/cjs/topology/Merging.js.map +1 -1
  317. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  318. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  319. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  320. package/lib/cjs/topology/Triangulation.js.map +1 -1
  321. package/lib/cjs/topology/Voronoi.js.map +1 -1
  322. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  323. package/lib/esm/Constant.js.map +1 -1
  324. package/lib/esm/Geometry.d.ts +10 -7
  325. package/lib/esm/Geometry.d.ts.map +1 -1
  326. package/lib/esm/Geometry.js +8 -6
  327. package/lib/esm/Geometry.js.map +1 -1
  328. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  329. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  330. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  331. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  332. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  333. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  334. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  335. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  336. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  337. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  338. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  339. package/lib/esm/bspline/KnotVector.js.map +1 -1
  340. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  341. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  342. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  343. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  344. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  345. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  346. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  347. package/lib/esm/clipping/ClipVector.js.map +1 -1
  348. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  349. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  350. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  351. package/lib/esm/core-geometry.js.map +1 -1
  352. package/lib/esm/curve/Arc3d.d.ts +7 -0
  353. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  354. package/lib/esm/curve/Arc3d.js +18 -6
  355. package/lib/esm/curve/Arc3d.js.map +1 -1
  356. package/lib/esm/curve/ConstrainedCurve2d.js.map +1 -1
  357. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  358. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  359. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -2
  360. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  361. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -15
  362. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  363. package/lib/esm/curve/CurveCollection.d.ts +15 -6
  364. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  365. package/lib/esm/curve/CurveCollection.js +15 -6
  366. package/lib/esm/curve/CurveCollection.js.map +1 -1
  367. package/lib/esm/curve/CurveCurve.d.ts +1 -1
  368. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  369. package/lib/esm/curve/CurveCurve.js +2 -1
  370. package/lib/esm/curve/CurveCurve.js.map +1 -1
  371. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  372. package/lib/esm/curve/CurveFactory.d.ts +73 -1
  373. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  374. package/lib/esm/curve/CurveFactory.js +228 -1
  375. package/lib/esm/curve/CurveFactory.js.map +1 -1
  376. package/lib/esm/curve/CurveLocationDetail.d.ts +21 -0
  377. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  378. package/lib/esm/curve/CurveLocationDetail.js +59 -0
  379. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  380. package/lib/esm/curve/CurveOps.js.map +1 -1
  381. package/lib/esm/curve/CurvePrimitive.d.ts +13 -12
  382. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  383. package/lib/esm/curve/CurvePrimitive.js +12 -11
  384. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  385. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  386. package/lib/esm/curve/CurveTypes.js.map +1 -1
  387. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  388. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  389. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  390. package/lib/esm/curve/LineString3d.js.map +1 -1
  391. package/lib/esm/curve/Loop.js.map +1 -1
  392. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  393. package/lib/esm/curve/ParityRegion.js.map +1 -1
  394. package/lib/esm/curve/Path.js.map +1 -1
  395. package/lib/esm/curve/PointString3d.js.map +1 -1
  396. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  397. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  398. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  399. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  400. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  401. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  402. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  403. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  404. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  405. package/lib/esm/curve/RegionOps.d.ts +17 -4
  406. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  407. package/lib/esm/curve/RegionOps.js +116 -20
  408. package/lib/esm/curve/RegionOps.js.map +1 -1
  409. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +3 -11
  410. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  411. package/lib/esm/curve/RegionOpsClassificationSweeps.js +2 -92
  412. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  413. package/lib/esm/curve/StrokeOptions.d.ts +13 -6
  414. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  415. package/lib/esm/curve/StrokeOptions.js +13 -6
  416. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  417. package/lib/esm/curve/UnionRegion.js.map +1 -1
  418. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +1 -1
  419. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -1
  420. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js +1 -2
  421. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  422. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts +1 -1
  423. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts.map +1 -1
  424. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +1 -2
  425. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  426. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  427. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  428. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  429. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
  430. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  431. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +1 -2
  432. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  433. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  434. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +113 -103
  435. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  436. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +370 -339
  437. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  438. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +2 -3
  439. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  440. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +20 -32
  441. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  442. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  443. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  444. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  445. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  446. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  447. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  448. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  449. package/lib/esm/curve/internalContexts/PointToCurveTangentHandler.js.map +1 -1
  450. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  451. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  452. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  453. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  454. package/lib/esm/curve/internalContexts/geometry2d/ConstrainedImplicitCurve2d.js.map +1 -1
  455. package/lib/esm/curve/internalContexts/geometry2d/ConstraintSet.js.map +1 -1
  456. package/lib/esm/curve/internalContexts/geometry2d/ImplicitCurve2d.js.map +1 -1
  457. package/lib/esm/curve/internalContexts/geometry2d/ImplicitCurve2dConverter.js.map +1 -1
  458. package/lib/esm/curve/internalContexts/geometry2d/UnboundedCircle2d.js.map +1 -1
  459. package/lib/esm/curve/internalContexts/geometry2d/UnboundedEllipse2d.js.map +1 -1
  460. package/lib/esm/curve/internalContexts/geometry2d/UnboundedHyperbola2d.js.map +1 -1
  461. package/lib/esm/curve/internalContexts/geometry2d/UnboundedLine2d.js.map +1 -1
  462. package/lib/esm/curve/internalContexts/geometry2d/UnboundedParabola2d.js.map +1 -1
  463. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  464. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  465. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  466. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  467. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  468. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +1 -2
  469. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  470. package/lib/esm/curve/spiral/DirectSpiral3d.js +9 -3
  471. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  472. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +1 -2
  473. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  474. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +10 -4
  475. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  476. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  477. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  478. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  479. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  480. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  481. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  482. package/lib/esm/geometry3d/Angle.js.map +1 -1
  483. package/lib/esm/geometry3d/AngleSweep.d.ts +3 -1
  484. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  485. package/lib/esm/geometry3d/AngleSweep.js +6 -2
  486. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  487. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  488. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  489. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  490. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  491. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  492. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  493. package/lib/esm/geometry3d/GeometryHandler.d.ts +33 -4
  494. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  495. package/lib/esm/geometry3d/GeometryHandler.js +77 -0
  496. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  497. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  498. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  499. package/lib/esm/geometry3d/GrowableXYArray.d.ts +9 -6
  500. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  501. package/lib/esm/geometry3d/GrowableXYArray.js +20 -10
  502. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  503. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +9 -6
  504. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  505. package/lib/esm/geometry3d/GrowableXYZArray.js +20 -10
  506. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  507. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  508. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  509. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  510. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  511. package/lib/esm/geometry3d/Matrix3d.d.ts +4 -4
  512. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  513. package/lib/esm/geometry3d/Matrix3d.js +5 -4
  514. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  515. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  516. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  517. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  518. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  519. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  520. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  521. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  522. package/lib/esm/geometry3d/Point3dVector3d.js +1 -1
  523. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  524. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  525. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  526. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  527. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  528. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  529. package/lib/esm/geometry3d/Range.js.map +1 -1
  530. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  531. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  532. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  533. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  534. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  535. package/lib/esm/geometry3d/Transform.js.map +1 -1
  536. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  537. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  538. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  539. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  540. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  541. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  542. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  543. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  544. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  545. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  546. package/lib/esm/numerics/BezierPolynomials.js +1 -1
  547. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  548. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  549. package/lib/esm/numerics/Complex.js.map +1 -1
  550. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  551. package/lib/esm/numerics/Newton.d.ts +44 -13
  552. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  553. package/lib/esm/numerics/Newton.js +71 -22
  554. package/lib/esm/numerics/Newton.js.map +1 -1
  555. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  556. package/lib/esm/numerics/PolarData.js.map +1 -1
  557. package/lib/esm/numerics/Polynomials.d.ts +1 -1
  558. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  559. package/lib/esm/numerics/Polynomials.js +21 -9
  560. package/lib/esm/numerics/Polynomials.js.map +1 -1
  561. package/lib/esm/numerics/Quadrature.js.map +1 -1
  562. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  563. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  564. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  565. package/lib/esm/numerics/UnionFind.js.map +1 -1
  566. package/lib/esm/numerics/UsageSums.js.map +1 -1
  567. package/lib/esm/polyface/AuxData.js.map +1 -1
  568. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  569. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  570. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  571. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  572. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  573. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  574. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  575. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  576. package/lib/esm/polyface/Polyface.js.map +1 -1
  577. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  578. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  579. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  580. package/lib/esm/polyface/PolyfaceQuery.d.ts +14 -14
  581. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  582. package/lib/esm/polyface/PolyfaceQuery.js +14 -14
  583. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  584. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  585. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  586. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  587. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  588. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  589. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  590. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  591. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  592. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  593. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  594. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  595. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  596. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  597. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  598. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  599. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  600. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  601. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  602. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  603. package/lib/esm/serialization/BGFBReader.js +2 -2
  604. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  605. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  606. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  607. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  608. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  609. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  610. package/lib/esm/solid/Box.js.map +1 -1
  611. package/lib/esm/solid/Cone.js.map +1 -1
  612. package/lib/esm/solid/LinearSweep.js.map +1 -1
  613. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  614. package/lib/esm/solid/RuledSweep.js.map +1 -1
  615. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  616. package/lib/esm/solid/Sphere.js.map +1 -1
  617. package/lib/esm/solid/SweepContour.js.map +1 -1
  618. package/lib/esm/solid/TorusPipe.js.map +1 -1
  619. package/lib/esm/topology/ChainMerge.js.map +1 -1
  620. package/lib/esm/topology/Graph.d.ts +15 -15
  621. package/lib/esm/topology/Graph.d.ts.map +1 -1
  622. package/lib/esm/topology/Graph.js +1 -1
  623. package/lib/esm/topology/Graph.js.map +1 -1
  624. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  625. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +3 -3
  626. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  627. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  628. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  629. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  630. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  631. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  632. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  633. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  634. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  635. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  636. package/lib/esm/topology/MaskManager.js.map +1 -1
  637. package/lib/esm/topology/Merging.js.map +1 -1
  638. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  639. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  640. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  641. package/lib/esm/topology/Triangulation.js.map +1 -1
  642. package/lib/esm/topology/Voronoi.js.map +1 -1
  643. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  644. package/package.json +3 -3
  645. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +0 -23
  646. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +0 -1
  647. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +0 -37
  648. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +0 -1
  649. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +0 -23
  650. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +0 -1
  651. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +0 -33
  652. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConstrainedCurve2d.js","sourceRoot":"","sources":["../../../src/curve/ConstrainedCurve2d.ts"],"names":[],"mappings":"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","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/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Point2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Arc3d } from \"./Arc3d\";\r\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"./CurveLocationDetail\";\r\nimport { CurvePrimitive } from \"./CurvePrimitive\";\r\nimport { ConstrainedImplicitCurve2d } from \"./internalContexts/geometry2d/ConstrainedImplicitCurve2d\";\r\nimport { ImplicitCurve2d, ImplicitGeometryMarkup } from \"./internalContexts/geometry2d/ImplicitCurve2d\";\r\nimport { ImplicitCurve2dConverter } from \"./internalContexts/geometry2d/ImplicitCurve2dConverter\";\r\nimport { UnboundedCircle2dByCenterAndRadius } from \"./internalContexts/geometry2d/UnboundedCircle2d\";\r\nimport { UnboundedLine2dByPointAndNormal } from \"./internalContexts/geometry2d/UnboundedLine2d\";\r\nimport { LineSegment3d } from \"./LineSegment3d\";\r\n\r\n/**\r\n * The class has static methods to compute circles and lines with specified constrained (tangent to other lines/circles,\r\n * perpendicular to other lines/circles, or a specified circle radius).\r\n * * z components of the input curves are completely ignored.\r\n * * In this API, a `LineSegment3d` input identifies the underlying unbounded line by its endpoints. The segment\r\n * itself is bounded, but the geometric line constraint is applied as unbounded.\r\n * * Each API not only returns the circles or lines that satisfy the constraints but also captures the input curve\r\n * location details where the tangency/perpendicularity happens. Each returned element contains:\r\n * * the curve (circle or line) that satisfies the constraints.\r\n * * an array of {@link CurveLocationDetailPair} objects, where each pair holds:\r\n * * `detailA`: the result curve with the contact point and fraction on the curve.\r\n * * `detailB`: the input constraint curve with the same contact point and fraction on the constraint curve.\r\n * @alpha\r\n */\r\nexport class ConstrainedCurve2d {\r\n /**\r\n * Return all (i.e., up to 4) circles that are tangent to 3 given lines plus data about tangent points/fractions.\r\n * @param lineA first line\r\n * @param lineB second line\r\n * @param lineC third line\r\n */\r\n public static circlesTangentLineLineLine(\r\n lineA: LineSegment3d,\r\n lineB: LineSegment3d,\r\n lineC: LineSegment3d,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\r\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\r\n const implicitLineC = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineC);\r\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitLineC instanceof UnboundedLine2dByPointAndNormal))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLL(implicitLineA, implicitLineB, implicitLineC);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [lineA, lineB, lineC]);\r\n }\r\n /**\r\n * Return all (i.e., up to 2) unbounded lines perpendicular to a line and tangent to a circle plus data about\r\n * perp/tangent points/fractions.\r\n * @param line the line\r\n * @param circle the circle\r\n */\r\n public static linesPerpLineTangentCircle(\r\n line: LineSegment3d,\r\n circle: Arc3d,\r\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circle))\r\n return undefined;\r\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\r\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\r\n if (!(implicitLine instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.linesPerpLTangentC(implicitLine, implicitCircle);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, false, [line, circle]);\r\n }\r\n /**\r\n * Return all (i.e., 4) variants of the line perpendicular to 2 circles (line between centers, with ends at\r\n * crossing points on respective circles) plus data about perp points/fractions.\r\n * @param circleA first circle\r\n * @param circleB second circle\r\n */\r\n public static linesPerpCirclePerpCircle(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (!circleA.isCircular || !circleB.isCircular)\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.linesPerpCPerpC(implicitCircleA, implicitCircleB);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\r\n }\r\n /**\r\n * Return all (i.e., up to 2) unbounded lines perpendicular to a line and a circle plus data about perp points/fractions.\r\n * @param line the line\r\n * @param circle the circle\r\n */\r\n public static linesPerpLinePerpCircle(\r\n line: LineSegment3d,\r\n circle: Arc3d,\r\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circle))\r\n return undefined;\r\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\r\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\r\n if (!(implicitLine instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.linesPerpLPerpC(implicitLine, implicitCircle);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, false, [line, circle]);\r\n }\r\n /**\r\n * Return all (i.e., up to 4) unbounded lines perpendicular to a circle and tangent to a circle plus data about\r\n * perp/tangent points/fractions.\r\n * Note that multiple colinear lines are returned tagged with diametrically opposing points of circleA.\r\n * @param circleA first circle (for perpendicular constraint)\r\n * @param circleB second circle (for tangent constraint)\r\n */\r\n public static linesPerpCircleTangentCircle(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.linesPerpCTangentC(implicitCircleA, implicitCircleB);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\r\n }\r\n /**\r\n * Return all (i.e., up to 4) unbounded lines tangent to 2 circles plus data about tangent points/fractions.\r\n * * There are 4 lines if there is neither intersection nor containment between the circles\r\n * * There are 2 lines if the circles intersect\r\n * * There are no lines if one circle is entirely inside the other.\r\n * @param circleA first circle\r\n * @param circleB second circle\r\n */\r\n public static linesTangentCircleCircle(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.linesTangentCC(implicitCircleA, implicitCircleB);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\r\n }\r\n /**\r\n * Return all (i.e., up to 8) circles tangent to two lines and a circle plus data about tangent points/fractions.\r\n * @param lineA first line\r\n * @param lineB second line\r\n * @param circle the circle\r\n */\r\n public static circlesTangentLineLineCircle(\r\n lineA: LineSegment3d,\r\n lineB: LineSegment3d,\r\n circle: Arc3d,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circle))\r\n return undefined;\r\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\r\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\r\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\r\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLC(implicitLineA, implicitLineB, implicitCircle);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [lineA, lineB, circle]);\r\n }\r\n /**\r\n * Return all (i.e., up to 4) circles tangent to 2 circles and a line plus data about tangent points/fractions.\r\n * @param circleA first circle\r\n * @param circleB second circle\r\n * @param line the line\r\n */\r\n public static circlesTangentCircleCircleLine(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n line: LineSegment3d,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitLine instanceof UnboundedLine2dByPointAndNormal))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCL(implicitCircleA, implicitCircleB, implicitLine);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [circleA, circleB, line]);\r\n }\r\n /**\r\n * Return all (i.e., up to 8) circles tangent to 3 circles plus data about tangent points/fractions.\r\n * @param circleA first circle\r\n * @param circleB second circle\r\n * @param circleC third circle\r\n */\r\n public static circlesTangentCircleCircleCircle(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n circleC: Arc3d,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB) || isNotCircularOrPoint(circleC))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n const implicitCircleC = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleC);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleC instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCC(implicitCircleA, implicitCircleB, implicitCircleC);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [circleA, circleB, circleC]);\r\n }\r\n /**\r\n * Compute circles of specified radius tangent to each of the lines plus data about tangent points/fractions.\r\n * * There are normally 4 circles.\r\n * * Returns undefined when the lines are parallel.\r\n * @param lineA first line\r\n * @param lineB second line\r\n * @param radius radius of tangent circles.\r\n */\r\n public static circlesTangentLineLineRadius(\r\n lineA: LineSegment3d,\r\n lineB: LineSegment3d,\r\n radius: number,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\r\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\r\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\r\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLR(implicitLineA, implicitLineB, radius);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [lineA, lineB]);\r\n }\r\n /**\r\n * Compute circles of specified radius tangent to both a circle and a line plus data about tangent points/fractions.\r\n * * There can be 0 to 8 circles.\r\n * @param circle the circle\r\n * @param line the line\r\n * @param radius radius of tangent circles\r\n */\r\n public static circlesTangentCircleLineRadius(\r\n circle: Arc3d,\r\n line: LineSegment3d,\r\n radius: number,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circle))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\r\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentCLR(implicitCircleA, implicitLineB, radius);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [circle, line]);\r\n }\r\n /**\r\n * Compute circles of specified radius tangent to both circles plus data about tangent points/fractions.\r\n * * There can be 0 to 8 circles.\r\n * @param circleA the first circle\r\n * @param circleB the second circle\r\n * @param radius radius of tangent circles\r\n */\r\n public static circlesTangentCircleCircleRadius(\r\n circleA: Arc3d,\r\n circleB: Arc3d,\r\n radius: number,\r\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\r\n return undefined;\r\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\r\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\r\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\r\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\r\n return undefined;\r\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCR(implicitCircleA, implicitCircleB, radius);\r\n if (markups === undefined)\r\n return undefined;\r\n return getCircleOrLineMarkups(markups, true, [circleA, circleB]);\r\n }\r\n}\r\n\r\n// return true if the input is not a circular arc\r\nfunction isNotCircularArc(cp: CurvePrimitive): boolean {\r\n return !(cp instanceof Arc3d) || !cp.isCircular;\r\n}\r\n// return true if the curve primitive is not a circle or a point\r\nfunction isNotCircularOrPoint(arc: Arc3d): boolean {\r\n return arc.circularRadius() === undefined && !arc.isDegenerateCircle;\r\n}\r\n// create a CurveLocationDetail for a point on a curve if point is on the curve\r\nfunction makeLocationDetail(curve: CurvePrimitive, contact: Point2d): CurveLocationDetail | undefined {\r\n const contact3d = Point3d.create(contact.x, contact.y, 0);\r\n const detail = curve.closestPointXY(contact3d, true);\r\n if (detail === undefined || detail.a > Geometry.smallMetricDistance)\r\n return undefined;\r\n return detail;\r\n}\r\n// return markups with captured circles or lines and their data\r\nfunction getCircleOrLineMarkups(\r\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: true, originalConstraint: (Arc3d | LineSegment3d)[],\r\n): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined;\r\nfunction getCircleOrLineMarkups(\r\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: false, originalConstraint: (Arc3d | LineSegment3d)[],\r\n): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined;\r\nfunction getCircleOrLineMarkups(\r\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: boolean, originalConstraint: (Arc3d | LineSegment3d)[],\r\n): { curve: Arc3d | LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\r\n const result: { curve: Arc3d | LineSegment3d, details: CurveLocationDetailPair[] }[] = [];\r\n for (const markup of markups) {\r\n const cp = ImplicitCurve2dConverter.createCurvePrimitiveFromImplicitCurve(markup.curve) as CurvePrimitive | undefined;\r\n if (cp === undefined)\r\n return undefined;\r\n if ((expectCircle && isNotCircularArc(cp)) || (!expectCircle && !(cp instanceof LineSegment3d)))\r\n return undefined;\r\n const curve = expectCircle ? cp as Arc3d : cp as LineSegment3d;\r\n const details: CurveLocationDetailPair[] = [];\r\n for (const original of originalConstraint) {\r\n for (const implicitData of markup.data) {\r\n const returnedDetail = makeLocationDetail(original, implicitData.point);\r\n if (returnedDetail !== undefined) {\r\n const detailA = returnedDetail;\r\n const detailB = makeLocationDetail(curve, implicitData.point);\r\n details.push(new CurveLocationDetailPair(detailA, detailB));\r\n markup.data = markup.data.filter(d => d !== implicitData);\r\n break;\r\n }\r\n }\r\n }\r\n result.push({ curve, details });\r\n }\r\n return result.length > 0 ? result : undefined;\r\n}\r\n"]}
1
+ {"version":3,"file":"ConstrainedCurve2d.js","sourceRoot":"","sources":["../../../src/curve/ConstrainedCurve2d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module CartesianGeometry\n */\n\nimport { Geometry } from \"../Geometry\";\nimport { Point2d } from \"../geometry3d/Point2dVector2d\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\nimport { Arc3d } from \"./Arc3d\";\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"./CurveLocationDetail\";\nimport { CurvePrimitive } from \"./CurvePrimitive\";\nimport { ConstrainedImplicitCurve2d } from \"./internalContexts/geometry2d/ConstrainedImplicitCurve2d\";\nimport { ImplicitCurve2d, ImplicitGeometryMarkup } from \"./internalContexts/geometry2d/ImplicitCurve2d\";\nimport { ImplicitCurve2dConverter } from \"./internalContexts/geometry2d/ImplicitCurve2dConverter\";\nimport { UnboundedCircle2dByCenterAndRadius } from \"./internalContexts/geometry2d/UnboundedCircle2d\";\nimport { UnboundedLine2dByPointAndNormal } from \"./internalContexts/geometry2d/UnboundedLine2d\";\nimport { LineSegment3d } from \"./LineSegment3d\";\n\n/**\n * The class has static methods to compute circles and lines with specified constrained (tangent to other lines/circles,\n * perpendicular to other lines/circles, or a specified circle radius).\n * * z components of the input curves are completely ignored.\n * * In this API, a `LineSegment3d` input identifies the underlying unbounded line by its endpoints. The segment\n * itself is bounded, but the geometric line constraint is applied as unbounded.\n * * Each API not only returns the circles or lines that satisfy the constraints but also captures the input curve\n * location details where the tangency/perpendicularity happens. Each returned element contains:\n * * the curve (circle or line) that satisfies the constraints.\n * * an array of {@link CurveLocationDetailPair} objects, where each pair holds:\n * * `detailA`: the result curve with the contact point and fraction on the curve.\n * * `detailB`: the input constraint curve with the same contact point and fraction on the constraint curve.\n * @alpha\n */\nexport class ConstrainedCurve2d {\n /**\n * Return all (i.e., up to 4) circles that are tangent to 3 given lines plus data about tangent points/fractions.\n * @param lineA first line\n * @param lineB second line\n * @param lineC third line\n */\n public static circlesTangentLineLineLine(\n lineA: LineSegment3d,\n lineB: LineSegment3d,\n lineC: LineSegment3d,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\n const implicitLineC = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineC);\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitLineC instanceof UnboundedLine2dByPointAndNormal))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLL(implicitLineA, implicitLineB, implicitLineC);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [lineA, lineB, lineC]);\n }\n /**\n * Return all (i.e., up to 2) unbounded lines perpendicular to a line and tangent to a circle plus data about\n * perp/tangent points/fractions.\n * @param line the line\n * @param circle the circle\n */\n public static linesPerpLineTangentCircle(\n line: LineSegment3d,\n circle: Arc3d,\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circle))\n return undefined;\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\n if (!(implicitLine instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.linesPerpLTangentC(implicitLine, implicitCircle);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, false, [line, circle]);\n }\n /**\n * Return all (i.e., 4) variants of the line perpendicular to 2 circles (line between centers, with ends at\n * crossing points on respective circles) plus data about perp points/fractions.\n * @param circleA first circle\n * @param circleB second circle\n */\n public static linesPerpCirclePerpCircle(\n circleA: Arc3d,\n circleB: Arc3d,\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (!circleA.isCircular || !circleB.isCircular)\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.linesPerpCPerpC(implicitCircleA, implicitCircleB);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\n }\n /**\n * Return all (i.e., up to 2) unbounded lines perpendicular to a line and a circle plus data about perp points/fractions.\n * @param line the line\n * @param circle the circle\n */\n public static linesPerpLinePerpCircle(\n line: LineSegment3d,\n circle: Arc3d,\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circle))\n return undefined;\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\n if (!(implicitLine instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.linesPerpLPerpC(implicitLine, implicitCircle);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, false, [line, circle]);\n }\n /**\n * Return all (i.e., up to 4) unbounded lines perpendicular to a circle and tangent to a circle plus data about\n * perp/tangent points/fractions.\n * Note that multiple colinear lines are returned tagged with diametrically opposing points of circleA.\n * @param circleA first circle (for perpendicular constraint)\n * @param circleB second circle (for tangent constraint)\n */\n public static linesPerpCircleTangentCircle(\n circleA: Arc3d,\n circleB: Arc3d,\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.linesPerpCTangentC(implicitCircleA, implicitCircleB);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\n }\n /**\n * Return all (i.e., up to 4) unbounded lines tangent to 2 circles plus data about tangent points/fractions.\n * * There are 4 lines if there is neither intersection nor containment between the circles\n * * There are 2 lines if the circles intersect\n * * There are no lines if one circle is entirely inside the other.\n * @param circleA first circle\n * @param circleB second circle\n */\n public static linesTangentCircleCircle(\n circleA: Arc3d,\n circleB: Arc3d,\n ): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.linesTangentCC(implicitCircleA, implicitCircleB);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, false, [circleA, circleB]);\n }\n /**\n * Return all (i.e., up to 8) circles tangent to two lines and a circle plus data about tangent points/fractions.\n * @param lineA first line\n * @param lineB second line\n * @param circle the circle\n */\n public static circlesTangentLineLineCircle(\n lineA: LineSegment3d,\n lineB: LineSegment3d,\n circle: Arc3d,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circle))\n return undefined;\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\n const implicitCircle = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitCircle instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLC(implicitLineA, implicitLineB, implicitCircle);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [lineA, lineB, circle]);\n }\n /**\n * Return all (i.e., up to 4) circles tangent to 2 circles and a line plus data about tangent points/fractions.\n * @param circleA first circle\n * @param circleB second circle\n * @param line the line\n */\n public static circlesTangentCircleCircleLine(\n circleA: Arc3d,\n circleB: Arc3d,\n line: LineSegment3d,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n const implicitLine = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitLine instanceof UnboundedLine2dByPointAndNormal))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCL(implicitCircleA, implicitCircleB, implicitLine);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [circleA, circleB, line]);\n }\n /**\n * Return all (i.e., up to 8) circles tangent to 3 circles plus data about tangent points/fractions.\n * @param circleA first circle\n * @param circleB second circle\n * @param circleC third circle\n */\n public static circlesTangentCircleCircleCircle(\n circleA: Arc3d,\n circleB: Arc3d,\n circleC: Arc3d,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB) || isNotCircularOrPoint(circleC))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n const implicitCircleC = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleC);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleC instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCC(implicitCircleA, implicitCircleB, implicitCircleC);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [circleA, circleB, circleC]);\n }\n /**\n * Compute circles of specified radius tangent to each of the lines plus data about tangent points/fractions.\n * * There are normally 4 circles.\n * * Returns undefined when the lines are parallel.\n * @param lineA first line\n * @param lineB second line\n * @param radius radius of tangent circles.\n */\n public static circlesTangentLineLineRadius(\n lineA: LineSegment3d,\n lineB: LineSegment3d,\n radius: number,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n const implicitLineA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineA);\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(lineB);\n if (!(implicitLineA instanceof UnboundedLine2dByPointAndNormal)\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentLLR(implicitLineA, implicitLineB, radius);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [lineA, lineB]);\n }\n /**\n * Compute circles of specified radius tangent to both a circle and a line plus data about tangent points/fractions.\n * * There can be 0 to 8 circles.\n * @param circle the circle\n * @param line the line\n * @param radius radius of tangent circles\n */\n public static circlesTangentCircleLineRadius(\n circle: Arc3d,\n line: LineSegment3d,\n radius: number,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circle))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circle);\n const implicitLineB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(line);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitLineB instanceof UnboundedLine2dByPointAndNormal))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentCLR(implicitCircleA, implicitLineB, radius);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [circle, line]);\n }\n /**\n * Compute circles of specified radius tangent to both circles plus data about tangent points/fractions.\n * * There can be 0 to 8 circles.\n * @param circleA the first circle\n * @param circleB the second circle\n * @param radius radius of tangent circles\n */\n public static circlesTangentCircleCircleRadius(\n circleA: Arc3d,\n circleB: Arc3d,\n radius: number,\n ): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined {\n if (isNotCircularOrPoint(circleA) || isNotCircularOrPoint(circleB))\n return undefined;\n const implicitCircleA = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleA);\n const implicitCircleB = ImplicitCurve2dConverter.createImplicitCurve2dFromCurvePrimitiveXY(circleB);\n if (!(implicitCircleA instanceof UnboundedCircle2dByCenterAndRadius)\n || !(implicitCircleB instanceof UnboundedCircle2dByCenterAndRadius))\n return undefined;\n const markups = ConstrainedImplicitCurve2d.circlesTangentCCR(implicitCircleA, implicitCircleB, radius);\n if (markups === undefined)\n return undefined;\n return getCircleOrLineMarkups(markups, true, [circleA, circleB]);\n }\n}\n\n// return true if the input is not a circular arc\nfunction isNotCircularArc(cp: CurvePrimitive): boolean {\n return !(cp instanceof Arc3d) || !cp.isCircular;\n}\n// return true if the curve primitive is not a circle or a point\nfunction isNotCircularOrPoint(arc: Arc3d): boolean {\n return arc.circularRadius() === undefined && !arc.isDegenerateCircle;\n}\n// create a CurveLocationDetail for a point on a curve if point is on the curve\nfunction makeLocationDetail(curve: CurvePrimitive, contact: Point2d): CurveLocationDetail | undefined {\n const contact3d = Point3d.create(contact.x, contact.y, 0);\n const detail = curve.closestPointXY(contact3d, true);\n if (detail === undefined || detail.a > Geometry.smallMetricDistance)\n return undefined;\n return detail;\n}\n// return markups with captured circles or lines and their data\nfunction getCircleOrLineMarkups(\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: true, originalConstraint: (Arc3d | LineSegment3d)[],\n): { curve: Arc3d, details: CurveLocationDetailPair[] }[] | undefined;\nfunction getCircleOrLineMarkups(\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: false, originalConstraint: (Arc3d | LineSegment3d)[],\n): { curve: LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined;\nfunction getCircleOrLineMarkups(\n markups: ImplicitGeometryMarkup<ImplicitCurve2d>[], expectCircle: boolean, originalConstraint: (Arc3d | LineSegment3d)[],\n): { curve: Arc3d | LineSegment3d, details: CurveLocationDetailPair[] }[] | undefined {\n const result: { curve: Arc3d | LineSegment3d, details: CurveLocationDetailPair[] }[] = [];\n for (const markup of markups) {\n const cp = ImplicitCurve2dConverter.createCurvePrimitiveFromImplicitCurve(markup.curve) as CurvePrimitive | undefined;\n if (cp === undefined)\n return undefined;\n if ((expectCircle && isNotCircularArc(cp)) || (!expectCircle && !(cp instanceof LineSegment3d)))\n return undefined;\n const curve = expectCircle ? cp as Arc3d : cp as LineSegment3d;\n const details: CurveLocationDetailPair[] = [];\n for (const original of originalConstraint) {\n for (const implicitData of markup.data) {\n const returnedDetail = makeLocationDetail(original, implicitData.point);\n if (returnedDetail !== undefined) {\n const detailA = returnedDetail;\n const detailB = makeLocationDetail(curve, implicitData.point);\n details.push(new CurveLocationDetailPair(detailA, detailB));\n markup.data = markup.data.filter(d => d !== implicitData);\n break;\n }\n }\n }\n result.push({ curve, details });\n }\n return result.length > 0 ? result : undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConstructCurveBetweenCurves.js","sourceRoot":"","sources":["../../../src/curve/ConstructCurveBetweenCurves.ts"],"names":[],"mappings":"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","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\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { NullGeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Arc3d } from \"./Arc3d\";\r\nimport { GeometryQuery } from \"./GeometryQuery\";\r\nimport { LineSegment3d } from \"./LineSegment3d\";\r\nimport { LineString3d } from \"./LineString3d\";\r\n\r\n/**\r\n * Context for constructing a curve that is interpolated between two other curves.\r\n * * The only callable method is the static `InterpolateBetween`.\r\n * * Other methods are called only by `dispatchToGeometryHandler`\r\n * @public\r\n */\r\nexport class ConstructCurveBetweenCurves extends NullGeometryHandler {\r\n // private geometry0: GeometryQuery; <-- Never used\r\n private _geometry1: GeometryQuery;\r\n private _fraction: number;\r\n private constructor(_geometry0: GeometryQuery, _fraction: number, _geometry1: GeometryQuery) {\r\n super();\r\n // this.geometry0 = _geometry0; <-- Never used\r\n this._geometry1 = _geometry1;\r\n this._fraction = _fraction;\r\n }\r\n\r\n /**\r\n * * To be directly called only by double dispatcher\r\n * * Assumes this.geometry1 was set by calling context.\r\n * * Construct the interpolated curve between this.geometry1 and the supplied segment0.\r\n */\r\n public override handleLineSegment3d(segment0: LineSegment3d): any {\r\n if (this._geometry1 instanceof LineSegment3d) {\r\n const segment1 = this._geometry1;\r\n return LineSegment3d.create(\r\n segment0.startPoint().interpolate(this._fraction, segment1.startPoint()),\r\n segment0.endPoint().interpolate(this._fraction, segment1.endPoint()));\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * * To be directly called only by double dispatcher\r\n * * Assumes this.geometry1 was set by calling context.\r\n * * Construct the interpolated curve between this.geometry1 and the supplied ls0.\r\n */\r\n public override handleLineString3d(ls0: LineString3d): any {\r\n if (this._geometry1 instanceof LineString3d) {\r\n const ls1 = this._geometry1;\r\n if (ls0.numPoints() === ls1.numPoints()) {\r\n const numPoints = ls0.numPoints();\r\n const ls = LineString3d.create();\r\n const workPoint = Point3d.create();\r\n const workPoint0 = Point3d.create();\r\n const workPoint1 = Point3d.create();\r\n const fraction = this._fraction;\r\n for (let i = 0; i < numPoints; i++) {\r\n ls0.pointAt(i, workPoint0);\r\n ls1.pointAt(i, workPoint1);\r\n workPoint0.interpolate(fraction, workPoint1, workPoint);\r\n ls.addPoint(workPoint);\r\n }\r\n if (ls0.fractions && ls1.fractions) {\r\n for (let i = 0; i < numPoints; i++) {\r\n ls.addFraction(Geometry.interpolate(ls0.fractions.atUncheckedIndex(i), fraction, ls1.fractions.atUncheckedIndex(i)));\r\n }\r\n }\r\n if (ls0.strokeData && ls1.strokeData) {\r\n // Policy: simple clone of stroke count map from ls0.\r\n // The curveLength will not match.\r\n // But we expect to be called at a time compatible count and a0,a1 are the important thing.\r\n ls.strokeData = ls0.strokeData.clone();\r\n }\r\n if (ls0.packedDerivatives && ls1.packedDerivatives) {\r\n const workVector0 = Vector3d.create();\r\n const workVector1 = Vector3d.create();\r\n for (let i = 0; i < numPoints; i++) {\r\n ls0.packedDerivatives.getVector3dAtCheckedVectorIndex(i, workVector0);\r\n ls1.packedDerivatives.getVector3dAtCheckedVectorIndex(i, workVector1);\r\n ls.addDerivative(workVector0.interpolate(fraction, workVector1));\r\n }\r\n\r\n }\r\n return ls;\r\n }\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * * To be directly called only by double dispatcher\r\n * * Assumes this.geometry1 was set by calling context.\r\n * * Construct the interpolated curve between this.geometry1 and the supplied arc0.\r\n */\r\n public override handleArc3d(arc0: Arc3d): any {\r\n if (this._geometry1 instanceof Arc3d) {\r\n const arc1 = this._geometry1;\r\n return Arc3d.create(\r\n arc0.center.interpolate(this._fraction, arc1.center),\r\n arc0.vector0.interpolate(this._fraction, arc1.vector0),\r\n arc0.vector90.interpolate(this._fraction, arc1.vector90),\r\n arc0.sweep.interpolate(this._fraction, arc1.sweep));\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Construct a geometry item which is fractionally interpolated between two others.\r\n * * The construction is only supported between certain types:\r\n * * * LineSegment3d+LineSegment3d -- endpoints are interpolated\r\n * * * LineString3d+LineString3d with matching counts. Each point is interpolated.\r\n * * * Arc3d+Arc3d -- center, vector0, vector90, and limit angles of the sweep are interpolated.\r\n * @param geometry0 geometry \"at fraction 0\"\r\n * @param fraction fractional position\r\n * @param geometry1 geometry \"at fraction 1\"\r\n */\r\n public static interpolateBetween(geometry0: GeometryQuery, fraction: number, geometry1: GeometryQuery): GeometryQuery | undefined {\r\n const handler = new ConstructCurveBetweenCurves(geometry0, fraction, geometry1);\r\n return geometry0.dispatchToGeometryHandler(handler);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ConstructCurveBetweenCurves.js","sourceRoot":"","sources":["../../../src/curve/ConstructCurveBetweenCurves.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Curve\n */\n\nimport { Geometry } from \"../Geometry\";\nimport { NullGeometryHandler } from \"../geometry3d/GeometryHandler\";\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\nimport { Arc3d } from \"./Arc3d\";\nimport { GeometryQuery } from \"./GeometryQuery\";\nimport { LineSegment3d } from \"./LineSegment3d\";\nimport { LineString3d } from \"./LineString3d\";\n\n/**\n * Context for constructing a curve that is interpolated between two other curves.\n * * The only callable method is the static `InterpolateBetween`.\n * * Other methods are called only by `dispatchToGeometryHandler`\n * @public\n */\nexport class ConstructCurveBetweenCurves extends NullGeometryHandler {\n // private geometry0: GeometryQuery; <-- Never used\n private _geometry1: GeometryQuery;\n private _fraction: number;\n private constructor(_geometry0: GeometryQuery, _fraction: number, _geometry1: GeometryQuery) {\n super();\n // this.geometry0 = _geometry0; <-- Never used\n this._geometry1 = _geometry1;\n this._fraction = _fraction;\n }\n\n /**\n * * To be directly called only by double dispatcher\n * * Assumes this.geometry1 was set by calling context.\n * * Construct the interpolated curve between this.geometry1 and the supplied segment0.\n */\n public override handleLineSegment3d(segment0: LineSegment3d): any {\n if (this._geometry1 instanceof LineSegment3d) {\n const segment1 = this._geometry1;\n return LineSegment3d.create(\n segment0.startPoint().interpolate(this._fraction, segment1.startPoint()),\n segment0.endPoint().interpolate(this._fraction, segment1.endPoint()));\n }\n return undefined;\n }\n /**\n * * To be directly called only by double dispatcher\n * * Assumes this.geometry1 was set by calling context.\n * * Construct the interpolated curve between this.geometry1 and the supplied ls0.\n */\n public override handleLineString3d(ls0: LineString3d): any {\n if (this._geometry1 instanceof LineString3d) {\n const ls1 = this._geometry1;\n if (ls0.numPoints() === ls1.numPoints()) {\n const numPoints = ls0.numPoints();\n const ls = LineString3d.create();\n const workPoint = Point3d.create();\n const workPoint0 = Point3d.create();\n const workPoint1 = Point3d.create();\n const fraction = this._fraction;\n for (let i = 0; i < numPoints; i++) {\n ls0.pointAt(i, workPoint0);\n ls1.pointAt(i, workPoint1);\n workPoint0.interpolate(fraction, workPoint1, workPoint);\n ls.addPoint(workPoint);\n }\n if (ls0.fractions && ls1.fractions) {\n for (let i = 0; i < numPoints; i++) {\n ls.addFraction(Geometry.interpolate(ls0.fractions.atUncheckedIndex(i), fraction, ls1.fractions.atUncheckedIndex(i)));\n }\n }\n if (ls0.strokeData && ls1.strokeData) {\n // Policy: simple clone of stroke count map from ls0.\n // The curveLength will not match.\n // But we expect to be called at a time compatible count and a0,a1 are the important thing.\n ls.strokeData = ls0.strokeData.clone();\n }\n if (ls0.packedDerivatives && ls1.packedDerivatives) {\n const workVector0 = Vector3d.create();\n const workVector1 = Vector3d.create();\n for (let i = 0; i < numPoints; i++) {\n ls0.packedDerivatives.getVector3dAtCheckedVectorIndex(i, workVector0);\n ls1.packedDerivatives.getVector3dAtCheckedVectorIndex(i, workVector1);\n ls.addDerivative(workVector0.interpolate(fraction, workVector1));\n }\n\n }\n return ls;\n }\n }\n return undefined;\n }\n /**\n * * To be directly called only by double dispatcher\n * * Assumes this.geometry1 was set by calling context.\n * * Construct the interpolated curve between this.geometry1 and the supplied arc0.\n */\n public override handleArc3d(arc0: Arc3d): any {\n if (this._geometry1 instanceof Arc3d) {\n const arc1 = this._geometry1;\n return Arc3d.create(\n arc0.center.interpolate(this._fraction, arc1.center),\n arc0.vector0.interpolate(this._fraction, arc1.vector0),\n arc0.vector90.interpolate(this._fraction, arc1.vector90),\n arc0.sweep.interpolate(this._fraction, arc1.sweep));\n }\n return undefined;\n }\n\n /**\n * Construct a geometry item which is fractionally interpolated between two others.\n * * The construction is only supported between certain types:\n * * * LineSegment3d+LineSegment3d -- endpoints are interpolated\n * * * LineString3d+LineString3d with matching counts. Each point is interpolated.\n * * * Arc3d+Arc3d -- center, vector0, vector90, and limit angles of the sweep are interpolated.\n * @param geometry0 geometry \"at fraction 0\"\n * @param fraction fractional position\n * @param geometry1 geometry \"at fraction 1\"\n */\n public static interpolateBetween(geometry0: GeometryQuery, fraction: number, geometry1: GeometryQuery): GeometryQuery | undefined {\n const handler = new ConstructCurveBetweenCurves(geometry0, fraction, geometry1);\n return geometry0.dispatchToGeometryHandler(handler);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CoordinateXYZ.js","sourceRoot":"","sources":["../../../src/curve/CoordinateXYZ.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,4CAA4C;IAC5B,gBAAgB,GAAG,OAAO,CAAC;IACnC,IAAI,CAAU;IACtB,mDAAmD;IACnD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD;;;OAGG;IACH,YAAoB,GAAY;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,8DAA8D;IACvD,MAAM,CAAC,MAAM,CAAC,KAAc;QACjC,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,kCAAkC;IAC3B,MAAM,CAAC,SAAS,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAE,IAAY,CAAC;QACjE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,qCAAqC;IACrB,KAAK;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,6EAA6E;IACtE,WAAW,CAAC,aAAsB,EAAE,SAAqB;QAC9D,IAAI,SAAS;YACX,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAErF,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,iDAAiD;IAC1C,mBAAmB,CAAC,SAAoB;QAC7C,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kCAAkC;IAC3B,gBAAgB,CAAC,SAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,sBAAsB;IACf,KAAK;QACV,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,8CAA8C;IACvC,mBAAmB,CAAC,KAAoB;QAC7C,OAAO,KAAK,YAAY,aAAa,CAAC;IACxC,CAAC;IACD;;;;;;OAMG;IACa,aAAa,CAAC,KAAoB;QAChD,OAAO,CAAC,KAAK,YAAY,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,+EAA+E;IACxE,yBAAyB,CAAC,OAAwB;QACvD,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,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/** @packageDocumentation\r\n * @module Curve\r\n */\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { GeometryQuery } from \"./GeometryQuery\";\r\n\r\n/**\r\n * A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.\r\n * @public\r\n */\r\nexport class CoordinateXYZ extends GeometryQuery {\r\n /** String name for interface properties. */\r\n public readonly geometryCategory = \"point\";\r\n private _xyz: Point3d;\r\n /** Return a (REFERENCE TO) the coordinate data. */\r\n public get point() {\r\n return this._xyz;\r\n }\r\n /**\r\n * Constructor\r\n * @param xyz point to be CAPTURED.\r\n */\r\n private constructor(xyz: Point3d) {\r\n super();\r\n this._xyz = xyz;\r\n }\r\n /** Create a new CoordinateXYZ containing a CLONE of point. */\r\n public static create(point: Point3d): CoordinateXYZ {\r\n return new CoordinateXYZ(point.clone());\r\n }\r\n /** Create a new CoordinateXYZ. */\r\n public static createXYZ(x: number = 0, y: number = 0, z: number = 0): CoordinateXYZ {\r\n return new CoordinateXYZ(Point3d.create(x, y, z));\r\n }\r\n /** Return the range of the point. */\r\n public override range(): Range3d {\r\n return Range3d.create(this._xyz);\r\n }\r\n /** Extend `rangeToExtend` to include this point (optionally transformed). */\r\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n if (transform)\r\n rangeToExtend.extendTransformedXYZ(transform, this._xyz.x, this._xyz.y, this._xyz.z);\r\n else\r\n rangeToExtend.extend(this._xyz);\r\n }\r\n /** Apply transform to the Coordinate's point. */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n transform.multiplyPoint3d(this._xyz, this._xyz);\r\n return true;\r\n }\r\n /** Return a transformed clone. */\r\n public cloneTransformed(transform: Transform): GeometryQuery | undefined {\r\n const result = new CoordinateXYZ(this._xyz.clone());\r\n result.tryTransformInPlace(transform);\r\n return result;\r\n }\r\n /** Return a clone. */\r\n public clone(): GeometryQuery | undefined {\r\n return new CoordinateXYZ(this._xyz.clone());\r\n }\r\n /** Test if (other instanceof Coordinate). */\r\n public isSameGeometryClass(other: GeometryQuery): boolean {\r\n return other instanceof CoordinateXYZ;\r\n }\r\n /**\r\n * Test for exact structure and nearly identical geometry.\r\n * * Leaf classes must implement.\r\n * * Base class implementation recurses through children.\r\n * * Base implementation is complete for classes with children and no properties.\r\n * * Classes with both children and properties must implement for properties, call super for children.\r\n */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n return (other instanceof CoordinateXYZ) && this._xyz.isAlmostEqual(other._xyz);\r\n }\r\n /** Second step of double dispatch: call `handler.handleCoordinateXYZ(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleCoordinateXYZ(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CoordinateXYZ.js","sourceRoot":"","sources":["../../../src/curve/CoordinateXYZ.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC9C,4CAA4C;IAC5B,gBAAgB,GAAG,OAAO,CAAC;IACnC,IAAI,CAAU;IACtB,mDAAmD;IACnD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD;;;OAGG;IACH,YAAoB,GAAY;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,8DAA8D;IACvD,MAAM,CAAC,MAAM,CAAC,KAAc;QACjC,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,kCAAkC;IAC3B,MAAM,CAAC,SAAS,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAE,IAAY,CAAC;QACjE,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,qCAAqC;IACrB,KAAK;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,6EAA6E;IACtE,WAAW,CAAC,aAAsB,EAAE,SAAqB;QAC9D,IAAI,SAAS;YACX,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YAErF,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,iDAAiD;IAC1C,mBAAmB,CAAC,SAAoB;QAC7C,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kCAAkC;IAC3B,gBAAgB,CAAC,SAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,sBAAsB;IACf,KAAK;QACV,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,8CAA8C;IACvC,mBAAmB,CAAC,KAAoB;QAC7C,OAAO,KAAK,YAAY,aAAa,CAAC;IACxC,CAAC;IACD;;;;;;OAMG;IACa,aAAa,CAAC,KAAoB;QAChD,OAAO,CAAC,KAAK,YAAY,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,+EAA+E;IACxE,yBAAyB,CAAC,OAAwB;QACvD,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Curve\n */\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\nimport { Range3d } from \"../geometry3d/Range\";\nimport { Transform } from \"../geometry3d/Transform\";\nimport { GeometryQuery } from \"./GeometryQuery\";\n\n/**\n * A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.\n * @public\n */\nexport class CoordinateXYZ extends GeometryQuery {\n /** String name for interface properties. */\n public readonly geometryCategory = \"point\";\n private _xyz: Point3d;\n /** Return a (REFERENCE TO) the coordinate data. */\n public get point() {\n return this._xyz;\n }\n /**\n * Constructor\n * @param xyz point to be CAPTURED.\n */\n private constructor(xyz: Point3d) {\n super();\n this._xyz = xyz;\n }\n /** Create a new CoordinateXYZ containing a CLONE of point. */\n public static create(point: Point3d): CoordinateXYZ {\n return new CoordinateXYZ(point.clone());\n }\n /** Create a new CoordinateXYZ. */\n public static createXYZ(x: number = 0, y: number = 0, z: number = 0): CoordinateXYZ {\n return new CoordinateXYZ(Point3d.create(x, y, z));\n }\n /** Return the range of the point. */\n public override range(): Range3d {\n return Range3d.create(this._xyz);\n }\n /** Extend `rangeToExtend` to include this point (optionally transformed). */\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\n if (transform)\n rangeToExtend.extendTransformedXYZ(transform, this._xyz.x, this._xyz.y, this._xyz.z);\n else\n rangeToExtend.extend(this._xyz);\n }\n /** Apply transform to the Coordinate's point. */\n public tryTransformInPlace(transform: Transform): boolean {\n transform.multiplyPoint3d(this._xyz, this._xyz);\n return true;\n }\n /** Return a transformed clone. */\n public cloneTransformed(transform: Transform): GeometryQuery | undefined {\n const result = new CoordinateXYZ(this._xyz.clone());\n result.tryTransformInPlace(transform);\n return result;\n }\n /** Return a clone. */\n public clone(): GeometryQuery | undefined {\n return new CoordinateXYZ(this._xyz.clone());\n }\n /** Test if (other instanceof Coordinate). */\n public isSameGeometryClass(other: GeometryQuery): boolean {\n return other instanceof CoordinateXYZ;\n }\n /**\n * Test for exact structure and nearly identical geometry.\n * * Leaf classes must implement.\n * * Base class implementation recurses through children.\n * * Base implementation is complete for classes with children and no properties.\n * * Classes with both children and properties must implement for properties, call super for children.\n */\n public override isAlmostEqual(other: GeometryQuery): boolean {\n return (other instanceof CoordinateXYZ) && this._xyz.isAlmostEqual(other._xyz);\n }\n /** Second step of double dispatch: call `handler.handleCoordinateXYZ(this)` */\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\n return handler.handleCoordinateXYZ(this);\n }\n}\n"]}
@@ -353,17 +353,26 @@ export declare class CurveChainWithDistanceIndex extends CurvePrimitive {
353
353
  * field copied from the input, but if a PathFragment for `childDetail` cannot be resolved, return undefined.
354
354
  */
355
355
  computeChainDetail(childDetail: CurveLocationDetail, result?: CurveLocationDetail): CurveLocationDetail | undefined;
356
+ /**
357
+ * Given a parent chain, convert the corresponding child detail in the specified pair.
358
+ * * Converted details refer to the chain's global parameterization instead of the child's.
359
+ * * It is assumed that `pair.detailA.curve` is a child of chainA (similarly for chainB).
360
+ * @param pair detail pair to convert in place
361
+ * @param chainA convert pair.detailA to the global parameterization of chainA
362
+ * @param chainB convert pair.detailB to the global parameterization of chainB
363
+ * @return the converted pair
364
+ */
365
+ static convertChildDetailToChainDetailSingle(pair: CurveLocationDetailPair, chainA?: CurveChainWithDistanceIndex, chainB?: CurveChainWithDistanceIndex): CurveLocationDetailPair;
356
366
  /**
357
367
  * Given a parent chain, convert the corresponding child details in the specified pairs.
358
368
  * * Converted details refer to the chain's global parameterization instead of the child's.
359
369
  * * It is assumed that for all i >= index0, `pairs[i].detailA.curve` is a child of chainA (similarly for chainB).
360
- * @param pairs array to mutate
370
+ * @param pairs array of pairs to convert in place
361
371
  * @param index0 convert details of pairs in the tail of the array, starting at index0
362
372
  * @param chainA convert each specified detailA to the global parameterization of chainA
363
373
  * @param chainB convert each specified detailB to the global parameterization of chainB
364
374
  * @param compressAdjacent whether to remove adjacent duplicate pairs after conversion
365
375
  * @return the converted array
366
- * @internal
367
376
  */
368
377
  static convertChildDetailToChainDetail(pairs: CurveLocationDetailPair[], index0: number, chainA?: CurveChainWithDistanceIndex, chainB?: CurveChainWithDistanceIndex, compressAdjacent?: boolean): CurveLocationDetailPair[];
369
378
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CurveChainWithDistanceIndex.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveChainWithDistanceIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CurveChainWithDistanceIndex.d.ts","sourceRoot":"","sources":["../../../src/curve/CurveChainWithDistanceIndex.ts"],"names":[],"mappings":"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"}
@@ -826,32 +826,42 @@ export class CurveChainWithDistanceIndex extends CurvePrimitive {
826
826
  }
827
827
  return undefined;
828
828
  }
829
+ /**
830
+ * Given a parent chain, convert the corresponding child detail in the specified pair.
831
+ * * Converted details refer to the chain's global parameterization instead of the child's.
832
+ * * It is assumed that `pair.detailA.curve` is a child of chainA (similarly for chainB).
833
+ * @param pair detail pair to convert in place
834
+ * @param chainA convert pair.detailA to the global parameterization of chainA
835
+ * @param chainB convert pair.detailB to the global parameterization of chainB
836
+ * @return the converted pair
837
+ */
838
+ static convertChildDetailToChainDetailSingle(pair, chainA, chainB) {
839
+ if (chainA) {
840
+ const chainDetail = chainA.computeChainDetail(pair.detailA);
841
+ if (chainDetail)
842
+ pair.detailA = chainDetail;
843
+ }
844
+ if (chainB) {
845
+ const chainDetail = chainB.computeChainDetail(pair.detailB);
846
+ if (chainDetail)
847
+ pair.detailB = chainDetail;
848
+ }
849
+ return pair;
850
+ }
829
851
  /**
830
852
  * Given a parent chain, convert the corresponding child details in the specified pairs.
831
853
  * * Converted details refer to the chain's global parameterization instead of the child's.
832
854
  * * It is assumed that for all i >= index0, `pairs[i].detailA.curve` is a child of chainA (similarly for chainB).
833
- * @param pairs array to mutate
855
+ * @param pairs array of pairs to convert in place
834
856
  * @param index0 convert details of pairs in the tail of the array, starting at index0
835
857
  * @param chainA convert each specified detailA to the global parameterization of chainA
836
858
  * @param chainB convert each specified detailB to the global parameterization of chainB
837
859
  * @param compressAdjacent whether to remove adjacent duplicate pairs after conversion
838
860
  * @return the converted array
839
- * @internal
840
861
  */
841
862
  static convertChildDetailToChainDetail(pairs, index0, chainA, chainB, compressAdjacent) {
842
- for (let i = index0; i < pairs.length; ++i) {
843
- const childDetailPair = pairs[i];
844
- if (chainA) {
845
- const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
846
- if (chainDetail)
847
- childDetailPair.detailA = chainDetail;
848
- }
849
- if (chainB) {
850
- const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
851
- if (chainDetail)
852
- childDetailPair.detailB = chainDetail;
853
- }
854
- }
863
+ for (let i = index0; i < pairs.length; ++i)
864
+ pairs[i] = this.convertChildDetailToChainDetailSingle(pairs[i], chainA, chainB);
855
865
  if (compressAdjacent)
856
866
  pairs = CurveLocationDetailPair.removeAdjacentDuplicates(pairs, index0);
857
867
  return pairs;