@itwin/core-geometry 5.1.0-dev.5 → 5.1.0-dev.51

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 (788) hide show
  1. package/CHANGELOG.md +58 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +12 -4
  4. package/lib/cjs/Geometry.d.ts.map +1 -1
  5. package/lib/cjs/Geometry.js +13 -3
  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.d.ts +1 -1
  9. package/lib/cjs/bspline/BSpline1dNd.js +1 -1
  10. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSplineCurve.js +7 -1
  13. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  15. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  16. package/lib/cjs/bspline/BSplineSurface.d.ts +4 -3
  17. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  18. package/lib/cjs/bspline/BSplineSurface.js +6 -5
  19. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  20. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  21. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  22. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  23. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  24. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  25. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  26. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  27. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  28. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  29. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  30. package/lib/cjs/clipping/ClipPlane.d.ts +7 -5
  31. package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
  32. package/lib/cjs/clipping/ClipPlane.js +9 -5
  33. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  34. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  35. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  36. package/lib/cjs/clipping/ClipUtils.js +5 -3
  37. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  38. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  39. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +1 -2
  40. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  41. package/lib/cjs/clipping/ConvexClipPlaneSet.js +13 -25
  42. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  43. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
  44. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  45. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +1 -2
  46. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  47. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  48. package/lib/cjs/core-geometry.d.ts +1 -0
  49. package/lib/cjs/core-geometry.d.ts.map +1 -1
  50. package/lib/cjs/core-geometry.js +1 -0
  51. package/lib/cjs/core-geometry.js.map +1 -1
  52. package/lib/cjs/curve/Arc3d.d.ts +54 -32
  53. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  54. package/lib/cjs/curve/Arc3d.js +56 -37
  55. package/lib/cjs/curve/Arc3d.js.map +1 -1
  56. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  57. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  58. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  59. package/lib/cjs/curve/CurveCollection.d.ts +33 -1
  60. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  61. package/lib/cjs/curve/CurveCollection.js +79 -0
  62. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  63. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  64. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  65. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  66. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  67. package/lib/cjs/curve/CurveLocationDetail.d.ts +25 -25
  68. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  69. package/lib/cjs/curve/CurveLocationDetail.js +25 -25
  70. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  71. package/lib/cjs/curve/CurveOps.js.map +1 -1
  72. package/lib/cjs/curve/CurvePrimitive.d.ts +2 -2
  73. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  74. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  75. package/lib/cjs/curve/CurveTypes.d.ts +1 -1
  76. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  77. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  78. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  79. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  80. package/lib/cjs/curve/LineString3d.js.map +1 -1
  81. package/lib/cjs/curve/Loop.js.map +1 -1
  82. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  83. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  84. package/lib/cjs/curve/Path.js.map +1 -1
  85. package/lib/cjs/curve/PointString3d.js.map +1 -1
  86. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  87. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  88. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +10 -5
  89. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  90. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  91. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  92. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  93. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +9 -5
  94. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  95. package/lib/cjs/curve/Query/PlanarSubdivision.js +27 -11
  96. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  97. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  98. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  99. package/lib/cjs/curve/RegionMomentsXY.d.ts +1 -0
  100. package/lib/cjs/curve/RegionMomentsXY.d.ts.map +1 -1
  101. package/lib/cjs/curve/RegionMomentsXY.js +21 -39
  102. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  103. package/lib/cjs/curve/RegionOps.d.ts +55 -29
  104. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  105. package/lib/cjs/curve/RegionOps.js +96 -35
  106. package/lib/cjs/curve/RegionOps.js.map +1 -1
  107. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +27 -26
  108. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  109. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +70 -54
  110. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  111. package/lib/cjs/curve/StrokeOptions.d.ts +1 -1
  112. package/lib/cjs/curve/StrokeOptions.js +1 -1
  113. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  114. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  115. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  116. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  120. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
  124. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  125. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
  126. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  127. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  131. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  132. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  134. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  135. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  136. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +0 -1
  137. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  138. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  139. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
  140. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
  141. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js +34 -0
  142. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
  143. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  144. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  145. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  146. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  147. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  148. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  149. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  150. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  152. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  153. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  154. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  155. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  156. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  157. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  158. package/lib/cjs/geometry3d/AngleSweep.d.ts +24 -17
  159. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  160. package/lib/cjs/geometry3d/AngleSweep.js +31 -17
  161. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  162. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  163. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  164. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +8 -7
  165. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  166. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +19 -25
  167. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  168. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  169. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  170. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  171. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  172. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  173. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  174. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +1 -1
  175. package/lib/cjs/geometry3d/GrowableXYArray.js +1 -1
  176. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  177. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +7 -2
  178. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  179. package/lib/cjs/geometry3d/GrowableXYZArray.js +20 -2
  180. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  181. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  182. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  183. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +2 -1
  184. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  185. package/lib/cjs/geometry3d/IndexedXYZCollection.js +7 -3
  186. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  187. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  188. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  189. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  190. package/lib/cjs/geometry3d/Plane3d.d.ts +2 -0
  191. package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
  192. package/lib/cjs/geometry3d/Plane3d.js +6 -1
  193. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  194. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
  195. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  196. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
  197. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  198. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
  199. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  200. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +18 -10
  201. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  202. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  203. package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
  204. package/lib/cjs/geometry3d/Point2dVector2d.js +0 -2
  205. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  206. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  207. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +4 -4
  208. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  209. package/lib/cjs/geometry3d/Point3dVector3d.js +4 -5
  210. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  211. package/lib/cjs/geometry3d/PointHelpers.d.ts +7 -7
  212. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  213. package/lib/cjs/geometry3d/PointHelpers.js +66 -26
  214. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  215. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  216. package/lib/cjs/geometry3d/PolygonOps.d.ts +49 -2
  217. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  218. package/lib/cjs/geometry3d/PolygonOps.js +38 -2
  219. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  220. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
  221. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  222. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
  223. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  224. package/lib/cjs/geometry3d/PolylineOps.d.ts +5 -4
  225. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  226. package/lib/cjs/geometry3d/PolylineOps.js +5 -4
  227. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  228. package/lib/cjs/geometry3d/Range.d.ts +18 -10
  229. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  230. package/lib/cjs/geometry3d/Range.js +32 -10
  231. package/lib/cjs/geometry3d/Range.js.map +1 -1
  232. package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -1
  233. package/lib/cjs/geometry3d/Ray2d.js +0 -1
  234. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  235. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  236. package/lib/cjs/geometry3d/Ray3d.js +11 -23
  237. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  238. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  239. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  240. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  241. package/lib/cjs/geometry3d/Transform.d.ts +21 -2
  242. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  243. package/lib/cjs/geometry3d/Transform.js +32 -13
  244. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  245. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  246. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  247. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  248. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  249. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  250. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  251. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  252. package/lib/cjs/geometry4d/Point4d.d.ts +8 -5
  253. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  254. package/lib/cjs/geometry4d/Point4d.js +27 -16
  255. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  256. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  257. package/lib/cjs/numerics/BezierPolynomials.d.ts +2 -0
  258. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  259. package/lib/cjs/numerics/BezierPolynomials.js +11 -0
  260. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  261. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  262. package/lib/cjs/numerics/Complex.js.map +1 -1
  263. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  264. package/lib/cjs/numerics/Newton.js.map +1 -1
  265. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  266. package/lib/cjs/numerics/PolarData.js.map +1 -1
  267. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  268. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  269. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  270. package/lib/cjs/numerics/SmallSystem.d.ts +77 -36
  271. package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -1
  272. package/lib/cjs/numerics/SmallSystem.js +129 -73
  273. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  274. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  275. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  276. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  277. package/lib/cjs/polyface/AuxData.js.map +1 -1
  278. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  279. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  280. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  281. package/lib/cjs/polyface/FacetOrientation.d.ts +1 -1
  282. package/lib/cjs/polyface/FacetOrientation.js +1 -1
  283. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  284. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  285. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +55 -40
  286. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  287. package/lib/cjs/polyface/IndexedEdgeMatcher.js +83 -75
  288. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  289. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
  290. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  291. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +47 -38
  292. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  293. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +26 -19
  294. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
  295. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +47 -32
  296. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  297. package/lib/cjs/polyface/Polyface.d.ts +19 -5
  298. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  299. package/lib/cjs/polyface/Polyface.js +18 -2
  300. package/lib/cjs/polyface/Polyface.js.map +1 -1
  301. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +1 -1
  302. package/lib/cjs/polyface/PolyfaceBuilder.js +3 -3
  303. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  304. package/lib/cjs/polyface/PolyfaceClip.d.ts +19 -18
  305. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  306. package/lib/cjs/polyface/PolyfaceClip.js +39 -42
  307. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  308. package/lib/cjs/polyface/PolyfaceData.d.ts +1 -1
  309. package/lib/cjs/polyface/PolyfaceData.js +1 -1
  310. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  311. package/lib/cjs/polyface/PolyfaceQuery.d.ts +119 -78
  312. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  313. package/lib/cjs/polyface/PolyfaceQuery.js +315 -231
  314. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  315. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  316. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  317. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  318. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  319. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  320. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
  321. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
  322. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +3 -3
  323. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  324. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  325. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  326. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  327. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  328. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  329. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  330. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  331. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  332. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  333. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  334. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
  335. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  336. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
  337. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  338. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  339. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  340. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  341. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  342. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  343. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  344. package/lib/cjs/serialization/GeometrySamples.d.ts +1 -1
  345. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  346. package/lib/cjs/serialization/GeometrySamples.js +3 -3
  347. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  348. package/lib/cjs/serialization/IModelJsonSchema.d.ts +3 -3
  349. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  350. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  351. package/lib/cjs/solid/Box.js.map +1 -1
  352. package/lib/cjs/solid/Cone.js.map +1 -1
  353. package/lib/cjs/solid/LinearSweep.d.ts +2 -3
  354. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  355. package/lib/cjs/solid/LinearSweep.js +2 -3
  356. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  357. package/lib/cjs/solid/RotationalSweep.d.ts +2 -2
  358. package/lib/cjs/solid/RotationalSweep.js +2 -2
  359. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  360. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  361. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  362. package/lib/cjs/solid/Sphere.js.map +1 -1
  363. package/lib/cjs/solid/SweepContour.js.map +1 -1
  364. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  365. package/lib/cjs/topology/ChainMerge.d.ts +1 -1
  366. package/lib/cjs/topology/ChainMerge.js +1 -1
  367. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  368. package/lib/cjs/topology/Graph.js.map +1 -1
  369. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  370. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +1 -0
  371. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  372. package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -0
  373. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  374. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  375. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  376. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  377. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  378. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  379. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  380. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  381. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  382. package/lib/cjs/topology/MaskManager.js.map +1 -1
  383. package/lib/cjs/topology/Merging.d.ts +0 -1
  384. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  385. package/lib/cjs/topology/Merging.js +49 -46
  386. package/lib/cjs/topology/Merging.js.map +1 -1
  387. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  388. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  389. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  390. package/lib/cjs/topology/Triangulation.d.ts +9 -14
  391. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  392. package/lib/cjs/topology/Triangulation.js +29 -22
  393. package/lib/cjs/topology/Triangulation.js.map +1 -1
  394. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  395. package/lib/esm/Constant.js.map +1 -1
  396. package/lib/esm/Geometry.d.ts +12 -4
  397. package/lib/esm/Geometry.d.ts.map +1 -1
  398. package/lib/esm/Geometry.js +13 -3
  399. package/lib/esm/Geometry.js.map +1 -1
  400. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  401. package/lib/esm/bspline/BSpline1dNd.d.ts +1 -1
  402. package/lib/esm/bspline/BSpline1dNd.js +1 -1
  403. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  404. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  405. package/lib/esm/bspline/BSplineCurve.js +7 -1
  406. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  407. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  408. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  409. package/lib/esm/bspline/BSplineSurface.d.ts +4 -3
  410. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  411. package/lib/esm/bspline/BSplineSurface.js +6 -5
  412. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  413. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  414. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  415. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  416. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  417. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  418. package/lib/esm/bspline/KnotVector.js.map +1 -1
  419. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  420. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  421. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  422. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  423. package/lib/esm/clipping/ClipPlane.d.ts +7 -5
  424. package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
  425. package/lib/esm/clipping/ClipPlane.js +9 -5
  426. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  427. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  428. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  429. package/lib/esm/clipping/ClipUtils.js +5 -3
  430. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  431. package/lib/esm/clipping/ClipVector.js.map +1 -1
  432. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +1 -2
  433. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  434. package/lib/esm/clipping/ConvexClipPlaneSet.js +13 -25
  435. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  436. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
  437. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  438. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +1 -2
  439. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  440. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  441. package/lib/esm/core-geometry.d.ts +1 -0
  442. package/lib/esm/core-geometry.d.ts.map +1 -1
  443. package/lib/esm/core-geometry.js +1 -0
  444. package/lib/esm/core-geometry.js.map +1 -1
  445. package/lib/esm/curve/Arc3d.d.ts +54 -32
  446. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  447. package/lib/esm/curve/Arc3d.js +56 -37
  448. package/lib/esm/curve/Arc3d.js.map +1 -1
  449. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  450. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  451. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  452. package/lib/esm/curve/CurveCollection.d.ts +33 -1
  453. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  454. package/lib/esm/curve/CurveCollection.js +79 -0
  455. package/lib/esm/curve/CurveCollection.js.map +1 -1
  456. package/lib/esm/curve/CurveCurve.js.map +1 -1
  457. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  458. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  459. package/lib/esm/curve/CurveFactory.js.map +1 -1
  460. package/lib/esm/curve/CurveLocationDetail.d.ts +25 -25
  461. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  462. package/lib/esm/curve/CurveLocationDetail.js +25 -25
  463. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  464. package/lib/esm/curve/CurveOps.js.map +1 -1
  465. package/lib/esm/curve/CurvePrimitive.d.ts +2 -2
  466. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  467. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  468. package/lib/esm/curve/CurveTypes.d.ts +1 -1
  469. package/lib/esm/curve/CurveTypes.js.map +1 -1
  470. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  471. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  472. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  473. package/lib/esm/curve/LineString3d.js.map +1 -1
  474. package/lib/esm/curve/Loop.js.map +1 -1
  475. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  476. package/lib/esm/curve/ParityRegion.js.map +1 -1
  477. package/lib/esm/curve/Path.js.map +1 -1
  478. package/lib/esm/curve/PointString3d.js.map +1 -1
  479. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  480. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  481. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +10 -5
  482. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  483. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  484. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  485. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  486. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +9 -5
  487. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  488. package/lib/esm/curve/Query/PlanarSubdivision.js +27 -11
  489. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  490. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  491. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  492. package/lib/esm/curve/RegionMomentsXY.d.ts +1 -0
  493. package/lib/esm/curve/RegionMomentsXY.d.ts.map +1 -1
  494. package/lib/esm/curve/RegionMomentsXY.js +21 -39
  495. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  496. package/lib/esm/curve/RegionOps.d.ts +55 -29
  497. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  498. package/lib/esm/curve/RegionOps.js +96 -35
  499. package/lib/esm/curve/RegionOps.js.map +1 -1
  500. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +27 -26
  501. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  502. package/lib/esm/curve/RegionOpsClassificationSweeps.js +70 -54
  503. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  504. package/lib/esm/curve/StrokeOptions.d.ts +1 -1
  505. package/lib/esm/curve/StrokeOptions.js +1 -1
  506. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  507. package/lib/esm/curve/UnionRegion.js.map +1 -1
  508. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  509. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  510. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  511. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  512. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  513. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  514. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  515. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  516. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
  517. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  518. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
  519. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  520. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  521. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  522. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  523. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  524. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  525. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  526. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  527. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  528. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  529. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +0 -1
  530. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  531. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  532. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
  533. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
  534. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js +30 -0
  535. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
  536. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  537. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  538. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  539. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  540. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  541. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  542. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  543. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  544. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  545. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  546. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  547. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  548. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  549. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  550. package/lib/esm/geometry3d/Angle.js.map +1 -1
  551. package/lib/esm/geometry3d/AngleSweep.d.ts +24 -17
  552. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  553. package/lib/esm/geometry3d/AngleSweep.js +31 -17
  554. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  555. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  556. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  557. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +8 -7
  558. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  559. package/lib/esm/geometry3d/CoincidentGeometryOps.js +19 -25
  560. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  561. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  562. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  563. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  564. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  565. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  566. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  567. package/lib/esm/geometry3d/GrowableXYArray.d.ts +1 -1
  568. package/lib/esm/geometry3d/GrowableXYArray.js +1 -1
  569. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  570. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +7 -2
  571. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  572. package/lib/esm/geometry3d/GrowableXYZArray.js +20 -2
  573. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  574. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  575. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  576. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +2 -1
  577. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  578. package/lib/esm/geometry3d/IndexedXYZCollection.js +7 -3
  579. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  580. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  581. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  582. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  583. package/lib/esm/geometry3d/Plane3d.d.ts +2 -0
  584. package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
  585. package/lib/esm/geometry3d/Plane3d.js +6 -1
  586. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  587. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
  588. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  589. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
  590. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  591. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
  592. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  593. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +18 -10
  594. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  595. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  596. package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
  597. package/lib/esm/geometry3d/Point2dVector2d.js +0 -2
  598. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  599. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  600. package/lib/esm/geometry3d/Point3dVector3d.d.ts +4 -4
  601. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  602. package/lib/esm/geometry3d/Point3dVector3d.js +4 -5
  603. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  604. package/lib/esm/geometry3d/PointHelpers.d.ts +7 -7
  605. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  606. package/lib/esm/geometry3d/PointHelpers.js +66 -26
  607. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  608. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  609. package/lib/esm/geometry3d/PolygonOps.d.ts +49 -2
  610. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  611. package/lib/esm/geometry3d/PolygonOps.js +38 -2
  612. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  613. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
  614. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  615. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
  616. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  617. package/lib/esm/geometry3d/PolylineOps.d.ts +5 -4
  618. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  619. package/lib/esm/geometry3d/PolylineOps.js +5 -4
  620. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  621. package/lib/esm/geometry3d/Range.d.ts +18 -10
  622. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  623. package/lib/esm/geometry3d/Range.js +32 -10
  624. package/lib/esm/geometry3d/Range.js.map +1 -1
  625. package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -1
  626. package/lib/esm/geometry3d/Ray2d.js +0 -1
  627. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  628. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  629. package/lib/esm/geometry3d/Ray3d.js +11 -23
  630. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  631. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  632. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  633. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  634. package/lib/esm/geometry3d/Transform.d.ts +21 -2
  635. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  636. package/lib/esm/geometry3d/Transform.js +32 -13
  637. package/lib/esm/geometry3d/Transform.js.map +1 -1
  638. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  639. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  640. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  641. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  642. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  643. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  644. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  645. package/lib/esm/geometry4d/Point4d.d.ts +8 -5
  646. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  647. package/lib/esm/geometry4d/Point4d.js +27 -16
  648. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  649. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  650. package/lib/esm/numerics/BezierPolynomials.d.ts +2 -0
  651. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  652. package/lib/esm/numerics/BezierPolynomials.js +11 -0
  653. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  654. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  655. package/lib/esm/numerics/Complex.js.map +1 -1
  656. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  657. package/lib/esm/numerics/Newton.js.map +1 -1
  658. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  659. package/lib/esm/numerics/PolarData.js.map +1 -1
  660. package/lib/esm/numerics/Polynomials.js.map +1 -1
  661. package/lib/esm/numerics/Quadrature.js.map +1 -1
  662. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  663. package/lib/esm/numerics/SmallSystem.d.ts +77 -36
  664. package/lib/esm/numerics/SmallSystem.d.ts.map +1 -1
  665. package/lib/esm/numerics/SmallSystem.js +129 -73
  666. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  667. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  668. package/lib/esm/numerics/UnionFind.js.map +1 -1
  669. package/lib/esm/numerics/UsageSums.js.map +1 -1
  670. package/lib/esm/polyface/AuxData.js.map +1 -1
  671. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  672. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  673. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  674. package/lib/esm/polyface/FacetOrientation.d.ts +1 -1
  675. package/lib/esm/polyface/FacetOrientation.js +1 -1
  676. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  677. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  678. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +55 -40
  679. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  680. package/lib/esm/polyface/IndexedEdgeMatcher.js +83 -75
  681. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  682. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
  683. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  684. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +47 -38
  685. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  686. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +26 -19
  687. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
  688. package/lib/esm/polyface/IndexedPolyfaceWalker.js +47 -32
  689. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  690. package/lib/esm/polyface/Polyface.d.ts +19 -5
  691. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  692. package/lib/esm/polyface/Polyface.js +18 -2
  693. package/lib/esm/polyface/Polyface.js.map +1 -1
  694. package/lib/esm/polyface/PolyfaceBuilder.d.ts +1 -1
  695. package/lib/esm/polyface/PolyfaceBuilder.js +3 -3
  696. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  697. package/lib/esm/polyface/PolyfaceClip.d.ts +19 -18
  698. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  699. package/lib/esm/polyface/PolyfaceClip.js +39 -42
  700. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  701. package/lib/esm/polyface/PolyfaceData.d.ts +1 -1
  702. package/lib/esm/polyface/PolyfaceData.js +1 -1
  703. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  704. package/lib/esm/polyface/PolyfaceQuery.d.ts +119 -78
  705. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  706. package/lib/esm/polyface/PolyfaceQuery.js +316 -232
  707. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  708. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  709. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  710. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  711. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  712. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  713. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
  714. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
  715. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +3 -3
  716. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  717. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  718. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  719. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  720. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  721. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  722. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  723. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  724. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  725. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  726. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  727. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
  728. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  729. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
  730. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  731. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  732. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  733. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  734. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  735. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  736. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  737. package/lib/esm/serialization/GeometrySamples.d.ts +1 -1
  738. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  739. package/lib/esm/serialization/GeometrySamples.js +3 -3
  740. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  741. package/lib/esm/serialization/IModelJsonSchema.d.ts +3 -3
  742. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  743. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  744. package/lib/esm/solid/Box.js.map +1 -1
  745. package/lib/esm/solid/Cone.js.map +1 -1
  746. package/lib/esm/solid/LinearSweep.d.ts +2 -3
  747. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  748. package/lib/esm/solid/LinearSweep.js +2 -3
  749. package/lib/esm/solid/LinearSweep.js.map +1 -1
  750. package/lib/esm/solid/RotationalSweep.d.ts +2 -2
  751. package/lib/esm/solid/RotationalSweep.js +2 -2
  752. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  753. package/lib/esm/solid/RuledSweep.js.map +1 -1
  754. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  755. package/lib/esm/solid/Sphere.js.map +1 -1
  756. package/lib/esm/solid/SweepContour.js.map +1 -1
  757. package/lib/esm/solid/TorusPipe.js.map +1 -1
  758. package/lib/esm/topology/ChainMerge.d.ts +1 -1
  759. package/lib/esm/topology/ChainMerge.js +1 -1
  760. package/lib/esm/topology/ChainMerge.js.map +1 -1
  761. package/lib/esm/topology/Graph.js.map +1 -1
  762. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  763. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +1 -0
  764. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  765. package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -0
  766. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  767. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  768. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  769. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  770. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  771. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  772. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  773. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  774. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  775. package/lib/esm/topology/MaskManager.js.map +1 -1
  776. package/lib/esm/topology/Merging.d.ts +0 -1
  777. package/lib/esm/topology/Merging.d.ts.map +1 -1
  778. package/lib/esm/topology/Merging.js +49 -46
  779. package/lib/esm/topology/Merging.js.map +1 -1
  780. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  781. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  782. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  783. package/lib/esm/topology/Triangulation.d.ts +9 -14
  784. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  785. package/lib/esm/topology/Triangulation.js +29 -22
  786. package/lib/esm/topology/Triangulation.js.map +1 -1
  787. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  788. package/package.json +3 -3
@@ -36,13 +36,14 @@ export declare enum RegionBinaryOpType {
36
36
  }
37
37
  /**
38
38
  * Class `RegionOps` has static members for calculations on regions (areas).
39
- * * Regions are represented by these `CurveCollection` subclasses:
40
- * * `Loop` -- a single loop
41
- * * `ParityRegion` -- a collection of loops, interpreted by parity rules.
42
- * The common "One outer loop and many Inner loops" is a parity region.
43
- * * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
44
- * * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
45
- * been rotated parallel to the xy-plane.
39
+ * * Regions are represented by these [[CurveCollection]] subclasses:
40
+ * * [[Loop]] -- a single loop
41
+ * * [[ParityRegion]] -- a collection of loops, interpreted by parity rules.
42
+ * The common "One outer loop and many inner loops" is a parity region.
43
+ * * [[UnionRegion]] -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
44
+ * * Most of the methods in this class:
45
+ * * Ignore z-coordinates, so callers should ensure that input geometry has been rotated parallel to the xy-plane.
46
+ * * Assume consistent Loop orientation: "solid" Loops are counterclockwise; "hole" Loops are clockwise.
46
47
  * @public
47
48
  */
48
49
  export declare class RegionOps {
@@ -65,7 +66,8 @@ export declare class RegionOps {
65
66
  /**
66
67
  * Return a (signed) xy area for a region.
67
68
  * * The input region should lie in a plane parallel to the xy-plane, as z-coords will be ignored.
68
- * * The area is negative if and only if the region is oriented clockwise with respect to the positive z-axis.
69
+ * * For a non-self-intersecting Loop, the returned area is negative if and only if the Loop is oriented clockwise
70
+ * with respect to the positive z-axis.
69
71
  * @param region any [[Loop]], [[ParityRegion]], or [[UnionRegion]].
70
72
  */
71
73
  static computeXYArea(region: AnyRegion): number | undefined;
@@ -136,12 +138,35 @@ export declare class RegionOps {
136
138
  * @param triangulate whether to triangulate the result
137
139
  */
138
140
  static polygonXYAreaDifferenceLoopsToPolyface(loopsA: MultiLineStringDataVariant, loopsB: MultiLineStringDataVariant, triangulate?: boolean): Polyface | undefined;
141
+ /**
142
+ * Return the region's simplest representation by stripping redundant parent(s).
143
+ * * No Boolean operations are performed.
144
+ * @param region input region (unchanged). Assumed to have at least one child.
145
+ * @returns
146
+ * * For a [[UnionRegion]] with exactly one child, return the child if it is a [[Loop]],
147
+ * or if it is a [[ParityRegion]] with multiple children; otherwise return the `ParityRegion`'s `Loop`.
148
+ * * For a `ParityRegion` with exactly one child, return the `Loop`.
149
+ * * All other inputs returned unchanged.
150
+ * @see [[simplifyRegion]]
151
+ */
152
+ static simplifyRegionType(region: AnyRegion): AnyRegion;
153
+ /**
154
+ * Simplify the region's parent/child hierarchy in place:
155
+ * * Regions with exactly one child are simplified as per [[simplifyRegionType]].
156
+ * * Regions without children are removed.
157
+ * * No Boolean operations are performed.
158
+ * @param region region to simplify in place
159
+ * @returns reference to the updated input region
160
+ * @see [[simplifyRegionType]]
161
+ */
162
+ static simplifyRegion(region: AnyRegion): AnyRegion | undefined;
139
163
  /**
140
164
  * Return areas defined by a boolean operation.
141
- * * If there are multiple regions in loopsA, they are treated as a union.
142
- * * If there are multiple regions in loopsB, they are treated as a union.
143
- * @param loopsA first set of loops
144
- * @param loopsB second set of loops
165
+ * @note For best results, input regions should have correctly oriented loops. See [[sortOuterAndHoleLoopsXY]].
166
+ * @note A common use case of this method is to convert a region with overlapping children into one with
167
+ * non-overlapping children: `regionOut = RegionOps.regionBooleanXY(regionIn, undefined, RegionBinaryOpType.Union)`.
168
+ * @param loopsA first set of loops (treated as a union)
169
+ * @param loopsB second set of loops (treated as a union)
145
170
  * @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
146
171
  * @param mergeTolerance absolute distance tolerance for merging loops
147
172
  * @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
@@ -299,14 +324,15 @@ export declare class RegionOps {
299
324
  */
300
325
  static consolidateAdjacentPrimitives(curves: CurveCollection, options?: ConsolidateAdjacentCurvePrimitivesOptions): void;
301
326
  /**
302
- * Reverse and reorder loops in the xy-plane for consistency and containment.
303
- * @param loops multiple loops in any order and orientation, z-coordinates ignored
327
+ * Reverse and reorder loops in the xy-plane for consistent orientation and containment.
328
+ * @param loops multiple loops in any order and orientation, z-coordinates ignored.
329
+ * * For best results, all overlaps should be containments, i.e., loop boundaries can touch, but should not cross.
304
330
  * @returns a region that captures the input pointers. This region is a:
305
- * * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
306
- * * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
331
+ * * [[Loop]] if there is exactly one input loop. It is oriented counterclockwise.
332
+ * * [[ParityRegion]] if input consists of exactly one outer loop with at least one hole loop.
307
333
  * Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
308
334
  * clockwise.
309
- * * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
335
+ * * [[UnionRegion]] if any other input configuration. Its children are individually ordered/oriented as in
310
336
  * the above cases.
311
337
  * @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
312
338
  */
@@ -315,14 +341,14 @@ export declare class RegionOps {
315
341
  * Find all xy-areas bounded by the unstructured, possibly intersecting curves.
316
342
  * * For best results, input curves should be parallel to the xy-plane, as z-coordinates are ignored.
317
343
  * * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
318
- * input curves.
344
+ * input curves. Note that "holes" implied by inputs are _not_ preserved in output.
319
345
  * * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
320
346
  * regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
321
347
  * to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
322
348
  * SignedLoops object.
323
349
  * @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
324
- * primitives.
325
- * @param tolerance optional distance tolerance for coincidence
350
+ * primitives, stripped of parity context. This means holes are _not_ preserved in output.
351
+ * @param tolerance optional distance tolerance for coincidence.
326
352
  * @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
327
353
  * * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
328
354
  * positive area and counterclockwise orientation.
@@ -374,12 +400,10 @@ export declare class RegionOps {
374
400
  private static triangulateRegionComponent;
375
401
  /**
376
402
  * Facet the region according to stroke options.
403
+ * @note For best results, [[UnionRegion]] input should consist of non-overlapping children. See [[regionBooleanXY]].
404
+ * @note For best results, [[ParityRegion]] input should be correctly oriented. See [[sortOuterAndHoleLoopsXY]].
377
405
  * @param region a closed xy-planar region, possibly with holes.
378
406
  * * The z-coordinates of the region are ignored. Caller is responsible for rotating the region into plane local coordinates beforehand, and reversing the rotation afterwards.
379
- * * For best results, `UnionRegion` input should consist of non-overlapping children.
380
- * Caller can ensure this by passing in `region = RegionOps.regionBooleanXY(unionRegion, undefined, RegionBinaryOpType.Union)`.
381
- * * For best results, `ParityRegion` input should be correctly oriented (holes have opposite orientation to their containing loop).
382
- * Caller can ensure this for non-intersecting loops by passing in `region = RegionOps.sortOuterAndHoleLoopsXY(loops)`.
383
407
  * @param options primarily how to stroke the region boundary, but also how to facet the region interior.
384
408
  * * By default, a triangulation is returned, but if `options.maximizeConvexFacets === true`, edges between coplanar triangles are removed to return maximally convex facets.
385
409
  * @returns facets for the region, or undefined if facetting failed
@@ -394,17 +418,19 @@ export declare class RegionOps {
394
418
  static convexDecomposePolygonXY(polygon: MultiLineStringDataVariant, maximize?: boolean): GrowableXYZArray[] | undefined;
395
419
  }
396
420
  /**
397
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
421
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`.
398
422
  * @public
399
423
  */
400
424
  export declare class ConsolidateAdjacentCurvePrimitivesOptions {
401
- /** True to consolidate adjacent linear geometry into a single LineString3d */
425
+ /** True to consolidate adjacent linear geometry into a single LineString3d. */
402
426
  consolidateLinearGeometry: boolean;
403
- /** True to consolidate contiguous compatible arcs into a single Arc3d */
427
+ /** True to consolidate contiguous compatible arcs into a single Arc3d. */
404
428
  consolidateCompatibleArcs: boolean;
405
- /** Tolerance for collapsing identical points */
429
+ /** Disable LineSegment3d and LineString3d point compression. */
430
+ disableLinearCompression?: boolean;
431
+ /** Tolerance for collapsing identical points (if `!disableLinearCompression`). */
406
432
  duplicatePointTolerance: number;
407
- /** Tolerance for removing interior colinear points. */
433
+ /** Tolerance for removing interior colinear points (if `!disableLinearCompression`). */
408
434
  colinearPointTolerance: number;
409
435
  }
410
436
  //# sourceMappingURL=RegionOps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAC0B,oBAAoB,EAAyB,0BAA0B,EACvG,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAY,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAI1E,OAAO,EAAe,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO7D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvH;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,KAAK,IAAI;IACT,MAAM,IAAI;IACV,YAAY,IAAI;IAChB,OAAO,IAAI;IACX,OAAO,IAAI;CACZ;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACpB;;;;;;;;OAQG;WACW,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS;IAS7E;;;;MAIE;WACY,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,GAAE,MAAqC,GAAG,MAAM;IAKtH;;;;;;OAMG;WACW,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAQlE;;;;;;;;OAQG;WACW,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAO/E;;;;;;;OAOG;WACW,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;IA6BtF;;;OAGG;WACW,eAAe,CAC3B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,0BAA0B,EAChC,oBAAoB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,GACnE,IAAI;IAqCP;;;;OAIG;WACW,0BAA0B,CACtC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,GACvF,QAAQ,EAAE,GAAG,SAAS;IAYzB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC;;;;;;;;OAQG;WACW,qCAAqC,CACjD,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,GAAE,OAAe,GACnG,QAAQ,GAAG,SAAS;IASvB;;;;;;;;OAQG;WACW,iCAAiC,CAC7C,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,GAAE,OAAe,GACnG,QAAQ,GAAG,SAAS;IASvB;;;;;;;;OAQG;WACW,sCAAsC,CAClD,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,EAAE,WAAW,GAAE,OAAe,GACnG,QAAQ,GAAG,SAAS;IASvB;;;;;;;;;;OAUG;WACW,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAU9D;;;;;;;;OAQG;WACW,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAqBtE;;;;;;;;;;;OAWG;WACW,eAAe,CAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,SAAS,EAC3C,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,SAAS,EAC3C,SAAS,EAAE,kBAAkB,EAC7B,cAAc,GAAE,MAAqC,GACpD,SAAS,GAAG,SAAS;IA2BxB;;;;;;;;;;;OAWG;WACW,0BAA0B,CACtC,MAAM,EAAE,0BAA0B,EAAE,EACpC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,0BAA0B,EAAE,EACpC,WAAW,GAAE,OAAe,GAC3B,QAAQ,GAAG,SAAS;IASvB;;;;;;;;;;OAUG;WACW,uBAAuB,CACnC,MAAM,EAAE,0BAA0B,EAAE,EACpC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,0BAA0B,EAAE,GACnC,SAAS,GAAG,SAAS;IAwBxB;;;;;;;;;;;OAWG;WACW,4BAA4B,CACxC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,GAAG,YAAY,GAC/E,UAAU,GAAG,SAAS;IAIzB;;;;;;;OAOG;WACW,sBAAsB,CAClC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,uBAAuB,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,GAClF,eAAe,GAAG,SAAS;IAI9B;;;;;;OAMG;WACW,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAGvF;;;;;;;;;OASG;WACW,2BAA2B,CACvC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,GAAE,OAAc,EAAE,6BAA6B,GAAE,OAAe,GAC7F,eAAe,GAAG,SAAS;IAuB9B,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAA0B;IAClE;;;OAGG;WACW,qBAAqB,CAAC,CAAC,CAAC,EAAE,uBAAuB;IAG/D;;;;;;;;OAQG;WACW,uBAAuB,CACnC,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,eAAe,GAC/D,QAAQ,GAAG,SAAS;IAGvB;;;;;OAKG;WACW,yBAAyB,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS;IAahH;;;;;;;;OAQG;WACW,8BAA8B,CAC1C,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAClE;QAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAA;KAAE;IAG/E;;;;;OAKG;WACW,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,YAAY,GAAE,MAAqC,GAAG,QAAQ,GAAG,SAAS;IAG7H;;;;;OAKG;WACW,2BAA2B,CACvC,WAAW,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,GACnD;QAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;QAAC,eAAe,EAAE,QAAQ,EAAE,CAAA;KAAE;IAqBrF;;;;;;;;;;;;;;OAcG;WACW,sBAAsB,CAClC,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,oBAAoB,EAAE,mBAAmB,GAAE,OAAc,GACrF,SAAS,GAAG,SAAS;IA+CxB;;;;;;;;;;;OAWG;WACW,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,yCAAyC,GAAG,IAAI;IAI/H;;;;;;;;;;;;OAYG;WACW,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC,GAAG,SAAS;IAY3F;;;;;;;;;;;;;;;;;;;OAmBG;WACW,yBAAyB,CACrC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,EAAE,EAAE,SAAS,GAAE,MAAqC,GACxF,WAAW,EAAE;IAShB;;;;;;;;;;OAUG;WACW,sBAAsB,CAClC,UAAU,EAAE,QAAQ,GAAG,QAAQ,EAAE,EACjC,cAAc,CAAC,EAAE,cAAc,EAAE,EACjC,0BAA0B,GAAE,OAAe,EAC3C,kBAAkB,GAAE,OAAe,GAClC,cAAc,EAAE;IAanB;;;;;OAKG;WACW,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAe/E;;;;OAIG;WACW,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO;IAkB3E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAqChD,oCAAoC;IACpC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAIzC;;;;;;;;;OASG;WACW,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAyBpG;;;;;MAKE;WACY,wBAAwB,CAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,GAAE,OAAc,GAAG,gBAAgB,EAAE,GAAG,SAAS;CActI;AAaD;;;GAGG;AACH,qBAAa,yCAAyC;IACpD,+EAA+E;IACxE,yBAAyB,EAAE,OAAO,CAAQ;IACjD,0EAA0E;IACnE,yBAAyB,EAAE,OAAO,CAAQ;IACjD,gEAAgE;IACzD,wBAAwB,CAAC,EAAE,OAAO,CAAS;IAClD,kFAAkF;IAC3E,uBAAuB,EAAE,MAAM,CAAgC;IACtE,wFAAwF;IACjF,sBAAsB,EAAE,MAAM,CAAgC;CACtE"}
@@ -8,6 +8,7 @@ exports.ConsolidateAdjacentCurvePrimitivesOptions = exports.RegionOps = exports.
8
8
  /** @packageDocumentation
9
9
  * @module Curve
10
10
  */
11
+ const core_bentley_1 = require("@itwin/core-bentley");
11
12
  const Geometry_1 = require("../Geometry");
12
13
  const FrameBuilder_1 = require("../geometry3d/FrameBuilder");
13
14
  const GrowableXYZArray_1 = require("../geometry3d/GrowableXYZArray");
@@ -34,6 +35,7 @@ const CurveWireMomentsXYZ_1 = require("./CurveWireMomentsXYZ");
34
35
  const GeometryQuery_1 = require("./GeometryQuery");
35
36
  const ChainCollectorContext_1 = require("./internalContexts/ChainCollectorContext");
36
37
  const PolygonOffsetContext_1 = require("./internalContexts/PolygonOffsetContext");
38
+ const TransferWithSplitArcs_1 = require("./internalContexts/TransferWithSplitArcs");
37
39
  const LineString3d_1 = require("./LineString3d");
38
40
  const Loop_1 = require("./Loop");
39
41
  const OffsetOptions_1 = require("./OffsetOptions");
@@ -60,13 +62,14 @@ var RegionBinaryOpType;
60
62
  })(RegionBinaryOpType || (exports.RegionBinaryOpType = RegionBinaryOpType = {}));
61
63
  /**
62
64
  * Class `RegionOps` has static members for calculations on regions (areas).
63
- * * Regions are represented by these `CurveCollection` subclasses:
64
- * * `Loop` -- a single loop
65
- * * `ParityRegion` -- a collection of loops, interpreted by parity rules.
66
- * The common "One outer loop and many Inner loops" is a parity region.
67
- * * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
68
- * * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
69
- * been rotated parallel to the xy-plane.
65
+ * * Regions are represented by these [[CurveCollection]] subclasses:
66
+ * * [[Loop]] -- a single loop
67
+ * * [[ParityRegion]] -- a collection of loops, interpreted by parity rules.
68
+ * The common "One outer loop and many inner loops" is a parity region.
69
+ * * [[UnionRegion]] -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
70
+ * * Most of the methods in this class:
71
+ * * Ignore z-coordinates, so callers should ensure that input geometry has been rotated parallel to the xy-plane.
72
+ * * Assume consistent Loop orientation: "solid" Loops are counterclockwise; "hole" Loops are clockwise.
70
73
  * @public
71
74
  */
72
75
  class RegionOps {
@@ -101,7 +104,8 @@ class RegionOps {
101
104
  /**
102
105
  * Return a (signed) xy area for a region.
103
106
  * * The input region should lie in a plane parallel to the xy-plane, as z-coords will be ignored.
104
- * * The area is negative if and only if the region is oriented clockwise with respect to the positive z-axis.
107
+ * * For a non-self-intersecting Loop, the returned area is negative if and only if the Loop is oriented clockwise
108
+ * with respect to the positive z-axis.
105
109
  * @param region any [[Loop]], [[ParityRegion]], or [[UnionRegion]].
106
110
  */
107
111
  static computeXYArea(region) {
@@ -281,21 +285,73 @@ class RegionOps {
281
285
  const graph = RegionOpsClassificationSweeps_1.RegionOpsFaceToFaceSearch.doPolygonBoolean(loopsA, loopsB, (inA, inB) => (inA && !inB), this._graphCheckPointFunction);
282
286
  return this.finishGraphToPolyface(graph, triangulate);
283
287
  }
288
+ /**
289
+ * Return the region's simplest representation by stripping redundant parent(s).
290
+ * * No Boolean operations are performed.
291
+ * @param region input region (unchanged). Assumed to have at least one child.
292
+ * @returns
293
+ * * For a [[UnionRegion]] with exactly one child, return the child if it is a [[Loop]],
294
+ * or if it is a [[ParityRegion]] with multiple children; otherwise return the `ParityRegion`'s `Loop`.
295
+ * * For a `ParityRegion` with exactly one child, return the `Loop`.
296
+ * * All other inputs returned unchanged.
297
+ * @see [[simplifyRegion]]
298
+ */
299
+ static simplifyRegionType(region) {
300
+ if (region instanceof UnionRegion_1.UnionRegion) {
301
+ if (region.children.length === 1)
302
+ return this.simplifyRegionType(region.children[0]);
303
+ }
304
+ else if (region instanceof ParityRegion_1.ParityRegion) {
305
+ if (region.children.length === 1)
306
+ return region.children[0];
307
+ }
308
+ return region;
309
+ }
310
+ /**
311
+ * Simplify the region's parent/child hierarchy in place:
312
+ * * Regions with exactly one child are simplified as per [[simplifyRegionType]].
313
+ * * Regions without children are removed.
314
+ * * No Boolean operations are performed.
315
+ * @param region region to simplify in place
316
+ * @returns reference to the updated input region
317
+ * @see [[simplifyRegionType]]
318
+ */
319
+ static simplifyRegion(region) {
320
+ if (region instanceof Loop_1.Loop)
321
+ return region.children.length > 0 ? region : undefined;
322
+ // remove childless Parity/UnionRegion
323
+ for (let i = 0; i < region.children.length; ++i) {
324
+ const child = region.children[i];
325
+ const newChild = this.simplifyRegion(child);
326
+ if (!newChild) {
327
+ region.children.splice(i--, 1);
328
+ }
329
+ else if (newChild !== child) {
330
+ (0, core_bentley_1.assert)(!(newChild instanceof UnionRegion_1.UnionRegion));
331
+ region.children.splice(i--, 1, newChild);
332
+ }
333
+ }
334
+ if (region.children.length === 0)
335
+ return undefined;
336
+ // remove redundant Parity/UnionRegion parent
337
+ if (region.children.length === 1)
338
+ return region.children.splice(0, 1)[0];
339
+ return region;
340
+ }
284
341
  /**
285
342
  * Return areas defined by a boolean operation.
286
- * * If there are multiple regions in loopsA, they are treated as a union.
287
- * * If there are multiple regions in loopsB, they are treated as a union.
288
- * @param loopsA first set of loops
289
- * @param loopsB second set of loops
343
+ * @note For best results, input regions should have correctly oriented loops. See [[sortOuterAndHoleLoopsXY]].
344
+ * @note A common use case of this method is to convert a region with overlapping children into one with
345
+ * non-overlapping children: `regionOut = RegionOps.regionBooleanXY(regionIn, undefined, RegionBinaryOpType.Union)`.
346
+ * @param loopsA first set of loops (treated as a union)
347
+ * @param loopsB second set of loops (treated as a union)
290
348
  * @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
291
349
  * @param mergeTolerance absolute distance tolerance for merging loops
292
350
  * @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
293
351
  * to connect interior loops to exterior loops.
294
352
  */
295
353
  static regionBooleanXY(loopsA, loopsB, operation, mergeTolerance = Geometry_1.Geometry.smallMetricDistance) {
296
- // Always return UnionRegion for now. But keep return type as AnyRegion:
297
- // in the future, we might return the *simplest* region type.
298
- const result = UnionRegion_1.UnionRegion.create();
354
+ let result;
299
355
  const context = RegionOpsClassificationSweeps_1.RegionBooleanContext.create(RegionOpsClassificationSweeps_1.RegionGroupOpType.Union, RegionOpsClassificationSweeps_1.RegionGroupOpType.Union);
300
356
  context.addMembers(loopsA, loopsB);
301
357
  context.annotateAndMergeCurvesInGraph(mergeTolerance);
@@ -309,11 +365,14 @@ class RegionOps {
309
365
  return;
310
366
  if (faceType === 1) {
311
367
  const loop = PlanarSubdivision_1.PlanarSubdivision.createLoopInFace(face);
312
- if (loop)
368
+ if (loop) {
369
+ if (!result)
370
+ result = UnionRegion_1.UnionRegion.create();
313
371
  result.tryAddChild(loop);
372
+ }
314
373
  }
315
374
  });
316
- return result;
375
+ return result ? this.simplifyRegion(result) : undefined;
317
376
  }
318
377
  /**
319
378
  * Return a polyface whose facets are a boolean operation between the input regions.
@@ -604,14 +663,15 @@ class RegionOps {
604
663
  curves.dispatchToGeometryHandler(context);
605
664
  }
606
665
  /**
607
- * Reverse and reorder loops in the xy-plane for consistency and containment.
608
- * @param loops multiple loops in any order and orientation, z-coordinates ignored
666
+ * Reverse and reorder loops in the xy-plane for consistent orientation and containment.
667
+ * @param loops multiple loops in any order and orientation, z-coordinates ignored.
668
+ * * For best results, all overlaps should be containments, i.e., loop boundaries can touch, but should not cross.
609
669
  * @returns a region that captures the input pointers. This region is a:
610
- * * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
611
- * * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
670
+ * * [[Loop]] if there is exactly one input loop. It is oriented counterclockwise.
671
+ * * [[ParityRegion]] if input consists of exactly one outer loop with at least one hole loop.
612
672
  * Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
613
673
  * clockwise.
614
- * * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
674
+ * * [[UnionRegion]] if any other input configuration. Its children are individually ordered/oriented as in
615
675
  * the above cases.
616
676
  * @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
617
677
  */
@@ -631,14 +691,14 @@ class RegionOps {
631
691
  * Find all xy-areas bounded by the unstructured, possibly intersecting curves.
632
692
  * * For best results, input curves should be parallel to the xy-plane, as z-coordinates are ignored.
633
693
  * * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
634
- * input curves.
694
+ * input curves. Note that "holes" implied by inputs are _not_ preserved in output.
635
695
  * * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
636
696
  * regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
637
697
  * to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
638
698
  * SignedLoops object.
639
699
  * @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
640
- * primitives.
641
- * @param tolerance optional distance tolerance for coincidence
700
+ * primitives, stripped of parity context. This means holes are _not_ preserved in output.
701
+ * @param tolerance optional distance tolerance for coincidence.
642
702
  * @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
643
703
  * * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
644
704
  * positive area and counterclockwise orientation.
@@ -648,7 +708,8 @@ class RegionOps {
648
708
  * to the edge and a constituent curve in each.
649
709
  */
650
710
  static constructAllXYRegionLoops(curvesAndRegions, tolerance = Geometry_1.Geometry.smallMetricDistance) {
651
- const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
711
+ let primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
712
+ primitives = TransferWithSplitArcs_1.TransferWithSplitArcs.clone(CurveCollection_1.BagOfCurves.create(...primitives)).children;
652
713
  const range = this.curveArrayRange(primitives);
653
714
  const areaTol = this.computeXYAreaTolerance(range, tolerance);
654
715
  const intersections = CurveCurve_1.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
@@ -801,12 +862,10 @@ class RegionOps {
801
862
  }
802
863
  /**
803
864
  * Facet the region according to stroke options.
865
+ * @note For best results, [[UnionRegion]] input should consist of non-overlapping children. See [[regionBooleanXY]].
866
+ * @note For best results, [[ParityRegion]] input should be correctly oriented. See [[sortOuterAndHoleLoopsXY]].
804
867
  * @param region a closed xy-planar region, possibly with holes.
805
868
  * * The z-coordinates of the region are ignored. Caller is responsible for rotating the region into plane local coordinates beforehand, and reversing the rotation afterwards.
806
- * * For best results, `UnionRegion` input should consist of non-overlapping children.
807
- * Caller can ensure this by passing in `region = RegionOps.regionBooleanXY(unionRegion, undefined, RegionBinaryOpType.Union)`.
808
- * * For best results, `ParityRegion` input should be correctly oriented (holes have opposite orientation to their containing loop).
809
- * Caller can ensure this for non-intersecting loops by passing in `region = RegionOps.sortOuterAndHoleLoopsXY(loops)`.
810
869
  * @param options primarily how to stroke the region boundary, but also how to facet the region interior.
811
870
  * * By default, a triangulation is returned, but if `options.maximizeConvexFacets === true`, edges between coplanar triangles are removed to return maximally convex facets.
812
871
  * @returns facets for the region, or undefined if facetting failed
@@ -870,17 +929,19 @@ function pushToInOnOutArrays(curve, select, arrayNegative, array0, arrayPositive
870
929
  array0.push(curve);
871
930
  }
872
931
  /**
873
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
932
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`.
874
933
  * @public
875
934
  */
876
935
  class ConsolidateAdjacentCurvePrimitivesOptions {
877
- /** True to consolidate adjacent linear geometry into a single LineString3d */
936
+ /** True to consolidate adjacent linear geometry into a single LineString3d. */
878
937
  consolidateLinearGeometry = true;
879
- /** True to consolidate contiguous compatible arcs into a single Arc3d */
938
+ /** True to consolidate contiguous compatible arcs into a single Arc3d. */
880
939
  consolidateCompatibleArcs = true;
881
- /** Tolerance for collapsing identical points */
940
+ /** Disable LineSegment3d and LineString3d point compression. */
941
+ disableLinearCompression = false;
942
+ /** Tolerance for collapsing identical points (if `!disableLinearCompression`). */
882
943
  duplicatePointTolerance = Geometry_1.Geometry.smallMetricDistance;
883
- /** Tolerance for removing interior colinear points. */
944
+ /** Tolerance for removing interior colinear points (if `!disableLinearCompression`). */
884
945
  colinearPointTolerance = Geometry_1.Geometry.smallMetricDistance;
885
946
  }
886
947
  exports.ConsolidateAdjacentCurvePrimitivesOptions = ConsolidateAdjacentCurvePrimitivesOptions;