@itwin/core-geometry 4.10.0-dev.8 → 4.10.0

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 (673) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.js +2 -2
  4. package/lib/cjs/Geometry.js.map +1 -1
  5. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  6. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BSpline1dNd.js +0 -1
  8. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve.d.ts +5 -3
  10. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurve.js +5 -4
  12. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  13. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  15. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  16. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  17. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  18. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  19. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  20. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  21. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  22. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  23. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  24. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  25. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  26. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  27. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  28. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  29. package/lib/cjs/clipping/ClipVector.js +1 -1
  30. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  31. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  32. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  33. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  34. package/lib/cjs/core-geometry.d.ts +1 -1
  35. package/lib/cjs/core-geometry.d.ts.map +1 -1
  36. package/lib/cjs/core-geometry.js +1 -1
  37. package/lib/cjs/core-geometry.js.map +1 -1
  38. package/lib/cjs/curve/Arc3d.d.ts +136 -128
  39. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  40. package/lib/cjs/curve/Arc3d.js +177 -152
  41. package/lib/cjs/curve/Arc3d.js.map +1 -1
  42. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  43. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  44. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  45. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  46. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -7
  47. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  48. package/lib/cjs/curve/CurveCollection.d.ts +21 -2
  49. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  50. package/lib/cjs/curve/CurveCollection.js +45 -10
  51. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  52. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  53. package/lib/cjs/curve/CurveExtendMode.d.ts +18 -15
  54. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  55. package/lib/cjs/curve/CurveExtendMode.js +18 -17
  56. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  57. package/lib/cjs/curve/CurveFactory.d.ts +11 -13
  58. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  59. package/lib/cjs/curve/CurveFactory.js +19 -46
  60. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  61. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  62. package/lib/cjs/curve/CurveOps.js.map +1 -1
  63. package/lib/cjs/curve/CurvePrimitive.d.ts +9 -5
  64. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  65. package/lib/cjs/curve/CurvePrimitive.js +9 -5
  66. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  67. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  68. package/lib/cjs/curve/CurveProcessor.js +0 -1
  69. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  70. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  71. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  72. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  73. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  74. package/lib/cjs/curve/LineSegment3d.js +2 -3
  75. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  76. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  77. package/lib/cjs/curve/LineString3d.js.map +1 -1
  78. package/lib/cjs/curve/Loop.js.map +1 -1
  79. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -1
  80. package/lib/cjs/curve/OffsetOptions.js +4 -4
  81. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  82. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  83. package/lib/cjs/curve/Path.d.ts +14 -0
  84. package/lib/cjs/curve/Path.d.ts.map +1 -1
  85. package/lib/cjs/curve/Path.js +27 -0
  86. package/lib/cjs/curve/Path.js.map +1 -1
  87. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  88. package/lib/cjs/curve/PointString3d.js +0 -1
  89. package/lib/cjs/curve/PointString3d.js.map +1 -1
  90. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  91. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  92. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  93. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  94. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  95. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  96. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  97. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  98. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  99. package/lib/cjs/curve/RegionOps.js.map +1 -1
  100. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  101. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  102. package/lib/cjs/curve/StrokeOptions.js +0 -1
  103. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  104. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  105. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  106. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  107. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  108. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  109. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  110. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  111. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  112. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -6
  113. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  114. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  115. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +10 -10
  116. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +4 -4
  119. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  120. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
  123. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  124. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
  125. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  126. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  127. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +5 -4
  131. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  134. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  135. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  136. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  137. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  138. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  139. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  140. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  141. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  142. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  143. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  144. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  145. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  146. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  147. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  148. package/lib/cjs/geometry3d/AngleSweep.d.ts +10 -6
  149. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  150. package/lib/cjs/geometry3d/AngleSweep.js +15 -12
  151. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  152. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  153. package/lib/cjs/geometry3d/BilinearPatch.js +4 -4
  154. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  155. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  156. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  157. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  158. package/lib/cjs/geometry3d/FrameBuilder.js +0 -1
  159. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  160. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  161. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  162. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  163. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  164. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  165. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  166. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  167. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  168. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  169. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  170. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  171. package/lib/cjs/geometry3d/Matrix3d.d.ts +28 -17
  172. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  173. package/lib/cjs/geometry3d/Matrix3d.js +36 -17
  174. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  175. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  176. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  177. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  178. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  179. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  180. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -3
  181. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  182. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  183. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  184. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -5
  185. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  186. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
  187. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  188. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  189. package/lib/cjs/geometry3d/PointHelpers.js +0 -1
  190. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  191. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  192. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  193. package/lib/cjs/geometry3d/PolygonOps.js +2 -4
  194. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  195. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  196. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  197. package/lib/cjs/geometry3d/Range.js.map +1 -1
  198. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  199. package/lib/cjs/geometry3d/Ray3d.js +2 -2
  200. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  201. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  202. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  203. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  204. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  205. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  206. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  207. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  208. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  209. package/lib/cjs/geometry4d/Map4d.d.ts +5 -5
  210. package/lib/cjs/geometry4d/Map4d.js +5 -5
  211. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  212. package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
  213. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  214. package/lib/cjs/geometry4d/Matrix4d.js +4 -7
  215. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  216. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  217. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  218. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  219. package/lib/cjs/geometry4d/Point4d.js +2 -1
  220. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  221. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  222. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  223. package/lib/cjs/numerics/BezierPolynomials.js +0 -1
  224. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  225. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  226. package/lib/cjs/numerics/Complex.js.map +1 -1
  227. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  228. package/lib/cjs/numerics/Newton.d.ts +3 -0
  229. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  230. package/lib/cjs/numerics/Newton.js +2 -5
  231. package/lib/cjs/numerics/Newton.js.map +1 -1
  232. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  233. package/lib/cjs/numerics/PolarData.js.map +1 -1
  234. package/lib/cjs/numerics/Polynomials.d.ts +46 -201
  235. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  236. package/lib/cjs/numerics/Polynomials.js +132 -445
  237. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  238. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  239. package/lib/cjs/numerics/Range1dArray.js +2 -2
  240. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  241. package/lib/cjs/numerics/SmallSystem.d.ts +164 -0
  242. package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -0
  243. package/lib/cjs/numerics/SmallSystem.js +321 -0
  244. package/lib/cjs/numerics/SmallSystem.js.map +1 -0
  245. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  246. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  247. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  248. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  249. package/lib/cjs/polyface/AuxData.js.map +1 -1
  250. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  251. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  252. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  253. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  254. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  255. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  256. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  257. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +0 -1
  258. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  259. package/lib/cjs/polyface/Polyface.d.ts +2 -2
  260. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  261. package/lib/cjs/polyface/Polyface.js +0 -1
  262. package/lib/cjs/polyface/Polyface.js.map +1 -1
  263. package/lib/cjs/polyface/PolyfaceBuilder.js +1 -1
  264. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  265. package/lib/cjs/polyface/PolyfaceClip.d.ts +3 -3
  266. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  267. package/lib/cjs/polyface/PolyfaceClip.js +1 -2
  268. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  269. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  270. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  271. package/lib/cjs/polyface/PolyfaceQuery.js +0 -1
  272. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  273. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  274. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  275. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  276. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  277. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  278. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  279. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  280. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  281. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  282. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  283. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  284. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  285. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  286. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  287. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  288. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +7 -7
  289. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  290. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  291. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  292. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  293. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  294. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  295. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  296. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  297. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  298. package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -1
  299. package/lib/cjs/serialization/DeepCompare.js +0 -1
  300. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  301. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  302. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  303. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  304. package/lib/cjs/solid/Box.js.map +1 -1
  305. package/lib/cjs/solid/Cone.js.map +1 -1
  306. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  307. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  308. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  309. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  310. package/lib/cjs/solid/Sphere.js.map +1 -1
  311. package/lib/cjs/solid/SweepContour.js.map +1 -1
  312. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  313. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  314. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  315. package/lib/cjs/topology/Graph.js +2 -2
  316. package/lib/cjs/topology/Graph.js.map +1 -1
  317. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  318. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  319. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  320. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  321. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  322. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  323. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  324. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  325. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  326. package/lib/cjs/topology/InsertAndRetriangulateContext.js +2 -2
  327. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  328. package/lib/cjs/topology/MaskManager.js.map +1 -1
  329. package/lib/cjs/topology/Merging.d.ts +1 -1
  330. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  331. package/lib/cjs/topology/Merging.js +2 -2
  332. package/lib/cjs/topology/Merging.js.map +1 -1
  333. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  334. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  335. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  336. package/lib/cjs/topology/Triangulation.js.map +1 -1
  337. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  338. package/lib/esm/Constant.js.map +1 -1
  339. package/lib/esm/Geometry.js +2 -2
  340. package/lib/esm/Geometry.js.map +1 -1
  341. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  342. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  343. package/lib/esm/bspline/BSpline1dNd.js +0 -1
  344. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  345. package/lib/esm/bspline/BSplineCurve.d.ts +5 -3
  346. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  347. package/lib/esm/bspline/BSplineCurve.js +5 -4
  348. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  349. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  350. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  351. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  352. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  353. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  354. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  355. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  356. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  357. package/lib/esm/bspline/KnotVector.js.map +1 -1
  358. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  359. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  360. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  361. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  362. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  363. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  364. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  365. package/lib/esm/clipping/ClipVector.js +1 -1
  366. package/lib/esm/clipping/ClipVector.js.map +1 -1
  367. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  368. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  369. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  370. package/lib/esm/core-geometry.d.ts +1 -1
  371. package/lib/esm/core-geometry.d.ts.map +1 -1
  372. package/lib/esm/core-geometry.js +1 -1
  373. package/lib/esm/core-geometry.js.map +1 -1
  374. package/lib/esm/curve/Arc3d.d.ts +136 -128
  375. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  376. package/lib/esm/curve/Arc3d.js +177 -152
  377. package/lib/esm/curve/Arc3d.js.map +1 -1
  378. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  379. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  380. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  381. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  382. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -7
  383. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  384. package/lib/esm/curve/CurveCollection.d.ts +21 -2
  385. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  386. package/lib/esm/curve/CurveCollection.js +45 -10
  387. package/lib/esm/curve/CurveCollection.js.map +1 -1
  388. package/lib/esm/curve/CurveCurve.js.map +1 -1
  389. package/lib/esm/curve/CurveExtendMode.d.ts +18 -15
  390. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  391. package/lib/esm/curve/CurveExtendMode.js +18 -17
  392. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  393. package/lib/esm/curve/CurveFactory.d.ts +11 -13
  394. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  395. package/lib/esm/curve/CurveFactory.js +17 -44
  396. package/lib/esm/curve/CurveFactory.js.map +1 -1
  397. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  398. package/lib/esm/curve/CurveOps.js.map +1 -1
  399. package/lib/esm/curve/CurvePrimitive.d.ts +9 -5
  400. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  401. package/lib/esm/curve/CurvePrimitive.js +9 -5
  402. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  403. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  404. package/lib/esm/curve/CurveProcessor.js +0 -1
  405. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  406. package/lib/esm/curve/CurveTypes.js.map +1 -1
  407. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  408. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  409. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  410. package/lib/esm/curve/LineSegment3d.js +1 -2
  411. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  412. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  413. package/lib/esm/curve/LineString3d.js.map +1 -1
  414. package/lib/esm/curve/Loop.js.map +1 -1
  415. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -1
  416. package/lib/esm/curve/OffsetOptions.js +4 -4
  417. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  418. package/lib/esm/curve/ParityRegion.js.map +1 -1
  419. package/lib/esm/curve/Path.d.ts +14 -0
  420. package/lib/esm/curve/Path.d.ts.map +1 -1
  421. package/lib/esm/curve/Path.js +27 -0
  422. package/lib/esm/curve/Path.js.map +1 -1
  423. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  424. package/lib/esm/curve/PointString3d.js +0 -1
  425. package/lib/esm/curve/PointString3d.js.map +1 -1
  426. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  427. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  428. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  429. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  430. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  431. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  432. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  433. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  434. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  435. package/lib/esm/curve/RegionOps.js.map +1 -1
  436. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  437. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  438. package/lib/esm/curve/StrokeOptions.js +0 -1
  439. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  440. package/lib/esm/curve/UnionRegion.js.map +1 -1
  441. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  442. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  443. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  444. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  445. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  446. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  447. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  448. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +4 -5
  449. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  450. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  451. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +5 -5
  452. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  453. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  454. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +3 -3
  455. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  456. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  457. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  458. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
  459. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  460. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
  461. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  462. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  463. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  464. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  465. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  466. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +5 -4
  467. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  468. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  469. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  470. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  471. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  472. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  473. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  474. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  475. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  476. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  477. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  478. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  479. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  480. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  481. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  482. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  483. package/lib/esm/geometry3d/Angle.js.map +1 -1
  484. package/lib/esm/geometry3d/AngleSweep.d.ts +10 -6
  485. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  486. package/lib/esm/geometry3d/AngleSweep.js +15 -12
  487. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  488. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  489. package/lib/esm/geometry3d/BilinearPatch.js +1 -1
  490. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  491. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  492. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  493. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  494. package/lib/esm/geometry3d/FrameBuilder.js +0 -1
  495. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  496. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  497. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  498. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  499. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  500. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  501. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  502. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  503. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  504. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  505. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  506. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  507. package/lib/esm/geometry3d/Matrix3d.d.ts +28 -17
  508. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  509. package/lib/esm/geometry3d/Matrix3d.js +36 -17
  510. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  511. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  512. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  513. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  514. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  515. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  516. package/lib/esm/geometry3d/Point2dArrayCarrier.js +0 -1
  517. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  518. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  519. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  520. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -5
  521. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  522. package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
  523. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  524. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  525. package/lib/esm/geometry3d/PointHelpers.js +0 -1
  526. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  527. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  528. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  529. package/lib/esm/geometry3d/PolygonOps.js +2 -4
  530. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  531. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  532. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  533. package/lib/esm/geometry3d/Range.js.map +1 -1
  534. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  535. package/lib/esm/geometry3d/Ray3d.js +1 -1
  536. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  537. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  538. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  539. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  540. package/lib/esm/geometry3d/Transform.js.map +1 -1
  541. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  542. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  543. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  544. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  545. package/lib/esm/geometry4d/Map4d.d.ts +5 -5
  546. package/lib/esm/geometry4d/Map4d.js +5 -5
  547. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  548. package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
  549. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  550. package/lib/esm/geometry4d/Matrix4d.js +4 -7
  551. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  552. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  553. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  554. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  555. package/lib/esm/geometry4d/Point4d.js +2 -1
  556. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  557. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  558. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  559. package/lib/esm/numerics/BezierPolynomials.js +0 -1
  560. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  561. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  562. package/lib/esm/numerics/Complex.js.map +1 -1
  563. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  564. package/lib/esm/numerics/Newton.d.ts +3 -0
  565. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  566. package/lib/esm/numerics/Newton.js +1 -4
  567. package/lib/esm/numerics/Newton.js.map +1 -1
  568. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  569. package/lib/esm/numerics/PolarData.js.map +1 -1
  570. package/lib/esm/numerics/Polynomials.d.ts +46 -201
  571. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  572. package/lib/esm/numerics/Polynomials.js +132 -444
  573. package/lib/esm/numerics/Polynomials.js.map +1 -1
  574. package/lib/esm/numerics/Quadrature.js.map +1 -1
  575. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  576. package/lib/esm/numerics/SmallSystem.d.ts +164 -0
  577. package/lib/esm/numerics/SmallSystem.d.ts.map +1 -0
  578. package/lib/esm/numerics/SmallSystem.js +317 -0
  579. package/lib/esm/numerics/SmallSystem.js.map +1 -0
  580. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  581. package/lib/esm/numerics/UnionFind.js.map +1 -1
  582. package/lib/esm/numerics/UsageSums.js.map +1 -1
  583. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  584. package/lib/esm/polyface/AuxData.js.map +1 -1
  585. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  586. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  587. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  588. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  589. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  590. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  591. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  592. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +0 -1
  593. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  594. package/lib/esm/polyface/Polyface.d.ts +2 -2
  595. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  596. package/lib/esm/polyface/Polyface.js +0 -1
  597. package/lib/esm/polyface/Polyface.js.map +1 -1
  598. package/lib/esm/polyface/PolyfaceBuilder.js +1 -1
  599. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  600. package/lib/esm/polyface/PolyfaceClip.d.ts +3 -3
  601. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  602. package/lib/esm/polyface/PolyfaceClip.js +1 -2
  603. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  604. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  605. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  606. package/lib/esm/polyface/PolyfaceQuery.js +0 -1
  607. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  608. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  609. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  610. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  611. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  612. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  613. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  614. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  615. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  616. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  617. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  618. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  619. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  620. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  621. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  622. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  623. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +4 -4
  624. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  625. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  626. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  627. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  628. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  629. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  630. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  631. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  632. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  633. package/lib/esm/serialization/DeepCompare.d.ts.map +1 -1
  634. package/lib/esm/serialization/DeepCompare.js +0 -1
  635. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  636. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  637. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  638. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  639. package/lib/esm/solid/Box.js.map +1 -1
  640. package/lib/esm/solid/Cone.js.map +1 -1
  641. package/lib/esm/solid/LinearSweep.js.map +1 -1
  642. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  643. package/lib/esm/solid/RuledSweep.js.map +1 -1
  644. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  645. package/lib/esm/solid/Sphere.js.map +1 -1
  646. package/lib/esm/solid/SweepContour.js.map +1 -1
  647. package/lib/esm/solid/TorusPipe.js.map +1 -1
  648. package/lib/esm/topology/ChainMerge.js.map +1 -1
  649. package/lib/esm/topology/Graph.d.ts.map +1 -1
  650. package/lib/esm/topology/Graph.js +1 -1
  651. package/lib/esm/topology/Graph.js.map +1 -1
  652. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  653. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  654. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  655. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  656. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  657. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  658. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  659. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  660. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  661. package/lib/esm/topology/InsertAndRetriangulateContext.js +1 -1
  662. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  663. package/lib/esm/topology/MaskManager.js.map +1 -1
  664. package/lib/esm/topology/Merging.d.ts +1 -1
  665. package/lib/esm/topology/Merging.d.ts.map +1 -1
  666. package/lib/esm/topology/Merging.js +1 -1
  667. package/lib/esm/topology/Merging.js.map +1 -1
  668. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  669. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  670. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  671. package/lib/esm/topology/Triangulation.js.map +1 -1
  672. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  673. package/package.json +11 -23
@@ -11,7 +11,8 @@ import { Plane3dByOriginAndVectors } from "../geometry3d/Plane3dByOriginAndVecto
11
11
  import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
12
12
  import { Range1d, Range3d } from "../geometry3d/Range";
13
13
  import { Ray3d } from "../geometry3d/Ray3d";
14
- import { SineCosinePolynomial, SmallSystem, TrigPolynomial } from "../numerics/Polynomials";
14
+ import { SineCosinePolynomial, TrigPolynomial } from "../numerics/Polynomials";
15
+ import { SmallSystem } from "../numerics/SmallSystem";
15
16
  import { CurveExtendMode, CurveExtendOptions } from "./CurveExtendMode";
16
17
  import { CurveIntervalRole, CurveLocationDetail, CurveSearchStatus } from "./CurveLocationDetail";
17
18
  import { CurvePrimitive } from "./CurvePrimitive";
@@ -150,15 +151,15 @@ export class Arc3d extends CurvePrimitive {
150
151
  isSameGeometryClass(other) {
151
152
  return other instanceof Arc3d;
152
153
  }
153
- /** Read property for (clone of) center */
154
+ /** Read property for (clone of) center. */
154
155
  get center() {
155
156
  return this._center.clone();
156
157
  }
157
- /** Read property for (clone of) vector0 */
158
+ /** Read property for (clone of) vector0. */
158
159
  get vector0() {
159
160
  return this._matrix.columnX();
160
161
  }
161
- /** Read property for (clone of) vector90 */
162
+ /** Read property for (clone of) vector90. */
162
163
  get vector90() {
163
164
  return this._matrix.columnY();
164
165
  }
@@ -166,11 +167,11 @@ export class Arc3d extends CurvePrimitive {
166
167
  get perpendicularVector() {
167
168
  return this._matrix.columnZ();
168
169
  }
169
- /** Read property for (clone of) matrix of vector0, vector90, unit normal */
170
+ /** Read property for (clone of) matrix of vector0, vector90, unit normal. */
170
171
  matrixClone() {
171
172
  return this._matrix.clone();
172
173
  }
173
- /** Read property for (reference to) matrix of vector0, vector90, unit normal */
174
+ /** Read property for (reference to) matrix of vector0, vector90, unit normal. */
174
175
  get matrixRef() {
175
176
  return this._matrix;
176
177
  }
@@ -181,21 +182,21 @@ export class Arc3d extends CurvePrimitive {
181
182
  set sweep(value) {
182
183
  this._sweep.setFrom(value);
183
184
  }
184
- /** An Arc3d extends along its complete elliptic arc */
185
+ /** An Arc3d extends along its complete elliptic arc. */
185
186
  get isExtensibleFractionSpace() {
186
187
  return true;
187
188
  }
188
189
  // constructor copies the pointers
189
190
  constructor(center, matrix, sweep) {
190
191
  super();
191
- /** String name for schema properties */
192
+ /** String name for schema properties. */
192
193
  this.curvePrimitiveType = "arc";
193
194
  this._center = center;
194
195
  this._matrix = matrix;
195
196
  this._sweep = sweep;
196
197
  }
197
198
  /**
198
- * Return a clone of the arc, with transform applied
199
+ * Return a clone of the arc, with transform applied.
199
200
  * @param transform
200
201
  */
201
202
  cloneTransformed(transform) {
@@ -205,9 +206,9 @@ export class Arc3d extends CurvePrimitive {
205
206
  }
206
207
  /**
207
208
  * Redefine the arc with (captured references to) given data.
208
- * @param center arc center
209
- * @param matrix matrix with columns vector0, vector 90, and their unit cross product
210
- * @param sweep angle sweep
209
+ * @param center arc center.
210
+ * @param matrix matrix with columns vector0, vector 90, and their unit cross product.
211
+ * @param sweep angle sweep.
211
212
  */
212
213
  setRefs(center, matrix, sweep) {
213
214
  this._center = center;
@@ -216,14 +217,14 @@ export class Arc3d extends CurvePrimitive {
216
217
  }
217
218
  /**
218
219
  * Redefine the arc with (clones of) given data.
219
- * @param center arc center
220
- * @param matrix matrix with columns vector0, vector 90, and their unit cross product
221
- * @param sweep angle sweep
220
+ * @param center arc center.
221
+ * @param matrix matrix with columns vector0, vector 90, and their unit cross product.
222
+ * @param sweep angle sweep.
222
223
  */
223
224
  set(center, matrix, sweep) {
224
225
  this.setRefs(center.clone(), matrix.clone(), sweep ? sweep.clone() : AngleSweep.create360());
225
226
  }
226
- /** Copy center, matrix, and sweep from other Arc3d */
227
+ /** Copy center, matrix, and sweep from other Arc3d. */
227
228
  setFrom(other) {
228
229
  this._center.setFrom(other._center);
229
230
  this._matrix.setFrom(other._matrix);
@@ -235,9 +236,9 @@ export class Arc3d extends CurvePrimitive {
235
236
  }
236
237
  /**
237
238
  * Create an arc, capturing references to center, matrix and sweep.
238
- * @param center center point
239
- * @param matrix matrix with columns vector0, vector90, and unit cross product
240
- * @param sweep sweep limits
239
+ * @param center center point.
240
+ * @param matrix matrix with columns vector0, vector90, and unit cross product.
241
+ * @param sweep sweep limits.
241
242
  * @param result optional preallocated result.
242
243
  */
243
244
  static createRefs(center, matrix, sweep, result) {
@@ -249,11 +250,11 @@ export class Arc3d extends CurvePrimitive {
249
250
  }
250
251
  /**
251
252
  * Create an arc from center, x column to be scaled, and y column to be scaled.
252
- * @param center center of ellipse
253
- * @param matrix matrix whose x and y columns are unit vectors to be scaled by radius0 and radius90
253
+ * @param center center of ellipse.
254
+ * @param matrix matrix whose x and y columns are scaled by radius0 and radius90.
254
255
  * @param radius0 radius in x direction.
255
256
  * @param radius90 radius in y direction.
256
- * @param sweep sweep limits
257
+ * @param sweep sweep limits.
257
258
  * @param result optional preallocated result.
258
259
  */
259
260
  static createScaledXYColumns(center, matrix, radius0, radius90, sweep, result) {
@@ -262,9 +263,9 @@ export class Arc3d extends CurvePrimitive {
262
263
  return Arc3d.create(center, vector0.scale(radius0, vector0), vector90.scale(radius90, vector90), sweep, result);
263
264
  }
264
265
  /**
265
- * Create a (full circular) arc from center, normal and radius
266
- * @param center center of ellipse. If undefined, center at 000
267
- * @param normal normal vector
266
+ * Create a (full circular) arc from center, normal and radius.
267
+ * @param center center of ellipse. If undefined, center at 000.
268
+ * @param normal normal vector.
268
269
  * @param radius radius in x direction.
269
270
  * @param result optional preallocated result.
270
271
  */
@@ -274,11 +275,11 @@ export class Arc3d extends CurvePrimitive {
274
275
  }
275
276
  /**
276
277
  * Create an arc by center with vectors to points at 0 and 90 degrees in parameter space.
277
- * @param center arc center
278
- * @param vector0 vector to 0 degrees (commonly major axis)
279
- * @param vector90 vector to 90 degree point (commonly minor axis)
280
- * @param sweep sweep limits (default full sweep)
281
- * @param result optional preallocated result
278
+ * @param center arc center.
279
+ * @param vector0 vector to 0 degrees (commonly major axis).
280
+ * @param vector90 vector to 90 degree point (commonly minor axis).
281
+ * @param sweep sweep limits; defaults to full sweep.
282
+ * @param result optional preallocated result.
282
283
  */
283
284
  static create(center, vector0, vector90, sweep, result) {
284
285
  const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
@@ -287,19 +288,19 @@ export class Arc3d extends CurvePrimitive {
287
288
  }
288
289
  /**
289
290
  * 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)`.
291
+ * @param start start of arc, on an axis.
292
+ * @param middle point on arc somewhere between `start` and `end`.
293
+ * @param end point on arc directly opposite `start`.
294
+ * @param sweep angular sweep, measured from `start` in the direction of `middle`.
295
+ * For a half-ellipse from `start` to `end` passing through `middle`, pass `AngleSweep.createStartEndDegrees(0,180)`.
295
296
  * Default value is full sweep to create the entire ellipse.
296
- * @param result optional preallocated result
297
+ * @param result optional preallocated result.
297
298
  * @returns elliptical arc, or undefined if construction impossible.
298
299
  */
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);
300
+ static createStartMiddleEnd(start, middle, end, sweep, result) {
301
+ const center = Point3d.createAdd2Scaled(start, 0.5, end, 0.5);
302
+ const vector0 = Vector3d.createStartEnd(center, start);
303
+ const vector1 = Vector3d.createStartEnd(center, middle);
303
304
  const v0DotV1 = vector0.dotProduct(vector1);
304
305
  const v0Len2 = vector0.magnitudeSquared();
305
306
  if (Math.abs(v0DotV1) >= v0Len2)
@@ -307,7 +308,7 @@ export class Arc3d extends CurvePrimitive {
307
308
  const normal = vector0.crossProduct(vector1);
308
309
  const vector90 = normal.unitCrossProductWithDefault(vector0, 0, 0, 0);
309
310
  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)
311
+ // solve the standard ellipse equation for the unknown axis length, given local coords of middle (v0.v1/||v0||, v90.v1)
311
312
  const v90Len = Geometry.safeDivideFraction(v0Len2 * v1DotV90, Math.sqrt(v0Len2 * v0Len2 - v0DotV1 * v0DotV1), 0);
312
313
  if (Geometry.isSmallMetricDistanceSquared(v90Len))
313
314
  return undefined;
@@ -316,39 +317,61 @@ export class Arc3d extends CurvePrimitive {
316
317
  }
317
318
  /**
318
319
  * 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.
320
+ * * The circular arc is swept from `start` to `end` in the direction of `tangentAtStart`.
321
+ * * If `tangentAtStart` is parallel to the line segment from `start` to `end`, return the line segment.
320
322
  */
321
323
  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));
324
+ // see itwinjs-core\core\geometry\internaldocs\Arc3d.md to clarify below algorithm
325
+ const startToEnd = Vector3d.createStartEnd(start, end);
326
+ const frame = Matrix3d.createRigidFromColumns(tangentAtStart, startToEnd, AxisOrder.XYZ);
327
+ if (frame !== undefined) {
328
+ const vv = startToEnd.dotProduct(startToEnd);
329
+ const vw = frame.dotColumnY(startToEnd);
330
+ const radius = Geometry.conditionalDivideCoordinate(vv, 2 * vw);
331
+ if (radius !== undefined) {
332
+ const vector0 = frame.columnY();
333
+ vector0.scaleInPlace(-radius); // center to start
334
+ const vector90 = frame.columnX();
335
+ vector90.scaleInPlace(radius);
336
+ const centerToEnd = vector0.plus(startToEnd);
337
+ const sweepAngle = vector0.angleTo(centerToEnd);
338
+ let sweepRadians = sweepAngle.radians; // always positive and less than PI
339
+ if (tangentAtStart.dotProduct(centerToEnd) < 0.0) // sweepRadians is the wrong way
340
+ sweepRadians = 2.0 * Math.PI - sweepRadians;
341
+ const center = start.plusScaled(vector0, -1.0);
342
+ const sweep = AngleSweep.createStartEndRadians(0.0, sweepRadians);
341
343
  return Arc3d.create(center, vector0, vector90, sweep, result);
342
344
  }
343
345
  }
344
346
  return LineSegment3d.create(start, end);
345
347
  }
348
+ /**
349
+ * Create a circular arc from start point, tangent at start, radius, optional plane normal, arc sweep.
350
+ * * The vector from start point to center is in the direction of upVector crossed with tangentA.
351
+ * @param start start point.
352
+ * @param tangentAtStart vector in tangent direction at the start.
353
+ * @param radius signed radius.
354
+ * @param upVector optional out-of-plane vector. Defaults to positive Z.
355
+ * @param sweep angular range. If single `Angle` is given, start angle is at 0 degrees (the start point).
356
+ */
357
+ static createCircularStartTangentRadius(start, tangentAtStart, radius, upVector, sweep) {
358
+ if (upVector === undefined)
359
+ upVector = Vector3d.unitZ();
360
+ const vector0 = upVector.unitCrossProduct(tangentAtStart);
361
+ if (vector0 === undefined)
362
+ return undefined;
363
+ const center = start.plusScaled(vector0, radius);
364
+ // reverse the A-to-center vector and bring it up to scale
365
+ vector0.scaleInPlace(-radius);
366
+ const vector90 = tangentAtStart.scaleToLength(Math.abs(radius)); // cannot fail; prior unitCrossProduct would have failed first
367
+ return Arc3d.create(center, vector0, vector90, AngleSweep.create(sweep));
368
+ }
346
369
  /**
347
370
  * Create a circular arc defined by start and end points and radius.
348
- * @param start start point of the arc
349
- * @param end end point of the arc
350
- * @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
351
- * @returns the constructed arc, or undefined if desired arc cannot be constructed
371
+ * @param start start point of the arc.
372
+ * @param end end point of the arc.
373
+ * @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal.
374
+ * @returns the constructed arc, or undefined if desired arc cannot be constructed.
352
375
  */
353
376
  static createCircularStartEndRadius(start, end, radius, helper) {
354
377
  // Construct a line segment from start to end. It is a chord of the circle,
@@ -380,7 +403,7 @@ export class Arc3d extends CurvePrimitive {
380
403
  * Return a clone of this arc, projected to given z value.
381
404
  * * If `z` is omitted, the clone is at the z of the center.
382
405
  * * This function projects the arc into a plane parallel to xy-plane.
383
- * * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle)
406
+ * * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle).
384
407
  */
385
408
  cloneAtZ(z) {
386
409
  if (z === undefined)
@@ -390,7 +413,7 @@ export class Arc3d extends CurvePrimitive {
390
413
  /**
391
414
  * Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in
392
415
  * parameter space.
393
- * @param result optional preallocated result
416
+ * @param result optional preallocated result.
394
417
  */
395
418
  static createXYZXYZXYZ(cx, cy, cz, ux, uy, uz, vx, vy, vz, sweep, result) {
396
419
  return Arc3d.create(Point3d.create(cx, cy, cz), Vector3d.create(ux, uy, uz), Vector3d.create(vx, vy, vz), sweep, result);
@@ -445,18 +468,18 @@ export class Arc3d extends CurvePrimitive {
445
468
  return undefined;
446
469
  }
447
470
  /**
448
- * Convert a fractional position to xyz coordinates
449
- * @param fraction fractional position on arc
450
- * @param result optional preallocated result
471
+ * Convert a fractional position to xyz coordinates.
472
+ * @param fraction fractional position on arc.
473
+ * @param result optional preallocated result.
451
474
  */
452
475
  fractionToPoint(fraction, result) {
453
476
  const radians = this._sweep.fractionToRadians(fraction);
454
477
  return this._matrix.originPlusMatrixTimesXY(this._center, Math.cos(radians), Math.sin(radians), result);
455
478
  }
456
479
  /**
457
- * Convert fractional arc and radial positions to xyz coordinates
458
- * @param fraction fractional position on arc
459
- * @param result optional preallocated result
480
+ * Convert fractional arc and radial positions to xyz coordinates.
481
+ * @param fraction fractional position on arc.
482
+ * @param result optional preallocated result.
460
483
  */
461
484
  fractionAndRadialFractionToPoint(arcFraction, radialFraction, result) {
462
485
  const radians = this._sweep.fractionToRadians(arcFraction);
@@ -464,8 +487,8 @@ export class Arc3d extends CurvePrimitive {
464
487
  }
465
488
  /**
466
489
  * Convert a fractional position to xyz coordinates and derivative with respect to fraction.
467
- * @param fraction fractional position on arc
468
- * @param result optional preallocated result
490
+ * @param fraction fractional position on arc.
491
+ * @param result optional preallocated result.
469
492
  */
470
493
  fractionToPointAndDerivative(fraction, result) {
471
494
  result = this.radiansToPointAndDerivative(this._sweep.fractionToRadians(fraction), result);
@@ -474,10 +497,10 @@ export class Arc3d extends CurvePrimitive {
474
497
  }
475
498
  /**
476
499
  * Construct a plane with
477
- * * origin at the fractional position along the arc
478
- * * x axis is the first derivative, i.e. tangent along the arc
500
+ * * origin at the fractional position along the arc.
501
+ * * x axis is the first derivative, i.e. tangent along the arc.
479
502
  * * y axis is the second derivative, i.e. in the plane and on the center side of the tangent.
480
- * If the arc is circular, the second derivative is directly towards the center
503
+ * If the arc is circular, the second derivative is directly towards the center.
481
504
  */
482
505
  fractionToPointAnd2Derivatives(fraction, result) {
483
506
  const radians = this._sweep.fractionToRadians(fraction);
@@ -493,8 +516,8 @@ export class Arc3d extends CurvePrimitive {
493
516
  return result;
494
517
  }
495
518
  /**
496
- * Evaluate the point and derivative with respect to the angle (in radians)
497
- * @param radians angular position
519
+ * Evaluate the point and derivative with respect to the angle (in radians).
520
+ * @param radians angular position.
498
521
  * @param result optional preallocated ray.
499
522
  */
500
523
  radiansToPointAndDerivative(radians, result) {
@@ -506,8 +529,8 @@ export class Arc3d extends CurvePrimitive {
506
529
  return result;
507
530
  }
508
531
  /**
509
- * Evaluate the point with respect to the angle (in radians)
510
- * @param radians angular position
532
+ * Evaluate the point with respect to the angle (in radians).
533
+ * @param radians angular position.
511
534
  * @param result optional preallocated ray.
512
535
  */
513
536
  radiansToPoint(radians, result) {
@@ -519,11 +542,11 @@ export class Arc3d extends CurvePrimitive {
519
542
  }
520
543
  /**
521
544
  * Return a parametric plane with
522
- * * origin at arc center
523
- * * vectorU from center to arc at angle (in radians)
545
+ * * origin at arc center.
546
+ * * vectorU from center to arc at angle (in radians).
524
547
  * * vectorV from center to arc at 90 degrees past the angle.
525
- * @param radians angular position
526
- * @param result optional preallocated plane
548
+ * @param radians angular position.
549
+ * @param result optional preallocated plane.
527
550
  */
528
551
  radiansToRotatedBasis(radians, result) {
529
552
  result = result ? result : Plane3dByOriginAndVectors.createXYPlane();
@@ -535,8 +558,8 @@ export class Arc3d extends CurvePrimitive {
535
558
  return result;
536
559
  }
537
560
  /**
538
- * Evaluate the point and derivative with respect to the angle (in radians)
539
- * @param theta angular position
561
+ * Evaluate the point and derivative with respect to the angle (in radians).
562
+ * @param theta angular position.
540
563
  * @param result optional preallocated ray.
541
564
  */
542
565
  angleToPointAndDerivative(theta, result) {
@@ -549,14 +572,14 @@ export class Arc3d extends CurvePrimitive {
549
572
  }
550
573
  /**
551
574
  * Return the start point of the arc.
552
- * @param result optional preallocated result
575
+ * @param result optional preallocated result.
553
576
  */
554
577
  startPoint(result) {
555
578
  return this.fractionToPoint(0.0, result);
556
579
  }
557
580
  /**
558
581
  * Return the end point of the arc.
559
- * @param result optional preallocated result
582
+ * @param result optional preallocated result.
560
583
  */
561
584
  endPoint(result) {
562
585
  return this.fractionToPoint(1.0, result);
@@ -628,9 +651,9 @@ export class Arc3d extends CurvePrimitive {
628
651
  return chordSum * factor;
629
652
  }
630
653
  /**
631
- * * See extended comments on `CurvePrimitive.moveSignedDistanceFromFraction`
632
- * * A zero length line generates `CurveSearchStatus.error`
633
- * * Nonzero length line generates `CurveSearchStatus.success` or `CurveSearchStatus.stoppedAtBoundary`
654
+ * * See extended comments on `CurvePrimitive.moveSignedDistanceFromFraction`.
655
+ * * A zero length line generates `CurveSearchStatus.error`.
656
+ * * Nonzero length line generates `CurveSearchStatus.success` or `CurveSearchStatus.stoppedAtBoundary`.
634
657
  */
635
658
  moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
636
659
  if (!this.isCircular) // suppress extension !!!
@@ -644,7 +667,7 @@ export class Arc3d extends CurvePrimitive {
644
667
  }
645
668
  /**
646
669
  * Return all radian angles where the ellipse tangent is perpendicular to the vector to a spacePoint.
647
- * @param spacePoint point of origin of vectors to the ellipse
670
+ * @param spacePoint point of origin of vectors to the ellipse.
648
671
  * @param _extend always true. Sweep is ignored: perpendiculars for the full ellipse are returned.
649
672
  * @param endpoints if true, force the end radians into the result.
650
673
  */
@@ -713,7 +736,7 @@ export class Arc3d extends CurvePrimitive {
713
736
  /**
714
737
  * Apply a transform to the arc basis vectors.
715
738
  * * nonuniform (i.e. skewing) transforms are allowed.
716
- * * The transformed vector0 and vector90 are NOT squared up as major minor axes. (This is a good feature!!)
739
+ * * The transformed vector0 and vector90 are NOT squared up as major minor axes (this is a good feature).
717
740
  */
718
741
  tryTransformInPlace(transform) {
719
742
  this._center = transform.multiplyPoint3d(this._center, this._center);
@@ -722,10 +745,7 @@ export class Arc3d extends CurvePrimitive {
722
745
  this.setVector0Vector90(this._matrix.columnX(), this._matrix.columnY());
723
746
  return true;
724
747
  }
725
- /**
726
- * Return true if the ellipse center and basis vectors are in the plane
727
- * @param plane
728
- */
748
+ /** Return true if the ellipse center and basis vectors are in the plane. */
729
749
  isInPlane(plane) {
730
750
  const normal = plane.getNormalRef();
731
751
  // The ellipse vectors are full-length -- true distance comparisons say things.
@@ -753,17 +773,17 @@ export class Arc3d extends CurvePrimitive {
753
773
  return Geometry.hypotenuseXY(ux, uy);
754
774
  return undefined;
755
775
  }
756
- /** If the arc is circular, return its radius. Otherwise return undefined */
776
+ /** If the arc is circular, return its radius. Otherwise return undefined. */
757
777
  circularRadius() {
758
778
  return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
759
779
  }
760
- /** Return the larger of the two defining vectors. */
780
+ /** Return the larger length of the two defining vectors. */
761
781
  maxVectorLength() {
762
782
  return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
763
783
  }
764
784
  /**
765
785
  * Compute intersections with a plane.
766
- * @param plane plane to intersect
786
+ * @param plane plane to intersect.
767
787
  * @param result array of locations on the curve.
768
788
  */
769
789
  appendPlaneIntersectionPoints(plane, result) {
@@ -826,8 +846,8 @@ export class Arc3d extends CurvePrimitive {
826
846
  range.extend(highPoint);
827
847
  }
828
848
  /**
829
- * Returns a (high accuracy) range of the curve between fractional positions
830
- * * Default implementation returns teh range of the curve from clonePartialCurve
849
+ * Returns a (high accuracy) range of the curve between fractional positions.
850
+ * * Default implementation returns teh range of the curve from clonePartialCurve.
831
851
  */
832
852
  rangeBetweenFractions(fraction0, fraction1, transform) {
833
853
  const sweep = AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
@@ -837,7 +857,7 @@ export class Arc3d extends CurvePrimitive {
837
857
  }
838
858
  /**
839
859
  * Set up a SineCosinePolynomial as the function c+u*cos(theta)+v*sin(theta) where
840
- * c,u,v are coefficients obtained by evaluating altitude and velocity relative to the plane.
860
+ * c,u,v are coefficients obtained by evaluating altitude and velocity relative to the plane.
841
861
  * @param plane plane for altitude calculation.
842
862
  * @param result optional result.
843
863
  * @internal
@@ -857,32 +877,32 @@ export class Arc3d extends CurvePrimitive {
857
877
  }
858
878
  /**
859
879
  * Create a new arc which is parallel to the xy plane, with given center and radius and optional angle sweep.
860
- * @param center center of arc
861
- * @param radius radius of arc
862
- * @param sweep sweep limits. defaults to full circle.
880
+ * @param center center of arc.
881
+ * @param radius radius of arc.
882
+ * @param sweep sweep limits; defaults to full circle.
863
883
  */
864
884
  static createXY(center, radius, sweep = AngleSweep.create360()) {
865
885
  return new Arc3d(center.clone(), Matrix3d.createScale(radius, radius, 1.0), sweep.clone());
866
886
  }
867
887
  /**
868
888
  * Create a new arc which is parallel to the xy plane, with given center and x,y radii, and optional angle sweep
869
- * @param center center of ellipse
870
- * @param radiusA x axis radius
871
- * @param radiusB y axis radius
872
- * @param sweep angle sweep
889
+ * @param center center of ellipse.
890
+ * @param radiusA x axis radius.
891
+ * @param radiusB y axis radius.
892
+ * @param sweep angle sweep.
873
893
  */
874
894
  static createXYEllipse(center, radiusA, radiusB, sweep = AngleSweep.create360()) {
875
895
  return new Arc3d(center.clone(), Matrix3d.createScale(radiusA, radiusB, 1.0), sweep.clone());
876
896
  }
877
897
  /**
878
898
  * Replace the arc's 0 and 90 degree vectors.
879
- * @param vector0 vector from center to ellipse point at 0 degrees in parameter space
880
- * @param vector90 vector from center to ellipse point at 90 degrees in parameter space
899
+ * @param vector0 vector from center to ellipse point at 0 degrees in parameter space.
900
+ * @param vector90 vector from center to ellipse point at 90 degrees in parameter space.
881
901
  */
882
902
  setVector0Vector90(vector0, vector90) {
883
903
  this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
884
904
  }
885
- /** Return the arc definition with rigid matrix form with axis radii */
905
+ /** Return the arc definition with rigid matrix form with axis radii. */
886
906
  toScaledMatrix3d() {
887
907
  const angleData = Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
888
908
  const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
@@ -896,7 +916,7 @@ export class Arc3d extends CurvePrimitive {
896
916
  sweep: this.sweep.cloneMinusRadians(angleData.radians),
897
917
  };
898
918
  }
899
- /** Return the arc definition with center, two vectors, and angle sweep; */
919
+ /** Return the arc definition with center, two vectors, and angle sweep. */
900
920
  toVectors() {
901
921
  return {
902
922
  center: this.center.clone(),
@@ -931,9 +951,9 @@ export class Arc3d extends CurvePrimitive {
931
951
  }
932
952
  /**
933
953
  * Set this arc from a json object with these values:
934
- * * center center point
935
- * * vector0 vector from center to 0 degree point in parameter space (commonly but not always the major axis vector)
936
- * * vector90 vector from center to 90 degree point in parameter space (commonly but not always the minor axis vector)
954
+ * * center center point.
955
+ * * vector0 vector from center to 0 degree point in parameter space (commonly but not always the major axis vector).
956
+ * * vector90 vector from center to 90 degree point in parameter space (commonly but not always the minor axis vector).
937
957
  * @param json
938
958
  */
939
959
  setFromJSON(json) {
@@ -964,22 +984,22 @@ export class Arc3d extends CurvePrimitive {
964
984
  vector90: this._matrix.columnY().toJSON(),
965
985
  };
966
986
  }
967
- /** Test if this arc is almost equal to another GeometryQuery object */
968
- isAlmostEqual(otherGeometry) {
987
+ /** Test if this arc is almost equal to another GeometryQuery object. */
988
+ isAlmostEqual(otherGeometry, distanceTol = Geometry.smallMetricDistance, radianTol = Geometry.smallAngleRadians) {
969
989
  if (otherGeometry instanceof Arc3d) {
970
990
  const other = otherGeometry;
971
- return this._center.isAlmostEqual(other._center)
972
- && this._matrix.isAlmostEqual(other._matrix)
973
- && this._sweep.isAlmostEqualAllowPeriodShift(other._sweep);
991
+ return this._center.isAlmostEqual(other._center, distanceTol)
992
+ && this._matrix.isAlmostEqual(other._matrix, distanceTol)
993
+ && this._sweep.isAlmostEqualAllowPeriodShift(other._sweep, radianTol);
974
994
  }
975
995
  return false;
976
996
  }
977
- /** Emit strokes to caller-supplied linestring */
997
+ /** Emit strokes to caller-supplied linestring. */
978
998
  emitStrokes(dest, options) {
979
999
  const numStrokes = this.computeStrokeCountForOptions(options);
980
1000
  dest.appendFractionalStrokePoints(this, numStrokes, 0.0, 1.0, true);
981
1001
  }
982
- /** Emit strokes to caller-supplied handler */
1002
+ /** Emit strokes to caller-supplied handler. */
983
1003
  emitStrokableParts(handler, options) {
984
1004
  const numStrokes = this.computeStrokeCountForOptions(options);
985
1005
  handler.startCurvePrimitive(this);
@@ -988,7 +1008,7 @@ export class Arc3d extends CurvePrimitive {
988
1008
  }
989
1009
  /**
990
1010
  * Return the stroke count required for given options.
991
- * @param options StrokeOptions that determine count
1011
+ * @param options StrokeOptions that determine count.
992
1012
  */
993
1013
  computeStrokeCountForOptions(options) {
994
1014
  let numStroke;
@@ -1001,14 +1021,14 @@ export class Arc3d extends CurvePrimitive {
1001
1021
  }
1002
1022
  return numStroke;
1003
1023
  }
1004
- /** Second step of double dispatch: call `handler.handleArc3d(this)` */
1024
+ /** Second step of double dispatch: call `handler.handleArc3d(this)` */
1005
1025
  dispatchToGeometryHandler(handler) {
1006
1026
  return handler.handleArc3d(this);
1007
1027
  }
1008
1028
  /**
1009
1029
  * Return (if possible) an arc which is a portion of this curve.
1010
- * @param fractionA [in] start fraction
1011
- * @param fractionB [in] end fraction
1030
+ * @param fractionA start fraction.
1031
+ * @param fractionB end fraction.
1012
1032
  */
1013
1033
  clonePartialCurve(fractionA, fractionB) {
1014
1034
  if (fractionB < fractionA) {
@@ -1022,8 +1042,8 @@ export class Arc3d extends CurvePrimitive {
1022
1042
  }
1023
1043
  /**
1024
1044
  * Return an arc whose basis vectors are rotated by given angle within the current basis space.
1025
- * * the result arc will have its zero-degree point (new `vector0`) at the current
1026
- * `vector0 * cos(theta) + vector90 * sin(theta)`
1045
+ * * the result arc will have its zero-degree point (new `vector0`) at the current.
1046
+ * `vector0 * cos(theta) + vector90 * sin(theta)`.
1027
1047
  * * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
1028
1048
  * * Specifically, theta is subtracted from the original start and end angles.
1029
1049
  * @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
@@ -1038,10 +1058,10 @@ export class Arc3d extends CurvePrimitive {
1038
1058
  return arcB;
1039
1059
  }
1040
1060
  /**
1041
- * Find intervals of this CurvePrimitive that are interior to a clipper
1042
- * @param clipper clip structure (e.g.clip planes)
1043
- * @param announce(optional) function to be called announcing fractional intervals"
1044
- * ` announce(fraction0, fraction1, curvePrimitive)`
1061
+ * Find intervals of this CurvePrimitive that are interior to a clipper.
1062
+ * @param clipper clip structure (e.g.clip planes).
1063
+ * @param announce (optional) function to be called announcing fractional intervals
1064
+ * `announce(fraction0, fraction1, curvePrimitive)`.
1045
1065
  * @returns true if any "in" segments are announced.
1046
1066
  */
1047
1067
  announceClipIntervals(clipper, announce) {
@@ -1053,7 +1073,12 @@ export class Arc3d extends CurvePrimitive {
1053
1073
  const otherVector0 = this._matrix.multiplyInverse(other.vector0);
1054
1074
  const otherVector90 = this._matrix.multiplyInverse(other.vector90);
1055
1075
  if (otherOrigin && otherVector0 && otherVector90) {
1056
- return { center: otherOrigin, vector0: otherVector0, vector90: otherVector90, sweep: this.sweep.clone() };
1076
+ return {
1077
+ center: otherOrigin,
1078
+ vector0: otherVector0,
1079
+ vector90: otherVector90,
1080
+ sweep: this.sweep.clone(),
1081
+ };
1057
1082
  }
1058
1083
  return undefined;
1059
1084
  }
@@ -1061,20 +1086,20 @@ export class Arc3d extends CurvePrimitive {
1061
1086
  * Determine an arc "at a point of inflection" of a point sequence.
1062
1087
  * * Return the arc along with the fractional positions of the tangency points.
1063
1088
  * * In the returned object:
1064
- * * `arc` is the (bounded) arc
1089
+ * * `arc` is the (bounded) arc.
1065
1090
  * * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
1066
- * `point1` (backwards) to `point0`
1091
+ * `point1` (backwards) to `point0`.
1067
1092
  * * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from
1068
- * `point1` (forward) to `point2`
1093
+ * `point1` (forward) to `point2`.
1069
1094
  * * `point` is the `point1` input.
1070
1095
  * * If unable to construct the arc:
1071
1096
  * * `point` is the `point1` input.
1072
- * * both fractions are zero
1097
+ * * both fractions are zero.
1073
1098
  * * `arc` is undefined.
1074
- * @param point0 first point of path. (the point before the point of inflection)
1075
- * @param point1 second point of path (the point of inflection)
1076
- * @param point2 third point of path (the point after the point of inflection)
1077
- * @param radius arc radius
1099
+ * @param point0 first point of path (the point before the point of inflection).
1100
+ * @param point1 second point of path (the point of inflection).
1101
+ * @param point2 third point of path (the point after the point of inflection).
1102
+ * @param radius arc radius.
1078
1103
  *
1079
1104
  */
1080
1105
  static createFilletArc(point0, point1, point2, radius) {
@@ -1109,11 +1134,11 @@ export class Arc3d extends CurvePrimitive {
1109
1134
  }
1110
1135
  return { fraction10: 0.0, fraction12: 0.0, point: point1.clone() };
1111
1136
  }
1112
- /** Scale the vector0 and vector90 vectors by `scaleFactor` */
1137
+ /** Scale the vector0 and vector90 vectors by `scaleFactor`. */
1113
1138
  scaleAboutCenterInPlace(scaleFactor) {
1114
1139
  this._matrix.scaleColumnsInPlace(scaleFactor, scaleFactor, 1.0);
1115
1140
  }
1116
- /** Return the (signed!) area between (a fractional portion of) the arc and the chord between those points */
1141
+ /** Return the (signed!) area between (a fractional portion of) the arc and the chord between those points. */
1117
1142
  areaToChordXY(fraction0, fraction1) {
1118
1143
  let detJ = Geometry.crossProductXYXY(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[1], this._matrix.coffs[4]);
1119
1144
  // areas in arc of unit circle with radians limits
@@ -1128,7 +1153,7 @@ export class Arc3d extends CurvePrimitive {
1128
1153
  }
1129
1154
  /**
1130
1155
  * Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).
1131
- * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
1156
+ * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object.
1132
1157
  */
1133
1158
  constructOffsetXY(offsetDistanceOrOptions) {
1134
1159
  const options = OffsetOptions.create(offsetDistanceOrOptions);
@@ -1160,7 +1185,7 @@ export class Arc3d extends CurvePrimitive {
1160
1185
  /**
1161
1186
  * Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
1162
1187
  * @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
1163
- * @param lowHigh optional receiver for output
1188
+ * @param lowHigh optional receiver for output.
1164
1189
  * @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
1165
1190
  */
1166
1191
  projectedParameterRange(ray, lowHigh) {
@@ -1168,7 +1193,7 @@ export class Arc3d extends CurvePrimitive {
1168
1193
  }
1169
1194
  /**
1170
1195
  * Construct a circular arc chain approximation to the instance elliptical arc.
1171
- * @param options bundle of options for sampling an elliptical arc (use default options if undefined)
1196
+ * @param options bundle of options for sampling an elliptical arc (use default options if undefined).
1172
1197
  * @returns the approximating curve chain, the circular instance, or undefined if construction fails.
1173
1198
  */
1174
1199
  constructCircularArcChainApproximation(options) {
@@ -1189,8 +1214,8 @@ Arc3d._workVectorV = Vector3d.create();
1189
1214
  Arc3d._workVectorW = Vector3d.create();
1190
1215
  // !! misspelled Gauss in the published static !! Declare it ok.
1191
1216
  // cspell::word Guass
1192
- /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
1217
+ /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
1193
1218
  Arc3d.quadratureGuassCount = 5;
1194
- /** In quadrature for arc length, use this interval (divided by quickEccentricity) */
1219
+ /** In quadrature for arc length, use this interval (divided by quickEccentricity). */
1195
1220
  Arc3d.quadratureIntervalAngleDegrees = 10.0;
1196
1221
  //# sourceMappingURL=Arc3d.js.map