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

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