@itwin/core-geometry 5.1.0-dev.3 → 5.1.0-dev.32

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 (770) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.d.ts +8 -0
  4. package/lib/cjs/Geometry.d.ts.map +1 -1
  5. package/lib/cjs/Geometry.js +10 -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.d.ts.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurve.js +7 -1
  11. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  12. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  13. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineSurface.d.ts +2 -1
  15. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineSurface.js +2 -1
  17. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  18. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  19. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  20. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  21. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  22. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  23. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  24. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  25. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  26. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  27. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  28. package/lib/cjs/clipping/ClipPlane.d.ts +7 -5
  29. package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
  30. package/lib/cjs/clipping/ClipPlane.js +9 -5
  31. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  32. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  33. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  34. package/lib/cjs/clipping/ClipUtils.js +5 -3
  35. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  36. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  37. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +1 -2
  38. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  39. package/lib/cjs/clipping/ConvexClipPlaneSet.js +13 -25
  40. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  41. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
  42. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  43. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +1 -2
  44. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  45. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  46. package/lib/cjs/core-geometry.d.ts +1 -0
  47. package/lib/cjs/core-geometry.d.ts.map +1 -1
  48. package/lib/cjs/core-geometry.js +1 -0
  49. package/lib/cjs/core-geometry.js.map +1 -1
  50. package/lib/cjs/curve/Arc3d.d.ts +54 -32
  51. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  52. package/lib/cjs/curve/Arc3d.js +56 -37
  53. package/lib/cjs/curve/Arc3d.js.map +1 -1
  54. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  55. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  56. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  57. package/lib/cjs/curve/CurveCollection.d.ts +33 -1
  58. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  59. package/lib/cjs/curve/CurveCollection.js +79 -0
  60. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  61. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  62. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  63. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  64. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  65. package/lib/cjs/curve/CurveLocationDetail.d.ts +24 -24
  66. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  67. package/lib/cjs/curve/CurveLocationDetail.js +24 -24
  68. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  69. package/lib/cjs/curve/CurveOps.js.map +1 -1
  70. package/lib/cjs/curve/CurvePrimitive.d.ts +2 -2
  71. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  72. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  73. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  74. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  75. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  76. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  77. package/lib/cjs/curve/LineString3d.js.map +1 -1
  78. package/lib/cjs/curve/Loop.js.map +1 -1
  79. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  80. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  81. package/lib/cjs/curve/Path.js.map +1 -1
  82. package/lib/cjs/curve/PointString3d.js.map +1 -1
  83. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  84. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  85. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +10 -5
  86. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  87. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  88. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  89. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  90. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +9 -5
  91. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  92. package/lib/cjs/curve/Query/PlanarSubdivision.js +27 -11
  93. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  94. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  95. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  96. package/lib/cjs/curve/RegionMomentsXY.d.ts +15 -21
  97. package/lib/cjs/curve/RegionMomentsXY.d.ts.map +1 -1
  98. package/lib/cjs/curve/RegionMomentsXY.js +39 -59
  99. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  100. package/lib/cjs/curve/RegionOps.d.ts +82 -39
  101. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  102. package/lib/cjs/curve/RegionOps.js +154 -48
  103. package/lib/cjs/curve/RegionOps.js.map +1 -1
  104. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +27 -26
  105. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  106. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +70 -54
  107. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  108. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  109. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  110. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  111. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  112. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  113. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  114. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  115. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  116. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
  119. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  120. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
  121. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  123. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  124. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  125. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  126. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  127. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  128. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  129. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  130. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  131. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +0 -1
  132. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  133. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  134. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
  135. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
  136. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js +34 -0
  137. package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
  138. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  139. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  140. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  141. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  142. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  143. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  144. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  145. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  146. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  147. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  148. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  149. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  150. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  151. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  152. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  153. package/lib/cjs/geometry3d/AngleSweep.d.ts +24 -17
  154. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  155. package/lib/cjs/geometry3d/AngleSweep.js +31 -17
  156. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  157. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  158. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  159. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +8 -7
  160. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  161. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +19 -25
  162. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  163. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  164. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  165. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  166. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  167. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  168. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  169. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  170. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +7 -2
  171. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  172. package/lib/cjs/geometry3d/GrowableXYZArray.js +20 -2
  173. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  174. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  175. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  176. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +2 -1
  177. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  178. package/lib/cjs/geometry3d/IndexedXYZCollection.js +7 -3
  179. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  180. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  181. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  182. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  183. package/lib/cjs/geometry3d/Plane3d.d.ts +2 -0
  184. package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
  185. package/lib/cjs/geometry3d/Plane3d.js +6 -1
  186. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  187. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
  188. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  189. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
  190. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  191. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
  192. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  193. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +18 -10
  194. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  195. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  196. package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
  197. package/lib/cjs/geometry3d/Point2dVector2d.js +0 -2
  198. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  199. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  200. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +4 -4
  201. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  202. package/lib/cjs/geometry3d/Point3dVector3d.js +7 -8
  203. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  204. package/lib/cjs/geometry3d/PointHelpers.d.ts +7 -7
  205. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  206. package/lib/cjs/geometry3d/PointHelpers.js +66 -26
  207. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  208. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  209. package/lib/cjs/geometry3d/PolygonOps.d.ts +57 -9
  210. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  211. package/lib/cjs/geometry3d/PolygonOps.js +57 -17
  212. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  213. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
  214. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  215. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
  216. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  217. package/lib/cjs/geometry3d/PolylineOps.d.ts +5 -4
  218. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  219. package/lib/cjs/geometry3d/PolylineOps.js +5 -4
  220. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  221. package/lib/cjs/geometry3d/Range.d.ts +18 -10
  222. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  223. package/lib/cjs/geometry3d/Range.js +32 -10
  224. package/lib/cjs/geometry3d/Range.js.map +1 -1
  225. package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -1
  226. package/lib/cjs/geometry3d/Ray2d.js +0 -1
  227. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  228. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  229. package/lib/cjs/geometry3d/Ray3d.js +11 -23
  230. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  231. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  232. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  233. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  234. package/lib/cjs/geometry3d/Transform.d.ts +21 -2
  235. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  236. package/lib/cjs/geometry3d/Transform.js +32 -13
  237. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  238. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  239. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  240. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  241. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  242. package/lib/cjs/geometry4d/Matrix4d.d.ts +7 -7
  243. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  244. package/lib/cjs/geometry4d/Matrix4d.js +9 -9
  245. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  246. package/lib/cjs/geometry4d/MomentData.d.ts +32 -34
  247. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  248. package/lib/cjs/geometry4d/MomentData.js +56 -57
  249. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  250. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  251. package/lib/cjs/geometry4d/Point4d.d.ts +7 -4
  252. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  253. package/lib/cjs/geometry4d/Point4d.js +26 -15
  254. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  255. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  256. package/lib/cjs/numerics/BezierPolynomials.d.ts +2 -0
  257. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  258. package/lib/cjs/numerics/BezierPolynomials.js +11 -0
  259. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  260. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  261. package/lib/cjs/numerics/Complex.js.map +1 -1
  262. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  263. package/lib/cjs/numerics/Newton.js.map +1 -1
  264. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  265. package/lib/cjs/numerics/PolarData.js.map +1 -1
  266. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  267. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  268. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  269. package/lib/cjs/numerics/SmallSystem.d.ts +77 -36
  270. package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -1
  271. package/lib/cjs/numerics/SmallSystem.js +129 -73
  272. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  273. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  274. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  275. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  276. package/lib/cjs/polyface/AuxData.js.map +1 -1
  277. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  278. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  279. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  280. package/lib/cjs/polyface/FacetOrientation.d.ts +1 -1
  281. package/lib/cjs/polyface/FacetOrientation.js +1 -1
  282. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  283. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  284. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +55 -40
  285. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  286. package/lib/cjs/polyface/IndexedEdgeMatcher.js +83 -75
  287. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  288. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
  289. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  290. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +47 -38
  291. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  292. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +26 -19
  293. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
  294. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +47 -32
  295. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
  296. package/lib/cjs/polyface/Polyface.d.ts +17 -3
  297. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  298. package/lib/cjs/polyface/Polyface.js +16 -0
  299. package/lib/cjs/polyface/Polyface.js.map +1 -1
  300. package/lib/cjs/polyface/PolyfaceBuilder.js +2 -2
  301. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  302. package/lib/cjs/polyface/PolyfaceClip.d.ts +19 -18
  303. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  304. package/lib/cjs/polyface/PolyfaceClip.js +39 -42
  305. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  306. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  307. package/lib/cjs/polyface/PolyfaceQuery.d.ts +116 -75
  308. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  309. package/lib/cjs/polyface/PolyfaceQuery.js +312 -228
  310. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  311. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  312. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  313. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  314. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  315. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  316. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
  317. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
  318. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +3 -3
  319. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  320. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  321. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  322. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  323. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  324. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  325. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  326. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  327. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  328. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  329. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  330. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
  331. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  332. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
  333. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  334. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  335. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  336. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  337. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  338. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  339. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  340. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  341. package/lib/cjs/serialization/GeometrySamples.js +2 -2
  342. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  343. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  344. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  345. package/lib/cjs/solid/Box.js.map +1 -1
  346. package/lib/cjs/solid/Cone.js.map +1 -1
  347. package/lib/cjs/solid/LinearSweep.d.ts +2 -3
  348. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  349. package/lib/cjs/solid/LinearSweep.js +2 -3
  350. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  351. package/lib/cjs/solid/RotationalSweep.d.ts +2 -2
  352. package/lib/cjs/solid/RotationalSweep.js +2 -2
  353. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  354. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  355. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  356. package/lib/cjs/solid/Sphere.js.map +1 -1
  357. package/lib/cjs/solid/SweepContour.js.map +1 -1
  358. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  359. package/lib/cjs/topology/ChainMerge.d.ts +1 -1
  360. package/lib/cjs/topology/ChainMerge.js +1 -1
  361. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  362. package/lib/cjs/topology/Graph.js.map +1 -1
  363. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  364. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +1 -0
  365. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  366. package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -0
  367. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  368. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  369. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  370. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  371. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  372. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  373. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  374. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  375. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  376. package/lib/cjs/topology/MaskManager.js.map +1 -1
  377. package/lib/cjs/topology/Merging.d.ts +0 -1
  378. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  379. package/lib/cjs/topology/Merging.js +49 -46
  380. package/lib/cjs/topology/Merging.js.map +1 -1
  381. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  382. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  383. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  384. package/lib/cjs/topology/Triangulation.js.map +1 -1
  385. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  386. package/lib/esm/Constant.js.map +1 -1
  387. package/lib/esm/Geometry.d.ts +8 -0
  388. package/lib/esm/Geometry.d.ts.map +1 -1
  389. package/lib/esm/Geometry.js +10 -0
  390. package/lib/esm/Geometry.js.map +1 -1
  391. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  392. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  393. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  394. package/lib/esm/bspline/BSplineCurve.js +7 -1
  395. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  396. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  397. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  398. package/lib/esm/bspline/BSplineSurface.d.ts +2 -1
  399. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  400. package/lib/esm/bspline/BSplineSurface.js +2 -1
  401. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  402. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  403. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  404. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  405. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  406. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  407. package/lib/esm/bspline/KnotVector.js.map +1 -1
  408. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  409. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  410. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  411. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  412. package/lib/esm/clipping/ClipPlane.d.ts +7 -5
  413. package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
  414. package/lib/esm/clipping/ClipPlane.js +9 -5
  415. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  416. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  417. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  418. package/lib/esm/clipping/ClipUtils.js +5 -3
  419. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  420. package/lib/esm/clipping/ClipVector.js.map +1 -1
  421. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +1 -2
  422. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  423. package/lib/esm/clipping/ConvexClipPlaneSet.js +13 -25
  424. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  425. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
  426. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  427. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +1 -2
  428. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  429. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  430. package/lib/esm/core-geometry.d.ts +1 -0
  431. package/lib/esm/core-geometry.d.ts.map +1 -1
  432. package/lib/esm/core-geometry.js +1 -0
  433. package/lib/esm/core-geometry.js.map +1 -1
  434. package/lib/esm/curve/Arc3d.d.ts +54 -32
  435. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  436. package/lib/esm/curve/Arc3d.js +56 -37
  437. package/lib/esm/curve/Arc3d.js.map +1 -1
  438. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  439. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  440. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  441. package/lib/esm/curve/CurveCollection.d.ts +33 -1
  442. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  443. package/lib/esm/curve/CurveCollection.js +79 -0
  444. package/lib/esm/curve/CurveCollection.js.map +1 -1
  445. package/lib/esm/curve/CurveCurve.js.map +1 -1
  446. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  447. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  448. package/lib/esm/curve/CurveFactory.js.map +1 -1
  449. package/lib/esm/curve/CurveLocationDetail.d.ts +24 -24
  450. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  451. package/lib/esm/curve/CurveLocationDetail.js +24 -24
  452. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  453. package/lib/esm/curve/CurveOps.js.map +1 -1
  454. package/lib/esm/curve/CurvePrimitive.d.ts +2 -2
  455. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  456. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  457. package/lib/esm/curve/CurveTypes.js.map +1 -1
  458. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  459. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  460. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  461. package/lib/esm/curve/LineString3d.js.map +1 -1
  462. package/lib/esm/curve/Loop.js.map +1 -1
  463. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  464. package/lib/esm/curve/ParityRegion.js.map +1 -1
  465. package/lib/esm/curve/Path.js.map +1 -1
  466. package/lib/esm/curve/PointString3d.js.map +1 -1
  467. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  468. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
  469. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +10 -5
  470. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  471. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  472. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  473. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  474. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +9 -5
  475. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  476. package/lib/esm/curve/Query/PlanarSubdivision.js +27 -11
  477. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  478. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  479. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  480. package/lib/esm/curve/RegionMomentsXY.d.ts +15 -21
  481. package/lib/esm/curve/RegionMomentsXY.d.ts.map +1 -1
  482. package/lib/esm/curve/RegionMomentsXY.js +39 -59
  483. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  484. package/lib/esm/curve/RegionOps.d.ts +82 -39
  485. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  486. package/lib/esm/curve/RegionOps.js +155 -49
  487. package/lib/esm/curve/RegionOps.js.map +1 -1
  488. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +27 -26
  489. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  490. package/lib/esm/curve/RegionOpsClassificationSweeps.js +70 -54
  491. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  492. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  493. package/lib/esm/curve/UnionRegion.js.map +1 -1
  494. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
  495. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  496. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  497. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  498. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  499. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  500. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  501. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  502. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
  503. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  504. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
  505. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  506. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  507. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  508. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  509. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  510. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  511. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  512. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  513. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  514. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  515. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +0 -1
  516. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  517. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  518. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
  519. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
  520. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js +30 -0
  521. package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
  522. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  523. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  524. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  525. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  526. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  527. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  528. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  529. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  530. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  531. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  532. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  533. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  534. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  535. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  536. package/lib/esm/geometry3d/Angle.js.map +1 -1
  537. package/lib/esm/geometry3d/AngleSweep.d.ts +24 -17
  538. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  539. package/lib/esm/geometry3d/AngleSweep.js +31 -17
  540. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  541. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  542. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  543. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +8 -7
  544. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  545. package/lib/esm/geometry3d/CoincidentGeometryOps.js +19 -25
  546. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  547. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  548. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  549. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  550. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  551. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  552. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  553. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  554. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +7 -2
  555. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  556. package/lib/esm/geometry3d/GrowableXYZArray.js +20 -2
  557. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  558. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  559. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  560. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +2 -1
  561. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  562. package/lib/esm/geometry3d/IndexedXYZCollection.js +7 -3
  563. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  564. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  565. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  566. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  567. package/lib/esm/geometry3d/Plane3d.d.ts +2 -0
  568. package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
  569. package/lib/esm/geometry3d/Plane3d.js +6 -1
  570. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  571. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
  572. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  573. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
  574. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  575. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
  576. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  577. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +18 -10
  578. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  579. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  580. package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
  581. package/lib/esm/geometry3d/Point2dVector2d.js +0 -2
  582. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  583. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  584. package/lib/esm/geometry3d/Point3dVector3d.d.ts +4 -4
  585. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  586. package/lib/esm/geometry3d/Point3dVector3d.js +7 -8
  587. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  588. package/lib/esm/geometry3d/PointHelpers.d.ts +7 -7
  589. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  590. package/lib/esm/geometry3d/PointHelpers.js +66 -26
  591. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  592. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  593. package/lib/esm/geometry3d/PolygonOps.d.ts +57 -9
  594. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  595. package/lib/esm/geometry3d/PolygonOps.js +57 -17
  596. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  597. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
  598. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
  599. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
  600. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  601. package/lib/esm/geometry3d/PolylineOps.d.ts +5 -4
  602. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  603. package/lib/esm/geometry3d/PolylineOps.js +5 -4
  604. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  605. package/lib/esm/geometry3d/Range.d.ts +18 -10
  606. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  607. package/lib/esm/geometry3d/Range.js +32 -10
  608. package/lib/esm/geometry3d/Range.js.map +1 -1
  609. package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -1
  610. package/lib/esm/geometry3d/Ray2d.js +0 -1
  611. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  612. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  613. package/lib/esm/geometry3d/Ray3d.js +11 -23
  614. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  615. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  616. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  617. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  618. package/lib/esm/geometry3d/Transform.d.ts +21 -2
  619. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  620. package/lib/esm/geometry3d/Transform.js +32 -13
  621. package/lib/esm/geometry3d/Transform.js.map +1 -1
  622. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  623. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  624. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  625. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  626. package/lib/esm/geometry4d/Matrix4d.d.ts +7 -7
  627. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  628. package/lib/esm/geometry4d/Matrix4d.js +9 -9
  629. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  630. package/lib/esm/geometry4d/MomentData.d.ts +32 -34
  631. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  632. package/lib/esm/geometry4d/MomentData.js +56 -57
  633. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  634. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  635. package/lib/esm/geometry4d/Point4d.d.ts +7 -4
  636. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  637. package/lib/esm/geometry4d/Point4d.js +26 -15
  638. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  639. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  640. package/lib/esm/numerics/BezierPolynomials.d.ts +2 -0
  641. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  642. package/lib/esm/numerics/BezierPolynomials.js +11 -0
  643. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  644. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  645. package/lib/esm/numerics/Complex.js.map +1 -1
  646. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  647. package/lib/esm/numerics/Newton.js.map +1 -1
  648. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  649. package/lib/esm/numerics/PolarData.js.map +1 -1
  650. package/lib/esm/numerics/Polynomials.js.map +1 -1
  651. package/lib/esm/numerics/Quadrature.js.map +1 -1
  652. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  653. package/lib/esm/numerics/SmallSystem.d.ts +77 -36
  654. package/lib/esm/numerics/SmallSystem.d.ts.map +1 -1
  655. package/lib/esm/numerics/SmallSystem.js +129 -73
  656. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  657. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  658. package/lib/esm/numerics/UnionFind.js.map +1 -1
  659. package/lib/esm/numerics/UsageSums.js.map +1 -1
  660. package/lib/esm/polyface/AuxData.js.map +1 -1
  661. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  662. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  663. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  664. package/lib/esm/polyface/FacetOrientation.d.ts +1 -1
  665. package/lib/esm/polyface/FacetOrientation.js +1 -1
  666. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  667. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  668. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +55 -40
  669. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  670. package/lib/esm/polyface/IndexedEdgeMatcher.js +83 -75
  671. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  672. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
  673. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  674. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +47 -38
  675. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  676. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +26 -19
  677. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
  678. package/lib/esm/polyface/IndexedPolyfaceWalker.js +47 -32
  679. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
  680. package/lib/esm/polyface/Polyface.d.ts +17 -3
  681. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  682. package/lib/esm/polyface/Polyface.js +16 -0
  683. package/lib/esm/polyface/Polyface.js.map +1 -1
  684. package/lib/esm/polyface/PolyfaceBuilder.js +2 -2
  685. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  686. package/lib/esm/polyface/PolyfaceClip.d.ts +19 -18
  687. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  688. package/lib/esm/polyface/PolyfaceClip.js +39 -42
  689. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  690. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  691. package/lib/esm/polyface/PolyfaceQuery.d.ts +116 -75
  692. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  693. package/lib/esm/polyface/PolyfaceQuery.js +313 -229
  694. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  695. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  696. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  697. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  698. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  699. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  700. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
  701. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
  702. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +3 -3
  703. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  704. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  705. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  706. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  707. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  708. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  709. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  710. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  711. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  712. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  713. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  714. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
  715. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  716. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
  717. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  718. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  719. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  720. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  721. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  722. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  723. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  724. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  725. package/lib/esm/serialization/GeometrySamples.js +2 -2
  726. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  727. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  728. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  729. package/lib/esm/solid/Box.js.map +1 -1
  730. package/lib/esm/solid/Cone.js.map +1 -1
  731. package/lib/esm/solid/LinearSweep.d.ts +2 -3
  732. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  733. package/lib/esm/solid/LinearSweep.js +2 -3
  734. package/lib/esm/solid/LinearSweep.js.map +1 -1
  735. package/lib/esm/solid/RotationalSweep.d.ts +2 -2
  736. package/lib/esm/solid/RotationalSweep.js +2 -2
  737. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  738. package/lib/esm/solid/RuledSweep.js.map +1 -1
  739. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  740. package/lib/esm/solid/Sphere.js.map +1 -1
  741. package/lib/esm/solid/SweepContour.js.map +1 -1
  742. package/lib/esm/solid/TorusPipe.js.map +1 -1
  743. package/lib/esm/topology/ChainMerge.d.ts +1 -1
  744. package/lib/esm/topology/ChainMerge.js +1 -1
  745. package/lib/esm/topology/ChainMerge.js.map +1 -1
  746. package/lib/esm/topology/Graph.js.map +1 -1
  747. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  748. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +1 -0
  749. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  750. package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -0
  751. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  752. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  753. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  754. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  755. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  756. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  757. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  758. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  759. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  760. package/lib/esm/topology/MaskManager.js.map +1 -1
  761. package/lib/esm/topology/Merging.d.ts +0 -1
  762. package/lib/esm/topology/Merging.d.ts.map +1 -1
  763. package/lib/esm/topology/Merging.js +49 -46
  764. package/lib/esm/topology/Merging.js.map +1 -1
  765. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  766. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  767. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  768. package/lib/esm/topology/Triangulation.js.map +1 -1
  769. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  770. package/package.json +3 -3
@@ -8,7 +8,9 @@ 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");
13
+ const FrameBuilder_1 = require("../geometry3d/FrameBuilder");
12
14
  const GrowableXYZArray_1 = require("../geometry3d/GrowableXYZArray");
13
15
  const IndexedXYZCollection_1 = require("../geometry3d/IndexedXYZCollection");
14
16
  const Point3dArrayCarrier_1 = require("../geometry3d/Point3dArrayCarrier");
@@ -16,6 +18,7 @@ const Point3dVector3d_1 = require("../geometry3d/Point3dVector3d");
16
18
  const PolygonOps_1 = require("../geometry3d/PolygonOps");
17
19
  const PolylineCompressionByEdgeOffset_1 = require("../geometry3d/PolylineCompressionByEdgeOffset");
18
20
  const Range_1 = require("../geometry3d/Range");
21
+ const Ray3d_1 = require("../geometry3d/Ray3d");
19
22
  const SortablePolygon_1 = require("../geometry3d/SortablePolygon");
20
23
  const Transform_1 = require("../geometry3d/Transform");
21
24
  const MomentData_1 = require("../geometry4d/MomentData");
@@ -32,6 +35,7 @@ const CurveWireMomentsXYZ_1 = require("./CurveWireMomentsXYZ");
32
35
  const GeometryQuery_1 = require("./GeometryQuery");
33
36
  const ChainCollectorContext_1 = require("./internalContexts/ChainCollectorContext");
34
37
  const PolygonOffsetContext_1 = require("./internalContexts/PolygonOffsetContext");
38
+ const TransferWithSplitArcs_1 = require("./internalContexts/TransferWithSplitArcs");
35
39
  const LineString3d_1 = require("./LineString3d");
36
40
  const Loop_1 = require("./Loop");
37
41
  const OffsetOptions_1 = require("./OffsetOptions");
@@ -58,25 +62,29 @@ var RegionBinaryOpType;
58
62
  })(RegionBinaryOpType || (exports.RegionBinaryOpType = RegionBinaryOpType = {}));
59
63
  /**
60
64
  * Class `RegionOps` has static members for calculations on regions (areas).
61
- * * Regions are represented by these `CurveCollection` subclasses:
62
- * * `Loop` -- a single loop
63
- * * `ParityRegion` -- a collection of loops, interpreted by parity rules.
64
- * The common "One outer loop and many Inner loops" is a parity region.
65
- * * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
66
- * * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
67
- * 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.
68
73
  * @public
69
74
  */
70
75
  class RegionOps {
71
76
  /**
72
77
  * Return moment sums for a loop, parity region, or union region.
78
+ * * The input region should lie in a plane parallel to the xy-plane, as z-coords will be ignored.
73
79
  * * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
74
- * call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
75
- * @param root any Loop, ParityRegion, or UnionRegion.
80
+ * call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes(rawMomentData.origin, rawMomentData.sums);`
81
+ * * `rawMomentData.origin` is the centroid of `region`.
82
+ * * `rawMomentData.sums.weight()` is the signed area of `region`.
83
+ * @param region any [[Loop]], [[ParityRegion]], or [[UnionRegion]].
76
84
  */
77
- static computeXYAreaMoments(root) {
85
+ static computeXYAreaMoments(region) {
78
86
  const handler = new RegionMomentsXY_1.RegionMomentsXY();
79
- const result = root.dispatchToGeometryHandler(handler);
87
+ const result = region.dispatchToGeometryHandler(handler);
80
88
  if (result instanceof MomentData_1.MomentData) {
81
89
  result.shiftOriginAndSumsToCentroidOfSums();
82
90
  return result;
@@ -85,8 +93,8 @@ class RegionOps {
85
93
  }
86
94
  /**
87
95
  * Return an area tolerance for a given xy-range and optional distance tolerance.
88
- * @param range range of planar region to tolerance
89
- * @param distanceTolerance optional absolute distance tolerance
96
+ * @param range range of planar region to tolerance.
97
+ * @param distanceTolerance optional absolute distance tolerance.
90
98
  */
91
99
  static computeXYAreaTolerance(range, distanceTolerance = Geometry_1.Geometry.smallMetricDistance) {
92
100
  // if A = bh and e is distance tolerance, then A' := (b+e/2)(h+e/2) = A + e/2(b+h+e/2), so A'-A = e/2(b+h+e/2).
@@ -95,12 +103,14 @@ class RegionOps {
95
103
  }
96
104
  /**
97
105
  * Return a (signed) xy area for a region.
98
- * * The area is negative if and only if the region is oriented clockwise with respect to the positive z-axis.
99
- * @param root any Loop, ParityRegion, or UnionRegion.
106
+ * * The input region should lie in a plane parallel to the xy-plane, as z-coords will be ignored.
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.
109
+ * @param region any [[Loop]], [[ParityRegion]], or [[UnionRegion]].
100
110
  */
101
- static computeXYArea(root) {
111
+ static computeXYArea(region) {
102
112
  const handler = new RegionMomentsXY_1.RegionMomentsXY();
103
- const result = root.dispatchToGeometryHandler(handler);
113
+ const result = region.dispatchToGeometryHandler(handler);
104
114
  if (result instanceof MomentData_1.MomentData) {
105
115
  return result.quantitySum;
106
116
  }
@@ -108,17 +118,56 @@ class RegionOps {
108
118
  }
109
119
  /**
110
120
  * Return MomentData with the sums of wire moments.
121
+ * * The input curve should lie in a plane parallel to the xy-plane, as z-coords will be ignored.
111
122
  * * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
112
- * call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
113
- * @param root any CurveCollection or CurvePrimitive.
123
+ * call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
124
+ * * `rawMomentData.origin` is the wire centroid of `curve`.
125
+ * * `rawMomentData.sums.weight()` is the signed length of `curve`.
126
+ * @param curve any [[CurveCollection]] or [[CurvePrimitive]].
114
127
  */
115
- static computeXYZWireMomentSums(root) {
128
+ static computeXYZWireMomentSums(curve) {
116
129
  const handler = new CurveWireMomentsXYZ_1.CurveWireMomentsXYZ();
117
- handler.visitLeaves(root);
130
+ handler.visitLeaves(curve);
118
131
  const result = handler.momentData;
119
132
  result.shiftOriginAndSumsToCentroidOfSums();
120
133
  return result;
121
134
  }
135
+ /**
136
+ * Return a [[Ray3d]] with:
137
+ * * `origin` is the centroid of the region,
138
+ * * `direction` is a unit vector perpendicular to the region plane,
139
+ * * `a` is the region area.
140
+ * @param region the region to process. Can lie in any plane.
141
+ * @param result optional pre-allocated result to populate and return.
142
+ */
143
+ static centroidAreaNormal(region, result) {
144
+ const localToWorld = FrameBuilder_1.FrameBuilder.createRightHandedFrame(undefined, region);
145
+ if (!localToWorld)
146
+ return undefined;
147
+ const normal = localToWorld.matrix.columnZ(result?.direction);
148
+ const regionIsXY = normal.isParallelTo(Point3dVector3d_1.Vector3d.unitZ(), true);
149
+ let regionXY = region;
150
+ if (!regionIsXY) { // rotate the region to be parallel to the xy-plane
151
+ regionXY = region.cloneTransformed(localToWorld.inverse());
152
+ if (!regionXY)
153
+ return undefined;
154
+ }
155
+ const momentData = RegionOps.computeXYAreaMoments(regionXY);
156
+ if (!momentData)
157
+ return undefined;
158
+ const centroid = momentData.origin.clone(result?.origin);
159
+ if (!regionIsXY) // rotate centroid back (area is unchanged)
160
+ localToWorld.multiplyPoint3d(centroid, centroid);
161
+ let area = momentData.sums.weight();
162
+ if (area < 0.0) {
163
+ area = -area;
164
+ normal.scale(-1.0, normal);
165
+ }
166
+ if (!result)
167
+ result = Ray3d_1.Ray3d.createCapture(centroid, normal);
168
+ result.a = area;
169
+ return result;
170
+ }
122
171
  /**
123
172
  * Create loops in the graph.
124
173
  * @internal
@@ -236,21 +285,73 @@ class RegionOps {
236
285
  const graph = RegionOpsClassificationSweeps_1.RegionOpsFaceToFaceSearch.doPolygonBoolean(loopsA, loopsB, (inA, inB) => (inA && !inB), this._graphCheckPointFunction);
237
286
  return this.finishGraphToPolyface(graph, triangulate);
238
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
+ }
239
341
  /**
240
342
  * Return areas defined by a boolean operation.
241
- * * If there are multiple regions in loopsA, they are treated as a union.
242
- * * If there are multiple regions in loopsB, they are treated as a union.
243
- * @param loopsA first set of loops
244
- * @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)
245
348
  * @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
246
349
  * @param mergeTolerance absolute distance tolerance for merging loops
247
350
  * @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
248
351
  * to connect interior loops to exterior loops.
249
352
  */
250
353
  static regionBooleanXY(loopsA, loopsB, operation, mergeTolerance = Geometry_1.Geometry.smallMetricDistance) {
251
- // Always return UnionRegion for now. But keep return type as AnyRegion:
252
- // in the future, we might return the *simplest* region type.
253
- const result = UnionRegion_1.UnionRegion.create();
354
+ let result;
254
355
  const context = RegionOpsClassificationSweeps_1.RegionBooleanContext.create(RegionOpsClassificationSweeps_1.RegionGroupOpType.Union, RegionOpsClassificationSweeps_1.RegionGroupOpType.Union);
255
356
  context.addMembers(loopsA, loopsB);
256
357
  context.annotateAndMergeCurvesInGraph(mergeTolerance);
@@ -264,11 +365,14 @@ class RegionOps {
264
365
  return;
265
366
  if (faceType === 1) {
266
367
  const loop = PlanarSubdivision_1.PlanarSubdivision.createLoopInFace(face);
267
- if (loop)
368
+ if (loop) {
369
+ if (!result)
370
+ result = UnionRegion_1.UnionRegion.create();
268
371
  result.tryAddChild(loop);
372
+ }
269
373
  }
270
374
  });
271
- return result;
375
+ return result ? this.simplifyRegion(result) : undefined;
272
376
  }
273
377
  /**
274
378
  * Return a polyface whose facets are a boolean operation between the input regions.
@@ -559,14 +663,15 @@ class RegionOps {
559
663
  curves.dispatchToGeometryHandler(context);
560
664
  }
561
665
  /**
562
- * Reverse and reorder loops in the xy-plane for consistency and containment.
563
- * @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.
564
669
  * @returns a region that captures the input pointers. This region is a:
565
- * * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
566
- * * `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.
567
672
  * Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
568
673
  * clockwise.
569
- * * `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
570
675
  * the above cases.
571
676
  * @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
572
677
  */
@@ -586,14 +691,14 @@ class RegionOps {
586
691
  * Find all xy-areas bounded by the unstructured, possibly intersecting curves.
587
692
  * * For best results, input curves should be parallel to the xy-plane, as z-coordinates are ignored.
588
693
  * * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
589
- * input curves.
694
+ * input curves. Note that "holes" implied by inputs are _not_ preserved in output.
590
695
  * * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
591
696
  * regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
592
697
  * to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
593
698
  * SignedLoops object.
594
699
  * @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
595
- * primitives.
596
- * @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.
597
702
  * @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
598
703
  * * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
599
704
  * positive area and counterclockwise orientation.
@@ -603,7 +708,8 @@ class RegionOps {
603
708
  * to the edge and a constituent curve in each.
604
709
  */
605
710
  static constructAllXYRegionLoops(curvesAndRegions, tolerance = Geometry_1.Geometry.smallMetricDistance) {
606
- 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;
607
713
  const range = this.curveArrayRange(primitives);
608
714
  const areaTol = this.computeXYAreaTolerance(range, tolerance);
609
715
  const intersections = CurveCurve_1.CurveCurve.allIntersectionsAmongPrimitivesXY(primitives, tolerance);
@@ -756,12 +862,10 @@ class RegionOps {
756
862
  }
757
863
  /**
758
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]].
759
867
  * @param region a closed xy-planar region, possibly with holes.
760
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.
761
- * * For best results, `UnionRegion` input should consist of non-overlapping children.
762
- * Caller can ensure this by passing in `region = RegionOps.regionBooleanXY(unionRegion, undefined, RegionBinaryOpType.Union)`.
763
- * * For best results, `ParityRegion` input should be correctly oriented (holes have opposite orientation to their containing loop).
764
- * Caller can ensure this for non-intersecting loops by passing in `region = RegionOps.sortOuterAndHoleLoopsXY(loops)`.
765
869
  * @param options primarily how to stroke the region boundary, but also how to facet the region interior.
766
870
  * * By default, a triangulation is returned, but if `options.maximizeConvexFacets === true`, edges between coplanar triangles are removed to return maximally convex facets.
767
871
  * @returns facets for the region, or undefined if facetting failed
@@ -825,17 +929,19 @@ function pushToInOnOutArrays(curve, select, arrayNegative, array0, arrayPositive
825
929
  array0.push(curve);
826
930
  }
827
931
  /**
828
- * * Options to control method `RegionOps.consolidateAdjacentPrimitives`
932
+ * * Options to control method `RegionOps.consolidateAdjacentPrimitives`.
829
933
  * @public
830
934
  */
831
935
  class ConsolidateAdjacentCurvePrimitivesOptions {
832
- /** True to consolidate adjacent linear geometry into a single LineString3d */
936
+ /** True to consolidate adjacent linear geometry into a single LineString3d. */
833
937
  consolidateLinearGeometry = true;
834
- /** True to consolidate contiguous compatible arcs into a single Arc3d */
938
+ /** True to consolidate contiguous compatible arcs into a single Arc3d. */
835
939
  consolidateCompatibleArcs = true;
836
- /** Tolerance for collapsing identical points */
940
+ /** Disable LineSegment3d and LineString3d point compression. */
941
+ disableLinearCompression = false;
942
+ /** Tolerance for collapsing identical points (if `!disableLinearCompression`). */
837
943
  duplicatePointTolerance = Geometry_1.Geometry.smallMetricDistance;
838
- /** Tolerance for removing interior colinear points. */
944
+ /** Tolerance for removing interior colinear points (if `!disableLinearCompression`). */
839
945
  colinearPointTolerance = Geometry_1.Geometry.smallMetricDistance;
840
946
  }
841
947
  exports.ConsolidateAdjacentCurvePrimitivesOptions = ConsolidateAdjacentCurvePrimitivesOptions;