@itwin/core-geometry 4.10.0-dev.2 → 4.10.0-dev.20

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 (540) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +2 -2
  4. package/lib/cjs/Geometry.js +2 -2
  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.d.ts +7 -7
  24. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
  25. package/lib/cjs/clipping/ClipPrimitive.js +1 -1
  26. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  27. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  28. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  29. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  30. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  31. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  32. package/lib/cjs/core-geometry.js.map +1 -1
  33. package/lib/cjs/curve/Arc3d.d.ts +21 -10
  34. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  35. package/lib/cjs/curve/Arc3d.js +64 -37
  36. package/lib/cjs/curve/Arc3d.js.map +1 -1
  37. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  38. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  41. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +44 -25
  42. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  44. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  45. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  46. package/lib/cjs/curve/CurveFactory.d.ts +10 -12
  47. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  48. package/lib/cjs/curve/CurveFactory.js +16 -43
  49. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  50. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  51. package/lib/cjs/curve/CurveOps.js.map +1 -1
  52. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  53. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  54. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  55. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  56. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  57. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  58. package/lib/cjs/curve/LineString3d.js.map +1 -1
  59. package/lib/cjs/curve/Loop.js.map +1 -1
  60. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  61. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  62. package/lib/cjs/curve/Path.js.map +1 -1
  63. package/lib/cjs/curve/PointString3d.js.map +1 -1
  64. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  65. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  66. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  67. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  68. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  69. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  70. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  71. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  72. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  73. package/lib/cjs/curve/RegionOps.js.map +1 -1
  74. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  75. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  76. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  83. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +2 -2
  84. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  85. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  86. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  87. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +33 -59
  88. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  89. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  90. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  91. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +128 -68
  92. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  94. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  95. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  96. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
  97. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  98. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  99. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  100. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  104. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  105. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  106. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  107. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  108. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  109. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  110. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  111. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  112. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  113. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  114. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  115. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  116. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  117. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  118. package/lib/cjs/geometry3d/Angle.d.ts +5 -5
  119. package/lib/cjs/geometry3d/Angle.js +5 -5
  120. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  121. package/lib/cjs/geometry3d/AngleSweep.d.ts +101 -13
  122. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  123. package/lib/cjs/geometry3d/AngleSweep.js +156 -57
  124. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  125. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  126. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  127. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  128. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  129. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  130. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  131. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  132. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  133. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  134. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  135. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  136. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  137. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  138. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  139. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  140. package/lib/cjs/geometry3d/Matrix3d.d.ts +9 -15
  141. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  142. package/lib/cjs/geometry3d/Matrix3d.js +21 -15
  143. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  144. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  145. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  146. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  147. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  148. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  149. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  150. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  151. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -5
  152. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  153. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
  154. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  155. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  156. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  157. package/lib/cjs/geometry3d/PolygonOps.js +2 -2
  158. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  159. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  160. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  161. package/lib/cjs/geometry3d/Range.js.map +1 -1
  162. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  163. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  164. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  165. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  166. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  167. package/lib/cjs/geometry3d/Transform.d.ts +4 -2
  168. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  169. package/lib/cjs/geometry3d/Transform.js +4 -2
  170. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  171. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  172. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  173. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  174. package/lib/cjs/geometry4d/Map4d.d.ts +5 -5
  175. package/lib/cjs/geometry4d/Map4d.js +5 -5
  176. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  177. package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
  178. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  179. package/lib/cjs/geometry4d/Matrix4d.js +4 -7
  180. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  181. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  182. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  183. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  184. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  185. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  186. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  187. package/lib/cjs/numerics/Complex.js.map +1 -1
  188. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  189. package/lib/cjs/numerics/Newton.js.map +1 -1
  190. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  191. package/lib/cjs/numerics/PolarData.js.map +1 -1
  192. package/lib/cjs/numerics/Polynomials.d.ts +37 -36
  193. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  194. package/lib/cjs/numerics/Polynomials.js +90 -105
  195. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  196. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  197. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  198. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  199. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  200. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  201. package/lib/cjs/polyface/AuxData.js.map +1 -1
  202. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  203. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  204. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  205. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  206. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  207. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  208. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  209. package/lib/cjs/polyface/Polyface.js.map +1 -1
  210. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  211. package/lib/cjs/polyface/PolyfaceClip.d.ts +3 -3
  212. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  213. package/lib/cjs/polyface/PolyfaceClip.js +1 -1
  214. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  215. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  216. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  217. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  218. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  219. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  220. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  221. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  222. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  223. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  224. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  225. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  226. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  227. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  228. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  229. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  230. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  231. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  232. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  233. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  234. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  235. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  236. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  237. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  238. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  239. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  240. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  241. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  242. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  243. package/lib/cjs/solid/Box.js.map +1 -1
  244. package/lib/cjs/solid/Cone.js.map +1 -1
  245. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  246. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  247. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  248. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  249. package/lib/cjs/solid/Sphere.js.map +1 -1
  250. package/lib/cjs/solid/SweepContour.js.map +1 -1
  251. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  252. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  253. package/lib/cjs/topology/Graph.js.map +1 -1
  254. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  255. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  256. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  257. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  258. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  259. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  260. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  261. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  262. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  263. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  264. package/lib/cjs/topology/MaskManager.js.map +1 -1
  265. package/lib/cjs/topology/Merging.js.map +1 -1
  266. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  267. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  268. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  269. package/lib/cjs/topology/Triangulation.js.map +1 -1
  270. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  271. package/lib/esm/Constant.js.map +1 -1
  272. package/lib/esm/Geometry.d.ts +2 -2
  273. package/lib/esm/Geometry.js +2 -2
  274. package/lib/esm/Geometry.js.map +1 -1
  275. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  276. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  277. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  278. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  279. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  280. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  281. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  282. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  283. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  284. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  285. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  286. package/lib/esm/bspline/KnotVector.js.map +1 -1
  287. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  288. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  289. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  290. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  291. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  292. package/lib/esm/clipping/ClipPrimitive.d.ts +7 -7
  293. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
  294. package/lib/esm/clipping/ClipPrimitive.js +1 -1
  295. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  296. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  297. package/lib/esm/clipping/ClipVector.js.map +1 -1
  298. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  299. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  300. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  301. package/lib/esm/core-geometry.js.map +1 -1
  302. package/lib/esm/curve/Arc3d.d.ts +21 -10
  303. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  304. package/lib/esm/curve/Arc3d.js +64 -37
  305. package/lib/esm/curve/Arc3d.js.map +1 -1
  306. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  307. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  308. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +27 -8
  309. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  310. package/lib/esm/curve/CurveChainWithDistanceIndex.js +44 -25
  311. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  312. package/lib/esm/curve/CurveCollection.js.map +1 -1
  313. package/lib/esm/curve/CurveCurve.js.map +1 -1
  314. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  315. package/lib/esm/curve/CurveFactory.d.ts +10 -12
  316. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  317. package/lib/esm/curve/CurveFactory.js +16 -43
  318. package/lib/esm/curve/CurveFactory.js.map +1 -1
  319. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  320. package/lib/esm/curve/CurveOps.js.map +1 -1
  321. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  322. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  323. package/lib/esm/curve/CurveTypes.js.map +1 -1
  324. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  325. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  326. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  327. package/lib/esm/curve/LineString3d.js.map +1 -1
  328. package/lib/esm/curve/Loop.js.map +1 -1
  329. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  330. package/lib/esm/curve/ParityRegion.js.map +1 -1
  331. package/lib/esm/curve/Path.js.map +1 -1
  332. package/lib/esm/curve/PointString3d.js.map +1 -1
  333. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  334. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  335. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  336. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  337. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  338. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  339. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  340. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  341. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  342. package/lib/esm/curve/RegionOps.js.map +1 -1
  343. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  344. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  345. package/lib/esm/curve/UnionRegion.js.map +1 -1
  346. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  347. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  348. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  349. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  350. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  351. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  352. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +2 -2
  353. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  354. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
  355. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  356. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +33 -59
  357. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  358. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
  359. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  360. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +128 -68
  361. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  362. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  363. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  364. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  365. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
  366. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  367. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  368. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  369. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  370. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  371. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  372. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  373. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  374. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  375. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  376. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  377. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  378. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  379. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  380. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  381. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  382. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  383. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  384. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  385. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  386. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  387. package/lib/esm/geometry3d/Angle.d.ts +5 -5
  388. package/lib/esm/geometry3d/Angle.js +5 -5
  389. package/lib/esm/geometry3d/Angle.js.map +1 -1
  390. package/lib/esm/geometry3d/AngleSweep.d.ts +101 -13
  391. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  392. package/lib/esm/geometry3d/AngleSweep.js +156 -57
  393. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  394. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  395. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  396. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  397. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  398. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  399. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  400. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  401. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  402. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  403. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  404. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  405. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  406. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  407. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  408. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  409. package/lib/esm/geometry3d/Matrix3d.d.ts +9 -15
  410. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  411. package/lib/esm/geometry3d/Matrix3d.js +21 -15
  412. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  413. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  414. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  415. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  416. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  417. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  418. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  419. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  420. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -5
  421. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  422. package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
  423. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  424. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  425. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  426. package/lib/esm/geometry3d/PolygonOps.js +2 -2
  427. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  428. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  429. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  430. package/lib/esm/geometry3d/Range.js.map +1 -1
  431. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  432. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  433. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  434. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  435. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  436. package/lib/esm/geometry3d/Transform.d.ts +4 -2
  437. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  438. package/lib/esm/geometry3d/Transform.js +4 -2
  439. package/lib/esm/geometry3d/Transform.js.map +1 -1
  440. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  441. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  442. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  443. package/lib/esm/geometry4d/Map4d.d.ts +5 -5
  444. package/lib/esm/geometry4d/Map4d.js +5 -5
  445. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  446. package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
  447. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  448. package/lib/esm/geometry4d/Matrix4d.js +4 -7
  449. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  450. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  451. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  452. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  453. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  454. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  455. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  456. package/lib/esm/numerics/Complex.js.map +1 -1
  457. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  458. package/lib/esm/numerics/Newton.js.map +1 -1
  459. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  460. package/lib/esm/numerics/PolarData.js.map +1 -1
  461. package/lib/esm/numerics/Polynomials.d.ts +37 -36
  462. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  463. package/lib/esm/numerics/Polynomials.js +90 -105
  464. package/lib/esm/numerics/Polynomials.js.map +1 -1
  465. package/lib/esm/numerics/Quadrature.js.map +1 -1
  466. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  467. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  468. package/lib/esm/numerics/UnionFind.js.map +1 -1
  469. package/lib/esm/numerics/UsageSums.js.map +1 -1
  470. package/lib/esm/polyface/AuxData.js.map +1 -1
  471. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  472. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  473. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  474. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  475. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  476. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  477. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  478. package/lib/esm/polyface/Polyface.js.map +1 -1
  479. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  480. package/lib/esm/polyface/PolyfaceClip.d.ts +3 -3
  481. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  482. package/lib/esm/polyface/PolyfaceClip.js +1 -1
  483. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  484. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  485. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  486. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  487. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  488. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  489. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  490. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  491. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  492. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  493. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  494. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  495. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  496. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  497. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  498. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  499. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  500. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  501. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  502. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  503. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  504. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  505. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  506. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  507. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  508. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  509. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  510. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  511. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  512. package/lib/esm/solid/Box.js.map +1 -1
  513. package/lib/esm/solid/Cone.js.map +1 -1
  514. package/lib/esm/solid/LinearSweep.js.map +1 -1
  515. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  516. package/lib/esm/solid/RuledSweep.js.map +1 -1
  517. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  518. package/lib/esm/solid/Sphere.js.map +1 -1
  519. package/lib/esm/solid/SweepContour.js.map +1 -1
  520. package/lib/esm/solid/TorusPipe.js.map +1 -1
  521. package/lib/esm/topology/ChainMerge.js.map +1 -1
  522. package/lib/esm/topology/Graph.js.map +1 -1
  523. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  524. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  525. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  526. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  527. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  528. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  529. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  530. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  531. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  532. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  533. package/lib/esm/topology/MaskManager.js.map +1 -1
  534. package/lib/esm/topology/Merging.js.map +1 -1
  535. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  536. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  537. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  538. package/lib/esm/topology/Triangulation.js.map +1 -1
  539. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  540. package/package.json +7 -19
@@ -245,21 +245,32 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
245
245
  static create(center: Point3d | undefined, vector0: Vector3d, vector90: Vector3d, sweep?: AngleSweep, result?: Arc3d): Arc3d;
246
246
  /**
247
247
  * Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
248
- * @param point0 start of arc, on an axis
249
- * @param point1 point on arc somewhere between `point0` and `point2`
250
- * @param point2 point on arc directly opposite `point0`
251
- * @param sweep angular sweep, measured from `point0` in the direction of `point1`.
252
- * For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
248
+ * @param start start of arc, on an axis
249
+ * @param middle point on arc somewhere between `start` and `end`
250
+ * @param end point on arc directly opposite `start`
251
+ * @param sweep angular sweep, measured from `start` in the direction of `middle`.
252
+ * For a half-ellipse from `start` to `end` passing through `middle`, pass `AngleSweep.createStartEndDegrees(0,180)`.
253
253
  * Default value is full sweep to create the entire ellipse.
254
254
  * @param result optional preallocated result
255
255
  * @returns elliptical arc, or undefined if construction impossible.
256
256
  */
257
- static createStartMiddleEnd(point0: XYAndZ, point1: XYAndZ, point2: XYAndZ, sweep?: AngleSweep, result?: Arc3d): Arc3d | undefined;
257
+ static createStartMiddleEnd(start: XYAndZ, middle: XYAndZ, end: XYAndZ, sweep?: AngleSweep, result?: Arc3d): Arc3d | undefined;
258
258
  /**
259
259
  * Create a circular arc defined by start point, tangent at start point, and end point.
260
- * If tangent is parallel to line segment from start to end, return the line segment.
260
+ * * The circular arc is swept from `start` to `end` in the direction of `tangentAtStart`.
261
+ * * If `tangentAtStart` is parallel to the line segment from `start` to `end`, return the line segment.
261
262
  */
262
263
  static createCircularStartTangentEnd(start: Point3d, tangentAtStart: Vector3d, end: Point3d, result?: Arc3d): Arc3d | LineSegment3d;
264
+ /**
265
+ * Create a circular arc from start point, tangent at start, radius, optional plane normal, arc sweep.
266
+ * * The vector from start point to center is in the direction of upVector crossed with tangentA.
267
+ * @param start start point.
268
+ * @param tangentAtStart vector in tangent direction at the start.
269
+ * @param radius signed radius.
270
+ * @param upVector optional out-of-plane vector. Defaults to positive Z.
271
+ * @param sweep angular range. If single `Angle` is given, start angle is at 0 degrees (the start point).
272
+ */
273
+ static createCircularStartTangentRadius(start: Point3d, tangentAtStart: Vector3d, radius: number, upVector?: Vector3d, sweep?: Angle | AngleSweep): Arc3d | undefined;
263
274
  /**
264
275
  * Create a circular arc defined by start and end points and radius.
265
276
  * @param start start point of the arc
@@ -422,7 +433,7 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
422
433
  circularRadiusXY(): number | undefined;
423
434
  /** If the arc is circular, return its radius. Otherwise return undefined */
424
435
  circularRadius(): number | undefined;
425
- /** Return the larger of the two defining vectors. */
436
+ /** Return the larger length of the two defining vectors. */
426
437
  maxVectorLength(): number;
427
438
  /**
428
439
  * Compute intersections with a plane.
@@ -516,7 +527,7 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
516
527
  */
517
528
  toJSON(): any;
518
529
  /** Test if this arc is almost equal to another GeometryQuery object */
519
- isAlmostEqual(otherGeometry: GeometryQuery): boolean;
530
+ isAlmostEqual(otherGeometry: GeometryQuery, distanceTol?: number, radianTol?: number): boolean;
520
531
  /** Emit strokes to caller-supplied linestring */
521
532
  emitStrokes(dest: LineString3d, options?: StrokeOptions): void;
522
533
  /** Emit strokes to caller-supplied handler */
@@ -567,7 +578,7 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
567
578
  * * `point` is the `point1` input.
568
579
  * * both fractions are zero
569
580
  * * `arc` is undefined.
570
- * @param point0 first point of path. (the point before the point of inflection)
581
+ * @param point0 first point of path (the point before the point of inflection)
571
582
  * @param point1 second point of path (the point of inflection)
572
583
  * @param point2 third point of path (the point after the point of inflection)
573
584
  * @param radius arc radius
@@ -1 +1 @@
1
- {"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
@@ -287,19 +287,19 @@ export class Arc3d extends CurvePrimitive {
287
287
  }
288
288
  /**
289
289
  * Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
290
- * @param point0 start of arc, on an axis
291
- * @param point1 point on arc somewhere between `point0` and `point2`
292
- * @param point2 point on arc directly opposite `point0`
293
- * @param sweep angular sweep, measured from `point0` in the direction of `point1`.
294
- * For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
290
+ * @param start start of arc, on an axis
291
+ * @param middle point on arc somewhere between `start` and `end`
292
+ * @param end point on arc directly opposite `start`
293
+ * @param sweep angular sweep, measured from `start` in the direction of `middle`.
294
+ * For a half-ellipse from `start` to `end` passing through `middle`, pass `AngleSweep.createStartEndDegrees(0,180)`.
295
295
  * Default value is full sweep to create the entire ellipse.
296
296
  * @param result optional preallocated result
297
297
  * @returns elliptical arc, or undefined if construction impossible.
298
298
  */
299
- static createStartMiddleEnd(point0, point1, point2, sweep, result) {
300
- const center = Point3d.createAdd2Scaled(point0, 0.5, point2, 0.5);
301
- const vector0 = Vector3d.createStartEnd(center, point0);
302
- const vector1 = Vector3d.createStartEnd(center, point1);
299
+ static createStartMiddleEnd(start, middle, end, sweep, result) {
300
+ const center = Point3d.createAdd2Scaled(start, 0.5, end, 0.5);
301
+ const vector0 = Vector3d.createStartEnd(center, start);
302
+ const vector1 = Vector3d.createStartEnd(center, middle);
303
303
  const v0DotV1 = vector0.dotProduct(vector1);
304
304
  const v0Len2 = vector0.magnitudeSquared();
305
305
  if (Math.abs(v0DotV1) >= v0Len2)
@@ -307,7 +307,7 @@ export class Arc3d extends CurvePrimitive {
307
307
  const normal = vector0.crossProduct(vector1);
308
308
  const vector90 = normal.unitCrossProductWithDefault(vector0, 0, 0, 0);
309
309
  const v1DotV90 = vector1.dotProduct(vector90);
310
- // Solve the standard ellipse equation for the unknown axis length, given local coords of point1 (v0.v1/||v0||, v90.v1)
310
+ // solve the standard ellipse equation for the unknown axis length, given local coords of middle (v0.v1/||v0||, v90.v1)
311
311
  const v90Len = Geometry.safeDivideFraction(v0Len2 * v1DotV90, Math.sqrt(v0Len2 * v0Len2 - v0DotV1 * v0DotV1), 0);
312
312
  if (Geometry.isSmallMetricDistanceSquared(v90Len))
313
313
  return undefined;
@@ -316,33 +316,55 @@ export class Arc3d extends CurvePrimitive {
316
316
  }
317
317
  /**
318
318
  * Create a circular arc defined by start point, tangent at start point, and end point.
319
- * If tangent is parallel to line segment from start to end, return the line segment.
319
+ * * The circular arc is swept from `start` to `end` in the direction of `tangentAtStart`.
320
+ * * If `tangentAtStart` is parallel to the line segment from `start` to `end`, return the line segment.
320
321
  */
321
322
  static createCircularStartTangentEnd(start, tangentAtStart, end, result) {
322
- // To find the circle passing through start and end with tangentAtStart at start:
323
- // - find line 1: the perpendicular bisector of the line from start to end.
324
- // - find line 2: the perpendicular to the tangentAtStart.
325
- // - intersection of the two lines would be the circle center.
326
- const vector = Vector3d.createStartEnd(start, end);
327
- const normal = tangentAtStart.crossProduct(vector).normalize();
328
- if (normal) {
329
- const vectorPerp = normal.crossProduct(vector);
330
- const tangentPerp = normal.crossProduct(tangentAtStart);
331
- const midPoint = start.plusScaled(vector, 0.5);
332
- const lineSeg1 = LineSegment3d.create(start, start.plusScaled(tangentPerp, 1));
333
- const lineSeg2 = LineSegment3d.create(midPoint, midPoint.plusScaled(vectorPerp, 1));
334
- const intersection = LineSegment3d.closestApproach(lineSeg1, true, lineSeg2, true);
335
- if (intersection) {
336
- const center = intersection.detailA.point;
337
- const vector0 = Vector3d.createStartEnd(center, start);
338
- const vector90 = normal.crossProduct(vector0);
339
- const endVector = Vector3d.createStartEnd(center, end);
340
- const sweep = AngleSweep.create(vector0.signedAngleTo(endVector, normal));
323
+ // see itwinjs-core\core\geometry\internaldocs\Arc3d.md to clarify below algorithm
324
+ const startToEnd = Vector3d.createStartEnd(start, end);
325
+ const frame = Matrix3d.createRigidFromColumns(tangentAtStart, startToEnd, AxisOrder.XYZ);
326
+ if (frame !== undefined) {
327
+ const vv = startToEnd.dotProduct(startToEnd);
328
+ const vw = frame.dotColumnY(startToEnd);
329
+ const radius = Geometry.conditionalDivideCoordinate(vv, 2 * vw);
330
+ if (radius !== undefined) {
331
+ const vector0 = frame.columnY();
332
+ vector0.scaleInPlace(-radius); // center to start
333
+ const vector90 = frame.columnX();
334
+ vector90.scaleInPlace(radius);
335
+ const centerToEnd = vector0.plus(startToEnd);
336
+ const sweepAngle = vector0.angleTo(centerToEnd);
337
+ let sweepRadians = sweepAngle.radians; // always positive and less than PI
338
+ if (tangentAtStart.dotProduct(centerToEnd) < 0.0) // sweepRadians is the wrong way
339
+ sweepRadians = 2.0 * Math.PI - sweepRadians;
340
+ const center = start.plusScaled(vector0, -1.0);
341
+ const sweep = AngleSweep.createStartEndRadians(0.0, sweepRadians);
341
342
  return Arc3d.create(center, vector0, vector90, sweep, result);
342
343
  }
343
344
  }
344
345
  return LineSegment3d.create(start, end);
345
346
  }
347
+ /**
348
+ * Create a circular arc from start point, tangent at start, radius, optional plane normal, arc sweep.
349
+ * * The vector from start point to center is in the direction of upVector crossed with tangentA.
350
+ * @param start start point.
351
+ * @param tangentAtStart vector in tangent direction at the start.
352
+ * @param radius signed radius.
353
+ * @param upVector optional out-of-plane vector. Defaults to positive Z.
354
+ * @param sweep angular range. If single `Angle` is given, start angle is at 0 degrees (the start point).
355
+ */
356
+ static createCircularStartTangentRadius(start, tangentAtStart, radius, upVector, sweep) {
357
+ if (upVector === undefined)
358
+ upVector = Vector3d.unitZ();
359
+ const vector0 = upVector.unitCrossProduct(tangentAtStart);
360
+ if (vector0 === undefined)
361
+ return undefined;
362
+ const center = start.plusScaled(vector0, radius);
363
+ // reverse the A-to-center vector and bring it up to scale
364
+ vector0.scaleInPlace(-radius);
365
+ const vector90 = tangentAtStart.scaleToLength(Math.abs(radius)); // cannot fail; prior unitCrossProduct would have failed first
366
+ return Arc3d.create(center, vector0, vector90, AngleSweep.create(sweep));
367
+ }
346
368
  /**
347
369
  * Create a circular arc defined by start and end points and radius.
348
370
  * @param start start point of the arc
@@ -757,7 +779,7 @@ export class Arc3d extends CurvePrimitive {
757
779
  circularRadius() {
758
780
  return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
759
781
  }
760
- /** Return the larger of the two defining vectors. */
782
+ /** Return the larger length of the two defining vectors. */
761
783
  maxVectorLength() {
762
784
  return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
763
785
  }
@@ -965,12 +987,12 @@ export class Arc3d extends CurvePrimitive {
965
987
  };
966
988
  }
967
989
  /** Test if this arc is almost equal to another GeometryQuery object */
968
- isAlmostEqual(otherGeometry) {
990
+ isAlmostEqual(otherGeometry, distanceTol = Geometry.smallMetricDistance, radianTol = Geometry.smallAngleRadians) {
969
991
  if (otherGeometry instanceof Arc3d) {
970
992
  const other = otherGeometry;
971
- return this._center.isAlmostEqual(other._center)
972
- && this._matrix.isAlmostEqual(other._matrix)
973
- && this._sweep.isAlmostEqualAllowPeriodShift(other._sweep);
993
+ return this._center.isAlmostEqual(other._center, distanceTol)
994
+ && this._matrix.isAlmostEqual(other._matrix, distanceTol)
995
+ && this._sweep.isAlmostEqualAllowPeriodShift(other._sweep, radianTol);
974
996
  }
975
997
  return false;
976
998
  }
@@ -1053,7 +1075,12 @@ export class Arc3d extends CurvePrimitive {
1053
1075
  const otherVector0 = this._matrix.multiplyInverse(other.vector0);
1054
1076
  const otherVector90 = this._matrix.multiplyInverse(other.vector90);
1055
1077
  if (otherOrigin && otherVector0 && otherVector90) {
1056
- return { center: otherOrigin, vector0: otherVector0, vector90: otherVector90, sweep: this.sweep.clone() };
1078
+ return {
1079
+ center: otherOrigin,
1080
+ vector0: otherVector0,
1081
+ vector90: otherVector90,
1082
+ sweep: this.sweep.clone(),
1083
+ };
1057
1084
  }
1058
1085
  return undefined;
1059
1086
  }
@@ -1071,7 +1098,7 @@ export class Arc3d extends CurvePrimitive {
1071
1098
  * * `point` is the `point1` input.
1072
1099
  * * both fractions are zero
1073
1100
  * * `arc` is undefined.
1074
- * @param point0 first point of path. (the point before the point of inflection)
1101
+ * @param point0 first point of path (the point before the point of inflection)
1075
1102
  * @param point1 second point of path (the point of inflection)
1076
1103
  * @param point2 third point of path (the point after the point of inflection)
1077
1104
  * @param radius arc radius