@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
@@ -113,10 +113,10 @@ export class QuadrantFractions {
113
113
  }
114
114
  /**
115
115
  * Compute quadrant data for the given angles.
116
- * @param radians0 first radian angle
117
- * @param radians1 second radian angle
116
+ * @param radians0 first radian angle.
117
+ * @param radians1 second radian angle.
118
118
  * @return quadrant number and start/end radian angles for the quadrant that contains both input angles, or
119
- * undefined if no such quadrant.
119
+ * `undefined` if no such quadrant.
120
120
  * * The returned sweep is always counterclockwise: angle0 < angle1.
121
121
  */
122
122
  static getQuadrantRadians(radians0, radians1) {
@@ -134,13 +134,13 @@ export class QuadrantFractions {
134
134
  return { quadrant: 4, angle0: Angle.pi3Over2Radians, angle1: Angle.pi2Radians };
135
135
  return undefined;
136
136
  }
137
- /** Compute the fractional range of Quadrant 1 for the given sweep. */
138
- static getQ1FractionalRange(sweep) {
137
+ /** Compute the fractional range of Quadrant 1 for the given full sweep. */
138
+ static getQ1FractionalRange(fullSweep) {
139
139
  const angle0 = 0;
140
140
  const angle90 = 0.5 * Math.PI;
141
- let f0 = sweep.radiansToSignedPeriodicFraction(angle0);
142
- let f1 = sweep.radiansToSignedPeriodicFraction(angle90);
143
- if (!sweep.isCCW)
141
+ let f0 = fullSweep.radiansToSignedPeriodicFraction(angle0);
142
+ let f1 = fullSweep.radiansToSignedPeriodicFraction(angle90);
143
+ if (!fullSweep.isCCW)
144
144
  [f0, f1] = [f1, f0];
145
145
  if (f1 < f0)
146
146
  f1 += 1;
@@ -162,7 +162,7 @@ class QuadrantFractionsProcessor {
162
162
  * Announce the beginning of processing for quadrant `q`.
163
163
  * @param _reversed whether `q.reverse()` was invoked before this call for symmetry reasons. If so, arcs will be
164
164
  * announced in the opposite order and with the opposite orientation.
165
- * @return whether to process `q`
165
+ * @return whether to process `q`.
166
166
  */
167
167
  announceQuadrantBegin(_q, _reversed) { return true; }
168
168
  /**
@@ -173,8 +173,8 @@ class QuadrantFractionsProcessor {
173
173
  * @param _fPrev fractional parameter of E used to define the 3-point parent circle through the points at `fPrev`,
174
174
  * `f0`, and `f1` from which `arc` was constructed. If undefined, `arc` was generated from the circle defined by
175
175
  * the points at `f0` and `f1` and one of their tangents.
176
- * @param _f0 fractional parameter of E at which point `arc` starts
177
- * @param _f1 fractional parameter of E at which point `arc` ends
176
+ * @param _f0 fractional parameter of E at which point `arc` starts.
177
+ * @param _f1 fractional parameter of E at which point `arc` ends.
178
178
  */
179
179
  announceArc(_arc, _fPrev, _f0, _f1) { }
180
180
  /**
@@ -206,21 +206,21 @@ class ArcChainErrorProcessor extends QuadrantFractionsProcessor {
206
206
  * * Inputs should be in horizontal plane(s), as z-coordinates are ignored.
207
207
  * @param circularArc circular arc approximant. Assumed to start and end on the elliptical arc.
208
208
  * @param ellipticalArc elliptical arc being approximated.
209
- * For best results, `f0` and `f1` should correspond to the start/end of `circularArc`
210
- * @param f0 optional `ellipticalArc` start fraction to restrict its sweep
211
- * @param f1 optional `ellipticalArc` end fraction to restrict its sweep
209
+ * For best results, `f0` and `f1` should correspond to the start/end of `circularArc`.
210
+ * @param f0 optional `ellipticalArc` start fraction to restrict its sweep.
211
+ * @param f1 optional `ellipticalArc` end fraction to restrict its sweep.
212
212
  * @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
213
213
  * For each of `detailA` (refers to `circularArc`) and `detailB` (refers to unrestricted `ellipticalArc`):
214
- * * `point` is the end of the perpendicular on each curve
215
- * * `fraction` is the curve parameter of the point
216
- * * `a` is the distance between the points
214
+ * * `point` is the end of the perpendicular on each curve.
215
+ * * `fraction` is the curve parameter of the point.
216
+ * * `a` is the distance between the points.
217
217
  */
218
218
  static computePrimitiveErrorXY(circularArc, ellipticalArc, f0, f1) {
219
219
  const handler = new CurveCurveCloseApproachXY();
220
220
  handler.maxDistanceToAccept = circularArc.quickLength() / 2;
221
221
  const trimEllipse = undefined !== f0 && undefined !== f1;
222
222
  const trimmedEllipticalArc = trimEllipse ? ellipticalArc.clonePartialCurve(f0, f1) : ellipticalArc;
223
- // We expect only one perpendicular, not near an endpoint.
223
+ // we expect only one perpendicular, not near an endpoint.
224
224
  handler.allPerpendicularsArcArcBounded(circularArc, trimmedEllipticalArc);
225
225
  let maxPerp;
226
226
  for (const perp of handler.grabPairedResults()) {
@@ -263,7 +263,7 @@ class ArcChainErrorProcessor extends QuadrantFractionsProcessor {
263
263
  }
264
264
  /**
265
265
  * Processor for refining a single Q1 ordered interval [f0,f1] by perturbing an interior fraction f.
266
- * * This processor expects to repeatedly process a QuadrantFractions `q` wth `q.quadrant` = 1 and fractions array
266
+ * * This processor expects to repeatedly process a QuadrantFractions `q` with `q.quadrant` = 1 and fractions array
267
267
  * [fPrev, f0, f, f1], where fPrev is from the previously processed (possibly refined) adjacent interval; however, if
268
268
  * `q.interpolateStartTangent === true`, then no fPrev is necessary and [f0, f, f1] is expected.
269
269
  * * This is enough info to compute the two circular arcs spanning [f0,f] and [f,f1] and compare their approximation
@@ -307,8 +307,8 @@ class AdaptiveSubdivisionQ1IntervalErrorProcessor extends QuadrantFractionsProce
307
307
  /** Remember the initial value of the fraction f to be perturbed. */
308
308
  announceQuadrantBegin(q, reversed) {
309
309
  assert(q.quadrant === 1);
310
- assert(!reversed); // ASSUME bracket and q.fractions have same ordering
311
- // the first fraction might be an extra point for computing the first 3-pt arc.
310
+ assert(!reversed); // ASSUME [bracket0, bracket1] and q.fractions have the same ordering
311
+ // the first fraction might be an extra point for computing the first 3-pt arc
312
312
  assert(q.fractions.length === 4 || (q.fractions.length === 3 && q.interpolateStartTangent));
313
313
  this._error0 = this._error1 = Geometry.largeCoordinateResult;
314
314
  return true;
@@ -413,7 +413,7 @@ class AdaptiveSubdivisionQ1ErrorProcessor extends QuadrantFractionsProcessor {
413
413
  const interpolateStartTangent = Geometry.isAlmostEqualEitherNumber(f0, this._fractionRangeQ1.low, this._fractionRangeQ1.high, 0);
414
414
  const interpolateEndTangent = Geometry.isAlmostEqualEitherNumber(f1, this._fractionRangeQ1.low, this._fractionRangeQ1.high, 0);
415
415
  if (!interpolateStartTangent && undefined === fPrev)
416
- fPrev = this.getPreviousFraction(f0); // createLastArc caller doesn't supply fPrev
416
+ fPrev = this.getPreviousFraction(f0); // createLastArc doesn't supply fPrev to announceArc
417
417
  const fractions = (undefined === fPrev) ? [f0, f, f1] : [fPrev, f0, f, f1];
418
418
  const q1 = [QuadrantFractions.create(1, fractions, interpolateStartTangent, interpolateEndTangent)];
419
419
  const processor = AdaptiveSubdivisionQ1IntervalErrorProcessor.create(this.fullEllipseXY, f0, f, f1);
@@ -430,7 +430,7 @@ class AdaptiveSubdivisionQ1ErrorProcessor extends QuadrantFractionsProcessor {
430
430
  }
431
431
  /**
432
432
  * Compute radian angles for the fractions in the current refinement that are strictly inside Q1.
433
- * @param result optional preallocated array to clear and populate
433
+ * @param result optional preallocated array to clear and populate.
434
434
  * @return angles suitable for output from [[EllipticalArcSampler.computeRadiansStrictlyInsideQuadrant1]].
435
435
  */
436
436
  getRefinedInteriorQ1Angles(result) {
@@ -631,11 +631,11 @@ class ArcChainConstructionProcessor extends QuadrantFractionsProcessor {
631
631
  * @internal
632
632
  */
633
633
  export class EllipticalArcApproximationContext {
634
- /** Constructor, captures input */
634
+ /** Constructor, captures input. */
635
635
  constructor(ellipticalArc) {
636
636
  this._isValidEllipticalArc = false;
637
637
  const data = ellipticalArc.toScaledMatrix3d();
638
- this._ellipticalArc = Arc3d.createScaledXYColumns(data.center, data.axes, data.r0, data.r90, data.sweep);
638
+ this._ellipticalArc = 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
639
639
  this._localToWorld = Transform.createRefs(data.center, data.axes);
640
640
  if (this._localToWorld.matrix.isSingular())
641
641
  return;
@@ -677,9 +677,9 @@ export class EllipticalArcApproximationContext {
677
677
  return this._isValidEllipticalArc;
678
678
  }
679
679
  /**
680
- * Create a clone of the context's arc in local coordinates.
680
+ * Create a clone of the context's arc in local coordinates (with axes aligned to x-axis and y-axis).
681
681
  * @param fullSweep Optionally set full sweep on the returned local arc. Start angle is preserved.
682
- * @returns local arc, or undefined if the arc is invalid
682
+ * @returns local arc, or undefined if the arc is invalid.
683
683
  */
684
684
  cloneLocalArc(fullSweep) {
685
685
  if (!this.isValidEllipticalArc)
@@ -703,9 +703,9 @@ export class EllipticalArcApproximationContext {
703
703
  * * A 2-point plus tangent construction is used to create the first and last circular arc in each quadrant.
704
704
  * * Symmetry of the announced circular arcs matching that of a multi-quadrant spanning elliptical arc is ensured by
705
705
  * processing the samples consistently, starting along the elliptical arc's major axis in each quadrant.
706
- * @param ellipticalArc source arc to approximate
707
- * @param quadrants structured samples, may be temporarily reversed for symmetry
708
- * @param processor callbacks for handling the constructed arcs
706
+ * @param ellipticalArc source arc to approximate.
707
+ * @param quadrants structured samples, may be temporarily reversed for symmetry.
708
+ * @param processor callbacks for handling the constructed arcs.
709
709
  * @internal
710
710
  */
711
711
  static processQuadrantFractions(ellipticalArc, quadrants, processor) {
@@ -731,17 +731,19 @@ export class EllipticalArcApproximationContext {
731
731
  arc.sweep.setStartEndRadians(startAngle.radians, arc.sweep.endRadians);
732
732
  return arc; // returned arc starts at arcStart, ends at arcEnd
733
733
  };
734
- const createFirstArc = (f0, f1, reverse) => {
734
+ const createFirstArc = (f0, f1) => {
735
735
  // This arc starts at the first sample f0 and ends at f1.
736
+ // This arc interpolates point and tangent at f0, but only point at f1.
736
737
  ellipticalArc.fractionToPointAndDerivative(f0, ray);
737
738
  ellipticalArc.fractionToPoint(f1, pt1);
738
- if (reverse)
739
- ray.direction.scaleInPlace(-1);
739
+ if (f0 > f1)
740
+ ray.direction.scaleInPlace(-1); // computed arc is retrograde
740
741
  const arc = arcBetween2Samples(ray, pt1, false);
741
742
  if (arc)
742
743
  processor.announceArc(arc, undefined, f0, f1);
743
744
  };
744
745
  const createInnerArc = (f0, f1, f2) => {
746
+ // This arc starts at f1 and ends at f2
745
747
  let fPrev = f0;
746
748
  if (processor.getPreviousFraction)
747
749
  fPrev = processor.getPreviousFraction(f1) ?? f0;
@@ -752,12 +754,14 @@ export class EllipticalArcApproximationContext {
752
754
  if (arc)
753
755
  processor.announceArc(arc, fPrev, f1, f2);
754
756
  };
755
- const createLastArc = (f0, f1, reverse) => {
756
- // This arc starts at f0 and ends at the last sample f1. It is the only arc to use f1.
757
+ const createLastArc = (f0, f1) => {
758
+ // This arc starts at f0 and ends at the last sample f1.
759
+ // This arc interpolates point and tangent at f1, but only point at f0.
757
760
  ellipticalArc.fractionToPoint(f0, pt0);
758
761
  ellipticalArc.fractionToPointAndDerivative(f1, ray);
759
- if (!reverse)
760
- ray.direction.scaleInPlace(-1);
762
+ if (f1 > f0)
763
+ ray.direction.scaleInPlace(-1); // computed arc is retrograde
764
+ // compute last arc from f1 to f0, then reverse
761
765
  const arc = arcBetween2Samples(ray, pt0, true);
762
766
  if (arc)
763
767
  processor.announceArc(arc, undefined, f0, f1);
@@ -787,13 +791,13 @@ export class EllipticalArcApproximationContext {
787
791
  if (!processor.announceQuadrantBegin(q, reversed))
788
792
  continue;
789
793
  if (q.interpolateStartTangent)
790
- createFirstArc(q.fractions[0], q.fractions[1], reversed);
794
+ createFirstArc(q.fractions[0], q.fractions[1]);
791
795
  // the first inner arc approximates the ellipse over [f[1],f[2]]; the last inner arc, over [f[n-3],f[n-2]]
792
796
  for (let i = 0; i + 2 < n - 1; ++i)
793
797
  createInnerArc(q.fractions[i], q.fractions[i + 1], q.fractions[i + 2]);
794
798
  if (n > 2) { // the final arc approximates [f[n-2],f[n-1]]
795
799
  if (q.interpolateEndTangent)
796
- createLastArc(q.fractions[n - 2], q.fractions[n - 1], reversed);
800
+ createLastArc(q.fractions[n - 2], q.fractions[n - 1]);
797
801
  else
798
802
  createInnerArc(q.fractions[n - 3], q.fractions[n - 2], q.fractions[n - 1]);
799
803
  }
@@ -808,8 +812,8 @@ export class EllipticalArcApproximationContext {
808
812
  * @param samples structured sample data from the instance's elliptical arc.
809
813
  * @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
810
814
  * For each of `detailA` and `detailB`:
811
- * * `point` is the end of the perpendicular on each curve
812
- * * `fraction` is the curve parameter of the point
815
+ * * `point` is the end of the perpendicular on each curve.
816
+ * * `fraction` is the curve parameter of the point.
813
817
  * * `a` is the distance between the points.
814
818
  * @internal
815
819
  */
@@ -982,8 +986,8 @@ export class EllipticalArcApproximationContext {
982
986
  return undefined;
983
987
  if (!options)
984
988
  options = EllipticalArcApproximationOptions.create();
985
- const processor = ArcChainConstructionProcessor.create(this.ellipticalArc, options.forcePath);
986
989
  const samples = this.computeSampleFractions(options, true);
990
+ const processor = ArcChainConstructionProcessor.create(this.ellipticalArc, options.forcePath);
987
991
  EllipticalArcApproximationContext.processQuadrantFractions(this.ellipticalArc, samples, processor);
988
992
  return processor.chain;
989
993
  }