@itwin/core-geometry 4.9.0-dev.9 → 4.9.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 (336) hide show
  1. package/CHANGELOG.md +36 -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
@@ -115,13 +115,13 @@ var PolygonLocation;
115
115
  * @public
116
116
  */
117
117
  class Geometry {
118
- /** Test if absolute value of x is large (larger than `Geometry.largeCoordinateResult`) */
118
+ /** Test if the absolute value of x is at least [[largeCoordinateResult]]. */
119
119
  static isLargeCoordinateResult(x) {
120
- return x > this.largeCoordinateResult || x < -this.largeCoordinateResult;
120
+ return x >= this.largeCoordinateResult || x <= -this.largeCoordinateResult;
121
121
  }
122
122
  /**
123
- * Test if absolute value of x is large (larger than `Geometry.largeCoordinateResult`).
124
- * @deprecated in 4.x. Use `isLargeCoordinateResult`.
123
+ * Test if the absolute value of x is at least [[largeCoordinateResult]].
124
+ * @deprecated in 4.x. Use [[isLargeCoordinateResult]].
125
125
  */
126
126
  static isHugeCoordinate(x) {
127
127
  return Geometry.isLargeCoordinateResult(x);
@@ -131,47 +131,50 @@ class Geometry {
131
131
  return (x & (0x01)) === 1; // bitwise operation
132
132
  }
133
133
  /**
134
- * Correct distance to zero.
135
- * * If `distance` magnitude is `undefined` or smaller than `smallMetricDistance`, then return `replacement`
136
- * (or 0 if replacement is not passed). Otherwise return `distance`.
134
+ * Correct a small distance.
135
+ * @param distance metric value to test
136
+ * @param replacement value to return if `distance` is too small. Default is zero.
137
+ * @returns `distance` if it is defined and has absolute value greater than [[smallMetricDistance]];
138
+ * otherwise returns `replacement`
137
139
  */
138
140
  static correctSmallMetricDistance(distance, replacement = 0.0) {
139
- if (distance === undefined || Math.abs(distance) < Geometry.smallMetricDistance) {
141
+ if (distance === undefined || Math.abs(distance) <= Geometry.smallMetricDistance) {
140
142
  return replacement;
141
143
  }
142
144
  return distance;
143
145
  }
144
146
  /**
145
- * Correct `fraction` to `replacement` if `fraction` is undefined or too small.
146
- * @param fraction number to test
147
- * @param replacement value to return if `fraction` is too small
148
- * @returns `fraction` if its absolute value is at least `Geometry.smallFraction`; otherwise returns `replacement`
147
+ * Correct a small fraction.
148
+ * @param fraction fraction to test
149
+ * @param replacement value to return if `fraction` is too small. Default is zero.
150
+ * @returns `fraction` if it is defined and has absolute value greater than [[Geometry.smallFraction]];
151
+ * otherwise returns `replacement`
149
152
  */
150
153
  static correctSmallFraction(fraction, replacement = 0.0) {
151
- if (fraction === undefined || Math.abs(fraction) < Geometry.smallFraction) {
154
+ if (fraction === undefined || Math.abs(fraction) <= Geometry.smallFraction) {
152
155
  return replacement;
153
156
  }
154
157
  return fraction;
155
158
  }
156
159
  /**
157
- * Return the inverse of `distance`.
158
- * * If `distance` magnitude is smaller than `smallMetricDistance` (i.e. distance is large enough for safe division),
159
- * then return `1/distance`. Otherwise return `undefined`.
160
+ * Compute the inverse of `distance`, checking for safe division.
161
+ * @returns `1/distance` if the absolute value of `distance` exceeds [[smallMetricDistance]];
162
+ * otherwise returns `undefined`.
160
163
  */
161
164
  static inverseMetricDistance(distance) {
162
165
  return (Math.abs(distance) <= Geometry.smallMetricDistance) ? undefined : 1.0 / distance;
163
166
  }
164
167
  /**
165
- * Return the inverse of `distanceSquared`.
166
- * * If `distanceSquared ` magnitude is smaller than `smallMetricDistanceSquared` (i.e. distanceSquared is large
167
- * enough for safe division), then return `1/distanceSquared `. Otherwise return `undefined`.
168
+ * Return the inverse of `distanceSquared`, checking for safe division.
169
+ * @returns `1/distanceSquared` if the absolute value of `distanceSquared` exceeds [[smallMetricDistanceSquared]];
170
+ * otherwise returns `undefined`.
168
171
  */
169
172
  static inverseMetricDistanceSquared(distanceSquared) {
170
173
  return (Math.abs(distanceSquared) <= Geometry.smallMetricDistanceSquared) ? undefined : 1.0 / distanceSquared;
171
174
  }
172
175
  /**
173
176
  * Boolean test for metric coordinate near-equality (i.e., if `x` and `y` are almost equal) using `tolerance`.
174
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
177
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
175
178
  */
176
179
  static isSameCoordinate(x, y, tolerance = Geometry.smallMetricDistance) {
177
180
  let d = x - y;
@@ -189,7 +192,7 @@ class Geometry {
189
192
  /**
190
193
  * Boolean test for metric coordinate pair near-equality (i.e., if `x0` and `x1` are almost equal
191
194
  * and `y0` and `y1` are almost equal) using `tolerance`.
192
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
195
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
193
196
  */
194
197
  static isSameCoordinateXY(x0, y0, x1, y1, tolerance = Geometry.smallMetricDistance) {
195
198
  let d = x1 - x0;
@@ -205,21 +208,21 @@ class Geometry {
205
208
  /**
206
209
  * Boolean test for squared metric coordinate near-equality (i.e., if `sqrt(x)` and `sqrt(y)` are
207
210
  * almost equal) using `tolerance`.
208
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
211
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
209
212
  */
210
213
  static isSameCoordinateSquared(x, y, tolerance = Geometry.smallMetricDistance) {
211
214
  return Math.abs(Math.sqrt(x) - Math.sqrt(y)) <= tolerance;
212
215
  }
213
216
  /**
214
217
  * Boolean test for small `dataA.distance(dataB)` within `tolerance`.
215
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
218
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
216
219
  */
217
220
  static isSamePoint3d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
218
221
  return dataA.distance(dataB) <= tolerance;
219
222
  }
220
223
  /**
221
224
  * Boolean test for small xyz-distance within `tolerance`.
222
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
225
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
223
226
  * * Note that Point3d and Vector3d are both derived from XYZ, so this method tolerates mixed types.
224
227
  */
225
228
  static isSameXYZ(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
@@ -227,28 +230,28 @@ class Geometry {
227
230
  }
228
231
  /**
229
232
  * Boolean test for small xy-distance (ignoring z) within `tolerance`.
230
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
233
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
231
234
  */
232
235
  static isSamePoint3dXY(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
233
236
  return dataA.distanceXY(dataB) <= tolerance;
234
237
  }
235
238
  /**
236
239
  * Boolean test for small xyz-distance within `tolerance`.
237
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
240
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
238
241
  */
239
242
  static isSameVector3d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
240
243
  return dataA.distance(dataB) <= tolerance;
241
244
  }
242
245
  /**
243
246
  * Boolean test for small xy-distance within `tolerance`.
244
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
247
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
245
248
  */
246
249
  static isSamePoint2d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
247
250
  return dataA.distance(dataB) <= tolerance;
248
251
  }
249
252
  /**
250
253
  * Boolean test for small xy-distance within `tolerance`.
251
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
254
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
252
255
  */
253
256
  static isSameVector2d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
254
257
  return dataA.distance(dataB) <= tolerance;
@@ -300,15 +303,19 @@ class Geometry {
300
303
  return 0;
301
304
  }
302
305
  /**
303
- * Test if `value` is small compared to `smallFraction`.
304
- * * This is appropriate if `value` is know to be a typical 0..1 fraction.
306
+ * Test if `value` is at most [[smallFraction]] in absolute value.
307
+ * * This is appropriate if `value` is known to be a fraction.
305
308
  */
306
309
  static isSmallRelative(value) {
307
- return Math.abs(value) < Geometry.smallFraction;
310
+ return Math.abs(value) <= Geometry.smallFraction;
308
311
  }
309
- /** Test if `value` is small compared to `smallAngleRadians` */
312
+ /** Test if `value` is at most [[smallAngleRadians]] in absolute value. */
310
313
  static isSmallAngleRadians(value) {
311
- return Math.abs(value) < Geometry.smallAngleRadians;
314
+ return Math.abs(value) <= Geometry.smallAngleRadians;
315
+ }
316
+ /** Test if `value` is at most [[smallAngleRadiansSquared]] in absolute value. */
317
+ static isSmallAngleRadiansSquared(value) {
318
+ return Math.abs(value) <= Geometry.smallAngleRadiansSquared;
312
319
  }
313
320
  /**
314
321
  * Returns `true` if both values are `undefined` or if both are defined and almost equal within tolerance.
@@ -326,16 +333,25 @@ class Geometry {
326
333
  return true;
327
334
  }
328
335
  /**
329
- * Toleranced equality test using tolerance `tolerance * ( 1 + abs(a) + abs(b) )`.
330
- * * `Geometry.smallAngleRadians` is used if tolerance is `undefined`.
336
+ * Toleranced equality test.
337
+ * @param tolerance relative tolerance. Default value is [[smallAngleRadians]].
338
+ * @returns true if and only if `a` and `b` are almost equal.
331
339
  */
332
340
  static isAlmostEqualNumber(a, b, tolerance = Geometry.smallAngleRadians) {
333
341
  const sumAbs = 1.0 + Math.abs(a) + Math.abs(b);
334
342
  return Math.abs(a - b) <= tolerance * sumAbs;
335
343
  }
344
+ /**
345
+ * Toleranced test for equality to at least one of two numbers.
346
+ * @param tolerance relative tolerance. Default value is [[smallAngleRadians]].
347
+ * @returns true if and only if `a` and `b` are almost equal, or `a` and `c` are almost equal.
348
+ */
349
+ static isAlmostEqualEitherNumber(a, b, c, tolerance = Geometry.smallAngleRadians) {
350
+ return this.isAlmostEqualNumber(a, b, tolerance) || this.isAlmostEqualNumber(a, c, tolerance);
351
+ }
336
352
  /**
337
353
  * Toleranced equality test using tolerance `tolerance * ( 1 + abs(a.x) + abs(a.y) + abs(b.x) + abs(b.y) )`.
338
- * * `Geometry.smallAngleRadians` is used if tolerance is `undefined`.
354
+ * * [[smallAngleRadians]] is used if tolerance is `undefined`.
339
355
  */
340
356
  static isAlmostEqualXAndY(a, b, tolerance = Geometry.smallAngleRadians) {
341
357
  const tol = tolerance * (1.0 + Math.abs(a.x) + Math.abs(b.x) + Math.abs(a.y) + Math.abs(b.y));
@@ -343,16 +359,16 @@ class Geometry {
343
359
  }
344
360
  /**
345
361
  * Toleranced equality test using caller-supplied `tolerance`.
346
- * * `Geometry.smallMetricDistance` is used if tolerance is `undefined`.
362
+ * * [[smallMetricDistance]] is used if tolerance is `undefined`.
347
363
  */
348
364
  static isDistanceWithinTol(distance, tolerance = Geometry.smallMetricDistance) {
349
365
  return Math.abs(distance) <= tolerance;
350
366
  }
351
- /** Toleranced equality test using `smallMetricDistance` tolerance. */
367
+ /** Toleranced equality test using [[smallMetricDistance]] tolerance. */
352
368
  static isSmallMetricDistance(distance) {
353
369
  return Math.abs(distance) <= Geometry.smallMetricDistance;
354
370
  }
355
- /** Toleranced equality test using `smallMetricDistanceSquared` tolerance. */
371
+ /** Toleranced equality test using [[smallMetricDistanceSquared]] tolerance. */
356
372
  static isSmallMetricDistanceSquared(distanceSquared) {
357
373
  return Math.abs(distanceSquared) <= Geometry.smallMetricDistanceSquared;
358
374
  }
@@ -755,11 +771,13 @@ class Geometry {
755
771
  * Return `numerator` divided by `denominator`.
756
772
  * @param numerator the numerator
757
773
  * @param denominator the denominator
758
- * @returns return `numerator/denominator` but if the ratio exceeds `Geometry.largeFractionResult`,
774
+ * @returns return `numerator/denominator` but if the ratio exceeds [[largeFractionResult]],
759
775
  * return `undefined`.
760
776
  */
761
777
  static conditionalDivideFraction(numerator, denominator) {
762
- if (Math.abs(denominator) * Geometry.largeFractionResult > Math.abs(numerator))
778
+ if (0 === denominator)
779
+ return undefined;
780
+ if (Math.abs(denominator) * Geometry.largeFractionResult >= Math.abs(numerator))
763
781
  return numerator / denominator;
764
782
  return undefined;
765
783
  }
@@ -767,7 +785,7 @@ class Geometry {
767
785
  * Return `numerator` divided by `denominator`.
768
786
  * @param numerator the numerator
769
787
  * @param denominator the denominator
770
- * @returns return `numerator/denominator` but if the ratio exceeds `Geometry.largeFractionResult`,
788
+ * @returns return `numerator/denominator` but if the ratio exceeds [[largeFractionResult]],
771
789
  * return `defaultResult`.
772
790
  */
773
791
  static safeDivideFraction(numerator, denominator, defaultResult) {
@@ -784,7 +802,9 @@ class Geometry {
784
802
  * @returns return `numerator/denominator` but if the ratio exceeds `largestResult`, return `undefined`.
785
803
  */
786
804
  static conditionalDivideCoordinate(numerator, denominator, largestResult = Geometry.largeCoordinateResult) {
787
- if (Math.abs(denominator * largestResult) > Math.abs(numerator))
805
+ if (0 === denominator)
806
+ return undefined;
807
+ if (Math.abs(denominator * largestResult) >= Math.abs(numerator))
788
808
  return numerator / denominator;
789
809
  return undefined;
790
810
  }
@@ -839,7 +859,7 @@ class Geometry {
839
859
  }
840
860
  /**
841
861
  * For a line `f(x)` where `f(x0) = f0` and `f(x1) = f1`, return the `x` value at which `f(x) = fTarget`.
842
- * Return `defaultResult` if `(fTarget - f0) / (f1 - f0)` exceeds `Geometry.largeFractionResult`.
862
+ * Return `defaultResult` if `(fTarget - f0) / (f1 - f0)` exceeds [[largeFractionResult]].
843
863
  */
844
864
  static inverseInterpolate(x0, f0, x1, f1, fTarget = 0, defaultResult) {
845
865
  /**
@@ -854,7 +874,7 @@ class Geometry {
854
874
  }
855
875
  /**
856
876
  * For a line `f(x)` where `f(0) = f0` and `f(1) = f1`, return the `x` value at which `f(x) = fTarget`
857
- * Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds `Geometry.largeFractionResult`
877
+ * Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds [[largeFractionResult]].
858
878
  */
859
879
  static inverseInterpolate01(f0, f1, fTarget = 0) {
860
880
  // Line equation is fTarget-f0 = (f1-f0)*x so x = (fTarget-f0)/(f1-f0)
@@ -925,12 +945,12 @@ class Geometry {
925
945
  return apply01 ? x >= 0.0 && x <= 1.0 : true;
926
946
  }
927
947
  /**
928
- * Test if `x` is in the interval [0,1] for a given positive `tolerance`.
929
- * * Make sure to pass a positive `tolerance` because there is no check for that in the code.
948
+ * Test if `x` is in the interval [0,1] for a given `tolerance`.
930
949
  * @param x value to test.
931
- * @param tolerance the tolerance.
950
+ * @param tolerance allowable distance outside the interval within which to classify `x` as inside.
932
951
  */
933
952
  static isIn01WithTolerance(x, tolerance) {
953
+ tolerance = Math.abs(tolerance);
934
954
  return x + tolerance >= 0.0 && x - tolerance <= 1.0;
935
955
  }
936
956
  /**
@@ -1072,11 +1092,11 @@ class Geometry {
1072
1092
  exports.Geometry = Geometry;
1073
1093
  /** Tolerance for small distances in metric coordinates. */
1074
1094
  Geometry.smallMetricDistance = 1.0e-6;
1075
- /** Square of `smallMetricDistance`. */
1095
+ /** Square of [[smallMetricDistance]]. */
1076
1096
  Geometry.smallMetricDistanceSquared = 1.0e-12;
1077
1097
  /** Tolerance for small angle measured in radians. */
1078
1098
  Geometry.smallAngleRadians = 1.0e-12;
1079
- /** Square of `smallAngleRadians`. */
1099
+ /** Square of [[smallAngleRadians]]. */
1080
1100
  Geometry.smallAngleRadiansSquared = 1.0e-24;
1081
1101
  /** Tolerance for small angle measured in degrees. */
1082
1102
  Geometry.smallAngleDegrees = 5.7e-11;
@@ -1086,7 +1106,7 @@ Geometry.smallAngleSeconds = 2e-7;
1086
1106
  Geometry.smallFraction = 1.0e-10;
1087
1107
  /** Tight tolerance near machine precision (unitless). Useful for snapping values, e.g., to 0 or 1. */
1088
1108
  Geometry.smallFloatingPoint = 1.0e-15;
1089
- /** Radians value for full circle 2PI radians minus `smallAngleRadians`. */
1109
+ /** Radians value for full circle 2PI radians minus [[smallAngleRadians]]. */
1090
1110
  Geometry.fullCircleRadiansMinusSmallAngle = 2.0 * Math.PI - Geometry.smallAngleRadians;
1091
1111
  /**
1092
1112
  * Numeric value that may be considered large for a ratio of numbers.
@@ -1095,12 +1115,12 @@ Geometry.fullCircleRadiansMinusSmallAngle = 2.0 * Math.PI - Geometry.smallAngleR
1095
1115
  Geometry.largeFractionResult = 1.0e10;
1096
1116
  /**
1097
1117
  * Numeric value that may considered large for numbers expected to be coordinates.
1098
- * * This allows larger results than `largeFractionResult`.
1118
+ * * This allows larger results than [[largeFractionResult]].
1099
1119
  */
1100
1120
  Geometry.largeCoordinateResult = 1.0e13;
1101
1121
  /**
1102
1122
  * Numeric value that may considered infinite for metric coordinates.
1103
- * @deprecated in 4.x. Use `largeCoordinateResult`.
1123
+ * @deprecated in 4.x. Use [[largeCoordinateResult]].
1104
1124
  * * This coordinate should be used only as a placeholder indicating "at infinity" -- computing actual
1105
1125
  * points at this coordinate invites numerical problems.
1106
1126
  */