@itwin/core-geometry 4.9.0-dev.9 → 4.10.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 (680) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +57 -46
  4. package/lib/cjs/Geometry.d.ts.map +1 -1
  5. package/lib/cjs/Geometry.js +73 -53
  6. package/lib/cjs/Geometry.js.map +1 -1
  7. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  8. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  12. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  13. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  14. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  15. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  16. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  17. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  18. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  19. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  20. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  21. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  22. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  23. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  24. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  25. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  26. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  27. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  28. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  29. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  30. package/lib/cjs/core-geometry.js.map +1 -1
  31. package/lib/cjs/curve/Arc3d.d.ts +141 -38
  32. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  33. package/lib/cjs/curve/Arc3d.js +219 -31
  34. package/lib/cjs/curve/Arc3d.js.map +1 -1
  35. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  36. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  37. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -6
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +12 -10
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  41. package/lib/cjs/curve/CurveCollection.d.ts +2 -1
  42. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.js +2 -1
  44. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  45. package/lib/cjs/curve/CurveCurve.d.ts +11 -9
  46. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  47. package/lib/cjs/curve/CurveCurve.js +11 -9
  48. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  49. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  50. package/lib/cjs/curve/CurveFactory.d.ts +4 -3
  51. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  52. package/lib/cjs/curve/CurveFactory.js +4 -3
  53. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  54. package/lib/cjs/curve/CurveLocationDetail.d.ts +19 -1
  55. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  56. package/lib/cjs/curve/CurveLocationDetail.js +39 -0
  57. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  58. package/lib/cjs/curve/CurveOps.d.ts +4 -4
  59. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  60. package/lib/cjs/curve/CurveOps.js +6 -6
  61. package/lib/cjs/curve/CurveOps.js.map +1 -1
  62. package/lib/cjs/curve/CurvePrimitive.d.ts +1 -1
  63. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  64. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  65. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  66. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  67. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  68. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  69. package/lib/cjs/curve/LineString3d.d.ts +7 -5
  70. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  71. package/lib/cjs/curve/LineString3d.js +8 -6
  72. package/lib/cjs/curve/LineString3d.js.map +1 -1
  73. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  74. package/lib/cjs/curve/Loop.js +6 -6
  75. package/lib/cjs/curve/Loop.js.map +1 -1
  76. package/lib/cjs/curve/OffsetOptions.d.ts +1 -1
  77. package/lib/cjs/curve/OffsetOptions.js +1 -1
  78. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  79. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  80. package/lib/cjs/curve/Path.d.ts.map +1 -1
  81. package/lib/cjs/curve/Path.js +5 -6
  82. package/lib/cjs/curve/Path.js.map +1 -1
  83. package/lib/cjs/curve/PointString3d.js.map +1 -1
  84. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  85. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  86. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
  87. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  88. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  89. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  90. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  91. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  92. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  93. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  94. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  95. package/lib/cjs/curve/RegionOps.d.ts +4 -3
  96. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  97. package/lib/cjs/curve/RegionOps.js +4 -3
  98. package/lib/cjs/curve/RegionOps.js.map +1 -1
  99. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  100. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  101. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  104. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  105. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  106. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  107. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  108. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
  109. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  110. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
  111. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  112. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
  113. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  114. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
  115. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  116. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
  120. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
  121. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +1000 -0
  122. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
  123. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +11 -8
  125. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  126. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +7 -4
  127. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  131. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  133. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  134. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  135. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  136. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  137. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  138. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  139. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  140. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  141. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  142. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  143. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  144. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  145. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  146. package/lib/cjs/geometry3d/Angle.d.ts +18 -5
  147. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  148. package/lib/cjs/geometry3d/Angle.js +23 -7
  149. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  150. package/lib/cjs/geometry3d/AngleSweep.d.ts +14 -1
  151. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  152. package/lib/cjs/geometry3d/AngleSweep.js +47 -12
  153. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  154. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  155. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  156. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  157. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  158. package/lib/cjs/geometry3d/FrameBuilder.d.ts +2 -1
  159. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  160. package/lib/cjs/geometry3d/FrameBuilder.js +12 -10
  161. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  162. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  163. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  164. package/lib/cjs/geometry3d/GeometryHandler.js +1 -7
  165. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  166. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  167. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  168. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  169. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  170. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  171. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  172. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  173. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  174. package/lib/cjs/geometry3d/Matrix3d.d.ts +6 -4
  175. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  176. package/lib/cjs/geometry3d/Matrix3d.js +6 -4
  177. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  178. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  179. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  180. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  181. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  182. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  183. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  184. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  185. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +5 -5
  186. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  187. package/lib/cjs/geometry3d/Point3dVector3d.js +5 -5
  188. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  189. package/lib/cjs/geometry3d/PointHelpers.d.ts +6 -5
  190. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  191. package/lib/cjs/geometry3d/PointHelpers.js +11 -10
  192. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  193. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  194. package/lib/cjs/geometry3d/PolygonOps.d.ts +4 -4
  195. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  196. package/lib/cjs/geometry3d/PolygonOps.js +7 -11
  197. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  198. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
  199. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  200. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  201. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  202. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  203. package/lib/cjs/geometry3d/Range.d.ts +6 -1
  204. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  205. package/lib/cjs/geometry3d/Range.js +9 -3
  206. package/lib/cjs/geometry3d/Range.js.map +1 -1
  207. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  208. package/lib/cjs/geometry3d/Ray3d.d.ts +1 -1
  209. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  210. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  211. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  212. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  213. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  214. package/lib/cjs/geometry3d/Transform.d.ts +1 -1
  215. package/lib/cjs/geometry3d/Transform.js +1 -1
  216. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  217. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  218. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  219. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  220. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  221. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  222. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  223. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  224. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  225. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  226. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  227. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  228. package/lib/cjs/numerics/Complex.js.map +1 -1
  229. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  230. package/lib/cjs/numerics/Newton.d.ts +3 -3
  231. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  232. package/lib/cjs/numerics/Newton.js +14 -16
  233. package/lib/cjs/numerics/Newton.js.map +1 -1
  234. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  235. package/lib/cjs/numerics/PolarData.js.map +1 -1
  236. package/lib/cjs/numerics/Polynomials.d.ts +2 -2
  237. package/lib/cjs/numerics/Polynomials.js +2 -2
  238. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  239. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  240. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  241. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  242. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  243. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  244. package/lib/cjs/polyface/AuxData.js.map +1 -1
  245. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  246. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  247. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  248. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  249. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  250. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  251. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  252. package/lib/cjs/polyface/Polyface.js.map +1 -1
  253. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +7 -4
  254. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  255. package/lib/cjs/polyface/PolyfaceBuilder.js +11 -6
  256. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  257. package/lib/cjs/polyface/PolyfaceClip.d.ts +13 -10
  258. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  259. package/lib/cjs/polyface/PolyfaceClip.js +17 -14
  260. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  261. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  262. package/lib/cjs/polyface/PolyfaceQuery.d.ts +11 -14
  263. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  264. package/lib/cjs/polyface/PolyfaceQuery.js +59 -52
  265. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  266. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  267. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  268. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  269. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  270. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  271. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  272. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  273. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  274. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  275. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  276. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  277. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  278. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  279. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  280. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  281. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  282. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  283. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  284. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  285. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  286. package/lib/cjs/serialization/BGFBWriter.js +2 -2
  287. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  288. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  289. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  290. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  291. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  292. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  293. package/lib/cjs/solid/Box.js.map +1 -1
  294. package/lib/cjs/solid/Cone.js.map +1 -1
  295. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  296. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  297. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  298. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  299. package/lib/cjs/solid/Sphere.js.map +1 -1
  300. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  301. package/lib/cjs/solid/SweepContour.js +0 -4
  302. package/lib/cjs/solid/SweepContour.js.map +1 -1
  303. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  304. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  305. package/lib/cjs/topology/Graph.d.ts +1 -1
  306. package/lib/cjs/topology/Graph.js +2 -2
  307. package/lib/cjs/topology/Graph.js.map +1 -1
  308. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  309. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  310. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  311. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  312. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  313. package/lib/cjs/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
  314. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +1 -1
  315. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  316. package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
  317. package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
  318. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +168 -127
  319. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  320. package/lib/cjs/topology/HalfEdgePositionDetail.d.ts +35 -35
  321. package/lib/cjs/topology/HalfEdgePositionDetail.d.ts.map +1 -1
  322. package/lib/cjs/topology/HalfEdgePositionDetail.js +63 -41
  323. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  324. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  325. package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts +64 -12
  326. package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
  327. package/lib/cjs/topology/InsertAndRetriangulateContext.js +174 -75
  328. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  329. package/lib/cjs/topology/MaskManager.js.map +1 -1
  330. package/lib/cjs/topology/Merging.d.ts +2 -2
  331. package/lib/cjs/topology/Merging.js +2 -2
  332. package/lib/cjs/topology/Merging.js.map +1 -1
  333. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  334. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  335. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  336. package/lib/cjs/topology/Triangulation.d.ts +16 -10
  337. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  338. package/lib/cjs/topology/Triangulation.js +23 -30
  339. package/lib/cjs/topology/Triangulation.js.map +1 -1
  340. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  341. package/lib/esm/Constant.js.map +1 -1
  342. package/lib/esm/Geometry.d.ts +57 -46
  343. package/lib/esm/Geometry.d.ts.map +1 -1
  344. package/lib/esm/Geometry.js +73 -53
  345. package/lib/esm/Geometry.js.map +1 -1
  346. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  347. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  348. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  349. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  350. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  351. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  352. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  353. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  354. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  355. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  356. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  357. package/lib/esm/bspline/KnotVector.js.map +1 -1
  358. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  359. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  360. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  361. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  362. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  363. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  364. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  365. package/lib/esm/clipping/ClipVector.js.map +1 -1
  366. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  367. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  368. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  369. package/lib/esm/core-geometry.js.map +1 -1
  370. package/lib/esm/curve/Arc3d.d.ts +141 -38
  371. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  372. package/lib/esm/curve/Arc3d.js +217 -30
  373. package/lib/esm/curve/Arc3d.js.map +1 -1
  374. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  375. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  376. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -6
  377. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  378. package/lib/esm/curve/CurveChainWithDistanceIndex.js +12 -10
  379. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  380. package/lib/esm/curve/CurveCollection.d.ts +2 -1
  381. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  382. package/lib/esm/curve/CurveCollection.js +2 -1
  383. package/lib/esm/curve/CurveCollection.js.map +1 -1
  384. package/lib/esm/curve/CurveCurve.d.ts +11 -9
  385. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  386. package/lib/esm/curve/CurveCurve.js +11 -9
  387. package/lib/esm/curve/CurveCurve.js.map +1 -1
  388. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  389. package/lib/esm/curve/CurveFactory.d.ts +4 -3
  390. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  391. package/lib/esm/curve/CurveFactory.js +4 -3
  392. package/lib/esm/curve/CurveFactory.js.map +1 -1
  393. package/lib/esm/curve/CurveLocationDetail.d.ts +19 -1
  394. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  395. package/lib/esm/curve/CurveLocationDetail.js +39 -0
  396. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  397. package/lib/esm/curve/CurveOps.d.ts +4 -4
  398. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  399. package/lib/esm/curve/CurveOps.js +6 -6
  400. package/lib/esm/curve/CurveOps.js.map +1 -1
  401. package/lib/esm/curve/CurvePrimitive.d.ts +1 -1
  402. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  403. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  404. package/lib/esm/curve/CurveTypes.js.map +1 -1
  405. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  406. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  407. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  408. package/lib/esm/curve/LineString3d.d.ts +7 -5
  409. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  410. package/lib/esm/curve/LineString3d.js +8 -6
  411. package/lib/esm/curve/LineString3d.js.map +1 -1
  412. package/lib/esm/curve/Loop.d.ts.map +1 -1
  413. package/lib/esm/curve/Loop.js +6 -6
  414. package/lib/esm/curve/Loop.js.map +1 -1
  415. package/lib/esm/curve/OffsetOptions.d.ts +1 -1
  416. package/lib/esm/curve/OffsetOptions.js +1 -1
  417. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  418. package/lib/esm/curve/ParityRegion.js.map +1 -1
  419. package/lib/esm/curve/Path.d.ts.map +1 -1
  420. package/lib/esm/curve/Path.js +5 -6
  421. package/lib/esm/curve/Path.js.map +1 -1
  422. package/lib/esm/curve/PointString3d.js.map +1 -1
  423. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  424. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  425. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
  426. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  427. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  428. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  429. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  430. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  431. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  432. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  433. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  434. package/lib/esm/curve/RegionOps.d.ts +4 -3
  435. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  436. package/lib/esm/curve/RegionOps.js +4 -3
  437. package/lib/esm/curve/RegionOps.js.map +1 -1
  438. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  439. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  440. package/lib/esm/curve/UnionRegion.js.map +1 -1
  441. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  442. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  443. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  444. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  445. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  446. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  447. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
  448. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  449. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
  450. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  451. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
  452. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  453. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
  454. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  455. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  456. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  457. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  458. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
  459. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
  460. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +995 -0
  461. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
  462. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  463. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +11 -8
  464. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  465. package/lib/esm/curve/internalContexts/MultiChainCollector.js +7 -4
  466. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  467. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  468. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  469. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  470. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  471. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  472. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  473. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  474. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  475. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  476. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  477. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  478. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  479. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  480. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  481. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  482. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  483. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  484. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  485. package/lib/esm/geometry3d/Angle.d.ts +18 -5
  486. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  487. package/lib/esm/geometry3d/Angle.js +23 -7
  488. package/lib/esm/geometry3d/Angle.js.map +1 -1
  489. package/lib/esm/geometry3d/AngleSweep.d.ts +14 -1
  490. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  491. package/lib/esm/geometry3d/AngleSweep.js +47 -12
  492. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  493. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  494. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  495. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  496. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  497. package/lib/esm/geometry3d/FrameBuilder.d.ts +2 -1
  498. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  499. package/lib/esm/geometry3d/FrameBuilder.js +12 -10
  500. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  501. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  502. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  503. package/lib/esm/geometry3d/GeometryHandler.js +1 -7
  504. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  505. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  506. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  507. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  508. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  509. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  510. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  511. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  512. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  513. package/lib/esm/geometry3d/Matrix3d.d.ts +6 -4
  514. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  515. package/lib/esm/geometry3d/Matrix3d.js +6 -4
  516. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  517. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  518. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  519. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  520. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  521. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  522. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  523. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  524. package/lib/esm/geometry3d/Point3dVector3d.d.ts +5 -5
  525. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  526. package/lib/esm/geometry3d/Point3dVector3d.js +5 -5
  527. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  528. package/lib/esm/geometry3d/PointHelpers.d.ts +6 -5
  529. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  530. package/lib/esm/geometry3d/PointHelpers.js +11 -10
  531. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  532. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  533. package/lib/esm/geometry3d/PolygonOps.d.ts +4 -4
  534. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  535. package/lib/esm/geometry3d/PolygonOps.js +7 -11
  536. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  537. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
  538. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  539. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  540. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  541. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  542. package/lib/esm/geometry3d/Range.d.ts +6 -1
  543. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  544. package/lib/esm/geometry3d/Range.js +9 -3
  545. package/lib/esm/geometry3d/Range.js.map +1 -1
  546. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  547. package/lib/esm/geometry3d/Ray3d.d.ts +1 -1
  548. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  549. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  550. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  551. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  552. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  553. package/lib/esm/geometry3d/Transform.d.ts +1 -1
  554. package/lib/esm/geometry3d/Transform.js +1 -1
  555. package/lib/esm/geometry3d/Transform.js.map +1 -1
  556. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  557. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  558. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  559. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  560. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  561. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  562. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  563. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  564. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  565. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  566. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  567. package/lib/esm/numerics/Complex.js.map +1 -1
  568. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  569. package/lib/esm/numerics/Newton.d.ts +3 -3
  570. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  571. package/lib/esm/numerics/Newton.js +14 -16
  572. package/lib/esm/numerics/Newton.js.map +1 -1
  573. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  574. package/lib/esm/numerics/PolarData.js.map +1 -1
  575. package/lib/esm/numerics/Polynomials.d.ts +2 -2
  576. package/lib/esm/numerics/Polynomials.js +2 -2
  577. package/lib/esm/numerics/Polynomials.js.map +1 -1
  578. package/lib/esm/numerics/Quadrature.js.map +1 -1
  579. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  580. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  581. package/lib/esm/numerics/UnionFind.js.map +1 -1
  582. package/lib/esm/numerics/UsageSums.js.map +1 -1
  583. package/lib/esm/polyface/AuxData.js.map +1 -1
  584. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  585. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  586. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  587. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  588. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  589. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  590. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  591. package/lib/esm/polyface/Polyface.js.map +1 -1
  592. package/lib/esm/polyface/PolyfaceBuilder.d.ts +7 -4
  593. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  594. package/lib/esm/polyface/PolyfaceBuilder.js +11 -6
  595. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  596. package/lib/esm/polyface/PolyfaceClip.d.ts +13 -10
  597. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  598. package/lib/esm/polyface/PolyfaceClip.js +17 -14
  599. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  600. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  601. package/lib/esm/polyface/PolyfaceQuery.d.ts +11 -14
  602. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  603. package/lib/esm/polyface/PolyfaceQuery.js +59 -52
  604. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  605. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  606. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  607. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  608. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  609. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  610. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  611. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  612. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  613. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  614. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  615. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  616. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  617. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  618. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  619. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  620. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  621. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  622. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  623. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  624. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  625. package/lib/esm/serialization/BGFBWriter.js +2 -2
  626. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  627. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  628. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  629. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  630. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  631. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  632. package/lib/esm/solid/Box.js.map +1 -1
  633. package/lib/esm/solid/Cone.js.map +1 -1
  634. package/lib/esm/solid/LinearSweep.js.map +1 -1
  635. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  636. package/lib/esm/solid/RuledSweep.js.map +1 -1
  637. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  638. package/lib/esm/solid/Sphere.js.map +1 -1
  639. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  640. package/lib/esm/solid/SweepContour.js +0 -4
  641. package/lib/esm/solid/SweepContour.js.map +1 -1
  642. package/lib/esm/solid/TorusPipe.js.map +1 -1
  643. package/lib/esm/topology/ChainMerge.js.map +1 -1
  644. package/lib/esm/topology/Graph.d.ts +1 -1
  645. package/lib/esm/topology/Graph.js +2 -2
  646. package/lib/esm/topology/Graph.js.map +1 -1
  647. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  648. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  649. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  650. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  651. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  652. package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
  653. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +1 -1
  654. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  655. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
  656. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
  657. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +168 -127
  658. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  659. package/lib/esm/topology/HalfEdgePositionDetail.d.ts +35 -35
  660. package/lib/esm/topology/HalfEdgePositionDetail.d.ts.map +1 -1
  661. package/lib/esm/topology/HalfEdgePositionDetail.js +63 -41
  662. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  663. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  664. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts +64 -12
  665. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
  666. package/lib/esm/topology/InsertAndRetriangulateContext.js +173 -74
  667. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  668. package/lib/esm/topology/MaskManager.js.map +1 -1
  669. package/lib/esm/topology/Merging.d.ts +2 -2
  670. package/lib/esm/topology/Merging.js +2 -2
  671. package/lib/esm/topology/Merging.js.map +1 -1
  672. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  673. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  674. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  675. package/lib/esm/topology/Triangulation.d.ts +16 -10
  676. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  677. package/lib/esm/topology/Triangulation.js +24 -31
  678. package/lib/esm/topology/Triangulation.js.map +1 -1
  679. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  680. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PascalCoefficients.js","sourceRoot":"","sources":["../../../src/numerics/PascalCoefficients.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/**\r\n * PascalCoeffients class has static methods which return rows of the PascalTriangle.\r\n * @internal\r\n */\r\nexport class PascalCoefficients {\r\n private static _allRows: Float64Array[] = [];\r\n /**\r\n * * return a row of the pascal table.\r\n * * The contents must not be altered by the user !!!\r\n * * Hypothetically the request row can be any integer.\r\n * * BUT in practice, values 60 create integer entries that are too big for IEEE double.\r\n */\r\n public static getRow(row: number): Float64Array {\r\n const allRows = PascalCoefficients._allRows;\r\n if (allRows.length === 0) {\r\n // seed the table . . .\r\n allRows.push(new Float64Array([1]));\r\n allRows.push(new Float64Array([1, 1]));\r\n allRows.push(new Float64Array([1, 2, 1]));\r\n allRows.push(new Float64Array([1, 3, 3, 1]));\r\n allRows.push(new Float64Array([1, 4, 6, 4, 1]));\r\n allRows.push(new Float64Array([1, 5, 10, 10, 5, 1]));\r\n allRows.push(new Float64Array([1, 6, 15, 20, 15, 6, 1]));\r\n allRows.push(new Float64Array([1, 7, 21, 35, 35, 21, 7, 1]));\r\n }\r\n\r\n while (allRows.length <= row) {\r\n const k = allRows.length;\r\n const oldRow = allRows[k - 1];\r\n const newRow = new Float64Array(k + 1);\r\n newRow[0] = 1.0;\r\n for (let i = 1; i < k; i++)\r\n newRow[i] = oldRow[i - 1] + oldRow[i];\r\n newRow[k] = 1.0;\r\n allRows.push(newRow);\r\n }\r\n return allRows[row];\r\n }\r\n /**\r\n * Return an array with Bezier weighted pascal coefficients\r\n * @param order output size. The index of the row of the Pascal triangle supplying weights is `order - 1`.\r\n * @param u parameter value\r\n * @param result optional destination array of length `order`. If the destination array is too small, a new Float64Array is allocated.\r\n */\r\n public static getBezierBasisValues(order: number, u: number, result?: Float64Array): Float64Array {\r\n const row = order - 1;\r\n const pascalRow = PascalCoefficients.getRow(row);\r\n if (result === undefined || result.length < order)\r\n result = new Float64Array(order);\r\n for (let i = 0; i < order; i++)\r\n result[i] = pascalRow[i];\r\n // multiply by increasing powers of u ...\r\n let p = u;\r\n for (let i = 1; i < order; i++ , p *= u) {\r\n result[i] *= p;\r\n }\r\n // multiply by powers of (1-u), working from right\r\n const v = 1.0 - u;\r\n p = v;\r\n for (let i = order - 2; i >= 0; i-- , p *= v) {\r\n result[i] *= p;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Return an array with derivatives of Bezier weighted pascal coefficients\r\n * @param order output size. The index of the row of the Pascal triangle supplying weights is `order - 2`.\r\n * @param u parameter value\r\n * @param result optional destination array of length `order`. If the destination array is too small, a new Float64Array is allocated.\r\n */\r\n public static getBezierBasisDerivatives(order: number, u: number, result?: Float64Array): Float64Array {\r\n if (result === undefined || result.length < order)\r\n result = new Float64Array(order);\r\n result = this.getBezierBasisValues(order - 1, u, result);\r\n // derivative is df/du = (order-1 ) * sum ( q[i+1] - q[i]) summed on 0 <= i < order - 1.\\\r\n // evaluate lower order basis, overwrite in place from right to left\r\n const f = order - 1;\r\n result[order - 1] = f * result[order - 2];\r\n for (let k = order - 2; k > 0; k--) {\r\n result[k] = f * (result[k - 1] - result[k]);\r\n }\r\n result[0] = - f * result[0];\r\n return result;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PascalCoefficients.js","sourceRoot":"","sources":["../../../src/numerics/PascalCoefficients.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/**\n * PascalCoeffients class has static methods which return rows of the PascalTriangle.\n * @internal\n */\nexport class PascalCoefficients {\n private static _allRows: Float64Array[] = [];\n /**\n * * return a row of the pascal table.\n * * The contents must not be altered by the user !!!\n * * Hypothetically the request row can be any integer.\n * * BUT in practice, values 60 create integer entries that are too big for IEEE double.\n */\n public static getRow(row: number): Float64Array {\n const allRows = PascalCoefficients._allRows;\n if (allRows.length === 0) {\n // seed the table . . .\n allRows.push(new Float64Array([1]));\n allRows.push(new Float64Array([1, 1]));\n allRows.push(new Float64Array([1, 2, 1]));\n allRows.push(new Float64Array([1, 3, 3, 1]));\n allRows.push(new Float64Array([1, 4, 6, 4, 1]));\n allRows.push(new Float64Array([1, 5, 10, 10, 5, 1]));\n allRows.push(new Float64Array([1, 6, 15, 20, 15, 6, 1]));\n allRows.push(new Float64Array([1, 7, 21, 35, 35, 21, 7, 1]));\n }\n\n while (allRows.length <= row) {\n const k = allRows.length;\n const oldRow = allRows[k - 1];\n const newRow = new Float64Array(k + 1);\n newRow[0] = 1.0;\n for (let i = 1; i < k; i++)\n newRow[i] = oldRow[i - 1] + oldRow[i];\n newRow[k] = 1.0;\n allRows.push(newRow);\n }\n return allRows[row];\n }\n /**\n * Return an array with Bezier weighted pascal coefficients\n * @param order output size. The index of the row of the Pascal triangle supplying weights is `order - 1`.\n * @param u parameter value\n * @param result optional destination array of length `order`. If the destination array is too small, a new Float64Array is allocated.\n */\n public static getBezierBasisValues(order: number, u: number, result?: Float64Array): Float64Array {\n const row = order - 1;\n const pascalRow = PascalCoefficients.getRow(row);\n if (result === undefined || result.length < order)\n result = new Float64Array(order);\n for (let i = 0; i < order; i++)\n result[i] = pascalRow[i];\n // multiply by increasing powers of u ...\n let p = u;\n for (let i = 1; i < order; i++ , p *= u) {\n result[i] *= p;\n }\n // multiply by powers of (1-u), working from right\n const v = 1.0 - u;\n p = v;\n for (let i = order - 2; i >= 0; i-- , p *= v) {\n result[i] *= p;\n }\n return result;\n }\n\n /**\n * Return an array with derivatives of Bezier weighted pascal coefficients\n * @param order output size. The index of the row of the Pascal triangle supplying weights is `order - 2`.\n * @param u parameter value\n * @param result optional destination array of length `order`. If the destination array is too small, a new Float64Array is allocated.\n */\n public static getBezierBasisDerivatives(order: number, u: number, result?: Float64Array): Float64Array {\n if (result === undefined || result.length < order)\n result = new Float64Array(order);\n result = this.getBezierBasisValues(order - 1, u, result);\n // derivative is df/du = (order-1 ) * sum ( q[i+1] - q[i]) summed on 0 <= i < order - 1.\\\n // evaluate lower order basis, overwrite in place from right to left\n const f = order - 1;\n result[order - 1] = f * result[order - 2];\n for (let k = order - 2; k > 0; k--) {\n result[k] = f * (result[k - 1] - result[k]);\n }\n result[0] = - f * result[0];\n return result;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PolarData.js","sourceRoot":"","sources":["../../../src/numerics/PolarData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\n\r\n/** Enumeration of how constraints have been resolved\r\n * @internal\r\n */\r\nexport enum ConstraintState {\r\n unknown = 0,\r\n singlePoint = 1,\r\n impossibleValues = -1,\r\n onCurve = 2,\r\n\r\n}\r\n\r\n/**\r\n * PolarData carries (possibly incomplete) data for converting among polar and cartesian coordinates.\r\n * @internal\r\n */\r\nexport class PolarData {\r\n private static _defaultRadius = 1.0;\r\n public static get defaultRadius(): number { return PolarData._defaultRadius; }\r\n /** x coordinate, possibly unknown */\r\n public x?: number;\r\n /** y coordinate, possibly unknown */\r\n public y?: number;\r\n /** radius, possibly unknown */\r\n public r?: number;\r\n /** angle, possibly unknown */\r\n public theta?: Angle;\r\n /** point, line, or arc geometry, as determined by solveFromScalars */\r\n public geometry?: GeometryQuery;\r\n /** enumeration of resolved state validity conditions. */\r\n public state?: ConstraintState;\r\n /** Count the number of defined values among x,y,r, theta */\r\n public get numberOfConstrainedScalars(): number {\r\n let n = 0;\r\n if (this.x !== undefined) n++;\r\n if (this.y !== undefined) n++;\r\n if (this.r !== undefined) n++;\r\n if (this.theta !== undefined) n++;\r\n return n;\r\n }\r\n /** Create with any combination of known and unknown scalars. */\r\n public static createMixedScalars(state?: ConstraintState, x?: number, y?: number, r?: number, theta?: Angle): PolarData {\r\n const result = new PolarData();\r\n result.x = x;\r\n result.y = y;\r\n result.r = r;\r\n result.theta = theta !== undefined ? theta.clone() : undefined;\r\n result.state = state;\r\n return result;\r\n }\r\n\r\n /** Clone the scalar data, replace the state.\r\n * * Geometry is NOT cloned.\r\n */\r\n public cloneScalarsWithState(newState: ConstraintState): PolarData {\r\n const result = new PolarData();\r\n result.x = this.x;\r\n result.y = this.y;\r\n result.r = this.r;\r\n result.theta = this.theta !== undefined ? this.theta.clone() : undefined;\r\n result.state = newState;\r\n return result;\r\n }\r\n\r\n /** Given a possibly incomplete set of x,y,r,theta, determine the possible completions. */\r\n public static solveFromScalars(known: PolarData): PolarData[] {\r\n const result = [];\r\n // .. fill out known combinations (x,y) (x,r) etc.\r\n // .. any \"singlePoints\" gets created with no geometry, but geometry fills in at end.\r\n // .. \"free on curve\" has curve filled in, with finite curve range controlled by PolarData.defaultRadius.\r\n if (known.x !== undefined) {\r\n if (known.y !== undefined) {\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, known.y, Geometry.hypotenuseXY(known.x, known.y), Angle.createAtan2(known.y, known.x)));\r\n } else if (known.r !== undefined) {\r\n const rr = known.r * known.r;\r\n const xx = known.x * known.x;\r\n const yy = rr - xx;\r\n if (yy < 0.0) {\r\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\r\n } else {\r\n const y = Math.sqrt(yy);\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, known.r, Angle.createAtan2(y, known.x)));\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, -y, known.r, Angle.createAtan2(-y, known.x)));\r\n }\r\n } else if (known.theta !== undefined) {\r\n const r = Geometry.conditionalDivideFraction(known.x, known.theta.cos());\r\n // test 4*theta to isolate either positive or negative PI/2 case ...\r\n if (r === undefined) {\r\n // Anywhere on y axis does has x=0, this angle . . .\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYXY(0, PolarData._defaultRadius, 0, PolarData._defaultRadius);\r\n } else {\r\n const y = r * known.theta.sin();\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, r, known.theta));\r\n }\r\n } else { // only x known --- fill out a vertical line\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(known.x, PolarData._defaultRadius, 0, known.x, PolarData._defaultRadius, 0);\r\n }\r\n } else if (known.y !== undefined) { // and we already know x is undefined .....\r\n if (known.r !== undefined) {\r\n const rr = known.r * known.r;\r\n const yy = known.y * known.y;\r\n const xx = rr - yy;\r\n if (xx < 0.0) {\r\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\r\n } else {\r\n const x = Math.sqrt(xx);\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, known.r, Angle.createAtan2(known.y, x)));\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, -x, known.y, known.r, Angle.createAtan2(known.y, -x)));\r\n }\r\n } else if (known.theta !== undefined) {\r\n const r = Geometry.conditionalDivideFraction(known.y, known.theta.sin());\r\n // test 4*theta to isolate either positive or negative PI/2 case ...\r\n if (r === undefined) {\r\n // Anywhere on y axis does has x=0, this angle . . .\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(0, PolarData._defaultRadius, 0, 0, PolarData._defaultRadius, 0);\r\n } else {\r\n const x = r * known.theta.cos();\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, r, known.theta));\r\n }\r\n } else { // only x known --- fill out a horizontal line\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(PolarData._defaultRadius, known.y, 0, PolarData._defaultRadius, known.y, 0);\r\n }\r\n } else if (known.r !== undefined) {\r\n if (known.theta !== undefined) {\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.r * known.theta.cos(), known.r * known.theta.sin(), known.r, known.theta));\r\n } else {\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = Arc3d.createXY(Point3d.create(0, 0, 0), known.r);\r\n result.push(q);\r\n }\r\n } else if (known.theta !== undefined) {\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n const x = PolarData._defaultRadius * known.theta.cos();\r\n const y = PolarData._defaultRadius * known.theta.sin();\r\n q.geometry = LineSegment3d.createXYXY(-x, -y, x, y);\r\n result.push(q);\r\n }\r\n // ----------------------------------------------------------------------------------------\r\n // add tangible geometry to single points ...\r\n for (const r of result) {\r\n if (r.state === ConstraintState.singlePoint && r.geometry === undefined)\r\n r.geometry = CoordinateXYZ.createXYZ(r.x, r.y, 0.0);\r\n }\r\n return result;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PolarData.js","sourceRoot":"","sources":["../../../src/numerics/PolarData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Arc3d } from \"../curve/Arc3d\";\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\nimport { Geometry } from \"../Geometry\";\nimport { Angle } from \"../geometry3d/Angle\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\n\n/** Enumeration of how constraints have been resolved\n * @internal\n */\nexport enum ConstraintState {\n unknown = 0,\n singlePoint = 1,\n impossibleValues = -1,\n onCurve = 2,\n\n}\n\n/**\n * PolarData carries (possibly incomplete) data for converting among polar and cartesian coordinates.\n * @internal\n */\nexport class PolarData {\n private static _defaultRadius = 1.0;\n public static get defaultRadius(): number { return PolarData._defaultRadius; }\n /** x coordinate, possibly unknown */\n public x?: number;\n /** y coordinate, possibly unknown */\n public y?: number;\n /** radius, possibly unknown */\n public r?: number;\n /** angle, possibly unknown */\n public theta?: Angle;\n /** point, line, or arc geometry, as determined by solveFromScalars */\n public geometry?: GeometryQuery;\n /** enumeration of resolved state validity conditions. */\n public state?: ConstraintState;\n /** Count the number of defined values among x,y,r, theta */\n public get numberOfConstrainedScalars(): number {\n let n = 0;\n if (this.x !== undefined) n++;\n if (this.y !== undefined) n++;\n if (this.r !== undefined) n++;\n if (this.theta !== undefined) n++;\n return n;\n }\n /** Create with any combination of known and unknown scalars. */\n public static createMixedScalars(state?: ConstraintState, x?: number, y?: number, r?: number, theta?: Angle): PolarData {\n const result = new PolarData();\n result.x = x;\n result.y = y;\n result.r = r;\n result.theta = theta !== undefined ? theta.clone() : undefined;\n result.state = state;\n return result;\n }\n\n /** Clone the scalar data, replace the state.\n * * Geometry is NOT cloned.\n */\n public cloneScalarsWithState(newState: ConstraintState): PolarData {\n const result = new PolarData();\n result.x = this.x;\n result.y = this.y;\n result.r = this.r;\n result.theta = this.theta !== undefined ? this.theta.clone() : undefined;\n result.state = newState;\n return result;\n }\n\n /** Given a possibly incomplete set of x,y,r,theta, determine the possible completions. */\n public static solveFromScalars(known: PolarData): PolarData[] {\n const result = [];\n // .. fill out known combinations (x,y) (x,r) etc.\n // .. any \"singlePoints\" gets created with no geometry, but geometry fills in at end.\n // .. \"free on curve\" has curve filled in, with finite curve range controlled by PolarData.defaultRadius.\n if (known.x !== undefined) {\n if (known.y !== undefined) {\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, known.y, Geometry.hypotenuseXY(known.x, known.y), Angle.createAtan2(known.y, known.x)));\n } else if (known.r !== undefined) {\n const rr = known.r * known.r;\n const xx = known.x * known.x;\n const yy = rr - xx;\n if (yy < 0.0) {\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\n } else {\n const y = Math.sqrt(yy);\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, known.r, Angle.createAtan2(y, known.x)));\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, -y, known.r, Angle.createAtan2(-y, known.x)));\n }\n } else if (known.theta !== undefined) {\n const r = Geometry.conditionalDivideFraction(known.x, known.theta.cos());\n // test 4*theta to isolate either positive or negative PI/2 case ...\n if (r === undefined) {\n // Anywhere on y axis does has x=0, this angle . . .\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYXY(0, PolarData._defaultRadius, 0, PolarData._defaultRadius);\n } else {\n const y = r * known.theta.sin();\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, r, known.theta));\n }\n } else { // only x known --- fill out a vertical line\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(known.x, PolarData._defaultRadius, 0, known.x, PolarData._defaultRadius, 0);\n }\n } else if (known.y !== undefined) { // and we already know x is undefined .....\n if (known.r !== undefined) {\n const rr = known.r * known.r;\n const yy = known.y * known.y;\n const xx = rr - yy;\n if (xx < 0.0) {\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\n } else {\n const x = Math.sqrt(xx);\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, known.r, Angle.createAtan2(known.y, x)));\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, -x, known.y, known.r, Angle.createAtan2(known.y, -x)));\n }\n } else if (known.theta !== undefined) {\n const r = Geometry.conditionalDivideFraction(known.y, known.theta.sin());\n // test 4*theta to isolate either positive or negative PI/2 case ...\n if (r === undefined) {\n // Anywhere on y axis does has x=0, this angle . . .\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(0, PolarData._defaultRadius, 0, 0, PolarData._defaultRadius, 0);\n } else {\n const x = r * known.theta.cos();\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, r, known.theta));\n }\n } else { // only x known --- fill out a horizontal line\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(PolarData._defaultRadius, known.y, 0, PolarData._defaultRadius, known.y, 0);\n }\n } else if (known.r !== undefined) {\n if (known.theta !== undefined) {\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.r * known.theta.cos(), known.r * known.theta.sin(), known.r, known.theta));\n } else {\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = Arc3d.createXY(Point3d.create(0, 0, 0), known.r);\n result.push(q);\n }\n } else if (known.theta !== undefined) {\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n const x = PolarData._defaultRadius * known.theta.cos();\n const y = PolarData._defaultRadius * known.theta.sin();\n q.geometry = LineSegment3d.createXYXY(-x, -y, x, y);\n result.push(q);\n }\n // ----------------------------------------------------------------------------------------\n // add tangible geometry to single points ...\n for (const r of result) {\n if (r.state === ConstraintState.singlePoint && r.geometry === undefined)\n r.geometry = CoordinateXYZ.createXYZ(r.x, r.y, 0.0);\n }\n return result;\n }\n}\n"]}
@@ -454,14 +454,14 @@ export declare class SmallSystem {
454
454
  * Return the line fraction at which the line is closest to a space point as viewed in xy only.
455
455
  * @param pointA0 start point
456
456
  * @param pointA1 end point
457
- * @param spacePoint homogeneous point in space
457
+ * @param spacePoint point in space
458
458
  */
459
459
  static lineSegment3dXYClosestPointUnbounded(pointA0: XAndY, pointA1: XAndY, spacePoint: XAndY): number | undefined;
460
460
  /**
461
461
  * Return the line fraction at which the line is closest to a space point
462
462
  * @param pointA0 start point
463
463
  * @param pointA1 end point
464
- * @param spacePoint homogeneous point in space
464
+ * @param spacePoint point in space
465
465
  */
466
466
  static lineSegment3dClosestPointUnbounded(pointA0: Point3d, pointA1: Point3d, spacePoint: Point3d): number | undefined;
467
467
  /**
@@ -1388,7 +1388,7 @@ class SmallSystem {
1388
1388
  * Return the line fraction at which the line is closest to a space point as viewed in xy only.
1389
1389
  * @param pointA0 start point
1390
1390
  * @param pointA1 end point
1391
- * @param spacePoint homogeneous point in space
1391
+ * @param spacePoint point in space
1392
1392
  */
1393
1393
  static lineSegment3dXYClosestPointUnbounded(pointA0, pointA1, spacePoint) {
1394
1394
  // Considering only x,y parts....
@@ -1404,7 +1404,7 @@ class SmallSystem {
1404
1404
  * Return the line fraction at which the line is closest to a space point
1405
1405
  * @param pointA0 start point
1406
1406
  * @param pointA1 end point
1407
- * @param spacePoint homogeneous point in space
1407
+ * @param spacePoint point in space
1408
1408
  */
1409
1409
  static lineSegment3dClosestPointUnbounded(pointA0, pointA1, spacePoint) {
1410
1410
  const ux = pointA1.x - pointA0.x;