@itwin/core-geometry 4.4.0-dev.9 → 4.5.0-dev.2

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 (655) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +17 -0
  4. package/lib/cjs/Geometry.d.ts.map +1 -1
  5. package/lib/cjs/Geometry.js +14 -0
  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.d.ts +3 -2
  31. package/lib/cjs/core-geometry.d.ts.map +1 -1
  32. package/lib/cjs/core-geometry.js +3 -2
  33. package/lib/cjs/core-geometry.js.map +1 -1
  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 +2 -2
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +3 -3
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  40. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  41. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  42. package/lib/cjs/curve/CurveExtendMode.d.ts +7 -6
  43. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  44. package/lib/cjs/curve/CurveExtendMode.js +7 -6
  45. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  46. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  47. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  48. package/lib/cjs/curve/CurveLocationDetail.js +23 -18
  49. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  50. package/lib/cjs/curve/CurveOps.js.map +1 -1
  51. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  52. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  53. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  54. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  55. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  56. package/lib/cjs/curve/LineSegment3d.d.ts +14 -4
  57. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  58. package/lib/cjs/curve/LineSegment3d.js +107 -2
  59. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  60. package/lib/cjs/curve/LineString3d.d.ts +41 -8
  61. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  62. package/lib/cjs/curve/LineString3d.js +53 -15
  63. package/lib/cjs/curve/LineString3d.js.map +1 -1
  64. package/lib/cjs/curve/Loop.js +1 -1
  65. package/lib/cjs/curve/Loop.js.map +1 -1
  66. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  67. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  68. package/lib/cjs/curve/Path.js.map +1 -1
  69. package/lib/cjs/curve/PointString3d.js.map +1 -1
  70. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  71. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  72. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  73. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  74. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  75. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +2 -2
  76. package/lib/cjs/curve/Query/PlanarSubdivision.js +2 -2
  77. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  78. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  79. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  80. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  81. package/lib/cjs/curve/RegionOps.d.ts +1 -2
  82. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  83. package/lib/cjs/curve/RegionOps.js.map +1 -1
  84. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +5 -8
  85. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  86. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +12 -12
  87. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  88. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  89. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  90. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  91. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  92. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  93. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  94. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  95. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  96. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  98. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  99. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  100. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  104. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  105. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  106. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  107. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  108. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  109. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  110. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  111. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  112. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  113. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  114. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  115. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  116. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  117. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  118. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  119. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  120. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  121. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  122. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  123. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  124. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  125. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  126. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  127. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  128. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  129. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  130. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  131. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  132. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +2 -2
  133. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  134. package/lib/cjs/geometry3d/GrowableXYArray.js +1 -1
  135. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  136. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +2 -3
  137. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  138. package/lib/cjs/geometry3d/GrowableXYZArray.js +1 -1
  139. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  140. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  141. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  142. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +18 -1
  143. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  144. package/lib/cjs/geometry3d/IndexedXYZCollection.js +13 -0
  145. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  146. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  147. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  148. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  149. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  150. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  151. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  152. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  153. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  154. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  155. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  156. package/lib/cjs/geometry3d/PointHelpers.d.ts +1 -2
  157. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  158. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  159. package/lib/cjs/geometry3d/PointStreaming.d.ts +1 -1
  160. package/lib/cjs/geometry3d/PointStreaming.d.ts.map +1 -1
  161. package/lib/cjs/geometry3d/PointStreaming.js +3 -1
  162. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  163. package/lib/cjs/geometry3d/PolygonOps.d.ts +68 -1
  164. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  165. package/lib/cjs/geometry3d/PolygonOps.js +152 -4
  166. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  167. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  168. package/lib/cjs/geometry3d/PolylineOps.d.ts +23 -1
  169. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  170. package/lib/cjs/geometry3d/PolylineOps.js +73 -1
  171. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  172. package/lib/cjs/geometry3d/Range.d.ts +1 -1
  173. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  174. package/lib/cjs/geometry3d/Range.js.map +1 -1
  175. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  176. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  177. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  178. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  179. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  180. package/lib/cjs/geometry3d/Transform.js +1 -1
  181. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  182. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  183. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  184. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts +7 -5
  185. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  186. package/lib/cjs/geometry3d/YawPitchRollAngles.js +8 -6
  187. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  188. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  189. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  190. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  191. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  192. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  193. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  194. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  195. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  196. package/lib/cjs/numerics/Complex.js.map +1 -1
  197. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  198. package/lib/cjs/numerics/Newton.js.map +1 -1
  199. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  200. package/lib/cjs/numerics/PolarData.js.map +1 -1
  201. package/lib/cjs/numerics/Polynomials.d.ts +13 -1
  202. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  203. package/lib/cjs/numerics/Polynomials.js +13 -1
  204. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  205. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  206. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  207. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  208. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  209. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  210. package/lib/cjs/polyface/AuxData.js.map +1 -1
  211. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  212. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  213. package/lib/cjs/polyface/FacetLocationDetail.d.ts +28 -5
  214. package/lib/cjs/polyface/FacetLocationDetail.d.ts.map +1 -1
  215. package/lib/cjs/polyface/FacetLocationDetail.js +50 -15
  216. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  217. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  218. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  219. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  220. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  221. package/lib/cjs/polyface/Polyface.d.ts +1 -1
  222. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  223. package/lib/cjs/polyface/Polyface.js.map +1 -1
  224. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  225. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  226. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  227. package/lib/cjs/polyface/PolyfaceQuery.d.ts +7 -3
  228. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  229. package/lib/cjs/polyface/PolyfaceQuery.js +23 -0
  230. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  231. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  232. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.d.ts +52 -0
  233. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.d.ts.map +1 -0
  234. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +78 -0
  235. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -0
  236. package/lib/cjs/polyface/RangeTree/MinimumValueTester.d.ts +60 -0
  237. package/lib/cjs/polyface/RangeTree/MinimumValueTester.d.ts.map +1 -0
  238. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +96 -0
  239. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -0
  240. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts +57 -0
  241. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts.map +1 -0
  242. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +73 -0
  243. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -0
  244. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts +57 -0
  245. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts.map +1 -0
  246. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +84 -0
  247. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -0
  248. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts +274 -0
  249. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -0
  250. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +505 -0
  251. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -0
  252. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.d.ts +204 -0
  253. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.d.ts.map +1 -0
  254. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +383 -0
  255. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -0
  256. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  257. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  258. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  259. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  260. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  261. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  262. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  263. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  264. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  265. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  266. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  267. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  268. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  269. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  270. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  271. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  272. package/lib/cjs/serialization/GeometrySamples.d.ts +36 -3
  273. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  274. package/lib/cjs/serialization/GeometrySamples.js +93 -4
  275. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  276. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  277. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  278. package/lib/cjs/solid/Box.js.map +1 -1
  279. package/lib/cjs/solid/Cone.js.map +1 -1
  280. package/lib/cjs/solid/LinearSweep.d.ts +1 -1
  281. package/lib/cjs/solid/LinearSweep.js +1 -1
  282. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  283. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  284. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  285. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  286. package/lib/cjs/solid/Sphere.js.map +1 -1
  287. package/lib/cjs/solid/SweepContour.d.ts +2 -2
  288. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  289. package/lib/cjs/solid/SweepContour.js.map +1 -1
  290. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  291. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  292. package/lib/cjs/topology/Graph.d.ts +5 -6
  293. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  294. package/lib/cjs/topology/Graph.js +7 -6
  295. package/lib/cjs/topology/Graph.js.map +1 -1
  296. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +4 -4
  297. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -5
  298. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  299. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +108 -71
  300. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  301. package/lib/cjs/topology/HalfEdgeGraphSearch.js +223 -109
  302. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  303. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  304. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  305. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  306. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  307. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  308. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  309. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  310. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  311. package/lib/cjs/topology/MaskManager.js.map +1 -1
  312. package/lib/cjs/topology/Merging.d.ts +1 -1
  313. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  314. package/lib/cjs/topology/Merging.js.map +1 -1
  315. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  316. package/lib/cjs/topology/SignedDataSummary.d.ts +13 -13
  317. package/lib/cjs/topology/SignedDataSummary.d.ts.map +1 -1
  318. package/lib/cjs/topology/SignedDataSummary.js +3 -3
  319. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  320. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  321. package/lib/cjs/topology/Triangulation.d.ts +1 -12
  322. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  323. package/lib/cjs/topology/Triangulation.js.map +1 -1
  324. package/lib/cjs/topology/XYParitySearchContext.d.ts +27 -21
  325. package/lib/cjs/topology/XYParitySearchContext.d.ts.map +1 -1
  326. package/lib/cjs/topology/XYParitySearchContext.js +73 -71
  327. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  328. package/lib/esm/Constant.js.map +1 -1
  329. package/lib/esm/Geometry.d.ts +17 -0
  330. package/lib/esm/Geometry.d.ts.map +1 -1
  331. package/lib/esm/Geometry.js +14 -0
  332. package/lib/esm/Geometry.js.map +1 -1
  333. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  334. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  335. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  336. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  337. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  338. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  339. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  340. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  341. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  342. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  343. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  344. package/lib/esm/bspline/KnotVector.js.map +1 -1
  345. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  346. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  347. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  348. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  349. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  350. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  351. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  352. package/lib/esm/clipping/ClipVector.js.map +1 -1
  353. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  354. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  355. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  356. package/lib/esm/core-geometry.d.ts +3 -2
  357. package/lib/esm/core-geometry.d.ts.map +1 -1
  358. package/lib/esm/core-geometry.js +3 -2
  359. package/lib/esm/core-geometry.js.map +1 -1
  360. package/lib/esm/curve/Arc3d.js.map +1 -1
  361. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  362. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  363. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +2 -2
  364. package/lib/esm/curve/CurveChainWithDistanceIndex.js +3 -3
  365. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  366. package/lib/esm/curve/CurveCollection.js.map +1 -1
  367. package/lib/esm/curve/CurveCurve.js.map +1 -1
  368. package/lib/esm/curve/CurveExtendMode.d.ts +7 -6
  369. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  370. package/lib/esm/curve/CurveExtendMode.js +7 -6
  371. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  372. package/lib/esm/curve/CurveFactory.js.map +1 -1
  373. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  374. package/lib/esm/curve/CurveLocationDetail.js +23 -18
  375. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  376. package/lib/esm/curve/CurveOps.js.map +1 -1
  377. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  378. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  379. package/lib/esm/curve/CurveTypes.js.map +1 -1
  380. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  381. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  382. package/lib/esm/curve/LineSegment3d.d.ts +14 -4
  383. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  384. package/lib/esm/curve/LineSegment3d.js +108 -3
  385. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  386. package/lib/esm/curve/LineString3d.d.ts +41 -8
  387. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  388. package/lib/esm/curve/LineString3d.js +53 -15
  389. package/lib/esm/curve/LineString3d.js.map +1 -1
  390. package/lib/esm/curve/Loop.js +1 -1
  391. package/lib/esm/curve/Loop.js.map +1 -1
  392. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  393. package/lib/esm/curve/ParityRegion.js.map +1 -1
  394. package/lib/esm/curve/Path.js.map +1 -1
  395. package/lib/esm/curve/PointString3d.js.map +1 -1
  396. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  397. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  398. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  399. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  400. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  401. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +2 -2
  402. package/lib/esm/curve/Query/PlanarSubdivision.js +2 -2
  403. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  404. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  405. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  406. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  407. package/lib/esm/curve/RegionOps.d.ts +1 -2
  408. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  409. package/lib/esm/curve/RegionOps.js +1 -1
  410. package/lib/esm/curve/RegionOps.js.map +1 -1
  411. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +5 -8
  412. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  413. package/lib/esm/curve/RegionOpsClassificationSweeps.js +12 -12
  414. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  415. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  416. package/lib/esm/curve/UnionRegion.js.map +1 -1
  417. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  418. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  419. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  420. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  421. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  422. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  423. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  424. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  425. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  426. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  427. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  428. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  429. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  430. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  431. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  432. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  433. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  434. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  435. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  436. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  437. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  438. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  439. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  440. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  441. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  442. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  443. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  444. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  445. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  446. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  447. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  448. package/lib/esm/geometry3d/Angle.js.map +1 -1
  449. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  450. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  451. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  452. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  453. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  454. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  455. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  456. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  457. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  458. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  459. package/lib/esm/geometry3d/GrowableXYArray.d.ts +2 -2
  460. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  461. package/lib/esm/geometry3d/GrowableXYArray.js +1 -1
  462. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  463. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +2 -3
  464. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  465. package/lib/esm/geometry3d/GrowableXYZArray.js +1 -1
  466. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  467. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  468. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  469. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +18 -1
  470. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  471. package/lib/esm/geometry3d/IndexedXYZCollection.js +13 -0
  472. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  473. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  474. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  475. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  476. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  477. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  478. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  479. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  480. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  481. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  482. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  483. package/lib/esm/geometry3d/PointHelpers.d.ts +1 -2
  484. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  485. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  486. package/lib/esm/geometry3d/PointStreaming.d.ts +1 -1
  487. package/lib/esm/geometry3d/PointStreaming.d.ts.map +1 -1
  488. package/lib/esm/geometry3d/PointStreaming.js +3 -1
  489. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  490. package/lib/esm/geometry3d/PolygonOps.d.ts +68 -1
  491. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  492. package/lib/esm/geometry3d/PolygonOps.js +150 -3
  493. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  494. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  495. package/lib/esm/geometry3d/PolylineOps.d.ts +23 -1
  496. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  497. package/lib/esm/geometry3d/PolylineOps.js +73 -1
  498. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  499. package/lib/esm/geometry3d/Range.d.ts +1 -1
  500. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  501. package/lib/esm/geometry3d/Range.js.map +1 -1
  502. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  503. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  504. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  505. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  506. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  507. package/lib/esm/geometry3d/Transform.js +1 -1
  508. package/lib/esm/geometry3d/Transform.js.map +1 -1
  509. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  510. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  511. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts +7 -5
  512. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  513. package/lib/esm/geometry3d/YawPitchRollAngles.js +8 -6
  514. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  515. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  516. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  517. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  518. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  519. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  520. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  521. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  522. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  523. package/lib/esm/numerics/Complex.js.map +1 -1
  524. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  525. package/lib/esm/numerics/Newton.js.map +1 -1
  526. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  527. package/lib/esm/numerics/PolarData.js.map +1 -1
  528. package/lib/esm/numerics/Polynomials.d.ts +13 -1
  529. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  530. package/lib/esm/numerics/Polynomials.js +13 -1
  531. package/lib/esm/numerics/Polynomials.js.map +1 -1
  532. package/lib/esm/numerics/Quadrature.js.map +1 -1
  533. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  534. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  535. package/lib/esm/numerics/UnionFind.js.map +1 -1
  536. package/lib/esm/numerics/UsageSums.js.map +1 -1
  537. package/lib/esm/polyface/AuxData.js.map +1 -1
  538. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  539. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  540. package/lib/esm/polyface/FacetLocationDetail.d.ts +28 -5
  541. package/lib/esm/polyface/FacetLocationDetail.d.ts.map +1 -1
  542. package/lib/esm/polyface/FacetLocationDetail.js +48 -14
  543. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  544. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  545. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  546. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  547. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  548. package/lib/esm/polyface/Polyface.d.ts +1 -1
  549. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  550. package/lib/esm/polyface/Polyface.js.map +1 -1
  551. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  552. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  553. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  554. package/lib/esm/polyface/PolyfaceQuery.d.ts +7 -3
  555. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  556. package/lib/esm/polyface/PolyfaceQuery.js +23 -0
  557. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  558. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  559. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.d.ts +52 -0
  560. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.d.ts.map +1 -0
  561. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +74 -0
  562. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -0
  563. package/lib/esm/polyface/RangeTree/MinimumValueTester.d.ts +60 -0
  564. package/lib/esm/polyface/RangeTree/MinimumValueTester.d.ts.map +1 -0
  565. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +92 -0
  566. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -0
  567. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts +57 -0
  568. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts.map +1 -0
  569. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +69 -0
  570. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -0
  571. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts +57 -0
  572. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts.map +1 -0
  573. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +80 -0
  574. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -0
  575. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts +274 -0
  576. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -0
  577. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +497 -0
  578. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -0
  579. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.d.ts +204 -0
  580. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.d.ts.map +1 -0
  581. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +374 -0
  582. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -0
  583. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  584. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  585. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  586. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  587. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  588. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  589. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  590. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  591. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  592. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  593. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  594. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  595. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  596. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  597. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  598. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  599. package/lib/esm/serialization/GeometrySamples.d.ts +36 -3
  600. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  601. package/lib/esm/serialization/GeometrySamples.js +93 -4
  602. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  603. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  604. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  605. package/lib/esm/solid/Box.js.map +1 -1
  606. package/lib/esm/solid/Cone.js.map +1 -1
  607. package/lib/esm/solid/LinearSweep.d.ts +1 -1
  608. package/lib/esm/solid/LinearSweep.js +1 -1
  609. package/lib/esm/solid/LinearSweep.js.map +1 -1
  610. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  611. package/lib/esm/solid/RuledSweep.js.map +1 -1
  612. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  613. package/lib/esm/solid/Sphere.js.map +1 -1
  614. package/lib/esm/solid/SweepContour.d.ts +2 -2
  615. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  616. package/lib/esm/solid/SweepContour.js.map +1 -1
  617. package/lib/esm/solid/TorusPipe.js.map +1 -1
  618. package/lib/esm/topology/ChainMerge.js.map +1 -1
  619. package/lib/esm/topology/Graph.d.ts +5 -6
  620. package/lib/esm/topology/Graph.d.ts.map +1 -1
  621. package/lib/esm/topology/Graph.js +7 -6
  622. package/lib/esm/topology/Graph.js.map +1 -1
  623. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +4 -4
  624. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -5
  625. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  626. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +108 -71
  627. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  628. package/lib/esm/topology/HalfEdgeGraphSearch.js +223 -109
  629. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  630. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  631. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  632. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  633. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  634. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  635. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  636. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  637. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  638. package/lib/esm/topology/MaskManager.js.map +1 -1
  639. package/lib/esm/topology/Merging.d.ts +1 -1
  640. package/lib/esm/topology/Merging.d.ts.map +1 -1
  641. package/lib/esm/topology/Merging.js.map +1 -1
  642. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  643. package/lib/esm/topology/SignedDataSummary.d.ts +13 -13
  644. package/lib/esm/topology/SignedDataSummary.d.ts.map +1 -1
  645. package/lib/esm/topology/SignedDataSummary.js +3 -3
  646. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  647. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  648. package/lib/esm/topology/Triangulation.d.ts +1 -12
  649. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  650. package/lib/esm/topology/Triangulation.js.map +1 -1
  651. package/lib/esm/topology/XYParitySearchContext.d.ts +27 -21
  652. package/lib/esm/topology/XYParitySearchContext.d.ts.map +1 -1
  653. package/lib/esm/topology/XYParitySearchContext.js +73 -71
  654. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  655. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"RangeLengthData.js","sourceRoot":"","sources":["../../../src/polyface/RangeLengthData.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,eAAe;IAO1B;QACE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IACpE,+BAA+B,CAAC,MAAwB;QAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;CACF","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { UsageSums } from \"../numerics/UsageSums\";\r\n\r\n/**\r\n * Accumulated data for x,y,z length statistics in ranges.\r\n * * Usage pattern:\r\n * * create a enw RangeLengthData:\r\n * * `myData = new RangeLengthData ();`\r\n * * announce ranges to be accumulated:\r\n * * (many times) `myData.accumulateRowableXYZArrayRange (points);\r\n * * access data in public members:\r\n * * `myData.range` -- the composite range.\r\n * * `myData.xLength`, `myData.yLength`, `myData.zLength` -- mean, minMax, count, and standardDeviation of range lengths in x,y,z directions.\r\n * @public\r\n */\r\nexport class RangeLengthData {\r\n /** Overall range of all data observed by `accumulate` methods. */\r\n public range: Range3d;\r\n /** */\r\n public xSums: UsageSums;\r\n public ySums: UsageSums;\r\n public zSums: UsageSums;\r\n public constructor() {\r\n this.range = Range3d.createNull();\r\n this.xSums = new UsageSums();\r\n this.ySums = new UsageSums();\r\n this.zSums = new UsageSums();\r\n this._workRange = Range3d.createNull();\r\n }\r\n private _workRange: Range3d;\r\n /** Extend the range and length sums by the range of points in an array. */\r\n public accumulateGrowableXYZArrayRange(points: GrowableXYZArray) {\r\n points.setRange(this._workRange);\r\n this.range.extendRange(this._workRange);\r\n this.xSums.accumulate(this._workRange.xLength());\r\n this.ySums.accumulate(this._workRange.yLength());\r\n this.zSums.accumulate(this._workRange.zLength());\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RangeLengthData.js","sourceRoot":"","sources":["../../../src/polyface/RangeLengthData.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,eAAe;IAO1B;QACE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IACpE,+BAA+B,CAAC,MAAwB;QAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;CACF","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/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\nimport { Range3d } from \"../geometry3d/Range\";\nimport { UsageSums } from \"../numerics/UsageSums\";\n\n/**\n * Accumulated data for x,y,z length statistics in ranges.\n * * Usage pattern:\n * * create a enw RangeLengthData:\n * * `myData = new RangeLengthData ();`\n * * announce ranges to be accumulated:\n * * (many times) `myData.accumulateRowableXYZArrayRange (points);\n * * access data in public members:\n * * `myData.range` -- the composite range.\n * * `myData.xLength`, `myData.yLength`, `myData.zLength` -- mean, minMax, count, and standardDeviation of range lengths in x,y,z directions.\n * @public\n */\nexport class RangeLengthData {\n /** Overall range of all data observed by `accumulate` methods. */\n public range: Range3d;\n /** */\n public xSums: UsageSums;\n public ySums: UsageSums;\n public zSums: UsageSums;\n public constructor() {\n this.range = Range3d.createNull();\n this.xSums = new UsageSums();\n this.ySums = new UsageSums();\n this.zSums = new UsageSums();\n this._workRange = Range3d.createNull();\n }\n private _workRange: Range3d;\n /** Extend the range and length sums by the range of points in an array. */\n public accumulateGrowableXYZArrayRange(points: GrowableXYZArray) {\n points.setRange(this._workRange);\n this.range.extendRange(this._workRange);\n this.xSums.accumulate(this._workRange.xLength());\n this.ySums.accumulate(this._workRange.yLength());\n this.zSums.accumulate(this._workRange.zLength());\n }\n}\n"]}
@@ -0,0 +1,52 @@
1
+ /** @packageDocumentation
2
+ * @module RangeSearch
3
+ */
4
+ import { CurveLocationDetail, CurveLocationDetailPair } from "../../curve/CurveLocationDetail";
5
+ import { LineString3d } from "../../curve/LineString3d";
6
+ import { Point3d } from "../../geometry3d/Point3dVector3d";
7
+ /**
8
+ * Handler class for searching a range tree containing the segments of a linestring.
9
+ * * Facilitates multiple searches for closest point and close approach calculations.
10
+ * @public
11
+ */
12
+ export declare class LineString3dRangeTreeContext {
13
+ /** Polyline points being searched, indexed by the range tree */
14
+ lineString: LineString3d;
15
+ /** Diagnostic: number of range tests that have returned true */
16
+ numRangeTestTrue: number;
17
+ /** Diagnostic: number of range tests that have returned false */
18
+ numRangeTestFalse: number;
19
+ /** Diagnostic: number of points tested */
20
+ numPointTest: number;
21
+ /** Diagnostic: number of searches. */
22
+ numSearch: number;
23
+ /** Range tree, whose appData are indices into the linestring points array */
24
+ private _rangeTreeRoot;
25
+ /** Constructor: capture inputs, initialize debug counters */
26
+ private constructor();
27
+ /**
28
+ * Create a range tree context for the polyline points:
29
+ * * initialize with segment ranges
30
+ * * appData are segment indices
31
+ * @param linestring captured if LineString3d, otherwise copied
32
+ * @param maxChildPerNode maximum children per range tree node (default 4)
33
+ * @param maxAppDataPerLeaf maximum segment indices per leaf node (default 4)
34
+ */
35
+ static createCapture(points: Point3d[] | LineString3d, maxChildPerNode?: number, maxAppDataPerLeaf?: number): LineString3dRangeTreeContext | undefined;
36
+ /**
37
+ * Search the range tree for closest point(s) to spacePoint.
38
+ * @param spacePoint point to test
39
+ * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.
40
+ * @return closest point detail(s) with detail.a set to the distance from spacePoint to detail.point
41
+ */
42
+ searchForClosestPoint(spacePoint: Point3d, maxDist?: number): CurveLocationDetail | CurveLocationDetail[] | undefined;
43
+ /**
44
+ * Search the range trees for closest approach(es) between the polylines.
45
+ * @param contextA first polyline context
46
+ * @param contextB second polyline context
47
+ * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.
48
+ * @return closest approach detail pair(s), one per context, with detail.a set to the approach distance
49
+ */
50
+ static searchForClosestApproach(contextA: LineString3dRangeTreeContext, contextB: LineString3dRangeTreeContext, maxDist?: number): CurveLocationDetailPair | CurveLocationDetailPair[] | undefined;
51
+ }
52
+ //# sourceMappingURL=LineString3dRangeTreeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineString3dRangeTreeContext.d.ts","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/LineString3dRangeTreeContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAO3D;;;;GAIG;AACH,qBAAa,4BAA4B;IACvC,gEAAgE;IACzD,UAAU,EAAE,YAAY,CAAC;IAEhC,gEAAgE;IACzD,gBAAgB,EAAE,MAAM,CAAC;IAChC,iEAAiE;IAC1D,iBAAiB,EAAE,MAAM,CAAC;IACjC,0CAA0C;IACnC,YAAY,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAEzB,6EAA6E;IAC7E,OAAO,CAAC,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,OAAO;IAQP;;;;;;;OAOG;WACW,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,eAAe,GAAE,MAAU,EAAE,iBAAiB,GAAE,MAAU,GAAG,4BAA4B,GAAG,SAAS;IAWnK;;;;;OAKG;IACI,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS;IAa5H;;;;;;MAME;WACY,wBAAwB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,SAAS;CAK1M"}
@@ -0,0 +1,74 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module RangeSearch
7
+ */
8
+ import { LineString3d } from "../../curve/LineString3d";
9
+ import { Geometry } from "../../Geometry";
10
+ import { Range3d } from "../../geometry3d/Range";
11
+ import { RangeTreeNode, RangeTreeOps } from "./RangeTreeNode";
12
+ import { SingleTreeSearchHandlerForClosestPointOnLineString3d, TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach, } from "./RangeTreeSearchHandlers";
13
+ /**
14
+ * Handler class for searching a range tree containing the segments of a linestring.
15
+ * * Facilitates multiple searches for closest point and close approach calculations.
16
+ * @public
17
+ */
18
+ export class LineString3dRangeTreeContext {
19
+ /** Constructor: capture inputs, initialize debug counters */
20
+ constructor(rangeTreeRoot, points) {
21
+ this.lineString = points;
22
+ this._rangeTreeRoot = rangeTreeRoot;
23
+ this.numRangeTestTrue = 0;
24
+ this.numRangeTestFalse = 0;
25
+ this.numPointTest = 0;
26
+ this.numSearch = 0;
27
+ }
28
+ /**
29
+ * Create a range tree context for the polyline points:
30
+ * * initialize with segment ranges
31
+ * * appData are segment indices
32
+ * @param linestring captured if LineString3d, otherwise copied
33
+ * @param maxChildPerNode maximum children per range tree node (default 4)
34
+ * @param maxAppDataPerLeaf maximum segment indices per leaf node (default 4)
35
+ */
36
+ static createCapture(points, maxChildPerNode = 4, maxAppDataPerLeaf = 4) {
37
+ const linestring = points instanceof LineString3d ? points : LineString3d.createPoints(points);
38
+ const rangeTreeRoot = RangeTreeOps.createByIndexSplits(((index) => { return Range3d.create(linestring.pointAt(index), linestring.pointAt(index + 1)); }), ((index) => { return index; }), linestring.numPoints() - 1, // number of segments
39
+ maxChildPerNode, maxAppDataPerLeaf);
40
+ return rangeTreeRoot ? new LineString3dRangeTreeContext(rangeTreeRoot, linestring) : undefined;
41
+ }
42
+ /**
43
+ * Search the range tree for closest point(s) to spacePoint.
44
+ * @param spacePoint point to test
45
+ * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.
46
+ * @return closest point detail(s) with detail.a set to the distance from spacePoint to detail.point
47
+ */
48
+ searchForClosestPoint(spacePoint, maxDist) {
49
+ const handler = new SingleTreeSearchHandlerForClosestPointOnLineString3d(spacePoint, this, maxDist);
50
+ this.numSearch++;
51
+ // seed the search with a few segments -- this reduces early trips deep into ranges that are far from spacePoint.
52
+ const numTest = Geometry.clamp(Math.floor(this.lineString.numPoints() / 20), 2, 7);
53
+ const testStep = Math.floor(this.lineString.numPoints() / numTest);
54
+ handler.processAppData(0);
55
+ handler.processAppData(this.lineString.numPoints() - 2);
56
+ for (let i = testStep; i + 1 < this.lineString.numPoints(); i += testStep)
57
+ handler.processAppData(i);
58
+ this._rangeTreeRoot.searchTopDown(handler);
59
+ return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();
60
+ }
61
+ /**
62
+ * Search the range trees for closest approach(es) between the polylines.
63
+ * @param contextA first polyline context
64
+ * @param contextB second polyline context
65
+ * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.
66
+ * @return closest approach detail pair(s), one per context, with detail.a set to the approach distance
67
+ */
68
+ static searchForClosestApproach(contextA, contextB, maxDist) {
69
+ const handler = new TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach(contextA, contextB, maxDist);
70
+ RangeTreeNode.searchTwoTreesTopDown(contextA._rangeTreeRoot, contextB._rangeTreeRoot, handler);
71
+ return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();
72
+ }
73
+ }
74
+ //# sourceMappingURL=LineString3dRangeTreeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineString3dRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/LineString3dRangeTreeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,oDAAoD,EAAE,4DAA4D,GACnH,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IAgBvC,6DAA6D;IAC7D,YAAoB,aAAoC,EAAE,MAAoB;QAC5E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,aAAa,CAAC,MAAgC,EAAE,kBAA0B,CAAC,EAAE,oBAA4B,CAAC;QACtH,MAAM,UAAU,GAAG,MAAM,YAAY,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CACpD,CAAC,CAAC,KAAa,EAAW,EAAE,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAE,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EACpH,CAAC,CAAC,KAAa,EAAU,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,EAAI,qBAAqB;QACnD,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,4BAA4B,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,CAAC;IACD;;;;;OAKG;IACI,qBAAqB,CAAC,UAAmB,EAAE,OAAgB;QAChE,MAAM,OAAO,GAAG,IAAI,oDAAoD,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,iHAAiH;QACjH,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,QAAQ;YACvE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;IACD;;;;;;MAME;IACK,MAAM,CAAC,wBAAwB,CAAC,QAAsC,EAAE,QAAsC,EAAE,OAAgB;QACrI,MAAM,OAAO,GAAG,IAAI,4DAA4D,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9G,aAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;CACF","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/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"../../curve/CurveLocationDetail\";\nimport { LineString3d } from \"../../curve/LineString3d\";\nimport { Geometry } from \"../../Geometry\";\nimport { Point3d } from \"../../geometry3d/Point3dVector3d\";\nimport { Range3d } from \"../../geometry3d/Range\";\nimport { RangeTreeNode, RangeTreeOps } from \"./RangeTreeNode\";\nimport {\n SingleTreeSearchHandlerForClosestPointOnLineString3d, TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach,\n} from \"./RangeTreeSearchHandlers\";\n\n/**\n * Handler class for searching a range tree containing the segments of a linestring.\n * * Facilitates multiple searches for closest point and close approach calculations.\n * @public\n */\nexport class LineString3dRangeTreeContext {\n /** Polyline points being searched, indexed by the range tree */\n public lineString: LineString3d;\n\n /** Diagnostic: number of range tests that have returned true */\n public numRangeTestTrue: number;\n /** Diagnostic: number of range tests that have returned false */\n public numRangeTestFalse: number;\n /** Diagnostic: number of points tested */\n public numPointTest: number;\n /** Diagnostic: number of searches. */\n public numSearch: number;\n\n /** Range tree, whose appData are indices into the linestring points array */\n private _rangeTreeRoot: RangeTreeNode<number>;\n\n /** Constructor: capture inputs, initialize debug counters */\n private constructor(rangeTreeRoot: RangeTreeNode<number>, points: LineString3d) {\n this.lineString = points;\n this._rangeTreeRoot = rangeTreeRoot;\n this.numRangeTestTrue = 0;\n this.numRangeTestFalse = 0;\n this.numPointTest = 0;\n this.numSearch = 0;\n }\n /**\n * Create a range tree context for the polyline points:\n * * initialize with segment ranges\n * * appData are segment indices\n * @param linestring captured if LineString3d, otherwise copied\n * @param maxChildPerNode maximum children per range tree node (default 4)\n * @param maxAppDataPerLeaf maximum segment indices per leaf node (default 4)\n */\n public static createCapture(points: Point3d[] | LineString3d, maxChildPerNode: number = 4, maxAppDataPerLeaf: number = 4): LineString3dRangeTreeContext | undefined {\n const linestring = points instanceof LineString3d ? points : LineString3d.createPoints(points);\n const rangeTreeRoot = RangeTreeOps.createByIndexSplits<number>(\n ((index: number): Range3d => { return Range3d.create(linestring.pointAt(index)!, linestring.pointAt(index + 1)!); }),\n ((index: number): number => { return index; }),\n linestring.numPoints() - 1, // number of segments\n maxChildPerNode,\n maxAppDataPerLeaf,\n );\n return rangeTreeRoot ? new LineString3dRangeTreeContext(rangeTreeRoot, linestring) : undefined;\n }\n /**\n * Search the range tree for closest point(s) to spacePoint.\n * @param spacePoint point to test\n * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.\n * @return closest point detail(s) with detail.a set to the distance from spacePoint to detail.point\n */\n public searchForClosestPoint(spacePoint: Point3d, maxDist?: number): CurveLocationDetail | CurveLocationDetail[] | undefined {\n const handler = new SingleTreeSearchHandlerForClosestPointOnLineString3d(spacePoint, this, maxDist);\n this.numSearch++;\n // seed the search with a few segments -- this reduces early trips deep into ranges that are far from spacePoint.\n const numTest = Geometry.clamp(Math.floor(this.lineString.numPoints() / 20), 2, 7);\n const testStep = Math.floor(this.lineString.numPoints() / numTest);\n handler.processAppData(0);\n handler.processAppData(this.lineString.numPoints() - 2);\n for (let i = testStep; i + 1 < this.lineString.numPoints(); i += testStep)\n handler.processAppData(i);\n this._rangeTreeRoot.searchTopDown(handler);\n return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();\n }\n /**\n * Search the range trees for closest approach(es) between the polylines.\n * @param contextA first polyline context\n * @param contextB second polyline context\n * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.\n * @return closest approach detail pair(s), one per context, with detail.a set to the approach distance\n */\n public static searchForClosestApproach(contextA: LineString3dRangeTreeContext, contextB: LineString3dRangeTreeContext, maxDist?: number): CurveLocationDetailPair | CurveLocationDetailPair[] | undefined {\n const handler = new TwoTreeSearchHandlerForLineString3dLineString3dCloseApproach(contextA, contextB, maxDist);\n RangeTreeNode.searchTwoTreesTopDown(contextA._rangeTreeRoot, contextB._rangeTreeRoot, handler);\n return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();\n }\n}\n"]}
@@ -0,0 +1,60 @@
1
+ /** @packageDocumentation
2
+ * @module CartesianGeometry
3
+ */
4
+ /**
5
+ * Data carrier for use when repeatedly testing items (of parameterized type T) to determine the one with a minimum associated value.
6
+ * * Optionally pushes to arrays of items and values when the value does not exceed a given trigger.
7
+ * * * The item at minimum value is still recorded, even if the minimum value exceeds the trigger value.
8
+ * * When comparing a potential minimum value to an undefined value, the number is always accepted as the new minimum.
9
+ * @internal
10
+ */
11
+ export declare class MinimumValueTester<T> {
12
+ itemAtMinValue: T | undefined;
13
+ minValue: number | undefined;
14
+ triggerForSavingToArray: number | undefined;
15
+ savedItems: T[];
16
+ savedValues: number[];
17
+ /**
18
+ * Capture the given item with undefined item and value, and optional maxValueForSavingToArray.
19
+ */
20
+ private constructor();
21
+ /**
22
+ * Static method to create a tester.
23
+ * @param maxValueForSavingToArray optional numeric value limiting items to save to the optional array.
24
+ * @returns new tester.
25
+ */
26
+ static create<T>(maxValueForSavingToArray?: number): MinimumValueTester<T>;
27
+ /**
28
+ * Install new minimum value and associated item, both possibly undefined.
29
+ * * The existing arrays of saved items and values, and the trigger value, are unaffected.
30
+ * @param item object to associate with the new minimum value
31
+ * @param value new minimum value
32
+ */
33
+ resetMinValueAndItem(item?: T | undefined, value?: number | undefined): void;
34
+ /**
35
+ * Set the trigger value.
36
+ * @param value new trigger value
37
+ * @param reinitializeArrays whether to clear the arrays of saved items and values
38
+ */
39
+ resetTriggerValueForSavingToArray(value: number | undefined, reinitializeArrays?: boolean): void;
40
+ /**
41
+ * Test a new item with value.
42
+ * * Push the new item and value to the saved arrays if both:
43
+ * * `this.triggerForSavingToArray` is defined
44
+ * * the new value is less than or equal to `this.triggerForSavingToArray`.
45
+ * * Save the new item and value if either:
46
+ * * `this.minValue` is undefined
47
+ * * new value is less than `this.minValue`.
48
+ * @param item item to be saved (captured!) if value conditions are met
49
+ * @param value numeric value being minimized.
50
+ * @returns true if and only if the input value is the new minimum value.
51
+ */
52
+ testAndSave(item: T, value: number): boolean;
53
+ /** Whether the input value is small enough to be saved to this instance. */
54
+ doesValueTrigger(value: number): boolean;
55
+ /** Whether the input value is smaller than the last recorded minimum value. */
56
+ isNewMinValue(value: number): boolean;
57
+ /** Whether the input value is small enough to be the new minimum or to be saved to this instance. */
58
+ isNewMinOrTrigger(value: number): boolean;
59
+ }
60
+ //# sourceMappingURL=MinimumValueTester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinimumValueTester.d.ts","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/MinimumValueTester.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;;;GAMG;AACH,qBAAa,kBAAkB,CAAC,CAAC;IACxB,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,CAAC,EAAE,CAAM;IACrB,WAAW,EAAE,MAAM,EAAE,CAAM;IAClC;;OAEG;IACH,OAAO;IAIP;;;;OAIG;WACW,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAGjF;;;;;OAKG;IACI,oBAAoB,CAAC,IAAI,GAAE,CAAC,GAAG,SAAqB,EAAE,KAAK,GAAE,MAAM,GAAG,SAAqB;IAIlG;;;;OAIG;IACI,iCAAiC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,kBAAkB,GAAE,OAAe;IAOvG;;;;;;;;;;;OAWG;IACI,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAYnD,4EAA4E;IACrE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAG/C,+EAA+E;IACxE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAG5C,qGAAqG;IAC9F,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGjD"}
@@ -0,0 +1,92 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module CartesianGeometry
7
+ */
8
+ /**
9
+ * Data carrier for use when repeatedly testing items (of parameterized type T) to determine the one with a minimum associated value.
10
+ * * Optionally pushes to arrays of items and values when the value does not exceed a given trigger.
11
+ * * * The item at minimum value is still recorded, even if the minimum value exceeds the trigger value.
12
+ * * When comparing a potential minimum value to an undefined value, the number is always accepted as the new minimum.
13
+ * @internal
14
+ */
15
+ export class MinimumValueTester {
16
+ /**
17
+ * Capture the given item with undefined item and value, and optional maxValueForSavingToArray.
18
+ */
19
+ constructor(maxValueForSavingToArray) {
20
+ this.savedItems = [];
21
+ this.savedValues = [];
22
+ this.resetMinValueAndItem(undefined, undefined);
23
+ this.resetTriggerValueForSavingToArray(maxValueForSavingToArray, false);
24
+ }
25
+ /**
26
+ * Static method to create a tester.
27
+ * @param maxValueForSavingToArray optional numeric value limiting items to save to the optional array.
28
+ * @returns new tester.
29
+ */
30
+ static create(maxValueForSavingToArray) {
31
+ return new MinimumValueTester(maxValueForSavingToArray);
32
+ }
33
+ /**
34
+ * Install new minimum value and associated item, both possibly undefined.
35
+ * * The existing arrays of saved items and values, and the trigger value, are unaffected.
36
+ * @param item object to associate with the new minimum value
37
+ * @param value new minimum value
38
+ */
39
+ resetMinValueAndItem(item = undefined, value = undefined) {
40
+ this.itemAtMinValue = item;
41
+ this.minValue = value;
42
+ }
43
+ /**
44
+ * Set the trigger value.
45
+ * @param value new trigger value
46
+ * @param reinitializeArrays whether to clear the arrays of saved items and values
47
+ */
48
+ resetTriggerValueForSavingToArray(value, reinitializeArrays = false) {
49
+ this.triggerForSavingToArray = value;
50
+ if (reinitializeArrays) {
51
+ this.savedItems = [];
52
+ this.savedValues = [];
53
+ }
54
+ }
55
+ /**
56
+ * Test a new item with value.
57
+ * * Push the new item and value to the saved arrays if both:
58
+ * * `this.triggerForSavingToArray` is defined
59
+ * * the new value is less than or equal to `this.triggerForSavingToArray`.
60
+ * * Save the new item and value if either:
61
+ * * `this.minValue` is undefined
62
+ * * new value is less than `this.minValue`.
63
+ * @param item item to be saved (captured!) if value conditions are met
64
+ * @param value numeric value being minimized.
65
+ * @returns true if and only if the input value is the new minimum value.
66
+ */
67
+ testAndSave(item, value) {
68
+ if (this.doesValueTrigger(value)) {
69
+ this.savedValues.push(value);
70
+ this.savedItems.push(item);
71
+ }
72
+ if (this.isNewMinValue(value)) {
73
+ this.minValue = value;
74
+ this.itemAtMinValue = item;
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ /** Whether the input value is small enough to be saved to this instance. */
80
+ doesValueTrigger(value) {
81
+ return this.triggerForSavingToArray !== undefined && value <= this.triggerForSavingToArray;
82
+ }
83
+ /** Whether the input value is smaller than the last recorded minimum value. */
84
+ isNewMinValue(value) {
85
+ return this.minValue === undefined || value < this.minValue;
86
+ }
87
+ /** Whether the input value is small enough to be the new minimum or to be saved to this instance. */
88
+ isNewMinOrTrigger(value) {
89
+ return this.isNewMinValue(value) || this.doesValueTrigger(value);
90
+ }
91
+ }
92
+ //# sourceMappingURL=MinimumValueTester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinimumValueTester.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/MinimumValueTester.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAM7B;;OAEG;IACH,YAAoB,wBAAiC;QAL9C,eAAU,GAAQ,EAAE,CAAC;QACrB,gBAAW,GAAa,EAAE,CAAC;QAKhC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,iCAAiC,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAI,wBAAiC;QACvD,OAAO,IAAI,kBAAkB,CAAI,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IACD;;;;;OAKG;IACI,oBAAoB,CAAC,OAAsB,SAAS,EAAE,QAA4B,SAAS;QAChG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD;;;;OAIG;IACI,iCAAiC,CAAC,KAAyB,EAAE,qBAA8B,KAAK;QACrG,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;IACH,CAAC;IACD;;;;;;;;;;;OAWG;IACI,WAAW,CAAC,IAAO,EAAE,KAAa;QACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,4EAA4E;IACrE,gBAAgB,CAAC,KAAa;QACnC,OAAO,IAAI,CAAC,uBAAuB,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC;IAC7F,CAAC;IACD,+EAA+E;IACxE,aAAa,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9D,CAAC;IACD,qGAAqG;IAC9F,iBAAiB,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;CACF","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/** @packageDocumentation\n * @module CartesianGeometry\n */\n\n/**\n * Data carrier for use when repeatedly testing items (of parameterized type T) to determine the one with a minimum associated value.\n * * Optionally pushes to arrays of items and values when the value does not exceed a given trigger.\n * * * The item at minimum value is still recorded, even if the minimum value exceeds the trigger value.\n * * When comparing a potential minimum value to an undefined value, the number is always accepted as the new minimum.\n * @internal\n */\nexport class MinimumValueTester<T>{\n public itemAtMinValue: T | undefined;\n public minValue: number | undefined;\n public triggerForSavingToArray: number | undefined;\n public savedItems: T[] = [];\n public savedValues: number[] = [];\n /**\n * Capture the given item with undefined item and value, and optional maxValueForSavingToArray.\n */\n private constructor(maxValueForSavingToArray?: number) {\n this.resetMinValueAndItem(undefined, undefined);\n this.resetTriggerValueForSavingToArray(maxValueForSavingToArray, false);\n }\n /**\n * Static method to create a tester.\n * @param maxValueForSavingToArray optional numeric value limiting items to save to the optional array.\n * @returns new tester.\n */\n public static create<T>(maxValueForSavingToArray?: number): MinimumValueTester<T> {\n return new MinimumValueTester<T>(maxValueForSavingToArray);\n }\n /**\n * Install new minimum value and associated item, both possibly undefined.\n * * The existing arrays of saved items and values, and the trigger value, are unaffected.\n * @param item object to associate with the new minimum value\n * @param value new minimum value\n */\n public resetMinValueAndItem(item: T | undefined = undefined, value: number | undefined = undefined) {\n this.itemAtMinValue = item;\n this.minValue = value;\n }\n /**\n * Set the trigger value.\n * @param value new trigger value\n * @param reinitializeArrays whether to clear the arrays of saved items and values\n */\n public resetTriggerValueForSavingToArray(value: number | undefined, reinitializeArrays: boolean = false) {\n this.triggerForSavingToArray = value;\n if (reinitializeArrays) {\n this.savedItems = [];\n this.savedValues = [];\n }\n }\n /**\n * Test a new item with value.\n * * Push the new item and value to the saved arrays if both:\n * * `this.triggerForSavingToArray` is defined\n * * the new value is less than or equal to `this.triggerForSavingToArray`.\n * * Save the new item and value if either:\n * * `this.minValue` is undefined\n * * new value is less than `this.minValue`.\n * @param item item to be saved (captured!) if value conditions are met\n * @param value numeric value being minimized.\n * @returns true if and only if the input value is the new minimum value.\n */\n public testAndSave(item: T, value: number): boolean {\n if (this.doesValueTrigger(value)) {\n this.savedValues.push(value);\n this.savedItems.push(item);\n }\n if (this.isNewMinValue(value)) {\n this.minValue = value;\n this.itemAtMinValue = item;\n return true;\n }\n return false;\n }\n /** Whether the input value is small enough to be saved to this instance. */\n public doesValueTrigger(value: number): boolean {\n return this.triggerForSavingToArray !== undefined && value <= this.triggerForSavingToArray;\n }\n /** Whether the input value is smaller than the last recorded minimum value. */\n public isNewMinValue(value: number): boolean {\n return this.minValue === undefined || value < this.minValue;\n }\n /** Whether the input value is small enough to be the new minimum or to be saved to this instance. */\n public isNewMinOrTrigger(value: number): boolean {\n return this.isNewMinValue(value) || this.doesValueTrigger(value);\n }\n}\n"]}
@@ -0,0 +1,57 @@
1
+ /** @packageDocumentation
2
+ * @module RangeSearch
3
+ */
4
+ import { CurveLocationDetail, CurveLocationDetailPair } from "../../curve/CurveLocationDetail";
5
+ import { Point3d } from "../../geometry3d/Point3dVector3d";
6
+ /**
7
+ * Handler class for searching a range tree containing unordered Point3d data.
8
+ * * Facilitates multiple searches for closest point and close approach calculations.
9
+ * @public
10
+ */
11
+ export declare class Point3dArrayRangeTreeContext {
12
+ /** Array of points being searched, indexed by the range tree */
13
+ points: Point3d[];
14
+ /** Diagnostic: number of range tests returned true */
15
+ numRangeTestTrue: number;
16
+ /** Diagnostic: number of range tests returned false */
17
+ numRangeTestFalse: number;
18
+ /** Diagnostic: number of point distance tests */
19
+ numPointTest: number;
20
+ /** Diagnostic: number of searches */
21
+ numSearch: number;
22
+ /** range tree, whose appData are indices into the points array */
23
+ private _rangeTreeRoot;
24
+ /** Constructor: capture inputs, initialize debug counters */
25
+ private constructor();
26
+ /**
27
+ * Create a range tree context with given points:
28
+ * * initialize with single-point ranges
29
+ * * appData are point indices
30
+ * @param points captured
31
+ * @param maxChildPerNode maximum children per range tree node (default 4)
32
+ * @param maxAppDataPerLeaf maximum point indices per leaf node (default 4)
33
+ */
34
+ static createCapture(points: Point3d[], maxChildPerNode?: number, maxAppDataPerLeaf?: number): Point3dArrayRangeTreeContext | undefined;
35
+ /**
36
+ * Search the range tree for closest point(s) to spacePoint.
37
+ * @param spacePoint point to test
38
+ * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.
39
+ * @return closest point detail(s) with following fields set:
40
+ * * detail.point = the closest point
41
+ * * detail.fraction = the index of the closest point in the points array
42
+ * * detail.a = distance from spacePoint to closest point
43
+ */
44
+ searchForClosestPoint(spacePoint: Point3d, maxDist?: number): CurveLocationDetail | CurveLocationDetail[] | undefined;
45
+ /**
46
+ * Search the range trees for closest approach(es) between the point arrays.
47
+ * @param contextA first point array context
48
+ * @param contextB second point array context
49
+ * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.
50
+ * @return closest approach detail pair(s), one per context, each with the following fields set:
51
+ * * detail.point = the point at closest approach
52
+ * * detail.fraction = the index of detail.point in the points array
53
+ * * detail.a = the closest approach distance
54
+ */
55
+ static searchForClosestApproach(contextA: Point3dArrayRangeTreeContext, contextB: Point3dArrayRangeTreeContext, maxDist?: number): CurveLocationDetailPair | CurveLocationDetailPair[] | undefined;
56
+ }
57
+ //# sourceMappingURL=Point3dArrayRangeTreeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Point3dArrayRangeTreeContext.d.ts","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/Point3dArrayRangeTreeContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAO3D;;;;GAIG;AACH,qBAAa,4BAA4B;IACvC,gEAAgE;IACzD,MAAM,EAAE,OAAO,EAAE,CAAC;IAEzB,sDAAsD;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IAChC,uDAAuD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IACjC,iDAAiD;IAC1C,YAAY,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,OAAO;IAQP;;;;;;;OAOG;WACW,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,GAAE,MAAU,EAAE,iBAAiB,GAAE,MAAU,GAAG,4BAA4B,GAAG,SAAS;IAUpJ;;;;;;;;OAQG;IACI,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS;IAM5H;;;;;;;;;MASE;WACY,wBAAwB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,EAAE,4BAA4B,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,SAAS;CAK1M"}
@@ -0,0 +1,69 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module RangeSearch
7
+ */
8
+ import { Range3d } from "../../geometry3d/Range";
9
+ import { RangeTreeNode, RangeTreeOps } from "./RangeTreeNode";
10
+ import { SingleTreeSearchHandlerForClosestPointInArray, TwoTreeSearchHandlerForPoint3dArrayPoint3dArrayCloseApproach, } from "./RangeTreeSearchHandlers";
11
+ /**
12
+ * Handler class for searching a range tree containing unordered Point3d data.
13
+ * * Facilitates multiple searches for closest point and close approach calculations.
14
+ * @public
15
+ */
16
+ export class Point3dArrayRangeTreeContext {
17
+ /** Constructor: capture inputs, initialize debug counters */
18
+ constructor(rangeTreeRoot, points) {
19
+ this.points = points;
20
+ this._rangeTreeRoot = rangeTreeRoot;
21
+ this.numRangeTestTrue = 0;
22
+ this.numRangeTestFalse = 0;
23
+ this.numPointTest = 0;
24
+ this.numSearch = 0;
25
+ }
26
+ /**
27
+ * Create a range tree context with given points:
28
+ * * initialize with single-point ranges
29
+ * * appData are point indices
30
+ * @param points captured
31
+ * @param maxChildPerNode maximum children per range tree node (default 4)
32
+ * @param maxAppDataPerLeaf maximum point indices per leaf node (default 4)
33
+ */
34
+ static createCapture(points, maxChildPerNode = 4, maxAppDataPerLeaf = 4) {
35
+ const rangeTreeRoot = RangeTreeOps.createByIndexSplits(((index) => { return Range3d.create(points[index]); }), ((index) => { return index; }), points.length, maxChildPerNode, maxAppDataPerLeaf);
36
+ return rangeTreeRoot ? new Point3dArrayRangeTreeContext(rangeTreeRoot, points) : undefined;
37
+ }
38
+ /**
39
+ * Search the range tree for closest point(s) to spacePoint.
40
+ * @param spacePoint point to test
41
+ * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.
42
+ * @return closest point detail(s) with following fields set:
43
+ * * detail.point = the closest point
44
+ * * detail.fraction = the index of the closest point in the points array
45
+ * * detail.a = distance from spacePoint to closest point
46
+ */
47
+ searchForClosestPoint(spacePoint, maxDist) {
48
+ const handler = new SingleTreeSearchHandlerForClosestPointInArray(spacePoint, this, maxDist);
49
+ this.numSearch++;
50
+ this._rangeTreeRoot.searchTopDown(handler);
51
+ return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();
52
+ }
53
+ /**
54
+ * Search the range trees for closest approach(es) between the point arrays.
55
+ * @param contextA first point array context
56
+ * @param contextB second point array context
57
+ * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.
58
+ * @return closest approach detail pair(s), one per context, each with the following fields set:
59
+ * * detail.point = the point at closest approach
60
+ * * detail.fraction = the index of detail.point in the points array
61
+ * * detail.a = the closest approach distance
62
+ */
63
+ static searchForClosestApproach(contextA, contextB, maxDist) {
64
+ const handler = new TwoTreeSearchHandlerForPoint3dArrayPoint3dArrayCloseApproach(contextA, contextB, maxDist);
65
+ RangeTreeNode.searchTwoTreesTopDown(contextA._rangeTreeRoot, contextB._rangeTreeRoot, handler);
66
+ return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();
67
+ }
68
+ }
69
+ //# sourceMappingURL=Point3dArrayRangeTreeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Point3dArrayRangeTreeContext.js","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/Point3dArrayRangeTreeContext.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,6CAA6C,EAAE,4DAA4D,GAC5G,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,OAAO,4BAA4B;IAgBvC,6DAA6D;IAC7D,YAAoB,aAAoC,EAAE,MAAiB;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,aAAa,CAAC,MAAiB,EAAE,kBAA0B,CAAC,EAAE,oBAA4B,CAAC;QACvG,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CACpD,CAAC,CAAC,KAAa,EAAW,EAAE,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvE,CAAC,CAAC,KAAa,EAAU,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,MAAM,CAAC,MAAM,EACb,eAAe,EACf,iBAAiB,CAClB,CAAC;QACF,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,4BAA4B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,CAAC;IACD;;;;;;;;OAQG;IACI,qBAAqB,CAAC,UAAmB,EAAE,OAAgB;QAChE,MAAM,OAAO,GAAG,IAAI,6CAA6C,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;IACD;;;;;;;;;MASE;IACK,MAAM,CAAC,wBAAwB,CAAC,QAAsC,EAAE,QAAsC,EAAE,OAAgB;QACrI,MAAM,OAAO,GAAG,IAAI,4DAA4D,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9G,aAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACpG,CAAC;CACF","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/** @packageDocumentation\n * @module RangeSearch\n */\n\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"../../curve/CurveLocationDetail\";\nimport { Point3d } from \"../../geometry3d/Point3dVector3d\";\nimport { Range3d } from \"../../geometry3d/Range\";\nimport { RangeTreeNode, RangeTreeOps } from \"./RangeTreeNode\";\nimport {\n SingleTreeSearchHandlerForClosestPointInArray, TwoTreeSearchHandlerForPoint3dArrayPoint3dArrayCloseApproach,\n} from \"./RangeTreeSearchHandlers\";\n\n/**\n * Handler class for searching a range tree containing unordered Point3d data.\n * * Facilitates multiple searches for closest point and close approach calculations.\n * @public\n */\nexport class Point3dArrayRangeTreeContext {\n /** Array of points being searched, indexed by the range tree */\n public points: Point3d[];\n\n /** Diagnostic: number of range tests returned true */\n public numRangeTestTrue: number;\n /** Diagnostic: number of range tests returned false */\n public numRangeTestFalse: number;\n /** Diagnostic: number of point distance tests */\n public numPointTest: number;\n /** Diagnostic: number of searches */\n public numSearch: number;\n\n /** range tree, whose appData are indices into the points array */\n private _rangeTreeRoot: RangeTreeNode<number>;\n\n /** Constructor: capture inputs, initialize debug counters */\n private constructor(rangeTreeRoot: RangeTreeNode<number>, points: Point3d[]) {\n this.points = points;\n this._rangeTreeRoot = rangeTreeRoot;\n this.numRangeTestTrue = 0;\n this.numRangeTestFalse = 0;\n this.numPointTest = 0;\n this.numSearch = 0;\n }\n /**\n * Create a range tree context with given points:\n * * initialize with single-point ranges\n * * appData are point indices\n * @param points captured\n * @param maxChildPerNode maximum children per range tree node (default 4)\n * @param maxAppDataPerLeaf maximum point indices per leaf node (default 4)\n */\n public static createCapture(points: Point3d[], maxChildPerNode: number = 4, maxAppDataPerLeaf: number = 4): Point3dArrayRangeTreeContext | undefined {\n const rangeTreeRoot = RangeTreeOps.createByIndexSplits<number>(\n ((index: number): Range3d => { return Range3d.create(points[index]); }),\n ((index: number): number => { return index; }),\n points.length,\n maxChildPerNode,\n maxAppDataPerLeaf,\n );\n return rangeTreeRoot ? new Point3dArrayRangeTreeContext(rangeTreeRoot, points) : undefined;\n }\n /**\n * Search the range tree for closest point(s) to spacePoint.\n * @param spacePoint point to test\n * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.\n * @return closest point detail(s) with following fields set:\n * * detail.point = the closest point\n * * detail.fraction = the index of the closest point in the points array\n * * detail.a = distance from spacePoint to closest point\n */\n public searchForClosestPoint(spacePoint: Point3d, maxDist?: number): CurveLocationDetail | CurveLocationDetail[] | undefined {\n const handler = new SingleTreeSearchHandlerForClosestPointInArray(spacePoint, this, maxDist);\n this.numSearch++;\n this._rangeTreeRoot.searchTopDown(handler);\n return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();\n }\n /**\n * Search the range trees for closest approach(es) between the point arrays.\n * @param contextA first point array context\n * @param contextB second point array context\n * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.\n * @return closest approach detail pair(s), one per context, each with the following fields set:\n * * detail.point = the point at closest approach\n * * detail.fraction = the index of detail.point in the points array\n * * detail.a = the closest approach distance\n */\n public static searchForClosestApproach(contextA: Point3dArrayRangeTreeContext, contextB: Point3dArrayRangeTreeContext, maxDist?: number): CurveLocationDetailPair | CurveLocationDetailPair[] | undefined {\n const handler = new TwoTreeSearchHandlerForPoint3dArrayPoint3dArrayCloseApproach(contextA, contextB, maxDist);\n RangeTreeNode.searchTwoTreesTopDown(contextA._rangeTreeRoot, contextB._rangeTreeRoot, handler);\n return handler.searchState.savedItems.length <= 1 ? handler.getResult() : handler.getSavedItems();\n }\n}\n\n"]}
@@ -0,0 +1,57 @@
1
+ /** @packageDocumentation
2
+ * @module RangeSearch
3
+ */
4
+ import { Point3d } from "../../geometry3d/Point3dVector3d";
5
+ import { FacetLocationDetail, FacetLocationDetailPair } from "../FacetLocationDetail";
6
+ import { Polyface, PolyfaceVisitor } from "../Polyface";
7
+ /**
8
+ * Handler class for searching a range tree containing the facets of a polyface.
9
+ * * Facilitates multiple searches for closest point and close approach calculations.
10
+ * @public
11
+ */
12
+ export declare class PolyfaceRangeTreeContext {
13
+ /** Visitor for the polyface being searched */
14
+ visitor: PolyfaceVisitor;
15
+ /** Whether all facets to visit are known to be convex. */
16
+ convexFacets: boolean;
17
+ /** Diagnostic: number of range tests that have returned true. */
18
+ numRangeTestTrue: number;
19
+ /** Diagnostic: number of range tests that have been returned false */
20
+ numRangeTestFalse: number;
21
+ /** Diagnostic: number of facet tests. */
22
+ numFacetTest: number;
23
+ /** Diagnostic: number of searches performed. */
24
+ numSearch: number;
25
+ /** Range tree, whose appData are facet (read) indices */
26
+ private _rangeTreeRoot;
27
+ /** Constructor: capture inputs, initialize debug counters */
28
+ private constructor();
29
+ /**
30
+ * Create a range tree context for the Polyface facets.
31
+ * * This is a very simple construction that splits "right and left parts" of the facet sequence.
32
+ * * Facets with any recognizable "left to right" or "top to bottom" sequencing will have very effective search structures.
33
+ * @param visitor access to facets, captured if PolyfaceVisitor
34
+ * @param maxChildPerNode maximum children per range tree node (default 4)
35
+ * @param maxAppDataPerLeaf maximum facet indices per leaf node (default 4)
36
+ * @param convexFacets whether all facets are known to be convex (cf. [[PolyfaceQuery.areFacetsConvex]]) (default false)
37
+ */
38
+ static createCapture(visitor: Polyface | PolyfaceVisitor, maxChildPerNode?: number, maxAppDataPerLeaf?: number, convexFacets?: boolean): PolyfaceRangeTreeContext | undefined;
39
+ /**
40
+ * Search the range tree for closest facet(s) to spacePoint.
41
+ * @param spacePoint point to test
42
+ * @param maxDist collect points at no more than this distance from spacePoint. If undefined, return only the closest point.
43
+ * @param searchFacetInterior whether to include facet interiors in search. Default is false: just consider facet boundaries.
44
+ * @return closest point detail(s) with detail.a set to the distance from spacePoint to detail.point
45
+ */
46
+ searchForClosestPoint(spacePoint: Point3d, maxDist?: number, searchFacetInterior?: boolean): FacetLocationDetail | FacetLocationDetail[] | undefined;
47
+ /**
48
+ * Search the range trees for closest approach(es) between the polyfaces.
49
+ * @param contextA first polyface context
50
+ * @param contextB second polyface context
51
+ * @param maxDist collect close approaches separated by no more than this distance. If undefined, return only the closest approach.
52
+ * @param searchFacetInterior whether to include facet interiors in search (`context.convexFacets` must be true for both contexts). Default is false: just consider facet boundaries.
53
+ * @return closest approach detail pair(s), one per context, with detail.a set to the approach distance
54
+ */
55
+ static searchForClosestApproach(contextA: PolyfaceRangeTreeContext, contextB: PolyfaceRangeTreeContext, maxDist?: number, searchFacetInterior?: boolean): FacetLocationDetailPair | FacetLocationDetailPair[] | undefined;
56
+ }
57
+ //# sourceMappingURL=PolyfaceRangeTreeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolyfaceRangeTreeContext.d.ts","sourceRoot":"","sources":["../../../../src/polyface/RangeTree/PolyfaceRangeTreeContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKxD;;;;GAIG;AACH,qBAAa,wBAAwB;IACnC,8CAA8C;IACvC,OAAO,EAAE,eAAe,CAAC;IAChC,0DAA0D;IACnD,YAAY,EAAE,OAAO,CAAC;IAE7B,iEAAiE;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IAChC,sEAAsE;IAC/D,iBAAiB,EAAE,MAAM,CAAC;IACjC,yCAAyC;IAClC,YAAY,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IACzC,SAAS,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,OAAO,CAAC,cAAc,CAAwB;IAE9C,6DAA6D;IAC7D,OAAO;IASP;;;;;;;;OAQG;WACW,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,eAAe,EAAE,eAAe,GAAE,MAAU,EAAE,iBAAiB,GAAE,MAAU,EAAE,YAAY,GAAE,OAAe,GAAG,wBAAwB,GAAG,SAAS;IAajM;;;;;;OAMG;IACI,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAE,OAAe,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS;IAclK;;;;;;;MAOE;WACY,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAE,OAAe,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,SAAS;CAKxO"}