@itwin/core-geometry 4.9.0-dev.9 → 4.10.0-dev.1

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 (336) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/lib/cjs/Geometry.d.ts +57 -46
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +73 -53
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/curve/Arc3d.d.ts +141 -38
  7. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  8. package/lib/cjs/curve/Arc3d.js +219 -31
  9. package/lib/cjs/curve/Arc3d.js.map +1 -1
  10. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -6
  11. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  12. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +12 -10
  13. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  14. package/lib/cjs/curve/CurveCollection.d.ts +2 -1
  15. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  16. package/lib/cjs/curve/CurveCollection.js +2 -1
  17. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  18. package/lib/cjs/curve/CurveCurve.d.ts +11 -9
  19. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  20. package/lib/cjs/curve/CurveCurve.js +11 -9
  21. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  22. package/lib/cjs/curve/CurveFactory.d.ts +4 -3
  23. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  24. package/lib/cjs/curve/CurveFactory.js +4 -3
  25. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  26. package/lib/cjs/curve/CurveLocationDetail.d.ts +19 -1
  27. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  28. package/lib/cjs/curve/CurveLocationDetail.js +39 -0
  29. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  30. package/lib/cjs/curve/CurveOps.d.ts +4 -4
  31. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  32. package/lib/cjs/curve/CurveOps.js +6 -6
  33. package/lib/cjs/curve/CurveOps.js.map +1 -1
  34. package/lib/cjs/curve/CurvePrimitive.d.ts +1 -1
  35. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  36. package/lib/cjs/curve/LineString3d.d.ts +7 -5
  37. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  38. package/lib/cjs/curve/LineString3d.js +8 -6
  39. package/lib/cjs/curve/LineString3d.js.map +1 -1
  40. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  41. package/lib/cjs/curve/Loop.js +6 -6
  42. package/lib/cjs/curve/Loop.js.map +1 -1
  43. package/lib/cjs/curve/OffsetOptions.d.ts +1 -1
  44. package/lib/cjs/curve/OffsetOptions.js +1 -1
  45. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  46. package/lib/cjs/curve/Path.d.ts.map +1 -1
  47. package/lib/cjs/curve/Path.js +5 -6
  48. package/lib/cjs/curve/Path.js.map +1 -1
  49. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  50. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
  51. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  52. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  53. package/lib/cjs/curve/RegionOps.d.ts +4 -3
  54. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  55. package/lib/cjs/curve/RegionOps.js +4 -3
  56. package/lib/cjs/curve/RegionOps.js.map +1 -1
  57. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
  58. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  59. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
  60. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  61. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
  62. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  63. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
  64. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  65. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
  66. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
  67. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +1000 -0
  68. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
  69. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +11 -8
  70. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  71. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +7 -4
  72. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  73. package/lib/cjs/geometry3d/Angle.d.ts +18 -5
  74. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  75. package/lib/cjs/geometry3d/Angle.js +23 -7
  76. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  77. package/lib/cjs/geometry3d/AngleSweep.d.ts +14 -1
  78. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  79. package/lib/cjs/geometry3d/AngleSweep.js +47 -12
  80. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  81. package/lib/cjs/geometry3d/FrameBuilder.d.ts +2 -1
  82. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  83. package/lib/cjs/geometry3d/FrameBuilder.js +12 -10
  84. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  85. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  86. package/lib/cjs/geometry3d/GeometryHandler.js +1 -7
  87. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  88. package/lib/cjs/geometry3d/Matrix3d.d.ts +6 -4
  89. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  90. package/lib/cjs/geometry3d/Matrix3d.js +6 -4
  91. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  92. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +5 -5
  93. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  94. package/lib/cjs/geometry3d/Point3dVector3d.js +5 -5
  95. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  96. package/lib/cjs/geometry3d/PointHelpers.d.ts +6 -5
  97. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  98. package/lib/cjs/geometry3d/PointHelpers.js +11 -10
  99. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  100. package/lib/cjs/geometry3d/PolygonOps.d.ts +4 -4
  101. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  102. package/lib/cjs/geometry3d/PolygonOps.js +7 -11
  103. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  104. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
  105. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  106. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  107. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  108. package/lib/cjs/geometry3d/Range.d.ts +6 -1
  109. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  110. package/lib/cjs/geometry3d/Range.js +9 -3
  111. package/lib/cjs/geometry3d/Range.js.map +1 -1
  112. package/lib/cjs/geometry3d/Ray3d.d.ts +1 -1
  113. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  114. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  115. package/lib/cjs/geometry3d/Transform.d.ts +1 -1
  116. package/lib/cjs/geometry3d/Transform.js +1 -1
  117. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  118. package/lib/cjs/numerics/Newton.d.ts +3 -3
  119. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  120. package/lib/cjs/numerics/Newton.js +14 -16
  121. package/lib/cjs/numerics/Newton.js.map +1 -1
  122. package/lib/cjs/numerics/Polynomials.d.ts +2 -2
  123. package/lib/cjs/numerics/Polynomials.js +2 -2
  124. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  125. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +7 -4
  126. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  127. package/lib/cjs/polyface/PolyfaceBuilder.js +11 -6
  128. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  129. package/lib/cjs/polyface/PolyfaceClip.d.ts +13 -10
  130. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  131. package/lib/cjs/polyface/PolyfaceClip.js +17 -14
  132. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  133. package/lib/cjs/polyface/PolyfaceQuery.d.ts +11 -14
  134. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  135. package/lib/cjs/polyface/PolyfaceQuery.js +59 -52
  136. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  137. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  138. package/lib/cjs/serialization/BGFBWriter.js +2 -2
  139. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  140. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  141. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  142. package/lib/cjs/solid/SweepContour.js +0 -4
  143. package/lib/cjs/solid/SweepContour.js.map +1 -1
  144. package/lib/cjs/topology/Graph.d.ts +1 -1
  145. package/lib/cjs/topology/Graph.js +2 -2
  146. package/lib/cjs/topology/Graph.js.map +1 -1
  147. package/lib/cjs/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
  148. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +1 -1
  149. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  150. package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
  151. package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
  152. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +168 -127
  153. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  154. package/lib/cjs/topology/HalfEdgePositionDetail.d.ts +35 -35
  155. package/lib/cjs/topology/HalfEdgePositionDetail.d.ts.map +1 -1
  156. package/lib/cjs/topology/HalfEdgePositionDetail.js +63 -41
  157. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  158. package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts +64 -12
  159. package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
  160. package/lib/cjs/topology/InsertAndRetriangulateContext.js +174 -75
  161. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  162. package/lib/cjs/topology/Merging.d.ts +2 -2
  163. package/lib/cjs/topology/Merging.js +2 -2
  164. package/lib/cjs/topology/Merging.js.map +1 -1
  165. package/lib/cjs/topology/Triangulation.d.ts +16 -10
  166. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  167. package/lib/cjs/topology/Triangulation.js +23 -30
  168. package/lib/cjs/topology/Triangulation.js.map +1 -1
  169. package/lib/esm/Geometry.d.ts +57 -46
  170. package/lib/esm/Geometry.d.ts.map +1 -1
  171. package/lib/esm/Geometry.js +73 -53
  172. package/lib/esm/Geometry.js.map +1 -1
  173. package/lib/esm/curve/Arc3d.d.ts +141 -38
  174. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  175. package/lib/esm/curve/Arc3d.js +217 -30
  176. package/lib/esm/curve/Arc3d.js.map +1 -1
  177. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -6
  178. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  179. package/lib/esm/curve/CurveChainWithDistanceIndex.js +12 -10
  180. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  181. package/lib/esm/curve/CurveCollection.d.ts +2 -1
  182. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  183. package/lib/esm/curve/CurveCollection.js +2 -1
  184. package/lib/esm/curve/CurveCollection.js.map +1 -1
  185. package/lib/esm/curve/CurveCurve.d.ts +11 -9
  186. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  187. package/lib/esm/curve/CurveCurve.js +11 -9
  188. package/lib/esm/curve/CurveCurve.js.map +1 -1
  189. package/lib/esm/curve/CurveFactory.d.ts +4 -3
  190. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  191. package/lib/esm/curve/CurveFactory.js +4 -3
  192. package/lib/esm/curve/CurveFactory.js.map +1 -1
  193. package/lib/esm/curve/CurveLocationDetail.d.ts +19 -1
  194. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  195. package/lib/esm/curve/CurveLocationDetail.js +39 -0
  196. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  197. package/lib/esm/curve/CurveOps.d.ts +4 -4
  198. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  199. package/lib/esm/curve/CurveOps.js +6 -6
  200. package/lib/esm/curve/CurveOps.js.map +1 -1
  201. package/lib/esm/curve/CurvePrimitive.d.ts +1 -1
  202. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  203. package/lib/esm/curve/LineString3d.d.ts +7 -5
  204. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  205. package/lib/esm/curve/LineString3d.js +8 -6
  206. package/lib/esm/curve/LineString3d.js.map +1 -1
  207. package/lib/esm/curve/Loop.d.ts.map +1 -1
  208. package/lib/esm/curve/Loop.js +6 -6
  209. package/lib/esm/curve/Loop.js.map +1 -1
  210. package/lib/esm/curve/OffsetOptions.d.ts +1 -1
  211. package/lib/esm/curve/OffsetOptions.js +1 -1
  212. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  213. package/lib/esm/curve/Path.d.ts.map +1 -1
  214. package/lib/esm/curve/Path.js +5 -6
  215. package/lib/esm/curve/Path.js.map +1 -1
  216. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  217. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
  218. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  219. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  220. package/lib/esm/curve/RegionOps.d.ts +4 -3
  221. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  222. package/lib/esm/curve/RegionOps.js +4 -3
  223. package/lib/esm/curve/RegionOps.js.map +1 -1
  224. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
  225. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  226. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
  227. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  228. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
  229. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  230. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
  231. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  232. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
  233. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
  234. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +995 -0
  235. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
  236. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +11 -8
  237. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  238. package/lib/esm/curve/internalContexts/MultiChainCollector.js +7 -4
  239. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  240. package/lib/esm/geometry3d/Angle.d.ts +18 -5
  241. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  242. package/lib/esm/geometry3d/Angle.js +23 -7
  243. package/lib/esm/geometry3d/Angle.js.map +1 -1
  244. package/lib/esm/geometry3d/AngleSweep.d.ts +14 -1
  245. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  246. package/lib/esm/geometry3d/AngleSweep.js +47 -12
  247. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  248. package/lib/esm/geometry3d/FrameBuilder.d.ts +2 -1
  249. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  250. package/lib/esm/geometry3d/FrameBuilder.js +12 -10
  251. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  252. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  253. package/lib/esm/geometry3d/GeometryHandler.js +1 -7
  254. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  255. package/lib/esm/geometry3d/Matrix3d.d.ts +6 -4
  256. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  257. package/lib/esm/geometry3d/Matrix3d.js +6 -4
  258. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  259. package/lib/esm/geometry3d/Point3dVector3d.d.ts +5 -5
  260. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  261. package/lib/esm/geometry3d/Point3dVector3d.js +5 -5
  262. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  263. package/lib/esm/geometry3d/PointHelpers.d.ts +6 -5
  264. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  265. package/lib/esm/geometry3d/PointHelpers.js +11 -10
  266. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  267. package/lib/esm/geometry3d/PolygonOps.d.ts +4 -4
  268. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  269. package/lib/esm/geometry3d/PolygonOps.js +7 -11
  270. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  271. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
  272. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  273. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  274. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  275. package/lib/esm/geometry3d/Range.d.ts +6 -1
  276. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  277. package/lib/esm/geometry3d/Range.js +9 -3
  278. package/lib/esm/geometry3d/Range.js.map +1 -1
  279. package/lib/esm/geometry3d/Ray3d.d.ts +1 -1
  280. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  281. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  282. package/lib/esm/geometry3d/Transform.d.ts +1 -1
  283. package/lib/esm/geometry3d/Transform.js +1 -1
  284. package/lib/esm/geometry3d/Transform.js.map +1 -1
  285. package/lib/esm/numerics/Newton.d.ts +3 -3
  286. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  287. package/lib/esm/numerics/Newton.js +14 -16
  288. package/lib/esm/numerics/Newton.js.map +1 -1
  289. package/lib/esm/numerics/Polynomials.d.ts +2 -2
  290. package/lib/esm/numerics/Polynomials.js +2 -2
  291. package/lib/esm/numerics/Polynomials.js.map +1 -1
  292. package/lib/esm/polyface/PolyfaceBuilder.d.ts +7 -4
  293. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  294. package/lib/esm/polyface/PolyfaceBuilder.js +11 -6
  295. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  296. package/lib/esm/polyface/PolyfaceClip.d.ts +13 -10
  297. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  298. package/lib/esm/polyface/PolyfaceClip.js +17 -14
  299. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  300. package/lib/esm/polyface/PolyfaceQuery.d.ts +11 -14
  301. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  302. package/lib/esm/polyface/PolyfaceQuery.js +59 -52
  303. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  304. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  305. package/lib/esm/serialization/BGFBWriter.js +2 -2
  306. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  307. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  308. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  309. package/lib/esm/solid/SweepContour.js +0 -4
  310. package/lib/esm/solid/SweepContour.js.map +1 -1
  311. package/lib/esm/topology/Graph.d.ts +1 -1
  312. package/lib/esm/topology/Graph.js +2 -2
  313. package/lib/esm/topology/Graph.js.map +1 -1
  314. package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
  315. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +1 -1
  316. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  317. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
  318. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
  319. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +168 -127
  320. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  321. package/lib/esm/topology/HalfEdgePositionDetail.d.ts +35 -35
  322. package/lib/esm/topology/HalfEdgePositionDetail.d.ts.map +1 -1
  323. package/lib/esm/topology/HalfEdgePositionDetail.js +63 -41
  324. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  325. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts +64 -12
  326. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
  327. package/lib/esm/topology/InsertAndRetriangulateContext.js +173 -74
  328. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  329. package/lib/esm/topology/Merging.d.ts +2 -2
  330. package/lib/esm/topology/Merging.js +2 -2
  331. package/lib/esm/topology/Merging.js.map +1 -1
  332. package/lib/esm/topology/Triangulation.d.ts +16 -10
  333. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  334. package/lib/esm/topology/Triangulation.js +24 -31
  335. package/lib/esm/topology/Triangulation.js.map +1 -1
  336. package/package.json +3 -3
@@ -0,0 +1,211 @@
1
+ import { AngleSweep } from "../../geometry3d/AngleSweep";
2
+ import { Range1d } from "../../geometry3d/Range";
3
+ import { Transform } from "../../geometry3d/Transform";
4
+ import { Arc3d, EllipticalArcApproximationOptions } from "../Arc3d";
5
+ import { CurveChain } from "../CurveCollection";
6
+ import { CurveLocationDetailPair } from "../CurveLocationDetail";
7
+ /**
8
+ * Structured data carrier used by the elliptical arc sampler.
9
+ * @internal
10
+ */
11
+ export declare class QuadrantFractions {
12
+ private _quadrant;
13
+ private _fractions;
14
+ private _interpolateStartTangent;
15
+ private _interpolateEndTangent;
16
+ private _averageAdded;
17
+ private constructor();
18
+ /** Constructor, captures the array. */
19
+ static create(quadrant: 1 | 2 | 3 | 4, fractions?: number[], interpolateStartTangent?: boolean, interpolateEndTangent?: boolean): QuadrantFractions;
20
+ /**
21
+ * Quadrant of the full ellipse containing the samples.
22
+ * * Quadrants are labeled proceeding in counterclockwise angular sweeps of length pi/2 starting at vector0.
23
+ * * For example, Quadrant 1 starts at vector0 and ends at vector90, and Quadrant 4 ends at vector0.
24
+ * * For purposes of angle classification, quadrants are half-open intervals, closed at their start angle,
25
+ * as determined by the ellipse's sweep direction.
26
+ */
27
+ get quadrant(): 1 | 2 | 3 | 4;
28
+ /** Sample locations in this quadrant of the elliptical arc, as fractions of its sweep. */
29
+ get fractions(): number[];
30
+ set fractions(f: number[]);
31
+ /**
32
+ * Whether to interpolate the elliptical arc tangent at the first fraction.
33
+ * * If true (default), the first approximating arc is computed from the first two fractions and approximates the
34
+ * elliptical arc between the first and second fractions, interpolating both point and tangent at the first fraction,
35
+ * and point at the second fraction.
36
+ * * If false, the first approximating arc is computed from the first three fractions and approximates the
37
+ * elliptical arc between the second and third fractions, where it interpolates position only.
38
+ */
39
+ get interpolateStartTangent(): boolean;
40
+ set interpolateStartTangent(interpolate: boolean);
41
+ /**
42
+ * Whether to interpolate the elliptical arc tangent at the last fraction.
43
+ * * If true (default), the last approximating arc is computed from the last two fractions and approximates the
44
+ * elliptical arc between the penultimate and last fractions, interpolating point at the penultimate fraction, and
45
+ * both point and tangent at the last fraction.
46
+ * * If false, the last approximating arc is computed from the last three fractions and approximates the
47
+ * elliptical arc between the penultimate and last fractions, where it interpolates position only.
48
+ */
49
+ get interpolateEndTangent(): boolean;
50
+ set interpolateEndTangent(interpolate: boolean);
51
+ /**
52
+ * Whether the average of the first and last fractions was added to satisfy a minimum fractions array length of three.
53
+ * * There are always at least two fractions per quadrant, but three are needed to interpolate both end tangents
54
+ * with circular arcs.
55
+ * * This flag is set if a given sample method/arc yielded only two fractions, so their average was inserted in the
56
+ * fractions array to meet this minimum three-sample requirement.
57
+ */
58
+ get averageAdded(): boolean;
59
+ set averageAdded(added: boolean);
60
+ /**
61
+ * Compute quadrant data for the given angles.
62
+ * @param radians0 first radian angle
63
+ * @param radians1 second radian angle
64
+ * @return quadrant number and start/end radian angles for the quadrant that contains both input angles, or
65
+ * undefined if no such quadrant.
66
+ * * The returned sweep is always counterclockwise: angle0 < angle1.
67
+ */
68
+ static getQuadrantRadians(radians0: number, radians1: number): {
69
+ quadrant: 1 | 2 | 3 | 4;
70
+ angle0: number;
71
+ angle1: number;
72
+ } | undefined;
73
+ /** Compute the fractional range of Quadrant 1 for the given sweep. */
74
+ static getQ1FractionalRange(sweep: AngleSweep): Range1d;
75
+ /** Reverse the fractions array and flags. */
76
+ reverse(): void;
77
+ }
78
+ /**
79
+ * Base class specifying callbacks for processing samples of an elliptical arc.
80
+ * @internal
81
+ */
82
+ declare class QuadrantFractionsProcessor {
83
+ /**
84
+ * Announce the beginning of processing for quadrant `q`.
85
+ * @param _reversed whether `q.reverse()` was invoked before this call for symmetry reasons. If so, arcs will be
86
+ * announced in the opposite order and with the opposite orientation.
87
+ * @return whether to process `q`
88
+ */
89
+ announceQuadrantBegin(_q: QuadrantFractions, _reversed: boolean): boolean;
90
+ /**
91
+ * Retrieve the fraction preceding the input fraction in process order.
92
+ * * This optional callback facilitates processors like [[AdaptiveSubdivisionQ1ErrorProcessor]] whose implementation
93
+ * of [[announceArc]] depends upon the result of the previous invocation of [[announceArc]].
94
+ * @param f0 fraction to look up
95
+ * @return fraction preceding f0 in process order, or undefined if no such fraction
96
+ */
97
+ getPreviousFraction?(f0: number): number | undefined;
98
+ /**
99
+ * Announce a circular arc approximating the elliptical arc E between the given fractions.
100
+ * * The given fractions are different. If `announceQuadrantBegin` was invoked with `reversed === false` then
101
+ * `fPrev < f0 < f1`; otherwise, `fPrev > f0 > f1`.
102
+ * @param _arc circular arc that interpolates E at f0 and f1. Processor can capture `arc`; it is unused afterwards.
103
+ * @param _fPrev fractional parameter of E used to define the 3-point parent circle through the points at `fPrev`,
104
+ * `f0`, and `f1` from which `arc` was constructed. If undefined, `arc` was generated from the circle defined by
105
+ * the points at `f0` and `f1` and one of their tangents.
106
+ * @param _f0 fractional parameter of E at which point `arc` starts
107
+ * @param _f1 fractional parameter of E at which point `arc` ends
108
+ */
109
+ announceArc(_arc: Arc3d, _fPrev: number | undefined, _f0: number, _f1: number): void;
110
+ /**
111
+ * Announce the end of processing for quadrant `q`.
112
+ * @param _reversed whether `q.reverse()` was invoked before processing (see [[announceQuadrantBegin]]). If so,
113
+ * after this call `q.reverse()` is invoked again.
114
+ */
115
+ announceQuadrantEnd(_q: QuadrantFractions, _reversed: boolean): void;
116
+ }
117
+ /**
118
+ * Context for sampling a non-circular Arc3d and for constructing an approximation to it based on interpolation
119
+ * of the samples.
120
+ * * [[EllipticalArcApproximationContext.constructCircularArcChainApproximation]] constructs a `CurveChain`
121
+ * approximation consisting of circular arcs.
122
+ * * Various sample methods are supported, cf. [[EllipticalArcApproximationOptions]].
123
+ * @internal
124
+ */
125
+ export declare class EllipticalArcApproximationContext {
126
+ private _ellipticalArc;
127
+ private _localToWorld;
128
+ private _isValidEllipticalArc;
129
+ private static workPt0;
130
+ private static workPt1;
131
+ private static workPt2;
132
+ private static workRay;
133
+ /** Constructor, captures input */
134
+ private constructor();
135
+ /** Constructor, clones input. */
136
+ static create(ellipticalArc: Arc3d): EllipticalArcApproximationContext;
137
+ /**
138
+ * The arc to be sampled.
139
+ * * Its axes are forced to be perpendicular.
140
+ * * It is stored in world coordinates.
141
+ */
142
+ get ellipticalArc(): Arc3d;
143
+ /**
144
+ * The rigid transformation that maps `ellipticalArc` from local coordinates to world coordinates.
145
+ * * In local coordinates, the arc center lies at the origin and its (perpendicular) axes of symmetry lie along
146
+ * the positive x- and y-axes.
147
+ */
148
+ get localToWorld(): Transform;
149
+ /**
150
+ * Whether the elliptical arc is amenable to sampling.
151
+ * * The arc is valid if it is non-circular, has nonzero sweep, and has positive radii (nonsingular matrix).
152
+ */
153
+ get isValidEllipticalArc(): boolean;
154
+ /**
155
+ * Create a clone of the context's arc in local coordinates.
156
+ * @param fullSweep Optionally set full sweep on the returned local arc. Start angle is preserved.
157
+ * @returns local arc, or undefined if the arc is invalid
158
+ */
159
+ cloneLocalArc(fullSweep?: boolean): Arc3d | undefined;
160
+ /**
161
+ * Process structured sample data for the given elliptical arc.
162
+ * * Circular arcs are announced to the processor for each sample interval in each quadrant.
163
+ * * Each quadrant is processed separately to allow the elliptical arc's axis points and tangents to be interpolated.
164
+ * * A 2-point plus tangent construction is used to create the first and last circular arc in each quadrant.
165
+ * * Symmetry of the announced circular arcs matching that of a multi-quadrant spanning elliptical arc is ensured by
166
+ * processing the samples consistently, starting along the elliptical arc's major axis in each quadrant.
167
+ * @param ellipticalArc source arc to approximate
168
+ * @param quadrants structured samples, may be temporarily reversed for symmetry
169
+ * @param processor callbacks for handling the constructed arcs
170
+ * @internal
171
+ */
172
+ static processQuadrantFractions(ellipticalArc: Arc3d, quadrants: QuadrantFractions[], processor: QuadrantFractionsProcessor): void;
173
+ /**
174
+ * Compute the maximum error of the circular arc chain approximation determined by the given samples.
175
+ * * This is measured by the longest perpendicular between the elliptical arc and its approximation.
176
+ * @param samples structured sample data from the instance's elliptical arc.
177
+ * @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
178
+ * For each of `detailA` and `detailB`:
179
+ * * `point` is the end of the perpendicular on each curve
180
+ * * `fraction` is the curve parameter of the point
181
+ * * `a` is the distance between the points.
182
+ * @internal
183
+ */
184
+ computeApproximationError(samples: QuadrantFractions[]): CurveLocationDetailPair | undefined;
185
+ /**
186
+ * Compute samples for the elliptical arc as fraction parameters.
187
+ * * This method houses the sampling framework for all sampling methods, which are customized via implementations
188
+ * of the [[EllipticalArcSampler]] interface.
189
+ * * Note that the returned samples are fractions in the parameterization of the context's arc (whose axes have been
190
+ * forced to be perpendicular), not the input arc passed into the context's constructor.
191
+ * @param options options that determine how the elliptical arc is sampled.
192
+ * @param structuredOutput flag indicating output format as follows:
193
+ * * If false (default), return all fractions in one sorted (increasing), deduplicated array (a full ellipse includes
194
+ * both 0 and 1).
195
+ * * If true, fractions are assembled by quadrants:
196
+ * * Each [[QuadrantFractions]] object holds at least three sorted (increasing), deduplicated fractions in a
197
+ * specified quadrant of the arc.
198
+ * * If only two fractions would be computed for a given `QuadrantFractions`, their midpoint is inserted to enable
199
+ * tangent interpolation at both ends. Such a quadrant `q` is marked with `q.averageAdded = true`.
200
+ * * The `QuadrantFractions` objects themselves are sorted by increasing order of the fractions they contain.
201
+ * * If the arc sweep spans adjacent quadrants, the fraction bordering the quadrants appears in both `QuadrantFractions`.
202
+ * * If the arc starts and ends in the same quadrant, two `QuadrantFractions` objects can be returned.
203
+ * * This means there are between 1 and 5 objects in the `QuadrantFractions` array.
204
+ * @internal
205
+ */
206
+ computeSampleFractions(options: EllipticalArcApproximationOptions, structuredOutput?: boolean): QuadrantFractions[] | number[];
207
+ /** Construct a circular arc chain approximation to the elliptical arc. */
208
+ constructCircularArcChainApproximation(options?: EllipticalArcApproximationOptions): CurveChain | undefined;
209
+ }
210
+ export {};
211
+ //# sourceMappingURL=EllipticalArcApproximationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EllipticalArcApproximationContext.d.ts","sourceRoot":"","sources":["../../../../src/curve/internalContexts/EllipticalArcApproximationContext.ts"],"names":[],"mappings":"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"}