@itwin/core-geometry 5.9.0-dev.8 → 5.9.0-dev.9

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 (637) hide show
  1. package/lib/cjs/Constant.js.map +1 -1
  2. package/lib/cjs/Geometry.d.ts +8 -6
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +8 -6
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  7. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  11. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  12. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  13. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  14. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  15. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  16. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  17. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  18. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  19. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  20. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  21. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  22. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  23. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  24. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  25. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  26. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  27. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  28. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  29. package/lib/cjs/core-geometry.js.map +1 -1
  30. package/lib/cjs/curve/Arc3d.d.ts +7 -0
  31. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  32. package/lib/cjs/curve/Arc3d.js +11 -0
  33. package/lib/cjs/curve/Arc3d.js.map +1 -1
  34. package/lib/cjs/curve/ConstrainedCurve2d.js.map +1 -1
  35. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  36. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  37. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -2
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -15
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  41. package/lib/cjs/curve/CurveCollection.d.ts +15 -6
  42. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.js +15 -6
  44. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  45. package/lib/cjs/curve/CurveCurve.d.ts +1 -1
  46. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  47. package/lib/cjs/curve/CurveCurve.js +2 -1
  48. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  49. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  50. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  51. package/lib/cjs/curve/CurveLocationDetail.d.ts +21 -0
  52. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  53. package/lib/cjs/curve/CurveLocationDetail.js +59 -0
  54. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  55. package/lib/cjs/curve/CurveOps.js.map +1 -1
  56. package/lib/cjs/curve/CurvePrimitive.d.ts +13 -12
  57. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  58. package/lib/cjs/curve/CurvePrimitive.js +12 -11
  59. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  60. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  61. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  62. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  63. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  64. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  65. package/lib/cjs/curve/LineString3d.js.map +1 -1
  66. package/lib/cjs/curve/Loop.js.map +1 -1
  67. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  68. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  69. package/lib/cjs/curve/Path.js.map +1 -1
  70. package/lib/cjs/curve/PointString3d.js.map +1 -1
  71. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  72. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  73. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  74. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  75. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  76. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  77. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  78. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  79. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  80. package/lib/cjs/curve/RegionOps.d.ts +17 -4
  81. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  82. package/lib/cjs/curve/RegionOps.js +114 -18
  83. package/lib/cjs/curve/RegionOps.js.map +1 -1
  84. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +3 -11
  85. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  86. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +1 -91
  87. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  88. package/lib/cjs/curve/StrokeOptions.d.ts +13 -6
  89. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  90. package/lib/cjs/curve/StrokeOptions.js +13 -6
  91. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  92. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +1 -1
  94. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -1
  95. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js +1 -2
  96. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts +1 -1
  98. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts.map +1 -1
  99. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +1 -2
  100. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  104. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
  105. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  106. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +1 -2
  107. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  108. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  109. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +113 -103
  110. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  111. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +368 -337
  112. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  113. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +2 -3
  114. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  115. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +20 -32
  116. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  120. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/PointToCurveTangentHandler.js.map +1 -1
  125. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  126. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  127. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/geometry2d/ConstrainedImplicitCurve2d.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/geometry2d/ConstraintSet.js.map +1 -1
  131. package/lib/cjs/curve/internalContexts/geometry2d/ImplicitCurve2d.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/geometry2d/ImplicitCurve2dConverter.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedCircle2d.js.map +1 -1
  134. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedEllipse2d.js.map +1 -1
  135. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedHyperbola2d.js.map +1 -1
  136. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedLine2d.js.map +1 -1
  137. package/lib/cjs/curve/internalContexts/geometry2d/UnboundedParabola2d.js.map +1 -1
  138. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  139. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  140. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  141. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  142. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  143. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +1 -2
  144. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  145. package/lib/cjs/curve/spiral/DirectSpiral3d.js +9 -3
  146. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  147. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +1 -2
  148. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  149. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +10 -4
  150. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  152. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  153. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  154. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  155. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  156. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  157. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  158. package/lib/cjs/geometry3d/AngleSweep.d.ts +3 -1
  159. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  160. package/lib/cjs/geometry3d/AngleSweep.js +6 -2
  161. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  162. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  163. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  164. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  165. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  166. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  167. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  168. package/lib/cjs/geometry3d/GeometryHandler.d.ts +33 -4
  169. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  170. package/lib/cjs/geometry3d/GeometryHandler.js +79 -1
  171. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  172. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  173. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  174. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +9 -6
  175. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  176. package/lib/cjs/geometry3d/GrowableXYArray.js +20 -10
  177. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  178. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +9 -6
  179. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  180. package/lib/cjs/geometry3d/GrowableXYZArray.js +20 -10
  181. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  182. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  183. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  184. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  185. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  186. package/lib/cjs/geometry3d/Matrix3d.d.ts +4 -4
  187. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  188. package/lib/cjs/geometry3d/Matrix3d.js +5 -4
  189. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  190. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  191. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  192. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  193. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  194. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  195. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  196. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  197. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  198. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  199. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  200. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  201. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  202. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  203. package/lib/cjs/geometry3d/Range.js.map +1 -1
  204. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  205. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  206. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  207. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  208. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  209. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  210. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  211. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  212. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  213. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  214. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  215. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  216. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  217. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  218. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  219. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  220. package/lib/cjs/numerics/BezierPolynomials.js +1 -1
  221. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  222. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  223. package/lib/cjs/numerics/Complex.js.map +1 -1
  224. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  225. package/lib/cjs/numerics/Newton.d.ts +44 -13
  226. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  227. package/lib/cjs/numerics/Newton.js +73 -23
  228. package/lib/cjs/numerics/Newton.js.map +1 -1
  229. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  230. package/lib/cjs/numerics/PolarData.js.map +1 -1
  231. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  232. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  233. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  234. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  235. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  236. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  237. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  238. package/lib/cjs/polyface/AuxData.js.map +1 -1
  239. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  240. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  241. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  242. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  243. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  244. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  245. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  246. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  247. package/lib/cjs/polyface/Polyface.js.map +1 -1
  248. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  249. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  250. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  251. package/lib/cjs/polyface/PolyfaceQuery.d.ts +14 -14
  252. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  253. package/lib/cjs/polyface/PolyfaceQuery.js +14 -14
  254. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  255. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  256. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  257. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  258. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  259. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  260. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  261. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  262. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  263. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  264. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  265. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  266. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  267. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  268. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  269. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  270. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  271. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  272. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  273. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  274. package/lib/cjs/serialization/BGFBReader.js +2 -2
  275. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  276. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  277. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  278. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  279. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  280. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  281. package/lib/cjs/solid/Box.js.map +1 -1
  282. package/lib/cjs/solid/Cone.js.map +1 -1
  283. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  284. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  285. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  286. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  287. package/lib/cjs/solid/Sphere.js.map +1 -1
  288. package/lib/cjs/solid/SweepContour.js.map +1 -1
  289. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  290. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  291. package/lib/cjs/topology/Graph.d.ts +15 -15
  292. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  293. package/lib/cjs/topology/Graph.js +1 -1
  294. package/lib/cjs/topology/Graph.js.map +1 -1
  295. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  296. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +3 -3
  297. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  298. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  299. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  300. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  301. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  302. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  303. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  304. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  305. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  306. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  307. package/lib/cjs/topology/MaskManager.js.map +1 -1
  308. package/lib/cjs/topology/Merging.js.map +1 -1
  309. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  310. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  311. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  312. package/lib/cjs/topology/Triangulation.js.map +1 -1
  313. package/lib/cjs/topology/Voronoi.js.map +1 -1
  314. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  315. package/lib/esm/Constant.js.map +1 -1
  316. package/lib/esm/Geometry.d.ts +8 -6
  317. package/lib/esm/Geometry.d.ts.map +1 -1
  318. package/lib/esm/Geometry.js +8 -6
  319. package/lib/esm/Geometry.js.map +1 -1
  320. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  321. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  322. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  323. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  324. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  325. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  326. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  327. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  328. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  329. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  330. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  331. package/lib/esm/bspline/KnotVector.js.map +1 -1
  332. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  333. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  334. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  335. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  336. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  337. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  338. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  339. package/lib/esm/clipping/ClipVector.js.map +1 -1
  340. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  341. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  342. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  343. package/lib/esm/core-geometry.js.map +1 -1
  344. package/lib/esm/curve/Arc3d.d.ts +7 -0
  345. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  346. package/lib/esm/curve/Arc3d.js +11 -0
  347. package/lib/esm/curve/Arc3d.js.map +1 -1
  348. package/lib/esm/curve/ConstrainedCurve2d.js.map +1 -1
  349. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  350. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  351. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -2
  352. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  353. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -15
  354. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  355. package/lib/esm/curve/CurveCollection.d.ts +15 -6
  356. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  357. package/lib/esm/curve/CurveCollection.js +15 -6
  358. package/lib/esm/curve/CurveCollection.js.map +1 -1
  359. package/lib/esm/curve/CurveCurve.d.ts +1 -1
  360. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  361. package/lib/esm/curve/CurveCurve.js +2 -1
  362. package/lib/esm/curve/CurveCurve.js.map +1 -1
  363. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  364. package/lib/esm/curve/CurveFactory.js.map +1 -1
  365. package/lib/esm/curve/CurveLocationDetail.d.ts +21 -0
  366. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  367. package/lib/esm/curve/CurveLocationDetail.js +59 -0
  368. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  369. package/lib/esm/curve/CurveOps.js.map +1 -1
  370. package/lib/esm/curve/CurvePrimitive.d.ts +13 -12
  371. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  372. package/lib/esm/curve/CurvePrimitive.js +12 -11
  373. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  374. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  375. package/lib/esm/curve/CurveTypes.js.map +1 -1
  376. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  377. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  378. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  379. package/lib/esm/curve/LineString3d.js.map +1 -1
  380. package/lib/esm/curve/Loop.js.map +1 -1
  381. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  382. package/lib/esm/curve/ParityRegion.js.map +1 -1
  383. package/lib/esm/curve/Path.js.map +1 -1
  384. package/lib/esm/curve/PointString3d.js.map +1 -1
  385. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  386. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  387. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  388. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  389. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  390. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  391. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  392. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  393. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  394. package/lib/esm/curve/RegionOps.d.ts +17 -4
  395. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  396. package/lib/esm/curve/RegionOps.js +116 -20
  397. package/lib/esm/curve/RegionOps.js.map +1 -1
  398. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +3 -11
  399. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  400. package/lib/esm/curve/RegionOpsClassificationSweeps.js +2 -92
  401. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  402. package/lib/esm/curve/StrokeOptions.d.ts +13 -6
  403. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  404. package/lib/esm/curve/StrokeOptions.js +13 -6
  405. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  406. package/lib/esm/curve/UnionRegion.js.map +1 -1
  407. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +1 -1
  408. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -1
  409. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js +1 -2
  410. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  411. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts +1 -1
  412. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.d.ts.map +1 -1
  413. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +1 -2
  414. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  415. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  416. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  417. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  418. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts +1 -1
  419. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  420. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +1 -2
  421. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  422. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  423. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +113 -103
  424. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  425. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +370 -339
  426. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  427. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +2 -3
  428. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  429. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +20 -32
  430. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  431. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  432. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  433. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  434. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  435. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  436. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  437. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  438. package/lib/esm/curve/internalContexts/PointToCurveTangentHandler.js.map +1 -1
  439. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  440. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  441. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -1
  442. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  443. package/lib/esm/curve/internalContexts/geometry2d/ConstrainedImplicitCurve2d.js.map +1 -1
  444. package/lib/esm/curve/internalContexts/geometry2d/ConstraintSet.js.map +1 -1
  445. package/lib/esm/curve/internalContexts/geometry2d/ImplicitCurve2d.js.map +1 -1
  446. package/lib/esm/curve/internalContexts/geometry2d/ImplicitCurve2dConverter.js.map +1 -1
  447. package/lib/esm/curve/internalContexts/geometry2d/UnboundedCircle2d.js.map +1 -1
  448. package/lib/esm/curve/internalContexts/geometry2d/UnboundedEllipse2d.js.map +1 -1
  449. package/lib/esm/curve/internalContexts/geometry2d/UnboundedHyperbola2d.js.map +1 -1
  450. package/lib/esm/curve/internalContexts/geometry2d/UnboundedLine2d.js.map +1 -1
  451. package/lib/esm/curve/internalContexts/geometry2d/UnboundedParabola2d.js.map +1 -1
  452. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  453. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  454. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  455. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  456. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  457. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +1 -2
  458. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  459. package/lib/esm/curve/spiral/DirectSpiral3d.js +9 -3
  460. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  461. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +1 -2
  462. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  463. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +10 -4
  464. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  465. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  466. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  467. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  468. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  469. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  470. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  471. package/lib/esm/geometry3d/Angle.js.map +1 -1
  472. package/lib/esm/geometry3d/AngleSweep.d.ts +3 -1
  473. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  474. package/lib/esm/geometry3d/AngleSweep.js +6 -2
  475. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  476. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  477. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  478. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  479. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  480. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  481. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  482. package/lib/esm/geometry3d/GeometryHandler.d.ts +33 -4
  483. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  484. package/lib/esm/geometry3d/GeometryHandler.js +77 -0
  485. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  486. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  487. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  488. package/lib/esm/geometry3d/GrowableXYArray.d.ts +9 -6
  489. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  490. package/lib/esm/geometry3d/GrowableXYArray.js +20 -10
  491. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  492. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +9 -6
  493. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  494. package/lib/esm/geometry3d/GrowableXYZArray.js +20 -10
  495. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  496. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  497. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  498. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  499. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  500. package/lib/esm/geometry3d/Matrix3d.d.ts +4 -4
  501. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  502. package/lib/esm/geometry3d/Matrix3d.js +5 -4
  503. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  504. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  505. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  506. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  507. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  508. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  509. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  510. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  511. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  512. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  513. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  514. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  515. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  516. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  517. package/lib/esm/geometry3d/Range.js.map +1 -1
  518. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  519. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  520. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  521. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  522. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  523. package/lib/esm/geometry3d/Transform.js.map +1 -1
  524. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  525. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  526. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  527. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  528. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  529. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  530. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  531. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  532. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  533. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  534. package/lib/esm/numerics/BezierPolynomials.js +1 -1
  535. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  536. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  537. package/lib/esm/numerics/Complex.js.map +1 -1
  538. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  539. package/lib/esm/numerics/Newton.d.ts +44 -13
  540. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  541. package/lib/esm/numerics/Newton.js +71 -22
  542. package/lib/esm/numerics/Newton.js.map +1 -1
  543. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  544. package/lib/esm/numerics/PolarData.js.map +1 -1
  545. package/lib/esm/numerics/Polynomials.js.map +1 -1
  546. package/lib/esm/numerics/Quadrature.js.map +1 -1
  547. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  548. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  549. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  550. package/lib/esm/numerics/UnionFind.js.map +1 -1
  551. package/lib/esm/numerics/UsageSums.js.map +1 -1
  552. package/lib/esm/polyface/AuxData.js.map +1 -1
  553. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  554. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  555. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  556. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  557. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  558. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  559. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  560. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  561. package/lib/esm/polyface/Polyface.js.map +1 -1
  562. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  563. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  564. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  565. package/lib/esm/polyface/PolyfaceQuery.d.ts +14 -14
  566. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  567. package/lib/esm/polyface/PolyfaceQuery.js +14 -14
  568. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  569. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  570. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  571. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  572. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  573. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  574. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  575. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  576. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  577. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  578. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  579. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  580. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  581. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  582. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  583. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  584. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  585. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  586. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  587. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  588. package/lib/esm/serialization/BGFBReader.js +2 -2
  589. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  590. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  591. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  592. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  593. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  594. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  595. package/lib/esm/solid/Box.js.map +1 -1
  596. package/lib/esm/solid/Cone.js.map +1 -1
  597. package/lib/esm/solid/LinearSweep.js.map +1 -1
  598. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  599. package/lib/esm/solid/RuledSweep.js.map +1 -1
  600. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  601. package/lib/esm/solid/Sphere.js.map +1 -1
  602. package/lib/esm/solid/SweepContour.js.map +1 -1
  603. package/lib/esm/solid/TorusPipe.js.map +1 -1
  604. package/lib/esm/topology/ChainMerge.js.map +1 -1
  605. package/lib/esm/topology/Graph.d.ts +15 -15
  606. package/lib/esm/topology/Graph.d.ts.map +1 -1
  607. package/lib/esm/topology/Graph.js +1 -1
  608. package/lib/esm/topology/Graph.js.map +1 -1
  609. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  610. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +3 -3
  611. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  612. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  613. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  614. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  615. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  616. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  617. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  618. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  619. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  620. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  621. package/lib/esm/topology/MaskManager.js.map +1 -1
  622. package/lib/esm/topology/Merging.js.map +1 -1
  623. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  624. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  625. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  626. package/lib/esm/topology/Triangulation.js.map +1 -1
  627. package/lib/esm/topology/Voronoi.js.map +1 -1
  628. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  629. package/package.json +3 -3
  630. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +0 -23
  631. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +0 -1
  632. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +0 -37
  633. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +0 -1
  634. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +0 -23
  635. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +0 -1
  636. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +0 -33
  637. 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,mEAAwD;AACxD,+CAA8C;AAE9C,mDAAgD;AAEhD;;;GAGG;AACH,MAAa,aAAc,SAAQ,6BAAa;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,yBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,qCAAqC;IACrB,KAAK;QACnB,OAAO,eAAO,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;AApED,sCAoEC","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,mEAAwD;AACxD,+CAA8C;AAE9C,mDAAgD;AAEhD;;;GAGG;AACH,MAAa,aAAc,SAAQ,6BAAa;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,yBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,qCAAqC;IACrB,KAAK;QACnB,OAAO,eAAO,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;AApED,sCAoEC","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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"}
@@ -830,32 +830,42 @@ class CurveChainWithDistanceIndex extends CurvePrimitive_1.CurvePrimitive {
830
830
  }
831
831
  return undefined;
832
832
  }
833
+ /**
834
+ * Given a parent chain, convert the corresponding child detail in the specified pair.
835
+ * * Converted details refer to the chain's global parameterization instead of the child's.
836
+ * * It is assumed that `pair.detailA.curve` is a child of chainA (similarly for chainB).
837
+ * @param pair detail pair to convert in place
838
+ * @param chainA convert pair.detailA to the global parameterization of chainA
839
+ * @param chainB convert pair.detailB to the global parameterization of chainB
840
+ * @return the converted pair
841
+ */
842
+ static convertChildDetailToChainDetailSingle(pair, chainA, chainB) {
843
+ if (chainA) {
844
+ const chainDetail = chainA.computeChainDetail(pair.detailA);
845
+ if (chainDetail)
846
+ pair.detailA = chainDetail;
847
+ }
848
+ if (chainB) {
849
+ const chainDetail = chainB.computeChainDetail(pair.detailB);
850
+ if (chainDetail)
851
+ pair.detailB = chainDetail;
852
+ }
853
+ return pair;
854
+ }
833
855
  /**
834
856
  * Given a parent chain, convert the corresponding child details in the specified pairs.
835
857
  * * Converted details refer to the chain's global parameterization instead of the child's.
836
858
  * * It is assumed that for all i >= index0, `pairs[i].detailA.curve` is a child of chainA (similarly for chainB).
837
- * @param pairs array to mutate
859
+ * @param pairs array of pairs to convert in place
838
860
  * @param index0 convert details of pairs in the tail of the array, starting at index0
839
861
  * @param chainA convert each specified detailA to the global parameterization of chainA
840
862
  * @param chainB convert each specified detailB to the global parameterization of chainB
841
863
  * @param compressAdjacent whether to remove adjacent duplicate pairs after conversion
842
864
  * @return the converted array
843
- * @internal
844
865
  */
845
866
  static convertChildDetailToChainDetail(pairs, index0, chainA, chainB, compressAdjacent) {
846
- for (let i = index0; i < pairs.length; ++i) {
847
- const childDetailPair = pairs[i];
848
- if (chainA) {
849
- const chainDetail = chainA.computeChainDetail(childDetailPair.detailA);
850
- if (chainDetail)
851
- childDetailPair.detailA = chainDetail;
852
- }
853
- if (chainB) {
854
- const chainDetail = chainB.computeChainDetail(childDetailPair.detailB);
855
- if (chainDetail)
856
- childDetailPair.detailB = chainDetail;
857
- }
858
- }
867
+ for (let i = index0; i < pairs.length; ++i)
868
+ pairs[i] = this.convertChildDetailToChainDetailSingle(pairs[i], chainA, chainB);
859
869
  if (compressAdjacent)
860
870
  pairs = CurveLocationDetail_1.CurveLocationDetailPair.removeAdjacentDuplicates(pairs, index0);
861
871
  return pairs;