@itwin/core-geometry 5.0.0-dev.11 → 5.0.0-dev.111

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 (1066) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.d.ts +13 -4
  5. package/lib/cjs/Geometry.d.ts.map +1 -1
  6. package/lib/cjs/Geometry.js +51 -39
  7. package/lib/cjs/Geometry.js.map +1 -1
  8. package/lib/cjs/bspline/AkimaCurve3d.js +3 -1
  9. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  10. package/lib/cjs/bspline/BSpline1dNd.d.ts +90 -54
  11. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSpline1dNd.js +137 -84
  13. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
  15. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve.js +249 -181
  17. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineCurve3dH.js +1 -0
  19. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  20. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  21. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  22. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  23. package/lib/cjs/bspline/BSplineSurface.js +22 -2
  24. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  25. package/lib/cjs/bspline/Bezier1dNd.js +6 -0
  26. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3d.d.ts +3 -1
  28. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
  29. package/lib/cjs/bspline/BezierCurve3d.js +5 -5
  30. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  31. package/lib/cjs/bspline/BezierCurve3dH.js +2 -0
  32. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  33. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  34. package/lib/cjs/bspline/BezierCurveBase.js +21 -2
  35. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  36. package/lib/cjs/bspline/InterpolationCurve3d.js +12 -1
  37. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  38. package/lib/cjs/bspline/KnotVector.d.ts +82 -60
  39. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  40. package/lib/cjs/bspline/KnotVector.js +144 -84
  41. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  42. package/lib/cjs/bspline/SurfaceLocationDetail.js +12 -0
  43. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  44. package/lib/cjs/clipping/AlternatingConvexClipTree.js +14 -13
  45. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  46. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  47. package/lib/cjs/clipping/BooleanClipNode.js +4 -0
  48. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  49. package/lib/cjs/clipping/ClipPlane.js +10 -1
  50. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  51. package/lib/cjs/clipping/ClipPrimitive.js +19 -0
  52. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  53. package/lib/cjs/clipping/ClipUtils.js +5 -1
  54. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  55. package/lib/cjs/clipping/ClipVector.js +11 -8
  56. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  57. package/lib/cjs/clipping/ConvexClipPlaneSet.js +5 -3
  58. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  59. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  60. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  61. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  62. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  63. package/lib/cjs/core-geometry.d.ts +1 -0
  64. package/lib/cjs/core-geometry.d.ts.map +1 -1
  65. package/lib/cjs/core-geometry.js +1 -0
  66. package/lib/cjs/core-geometry.js.map +1 -1
  67. package/lib/cjs/curve/Arc3d.d.ts +20 -4
  68. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  69. package/lib/cjs/curve/Arc3d.js +86 -21
  70. package/lib/cjs/curve/Arc3d.js.map +1 -1
  71. package/lib/cjs/curve/ConstructCurveBetweenCurves.js +3 -0
  72. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  73. package/lib/cjs/curve/CoordinateXYZ.js +3 -2
  74. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  75. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  76. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  77. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -10
  78. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  79. package/lib/cjs/curve/CurveCollection.d.ts +10 -0
  80. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  81. package/lib/cjs/curve/CurveCollection.js +35 -9
  82. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  83. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  84. package/lib/cjs/curve/CurveExtendMode.d.ts +13 -5
  85. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  86. package/lib/cjs/curve/CurveExtendMode.js +19 -15
  87. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  88. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  89. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  90. package/lib/cjs/curve/CurveFactory.js +213 -135
  91. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  92. package/lib/cjs/curve/CurveLocationDetail.js +44 -0
  93. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  94. package/lib/cjs/curve/CurveOps.js.map +1 -1
  95. package/lib/cjs/curve/CurvePrimitive.d.ts +74 -18
  96. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  97. package/lib/cjs/curve/CurvePrimitive.js +86 -18
  98. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  99. package/lib/cjs/curve/CurveProcessor.js +2 -0
  100. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  101. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  102. package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -0
  103. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  104. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  105. package/lib/cjs/curve/LineSegment3d.js +6 -2
  106. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  107. package/lib/cjs/curve/LineString3d.d.ts +8 -7
  108. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  109. package/lib/cjs/curve/LineString3d.js +52 -29
  110. package/lib/cjs/curve/LineString3d.js.map +1 -1
  111. package/lib/cjs/curve/Loop.js +12 -4
  112. package/lib/cjs/curve/Loop.js.map +1 -1
  113. package/lib/cjs/curve/OffsetOptions.js +25 -21
  114. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  115. package/lib/cjs/curve/ParityRegion.js +4 -2
  116. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  117. package/lib/cjs/curve/Path.js +2 -2
  118. package/lib/cjs/curve/Path.js.map +1 -1
  119. package/lib/cjs/curve/PointString3d.js +3 -2
  120. package/lib/cjs/curve/PointString3d.js.map +1 -1
  121. package/lib/cjs/curve/ProxyCurve.js +1 -0
  122. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  123. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  124. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  125. package/lib/cjs/curve/Query/CurveSplitContext.js +3 -0
  126. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  127. package/lib/cjs/curve/Query/CylindricalRange.js +6 -2
  128. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  129. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  130. package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -6
  131. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  132. package/lib/cjs/curve/Query/StrokeCountChain.js +12 -0
  133. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  134. package/lib/cjs/curve/Query/StrokeCountMap.js +14 -0
  135. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  136. package/lib/cjs/curve/RegionMomentsXY.js +4 -5
  137. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  138. package/lib/cjs/curve/RegionOps.js +9 -10
  139. package/lib/cjs/curve/RegionOps.js.map +1 -1
  140. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +24 -1
  141. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  142. package/lib/cjs/curve/StrokeOptions.d.ts +10 -5
  143. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  144. package/lib/cjs/curve/StrokeOptions.js +30 -8
  145. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  146. package/lib/cjs/curve/UnionRegion.js +4 -2
  147. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  148. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +71 -0
  149. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -0
  150. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js +181 -0
  151. package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -0
  152. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  153. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  154. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js +6 -0
  155. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  156. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +2 -0
  157. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  158. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  159. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts +21 -5
  160. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  161. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +53 -20
  162. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  163. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  164. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  165. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  166. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  167. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  168. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  169. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  170. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  171. package/lib/cjs/curve/internalContexts/CurveLengthContext.js +6 -0
  172. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  173. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  174. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  175. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
  176. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  177. package/lib/cjs/curve/internalContexts/GapSearchContext.js +1 -0
  178. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  179. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +12 -0
  180. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  181. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +5 -3
  182. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +1 -1
  183. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +6 -3
  184. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  185. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  186. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  187. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +22 -4
  188. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  189. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +1 -0
  190. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  191. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +3 -0
  192. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  193. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  194. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  195. package/lib/cjs/curve/spiral/ClothoidSeries.js +4 -0
  196. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  197. package/lib/cjs/curve/spiral/CubicEvaluator.js +2 -0
  198. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  199. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +4 -0
  200. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  201. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  202. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  203. package/lib/cjs/curve/spiral/DirectSpiral3d.js +12 -2
  204. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  205. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +24 -4
  206. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  207. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  208. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  209. package/lib/cjs/curve/spiral/NormalizedTransition.js +5 -0
  210. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  211. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  212. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  213. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +10 -0
  214. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  215. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +10 -0
  216. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  217. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +6 -0
  218. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  219. package/lib/cjs/geometry3d/Angle.js +18 -16
  220. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  221. package/lib/cjs/geometry3d/AngleSweep.d.ts +8 -3
  222. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  223. package/lib/cjs/geometry3d/AngleSweep.js +22 -10
  224. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  225. package/lib/cjs/geometry3d/BarycentricTriangle.js +25 -0
  226. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  227. package/lib/cjs/geometry3d/BilinearPatch.js +8 -0
  228. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  229. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +5 -0
  230. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  231. package/lib/cjs/geometry3d/Ellipsoid.d.ts +8 -7
  232. package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -1
  233. package/lib/cjs/geometry3d/Ellipsoid.js +63 -14
  234. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  235. package/lib/cjs/geometry3d/FrameBuilder.js +12 -4
  236. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  237. package/lib/cjs/geometry3d/FrustumAnimation.js +7 -0
  238. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  239. package/lib/cjs/geometry3d/GeometryHandler.d.ts +15 -16
  240. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  241. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  242. package/lib/cjs/geometry3d/GrowableBlockedArray.js +12 -0
  243. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  244. package/lib/cjs/geometry3d/GrowableFloat64Array.js +3 -0
  245. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  246. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +0 -5
  247. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  248. package/lib/cjs/geometry3d/GrowableXYArray.js +16 -7
  249. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  250. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  251. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  252. package/lib/cjs/geometry3d/GrowableXYZArray.js +70 -16
  253. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  254. package/lib/cjs/geometry3d/IndexedCollectionInterval.js +6 -0
  255. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  256. package/lib/cjs/geometry3d/IndexedXYCollection.js +1 -0
  257. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  258. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  259. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  260. package/lib/cjs/geometry3d/IndexedXYZCollection.js +26 -11
  261. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  262. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  263. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  264. package/lib/cjs/geometry3d/Matrix3d.d.ts +13 -15
  265. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  266. package/lib/cjs/geometry3d/Matrix3d.js +47 -26
  267. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  268. package/lib/cjs/geometry3d/OrderedRotationAngles.js +10 -2
  269. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  270. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  271. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  272. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  273. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  274. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  275. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -0
  276. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  277. package/lib/cjs/geometry3d/Point2dVector2d.js +4 -0
  278. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  279. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +3 -1
  280. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  281. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +7 -10
  282. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  283. package/lib/cjs/geometry3d/Point3dVector3d.js +16 -10
  284. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  285. package/lib/cjs/geometry3d/PointHelpers.d.ts +15 -4
  286. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  287. package/lib/cjs/geometry3d/PointHelpers.js +29 -8
  288. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  289. package/lib/cjs/geometry3d/PointStreaming.js +12 -4
  290. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  291. package/lib/cjs/geometry3d/PolygonOps.d.ts +2 -2
  292. package/lib/cjs/geometry3d/PolygonOps.js +62 -25
  293. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  294. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  295. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  296. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  297. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  298. package/lib/cjs/geometry3d/PolylineOps.js +12 -5
  299. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  300. package/lib/cjs/geometry3d/Range.js +21 -4
  301. package/lib/cjs/geometry3d/Range.js.map +1 -1
  302. package/lib/cjs/geometry3d/Ray2d.js +2 -0
  303. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  304. package/lib/cjs/geometry3d/Ray3d.d.ts +2 -2
  305. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  306. package/lib/cjs/geometry3d/Ray3d.js +20 -11
  307. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  308. package/lib/cjs/geometry3d/ReusableObjectCache.js +4 -0
  309. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  310. package/lib/cjs/geometry3d/Segment1d.js +4 -0
  311. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  312. package/lib/cjs/geometry3d/SortablePolygon.js +11 -0
  313. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  314. package/lib/cjs/geometry3d/Transform.d.ts +1 -1
  315. package/lib/cjs/geometry3d/Transform.js +4 -1
  316. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  317. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  318. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  319. package/lib/cjs/geometry3d/YawPitchRollAngles.js +6 -0
  320. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  321. package/lib/cjs/geometry4d/Map4d.js +2 -0
  322. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  323. package/lib/cjs/geometry4d/Matrix4d.js +1 -0
  324. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  325. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  326. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  327. package/lib/cjs/geometry4d/MomentData.js +90 -66
  328. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  329. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  330. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  331. package/lib/cjs/geometry4d/Point4d.js +2 -0
  332. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  333. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  334. package/lib/cjs/numerics/BezierPolynomials.js +8 -0
  335. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  336. package/lib/cjs/numerics/ClusterableArray.js +29 -13
  337. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  338. package/lib/cjs/numerics/Complex.js +2 -0
  339. package/lib/cjs/numerics/Complex.js.map +1 -1
  340. package/lib/cjs/numerics/ConvexPolygon2d.js +3 -0
  341. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  342. package/lib/cjs/numerics/Newton.js +59 -4
  343. package/lib/cjs/numerics/Newton.js.map +1 -1
  344. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  345. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  346. package/lib/cjs/numerics/PolarData.js +13 -1
  347. package/lib/cjs/numerics/PolarData.js.map +1 -1
  348. package/lib/cjs/numerics/Polynomials.js +64 -26
  349. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  350. package/lib/cjs/numerics/Quadrature.js +26 -20
  351. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  352. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  353. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  354. package/lib/cjs/numerics/TriDiagonalSystem.js +11 -0
  355. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  356. package/lib/cjs/numerics/UnionFind.js +1 -0
  357. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  358. package/lib/cjs/numerics/UsageSums.js +10 -0
  359. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  360. package/lib/cjs/polyface/AuxData.js +16 -0
  361. package/lib/cjs/polyface/AuxData.js.map +1 -1
  362. package/lib/cjs/polyface/BoxTopology.js +67 -67
  363. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  364. package/lib/cjs/polyface/FacetFaceData.d.ts +1 -1
  365. package/lib/cjs/polyface/FacetFaceData.js +3 -1
  366. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  367. package/lib/cjs/polyface/FacetLocationDetail.js +30 -0
  368. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  369. package/lib/cjs/polyface/FacetOrientation.js +12 -1
  370. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  371. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  372. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  373. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +33 -23
  374. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  375. package/lib/cjs/polyface/IndexedEdgeMatcher.js +63 -33
  376. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  377. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  378. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  379. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +16 -5
  380. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  381. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  382. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  383. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +353 -0
  384. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -0
  385. package/lib/cjs/polyface/Polyface.d.ts +43 -14
  386. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  387. package/lib/cjs/polyface/Polyface.js +90 -19
  388. package/lib/cjs/polyface/Polyface.js.map +1 -1
  389. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -27
  390. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  391. package/lib/cjs/polyface/PolyfaceBuilder.js +47 -79
  392. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  393. package/lib/cjs/polyface/PolyfaceClip.js +8 -0
  394. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  395. package/lib/cjs/polyface/PolyfaceData.d.ts +36 -3
  396. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  397. package/lib/cjs/polyface/PolyfaceData.js +114 -8
  398. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  399. package/lib/cjs/polyface/PolyfaceQuery.js +47 -7
  400. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  401. package/lib/cjs/polyface/RangeLengthData.js +7 -0
  402. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  403. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  404. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  405. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +5 -2
  406. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  407. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  408. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  409. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  410. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  411. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +5 -0
  412. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  413. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  414. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  415. package/lib/cjs/polyface/TaggedNumericData.js +8 -0
  416. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  417. package/lib/cjs/polyface/TriangleCandidate.js +3 -0
  418. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  419. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  420. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  421. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  422. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  423. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  424. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  425. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  426. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  427. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +32 -0
  428. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  429. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  430. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  431. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  432. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  433. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  434. package/lib/cjs/polyface/multiclip/XYPointBuckets.js +6 -0
  435. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  436. package/lib/cjs/serialization/BGFBAccessors.d.ts +35 -9
  437. package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -1
  438. package/lib/cjs/serialization/BGFBAccessors.js +141 -179
  439. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  440. package/lib/cjs/serialization/BGFBReader.d.ts +2 -2
  441. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  442. package/lib/cjs/serialization/BGFBReader.js +75 -62
  443. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  444. package/lib/cjs/serialization/BGFBWriter.d.ts +5 -1
  445. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  446. package/lib/cjs/serialization/BGFBWriter.js +18 -3
  447. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  448. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js +1 -0
  449. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  450. package/lib/cjs/serialization/DeepCompare.js +17 -17
  451. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  452. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  453. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  454. package/lib/cjs/serialization/GeometrySamples.js +113 -112
  455. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  456. package/lib/cjs/serialization/IModelJsonSchema.d.ts +78 -64
  457. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  458. package/lib/cjs/serialization/IModelJsonSchema.js +107 -83
  459. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  460. package/lib/cjs/serialization/SerializationHelpers.d.ts +36 -0
  461. package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -1
  462. package/lib/cjs/serialization/SerializationHelpers.js +117 -0
  463. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  464. package/lib/cjs/solid/Box.js +7 -2
  465. package/lib/cjs/solid/Box.js.map +1 -1
  466. package/lib/cjs/solid/Cone.d.ts +39 -14
  467. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  468. package/lib/cjs/solid/Cone.js +52 -16
  469. package/lib/cjs/solid/Cone.js.map +1 -1
  470. package/lib/cjs/solid/LinearSweep.js +4 -2
  471. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  472. package/lib/cjs/solid/RotationalSweep.d.ts +17 -17
  473. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  474. package/lib/cjs/solid/RotationalSweep.js +38 -25
  475. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  476. package/lib/cjs/solid/RuledSweep.d.ts +26 -23
  477. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  478. package/lib/cjs/solid/RuledSweep.js +32 -24
  479. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  480. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  481. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  482. package/lib/cjs/solid/SolidPrimitive.js +11 -6
  483. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  484. package/lib/cjs/solid/Sphere.d.ts +36 -17
  485. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  486. package/lib/cjs/solid/Sphere.js +53 -24
  487. package/lib/cjs/solid/Sphere.js.map +1 -1
  488. package/lib/cjs/solid/SweepContour.d.ts +24 -15
  489. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  490. package/lib/cjs/solid/SweepContour.js +33 -15
  491. package/lib/cjs/solid/SweepContour.js.map +1 -1
  492. package/lib/cjs/solid/TorusPipe.js +7 -2
  493. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  494. package/lib/cjs/topology/ChainMerge.js +16 -4
  495. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  496. package/lib/cjs/topology/Graph.js +41 -6
  497. package/lib/cjs/topology/Graph.js.map +1 -1
  498. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  499. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  500. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  501. package/lib/cjs/topology/HalfEdgeGraphSearch.js +2 -0
  502. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  503. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +9 -2
  504. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  505. package/lib/cjs/topology/HalfEdgeGraphValidation.js +7 -9
  506. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  507. package/lib/cjs/topology/HalfEdgeMarkSet.js +5 -0
  508. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  509. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +6 -0
  510. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  511. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +1 -0
  512. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  513. package/lib/cjs/topology/HalfEdgePositionDetail.js +16 -0
  514. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  515. package/lib/cjs/topology/HalfEdgePriorityQueue.js +2 -0
  516. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  517. package/lib/cjs/topology/InsertAndRetriangulateContext.js +4 -0
  518. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  519. package/lib/cjs/topology/MaskManager.js +3 -0
  520. package/lib/cjs/topology/MaskManager.js.map +1 -1
  521. package/lib/cjs/topology/Merging.js +11 -6
  522. package/lib/cjs/topology/Merging.js.map +1 -1
  523. package/lib/cjs/topology/RegularizeFace.js +22 -0
  524. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  525. package/lib/cjs/topology/SignedDataSummary.js +22 -0
  526. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  527. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  528. package/lib/cjs/topology/Triangulation.d.ts +3 -3
  529. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  530. package/lib/cjs/topology/Triangulation.js +28 -18
  531. package/lib/cjs/topology/Triangulation.js.map +1 -1
  532. package/lib/cjs/topology/XYParitySearchContext.js +13 -0
  533. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  534. package/lib/esm/Constant.js +17 -17
  535. package/lib/esm/Constant.js.map +1 -1
  536. package/lib/esm/Geometry.d.ts +13 -4
  537. package/lib/esm/Geometry.d.ts.map +1 -1
  538. package/lib/esm/Geometry.js +51 -39
  539. package/lib/esm/Geometry.js.map +1 -1
  540. package/lib/esm/bspline/AkimaCurve3d.js +3 -1
  541. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  542. package/lib/esm/bspline/BSpline1dNd.d.ts +90 -54
  543. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  544. package/lib/esm/bspline/BSpline1dNd.js +137 -84
  545. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  546. package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
  547. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  548. package/lib/esm/bspline/BSplineCurve.js +249 -181
  549. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  550. package/lib/esm/bspline/BSplineCurve3dH.js +1 -0
  551. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  552. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  553. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  554. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  555. package/lib/esm/bspline/BSplineSurface.js +22 -2
  556. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  557. package/lib/esm/bspline/Bezier1dNd.js +6 -0
  558. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  559. package/lib/esm/bspline/BezierCurve3d.d.ts +3 -1
  560. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
  561. package/lib/esm/bspline/BezierCurve3d.js +5 -5
  562. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  563. package/lib/esm/bspline/BezierCurve3dH.js +2 -0
  564. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  565. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  566. package/lib/esm/bspline/BezierCurveBase.js +21 -2
  567. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  568. package/lib/esm/bspline/InterpolationCurve3d.js +12 -1
  569. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  570. package/lib/esm/bspline/KnotVector.d.ts +82 -60
  571. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  572. package/lib/esm/bspline/KnotVector.js +144 -84
  573. package/lib/esm/bspline/KnotVector.js.map +1 -1
  574. package/lib/esm/bspline/SurfaceLocationDetail.js +12 -0
  575. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  576. package/lib/esm/clipping/AlternatingConvexClipTree.js +14 -13
  577. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  578. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  579. package/lib/esm/clipping/BooleanClipNode.js +4 -0
  580. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  581. package/lib/esm/clipping/ClipPlane.js +10 -1
  582. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  583. package/lib/esm/clipping/ClipPrimitive.js +19 -0
  584. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  585. package/lib/esm/clipping/ClipUtils.js +5 -1
  586. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  587. package/lib/esm/clipping/ClipVector.js +11 -8
  588. package/lib/esm/clipping/ClipVector.js.map +1 -1
  589. package/lib/esm/clipping/ConvexClipPlaneSet.js +5 -3
  590. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  591. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  592. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  593. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  594. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  595. package/lib/esm/core-geometry.d.ts +1 -0
  596. package/lib/esm/core-geometry.d.ts.map +1 -1
  597. package/lib/esm/core-geometry.js +1 -0
  598. package/lib/esm/core-geometry.js.map +1 -1
  599. package/lib/esm/curve/Arc3d.d.ts +20 -4
  600. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  601. package/lib/esm/curve/Arc3d.js +86 -21
  602. package/lib/esm/curve/Arc3d.js.map +1 -1
  603. package/lib/esm/curve/ConstructCurveBetweenCurves.js +3 -0
  604. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  605. package/lib/esm/curve/CoordinateXYZ.js +3 -2
  606. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  607. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  608. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  609. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -10
  610. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  611. package/lib/esm/curve/CurveCollection.d.ts +10 -0
  612. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  613. package/lib/esm/curve/CurveCollection.js +35 -9
  614. package/lib/esm/curve/CurveCollection.js.map +1 -1
  615. package/lib/esm/curve/CurveCurve.js.map +1 -1
  616. package/lib/esm/curve/CurveExtendMode.d.ts +13 -5
  617. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  618. package/lib/esm/curve/CurveExtendMode.js +19 -15
  619. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  620. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  621. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  622. package/lib/esm/curve/CurveFactory.js +213 -135
  623. package/lib/esm/curve/CurveFactory.js.map +1 -1
  624. package/lib/esm/curve/CurveLocationDetail.js +44 -0
  625. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  626. package/lib/esm/curve/CurveOps.js.map +1 -1
  627. package/lib/esm/curve/CurvePrimitive.d.ts +74 -18
  628. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  629. package/lib/esm/curve/CurvePrimitive.js +86 -18
  630. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  631. package/lib/esm/curve/CurveProcessor.js +2 -0
  632. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  633. package/lib/esm/curve/CurveTypes.js.map +1 -1
  634. package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -0
  635. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  636. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  637. package/lib/esm/curve/LineSegment3d.js +6 -2
  638. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  639. package/lib/esm/curve/LineString3d.d.ts +8 -7
  640. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  641. package/lib/esm/curve/LineString3d.js +52 -29
  642. package/lib/esm/curve/LineString3d.js.map +1 -1
  643. package/lib/esm/curve/Loop.js +12 -4
  644. package/lib/esm/curve/Loop.js.map +1 -1
  645. package/lib/esm/curve/OffsetOptions.js +25 -21
  646. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  647. package/lib/esm/curve/ParityRegion.js +4 -2
  648. package/lib/esm/curve/ParityRegion.js.map +1 -1
  649. package/lib/esm/curve/Path.js +2 -2
  650. package/lib/esm/curve/Path.js.map +1 -1
  651. package/lib/esm/curve/PointString3d.js +3 -2
  652. package/lib/esm/curve/PointString3d.js.map +1 -1
  653. package/lib/esm/curve/ProxyCurve.js +1 -0
  654. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  655. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  656. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  657. package/lib/esm/curve/Query/CurveSplitContext.js +3 -0
  658. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  659. package/lib/esm/curve/Query/CylindricalRange.js +6 -2
  660. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  661. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  662. package/lib/esm/curve/Query/PlanarSubdivision.js +4 -6
  663. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  664. package/lib/esm/curve/Query/StrokeCountChain.js +12 -0
  665. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  666. package/lib/esm/curve/Query/StrokeCountMap.js +14 -0
  667. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  668. package/lib/esm/curve/RegionMomentsXY.js +4 -5
  669. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  670. package/lib/esm/curve/RegionOps.js +9 -10
  671. package/lib/esm/curve/RegionOps.js.map +1 -1
  672. package/lib/esm/curve/RegionOpsClassificationSweeps.js +24 -1
  673. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  674. package/lib/esm/curve/StrokeOptions.d.ts +10 -5
  675. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  676. package/lib/esm/curve/StrokeOptions.js +30 -8
  677. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  678. package/lib/esm/curve/UnionRegion.js +4 -2
  679. package/lib/esm/curve/UnionRegion.js.map +1 -1
  680. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts +71 -0
  681. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.d.ts.map +1 -0
  682. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js +177 -0
  683. package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -0
  684. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  685. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  686. package/lib/esm/curve/internalContexts/ChainCollectorContext.js +6 -0
  687. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  688. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +2 -0
  689. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  690. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  691. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts +21 -5
  692. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.d.ts.map +1 -1
  693. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +53 -20
  694. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  695. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  696. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  697. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  698. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  699. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  700. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  701. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  702. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  703. package/lib/esm/curve/internalContexts/CurveLengthContext.js +6 -0
  704. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  705. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  706. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  707. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
  708. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  709. package/lib/esm/curve/internalContexts/GapSearchContext.js +1 -0
  710. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  711. package/lib/esm/curve/internalContexts/MultiChainCollector.js +12 -0
  712. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  713. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts +5 -3
  714. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.d.ts.map +1 -1
  715. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +6 -3
  716. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  717. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  718. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  719. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +22 -4
  720. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  721. package/lib/esm/curve/internalContexts/SumLengthsContext.js +1 -0
  722. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  723. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +3 -0
  724. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  725. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  726. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  727. package/lib/esm/curve/spiral/ClothoidSeries.js +4 -0
  728. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  729. package/lib/esm/curve/spiral/CubicEvaluator.js +2 -0
  730. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  731. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +4 -0
  732. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  733. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  734. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  735. package/lib/esm/curve/spiral/DirectSpiral3d.js +12 -2
  736. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  737. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +24 -4
  738. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  739. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  740. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  741. package/lib/esm/curve/spiral/NormalizedTransition.js +5 -0
  742. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  743. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  744. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  745. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +10 -0
  746. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  747. package/lib/esm/curve/spiral/TransitionSpiral3d.js +10 -0
  748. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  749. package/lib/esm/curve/spiral/XYCurveEvaluator.js +6 -0
  750. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  751. package/lib/esm/geometry3d/Angle.js +18 -16
  752. package/lib/esm/geometry3d/Angle.js.map +1 -1
  753. package/lib/esm/geometry3d/AngleSweep.d.ts +8 -3
  754. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  755. package/lib/esm/geometry3d/AngleSweep.js +22 -10
  756. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  757. package/lib/esm/geometry3d/BarycentricTriangle.js +25 -0
  758. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  759. package/lib/esm/geometry3d/BilinearPatch.js +8 -0
  760. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  761. package/lib/esm/geometry3d/CoincidentGeometryOps.js +5 -0
  762. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  763. package/lib/esm/geometry3d/Ellipsoid.d.ts +8 -7
  764. package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -1
  765. package/lib/esm/geometry3d/Ellipsoid.js +63 -14
  766. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  767. package/lib/esm/geometry3d/FrameBuilder.js +12 -4
  768. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  769. package/lib/esm/geometry3d/FrustumAnimation.js +7 -0
  770. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  771. package/lib/esm/geometry3d/GeometryHandler.d.ts +15 -16
  772. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  773. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  774. package/lib/esm/geometry3d/GrowableBlockedArray.js +12 -0
  775. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  776. package/lib/esm/geometry3d/GrowableFloat64Array.js +3 -0
  777. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  778. package/lib/esm/geometry3d/GrowableXYArray.d.ts +0 -5
  779. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  780. package/lib/esm/geometry3d/GrowableXYArray.js +16 -7
  781. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  782. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  783. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  784. package/lib/esm/geometry3d/GrowableXYZArray.js +70 -16
  785. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  786. package/lib/esm/geometry3d/IndexedCollectionInterval.js +6 -0
  787. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  788. package/lib/esm/geometry3d/IndexedXYCollection.js +1 -0
  789. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  790. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  791. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  792. package/lib/esm/geometry3d/IndexedXYZCollection.js +26 -11
  793. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  794. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  795. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  796. package/lib/esm/geometry3d/Matrix3d.d.ts +13 -15
  797. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  798. package/lib/esm/geometry3d/Matrix3d.js +47 -26
  799. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  800. package/lib/esm/geometry3d/OrderedRotationAngles.js +10 -2
  801. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  802. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  803. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  804. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  805. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  806. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  807. package/lib/esm/geometry3d/Point2dArrayCarrier.js +2 -0
  808. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  809. package/lib/esm/geometry3d/Point2dVector2d.js +4 -0
  810. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  811. package/lib/esm/geometry3d/Point3dArrayCarrier.js +3 -1
  812. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  813. package/lib/esm/geometry3d/Point3dVector3d.d.ts +7 -10
  814. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  815. package/lib/esm/geometry3d/Point3dVector3d.js +16 -10
  816. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  817. package/lib/esm/geometry3d/PointHelpers.d.ts +15 -4
  818. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  819. package/lib/esm/geometry3d/PointHelpers.js +29 -8
  820. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  821. package/lib/esm/geometry3d/PointStreaming.js +12 -4
  822. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  823. package/lib/esm/geometry3d/PolygonOps.d.ts +2 -2
  824. package/lib/esm/geometry3d/PolygonOps.js +62 -25
  825. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  826. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  827. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  828. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  829. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  830. package/lib/esm/geometry3d/PolylineOps.js +12 -5
  831. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  832. package/lib/esm/geometry3d/Range.js +21 -4
  833. package/lib/esm/geometry3d/Range.js.map +1 -1
  834. package/lib/esm/geometry3d/Ray2d.js +2 -0
  835. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  836. package/lib/esm/geometry3d/Ray3d.d.ts +2 -2
  837. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  838. package/lib/esm/geometry3d/Ray3d.js +20 -11
  839. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  840. package/lib/esm/geometry3d/ReusableObjectCache.js +4 -0
  841. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  842. package/lib/esm/geometry3d/Segment1d.js +4 -0
  843. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  844. package/lib/esm/geometry3d/SortablePolygon.js +11 -0
  845. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  846. package/lib/esm/geometry3d/Transform.d.ts +1 -1
  847. package/lib/esm/geometry3d/Transform.js +4 -1
  848. package/lib/esm/geometry3d/Transform.js.map +1 -1
  849. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  850. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  851. package/lib/esm/geometry3d/YawPitchRollAngles.js +6 -0
  852. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  853. package/lib/esm/geometry4d/Map4d.js +2 -0
  854. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  855. package/lib/esm/geometry4d/Matrix4d.js +1 -0
  856. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  857. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  858. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  859. package/lib/esm/geometry4d/MomentData.js +90 -66
  860. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  861. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  862. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  863. package/lib/esm/geometry4d/Point4d.js +2 -0
  864. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  865. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  866. package/lib/esm/numerics/BezierPolynomials.js +8 -0
  867. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  868. package/lib/esm/numerics/ClusterableArray.js +29 -13
  869. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  870. package/lib/esm/numerics/Complex.js +2 -0
  871. package/lib/esm/numerics/Complex.js.map +1 -1
  872. package/lib/esm/numerics/ConvexPolygon2d.js +3 -0
  873. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  874. package/lib/esm/numerics/Newton.js +59 -4
  875. package/lib/esm/numerics/Newton.js.map +1 -1
  876. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  877. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  878. package/lib/esm/numerics/PolarData.js +13 -1
  879. package/lib/esm/numerics/PolarData.js.map +1 -1
  880. package/lib/esm/numerics/Polynomials.js +64 -26
  881. package/lib/esm/numerics/Polynomials.js.map +1 -1
  882. package/lib/esm/numerics/Quadrature.js +26 -20
  883. package/lib/esm/numerics/Quadrature.js.map +1 -1
  884. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  885. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  886. package/lib/esm/numerics/TriDiagonalSystem.js +11 -0
  887. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  888. package/lib/esm/numerics/UnionFind.js +1 -0
  889. package/lib/esm/numerics/UnionFind.js.map +1 -1
  890. package/lib/esm/numerics/UsageSums.js +10 -0
  891. package/lib/esm/numerics/UsageSums.js.map +1 -1
  892. package/lib/esm/polyface/AuxData.js +16 -0
  893. package/lib/esm/polyface/AuxData.js.map +1 -1
  894. package/lib/esm/polyface/BoxTopology.js +67 -67
  895. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  896. package/lib/esm/polyface/FacetFaceData.d.ts +1 -1
  897. package/lib/esm/polyface/FacetFaceData.js +3 -1
  898. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  899. package/lib/esm/polyface/FacetLocationDetail.js +30 -0
  900. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  901. package/lib/esm/polyface/FacetOrientation.js +12 -1
  902. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  903. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  904. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  905. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +33 -23
  906. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  907. package/lib/esm/polyface/IndexedEdgeMatcher.js +63 -33
  908. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  909. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  910. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  911. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +16 -5
  912. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  913. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  914. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  915. package/lib/esm/polyface/IndexedPolyfaceWalker.js +349 -0
  916. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -0
  917. package/lib/esm/polyface/Polyface.d.ts +43 -14
  918. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  919. package/lib/esm/polyface/Polyface.js +90 -19
  920. package/lib/esm/polyface/Polyface.js.map +1 -1
  921. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -27
  922. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  923. package/lib/esm/polyface/PolyfaceBuilder.js +48 -80
  924. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  925. package/lib/esm/polyface/PolyfaceClip.js +8 -0
  926. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  927. package/lib/esm/polyface/PolyfaceData.d.ts +36 -3
  928. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  929. package/lib/esm/polyface/PolyfaceData.js +114 -8
  930. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  931. package/lib/esm/polyface/PolyfaceQuery.js +47 -7
  932. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  933. package/lib/esm/polyface/RangeLengthData.js +7 -0
  934. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  935. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  936. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  937. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +5 -2
  938. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  939. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  940. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  941. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  942. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  943. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +5 -0
  944. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  945. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  946. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  947. package/lib/esm/polyface/TaggedNumericData.js +8 -0
  948. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  949. package/lib/esm/polyface/TriangleCandidate.js +3 -0
  950. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  951. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  952. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  953. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  954. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  955. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  956. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  957. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  958. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  959. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +32 -0
  960. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  961. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  962. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  963. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  964. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  965. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  966. package/lib/esm/polyface/multiclip/XYPointBuckets.js +6 -0
  967. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  968. package/lib/esm/serialization/BGFBAccessors.d.ts +35 -9
  969. package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -1
  970. package/lib/esm/serialization/BGFBAccessors.js +141 -179
  971. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  972. package/lib/esm/serialization/BGFBReader.d.ts +2 -2
  973. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  974. package/lib/esm/serialization/BGFBReader.js +75 -62
  975. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  976. package/lib/esm/serialization/BGFBWriter.d.ts +5 -1
  977. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  978. package/lib/esm/serialization/BGFBWriter.js +18 -3
  979. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  980. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +1 -0
  981. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  982. package/lib/esm/serialization/DeepCompare.js +17 -17
  983. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  984. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  985. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  986. package/lib/esm/serialization/GeometrySamples.js +113 -112
  987. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  988. package/lib/esm/serialization/IModelJsonSchema.d.ts +78 -64
  989. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  990. package/lib/esm/serialization/IModelJsonSchema.js +107 -83
  991. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  992. package/lib/esm/serialization/SerializationHelpers.d.ts +36 -0
  993. package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -1
  994. package/lib/esm/serialization/SerializationHelpers.js +117 -0
  995. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  996. package/lib/esm/solid/Box.js +7 -2
  997. package/lib/esm/solid/Box.js.map +1 -1
  998. package/lib/esm/solid/Cone.d.ts +39 -14
  999. package/lib/esm/solid/Cone.d.ts.map +1 -1
  1000. package/lib/esm/solid/Cone.js +53 -17
  1001. package/lib/esm/solid/Cone.js.map +1 -1
  1002. package/lib/esm/solid/LinearSweep.js +4 -2
  1003. package/lib/esm/solid/LinearSweep.js.map +1 -1
  1004. package/lib/esm/solid/RotationalSweep.d.ts +17 -17
  1005. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  1006. package/lib/esm/solid/RotationalSweep.js +38 -25
  1007. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  1008. package/lib/esm/solid/RuledSweep.d.ts +26 -23
  1009. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  1010. package/lib/esm/solid/RuledSweep.js +32 -24
  1011. package/lib/esm/solid/RuledSweep.js.map +1 -1
  1012. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  1013. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  1014. package/lib/esm/solid/SolidPrimitive.js +11 -6
  1015. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  1016. package/lib/esm/solid/Sphere.d.ts +36 -17
  1017. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  1018. package/lib/esm/solid/Sphere.js +54 -25
  1019. package/lib/esm/solid/Sphere.js.map +1 -1
  1020. package/lib/esm/solid/SweepContour.d.ts +24 -15
  1021. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  1022. package/lib/esm/solid/SweepContour.js +33 -15
  1023. package/lib/esm/solid/SweepContour.js.map +1 -1
  1024. package/lib/esm/solid/TorusPipe.js +7 -2
  1025. package/lib/esm/solid/TorusPipe.js.map +1 -1
  1026. package/lib/esm/topology/ChainMerge.js +16 -4
  1027. package/lib/esm/topology/ChainMerge.js.map +1 -1
  1028. package/lib/esm/topology/Graph.js +41 -6
  1029. package/lib/esm/topology/Graph.js.map +1 -1
  1030. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  1031. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  1032. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  1033. package/lib/esm/topology/HalfEdgeGraphSearch.js +2 -0
  1034. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  1035. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +9 -2
  1036. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  1037. package/lib/esm/topology/HalfEdgeGraphValidation.js +7 -9
  1038. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  1039. package/lib/esm/topology/HalfEdgeMarkSet.js +5 -0
  1040. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  1041. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +6 -0
  1042. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  1043. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +1 -0
  1044. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  1045. package/lib/esm/topology/HalfEdgePositionDetail.js +16 -0
  1046. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  1047. package/lib/esm/topology/HalfEdgePriorityQueue.js +2 -0
  1048. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  1049. package/lib/esm/topology/InsertAndRetriangulateContext.js +4 -0
  1050. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  1051. package/lib/esm/topology/MaskManager.js +3 -0
  1052. package/lib/esm/topology/MaskManager.js.map +1 -1
  1053. package/lib/esm/topology/Merging.js +11 -6
  1054. package/lib/esm/topology/Merging.js.map +1 -1
  1055. package/lib/esm/topology/RegularizeFace.js +22 -0
  1056. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  1057. package/lib/esm/topology/SignedDataSummary.js +22 -0
  1058. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  1059. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  1060. package/lib/esm/topology/Triangulation.d.ts +3 -3
  1061. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  1062. package/lib/esm/topology/Triangulation.js +28 -18
  1063. package/lib/esm/topology/Triangulation.js.map +1 -1
  1064. package/lib/esm/topology/XYParitySearchContext.js +13 -0
  1065. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  1066. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"PointStreaming.js","sourceRoot":"","sources":["../../../src/geometry3d/PointStreaming.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedXYZCollection, LineStringDataVariant, MultiLineStringDataVariant } from \"./IndexedXYZCollection\";\r\nimport { Point3d } from \"./Point3dVector3d\";\r\nimport { Range3d } from \"./Range\";\r\n\r\n//\r\n// remarks: point array variants . . .\r\n// * [[x,y,z], ...]\r\n// * [[Point3d, Point3d]\r\n// * [GrowableXYZArray, ..]\r\n//\r\n/**\r\n * \"no-op\" base class for stream handlers\r\n * @internal\r\n */\r\nexport class PointStreamXYZHandlerBase {\r\n public startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void { }\r\n public handleXYZ(_x: number, _y: number, _z: number): void { }\r\n public endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void { }\r\n}\r\n/** Base class for handling points in pairs.\r\n * * Callers implement handleXYZXYZ to receive point pairs.\r\n * * Callers may implement startChain and endChain.\r\n * * Beware that if startChain is implemented it must call super.startChain () to reset internal x0, y0,z0 to undefined.\r\n * * If that is not done, a point pair will appear from the end of previous chain to start of new chain.\r\n * * This (intermediate base) class does NOT override startChain\r\n */\r\nexport class PointStreamXYZXYZHandlerBase extends PointStreamXYZHandlerBase {\r\n private _x0?: number;\r\n private _y0?: number;\r\n private _z0?: number;\r\n public override handleXYZ(x: number, y: number, z: number): void {\r\n if (this._x0 !== undefined)\r\n this.handleXYZXYZ(this._x0, this._y0!, this._z0!, x, y, z);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._z0 = z;\r\n }\r\n public override startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\r\n this._x0 = this._y0 = this._z0 = undefined;\r\n }\r\n /**\r\n * Handler function called successively for each point0, point1 pair. Concrete class should implement this.\r\n * @param _x0 x coordinate at point 0\r\n * @param _y0 y coordinate of point 0\r\n * @param _z0 z coordinate of point 0\r\n * @param _x1 x coordinate of point 1\r\n * @param _y1 y coordinate of point 1\r\n * @param _z1 z coordinate of point 1\r\n */\r\n public handleXYZXYZ(_x0: number, _y0: number, _z0: number, _x1: number, _y1: number, _z1: number): void { }\r\n}\r\n/**\r\n * Concrete class to handle startChain, handleXYZ and endChain calls and return a (one-level deep array of\r\n * GrowableXYZArray\r\n */\r\nexport class PointStreamGrowableXYZArrayCollector extends PointStreamXYZHandlerBase {\r\n private _pointArrays?: GrowableXYZArray[];\r\n private _currentData?: GrowableXYZArray;\r\n public override startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\r\n this._currentData = undefined;\r\n }\r\n public override handleXYZ(x: number, y: number, z: number): void {\r\n if (!this._currentData)\r\n this._currentData = new GrowableXYZArray();\r\n this._currentData.pushXYZ(x, y, z);\r\n }\r\n public override endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\r\n if (this._currentData !== undefined) {\r\n if (this._pointArrays === undefined)\r\n this._pointArrays = [];\r\n this._pointArrays.push(this._currentData);\r\n this._currentData = undefined;\r\n }\r\n }\r\n /** Return MultiLineStringDataVariant as an array of GrowableXYZArray */\r\n public claimArrayOfGrowableXYZArray(): GrowableXYZArray[] | undefined {\r\n const result = this._pointArrays;\r\n this._pointArrays = undefined;\r\n return result;\r\n }\r\n}\r\n/**\r\n * PointStream handler to collect the range of points.\r\n */\r\nexport class PointStreamRangeCollector extends PointStreamXYZHandlerBase {\r\n private _range?: Range3d = Range3d.createNull();\r\n public override handleXYZ(x: number, y: number, z: number): void {\r\n if (!this._range)\r\n this._range = Range3d.createNull();\r\n this._range.extendXYZ(x, y, z);\r\n }\r\n public claimResult(): Range3d {\r\n const range = this._range;\r\n this._range = undefined;\r\n if (!range)\r\n return Range3d.createNull();\r\n return range;\r\n }\r\n}\r\n\r\nexport class PointStringDeepXYZArrayCollector {\r\n // The 0 entry in this stack \"should\" always end up as a single array.\r\n // Hypothetically some caller might have do start-end that put multiple things\r\n // there. Hence the 0 entry (not the array itself) is the collected result.\r\n private _resultStack: any[];\r\n private _xyzFunction: (x: number, y: number, z: number) => any;\r\n /**\r\n *\r\n * @param xyzFunction function to map (x,y,z) to the leaf object type in the arrays.\r\n */\r\n public constructor(xyzFunction: (x: number, y: number, z: number) => any) {\r\n this._xyzFunction = xyzFunction;\r\n this._resultStack = [];\r\n // create the [0] placeholder.\r\n this._resultStack.push([]);\r\n }\r\n\r\n public startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\r\n this._resultStack.push([]);\r\n }\r\n\r\n public handleXYZ(x: number, y: number, z: number): void {\r\n this._resultStack[this._resultStack.length - 1].push(this._xyzFunction(x, y, z));\r\n }\r\n public endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\r\n const q = this._resultStack[this._resultStack.length - 1];\r\n this._resultStack.pop();\r\n this._resultStack[this._resultStack.length - 1].push(q);\r\n }\r\n\r\n public claimResult(): any[] {\r\n const r = this._resultStack[0];\r\n if (r.length === 1)\r\n return r[0];\r\n return r;\r\n }\r\n}\r\n/**\r\n * class for converting variant point data into more specific forms.\r\n * @internal\r\n */\r\nexport class VariantPointDataStream {\r\n private static _workPoint?: Point3d;\r\n /** Invoke a callback with each x,y,z from an array of points in variant forms.\r\n * @param startChainCallback called to announce the beginning of points (or recursion)\r\n * @param pointCallback (index, x,y,z) = function to receive point coordinates one by one\r\n * @param endChainCallback called to announce the end of handling of an array.\r\n */\r\n public static streamXYZ(data: MultiLineStringDataVariant, handler: PointStreamXYZHandlerBase) {\r\n let numPoint = 0;\r\n if (Array.isArray(data)) {\r\n // If the first entry is a point, expect the entire array to be points.\r\n // otherwise recurse to each member of this array.\r\n if (data.length > 0 && Point3d.isAnyImmediatePointType(data[0])) {\r\n handler.startChain(data, true);\r\n for (const p of data) {\r\n const x = Point3d.accessX(p);\r\n const y = Point3d.accessY(p);\r\n const z = Point3d.accessZ(p, 0) as number;\r\n if (x !== undefined && y !== undefined)\r\n handler.handleXYZ(x, y, z);\r\n numPoint++;\r\n }\r\n handler.endChain(data, true);\r\n } else {\r\n // This is an array that does not immediately have points.\r\n handler.startChain(data, false);\r\n for (const child of data) {\r\n numPoint += this.streamXYZ((child as unknown) as LineStringDataVariant, handler);\r\n }\r\n handler.endChain(data, false);\r\n }\r\n } else if (data instanceof IndexedXYZCollection) {\r\n handler.startChain(data, true);\r\n const q = VariantPointDataStream._workPoint = Point3d.create(0, 0, 0, VariantPointDataStream._workPoint);\r\n for (let i = 0; i < data.length; i++) {\r\n data.getPoint3dAtCheckedPointIndex(i, q);\r\n numPoint++;\r\n handler.handleXYZ(q.x, q.y, q.z);\r\n }\r\n handler.endChain(data, true);\r\n }\r\n return numPoint;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"PointStreaming.js","sourceRoot":"","sources":["../../../src/geometry3d/PointStreaming.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module CartesianGeometry\n */\n\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\nimport { IndexedXYZCollection, LineStringDataVariant, MultiLineStringDataVariant } from \"./IndexedXYZCollection\";\nimport { Point3d } from \"./Point3dVector3d\";\nimport { Range3d } from \"./Range\";\n\n//\n// remarks: point array variants . . .\n// * [[x,y,z], ...]\n// * [[Point3d, Point3d]\n// * [GrowableXYZArray, ..]\n//\n/**\n * \"no-op\" base class for stream handlers\n * @internal\n */\nexport class PointStreamXYZHandlerBase {\n public startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void { }\n public handleXYZ(_x: number, _y: number, _z: number): void { }\n public endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void { }\n}\n/** Base class for handling points in pairs.\n * * Callers implement handleXYZXYZ to receive point pairs.\n * * Callers may implement startChain and endChain.\n * * Beware that if startChain is implemented it must call super.startChain () to reset internal x0, y0,z0 to undefined.\n * * If that is not done, a point pair will appear from the end of previous chain to start of new chain.\n * * This (intermediate base) class does NOT override startChain\n */\nexport class PointStreamXYZXYZHandlerBase extends PointStreamXYZHandlerBase {\n private _x0?: number;\n private _y0?: number;\n private _z0?: number;\n public override handleXYZ(x: number, y: number, z: number): void {\n if (this._x0 !== undefined)\n this.handleXYZXYZ(this._x0, this._y0!, this._z0!, x, y, z);\n this._x0 = x;\n this._y0 = y;\n this._z0 = z;\n }\n public override startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\n this._x0 = this._y0 = this._z0 = undefined;\n }\n /**\n * Handler function called successively for each point0, point1 pair. Concrete class should implement this.\n * @param _x0 x coordinate at point 0\n * @param _y0 y coordinate of point 0\n * @param _z0 z coordinate of point 0\n * @param _x1 x coordinate of point 1\n * @param _y1 y coordinate of point 1\n * @param _z1 z coordinate of point 1\n */\n public handleXYZXYZ(_x0: number, _y0: number, _z0: number, _x1: number, _y1: number, _z1: number): void { }\n}\n/**\n * Concrete class to handle startChain, handleXYZ and endChain calls and return a (one-level deep array of\n * GrowableXYZArray\n */\nexport class PointStreamGrowableXYZArrayCollector extends PointStreamXYZHandlerBase {\n private _pointArrays?: GrowableXYZArray[];\n private _currentData?: GrowableXYZArray;\n public override startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\n this._currentData = undefined;\n }\n public override handleXYZ(x: number, y: number, z: number): void {\n if (!this._currentData)\n this._currentData = new GrowableXYZArray();\n this._currentData.pushXYZ(x, y, z);\n }\n public override endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\n if (this._currentData !== undefined) {\n if (this._pointArrays === undefined)\n this._pointArrays = [];\n this._pointArrays.push(this._currentData);\n this._currentData = undefined;\n }\n }\n /** Return MultiLineStringDataVariant as an array of GrowableXYZArray */\n public claimArrayOfGrowableXYZArray(): GrowableXYZArray[] | undefined {\n const result = this._pointArrays;\n this._pointArrays = undefined;\n return result;\n }\n}\n/**\n * PointStream handler to collect the range of points.\n */\nexport class PointStreamRangeCollector extends PointStreamXYZHandlerBase {\n private _range?: Range3d = Range3d.createNull();\n public override handleXYZ(x: number, y: number, z: number): void {\n if (!this._range)\n this._range = Range3d.createNull();\n this._range.extendXYZ(x, y, z);\n }\n public claimResult(): Range3d {\n const range = this._range;\n this._range = undefined;\n if (!range)\n return Range3d.createNull();\n return range;\n }\n}\n\nexport class PointStringDeepXYZArrayCollector {\n // The 0 entry in this stack \"should\" always end up as a single array.\n // Hypothetically some caller might have do start-end that put multiple things\n // there. Hence the 0 entry (not the array itself) is the collected result.\n private _resultStack: any[];\n private _xyzFunction: (x: number, y: number, z: number) => any;\n /**\n *\n * @param xyzFunction function to map (x,y,z) to the leaf object type in the arrays.\n */\n public constructor(xyzFunction: (x: number, y: number, z: number) => any) {\n this._xyzFunction = xyzFunction;\n this._resultStack = [];\n // create the [0] placeholder.\n this._resultStack.push([]);\n }\n\n public startChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\n this._resultStack.push([]);\n }\n\n public handleXYZ(x: number, y: number, z: number): void {\n this._resultStack[this._resultStack.length - 1].push(this._xyzFunction(x, y, z));\n }\n public endChain(_chainData: MultiLineStringDataVariant, _isLeaf: boolean): void {\n const q = this._resultStack[this._resultStack.length - 1];\n this._resultStack.pop();\n this._resultStack[this._resultStack.length - 1].push(q);\n }\n\n public claimResult(): any[] {\n const r = this._resultStack[0];\n if (r.length === 1)\n return r[0];\n return r;\n }\n}\n/**\n * class for converting variant point data into more specific forms.\n * @internal\n */\nexport class VariantPointDataStream {\n private static _workPoint?: Point3d;\n /** Invoke a callback with each x,y,z from an array of points in variant forms.\n * @param startChainCallback called to announce the beginning of points (or recursion)\n * @param pointCallback (index, x,y,z) = function to receive point coordinates one by one\n * @param endChainCallback called to announce the end of handling of an array.\n */\n public static streamXYZ(data: MultiLineStringDataVariant, handler: PointStreamXYZHandlerBase) {\n let numPoint = 0;\n if (Array.isArray(data)) {\n // If the first entry is a point, expect the entire array to be points.\n // otherwise recurse to each member of this array.\n if (data.length > 0 && Point3d.isAnyImmediatePointType(data[0])) {\n handler.startChain(data, true);\n for (const p of data) {\n const x = Point3d.accessX(p);\n const y = Point3d.accessY(p);\n const z = Point3d.accessZ(p, 0) as number;\n if (x !== undefined && y !== undefined)\n handler.handleXYZ(x, y, z);\n numPoint++;\n }\n handler.endChain(data, true);\n } else {\n // This is an array that does not immediately have points.\n handler.startChain(data, false);\n for (const child of data) {\n numPoint += this.streamXYZ((child as unknown) as LineStringDataVariant, handler);\n }\n handler.endChain(data, false);\n }\n } else if (data instanceof IndexedXYZCollection) {\n handler.startChain(data, true);\n const q = VariantPointDataStream._workPoint = Point3d.create(0, 0, 0, VariantPointDataStream._workPoint);\n for (let i = 0; i < data.length; i++) {\n data.getPoint3dAtCheckedPointIndex(i, q);\n numPoint++;\n handler.handleXYZ(q.x, q.y, q.z);\n }\n handler.endChain(data, true);\n }\n return numPoint;\n }\n\n}\n"]}
@@ -195,8 +195,8 @@ export declare class PolygonOps {
195
195
  static sumAreaXY(polygons: Point3d[][]): number;
196
196
  /**
197
197
  * Return a Ray3d with (assuming the polygon is planar and not self-intersecting):
198
- * * `origin` at the centroid of the (3D) polygon
199
- * * `direction` is the unit vector perpendicular to the plane
198
+ * * `origin` at the centroid of the (3D) polygon,
199
+ * * `direction` is the unit vector perpendicular to the plane,
200
200
  * * `a` is the area.
201
201
  * @param points
202
202
  */
@@ -26,6 +26,18 @@ import { SortablePolygon } from "./SortablePolygon";
26
26
  * @public
27
27
  */
28
28
  export class PolygonLocationDetail {
29
+ /** The coordinates of the point p. */
30
+ point;
31
+ /** Application-specific number */
32
+ a;
33
+ /** Application-specific vector */
34
+ v;
35
+ /** A number that classifies the point's location with respect to the polygon. */
36
+ code;
37
+ /** Index of the polygon vertex at the base of the edge closest to p. */
38
+ closestEdgeIndex;
39
+ /** The parameter along the closest edge of the projection of p. */
40
+ closestEdgeParam;
29
41
  constructor() {
30
42
  this.point = new Point3d();
31
43
  this.a = 0.0;
@@ -93,6 +105,10 @@ export class PolygonLocationDetail {
93
105
  * @public
94
106
  */
95
107
  export class PolygonLocationDetailPair {
108
+ /** The first of the two details. */
109
+ detailA;
110
+ /** The second of the two details. */
111
+ detailB;
96
112
  /** Constructor, captures inputs */
97
113
  constructor(detailA, detailB) {
98
114
  this.detailA = detailA ? detailA : PolygonLocationDetail.create();
@@ -125,6 +141,14 @@ export class PolygonLocationDetailPair {
125
141
  * @internal
126
142
  */
127
143
  export class CutLoop {
144
+ /* All points of the loop */
145
+ xyz;
146
+ /* ray within point of "on" edge */
147
+ edge;
148
+ sortCoordinate0;
149
+ sortCoordinate1;
150
+ sortDelta;
151
+ isNotch;
128
152
  constructor(xyz) {
129
153
  this.xyz = xyz;
130
154
  this.edge = undefined;
@@ -205,6 +229,10 @@ export class CutLoop {
205
229
  * @internal
206
230
  */
207
231
  export class CutLoopMergeContext {
232
+ /** Array (filled by user code) of loops being sorted. Contents are subject to being changed during sort. */
233
+ inputLoops;
234
+ /** Array (filled by sortAndMergeLoops) of reorganized loops. */
235
+ outputLoops;
208
236
  // Initialize with empty loop arrays.
209
237
  constructor() {
210
238
  this.inputLoops = [];
@@ -387,6 +415,25 @@ export class PolygonOps {
387
415
  s *= 0.5;
388
416
  return s;
389
417
  }
418
+ /** These values are the integrated area moment products [xx,xy,xz, x]
419
+ * for a right triangle in the first quadrant at the origin -- (0,0),(1,0),(0,1)
420
+ */
421
+ static _triangleMomentWeights = Matrix4d.createRowValues(2.0 / 24.0, 1.0 / 24.0, 0, 4.0 / 24.0, 1.0 / 24.0, 2.0 / 24.0, 0, 4.0 / 24.0, 0, 0, 0, 0, 4.0 / 24.0, 4.0 / 24.0, 0, 12.0 / 24.0);
422
+ /** These values are the integrated volume moment products [xx,xy,xz, x, yx,yy,yz,y, zx,zy,zz,z,x,y,z,1]
423
+ * for a tetrahedron in the first quadrant at the origin -- (0,00),(1,0,0),(0,1,0),(0,0,1)
424
+ */
425
+ static _tetrahedralMomentWeights = Matrix4d.createRowValues(1.0 / 60.0, 1.0 / 120, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 60.0, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 120, 1.0 / 60.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 6.0);
426
+ // statics for shared reuse.
427
+ // many methods use these.
428
+ // only use them in "leaf" methods that are certain not to call other users . . .
429
+ static _vector0 = Vector3d.create();
430
+ static _vector1 = Vector3d.create();
431
+ static _vector2 = Vector3d.create();
432
+ static _vectorOrigin = Vector3d.create();
433
+ static _normal = Vector3d.create();
434
+ static _matrixA = Matrix4d.createIdentity();
435
+ static _matrixB = Matrix4d.createIdentity();
436
+ static _matrixC = Matrix4d.createIdentity();
390
437
  /** return a vector which is perpendicular to the polygon and has magnitude equal to the polygon area. */
391
438
  static areaNormalGo(points, result) {
392
439
  if (!result)
@@ -453,8 +500,8 @@ export class PolygonOps {
453
500
  }
454
501
  /**
455
502
  * Return a Ray3d with (assuming the polygon is planar and not self-intersecting):
456
- * * `origin` at the centroid of the (3D) polygon
457
- * * `direction` is the unit vector perpendicular to the plane
503
+ * * `origin` at the centroid of the (3D) polygon,
504
+ * * `direction` is the unit vector perpendicular to the plane,
458
505
  * * `a` is the area.
459
506
  * @param points
460
507
  */
@@ -1032,6 +1079,14 @@ export class PolygonOps {
1032
1079
  }
1033
1080
  return result;
1034
1081
  }
1082
+ // work objects, allocated as needed
1083
+ static _workXYZ;
1084
+ static _workXY0;
1085
+ static _workXY1;
1086
+ static _workXY2;
1087
+ static _workRay;
1088
+ static _workMatrix3d;
1089
+ static _workPlane;
1035
1090
  /** Compute the intersection of a line (parameterized as a ray) with the plane of this polygon.
1036
1091
  * @param polygon points of the polygon, closure point optional
1037
1092
  * @param ray infinite line to intersect, as a ray
@@ -1272,6 +1327,7 @@ export class PolygonOps {
1272
1327
  }
1273
1328
  return polygon;
1274
1329
  }
1330
+ static _workCLDPair;
1275
1331
  /**
1276
1332
  * Find smallest distance between polygons.
1277
1333
  * * For efficiency, input polygons should include closure edge.
@@ -1296,30 +1352,14 @@ export class PolygonOps {
1296
1352
  return result;
1297
1353
  }
1298
1354
  }
1299
- /** These values are the integrated area moment products [xx,xy,xz, x]
1300
- * for a right triangle in the first quadrant at the origin -- (0,0),(1,0),(0,1)
1301
- */
1302
- PolygonOps._triangleMomentWeights = Matrix4d.createRowValues(2.0 / 24.0, 1.0 / 24.0, 0, 4.0 / 24.0, 1.0 / 24.0, 2.0 / 24.0, 0, 4.0 / 24.0, 0, 0, 0, 0, 4.0 / 24.0, 4.0 / 24.0, 0, 12.0 / 24.0);
1303
- /** These values are the integrated volume moment products [xx,xy,xz, x, yx,yy,yz,y, zx,zy,zz,z,x,y,z,1]
1304
- * for a tetrahedron in the first quadrant at the origin -- (0,00),(1,0,0),(0,1,0),(0,0,1)
1305
- */
1306
- PolygonOps._tetrahedralMomentWeights = Matrix4d.createRowValues(1.0 / 60.0, 1.0 / 120, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 60.0, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 120, 1.0 / 60.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 6.0);
1307
- // statics for shared reuse.
1308
- // many methods use these.
1309
- // only use them in "leaf" methods that are certain not to call other users . . .
1310
- PolygonOps._vector0 = Vector3d.create();
1311
- PolygonOps._vector1 = Vector3d.create();
1312
- PolygonOps._vector2 = Vector3d.create();
1313
- PolygonOps._vectorOrigin = Vector3d.create();
1314
- PolygonOps._normal = Vector3d.create();
1315
- PolygonOps._matrixA = Matrix4d.createIdentity();
1316
- PolygonOps._matrixB = Matrix4d.createIdentity();
1317
- PolygonOps._matrixC = Matrix4d.createIdentity();
1318
1355
  /**
1319
1356
  * `IndexedXYZCollectionPolygonOps` class contains _static_ methods for typical operations on polygons carried as `IndexedXYZCollection`
1320
1357
  * @public
1321
1358
  */
1322
1359
  export class IndexedXYZCollectionPolygonOps {
1360
+ static _xyz0Work = Point3d.create();
1361
+ static _xyz1Work = Point3d.create();
1362
+ static _xyz2Work = Point3d.create();
1323
1363
  /**
1324
1364
  * Split a (convex) polygon into 2 parts based on altitude evaluations.
1325
1365
  * * POSITIVE ALTITUDE IS IN
@@ -1576,14 +1616,12 @@ export class IndexedXYZCollectionPolygonOps {
1576
1616
  return xyz;
1577
1617
  }
1578
1618
  }
1579
- IndexedXYZCollectionPolygonOps._xyz0Work = Point3d.create();
1580
- IndexedXYZCollectionPolygonOps._xyz1Work = Point3d.create();
1581
- IndexedXYZCollectionPolygonOps._xyz2Work = Point3d.create();
1582
1619
  /**
1583
1620
  * `Point3dArrayPolygonOps` class contains _static_ methods for typical operations on polygons carried as `Point3d[]`
1584
1621
  * @public
1585
1622
  */
1586
1623
  export class Point3dArrayPolygonOps {
1624
+ static _xyz0Work = Point3d.create();
1587
1625
  // private static _xyz1Work: Point3d = Point3d.create();
1588
1626
  // private static _xyz2Work: Point3d = Point3d.create();
1589
1627
  /**
@@ -1657,5 +1695,4 @@ export class Point3dArrayPolygonOps {
1657
1695
  }
1658
1696
  }
1659
1697
  }
1660
- Point3dArrayPolygonOps._xyz0Work = Point3d.create();
1661
1698
  //# sourceMappingURL=PolygonOps.js.map