@itwin/core-geometry 4.10.0-dev.9 → 5.0.0-dev.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 (338) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/lib/cjs/Geometry.js +2 -2
  3. package/lib/cjs/Geometry.js.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js +0 -1
  6. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve.d.ts +5 -3
  8. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve.js +5 -4
  10. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  11. package/lib/cjs/clipping/ClipVector.js +1 -1
  12. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  13. package/lib/cjs/core-geometry.d.ts +1 -1
  14. package/lib/cjs/core-geometry.d.ts.map +1 -1
  15. package/lib/cjs/core-geometry.js +1 -1
  16. package/lib/cjs/core-geometry.js.map +1 -1
  17. package/lib/cjs/curve/Arc3d.d.ts +136 -128
  18. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  19. package/lib/cjs/curve/Arc3d.js +177 -152
  20. package/lib/cjs/curve/Arc3d.js.map +1 -1
  21. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  22. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  23. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -7
  24. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  25. package/lib/cjs/curve/CurveCollection.d.ts +21 -2
  26. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  27. package/lib/cjs/curve/CurveCollection.js +45 -10
  28. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  29. package/lib/cjs/curve/CurveExtendMode.d.ts +18 -15
  30. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  31. package/lib/cjs/curve/CurveExtendMode.js +18 -17
  32. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  33. package/lib/cjs/curve/CurveFactory.d.ts +11 -13
  34. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  35. package/lib/cjs/curve/CurveFactory.js +19 -46
  36. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  37. package/lib/cjs/curve/CurvePrimitive.d.ts +9 -5
  38. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  39. package/lib/cjs/curve/CurvePrimitive.js +9 -5
  40. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  41. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
  42. package/lib/cjs/curve/CurveProcessor.js +0 -1
  43. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  44. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  45. package/lib/cjs/curve/LineSegment3d.js +2 -3
  46. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  47. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  48. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -1
  49. package/lib/cjs/curve/OffsetOptions.js +4 -4
  50. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  51. package/lib/cjs/curve/Path.d.ts +14 -0
  52. package/lib/cjs/curve/Path.d.ts.map +1 -1
  53. package/lib/cjs/curve/Path.js +27 -0
  54. package/lib/cjs/curve/Path.js.map +1 -1
  55. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  56. package/lib/cjs/curve/PointString3d.js +0 -1
  57. package/lib/cjs/curve/PointString3d.js.map +1 -1
  58. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  59. package/lib/cjs/curve/StrokeOptions.js +0 -1
  60. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  61. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  62. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -6
  63. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  64. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  65. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +10 -10
  66. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  67. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  68. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +4 -4
  69. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
  71. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  72. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
  73. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +5 -4
  75. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  76. package/lib/cjs/geometry3d/AngleSweep.d.ts +10 -6
  77. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  78. package/lib/cjs/geometry3d/AngleSweep.js +15 -12
  79. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  80. package/lib/cjs/geometry3d/BilinearPatch.js +4 -4
  81. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  82. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  83. package/lib/cjs/geometry3d/FrameBuilder.js +0 -1
  84. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  85. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  86. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  87. package/lib/cjs/geometry3d/Matrix3d.d.ts +28 -17
  88. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  89. package/lib/cjs/geometry3d/Matrix3d.js +36 -17
  90. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  91. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  92. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -3
  93. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  94. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -5
  95. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  96. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
  97. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  98. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  99. package/lib/cjs/geometry3d/PointHelpers.js +0 -1
  100. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  101. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  102. package/lib/cjs/geometry3d/PolygonOps.js +2 -4
  103. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  104. package/lib/cjs/geometry3d/Ray3d.js +2 -2
  105. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  106. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  107. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  108. package/lib/cjs/geometry4d/Map4d.d.ts +5 -5
  109. package/lib/cjs/geometry4d/Map4d.js +5 -5
  110. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  111. package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
  112. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  113. package/lib/cjs/geometry4d/Matrix4d.js +4 -7
  114. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  115. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  116. package/lib/cjs/geometry4d/Point4d.js +2 -1
  117. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  118. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  119. package/lib/cjs/numerics/BezierPolynomials.js +0 -1
  120. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  121. package/lib/cjs/numerics/Newton.d.ts +3 -0
  122. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  123. package/lib/cjs/numerics/Newton.js +2 -5
  124. package/lib/cjs/numerics/Newton.js.map +1 -1
  125. package/lib/cjs/numerics/Polynomials.d.ts +46 -201
  126. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  127. package/lib/cjs/numerics/Polynomials.js +132 -445
  128. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  129. package/lib/cjs/numerics/Range1dArray.js +2 -2
  130. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  131. package/lib/cjs/numerics/SmallSystem.d.ts +164 -0
  132. package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -0
  133. package/lib/cjs/numerics/SmallSystem.js +321 -0
  134. package/lib/cjs/numerics/SmallSystem.js.map +1 -0
  135. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  136. package/lib/cjs/polyface/AuxData.js.map +1 -1
  137. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  138. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +0 -1
  139. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  140. package/lib/cjs/polyface/Polyface.d.ts +2 -2
  141. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  142. package/lib/cjs/polyface/Polyface.js +0 -1
  143. package/lib/cjs/polyface/Polyface.js.map +1 -1
  144. package/lib/cjs/polyface/PolyfaceBuilder.js +1 -1
  145. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  146. package/lib/cjs/polyface/PolyfaceClip.d.ts +3 -3
  147. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  148. package/lib/cjs/polyface/PolyfaceClip.js +1 -2
  149. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  150. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  151. package/lib/cjs/polyface/PolyfaceQuery.js +0 -1
  152. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  153. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  154. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  155. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  156. package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  157. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +7 -7
  158. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  159. package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -1
  160. package/lib/cjs/serialization/DeepCompare.js +0 -1
  161. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  162. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  163. package/lib/cjs/topology/Graph.js +2 -2
  164. package/lib/cjs/topology/Graph.js.map +1 -1
  165. package/lib/cjs/topology/InsertAndRetriangulateContext.js +2 -2
  166. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  167. package/lib/cjs/topology/Merging.d.ts +1 -1
  168. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  169. package/lib/cjs/topology/Merging.js +2 -2
  170. package/lib/cjs/topology/Merging.js.map +1 -1
  171. package/lib/esm/Geometry.js +2 -2
  172. package/lib/esm/Geometry.js.map +1 -1
  173. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  174. package/lib/esm/bspline/BSpline1dNd.js +0 -1
  175. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  176. package/lib/esm/bspline/BSplineCurve.d.ts +5 -3
  177. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  178. package/lib/esm/bspline/BSplineCurve.js +5 -4
  179. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  180. package/lib/esm/clipping/ClipVector.js +1 -1
  181. package/lib/esm/clipping/ClipVector.js.map +1 -1
  182. package/lib/esm/core-geometry.d.ts +1 -1
  183. package/lib/esm/core-geometry.d.ts.map +1 -1
  184. package/lib/esm/core-geometry.js +1 -1
  185. package/lib/esm/core-geometry.js.map +1 -1
  186. package/lib/esm/curve/Arc3d.d.ts +136 -128
  187. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  188. package/lib/esm/curve/Arc3d.js +177 -152
  189. package/lib/esm/curve/Arc3d.js.map +1 -1
  190. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +7 -5
  191. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  192. package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -7
  193. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  194. package/lib/esm/curve/CurveCollection.d.ts +21 -2
  195. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  196. package/lib/esm/curve/CurveCollection.js +45 -10
  197. package/lib/esm/curve/CurveCollection.js.map +1 -1
  198. package/lib/esm/curve/CurveExtendMode.d.ts +18 -15
  199. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  200. package/lib/esm/curve/CurveExtendMode.js +18 -17
  201. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  202. package/lib/esm/curve/CurveFactory.d.ts +11 -13
  203. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  204. package/lib/esm/curve/CurveFactory.js +17 -44
  205. package/lib/esm/curve/CurveFactory.js.map +1 -1
  206. package/lib/esm/curve/CurvePrimitive.d.ts +9 -5
  207. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  208. package/lib/esm/curve/CurvePrimitive.js +9 -5
  209. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  210. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
  211. package/lib/esm/curve/CurveProcessor.js +0 -1
  212. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  213. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  214. package/lib/esm/curve/LineSegment3d.js +1 -2
  215. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  216. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  217. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -1
  218. package/lib/esm/curve/OffsetOptions.js +4 -4
  219. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  220. package/lib/esm/curve/Path.d.ts +14 -0
  221. package/lib/esm/curve/Path.d.ts.map +1 -1
  222. package/lib/esm/curve/Path.js +27 -0
  223. package/lib/esm/curve/Path.js.map +1 -1
  224. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  225. package/lib/esm/curve/PointString3d.js +0 -1
  226. package/lib/esm/curve/PointString3d.js.map +1 -1
  227. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  228. package/lib/esm/curve/StrokeOptions.js +0 -1
  229. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  230. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  231. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +4 -5
  232. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  233. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  234. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +5 -5
  235. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  236. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  237. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +3 -3
  238. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  239. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
  240. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  241. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
  242. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  243. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +5 -4
  244. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  245. package/lib/esm/geometry3d/AngleSweep.d.ts +10 -6
  246. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  247. package/lib/esm/geometry3d/AngleSweep.js +15 -12
  248. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  249. package/lib/esm/geometry3d/BilinearPatch.js +1 -1
  250. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  251. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  252. package/lib/esm/geometry3d/FrameBuilder.js +0 -1
  253. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  254. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
  255. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  256. package/lib/esm/geometry3d/Matrix3d.d.ts +28 -17
  257. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  258. package/lib/esm/geometry3d/Matrix3d.js +36 -17
  259. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  260. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
  261. package/lib/esm/geometry3d/Point2dArrayCarrier.js +0 -1
  262. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  263. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -5
  264. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  265. package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
  266. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  267. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  268. package/lib/esm/geometry3d/PointHelpers.js +0 -1
  269. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  270. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  271. package/lib/esm/geometry3d/PolygonOps.js +2 -4
  272. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  273. package/lib/esm/geometry3d/Ray3d.js +1 -1
  274. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  275. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  276. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  277. package/lib/esm/geometry4d/Map4d.d.ts +5 -5
  278. package/lib/esm/geometry4d/Map4d.js +5 -5
  279. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  280. package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
  281. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  282. package/lib/esm/geometry4d/Matrix4d.js +4 -7
  283. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  284. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  285. package/lib/esm/geometry4d/Point4d.js +2 -1
  286. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  287. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  288. package/lib/esm/numerics/BezierPolynomials.js +0 -1
  289. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  290. package/lib/esm/numerics/Newton.d.ts +3 -0
  291. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  292. package/lib/esm/numerics/Newton.js +1 -4
  293. package/lib/esm/numerics/Newton.js.map +1 -1
  294. package/lib/esm/numerics/Polynomials.d.ts +46 -201
  295. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  296. package/lib/esm/numerics/Polynomials.js +132 -444
  297. package/lib/esm/numerics/Polynomials.js.map +1 -1
  298. package/lib/esm/numerics/SmallSystem.d.ts +164 -0
  299. package/lib/esm/numerics/SmallSystem.d.ts.map +1 -0
  300. package/lib/esm/numerics/SmallSystem.js +317 -0
  301. package/lib/esm/numerics/SmallSystem.js.map +1 -0
  302. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  303. package/lib/esm/polyface/AuxData.js.map +1 -1
  304. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  305. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +0 -1
  306. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  307. package/lib/esm/polyface/Polyface.d.ts +2 -2
  308. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  309. package/lib/esm/polyface/Polyface.js +0 -1
  310. package/lib/esm/polyface/Polyface.js.map +1 -1
  311. package/lib/esm/polyface/PolyfaceBuilder.js +1 -1
  312. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  313. package/lib/esm/polyface/PolyfaceClip.d.ts +3 -3
  314. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  315. package/lib/esm/polyface/PolyfaceClip.js +1 -2
  316. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  317. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  318. package/lib/esm/polyface/PolyfaceQuery.js +0 -1
  319. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  320. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  321. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  322. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
  323. package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
  324. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +4 -4
  325. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  326. package/lib/esm/serialization/DeepCompare.d.ts.map +1 -1
  327. package/lib/esm/serialization/DeepCompare.js +0 -1
  328. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  329. package/lib/esm/topology/Graph.d.ts.map +1 -1
  330. package/lib/esm/topology/Graph.js +1 -1
  331. package/lib/esm/topology/Graph.js.map +1 -1
  332. package/lib/esm/topology/InsertAndRetriangulateContext.js +1 -1
  333. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  334. package/lib/esm/topology/Merging.d.ts +1 -1
  335. package/lib/esm/topology/Merging.d.ts.map +1 -1
  336. package/lib/esm/topology/Merging.js +1 -1
  337. package/lib/esm/topology/Merging.js.map +1 -1
  338. package/package.json +8 -8
@@ -116,10 +116,10 @@ class QuadrantFractions {
116
116
  }
117
117
  /**
118
118
  * Compute quadrant data for the given angles.
119
- * @param radians0 first radian angle
120
- * @param radians1 second radian angle
119
+ * @param radians0 first radian angle.
120
+ * @param radians1 second radian angle.
121
121
  * @return quadrant number and start/end radian angles for the quadrant that contains both input angles, or
122
- * undefined if no such quadrant.
122
+ * `undefined` if no such quadrant.
123
123
  * * The returned sweep is always counterclockwise: angle0 < angle1.
124
124
  */
125
125
  static getQuadrantRadians(radians0, radians1) {
@@ -137,13 +137,13 @@ class QuadrantFractions {
137
137
  return { quadrant: 4, angle0: Angle_1.Angle.pi3Over2Radians, angle1: Angle_1.Angle.pi2Radians };
138
138
  return undefined;
139
139
  }
140
- /** Compute the fractional range of Quadrant 1 for the given sweep. */
141
- static getQ1FractionalRange(sweep) {
140
+ /** Compute the fractional range of Quadrant 1 for the given full sweep. */
141
+ static getQ1FractionalRange(fullSweep) {
142
142
  const angle0 = 0;
143
143
  const angle90 = 0.5 * Math.PI;
144
- let f0 = sweep.radiansToSignedPeriodicFraction(angle0);
145
- let f1 = sweep.radiansToSignedPeriodicFraction(angle90);
146
- if (!sweep.isCCW)
144
+ let f0 = fullSweep.radiansToSignedPeriodicFraction(angle0);
145
+ let f1 = fullSweep.radiansToSignedPeriodicFraction(angle90);
146
+ if (!fullSweep.isCCW)
147
147
  [f0, f1] = [f1, f0];
148
148
  if (f1 < f0)
149
149
  f1 += 1;
@@ -166,7 +166,7 @@ class QuadrantFractionsProcessor {
166
166
  * Announce the beginning of processing for quadrant `q`.
167
167
  * @param _reversed whether `q.reverse()` was invoked before this call for symmetry reasons. If so, arcs will be
168
168
  * announced in the opposite order and with the opposite orientation.
169
- * @return whether to process `q`
169
+ * @return whether to process `q`.
170
170
  */
171
171
  announceQuadrantBegin(_q, _reversed) { return true; }
172
172
  /**
@@ -177,8 +177,8 @@ class QuadrantFractionsProcessor {
177
177
  * @param _fPrev fractional parameter of E used to define the 3-point parent circle through the points at `fPrev`,
178
178
  * `f0`, and `f1` from which `arc` was constructed. If undefined, `arc` was generated from the circle defined by
179
179
  * the points at `f0` and `f1` and one of their tangents.
180
- * @param _f0 fractional parameter of E at which point `arc` starts
181
- * @param _f1 fractional parameter of E at which point `arc` ends
180
+ * @param _f0 fractional parameter of E at which point `arc` starts.
181
+ * @param _f1 fractional parameter of E at which point `arc` ends.
182
182
  */
183
183
  announceArc(_arc, _fPrev, _f0, _f1) { }
184
184
  /**
@@ -210,21 +210,21 @@ class ArcChainErrorProcessor extends QuadrantFractionsProcessor {
210
210
  * * Inputs should be in horizontal plane(s), as z-coordinates are ignored.
211
211
  * @param circularArc circular arc approximant. Assumed to start and end on the elliptical arc.
212
212
  * @param ellipticalArc elliptical arc being approximated.
213
- * For best results, `f0` and `f1` should correspond to the start/end of `circularArc`
214
- * @param f0 optional `ellipticalArc` start fraction to restrict its sweep
215
- * @param f1 optional `ellipticalArc` end fraction to restrict its sweep
213
+ * For best results, `f0` and `f1` should correspond to the start/end of `circularArc`.
214
+ * @param f0 optional `ellipticalArc` start fraction to restrict its sweep.
215
+ * @param f1 optional `ellipticalArc` end fraction to restrict its sweep.
216
216
  * @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
217
217
  * For each of `detailA` (refers to `circularArc`) and `detailB` (refers to unrestricted `ellipticalArc`):
218
- * * `point` is the end of the perpendicular on each curve
219
- * * `fraction` is the curve parameter of the point
220
- * * `a` is the distance between the points
218
+ * * `point` is the end of the perpendicular on each curve.
219
+ * * `fraction` is the curve parameter of the point.
220
+ * * `a` is the distance between the points.
221
221
  */
222
222
  static computePrimitiveErrorXY(circularArc, ellipticalArc, f0, f1) {
223
223
  const handler = new CurveCurveCloseApproachXY_1.CurveCurveCloseApproachXY();
224
224
  handler.maxDistanceToAccept = circularArc.quickLength() / 2;
225
225
  const trimEllipse = undefined !== f0 && undefined !== f1;
226
226
  const trimmedEllipticalArc = trimEllipse ? ellipticalArc.clonePartialCurve(f0, f1) : ellipticalArc;
227
- // We expect only one perpendicular, not near an endpoint.
227
+ // we expect only one perpendicular, not near an endpoint.
228
228
  handler.allPerpendicularsArcArcBounded(circularArc, trimmedEllipticalArc);
229
229
  let maxPerp;
230
230
  for (const perp of handler.grabPairedResults()) {
@@ -267,7 +267,7 @@ class ArcChainErrorProcessor extends QuadrantFractionsProcessor {
267
267
  }
268
268
  /**
269
269
  * Processor for refining a single Q1 ordered interval [f0,f1] by perturbing an interior fraction f.
270
- * * This processor expects to repeatedly process a QuadrantFractions `q` wth `q.quadrant` = 1 and fractions array
270
+ * * This processor expects to repeatedly process a QuadrantFractions `q` with `q.quadrant` = 1 and fractions array
271
271
  * [fPrev, f0, f, f1], where fPrev is from the previously processed (possibly refined) adjacent interval; however, if
272
272
  * `q.interpolateStartTangent === true`, then no fPrev is necessary and [f0, f, f1] is expected.
273
273
  * * This is enough info to compute the two circular arcs spanning [f0,f] and [f,f1] and compare their approximation
@@ -311,8 +311,8 @@ class AdaptiveSubdivisionQ1IntervalErrorProcessor extends QuadrantFractionsProce
311
311
  /** Remember the initial value of the fraction f to be perturbed. */
312
312
  announceQuadrantBegin(q, reversed) {
313
313
  (0, core_bentley_1.assert)(q.quadrant === 1);
314
- (0, core_bentley_1.assert)(!reversed); // ASSUME bracket and q.fractions have same ordering
315
- // the first fraction might be an extra point for computing the first 3-pt arc.
314
+ (0, core_bentley_1.assert)(!reversed); // ASSUME [bracket0, bracket1] and q.fractions have the same ordering
315
+ // the first fraction might be an extra point for computing the first 3-pt arc
316
316
  (0, core_bentley_1.assert)(q.fractions.length === 4 || (q.fractions.length === 3 && q.interpolateStartTangent));
317
317
  this._error0 = this._error1 = Geometry_1.Geometry.largeCoordinateResult;
318
318
  return true;
@@ -417,7 +417,7 @@ class AdaptiveSubdivisionQ1ErrorProcessor extends QuadrantFractionsProcessor {
417
417
  const interpolateStartTangent = Geometry_1.Geometry.isAlmostEqualEitherNumber(f0, this._fractionRangeQ1.low, this._fractionRangeQ1.high, 0);
418
418
  const interpolateEndTangent = Geometry_1.Geometry.isAlmostEqualEitherNumber(f1, this._fractionRangeQ1.low, this._fractionRangeQ1.high, 0);
419
419
  if (!interpolateStartTangent && undefined === fPrev)
420
- fPrev = this.getPreviousFraction(f0); // createLastArc caller doesn't supply fPrev
420
+ fPrev = this.getPreviousFraction(f0); // createLastArc doesn't supply fPrev to announceArc
421
421
  const fractions = (undefined === fPrev) ? [f0, f, f1] : [fPrev, f0, f, f1];
422
422
  const q1 = [QuadrantFractions.create(1, fractions, interpolateStartTangent, interpolateEndTangent)];
423
423
  const processor = AdaptiveSubdivisionQ1IntervalErrorProcessor.create(this.fullEllipseXY, f0, f, f1);
@@ -434,7 +434,7 @@ class AdaptiveSubdivisionQ1ErrorProcessor extends QuadrantFractionsProcessor {
434
434
  }
435
435
  /**
436
436
  * Compute radian angles for the fractions in the current refinement that are strictly inside Q1.
437
- * @param result optional preallocated array to clear and populate
437
+ * @param result optional preallocated array to clear and populate.
438
438
  * @return angles suitable for output from [[EllipticalArcSampler.computeRadiansStrictlyInsideQuadrant1]].
439
439
  */
440
440
  getRefinedInteriorQ1Angles(result) {
@@ -635,11 +635,11 @@ class ArcChainConstructionProcessor extends QuadrantFractionsProcessor {
635
635
  * @internal
636
636
  */
637
637
  class EllipticalArcApproximationContext {
638
- /** Constructor, captures input */
638
+ /** Constructor, captures input. */
639
639
  constructor(ellipticalArc) {
640
640
  this._isValidEllipticalArc = false;
641
641
  const data = ellipticalArc.toScaledMatrix3d();
642
- this._ellipticalArc = Arc3d_1.Arc3d.createScaledXYColumns(data.center, data.axes, data.r0, data.r90, data.sweep);
642
+ this._ellipticalArc = Arc3d_1.Arc3d.createScaledXYColumns(data.center, data.axes, data.r0, data.r90, data.sweep); // work on the major-minor axis version of the arc to take advantage of its symmetry
643
643
  this._localToWorld = Transform_1.Transform.createRefs(data.center, data.axes);
644
644
  if (this._localToWorld.matrix.isSingular())
645
645
  return;
@@ -681,9 +681,9 @@ class EllipticalArcApproximationContext {
681
681
  return this._isValidEllipticalArc;
682
682
  }
683
683
  /**
684
- * Create a clone of the context's arc in local coordinates.
684
+ * Create a clone of the context's arc in local coordinates (with axes aligned to x-axis and y-axis).
685
685
  * @param fullSweep Optionally set full sweep on the returned local arc. Start angle is preserved.
686
- * @returns local arc, or undefined if the arc is invalid
686
+ * @returns local arc, or undefined if the arc is invalid.
687
687
  */
688
688
  cloneLocalArc(fullSweep) {
689
689
  if (!this.isValidEllipticalArc)
@@ -707,9 +707,9 @@ class EllipticalArcApproximationContext {
707
707
  * * A 2-point plus tangent construction is used to create the first and last circular arc in each quadrant.
708
708
  * * Symmetry of the announced circular arcs matching that of a multi-quadrant spanning elliptical arc is ensured by
709
709
  * processing the samples consistently, starting along the elliptical arc's major axis in each quadrant.
710
- * @param ellipticalArc source arc to approximate
711
- * @param quadrants structured samples, may be temporarily reversed for symmetry
712
- * @param processor callbacks for handling the constructed arcs
710
+ * @param ellipticalArc source arc to approximate.
711
+ * @param quadrants structured samples, may be temporarily reversed for symmetry.
712
+ * @param processor callbacks for handling the constructed arcs.
713
713
  * @internal
714
714
  */
715
715
  static processQuadrantFractions(ellipticalArc, quadrants, processor) {
@@ -735,17 +735,19 @@ class EllipticalArcApproximationContext {
735
735
  arc.sweep.setStartEndRadians(startAngle.radians, arc.sweep.endRadians);
736
736
  return arc; // returned arc starts at arcStart, ends at arcEnd
737
737
  };
738
- const createFirstArc = (f0, f1, reverse) => {
738
+ const createFirstArc = (f0, f1) => {
739
739
  // This arc starts at the first sample f0 and ends at f1.
740
+ // This arc interpolates point and tangent at f0, but only point at f1.
740
741
  ellipticalArc.fractionToPointAndDerivative(f0, ray);
741
742
  ellipticalArc.fractionToPoint(f1, pt1);
742
- if (reverse)
743
- ray.direction.scaleInPlace(-1);
743
+ if (f0 > f1)
744
+ ray.direction.scaleInPlace(-1); // computed arc is retrograde
744
745
  const arc = arcBetween2Samples(ray, pt1, false);
745
746
  if (arc)
746
747
  processor.announceArc(arc, undefined, f0, f1);
747
748
  };
748
749
  const createInnerArc = (f0, f1, f2) => {
750
+ // This arc starts at f1 and ends at f2
749
751
  let fPrev = f0;
750
752
  if (processor.getPreviousFraction)
751
753
  fPrev = processor.getPreviousFraction(f1) ?? f0;
@@ -756,12 +758,14 @@ class EllipticalArcApproximationContext {
756
758
  if (arc)
757
759
  processor.announceArc(arc, fPrev, f1, f2);
758
760
  };
759
- const createLastArc = (f0, f1, reverse) => {
760
- // This arc starts at f0 and ends at the last sample f1. It is the only arc to use f1.
761
+ const createLastArc = (f0, f1) => {
762
+ // This arc starts at f0 and ends at the last sample f1.
763
+ // This arc interpolates point and tangent at f1, but only point at f0.
761
764
  ellipticalArc.fractionToPoint(f0, pt0);
762
765
  ellipticalArc.fractionToPointAndDerivative(f1, ray);
763
- if (!reverse)
764
- ray.direction.scaleInPlace(-1);
766
+ if (f1 > f0)
767
+ ray.direction.scaleInPlace(-1); // computed arc is retrograde
768
+ // compute last arc from f1 to f0, then reverse
765
769
  const arc = arcBetween2Samples(ray, pt0, true);
766
770
  if (arc)
767
771
  processor.announceArc(arc, undefined, f0, f1);
@@ -791,13 +795,13 @@ class EllipticalArcApproximationContext {
791
795
  if (!processor.announceQuadrantBegin(q, reversed))
792
796
  continue;
793
797
  if (q.interpolateStartTangent)
794
- createFirstArc(q.fractions[0], q.fractions[1], reversed);
798
+ createFirstArc(q.fractions[0], q.fractions[1]);
795
799
  // the first inner arc approximates the ellipse over [f[1],f[2]]; the last inner arc, over [f[n-3],f[n-2]]
796
800
  for (let i = 0; i + 2 < n - 1; ++i)
797
801
  createInnerArc(q.fractions[i], q.fractions[i + 1], q.fractions[i + 2]);
798
802
  if (n > 2) { // the final arc approximates [f[n-2],f[n-1]]
799
803
  if (q.interpolateEndTangent)
800
- createLastArc(q.fractions[n - 2], q.fractions[n - 1], reversed);
804
+ createLastArc(q.fractions[n - 2], q.fractions[n - 1]);
801
805
  else
802
806
  createInnerArc(q.fractions[n - 3], q.fractions[n - 2], q.fractions[n - 1]);
803
807
  }
@@ -812,8 +816,8 @@ class EllipticalArcApproximationContext {
812
816
  * @param samples structured sample data from the instance's elliptical arc.
813
817
  * @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
814
818
  * For each of `detailA` and `detailB`:
815
- * * `point` is the end of the perpendicular on each curve
816
- * * `fraction` is the curve parameter of the point
819
+ * * `point` is the end of the perpendicular on each curve.
820
+ * * `fraction` is the curve parameter of the point.
817
821
  * * `a` is the distance between the points.
818
822
  * @internal
819
823
  */
@@ -986,8 +990,8 @@ class EllipticalArcApproximationContext {
986
990
  return undefined;
987
991
  if (!options)
988
992
  options = Arc3d_1.EllipticalArcApproximationOptions.create();
989
- const processor = ArcChainConstructionProcessor.create(this.ellipticalArc, options.forcePath);
990
993
  const samples = this.computeSampleFractions(options, true);
994
+ const processor = ArcChainConstructionProcessor.create(this.ellipticalArc, options.forcePath);
991
995
  EllipticalArcApproximationContext.processQuadrantFractions(this.ellipticalArc, samples, processor);
992
996
  return processor.chain;
993
997
  }