@itwin/core-geometry 5.0.0-dev.4 → 5.0.0-dev.6

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 (579) hide show
  1. package/lib/cjs/Constant.js.map +1 -1
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  5. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  9. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  10. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  13. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  14. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  15. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  16. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  17. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  19. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  21. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  22. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  23. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  24. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  25. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  26. package/lib/cjs/core-geometry.js.map +1 -1
  27. package/lib/cjs/curve/Arc3d.d.ts +25 -5
  28. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  29. package/lib/cjs/curve/Arc3d.js +44 -5
  30. package/lib/cjs/curve/Arc3d.js.map +1 -1
  31. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  32. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  33. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  34. package/lib/cjs/curve/CurveCollection.d.ts +6 -2
  35. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  36. package/lib/cjs/curve/CurveCollection.js +11 -2
  37. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  38. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  39. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  40. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  41. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  42. package/lib/cjs/curve/CurveOps.js.map +1 -1
  43. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  44. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  45. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  46. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  47. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  48. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  49. package/lib/cjs/curve/LineString3d.d.ts +12 -8
  50. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  51. package/lib/cjs/curve/LineString3d.js +29 -8
  52. package/lib/cjs/curve/LineString3d.js.map +1 -1
  53. package/lib/cjs/curve/Loop.d.ts +12 -6
  54. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  55. package/lib/cjs/curve/Loop.js +12 -6
  56. package/lib/cjs/curve/Loop.js.map +1 -1
  57. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  58. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  59. package/lib/cjs/curve/Path.js.map +1 -1
  60. package/lib/cjs/curve/PointString3d.js.map +1 -1
  61. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  62. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  63. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  64. package/lib/cjs/curve/Query/CylindricalRange.d.ts +8 -6
  65. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
  66. package/lib/cjs/curve/Query/CylindricalRange.js +13 -9
  67. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  68. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  69. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  70. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  71. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  72. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  73. package/lib/cjs/curve/RegionOps.js.map +1 -1
  74. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  75. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  76. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  81. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  83. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  84. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  85. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  87. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  88. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  89. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +24 -18
  90. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  91. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  92. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  94. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  95. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  96. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  98. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  99. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  100. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  101. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  102. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  103. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  104. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  105. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  106. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  107. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  108. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  109. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  110. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  111. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  112. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  113. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
  114. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  115. package/lib/cjs/geometry3d/BarycentricTriangle.js +17 -8
  116. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  117. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  118. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  119. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  120. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  121. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  122. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  123. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  124. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts +2 -0
  125. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  126. package/lib/cjs/geometry3d/GrowableFloat64Array.js +4 -0
  127. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  128. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  129. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  130. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  131. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  132. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  133. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  134. package/lib/cjs/geometry3d/Matrix3d.d.ts +8 -4
  135. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  136. package/lib/cjs/geometry3d/Matrix3d.js +25 -22
  137. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  138. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  139. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  140. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  141. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  142. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  143. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  144. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  145. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  146. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  147. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  148. package/lib/cjs/geometry3d/PolygonOps.d.ts +10 -4
  149. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  150. package/lib/cjs/geometry3d/PolygonOps.js +92 -45
  151. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  152. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  153. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  154. package/lib/cjs/geometry3d/Range.js.map +1 -1
  155. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  156. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  157. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  158. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  159. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  160. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  161. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  162. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  163. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  164. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  165. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  166. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  167. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  168. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  169. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  170. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  171. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  172. package/lib/cjs/numerics/Complex.js.map +1 -1
  173. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  174. package/lib/cjs/numerics/Newton.js.map +1 -1
  175. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  176. package/lib/cjs/numerics/PolarData.js.map +1 -1
  177. package/lib/cjs/numerics/Polynomials.d.ts +5 -5
  178. package/lib/cjs/numerics/Polynomials.js +6 -6
  179. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  180. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  181. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  182. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  183. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  184. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  185. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  186. package/lib/cjs/polyface/AuxData.d.ts +2 -2
  187. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  188. package/lib/cjs/polyface/AuxData.js +11 -3
  189. package/lib/cjs/polyface/AuxData.js.map +1 -1
  190. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  191. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  192. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  193. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  194. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  195. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  196. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  197. package/lib/cjs/polyface/Polyface.d.ts +3 -5
  198. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  199. package/lib/cjs/polyface/Polyface.js +6 -13
  200. package/lib/cjs/polyface/Polyface.js.map +1 -1
  201. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  202. package/lib/cjs/polyface/PolyfaceBuilder.js +23 -13
  203. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  204. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  205. package/lib/cjs/polyface/PolyfaceData.d.ts +13 -3
  206. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  207. package/lib/cjs/polyface/PolyfaceData.js +21 -4
  208. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  209. package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
  210. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  211. package/lib/cjs/polyface/PolyfaceQuery.js +4 -3
  212. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  213. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  214. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  215. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  216. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  217. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  218. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  219. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  220. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  221. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  222. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  223. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  224. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  225. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  226. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  227. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  228. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  229. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  230. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  231. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  232. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  233. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  234. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  235. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  236. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  237. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  238. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  239. package/lib/cjs/solid/Box.d.ts +9 -3
  240. package/lib/cjs/solid/Box.d.ts.map +1 -1
  241. package/lib/cjs/solid/Box.js +10 -5
  242. package/lib/cjs/solid/Box.js.map +1 -1
  243. package/lib/cjs/solid/Cone.d.ts +3 -2
  244. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  245. package/lib/cjs/solid/Cone.js +3 -3
  246. package/lib/cjs/solid/Cone.js.map +1 -1
  247. package/lib/cjs/solid/LinearSweep.d.ts +9 -3
  248. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  249. package/lib/cjs/solid/LinearSweep.js +9 -4
  250. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  251. package/lib/cjs/solid/RotationalSweep.d.ts +15 -4
  252. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  253. package/lib/cjs/solid/RotationalSweep.js +20 -7
  254. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  255. package/lib/cjs/solid/RuledSweep.d.ts +9 -3
  256. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  257. package/lib/cjs/solid/RuledSweep.js +11 -5
  258. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  259. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  260. package/lib/cjs/solid/Sphere.d.ts +17 -7
  261. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  262. package/lib/cjs/solid/Sphere.js +22 -16
  263. package/lib/cjs/solid/Sphere.js.map +1 -1
  264. package/lib/cjs/solid/SweepContour.d.ts +1 -1
  265. package/lib/cjs/solid/SweepContour.js +1 -1
  266. package/lib/cjs/solid/SweepContour.js.map +1 -1
  267. package/lib/cjs/solid/TorusPipe.d.ts +8 -2
  268. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  269. package/lib/cjs/solid/TorusPipe.js +9 -5
  270. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  271. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  272. package/lib/cjs/topology/Graph.js.map +1 -1
  273. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  274. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  275. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  276. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  277. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  278. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  279. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  280. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  281. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  282. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  283. package/lib/cjs/topology/MaskManager.js.map +1 -1
  284. package/lib/cjs/topology/Merging.js.map +1 -1
  285. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  286. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  287. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  288. package/lib/cjs/topology/Triangulation.js.map +1 -1
  289. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  290. package/lib/esm/Constant.js.map +1 -1
  291. package/lib/esm/Geometry.js.map +1 -1
  292. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  293. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  294. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  295. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  296. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  297. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  298. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  299. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  300. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  301. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  302. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  303. package/lib/esm/bspline/KnotVector.js.map +1 -1
  304. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  305. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  306. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  307. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  308. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  309. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  310. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  311. package/lib/esm/clipping/ClipVector.js.map +1 -1
  312. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  313. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  314. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  315. package/lib/esm/core-geometry.js.map +1 -1
  316. package/lib/esm/curve/Arc3d.d.ts +25 -5
  317. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  318. package/lib/esm/curve/Arc3d.js +44 -5
  319. package/lib/esm/curve/Arc3d.js.map +1 -1
  320. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  321. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  322. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  323. package/lib/esm/curve/CurveCollection.d.ts +6 -2
  324. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  325. package/lib/esm/curve/CurveCollection.js +11 -2
  326. package/lib/esm/curve/CurveCollection.js.map +1 -1
  327. package/lib/esm/curve/CurveCurve.js.map +1 -1
  328. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  329. package/lib/esm/curve/CurveFactory.js.map +1 -1
  330. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  331. package/lib/esm/curve/CurveOps.js.map +1 -1
  332. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  333. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  334. package/lib/esm/curve/CurveTypes.js.map +1 -1
  335. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  336. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  337. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  338. package/lib/esm/curve/LineString3d.d.ts +12 -8
  339. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  340. package/lib/esm/curve/LineString3d.js +29 -8
  341. package/lib/esm/curve/LineString3d.js.map +1 -1
  342. package/lib/esm/curve/Loop.d.ts +12 -6
  343. package/lib/esm/curve/Loop.d.ts.map +1 -1
  344. package/lib/esm/curve/Loop.js +12 -6
  345. package/lib/esm/curve/Loop.js.map +1 -1
  346. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  347. package/lib/esm/curve/ParityRegion.js.map +1 -1
  348. package/lib/esm/curve/Path.js.map +1 -1
  349. package/lib/esm/curve/PointString3d.js.map +1 -1
  350. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  351. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  352. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  353. package/lib/esm/curve/Query/CylindricalRange.d.ts +8 -6
  354. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
  355. package/lib/esm/curve/Query/CylindricalRange.js +13 -9
  356. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  357. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  358. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  359. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  360. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  361. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  362. package/lib/esm/curve/RegionOps.js.map +1 -1
  363. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  364. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  365. package/lib/esm/curve/UnionRegion.js.map +1 -1
  366. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  367. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  368. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  369. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  370. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  371. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  372. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  373. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  374. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  375. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  376. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  377. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  378. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +24 -18
  379. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  380. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  381. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  382. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  383. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  384. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  385. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  386. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  387. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  388. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  389. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  390. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  391. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  392. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  393. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  394. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  395. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  396. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  397. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  398. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  399. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  400. package/lib/esm/geometry3d/Angle.js.map +1 -1
  401. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  402. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
  403. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  404. package/lib/esm/geometry3d/BarycentricTriangle.js +17 -8
  405. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  406. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  407. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  408. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  409. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  410. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  411. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  412. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  413. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +2 -0
  414. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  415. package/lib/esm/geometry3d/GrowableFloat64Array.js +4 -0
  416. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  417. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  418. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  419. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  420. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  421. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  422. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  423. package/lib/esm/geometry3d/Matrix3d.d.ts +8 -4
  424. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  425. package/lib/esm/geometry3d/Matrix3d.js +25 -22
  426. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  427. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  428. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  429. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  430. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  431. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  432. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  433. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  434. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  435. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  436. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  437. package/lib/esm/geometry3d/PolygonOps.d.ts +10 -4
  438. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  439. package/lib/esm/geometry3d/PolygonOps.js +92 -45
  440. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  441. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  442. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  443. package/lib/esm/geometry3d/Range.js.map +1 -1
  444. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  445. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  446. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  447. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  448. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  449. package/lib/esm/geometry3d/Transform.js.map +1 -1
  450. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  451. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  452. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  453. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  454. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  455. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  456. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  457. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  458. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  459. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  460. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  461. package/lib/esm/numerics/Complex.js.map +1 -1
  462. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  463. package/lib/esm/numerics/Newton.js.map +1 -1
  464. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  465. package/lib/esm/numerics/PolarData.js.map +1 -1
  466. package/lib/esm/numerics/Polynomials.d.ts +5 -5
  467. package/lib/esm/numerics/Polynomials.js +6 -6
  468. package/lib/esm/numerics/Polynomials.js.map +1 -1
  469. package/lib/esm/numerics/Quadrature.js.map +1 -1
  470. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  471. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  472. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  473. package/lib/esm/numerics/UnionFind.js.map +1 -1
  474. package/lib/esm/numerics/UsageSums.js.map +1 -1
  475. package/lib/esm/polyface/AuxData.d.ts +2 -2
  476. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  477. package/lib/esm/polyface/AuxData.js +11 -3
  478. package/lib/esm/polyface/AuxData.js.map +1 -1
  479. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  480. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  481. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  482. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  483. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  484. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  485. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  486. package/lib/esm/polyface/Polyface.d.ts +3 -5
  487. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  488. package/lib/esm/polyface/Polyface.js +6 -13
  489. package/lib/esm/polyface/Polyface.js.map +1 -1
  490. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  491. package/lib/esm/polyface/PolyfaceBuilder.js +23 -13
  492. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  493. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  494. package/lib/esm/polyface/PolyfaceData.d.ts +13 -3
  495. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  496. package/lib/esm/polyface/PolyfaceData.js +21 -4
  497. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  498. package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
  499. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  500. package/lib/esm/polyface/PolyfaceQuery.js +4 -3
  501. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  502. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  503. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  504. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  505. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  506. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  507. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  508. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  509. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  510. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  511. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  512. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  513. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  514. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  515. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  516. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  517. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  518. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  519. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  520. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  521. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  522. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  523. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  524. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  525. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  526. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  527. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  528. package/lib/esm/solid/Box.d.ts +9 -3
  529. package/lib/esm/solid/Box.d.ts.map +1 -1
  530. package/lib/esm/solid/Box.js +10 -5
  531. package/lib/esm/solid/Box.js.map +1 -1
  532. package/lib/esm/solid/Cone.d.ts +3 -2
  533. package/lib/esm/solid/Cone.d.ts.map +1 -1
  534. package/lib/esm/solid/Cone.js +3 -3
  535. package/lib/esm/solid/Cone.js.map +1 -1
  536. package/lib/esm/solid/LinearSweep.d.ts +9 -3
  537. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  538. package/lib/esm/solid/LinearSweep.js +9 -4
  539. package/lib/esm/solid/LinearSweep.js.map +1 -1
  540. package/lib/esm/solid/RotationalSweep.d.ts +15 -4
  541. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  542. package/lib/esm/solid/RotationalSweep.js +20 -7
  543. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  544. package/lib/esm/solid/RuledSweep.d.ts +9 -3
  545. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  546. package/lib/esm/solid/RuledSweep.js +11 -5
  547. package/lib/esm/solid/RuledSweep.js.map +1 -1
  548. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  549. package/lib/esm/solid/Sphere.d.ts +17 -7
  550. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  551. package/lib/esm/solid/Sphere.js +22 -16
  552. package/lib/esm/solid/Sphere.js.map +1 -1
  553. package/lib/esm/solid/SweepContour.d.ts +1 -1
  554. package/lib/esm/solid/SweepContour.js +1 -1
  555. package/lib/esm/solid/SweepContour.js.map +1 -1
  556. package/lib/esm/solid/TorusPipe.d.ts +8 -2
  557. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  558. package/lib/esm/solid/TorusPipe.js +9 -5
  559. package/lib/esm/solid/TorusPipe.js.map +1 -1
  560. package/lib/esm/topology/ChainMerge.js.map +1 -1
  561. package/lib/esm/topology/Graph.js.map +1 -1
  562. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  563. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  564. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  565. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  566. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  567. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  568. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  569. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  570. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  571. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  572. package/lib/esm/topology/MaskManager.js.map +1 -1
  573. package/lib/esm/topology/Merging.js.map +1 -1
  574. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  575. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  576. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  577. package/lib/esm/topology/Triangulation.js.map +1 -1
  578. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  579. package/package.json +3 -3
@@ -846,7 +846,10 @@ class PolygonOps {
846
846
  * * Compare to [[closestPoint]].
847
847
  * @param polygon points of the polygon, closure point optional
848
848
  * @param testPoint point p to project onto the polygon edges. Works best when p is in the plane of the polygon.
849
- * @param tolerance optional distance tolerance to determine point-vertex and point-edge coincidence.
849
+ * @param tolerance optional tolerance(s) to determine point-vertex and point-edge coincidence. A single number
850
+ * is interpreted as distance tolerance. If an array is given, the first number is interpreted as distance tolerance;
851
+ * the second, as parametric tolerance. Default values are [[Geometry.smallMetricDistance]] for distance tolerance
852
+ * and 0.0 for parameter tolerance.
850
853
  * @param result optional pre-allocated object to fill and return
851
854
  * @returns details d of the closest point `d.point`:
852
855
  * * `d.isValid()` returns true if and only if the polygon is nontrivial.
@@ -858,7 +861,9 @@ class PolygonOps {
858
861
  static closestPointOnBoundary(polygon, testPoint, tolerance = Geometry_1.Geometry.smallMetricDistance, result) {
859
862
  if (!(polygon instanceof IndexedXYZCollection_1.IndexedXYZCollection))
860
863
  return this.closestPointOnBoundary(new Point3dArrayCarrier_1.Point3dArrayCarrier(polygon), testPoint, tolerance, result);
861
- const distTol2 = tolerance * tolerance;
864
+ const distTol = Array.isArray(tolerance) ? tolerance[0] : tolerance;
865
+ const paramTol = Array.isArray(tolerance) ? Math.abs(tolerance[1]) : 0.0;
866
+ const distTol2 = distTol * distTol;
862
867
  let numPoints = polygon.length;
863
868
  while (numPoints > 1) {
864
869
  if (polygon.distanceSquaredIndexIndex(0, numPoints - 1) > distTol2)
@@ -868,29 +873,59 @@ class PolygonOps {
868
873
  result = PolygonLocationDetail.create(result);
869
874
  if (0 === numPoints)
870
875
  return result; // invalid
871
- if (1 === numPoints) {
872
- polygon.getPoint3dAtUncheckedPointIndex(0, result.point);
876
+ const constructSingletonPoint = (index) => {
877
+ polygon.getPoint3dAtUncheckedPointIndex(index, result.point);
873
878
  result.a = result.point.distance(testPoint);
874
879
  result.v.setZero();
875
880
  result.code = Geometry_1.PolygonLocation.OnPolygonVertex;
876
- result.closestEdgeIndex = 0;
881
+ result.closestEdgeIndex = index;
877
882
  result.closestEdgeParam = 0.0;
878
883
  return result;
879
- }
884
+ };
885
+ if (1 === numPoints)
886
+ return constructSingletonPoint(0);
887
+ // lambda for computing edge parameter at which testPoint projects onto the edge starting at iEdgeStart
888
+ const projectToEdge = (iEdgeStart) => {
889
+ let isValid = false;
890
+ let edgeParam = 0.0;
891
+ let uDotU = 0.0;
892
+ let vDotV = 0.0;
893
+ if (iEdgeStart >= 0 && iEdgeStart < numPoints) {
894
+ let iEdgeEnd = iEdgeStart + 1;
895
+ if (iEdgeEnd === numPoints)
896
+ iEdgeEnd = 0;
897
+ uDotU = polygon.distanceSquaredIndexIndex(iEdgeStart, iEdgeEnd);
898
+ if (uDotU > distTol2) { // nontrivial edge
899
+ vDotV = polygon.distanceSquaredIndexXYAndZ(iEdgeStart, testPoint);
900
+ const uDotV = polygon.dotProductIndexIndexXYAndZ(iEdgeStart, iEdgeEnd, testPoint);
901
+ edgeParam = uDotV / uDotU; // param of projection of testPoint onto edge [iEdgeStart, iEdgeEnd]
902
+ isValid = true;
903
+ }
904
+ }
905
+ return { isValid, edgeParam, uDotU, vDotV };
906
+ };
907
+ // find the previous nontrivial edge's projection status before processing the first edge
908
+ let projBeyondPrevEdge = false;
880
909
  let iPrev = numPoints - 1;
910
+ for (; iPrev > 0; --iPrev) {
911
+ const projData = projectToEdge(iPrev);
912
+ if (projData.isValid) {
913
+ projBeyondPrevEdge = projData.edgeParam > 1.0 + paramTol;
914
+ break;
915
+ }
916
+ }
917
+ if (iPrev <= 0) // all segments trivial, so treat like single point case
918
+ return constructSingletonPoint(0);
881
919
  let minDist2 = Geometry_1.Geometry.largeCoordinateResult;
882
920
  for (let iBase = 0; iBase < numPoints; ++iBase) {
883
921
  let iNext = iBase + 1;
884
922
  if (iNext === numPoints)
885
923
  iNext = 0;
886
- const uDotU = polygon.distanceSquaredIndexIndex(iBase, iNext);
887
- if (uDotU <= distTol2)
888
- continue; // ignore trivial polygon edge (keep iPrev)
889
- const vDotV = polygon.distanceSquaredIndexXYAndZ(iBase, testPoint);
890
- const uDotV = polygon.dotProductIndexIndexXYAndZ(iBase, iNext, testPoint);
891
- const edgeParam = uDotV / uDotU; // param of projection of testPoint onto this edge
892
- if (edgeParam <= 0.0) { // testPoint projects to/before edge start
893
- const distToStart2 = vDotV;
924
+ const projData = projectToEdge(iBase);
925
+ if (!projData.isValid)
926
+ continue; // ignore trivial polygon edge (keep iPrev, projBeyondPrevEdge)
927
+ if (projData.edgeParam <= paramTol) { // testPoint projects to/before edge start
928
+ const distToStart2 = projData.vDotV;
894
929
  if (distToStart2 <= distTol2) {
895
930
  // testPoint is at edge start; we are done
896
931
  polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
@@ -901,25 +936,25 @@ class PolygonOps {
901
936
  result.closestEdgeParam = 0.0;
902
937
  return result;
903
938
  }
904
- if (distToStart2 < minDist2) {
905
- if (polygon.dotProductIndexIndexXYAndZ(iBase, iPrev, testPoint) <= 0.0) {
906
- // update candidate (to edge start) only if testPoint projected beyond previous edge end
907
- polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
908
- result.a = Math.sqrt(distToStart2);
909
- polygon.crossProductIndexIndexIndex(iBase, iPrev, iNext, result.v);
910
- result.code = Geometry_1.PolygonLocation.OnPolygonVertex;
911
- result.closestEdgeIndex = iBase;
912
- result.closestEdgeParam = 0.0;
913
- minDist2 = distToStart2;
914
- }
939
+ if (distToStart2 < minDist2 && projBeyondPrevEdge) {
940
+ // update candidate (to edge start) only if testPoint projected beyond previous edge end
941
+ polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
942
+ result.a = Math.sqrt(distToStart2);
943
+ polygon.crossProductIndexIndexIndex(iBase, iPrev, iNext, result.v);
944
+ result.code = Geometry_1.PolygonLocation.OnPolygonVertex;
945
+ result.closestEdgeIndex = iBase;
946
+ result.closestEdgeParam = 0.0;
947
+ minDist2 = distToStart2;
915
948
  }
949
+ projBeyondPrevEdge = false;
916
950
  }
917
- else if (edgeParam <= 1.0) { // testPoint projects inside edge, or to edge end
918
- const projDist2 = vDotV - edgeParam * edgeParam * uDotU;
951
+ else if (projData.edgeParam <= 1.0 + paramTol) { // testPoint projects inside edge, or to edge end
952
+ projData.edgeParam = Geometry_1.Geometry.clamp(projData.edgeParam, 0.0, 1.0);
953
+ const projDist2 = projData.vDotV - projData.edgeParam * projData.edgeParam * projData.uDotU;
919
954
  if (projDist2 <= distTol2) {
920
955
  // testPoint is on edge; we are done
921
- const distToStart2 = vDotV;
922
- if (edgeParam <= 0.5 && distToStart2 <= distTol2) {
956
+ const distToStart2 = projData.vDotV;
957
+ if (projData.edgeParam <= 0.5 && distToStart2 <= distTol2) {
923
958
  // testPoint is at edge start
924
959
  polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
925
960
  result.a = Math.sqrt(distToStart2);
@@ -929,8 +964,8 @@ class PolygonOps {
929
964
  result.closestEdgeParam = 0.0;
930
965
  return result;
931
966
  }
932
- const distToEnd2 = projDist2 + (1.0 - edgeParam) * (1.0 - edgeParam) * uDotU;
933
- if (edgeParam > 0.5 && distToEnd2 <= distTol2) {
967
+ const distToEnd2 = projDist2 + (1.0 - projData.edgeParam) * (1.0 - projData.edgeParam) * projData.uDotU;
968
+ if (projData.edgeParam > 0.5 && distToEnd2 <= distTol2) {
934
969
  // testPoint is at edge end
935
970
  polygon.getPoint3dAtUncheckedPointIndex(iNext, result.point);
936
971
  result.a = Math.sqrt(distToEnd2);
@@ -941,27 +976,29 @@ class PolygonOps {
941
976
  return result;
942
977
  }
943
978
  // testPoint is on edge interior
944
- polygon.interpolateIndexIndex(iBase, edgeParam, iNext, result.point);
979
+ polygon.interpolateIndexIndex(iBase, projData.edgeParam, iNext, result.point);
945
980
  result.a = Math.sqrt(projDist2);
946
981
  result.v.setZero();
947
982
  result.code = Geometry_1.PolygonLocation.OnPolygonEdgeInterior;
948
983
  result.closestEdgeIndex = iBase;
949
- result.closestEdgeParam = edgeParam;
984
+ result.closestEdgeParam = projData.edgeParam;
950
985
  return result;
951
986
  }
952
987
  if (projDist2 < minDist2) {
953
- // update candidate (to edge interior)
954
- polygon.interpolateIndexIndex(iBase, edgeParam, iNext, result.point);
988
+ // update candidate
989
+ polygon.interpolateIndexIndex(iBase, projData.edgeParam, iNext, result.point);
955
990
  result.a = Math.sqrt(projDist2);
956
991
  polygon.crossProductIndexIndexXYAndZ(iBase, iNext, testPoint, result.v);
957
- result.code = Geometry_1.PolygonLocation.OnPolygonEdgeInterior;
992
+ result.code = projData.edgeParam < 1.0 ? Geometry_1.PolygonLocation.OnPolygonEdgeInterior : Geometry_1.PolygonLocation.OnPolygonVertex;
993
+ ;
958
994
  result.closestEdgeIndex = iBase;
959
- result.closestEdgeParam = edgeParam;
995
+ result.closestEdgeParam = projData.edgeParam;
960
996
  minDist2 = projDist2;
961
997
  }
998
+ projBeyondPrevEdge = false;
962
999
  }
963
- else { // edgeParam > 1.0
964
- // NOOP: testPoint projects beyond edge end, handled by next edge
1000
+ else {
1001
+ projBeyondPrevEdge = true; // to be handled by next edge
965
1002
  }
966
1003
  iPrev = iBase;
967
1004
  }
@@ -1005,7 +1042,10 @@ class PolygonOps {
1005
1042
  /** Compute the intersection of a line (parameterized as a ray) with the plane of this polygon.
1006
1043
  * @param polygon points of the polygon, closure point optional
1007
1044
  * @param ray infinite line to intersect, as a ray
1008
- * @param tolerance optional distance tolerance to determine point-vertex and point-edge coincidence.
1045
+ * @param tolerance optional tolerance(s) to determine point-vertex and point-edge coincidence. A single number
1046
+ * is interpreted as distance tolerance. If an array is given, the first number is interpreted as distance tolerance;
1047
+ * the second, as parametric tolerance. Default values are [[Geometry.smallMetricDistance]] for distance tolerance
1048
+ * and 0.0 for parameter tolerance.
1009
1049
  * @param result optional pre-allocated object to fill and return
1010
1050
  * @returns details d of the line-plane intersection `d.point`:
1011
1051
  * * `d.isValid()` returns true if and only if the line intersects the plane.
@@ -1032,11 +1072,18 @@ class PolygonOps {
1032
1072
  // NOOP: intersectionPoint is on the polygon, so result.code already classifies it
1033
1073
  }
1034
1074
  else {
1035
- // intersectionPoint is not on polygon, so result.code refers to the closest point. Update it to refer to intersectionPoint.
1036
- if (Geometry_1.PolygonLocation.OnPolygonVertex === result.code)
1037
- result.code = (dot > 0.0) ? Geometry_1.PolygonLocation.InsidePolygonProjectsToVertex : Geometry_1.PolygonLocation.OutsidePolygonProjectsToVertex;
1038
- else if (Geometry_1.PolygonLocation.OnPolygonEdgeInterior === result.code)
1039
- result.code = (dot > 0.0) ? Geometry_1.PolygonLocation.InsidePolygonProjectsToEdgeInterior : Geometry_1.PolygonLocation.OutsidePolygonProjectsToEdgeInterior;
1075
+ // intersectionPoint is not on the polygon, so result.code refers to the closest point;
1076
+ // update it to refer to intersectionPoint.
1077
+ if (Geometry_1.PolygonLocation.OnPolygonVertex === result.code) {
1078
+ result.code = (dot > 0.0)
1079
+ ? Geometry_1.PolygonLocation.InsidePolygonProjectsToVertex
1080
+ : Geometry_1.PolygonLocation.OutsidePolygonProjectsToVertex;
1081
+ }
1082
+ else if (Geometry_1.PolygonLocation.OnPolygonEdgeInterior === result.code) {
1083
+ result.code = (dot > 0.0)
1084
+ ? Geometry_1.PolygonLocation.InsidePolygonProjectsToEdgeInterior
1085
+ : Geometry_1.PolygonLocation.OutsidePolygonProjectsToEdgeInterior;
1086
+ }
1040
1087
  }
1041
1088
  }
1042
1089
  return result;