@itwin/core-geometry 3.0.0-dev.76 → 3.0.0-dev.80

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 (1999) hide show
  1. package/CHANGELOG.md +1049 -0
  2. package/lib/{Constant.d.ts → cjs/Constant.d.ts} +0 -0
  3. package/lib/cjs/Constant.d.ts.map +1 -0
  4. package/lib/{Constant.js → cjs/Constant.js} +0 -0
  5. package/lib/cjs/Constant.js.map +1 -0
  6. package/lib/{Geometry.d.ts → cjs/Geometry.d.ts} +0 -0
  7. package/lib/cjs/Geometry.d.ts.map +1 -0
  8. package/lib/{Geometry.js → cjs/Geometry.js} +0 -0
  9. package/lib/cjs/Geometry.js.map +1 -0
  10. package/lib/{bspline → cjs/bspline}/AkimaCurve3d.d.ts +0 -0
  11. package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -0
  12. package/lib/{bspline → cjs/bspline}/AkimaCurve3d.js +0 -0
  13. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -0
  14. package/lib/{bspline → cjs/bspline}/BSpline1dNd.d.ts +0 -0
  15. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -0
  16. package/lib/{bspline → cjs/bspline}/BSpline1dNd.js +0 -0
  17. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -0
  18. package/lib/{bspline → cjs/bspline}/BSplineCurve.d.ts +0 -0
  19. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -0
  20. package/lib/{bspline → cjs/bspline}/BSplineCurve.js +0 -0
  21. package/lib/cjs/bspline/BSplineCurve.js.map +1 -0
  22. package/lib/{bspline → cjs/bspline}/BSplineCurve3dH.d.ts +0 -0
  23. package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -0
  24. package/lib/{bspline → cjs/bspline}/BSplineCurve3dH.js +0 -0
  25. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -0
  26. package/lib/{bspline → cjs/bspline}/BSplineCurveOps.d.ts +0 -0
  27. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -0
  28. package/lib/{bspline → cjs/bspline}/BSplineCurveOps.js +0 -0
  29. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -0
  30. package/lib/cjs/bspline/BSplineSurface.d.ts +491 -0
  31. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -0
  32. package/lib/{bspline → cjs/bspline}/BSplineSurface.js +0 -0
  33. package/lib/cjs/bspline/BSplineSurface.js.map +1 -0
  34. package/lib/{bspline → cjs/bspline}/Bezier1dNd.d.ts +0 -0
  35. package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -0
  36. package/lib/{bspline → cjs/bspline}/Bezier1dNd.js +0 -0
  37. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -0
  38. package/lib/{bspline → cjs/bspline}/BezierCurve3d.d.ts +0 -0
  39. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -0
  40. package/lib/{bspline → cjs/bspline}/BezierCurve3d.js +0 -0
  41. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -0
  42. package/lib/{bspline → cjs/bspline}/BezierCurve3dH.d.ts +0 -0
  43. package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -0
  44. package/lib/{bspline → cjs/bspline}/BezierCurve3dH.js +0 -0
  45. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -0
  46. package/lib/{bspline → cjs/bspline}/BezierCurveBase.d.ts +0 -0
  47. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -0
  48. package/lib/{bspline → cjs/bspline}/BezierCurveBase.js +0 -0
  49. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -0
  50. package/lib/{bspline → cjs/bspline}/InterpolationCurve3d.d.ts +0 -0
  51. package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -0
  52. package/lib/{bspline → cjs/bspline}/InterpolationCurve3d.js +0 -0
  53. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -0
  54. package/lib/{bspline → cjs/bspline}/KnotVector.d.ts +0 -0
  55. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -0
  56. package/lib/{bspline → cjs/bspline}/KnotVector.js +0 -0
  57. package/lib/cjs/bspline/KnotVector.js.map +1 -0
  58. package/lib/{bspline → cjs/bspline}/SurfaceLocationDetail.d.ts +0 -0
  59. package/lib/cjs/bspline/SurfaceLocationDetail.d.ts.map +1 -0
  60. package/lib/{bspline → cjs/bspline}/SurfaceLocationDetail.js +0 -0
  61. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -0
  62. package/lib/{clipping → cjs/clipping}/AlternatingConvexClipTree.d.ts +0 -0
  63. package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts.map +1 -0
  64. package/lib/{clipping → cjs/clipping}/AlternatingConvexClipTree.js +0 -0
  65. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -0
  66. package/lib/{clipping → cjs/clipping}/BooleanClipFactory.d.ts +0 -0
  67. package/lib/cjs/clipping/BooleanClipFactory.d.ts.map +1 -0
  68. package/lib/{clipping → cjs/clipping}/BooleanClipFactory.js +0 -0
  69. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -0
  70. package/lib/{clipping → cjs/clipping}/BooleanClipNode.d.ts +0 -0
  71. package/lib/cjs/clipping/BooleanClipNode.d.ts.map +1 -0
  72. package/lib/{clipping → cjs/clipping}/BooleanClipNode.js +0 -0
  73. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -0
  74. package/lib/{clipping → cjs/clipping}/ClipPlane.d.ts +0 -0
  75. package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -0
  76. package/lib/{clipping → cjs/clipping}/ClipPlane.js +0 -0
  77. package/lib/cjs/clipping/ClipPlane.js.map +1 -0
  78. package/lib/{clipping → cjs/clipping}/ClipPrimitive.d.ts +0 -0
  79. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -0
  80. package/lib/{clipping → cjs/clipping}/ClipPrimitive.js +0 -0
  81. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -0
  82. package/lib/{clipping → cjs/clipping}/ClipUtils.d.ts +0 -0
  83. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -0
  84. package/lib/{clipping → cjs/clipping}/ClipUtils.js +0 -0
  85. package/lib/cjs/clipping/ClipUtils.js.map +1 -0
  86. package/lib/{clipping → cjs/clipping}/ClipVector.d.ts +0 -0
  87. package/lib/cjs/clipping/ClipVector.d.ts.map +1 -0
  88. package/lib/{clipping → cjs/clipping}/ClipVector.js +0 -0
  89. package/lib/cjs/clipping/ClipVector.js.map +1 -0
  90. package/lib/{clipping → cjs/clipping}/ConvexClipPlaneSet.d.ts +0 -0
  91. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -0
  92. package/lib/{clipping → cjs/clipping}/ConvexClipPlaneSet.js +0 -0
  93. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -0
  94. package/lib/{clipping → cjs/clipping}/UnionOfConvexClipPlaneSets.d.ts +0 -0
  95. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -0
  96. package/lib/{clipping → cjs/clipping}/UnionOfConvexClipPlaneSets.js +0 -0
  97. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -0
  98. package/lib/{clipping → cjs/clipping}/internalContexts/LineStringOffsetClipperContext.d.ts +0 -0
  99. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -0
  100. package/lib/{clipping → cjs/clipping}/internalContexts/LineStringOffsetClipperContext.js +0 -0
  101. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -0
  102. package/lib/{core-geometry.d.ts → cjs/core-geometry.d.ts} +0 -0
  103. package/lib/cjs/core-geometry.d.ts.map +1 -0
  104. package/lib/{core-geometry.js → cjs/core-geometry.js} +0 -0
  105. package/lib/cjs/core-geometry.js.map +1 -0
  106. package/lib/{curve → cjs/curve}/Arc3d.d.ts +0 -0
  107. package/lib/cjs/curve/Arc3d.d.ts.map +1 -0
  108. package/lib/{curve → cjs/curve}/Arc3d.js +0 -0
  109. package/lib/cjs/curve/Arc3d.js.map +1 -0
  110. package/lib/{curve → cjs/curve}/ChainCollectorContext.d.ts +0 -0
  111. package/lib/cjs/curve/ChainCollectorContext.d.ts.map +1 -0
  112. package/lib/{curve → cjs/curve}/ChainCollectorContext.js +0 -0
  113. package/lib/cjs/curve/ChainCollectorContext.js.map +1 -0
  114. package/lib/{curve → cjs/curve}/ConstructCurveBetweenCurves.d.ts +0 -0
  115. package/lib/cjs/curve/ConstructCurveBetweenCurves.d.ts.map +1 -0
  116. package/lib/{curve → cjs/curve}/ConstructCurveBetweenCurves.js +0 -0
  117. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -0
  118. package/lib/{curve → cjs/curve}/CoordinateXYZ.d.ts +0 -0
  119. package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -0
  120. package/lib/{curve → cjs/curve}/CoordinateXYZ.js +0 -0
  121. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -0
  122. package/lib/{curve → cjs/curve}/CurveChain.d.ts +0 -0
  123. package/lib/cjs/curve/CurveChain.d.ts.map +1 -0
  124. package/lib/{curve → cjs/curve}/CurveChain.js +0 -0
  125. package/lib/cjs/curve/CurveChain.js.map +1 -0
  126. package/lib/{curve → cjs/curve}/CurveChainWithDistanceIndex.d.ts +0 -0
  127. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -0
  128. package/lib/{curve → cjs/curve}/CurveChainWithDistanceIndex.js +0 -0
  129. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -0
  130. package/lib/{curve → cjs/curve}/CurveCollection.d.ts +0 -0
  131. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -0
  132. package/lib/{curve → cjs/curve}/CurveCollection.js +0 -0
  133. package/lib/cjs/curve/CurveCollection.js.map +1 -0
  134. package/lib/{curve → cjs/curve}/CurveCurve.d.ts +0 -0
  135. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -0
  136. package/lib/{curve → cjs/curve}/CurveCurve.js +0 -0
  137. package/lib/cjs/curve/CurveCurve.js.map +1 -0
  138. package/lib/{curve → cjs/curve}/CurveCurveCloseApproachXY.d.ts +0 -0
  139. package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +1 -0
  140. package/lib/{curve → cjs/curve}/CurveCurveCloseApproachXY.js +0 -0
  141. package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -0
  142. package/lib/{curve → cjs/curve}/CurveCurveIntersectXY.d.ts +0 -0
  143. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -0
  144. package/lib/{curve → cjs/curve}/CurveCurveIntersectXY.js +0 -0
  145. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -0
  146. package/lib/{curve → cjs/curve}/CurveCurveIntersectXYZ.d.ts +0 -0
  147. package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +1 -0
  148. package/lib/{curve → cjs/curve}/CurveCurveIntersectXYZ.js +0 -0
  149. package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -0
  150. package/lib/{curve → cjs/curve}/CurveExtendMode.d.ts +0 -0
  151. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -0
  152. package/lib/{curve → cjs/curve}/CurveExtendMode.js +0 -0
  153. package/lib/cjs/curve/CurveExtendMode.js.map +1 -0
  154. package/lib/{curve → cjs/curve}/CurveFactory.d.ts +0 -0
  155. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -0
  156. package/lib/{curve → cjs/curve}/CurveFactory.js +0 -0
  157. package/lib/cjs/curve/CurveFactory.js.map +1 -0
  158. package/lib/{curve → cjs/curve}/CurveLocationDetail.d.ts +0 -0
  159. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -0
  160. package/lib/{curve → cjs/curve}/CurveLocationDetail.js +0 -0
  161. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -0
  162. package/lib/{curve → cjs/curve}/CurvePrimitive.d.ts +0 -0
  163. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -0
  164. package/lib/{curve → cjs/curve}/CurvePrimitive.js +0 -0
  165. package/lib/cjs/curve/CurvePrimitive.js.map +1 -0
  166. package/lib/{curve → cjs/curve}/CurveProcessor.d.ts +0 -0
  167. package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -0
  168. package/lib/{curve → cjs/curve}/CurveProcessor.js +0 -0
  169. package/lib/cjs/curve/CurveProcessor.js.map +1 -0
  170. package/lib/{curve → cjs/curve}/CurveWireMomentsXYZ.d.ts +0 -0
  171. package/lib/cjs/curve/CurveWireMomentsXYZ.d.ts.map +1 -0
  172. package/lib/{curve → cjs/curve}/CurveWireMomentsXYZ.js +0 -0
  173. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -0
  174. package/lib/{curve → cjs/curve}/GeometryQuery.d.ts +0 -0
  175. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -0
  176. package/lib/{curve → cjs/curve}/GeometryQuery.js +0 -0
  177. package/lib/cjs/curve/GeometryQuery.js.map +1 -0
  178. package/lib/{curve → cjs/curve}/LineSegment3d.d.ts +0 -0
  179. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -0
  180. package/lib/{curve → cjs/curve}/LineSegment3d.js +0 -0
  181. package/lib/cjs/curve/LineSegment3d.js.map +1 -0
  182. package/lib/{curve → cjs/curve}/LineString3d.d.ts +0 -0
  183. package/lib/cjs/curve/LineString3d.d.ts.map +1 -0
  184. package/lib/{curve → cjs/curve}/LineString3d.js +0 -0
  185. package/lib/cjs/curve/LineString3d.js.map +1 -0
  186. package/lib/{curve → cjs/curve}/Loop.d.ts +0 -0
  187. package/lib/cjs/curve/Loop.d.ts.map +1 -0
  188. package/lib/{curve → cjs/curve}/Loop.js +0 -0
  189. package/lib/cjs/curve/Loop.js.map +1 -0
  190. package/lib/{curve → cjs/curve}/ParityRegion.d.ts +0 -0
  191. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -0
  192. package/lib/{curve → cjs/curve}/ParityRegion.js +0 -0
  193. package/lib/cjs/curve/ParityRegion.js.map +1 -0
  194. package/lib/{curve → cjs/curve}/Path.d.ts +0 -0
  195. package/lib/cjs/curve/Path.d.ts.map +1 -0
  196. package/lib/{curve → cjs/curve}/Path.js +0 -0
  197. package/lib/cjs/curve/Path.js.map +1 -0
  198. package/lib/{curve → cjs/curve}/PointString3d.d.ts +0 -0
  199. package/lib/cjs/curve/PointString3d.d.ts.map +1 -0
  200. package/lib/{curve → cjs/curve}/PointString3d.js +0 -0
  201. package/lib/cjs/curve/PointString3d.js.map +1 -0
  202. package/lib/{curve → cjs/curve}/ProxyCurve.d.ts +0 -0
  203. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -0
  204. package/lib/{curve → cjs/curve}/ProxyCurve.js +0 -0
  205. package/lib/cjs/curve/ProxyCurve.js.map +1 -0
  206. package/lib/{curve → cjs/curve}/Query/ConsolidateAdjacentPrimitivesContext.d.ts +0 -0
  207. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -0
  208. package/lib/{curve → cjs/curve}/Query/ConsolidateAdjacentPrimitivesContext.js +0 -0
  209. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -0
  210. package/lib/{curve → cjs/curve}/Query/CurveSplitContext.d.ts +0 -0
  211. package/lib/cjs/curve/Query/CurveSplitContext.d.ts.map +1 -0
  212. package/lib/{curve → cjs/curve}/Query/CurveSplitContext.js +0 -0
  213. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -0
  214. package/lib/{curve → cjs/curve}/Query/CylindricalRange.d.ts +0 -0
  215. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -0
  216. package/lib/{curve → cjs/curve}/Query/CylindricalRange.js +0 -0
  217. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -0
  218. package/lib/{curve → cjs/curve}/Query/InOutTests.d.ts +0 -0
  219. package/lib/cjs/curve/Query/InOutTests.d.ts.map +1 -0
  220. package/lib/{curve → cjs/curve}/Query/InOutTests.js +0 -0
  221. package/lib/cjs/curve/Query/InOutTests.js.map +1 -0
  222. package/lib/{curve → cjs/curve}/Query/PlanarSubdivision.d.ts +0 -0
  223. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -0
  224. package/lib/{curve → cjs/curve}/Query/PlanarSubdivision.js +0 -0
  225. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -0
  226. package/lib/{curve → cjs/curve}/Query/StrokeCountChain.d.ts +0 -0
  227. package/lib/cjs/curve/Query/StrokeCountChain.d.ts.map +1 -0
  228. package/lib/{curve → cjs/curve}/Query/StrokeCountChain.js +0 -0
  229. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -0
  230. package/lib/{curve → cjs/curve}/Query/StrokeCountMap.d.ts +0 -0
  231. package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -0
  232. package/lib/{curve → cjs/curve}/Query/StrokeCountMap.js +0 -0
  233. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -0
  234. package/lib/{curve → cjs/curve}/RegionMomentsXY.d.ts +0 -0
  235. package/lib/cjs/curve/RegionMomentsXY.d.ts.map +1 -0
  236. package/lib/{curve → cjs/curve}/RegionMomentsXY.js +0 -0
  237. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -0
  238. package/lib/{curve → cjs/curve}/RegionOps.d.ts +0 -0
  239. package/lib/cjs/curve/RegionOps.d.ts.map +1 -0
  240. package/lib/{curve → cjs/curve}/RegionOps.js +0 -0
  241. package/lib/cjs/curve/RegionOps.js.map +1 -0
  242. package/lib/{curve → cjs/curve}/RegionOpsClassificationSweeps.d.ts +0 -0
  243. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -0
  244. package/lib/{curve → cjs/curve}/RegionOpsClassificationSweeps.js +0 -0
  245. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -0
  246. package/lib/{curve → cjs/curve}/StrokeOptions.d.ts +0 -0
  247. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -0
  248. package/lib/{curve → cjs/curve}/StrokeOptions.js +0 -0
  249. package/lib/cjs/curve/StrokeOptions.js.map +1 -0
  250. package/lib/{curve → cjs/curve}/UnionRegion.d.ts +0 -0
  251. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -0
  252. package/lib/{curve → cjs/curve}/UnionRegion.js +0 -0
  253. package/lib/cjs/curve/UnionRegion.js.map +1 -0
  254. package/lib/{curve → cjs/curve}/internalContexts/CloneCurvesContext.d.ts +0 -0
  255. package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -0
  256. package/lib/{curve → cjs/curve}/internalContexts/CloneCurvesContext.js +0 -0
  257. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -0
  258. package/lib/{curve → cjs/curve}/internalContexts/CloneWithExpandedLineStrings.d.ts +0 -0
  259. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -0
  260. package/lib/{curve → cjs/curve}/internalContexts/CloneWithExpandedLineStrings.js +0 -0
  261. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -0
  262. package/lib/{curve → cjs/curve}/internalContexts/CountLinearPartsSearchContext.d.ts +0 -0
  263. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +1 -0
  264. package/lib/{curve → cjs/curve}/internalContexts/CountLinearPartsSearchContext.js +0 -0
  265. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -0
  266. package/lib/{curve → cjs/curve}/internalContexts/GapSearchContext.d.ts +0 -0
  267. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -0
  268. package/lib/{curve → cjs/curve}/internalContexts/GapSearchContext.js +0 -0
  269. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -0
  270. package/lib/{curve → cjs/curve}/internalContexts/MultiChainCollector.d.ts +0 -0
  271. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -0
  272. package/lib/{curve → cjs/curve}/internalContexts/MultiChainCollector.js +0 -0
  273. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -0
  274. package/lib/{curve → cjs/curve}/internalContexts/PlaneAltitudeRangeContext.d.ts +0 -0
  275. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -0
  276. package/lib/{curve → cjs/curve}/internalContexts/PlaneAltitudeRangeContext.js +0 -0
  277. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -0
  278. package/lib/{curve → cjs/curve}/internalContexts/PolygonOffsetContext.d.ts +0 -0
  279. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -0
  280. package/lib/{curve → cjs/curve}/internalContexts/PolygonOffsetContext.js +0 -0
  281. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -0
  282. package/lib/{curve → cjs/curve}/internalContexts/SumLengthsContext.d.ts +0 -0
  283. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -0
  284. package/lib/{curve → cjs/curve}/internalContexts/SumLengthsContext.js +0 -0
  285. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -0
  286. package/lib/{curve → cjs/curve}/internalContexts/TransformInPlaceContext.d.ts +0 -0
  287. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -0
  288. package/lib/{curve → cjs/curve}/internalContexts/TransformInPlaceContext.js +0 -0
  289. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -0
  290. package/lib/{curve → cjs/curve}/spiral/AustralianRailCorpXYEvaluator.d.ts +0 -0
  291. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -0
  292. package/lib/{curve → cjs/curve}/spiral/AustralianRailCorpXYEvaluator.js +0 -0
  293. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -0
  294. package/lib/{curve → cjs/curve}/spiral/ClothoidSeries.d.ts +0 -0
  295. package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -0
  296. package/lib/{curve → cjs/curve}/spiral/ClothoidSeries.js +0 -0
  297. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -0
  298. package/lib/{curve → cjs/curve}/spiral/CubicEvaluator.d.ts +0 -0
  299. package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -0
  300. package/lib/{curve → cjs/curve}/spiral/CubicEvaluator.js +0 -0
  301. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -0
  302. package/lib/{curve → cjs/curve}/spiral/CzechSpiralEvaluator.d.ts +0 -0
  303. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -0
  304. package/lib/{curve → cjs/curve}/spiral/CzechSpiralEvaluator.js +0 -0
  305. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -0
  306. package/lib/{curve → cjs/curve}/spiral/DirectHalfCosineSpiralEvaluator.d.ts +0 -0
  307. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -0
  308. package/lib/{curve → cjs/curve}/spiral/DirectHalfCosineSpiralEvaluator.js +0 -0
  309. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -0
  310. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +265 -0
  311. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -0
  312. package/lib/cjs/curve/spiral/DirectSpiral3d.js +473 -0
  313. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -0
  314. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +158 -0
  315. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -0
  316. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +364 -0
  317. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -0
  318. package/lib/{curve → cjs/curve}/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +0 -0
  319. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -0
  320. package/lib/{curve → cjs/curve}/spiral/MXCubicAlongArcSpiralEvaluator.js +0 -0
  321. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -0
  322. package/lib/{curve → cjs/curve}/spiral/NormalizedTransition.d.ts +0 -0
  323. package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -0
  324. package/lib/{curve → cjs/curve}/spiral/NormalizedTransition.js +0 -0
  325. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -0
  326. package/lib/{curve → cjs/curve}/spiral/PolishCubicSpiralEvaluator.d.ts +0 -0
  327. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -0
  328. package/lib/{curve → cjs/curve}/spiral/PolishCubicSpiralEvaluator.js +0 -0
  329. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -0
  330. package/lib/{curve → cjs/curve}/spiral/TransitionConditionalProperties.d.ts +0 -0
  331. package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -0
  332. package/lib/{curve → cjs/curve}/spiral/TransitionConditionalProperties.js +0 -0
  333. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -0
  334. package/lib/{curve → cjs/curve}/spiral/TransitionSpiral3d.d.ts +0 -0
  335. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -0
  336. package/lib/{curve → cjs/curve}/spiral/TransitionSpiral3d.js +0 -0
  337. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -0
  338. package/lib/{curve → cjs/curve}/spiral/XYCurveEvaluator.d.ts +0 -0
  339. package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -0
  340. package/lib/{curve → cjs/curve}/spiral/XYCurveEvaluator.js +0 -0
  341. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -0
  342. package/lib/{geometry3d → cjs/geometry3d}/Angle.d.ts +0 -0
  343. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -0
  344. package/lib/{geometry3d → cjs/geometry3d}/Angle.js +0 -0
  345. package/lib/cjs/geometry3d/Angle.js.map +1 -0
  346. package/lib/{geometry3d → cjs/geometry3d}/AngleSweep.d.ts +0 -0
  347. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -0
  348. package/lib/{geometry3d → cjs/geometry3d}/AngleSweep.js +0 -0
  349. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -0
  350. package/lib/{geometry3d → cjs/geometry3d}/BarycentricTriangle.d.ts +0 -0
  351. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -0
  352. package/lib/{geometry3d → cjs/geometry3d}/BarycentricTriangle.js +0 -0
  353. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -0
  354. package/lib/{geometry3d → cjs/geometry3d}/BilinearPatch.d.ts +0 -0
  355. package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -0
  356. package/lib/{geometry3d → cjs/geometry3d}/BilinearPatch.js +0 -0
  357. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -0
  358. package/lib/{geometry3d → cjs/geometry3d}/CoincidentGeometryOps.d.ts +0 -0
  359. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -0
  360. package/lib/{geometry3d → cjs/geometry3d}/CoincidentGeometryOps.js +0 -0
  361. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -0
  362. package/lib/{geometry3d → cjs/geometry3d}/Ellipsoid.d.ts +0 -0
  363. package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -0
  364. package/lib/{geometry3d → cjs/geometry3d}/Ellipsoid.js +0 -0
  365. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -0
  366. package/lib/{geometry3d → cjs/geometry3d}/FrameBuilder.d.ts +0 -0
  367. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -0
  368. package/lib/{geometry3d → cjs/geometry3d}/FrameBuilder.js +0 -0
  369. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -0
  370. package/lib/{geometry3d → cjs/geometry3d}/FrustumAnimation.d.ts +0 -0
  371. package/lib/cjs/geometry3d/FrustumAnimation.d.ts.map +1 -0
  372. package/lib/{geometry3d → cjs/geometry3d}/FrustumAnimation.js +0 -0
  373. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -0
  374. package/lib/{geometry3d → cjs/geometry3d}/GeometryHandler.d.ts +0 -0
  375. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -0
  376. package/lib/{geometry3d → cjs/geometry3d}/GeometryHandler.js +0 -0
  377. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -0
  378. package/lib/{geometry3d → cjs/geometry3d}/GrowableBlockedArray.d.ts +0 -0
  379. package/lib/cjs/geometry3d/GrowableBlockedArray.d.ts.map +1 -0
  380. package/lib/{geometry3d → cjs/geometry3d}/GrowableBlockedArray.js +0 -0
  381. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -0
  382. package/lib/{geometry3d → cjs/geometry3d}/GrowableFloat64Array.d.ts +0 -0
  383. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -0
  384. package/lib/{geometry3d → cjs/geometry3d}/GrowableFloat64Array.js +0 -0
  385. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -0
  386. package/lib/{geometry3d → cjs/geometry3d}/GrowableXYArray.d.ts +0 -0
  387. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -0
  388. package/lib/{geometry3d → cjs/geometry3d}/GrowableXYArray.js +0 -0
  389. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -0
  390. package/lib/{geometry3d → cjs/geometry3d}/GrowableXYZArray.d.ts +0 -0
  391. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -0
  392. package/lib/{geometry3d → cjs/geometry3d}/GrowableXYZArray.js +0 -0
  393. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -0
  394. package/lib/{geometry3d → cjs/geometry3d}/IndexedCollectionInterval.d.ts +0 -0
  395. package/lib/cjs/geometry3d/IndexedCollectionInterval.d.ts.map +1 -0
  396. package/lib/{geometry3d → cjs/geometry3d}/IndexedCollectionInterval.js +0 -0
  397. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -0
  398. package/lib/{geometry3d → cjs/geometry3d}/IndexedXYCollection.d.ts +0 -0
  399. package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -0
  400. package/lib/{geometry3d → cjs/geometry3d}/IndexedXYCollection.js +0 -0
  401. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -0
  402. package/lib/{geometry3d → cjs/geometry3d}/IndexedXYZCollection.d.ts +0 -0
  403. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -0
  404. package/lib/{geometry3d → cjs/geometry3d}/IndexedXYZCollection.js +0 -0
  405. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -0
  406. package/lib/{geometry3d → cjs/geometry3d}/LongitudeLatitudeAltitude.d.ts +0 -0
  407. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.d.ts.map +1 -0
  408. package/lib/{geometry3d → cjs/geometry3d}/LongitudeLatitudeAltitude.js +0 -0
  409. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -0
  410. package/lib/{geometry3d → cjs/geometry3d}/Matrix3d.d.ts +0 -0
  411. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -0
  412. package/lib/{geometry3d → cjs/geometry3d}/Matrix3d.js +0 -0
  413. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -0
  414. package/lib/{geometry3d → cjs/geometry3d}/OrderedRotationAngles.d.ts +0 -0
  415. package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts.map +1 -0
  416. package/lib/{geometry3d → cjs/geometry3d}/OrderedRotationAngles.js +0 -0
  417. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -0
  418. package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndUnitNormal.d.ts +0 -0
  419. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -0
  420. package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndUnitNormal.js +0 -0
  421. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -0
  422. package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndVectors.d.ts +0 -0
  423. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -0
  424. package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndVectors.js +0 -0
  425. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -0
  426. package/lib/{geometry3d → cjs/geometry3d}/Point2dArrayCarrier.d.ts +0 -0
  427. package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -0
  428. package/lib/{geometry3d → cjs/geometry3d}/Point2dArrayCarrier.js +0 -0
  429. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -0
  430. package/lib/{geometry3d → cjs/geometry3d}/Point2dVector2d.d.ts +0 -0
  431. package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -0
  432. package/lib/{geometry3d → cjs/geometry3d}/Point2dVector2d.js +0 -0
  433. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -0
  434. package/lib/{geometry3d → cjs/geometry3d}/Point3dArrayCarrier.d.ts +0 -0
  435. package/lib/cjs/geometry3d/Point3dArrayCarrier.d.ts.map +1 -0
  436. package/lib/{geometry3d → cjs/geometry3d}/Point3dArrayCarrier.js +0 -0
  437. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -0
  438. package/lib/{geometry3d → cjs/geometry3d}/Point3dVector3d.d.ts +0 -0
  439. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -0
  440. package/lib/{geometry3d → cjs/geometry3d}/Point3dVector3d.js +0 -0
  441. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -0
  442. package/lib/{geometry3d → cjs/geometry3d}/PointHelpers.d.ts +0 -0
  443. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -0
  444. package/lib/{geometry3d → cjs/geometry3d}/PointHelpers.js +0 -0
  445. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -0
  446. package/lib/{geometry3d → cjs/geometry3d}/PointStreaming.d.ts +0 -0
  447. package/lib/cjs/geometry3d/PointStreaming.d.ts.map +1 -0
  448. package/lib/{geometry3d → cjs/geometry3d}/PointStreaming.js +0 -0
  449. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -0
  450. package/lib/{geometry3d → cjs/geometry3d}/PolygonOps.d.ts +0 -0
  451. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -0
  452. package/lib/{geometry3d → cjs/geometry3d}/PolygonOps.js +0 -0
  453. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -0
  454. package/lib/{geometry3d → cjs/geometry3d}/PolylineCompressionByEdgeOffset.d.ts +0 -0
  455. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -0
  456. package/lib/{geometry3d → cjs/geometry3d}/PolylineCompressionByEdgeOffset.js +0 -0
  457. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -0
  458. package/lib/{geometry3d → cjs/geometry3d}/PolylineOps.d.ts +0 -0
  459. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -0
  460. package/lib/{geometry3d → cjs/geometry3d}/PolylineOps.js +0 -0
  461. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -0
  462. package/lib/{geometry3d → cjs/geometry3d}/Range.d.ts +0 -0
  463. package/lib/cjs/geometry3d/Range.d.ts.map +1 -0
  464. package/lib/{geometry3d → cjs/geometry3d}/Range.js +0 -0
  465. package/lib/cjs/geometry3d/Range.js.map +1 -0
  466. package/lib/{geometry3d → cjs/geometry3d}/Ray3d.d.ts +0 -0
  467. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -0
  468. package/lib/{geometry3d → cjs/geometry3d}/Ray3d.js +0 -0
  469. package/lib/cjs/geometry3d/Ray3d.js.map +1 -0
  470. package/lib/{geometry3d → cjs/geometry3d}/ReusableObjectCache.d.ts +0 -0
  471. package/lib/cjs/geometry3d/ReusableObjectCache.d.ts.map +1 -0
  472. package/lib/{geometry3d → cjs/geometry3d}/ReusableObjectCache.js +0 -0
  473. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -0
  474. package/lib/{geometry3d → cjs/geometry3d}/Segment1d.d.ts +0 -0
  475. package/lib/cjs/geometry3d/Segment1d.d.ts.map +1 -0
  476. package/lib/{geometry3d → cjs/geometry3d}/Segment1d.js +0 -0
  477. package/lib/cjs/geometry3d/Segment1d.js.map +1 -0
  478. package/lib/{geometry3d → cjs/geometry3d}/SortablePolygon.d.ts +0 -0
  479. package/lib/cjs/geometry3d/SortablePolygon.d.ts.map +1 -0
  480. package/lib/{geometry3d → cjs/geometry3d}/SortablePolygon.js +0 -0
  481. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -0
  482. package/lib/{geometry3d → cjs/geometry3d}/Transform.d.ts +0 -0
  483. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -0
  484. package/lib/{geometry3d → cjs/geometry3d}/Transform.js +0 -0
  485. package/lib/cjs/geometry3d/Transform.js.map +1 -0
  486. package/lib/{geometry3d → cjs/geometry3d}/UVSurfaceOps.d.ts +0 -0
  487. package/lib/cjs/geometry3d/UVSurfaceOps.d.ts.map +1 -0
  488. package/lib/{geometry3d → cjs/geometry3d}/UVSurfaceOps.js +0 -0
  489. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -0
  490. package/lib/{geometry3d → cjs/geometry3d}/XYZProps.d.ts +0 -0
  491. package/lib/cjs/geometry3d/XYZProps.d.ts.map +1 -0
  492. package/lib/{geometry3d → cjs/geometry3d}/XYZProps.js +0 -0
  493. package/lib/cjs/geometry3d/XYZProps.js.map +1 -0
  494. package/lib/{geometry3d → cjs/geometry3d}/YawPitchRollAngles.d.ts +0 -0
  495. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -0
  496. package/lib/{geometry3d → cjs/geometry3d}/YawPitchRollAngles.js +0 -0
  497. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -0
  498. package/lib/{geometry4d → cjs/geometry4d}/Map4d.d.ts +0 -0
  499. package/lib/cjs/geometry4d/Map4d.d.ts.map +1 -0
  500. package/lib/{geometry4d → cjs/geometry4d}/Map4d.js +0 -0
  501. package/lib/cjs/geometry4d/Map4d.js.map +1 -0
  502. package/lib/{geometry4d → cjs/geometry4d}/Matrix4d.d.ts +0 -0
  503. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -0
  504. package/lib/{geometry4d → cjs/geometry4d}/Matrix4d.js +0 -0
  505. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -0
  506. package/lib/{geometry4d → cjs/geometry4d}/MomentData.d.ts +0 -0
  507. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -0
  508. package/lib/{geometry4d → cjs/geometry4d}/MomentData.js +0 -0
  509. package/lib/cjs/geometry4d/MomentData.js.map +1 -0
  510. package/lib/{geometry4d → cjs/geometry4d}/PlaneByOriginAndVectors4d.d.ts +0 -0
  511. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +1 -0
  512. package/lib/{geometry4d → cjs/geometry4d}/PlaneByOriginAndVectors4d.js +0 -0
  513. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -0
  514. package/lib/{geometry4d → cjs/geometry4d}/Point4d.d.ts +0 -0
  515. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -0
  516. package/lib/{geometry4d → cjs/geometry4d}/Point4d.js +0 -0
  517. package/lib/cjs/geometry4d/Point4d.js.map +1 -0
  518. package/lib/{numerics → cjs/numerics}/BandedSystem.d.ts +0 -0
  519. package/lib/cjs/numerics/BandedSystem.d.ts.map +1 -0
  520. package/lib/{numerics → cjs/numerics}/BandedSystem.js +0 -0
  521. package/lib/cjs/numerics/BandedSystem.js.map +1 -0
  522. package/lib/{numerics → cjs/numerics}/BezierPolynomials.d.ts +0 -0
  523. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -0
  524. package/lib/{numerics → cjs/numerics}/BezierPolynomials.js +0 -0
  525. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -0
  526. package/lib/{numerics → cjs/numerics}/ClusterableArray.d.ts +0 -0
  527. package/lib/cjs/numerics/ClusterableArray.d.ts.map +1 -0
  528. package/lib/{numerics → cjs/numerics}/ClusterableArray.js +0 -0
  529. package/lib/cjs/numerics/ClusterableArray.js.map +1 -0
  530. package/lib/{numerics → cjs/numerics}/Complex.d.ts +0 -0
  531. package/lib/cjs/numerics/Complex.d.ts.map +1 -0
  532. package/lib/{numerics → cjs/numerics}/Complex.js +0 -0
  533. package/lib/cjs/numerics/Complex.js.map +1 -0
  534. package/lib/{numerics → cjs/numerics}/ConvexPolygon2d.d.ts +0 -0
  535. package/lib/cjs/numerics/ConvexPolygon2d.d.ts.map +1 -0
  536. package/lib/{numerics → cjs/numerics}/ConvexPolygon2d.js +0 -0
  537. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -0
  538. package/lib/{numerics → cjs/numerics}/Newton.d.ts +0 -0
  539. package/lib/cjs/numerics/Newton.d.ts.map +1 -0
  540. package/lib/{numerics → cjs/numerics}/Newton.js +0 -0
  541. package/lib/cjs/numerics/Newton.js.map +1 -0
  542. package/lib/{numerics → cjs/numerics}/PascalCoefficients.d.ts +0 -0
  543. package/lib/cjs/numerics/PascalCoefficients.d.ts.map +1 -0
  544. package/lib/{numerics → cjs/numerics}/PascalCoefficients.js +0 -0
  545. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -0
  546. package/lib/{numerics → cjs/numerics}/PolarData.d.ts +0 -0
  547. package/lib/cjs/numerics/PolarData.d.ts.map +1 -0
  548. package/lib/{numerics → cjs/numerics}/PolarData.js +0 -0
  549. package/lib/cjs/numerics/PolarData.js.map +1 -0
  550. package/lib/{numerics → cjs/numerics}/Polynomials.d.ts +0 -0
  551. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -0
  552. package/lib/{numerics → cjs/numerics}/Polynomials.js +0 -0
  553. package/lib/cjs/numerics/Polynomials.js.map +1 -0
  554. package/lib/{numerics → cjs/numerics}/Quadrature.d.ts +0 -0
  555. package/lib/cjs/numerics/Quadrature.d.ts.map +1 -0
  556. package/lib/{numerics → cjs/numerics}/Quadrature.js +0 -0
  557. package/lib/cjs/numerics/Quadrature.js.map +1 -0
  558. package/lib/{numerics → cjs/numerics}/Range1dArray.d.ts +0 -0
  559. package/lib/cjs/numerics/Range1dArray.d.ts.map +1 -0
  560. package/lib/{numerics → cjs/numerics}/Range1dArray.js +0 -0
  561. package/lib/cjs/numerics/Range1dArray.js.map +1 -0
  562. package/lib/{numerics → cjs/numerics}/TriDiagonalSystem.d.ts +0 -0
  563. package/lib/cjs/numerics/TriDiagonalSystem.d.ts.map +1 -0
  564. package/lib/{numerics → cjs/numerics}/TriDiagonalSystem.js +0 -0
  565. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -0
  566. package/lib/{numerics → cjs/numerics}/UnionFind.d.ts +0 -0
  567. package/lib/cjs/numerics/UnionFind.d.ts.map +1 -0
  568. package/lib/{numerics → cjs/numerics}/UnionFind.js +0 -0
  569. package/lib/cjs/numerics/UnionFind.js.map +1 -0
  570. package/lib/{numerics → cjs/numerics}/UsageSums.d.ts +0 -0
  571. package/lib/cjs/numerics/UsageSums.d.ts.map +1 -0
  572. package/lib/{numerics → cjs/numerics}/UsageSums.js +0 -0
  573. package/lib/cjs/numerics/UsageSums.js.map +1 -0
  574. package/lib/{polyface → cjs/polyface}/AuxData.d.ts +0 -0
  575. package/lib/cjs/polyface/AuxData.d.ts.map +1 -0
  576. package/lib/{polyface → cjs/polyface}/AuxData.js +0 -0
  577. package/lib/cjs/polyface/AuxData.js.map +1 -0
  578. package/lib/{polyface → cjs/polyface}/BoxTopology.d.ts +0 -0
  579. package/lib/cjs/polyface/BoxTopology.d.ts.map +1 -0
  580. package/lib/{polyface → cjs/polyface}/BoxTopology.js +0 -0
  581. package/lib/cjs/polyface/BoxTopology.js.map +1 -0
  582. package/lib/{polyface → cjs/polyface}/FacetFaceData.d.ts +0 -0
  583. package/lib/cjs/polyface/FacetFaceData.d.ts.map +1 -0
  584. package/lib/{polyface → cjs/polyface}/FacetFaceData.js +0 -0
  585. package/lib/cjs/polyface/FacetFaceData.js.map +1 -0
  586. package/lib/{polyface → cjs/polyface}/FacetOrientation.d.ts +0 -0
  587. package/lib/cjs/polyface/FacetOrientation.d.ts.map +1 -0
  588. package/lib/{polyface → cjs/polyface}/FacetOrientation.js +0 -0
  589. package/lib/cjs/polyface/FacetOrientation.js.map +1 -0
  590. package/lib/{polyface → cjs/polyface}/GreedyTriangulationBetweenLineStrings.d.ts +0 -0
  591. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +1 -0
  592. package/lib/{polyface → cjs/polyface}/GreedyTriangulationBetweenLineStrings.js +0 -0
  593. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -0
  594. package/lib/{polyface → cjs/polyface}/IndexedEdgeMatcher.d.ts +0 -0
  595. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -0
  596. package/lib/{polyface → cjs/polyface}/IndexedEdgeMatcher.js +0 -0
  597. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -0
  598. package/lib/{polyface → cjs/polyface}/IndexedPolyfaceVisitor.d.ts +0 -0
  599. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -0
  600. package/lib/{polyface → cjs/polyface}/IndexedPolyfaceVisitor.js +0 -0
  601. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -0
  602. package/lib/{polyface → cjs/polyface}/Polyface.d.ts +0 -0
  603. package/lib/cjs/polyface/Polyface.d.ts.map +1 -0
  604. package/lib/{polyface → cjs/polyface}/Polyface.js +0 -0
  605. package/lib/cjs/polyface/Polyface.js.map +1 -0
  606. package/lib/{polyface → cjs/polyface}/PolyfaceBuilder.d.ts +0 -0
  607. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -0
  608. package/lib/{polyface → cjs/polyface}/PolyfaceBuilder.js +0 -0
  609. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -0
  610. package/lib/{polyface → cjs/polyface}/PolyfaceClip.d.ts +0 -0
  611. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -0
  612. package/lib/{polyface → cjs/polyface}/PolyfaceClip.js +0 -0
  613. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -0
  614. package/lib/cjs/polyface/PolyfaceData.d.ts +206 -0
  615. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -0
  616. package/lib/cjs/polyface/PolyfaceData.js +531 -0
  617. package/lib/cjs/polyface/PolyfaceData.js.map +1 -0
  618. package/lib/{polyface → cjs/polyface}/PolyfaceQuery.d.ts +0 -0
  619. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -0
  620. package/lib/{polyface → cjs/polyface}/PolyfaceQuery.js +0 -0
  621. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -0
  622. package/lib/{polyface → cjs/polyface}/RangeLengthData.d.ts +0 -0
  623. package/lib/cjs/polyface/RangeLengthData.d.ts.map +1 -0
  624. package/lib/{polyface → cjs/polyface}/RangeLengthData.js +0 -0
  625. package/lib/cjs/polyface/RangeLengthData.js.map +1 -0
  626. package/lib/{polyface → cjs/polyface}/TaggedNumericData.d.ts +0 -0
  627. package/lib/cjs/polyface/TaggedNumericData.d.ts.map +1 -0
  628. package/lib/{polyface → cjs/polyface}/TaggedNumericData.js +0 -0
  629. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -0
  630. package/lib/{polyface → cjs/polyface}/TriangleCandidate.d.ts +0 -0
  631. package/lib/cjs/polyface/TriangleCandidate.d.ts.map +1 -0
  632. package/lib/{polyface → cjs/polyface}/TriangleCandidate.js +0 -0
  633. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -0
  634. package/lib/{polyface → cjs/polyface}/multiclip/BuildAverageNormalsContext.d.ts +0 -0
  635. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -0
  636. package/lib/{polyface → cjs/polyface}/multiclip/BuildAverageNormalsContext.js +0 -0
  637. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -0
  638. package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSet.d.ts +0 -0
  639. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -0
  640. package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSet.js +0 -0
  641. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -0
  642. package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +0 -0
  643. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -0
  644. package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSetWithOverflow.js +0 -0
  645. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -0
  646. package/lib/{polyface → cjs/polyface}/multiclip/LinearSearchRange2dArray.d.ts +0 -0
  647. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -0
  648. package/lib/{polyface → cjs/polyface}/multiclip/LinearSearchRange2dArray.js +0 -0
  649. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -0
  650. package/lib/{polyface → cjs/polyface}/multiclip/Range2dSearchInterface.d.ts +0 -0
  651. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -0
  652. package/lib/{polyface → cjs/polyface}/multiclip/Range2dSearchInterface.js +0 -0
  653. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -0
  654. package/lib/{polyface → cjs/polyface}/multiclip/RangeSearch.d.ts +0 -0
  655. package/lib/cjs/polyface/multiclip/RangeSearch.d.ts.map +1 -0
  656. package/lib/{polyface → cjs/polyface}/multiclip/RangeSearch.js +0 -0
  657. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -0
  658. package/lib/{polyface → cjs/polyface}/multiclip/SweepLineStringToFacetContext.d.ts +0 -0
  659. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -0
  660. package/lib/{polyface → cjs/polyface}/multiclip/SweepLineStringToFacetContext.js +0 -0
  661. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -0
  662. package/lib/{polyface → cjs/polyface}/multiclip/XYPointBuckets.d.ts +0 -0
  663. package/lib/cjs/polyface/multiclip/XYPointBuckets.d.ts.map +1 -0
  664. package/lib/{polyface → cjs/polyface}/multiclip/XYPointBuckets.js +0 -0
  665. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -0
  666. package/lib/{serialization → cjs/serialization}/BGFBAccessors.d.ts +0 -0
  667. package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -0
  668. package/lib/{serialization → cjs/serialization}/BGFBAccessors.js +0 -0
  669. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -0
  670. package/lib/{serialization → cjs/serialization}/BGFBReader.d.ts +0 -0
  671. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -0
  672. package/lib/{serialization → cjs/serialization}/BGFBReader.js +0 -0
  673. package/lib/cjs/serialization/BGFBReader.js.map +1 -0
  674. package/lib/{serialization → cjs/serialization}/BGFBWriter.d.ts +0 -0
  675. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -0
  676. package/lib/{serialization → cjs/serialization}/BGFBWriter.js +0 -0
  677. package/lib/cjs/serialization/BGFBWriter.js.map +1 -0
  678. package/lib/{serialization → cjs/serialization}/BentleyGeometryFlatBuffer.d.ts +0 -0
  679. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.d.ts.map +1 -0
  680. package/lib/{serialization → cjs/serialization}/BentleyGeometryFlatBuffer.js +0 -0
  681. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -0
  682. package/lib/{serialization → cjs/serialization}/DeepCompare.d.ts +0 -0
  683. package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -0
  684. package/lib/{serialization → cjs/serialization}/DeepCompare.js +0 -0
  685. package/lib/cjs/serialization/DeepCompare.js.map +1 -0
  686. package/lib/{serialization → cjs/serialization}/GeometrySamples.d.ts +0 -0
  687. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -0
  688. package/lib/{serialization → cjs/serialization}/GeometrySamples.js +0 -0
  689. package/lib/cjs/serialization/GeometrySamples.js.map +1 -0
  690. package/lib/{serialization → cjs/serialization}/IModelJsonSchema.d.ts +0 -0
  691. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -0
  692. package/lib/{serialization → cjs/serialization}/IModelJsonSchema.js +0 -0
  693. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -0
  694. package/lib/{solid → cjs/solid}/Box.d.ts +0 -0
  695. package/lib/cjs/solid/Box.d.ts.map +1 -0
  696. package/lib/{solid → cjs/solid}/Box.js +0 -0
  697. package/lib/cjs/solid/Box.js.map +1 -0
  698. package/lib/{solid → cjs/solid}/Cone.d.ts +0 -0
  699. package/lib/cjs/solid/Cone.d.ts.map +1 -0
  700. package/lib/{solid → cjs/solid}/Cone.js +0 -0
  701. package/lib/cjs/solid/Cone.js.map +1 -0
  702. package/lib/{solid → cjs/solid}/LinearSweep.d.ts +0 -0
  703. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -0
  704. package/lib/{solid → cjs/solid}/LinearSweep.js +0 -0
  705. package/lib/cjs/solid/LinearSweep.js.map +1 -0
  706. package/lib/{solid → cjs/solid}/RotationalSweep.d.ts +0 -0
  707. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -0
  708. package/lib/{solid → cjs/solid}/RotationalSweep.js +0 -0
  709. package/lib/cjs/solid/RotationalSweep.js.map +1 -0
  710. package/lib/{solid → cjs/solid}/RuledSweep.d.ts +0 -0
  711. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -0
  712. package/lib/{solid → cjs/solid}/RuledSweep.js +0 -0
  713. package/lib/cjs/solid/RuledSweep.js.map +1 -0
  714. package/lib/{solid → cjs/solid}/SolidPrimitive.d.ts +0 -0
  715. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -0
  716. package/lib/{solid → cjs/solid}/SolidPrimitive.js +0 -0
  717. package/lib/cjs/solid/SolidPrimitive.js.map +1 -0
  718. package/lib/{solid → cjs/solid}/Sphere.d.ts +0 -0
  719. package/lib/cjs/solid/Sphere.d.ts.map +1 -0
  720. package/lib/{solid → cjs/solid}/Sphere.js +0 -0
  721. package/lib/cjs/solid/Sphere.js.map +1 -0
  722. package/lib/{solid → cjs/solid}/SweepContour.d.ts +0 -0
  723. package/lib/cjs/solid/SweepContour.d.ts.map +1 -0
  724. package/lib/{solid → cjs/solid}/SweepContour.js +0 -0
  725. package/lib/cjs/solid/SweepContour.js.map +1 -0
  726. package/lib/{solid → cjs/solid}/TorusPipe.d.ts +0 -0
  727. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -0
  728. package/lib/{solid → cjs/solid}/TorusPipe.js +0 -0
  729. package/lib/cjs/solid/TorusPipe.js.map +1 -0
  730. package/lib/{topology → cjs/topology}/ChainMerge.d.ts +0 -0
  731. package/lib/cjs/topology/ChainMerge.d.ts.map +1 -0
  732. package/lib/{topology → cjs/topology}/ChainMerge.js +0 -0
  733. package/lib/cjs/topology/ChainMerge.js.map +1 -0
  734. package/lib/{topology → cjs/topology}/Graph.d.ts +0 -0
  735. package/lib/cjs/topology/Graph.d.ts.map +1 -0
  736. package/lib/{topology → cjs/topology}/Graph.js +0 -0
  737. package/lib/cjs/topology/Graph.js.map +1 -0
  738. package/lib/{topology → cjs/topology}/HalfEdgeGraphSearch.d.ts +0 -0
  739. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -0
  740. package/lib/{topology → cjs/topology}/HalfEdgeGraphSearch.js +0 -0
  741. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -0
  742. package/lib/{topology → cjs/topology}/HalfEdgeGraphSpineContext.d.ts +0 -0
  743. package/lib/cjs/topology/HalfEdgeGraphSpineContext.d.ts.map +1 -0
  744. package/lib/{topology → cjs/topology}/HalfEdgeGraphSpineContext.js +0 -0
  745. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -0
  746. package/lib/{topology → cjs/topology}/HalfEdgeGraphValidation.d.ts +0 -0
  747. package/lib/cjs/topology/HalfEdgeGraphValidation.d.ts.map +1 -0
  748. package/lib/{topology → cjs/topology}/HalfEdgeGraphValidation.js +0 -0
  749. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -0
  750. package/lib/{topology → cjs/topology}/HalfEdgeMarkSet.d.ts +0 -0
  751. package/lib/cjs/topology/HalfEdgeMarkSet.d.ts.map +1 -0
  752. package/lib/{topology → cjs/topology}/HalfEdgeMarkSet.js +0 -0
  753. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -0
  754. package/lib/{topology → cjs/topology}/HalfEdgeNodeXYZUV.d.ts +0 -0
  755. package/lib/cjs/topology/HalfEdgeNodeXYZUV.d.ts.map +1 -0
  756. package/lib/{topology → cjs/topology}/HalfEdgeNodeXYZUV.js +0 -0
  757. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -0
  758. package/lib/{topology → cjs/topology}/HalfEdgePointInGraphSearch.d.ts +0 -0
  759. package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -0
  760. package/lib/{topology → cjs/topology}/HalfEdgePointInGraphSearch.js +0 -0
  761. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -0
  762. package/lib/{topology → cjs/topology}/HalfEdgePositionDetail.d.ts +0 -0
  763. package/lib/cjs/topology/HalfEdgePositionDetail.d.ts.map +1 -0
  764. package/lib/{topology → cjs/topology}/HalfEdgePositionDetail.js +0 -0
  765. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -0
  766. package/lib/{topology → cjs/topology}/HalfEdgePriorityQueue.d.ts +0 -0
  767. package/lib/cjs/topology/HalfEdgePriorityQueue.d.ts.map +1 -0
  768. package/lib/{topology → cjs/topology}/HalfEdgePriorityQueue.js +0 -0
  769. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -0
  770. package/lib/{topology → cjs/topology}/InsertAndRetriangulateContext.d.ts +0 -0
  771. package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts.map +1 -0
  772. package/lib/{topology → cjs/topology}/InsertAndRetriangulateContext.js +0 -0
  773. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -0
  774. package/lib/{topology → cjs/topology}/MaskManager.d.ts +0 -0
  775. package/lib/cjs/topology/MaskManager.d.ts.map +1 -0
  776. package/lib/{topology → cjs/topology}/MaskManager.js +0 -0
  777. package/lib/cjs/topology/MaskManager.js.map +1 -0
  778. package/lib/{topology → cjs/topology}/Merging.d.ts +0 -0
  779. package/lib/cjs/topology/Merging.d.ts.map +1 -0
  780. package/lib/{topology → cjs/topology}/Merging.js +0 -0
  781. package/lib/cjs/topology/Merging.js.map +1 -0
  782. package/lib/{topology → cjs/topology}/RegularizeFace.d.ts +0 -0
  783. package/lib/cjs/topology/RegularizeFace.d.ts.map +1 -0
  784. package/lib/{topology → cjs/topology}/RegularizeFace.js +0 -0
  785. package/lib/cjs/topology/RegularizeFace.js.map +1 -0
  786. package/lib/{topology → cjs/topology}/SignedDataSummary.d.ts +0 -0
  787. package/lib/cjs/topology/SignedDataSummary.d.ts.map +1 -0
  788. package/lib/{topology → cjs/topology}/SignedDataSummary.js +0 -0
  789. package/lib/cjs/topology/SignedDataSummary.js.map +1 -0
  790. package/lib/{topology → cjs/topology}/Triangulation.d.ts +0 -0
  791. package/lib/cjs/topology/Triangulation.d.ts.map +1 -0
  792. package/lib/{topology → cjs/topology}/Triangulation.js +0 -0
  793. package/lib/cjs/topology/Triangulation.js.map +1 -0
  794. package/lib/{topology → cjs/topology}/XYParitySearchContext.d.ts +0 -0
  795. package/lib/cjs/topology/XYParitySearchContext.d.ts.map +1 -0
  796. package/lib/{topology → cjs/topology}/XYParitySearchContext.js +0 -0
  797. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -0
  798. package/lib/esm/Constant.d.ts +26 -0
  799. package/lib/esm/Constant.d.ts.map +1 -0
  800. package/lib/esm/Constant.js +30 -0
  801. package/lib/esm/Constant.js.map +1 -0
  802. package/lib/esm/Geometry.d.ts +498 -0
  803. package/lib/esm/Geometry.d.ts.map +1 -0
  804. package/lib/esm/Geometry.js +776 -0
  805. package/lib/esm/Geometry.js.map +1 -0
  806. package/lib/esm/bspline/AkimaCurve3d.d.ts +97 -0
  807. package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -0
  808. package/lib/esm/bspline/AkimaCurve3d.js +158 -0
  809. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -0
  810. package/lib/esm/bspline/BSpline1dNd.d.ts +96 -0
  811. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -0
  812. package/lib/esm/bspline/BSpline1dNd.js +191 -0
  813. package/lib/esm/bspline/BSpline1dNd.js.map +1 -0
  814. package/lib/esm/bspline/BSplineCurve.d.ts +310 -0
  815. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -0
  816. package/lib/esm/bspline/BSplineCurve.js +608 -0
  817. package/lib/esm/bspline/BSplineCurve.js.map +1 -0
  818. package/lib/esm/bspline/BSplineCurve3dH.d.ts +140 -0
  819. package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -0
  820. package/lib/esm/bspline/BSplineCurve3dH.js +421 -0
  821. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -0
  822. package/lib/esm/bspline/BSplineCurveOps.d.ts +159 -0
  823. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -0
  824. package/lib/esm/bspline/BSplineCurveOps.js +805 -0
  825. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -0
  826. package/lib/esm/bspline/BSplineSurface.d.ts +491 -0
  827. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -0
  828. package/lib/esm/bspline/BSplineSurface.js +837 -0
  829. package/lib/esm/bspline/BSplineSurface.js.map +1 -0
  830. package/lib/esm/bspline/Bezier1dNd.d.ts +113 -0
  831. package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -0
  832. package/lib/esm/bspline/Bezier1dNd.js +341 -0
  833. package/lib/esm/bspline/Bezier1dNd.js.map +1 -0
  834. package/lib/esm/bspline/BezierCurve3d.d.ts +76 -0
  835. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -0
  836. package/lib/esm/bspline/BezierCurve3d.js +214 -0
  837. package/lib/esm/bspline/BezierCurve3d.js.map +1 -0
  838. package/lib/esm/bspline/BezierCurve3dH.d.ts +107 -0
  839. package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -0
  840. package/lib/esm/bspline/BezierCurve3dH.js +348 -0
  841. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -0
  842. package/lib/esm/bspline/BezierCurveBase.d.ts +111 -0
  843. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -0
  844. package/lib/esm/bspline/BezierCurveBase.js +196 -0
  845. package/lib/esm/bspline/BezierCurveBase.js.map +1 -0
  846. package/lib/esm/bspline/InterpolationCurve3d.d.ts +163 -0
  847. package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -0
  848. package/lib/esm/bspline/InterpolationCurve3d.js +281 -0
  849. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -0
  850. package/lib/esm/bspline/KnotVector.d.ts +160 -0
  851. package/lib/esm/bspline/KnotVector.d.ts.map +1 -0
  852. package/lib/esm/bspline/KnotVector.js +427 -0
  853. package/lib/esm/bspline/KnotVector.js.map +1 -0
  854. package/lib/esm/bspline/SurfaceLocationDetail.d.ts +52 -0
  855. package/lib/esm/bspline/SurfaceLocationDetail.d.ts.map +1 -0
  856. package/lib/esm/bspline/SurfaceLocationDetail.js +55 -0
  857. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -0
  858. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts +165 -0
  859. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts.map +1 -0
  860. package/lib/esm/clipping/AlternatingConvexClipTree.js +519 -0
  861. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -0
  862. package/lib/esm/clipping/BooleanClipFactory.d.ts +80 -0
  863. package/lib/esm/clipping/BooleanClipFactory.d.ts.map +1 -0
  864. package/lib/esm/clipping/BooleanClipFactory.js +198 -0
  865. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -0
  866. package/lib/esm/clipping/BooleanClipNode.d.ts +103 -0
  867. package/lib/esm/clipping/BooleanClipNode.d.ts.map +1 -0
  868. package/lib/esm/clipping/BooleanClipNode.js +255 -0
  869. package/lib/esm/clipping/BooleanClipNode.js.map +1 -0
  870. package/lib/esm/clipping/ClipPlane.d.ts +258 -0
  871. package/lib/esm/clipping/ClipPlane.d.ts.map +1 -0
  872. package/lib/esm/clipping/ClipPlane.js +505 -0
  873. package/lib/esm/clipping/ClipPlane.js.map +1 -0
  874. package/lib/esm/clipping/ClipPrimitive.d.ts +270 -0
  875. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -0
  876. package/lib/esm/clipping/ClipPrimitive.js +620 -0
  877. package/lib/esm/clipping/ClipPrimitive.js.map +1 -0
  878. package/lib/esm/clipping/ClipUtils.d.ts +278 -0
  879. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -0
  880. package/lib/esm/clipping/ClipUtils.js +593 -0
  881. package/lib/esm/clipping/ClipUtils.js.map +1 -0
  882. package/lib/esm/clipping/ClipVector.d.ts +154 -0
  883. package/lib/esm/clipping/ClipVector.d.ts.map +1 -0
  884. package/lib/esm/clipping/ClipVector.js +388 -0
  885. package/lib/esm/clipping/ClipVector.js.map +1 -0
  886. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +250 -0
  887. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -0
  888. package/lib/esm/clipping/ConvexClipPlaneSet.js +685 -0
  889. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -0
  890. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +126 -0
  891. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -0
  892. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +325 -0
  893. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -0
  894. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +42 -0
  895. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -0
  896. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +160 -0
  897. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -0
  898. package/lib/esm/core-geometry.d.ts +228 -0
  899. package/lib/esm/core-geometry.d.ts.map +1 -0
  900. package/lib/esm/core-geometry.js +247 -0
  901. package/lib/esm/core-geometry.js.map +1 -0
  902. package/lib/esm/curve/Arc3d.d.ts +477 -0
  903. package/lib/esm/curve/Arc3d.d.ts.map +1 -0
  904. package/lib/esm/curve/Arc3d.js +905 -0
  905. package/lib/esm/curve/Arc3d.js.map +1 -0
  906. package/lib/esm/curve/ChainCollectorContext.d.ts +65 -0
  907. package/lib/esm/curve/ChainCollectorContext.d.ts.map +1 -0
  908. package/lib/esm/curve/ChainCollectorContext.js +175 -0
  909. package/lib/esm/curve/ChainCollectorContext.js.map +1 -0
  910. package/lib/esm/curve/ConstructCurveBetweenCurves.d.ts +46 -0
  911. package/lib/esm/curve/ConstructCurveBetweenCurves.d.ts.map +1 -0
  912. package/lib/esm/curve/ConstructCurveBetweenCurves.js +112 -0
  913. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -0
  914. package/lib/esm/curve/CoordinateXYZ.d.ts +54 -0
  915. package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -0
  916. package/lib/esm/curve/CoordinateXYZ.js +75 -0
  917. package/lib/esm/curve/CoordinateXYZ.js.map +1 -0
  918. package/lib/esm/curve/CurveChain.d.ts +17 -0
  919. package/lib/esm/curve/CurveChain.d.ts.map +1 -0
  920. package/lib/esm/curve/CurveChain.js +6 -0
  921. package/lib/esm/curve/CurveChain.js.map +1 -0
  922. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +234 -0
  923. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -0
  924. package/lib/esm/curve/CurveChainWithDistanceIndex.js +513 -0
  925. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -0
  926. package/lib/esm/curve/CurveCollection.d.ts +204 -0
  927. package/lib/esm/curve/CurveCollection.d.ts.map +1 -0
  928. package/lib/esm/curve/CurveCollection.js +338 -0
  929. package/lib/esm/curve/CurveCollection.js.map +1 -0
  930. package/lib/esm/curve/CurveCurve.d.ts +56 -0
  931. package/lib/esm/curve/CurveCurve.d.ts.map +1 -0
  932. package/lib/esm/curve/CurveCurve.js +96 -0
  933. package/lib/esm/curve/CurveCurve.js.map +1 -0
  934. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +158 -0
  935. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +1 -0
  936. package/lib/esm/curve/CurveCurveCloseApproachXY.js +720 -0
  937. package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -0
  938. package/lib/esm/curve/CurveCurveIntersectXY.d.ts +148 -0
  939. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -0
  940. package/lib/esm/curve/CurveCurveIntersectXY.js +814 -0
  941. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -0
  942. package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts +101 -0
  943. package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +1 -0
  944. package/lib/esm/curve/CurveCurveIntersectXYZ.js +669 -0
  945. package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -0
  946. package/lib/esm/curve/CurveExtendMode.d.ts +50 -0
  947. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -0
  948. package/lib/esm/curve/CurveExtendMode.js +96 -0
  949. package/lib/esm/curve/CurveExtendMode.js.map +1 -0
  950. package/lib/esm/curve/CurveFactory.d.ts +122 -0
  951. package/lib/esm/curve/CurveFactory.d.ts.map +1 -0
  952. package/lib/esm/curve/CurveFactory.js +491 -0
  953. package/lib/esm/curve/CurveFactory.js.map +1 -0
  954. package/lib/esm/curve/CurveLocationDetail.d.ts +207 -0
  955. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -0
  956. package/lib/esm/curve/CurveLocationDetail.js +392 -0
  957. package/lib/esm/curve/CurveLocationDetail.js.map +1 -0
  958. package/lib/esm/curve/CurvePrimitive.d.ts +363 -0
  959. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -0
  960. package/lib/esm/curve/CurvePrimitive.js +774 -0
  961. package/lib/esm/curve/CurvePrimitive.js.map +1 -0
  962. package/lib/esm/curve/CurveProcessor.d.ts +76 -0
  963. package/lib/esm/curve/CurveProcessor.d.ts.map +1 -0
  964. package/lib/esm/curve/CurveProcessor.js +122 -0
  965. package/lib/esm/curve/CurveProcessor.js.map +1 -0
  966. package/lib/esm/curve/CurveWireMomentsXYZ.d.ts +25 -0
  967. package/lib/esm/curve/CurveWireMomentsXYZ.d.ts.map +1 -0
  968. package/lib/esm/curve/CurveWireMomentsXYZ.js +65 -0
  969. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -0
  970. package/lib/esm/curve/GeometryQuery.d.ts +93 -0
  971. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -0
  972. package/lib/esm/curve/GeometryQuery.js +68 -0
  973. package/lib/esm/curve/GeometryQuery.js.map +1 -0
  974. package/lib/esm/curve/LineSegment3d.d.ts +176 -0
  975. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -0
  976. package/lib/esm/curve/LineSegment3d.js +315 -0
  977. package/lib/esm/curve/LineSegment3d.js.map +1 -0
  978. package/lib/esm/curve/LineString3d.d.ts +419 -0
  979. package/lib/esm/curve/LineString3d.d.ts.map +1 -0
  980. package/lib/esm/curve/LineString3d.js +1280 -0
  981. package/lib/esm/curve/LineString3d.js.map +1 -0
  982. package/lib/esm/curve/Loop.d.ts +82 -0
  983. package/lib/esm/curve/Loop.d.ts.map +1 -0
  984. package/lib/esm/curve/Loop.js +93 -0
  985. package/lib/esm/curve/Loop.js.map +1 -0
  986. package/lib/esm/curve/ParityRegion.d.ts +59 -0
  987. package/lib/esm/curve/ParityRegion.d.ts.map +1 -0
  988. package/lib/esm/curve/ParityRegion.js +113 -0
  989. package/lib/esm/curve/ParityRegion.js.map +1 -0
  990. package/lib/esm/curve/Path.d.ts +47 -0
  991. package/lib/esm/curve/Path.d.ts.map +1 -0
  992. package/lib/esm/curve/Path.js +71 -0
  993. package/lib/esm/curve/Path.js.map +1 -0
  994. package/lib/esm/curve/PointString3d.d.ts +78 -0
  995. package/lib/esm/curve/PointString3d.d.ts.map +1 -0
  996. package/lib/esm/curve/PointString3d.js +174 -0
  997. package/lib/esm/curve/PointString3d.js.map +1 -0
  998. package/lib/esm/curve/ProxyCurve.d.ts +59 -0
  999. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -0
  1000. package/lib/esm/curve/ProxyCurve.js +78 -0
  1001. package/lib/esm/curve/ProxyCurve.js.map +1 -0
  1002. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts +25 -0
  1003. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -0
  1004. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +111 -0
  1005. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -0
  1006. package/lib/esm/curve/Query/CurveSplitContext.d.ts +16 -0
  1007. package/lib/esm/curve/Query/CurveSplitContext.d.ts.map +1 -0
  1008. package/lib/esm/curve/Query/CurveSplitContext.js +107 -0
  1009. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -0
  1010. package/lib/esm/curve/Query/CylindricalRange.d.ts +46 -0
  1011. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -0
  1012. package/lib/esm/curve/Query/CylindricalRange.js +111 -0
  1013. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -0
  1014. package/lib/esm/curve/Query/InOutTests.d.ts +32 -0
  1015. package/lib/esm/curve/Query/InOutTests.d.ts.map +1 -0
  1016. package/lib/esm/curve/Query/InOutTests.js +116 -0
  1017. package/lib/esm/curve/Query/InOutTests.js.map +1 -0
  1018. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +16 -0
  1019. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -0
  1020. package/lib/esm/curve/Query/PlanarSubdivision.js +220 -0
  1021. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -0
  1022. package/lib/esm/curve/Query/StrokeCountChain.d.ts +186 -0
  1023. package/lib/esm/curve/Query/StrokeCountChain.d.ts.map +1 -0
  1024. package/lib/esm/curve/Query/StrokeCountChain.js +429 -0
  1025. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -0
  1026. package/lib/esm/curve/Query/StrokeCountMap.d.ts +94 -0
  1027. package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -0
  1028. package/lib/esm/curve/Query/StrokeCountMap.js +138 -0
  1029. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -0
  1030. package/lib/esm/curve/RegionMomentsXY.d.ts +61 -0
  1031. package/lib/esm/curve/RegionMomentsXY.d.ts.map +1 -0
  1032. package/lib/esm/curve/RegionMomentsXY.js +156 -0
  1033. package/lib/esm/curve/RegionMomentsXY.js.map +1 -0
  1034. package/lib/esm/curve/RegionOps.d.ts +320 -0
  1035. package/lib/esm/curve/RegionOps.d.ts.map +1 -0
  1036. package/lib/esm/curve/RegionOps.js +642 -0
  1037. package/lib/esm/curve/RegionOps.js.map +1 -0
  1038. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +263 -0
  1039. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -0
  1040. package/lib/esm/curve/RegionOpsClassificationSweeps.js +703 -0
  1041. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -0
  1042. package/lib/esm/curve/StrokeOptions.d.ts +94 -0
  1043. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -0
  1044. package/lib/esm/curve/StrokeOptions.js +149 -0
  1045. package/lib/esm/curve/StrokeOptions.js.map +1 -0
  1046. package/lib/esm/curve/UnionRegion.d.ts +49 -0
  1047. package/lib/esm/curve/UnionRegion.d.ts.map +1 -0
  1048. package/lib/esm/curve/UnionRegion.js +75 -0
  1049. package/lib/esm/curve/UnionRegion.js.map +1 -0
  1050. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts +23 -0
  1051. package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -0
  1052. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +62 -0
  1053. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -0
  1054. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts +16 -0
  1055. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -0
  1056. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js +36 -0
  1057. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -0
  1058. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.d.ts +18 -0
  1059. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +1 -0
  1060. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +32 -0
  1061. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -0
  1062. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +16 -0
  1063. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -0
  1064. package/lib/esm/curve/internalContexts/GapSearchContext.js +34 -0
  1065. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -0
  1066. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +114 -0
  1067. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -0
  1068. package/lib/esm/curve/internalContexts/MultiChainCollector.js +403 -0
  1069. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -0
  1070. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +38 -0
  1071. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -0
  1072. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +88 -0
  1073. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -0
  1074. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +117 -0
  1075. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -0
  1076. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +686 -0
  1077. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -0
  1078. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts +17 -0
  1079. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -0
  1080. package/lib/esm/curve/internalContexts/SumLengthsContext.js +21 -0
  1081. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -0
  1082. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts +19 -0
  1083. package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -0
  1084. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +19 -0
  1085. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -0
  1086. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +41 -0
  1087. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -0
  1088. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +124 -0
  1089. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -0
  1090. package/lib/esm/curve/spiral/ClothoidSeries.d.ts +66 -0
  1091. package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -0
  1092. package/lib/esm/curve/spiral/ClothoidSeries.js +220 -0
  1093. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -0
  1094. package/lib/esm/curve/spiral/CubicEvaluator.d.ts +43 -0
  1095. package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -0
  1096. package/lib/esm/curve/spiral/CubicEvaluator.js +67 -0
  1097. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -0
  1098. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +108 -0
  1099. package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -0
  1100. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +198 -0
  1101. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -0
  1102. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +39 -0
  1103. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -0
  1104. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +88 -0
  1105. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -0
  1106. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +265 -0
  1107. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -0
  1108. package/lib/esm/curve/spiral/DirectSpiral3d.js +469 -0
  1109. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -0
  1110. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +158 -0
  1111. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -0
  1112. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +360 -0
  1113. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -0
  1114. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +38 -0
  1115. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -0
  1116. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +72 -0
  1117. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -0
  1118. package/lib/esm/curve/spiral/NormalizedTransition.d.ts +140 -0
  1119. package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -0
  1120. package/lib/esm/curve/spiral/NormalizedTransition.js +182 -0
  1121. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -0
  1122. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +50 -0
  1123. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -0
  1124. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +109 -0
  1125. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -0
  1126. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +53 -0
  1127. package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -0
  1128. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +142 -0
  1129. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -0
  1130. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +101 -0
  1131. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -0
  1132. package/lib/esm/curve/spiral/TransitionSpiral3d.js +106 -0
  1133. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -0
  1134. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +80 -0
  1135. package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -0
  1136. package/lib/esm/curve/spiral/XYCurveEvaluator.js +103 -0
  1137. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -0
  1138. package/lib/esm/geometry3d/Angle.d.ts +214 -0
  1139. package/lib/esm/geometry3d/Angle.d.ts.map +1 -0
  1140. package/lib/esm/geometry3d/Angle.js +399 -0
  1141. package/lib/esm/geometry3d/Angle.js.map +1 -0
  1142. package/lib/esm/geometry3d/AngleSweep.d.ts +187 -0
  1143. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -0
  1144. package/lib/esm/geometry3d/AngleSweep.js +325 -0
  1145. package/lib/esm/geometry3d/AngleSweep.js.map +1 -0
  1146. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +51 -0
  1147. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -0
  1148. package/lib/esm/geometry3d/BarycentricTriangle.js +97 -0
  1149. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -0
  1150. package/lib/esm/geometry3d/BilinearPatch.d.ts +107 -0
  1151. package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -0
  1152. package/lib/esm/geometry3d/BilinearPatch.js +200 -0
  1153. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -0
  1154. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +56 -0
  1155. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -0
  1156. package/lib/esm/geometry3d/CoincidentGeometryOps.js +196 -0
  1157. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -0
  1158. package/lib/esm/geometry3d/Ellipsoid.d.ts +388 -0
  1159. package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -0
  1160. package/lib/esm/geometry3d/Ellipsoid.js +1069 -0
  1161. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -0
  1162. package/lib/esm/geometry3d/FrameBuilder.d.ts +91 -0
  1163. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -0
  1164. package/lib/esm/geometry3d/FrameBuilder.js +315 -0
  1165. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -0
  1166. package/lib/esm/geometry3d/FrustumAnimation.d.ts +59 -0
  1167. package/lib/esm/geometry3d/FrustumAnimation.d.ts.map +1 -0
  1168. package/lib/esm/geometry3d/FrustumAnimation.js +119 -0
  1169. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -0
  1170. package/lib/esm/geometry3d/GeometryHandler.d.ts +329 -0
  1171. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -0
  1172. package/lib/esm/geometry3d/GeometryHandler.js +169 -0
  1173. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -0
  1174. package/lib/esm/geometry3d/GrowableBlockedArray.d.ts +71 -0
  1175. package/lib/esm/geometry3d/GrowableBlockedArray.d.ts.map +1 -0
  1176. package/lib/esm/geometry3d/GrowableBlockedArray.js +158 -0
  1177. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -0
  1178. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +132 -0
  1179. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -0
  1180. package/lib/esm/geometry3d/GrowableFloat64Array.js +249 -0
  1181. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -0
  1182. package/lib/esm/geometry3d/GrowableXYArray.d.ts +204 -0
  1183. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -0
  1184. package/lib/esm/geometry3d/GrowableXYArray.js +621 -0
  1185. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -0
  1186. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +324 -0
  1187. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -0
  1188. package/lib/esm/geometry3d/GrowableXYZArray.js +975 -0
  1189. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -0
  1190. package/lib/esm/geometry3d/IndexedCollectionInterval.d.ts +63 -0
  1191. package/lib/esm/geometry3d/IndexedCollectionInterval.d.ts.map +1 -0
  1192. package/lib/esm/geometry3d/IndexedCollectionInterval.js +105 -0
  1193. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -0
  1194. package/lib/esm/geometry3d/IndexedXYCollection.d.ts +69 -0
  1195. package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -0
  1196. package/lib/esm/geometry3d/IndexedXYCollection.js +16 -0
  1197. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -0
  1198. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +149 -0
  1199. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -0
  1200. package/lib/esm/geometry3d/IndexedXYZCollection.js +98 -0
  1201. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -0
  1202. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.d.ts +63 -0
  1203. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.d.ts.map +1 -0
  1204. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +119 -0
  1205. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -0
  1206. package/lib/esm/geometry3d/Matrix3d.d.ts +885 -0
  1207. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -0
  1208. package/lib/esm/geometry3d/Matrix3d.js +2269 -0
  1209. package/lib/esm/geometry3d/Matrix3d.js.map +1 -0
  1210. package/lib/esm/geometry3d/OrderedRotationAngles.d.ts +61 -0
  1211. package/lib/esm/geometry3d/OrderedRotationAngles.d.ts.map +1 -0
  1212. package/lib/esm/geometry3d/OrderedRotationAngles.js +228 -0
  1213. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -0
  1214. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +122 -0
  1215. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -0
  1216. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +237 -0
  1217. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -0
  1218. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +119 -0
  1219. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -0
  1220. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +238 -0
  1221. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -0
  1222. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts +74 -0
  1223. package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -0
  1224. package/lib/esm/geometry3d/Point2dArrayCarrier.js +111 -0
  1225. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -0
  1226. package/lib/esm/geometry3d/Point2dVector2d.d.ts +209 -0
  1227. package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -0
  1228. package/lib/esm/geometry3d/Point2dVector2d.js +461 -0
  1229. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -0
  1230. package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts +142 -0
  1231. package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts.map +1 -0
  1232. package/lib/esm/geometry3d/Point3dArrayCarrier.js +233 -0
  1233. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -0
  1234. package/lib/esm/geometry3d/Point3dVector3d.d.ts +699 -0
  1235. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -0
  1236. package/lib/esm/geometry3d/Point3dVector3d.js +1294 -0
  1237. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -0
  1238. package/lib/esm/geometry3d/PointHelpers.d.ts +263 -0
  1239. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -0
  1240. package/lib/esm/geometry3d/PointHelpers.js +898 -0
  1241. package/lib/esm/geometry3d/PointHelpers.js.map +1 -0
  1242. package/lib/esm/geometry3d/PointStreaming.d.ts +87 -0
  1243. package/lib/esm/geometry3d/PointStreaming.d.ts.map +1 -0
  1244. package/lib/esm/geometry3d/PointStreaming.js +181 -0
  1245. package/lib/esm/geometry3d/PointStreaming.js.map +1 -0
  1246. package/lib/esm/geometry3d/PolygonOps.d.ts +306 -0
  1247. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -0
  1248. package/lib/esm/geometry3d/PolygonOps.js +986 -0
  1249. package/lib/esm/geometry3d/PolygonOps.js.map +1 -0
  1250. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +81 -0
  1251. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -0
  1252. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +274 -0
  1253. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -0
  1254. package/lib/esm/geometry3d/PolylineOps.d.ts +63 -0
  1255. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -0
  1256. package/lib/esm/geometry3d/PolylineOps.js +172 -0
  1257. package/lib/esm/geometry3d/PolylineOps.js.map +1 -0
  1258. package/lib/esm/geometry3d/Range.d.ts +599 -0
  1259. package/lib/esm/geometry3d/Range.d.ts.map +1 -0
  1260. package/lib/esm/geometry3d/Range.js +1424 -0
  1261. package/lib/esm/geometry3d/Range.js.map +1 -0
  1262. package/lib/esm/geometry3d/Ray3d.d.ts +146 -0
  1263. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -0
  1264. package/lib/esm/geometry3d/Ray3d.js +325 -0
  1265. package/lib/esm/geometry3d/Ray3d.js.map +1 -0
  1266. package/lib/esm/geometry3d/ReusableObjectCache.d.ts +55 -0
  1267. package/lib/esm/geometry3d/ReusableObjectCache.d.ts.map +1 -0
  1268. package/lib/esm/geometry3d/ReusableObjectCache.js +82 -0
  1269. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -0
  1270. package/lib/esm/geometry3d/Segment1d.d.ts +106 -0
  1271. package/lib/esm/geometry3d/Segment1d.d.ts.map +1 -0
  1272. package/lib/esm/geometry3d/Segment1d.js +169 -0
  1273. package/lib/esm/geometry3d/Segment1d.js.map +1 -0
  1274. package/lib/esm/geometry3d/SortablePolygon.d.ts +50 -0
  1275. package/lib/esm/geometry3d/SortablePolygon.d.ts.map +1 -0
  1276. package/lib/esm/geometry3d/SortablePolygon.js +312 -0
  1277. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -0
  1278. package/lib/esm/geometry3d/Transform.d.ts +275 -0
  1279. package/lib/esm/geometry3d/Transform.d.ts.map +1 -0
  1280. package/lib/esm/geometry3d/Transform.js +570 -0
  1281. package/lib/esm/geometry3d/Transform.js.map +1 -0
  1282. package/lib/esm/geometry3d/UVSurfaceOps.d.ts +43 -0
  1283. package/lib/esm/geometry3d/UVSurfaceOps.d.ts.map +1 -0
  1284. package/lib/esm/geometry3d/UVSurfaceOps.js +98 -0
  1285. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -0
  1286. package/lib/esm/geometry3d/XYZProps.d.ts +143 -0
  1287. package/lib/esm/geometry3d/XYZProps.d.ts.map +1 -0
  1288. package/lib/esm/geometry3d/XYZProps.js +6 -0
  1289. package/lib/esm/geometry3d/XYZProps.js.map +1 -0
  1290. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts +111 -0
  1291. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -0
  1292. package/lib/esm/geometry3d/YawPitchRollAngles.js +195 -0
  1293. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -0
  1294. package/lib/esm/geometry4d/Map4d.d.ts +73 -0
  1295. package/lib/esm/geometry4d/Map4d.d.ts.map +1 -0
  1296. package/lib/esm/geometry4d/Map4d.js +147 -0
  1297. package/lib/esm/geometry4d/Map4d.js.map +1 -0
  1298. package/lib/esm/geometry4d/Matrix4d.d.ts +284 -0
  1299. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -0
  1300. package/lib/esm/geometry4d/Matrix4d.js +739 -0
  1301. package/lib/esm/geometry4d/Matrix4d.js.map +1 -0
  1302. package/lib/esm/geometry4d/MomentData.d.ts +180 -0
  1303. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -0
  1304. package/lib/esm/geometry4d/MomentData.js +384 -0
  1305. package/lib/esm/geometry4d/MomentData.js.map +1 -0
  1306. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.d.ts +43 -0
  1307. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +1 -0
  1308. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +81 -0
  1309. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -0
  1310. package/lib/esm/geometry4d/Point4d.d.ts +257 -0
  1311. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -0
  1312. package/lib/esm/geometry4d/Point4d.js +552 -0
  1313. package/lib/esm/geometry4d/Point4d.js.map +1 -0
  1314. package/lib/esm/numerics/BandedSystem.d.ts +39 -0
  1315. package/lib/esm/numerics/BandedSystem.d.ts.map +1 -0
  1316. package/lib/esm/numerics/BandedSystem.js +156 -0
  1317. package/lib/esm/numerics/BandedSystem.js.map +1 -0
  1318. package/lib/esm/numerics/BezierPolynomials.d.ts +462 -0
  1319. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -0
  1320. package/lib/esm/numerics/BezierPolynomials.js +1189 -0
  1321. package/lib/esm/numerics/BezierPolynomials.js.map +1 -0
  1322. package/lib/esm/numerics/ClusterableArray.d.ts +162 -0
  1323. package/lib/esm/numerics/ClusterableArray.d.ts.map +1 -0
  1324. package/lib/esm/numerics/ClusterableArray.js +477 -0
  1325. package/lib/esm/numerics/ClusterableArray.js.map +1 -0
  1326. package/lib/esm/numerics/Complex.d.ts +63 -0
  1327. package/lib/esm/numerics/Complex.d.ts.map +1 -0
  1328. package/lib/esm/numerics/Complex.js +116 -0
  1329. package/lib/esm/numerics/Complex.js.map +1 -0
  1330. package/lib/esm/numerics/ConvexPolygon2d.d.ts +86 -0
  1331. package/lib/esm/numerics/ConvexPolygon2d.d.ts.map +1 -0
  1332. package/lib/esm/numerics/ConvexPolygon2d.js +313 -0
  1333. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -0
  1334. package/lib/esm/numerics/Newton.d.ts +188 -0
  1335. package/lib/esm/numerics/Newton.d.ts.map +1 -0
  1336. package/lib/esm/numerics/Newton.js +247 -0
  1337. package/lib/esm/numerics/Newton.js.map +1 -0
  1338. package/lib/esm/numerics/PascalCoefficients.d.ts +33 -0
  1339. package/lib/esm/numerics/PascalCoefficients.d.ts.map +1 -0
  1340. package/lib/esm/numerics/PascalCoefficients.js +91 -0
  1341. package/lib/esm/numerics/PascalCoefficients.js.map +1 -0
  1342. package/lib/esm/numerics/PolarData.d.ts +42 -0
  1343. package/lib/esm/numerics/PolarData.d.ts.map +1 -0
  1344. package/lib/esm/numerics/PolarData.js +162 -0
  1345. package/lib/esm/numerics/PolarData.js.map +1 -0
  1346. package/lib/esm/numerics/Polynomials.d.ts +653 -0
  1347. package/lib/esm/numerics/Polynomials.d.ts.map +1 -0
  1348. package/lib/esm/numerics/Polynomials.js +1697 -0
  1349. package/lib/esm/numerics/Polynomials.js.map +1 -0
  1350. package/lib/esm/numerics/Quadrature.d.ts +91 -0
  1351. package/lib/esm/numerics/Quadrature.d.ts.map +1 -0
  1352. package/lib/esm/numerics/Quadrature.js +199 -0
  1353. package/lib/esm/numerics/Quadrature.js.map +1 -0
  1354. package/lib/esm/numerics/Range1dArray.d.ts +80 -0
  1355. package/lib/esm/numerics/Range1dArray.d.ts.map +1 -0
  1356. package/lib/esm/numerics/Range1dArray.js +358 -0
  1357. package/lib/esm/numerics/Range1dArray.js.map +1 -0
  1358. package/lib/esm/numerics/TriDiagonalSystem.d.ts +51 -0
  1359. package/lib/esm/numerics/TriDiagonalSystem.d.ts.map +1 -0
  1360. package/lib/esm/numerics/TriDiagonalSystem.js +270 -0
  1361. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -0
  1362. package/lib/esm/numerics/UnionFind.d.ts +49 -0
  1363. package/lib/esm/numerics/UnionFind.d.ts.map +1 -0
  1364. package/lib/esm/numerics/UnionFind.js +117 -0
  1365. package/lib/esm/numerics/UnionFind.js.map +1 -0
  1366. package/lib/esm/numerics/UsageSums.d.ts +86 -0
  1367. package/lib/esm/numerics/UsageSums.d.ts.map +1 -0
  1368. package/lib/esm/numerics/UsageSums.js +128 -0
  1369. package/lib/esm/numerics/UsageSums.js.map +1 -0
  1370. package/lib/esm/polyface/AuxData.d.ts +112 -0
  1371. package/lib/esm/polyface/AuxData.d.ts.map +1 -0
  1372. package/lib/esm/polyface/AuxData.js +228 -0
  1373. package/lib/esm/polyface/AuxData.js.map +1 -0
  1374. package/lib/esm/polyface/BoxTopology.d.ts +38 -0
  1375. package/lib/esm/polyface/BoxTopology.d.ts.map +1 -0
  1376. package/lib/esm/polyface/BoxTopology.js +99 -0
  1377. package/lib/esm/polyface/BoxTopology.js.map +1 -0
  1378. package/lib/esm/polyface/FacetFaceData.d.ts +44 -0
  1379. package/lib/esm/polyface/FacetFaceData.d.ts.map +1 -0
  1380. package/lib/esm/polyface/FacetFaceData.js +142 -0
  1381. package/lib/esm/polyface/FacetFaceData.js.map +1 -0
  1382. package/lib/esm/polyface/FacetOrientation.d.ts +39 -0
  1383. package/lib/esm/polyface/FacetOrientation.d.ts.map +1 -0
  1384. package/lib/esm/polyface/FacetOrientation.js +192 -0
  1385. package/lib/esm/polyface/FacetOrientation.js.map +1 -0
  1386. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.d.ts +61 -0
  1387. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +1 -0
  1388. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +245 -0
  1389. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -0
  1390. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +87 -0
  1391. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -0
  1392. package/lib/esm/polyface/IndexedEdgeMatcher.js +192 -0
  1393. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -0
  1394. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +109 -0
  1395. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -0
  1396. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +237 -0
  1397. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -0
  1398. package/lib/esm/polyface/Polyface.d.ts +254 -0
  1399. package/lib/esm/polyface/Polyface.d.ts.map +1 -0
  1400. package/lib/esm/polyface/Polyface.js +501 -0
  1401. package/lib/esm/polyface/Polyface.js.map +1 -0
  1402. package/lib/esm/polyface/PolyfaceBuilder.d.ts +395 -0
  1403. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -0
  1404. package/lib/esm/polyface/PolyfaceBuilder.js +1634 -0
  1405. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -0
  1406. package/lib/esm/polyface/PolyfaceClip.d.ts +172 -0
  1407. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -0
  1408. package/lib/esm/polyface/PolyfaceClip.js +565 -0
  1409. package/lib/esm/polyface/PolyfaceClip.js.map +1 -0
  1410. package/lib/esm/polyface/PolyfaceData.d.ts +206 -0
  1411. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -0
  1412. package/lib/esm/polyface/PolyfaceData.js +527 -0
  1413. package/lib/esm/polyface/PolyfaceData.js.map +1 -0
  1414. package/lib/esm/polyface/PolyfaceQuery.d.ts +302 -0
  1415. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -0
  1416. package/lib/esm/polyface/PolyfaceQuery.js +947 -0
  1417. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -0
  1418. package/lib/esm/polyface/RangeLengthData.d.ts +31 -0
  1419. package/lib/esm/polyface/RangeLengthData.d.ts.map +1 -0
  1420. package/lib/esm/polyface/RangeLengthData.js +39 -0
  1421. package/lib/esm/polyface/RangeLengthData.js.map +1 -0
  1422. package/lib/esm/polyface/TaggedNumericData.d.ts +95 -0
  1423. package/lib/esm/polyface/TaggedNumericData.d.ts.map +1 -0
  1424. package/lib/esm/polyface/TaggedNumericData.js +160 -0
  1425. package/lib/esm/polyface/TaggedNumericData.js.map +1 -0
  1426. package/lib/esm/polyface/TriangleCandidate.d.ts +64 -0
  1427. package/lib/esm/polyface/TriangleCandidate.d.ts.map +1 -0
  1428. package/lib/esm/polyface/TriangleCandidate.js +116 -0
  1429. package/lib/esm/polyface/TriangleCandidate.js.map +1 -0
  1430. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.d.ts +29 -0
  1431. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -0
  1432. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +160 -0
  1433. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -0
  1434. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +81 -0
  1435. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -0
  1436. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +159 -0
  1437. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -0
  1438. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +53 -0
  1439. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -0
  1440. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +74 -0
  1441. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -0
  1442. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts +44 -0
  1443. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -0
  1444. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +80 -0
  1445. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -0
  1446. package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts +32 -0
  1447. package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -0
  1448. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js +9 -0
  1449. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -0
  1450. package/lib/esm/polyface/multiclip/RangeSearch.d.ts +27 -0
  1451. package/lib/esm/polyface/multiclip/RangeSearch.d.ts.map +1 -0
  1452. package/lib/esm/polyface/multiclip/RangeSearch.js +49 -0
  1453. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -0
  1454. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +25 -0
  1455. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -0
  1456. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +90 -0
  1457. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -0
  1458. package/lib/esm/polyface/multiclip/XYPointBuckets.d.ts +73 -0
  1459. package/lib/esm/polyface/multiclip/XYPointBuckets.d.ts.map +1 -0
  1460. package/lib/esm/polyface/multiclip/XYPointBuckets.js +192 -0
  1461. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -0
  1462. package/lib/esm/serialization/BGFBAccessors.d.ts +3426 -0
  1463. package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -0
  1464. package/lib/esm/serialization/BGFBAccessors.js +5543 -0
  1465. package/lib/esm/serialization/BGFBAccessors.js.map +1 -0
  1466. package/lib/esm/serialization/BGFBReader.d.ts +118 -0
  1467. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -0
  1468. package/lib/esm/serialization/BGFBReader.js +661 -0
  1469. package/lib/esm/serialization/BGFBReader.js.map +1 -0
  1470. package/lib/esm/serialization/BGFBWriter.d.ts +69 -0
  1471. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -0
  1472. package/lib/esm/serialization/BGFBWriter.js +587 -0
  1473. package/lib/esm/serialization/BGFBWriter.js.map +1 -0
  1474. package/lib/esm/serialization/BentleyGeometryFlatBuffer.d.ts +23 -0
  1475. package/lib/esm/serialization/BentleyGeometryFlatBuffer.d.ts.map +1 -0
  1476. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +26 -0
  1477. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -0
  1478. package/lib/esm/serialization/DeepCompare.d.ts +41 -0
  1479. package/lib/esm/serialization/DeepCompare.d.ts.map +1 -0
  1480. package/lib/esm/serialization/DeepCompare.js +185 -0
  1481. package/lib/esm/serialization/DeepCompare.js.map +1 -0
  1482. package/lib/esm/serialization/GeometrySamples.d.ts +616 -0
  1483. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -0
  1484. package/lib/esm/serialization/GeometrySamples.js +2124 -0
  1485. package/lib/esm/serialization/GeometrySamples.js.map +1 -0
  1486. package/lib/esm/serialization/IModelJsonSchema.d.ts +671 -0
  1487. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -0
  1488. package/lib/esm/serialization/IModelJsonSchema.js +1523 -0
  1489. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -0
  1490. package/lib/esm/solid/Box.d.ts +122 -0
  1491. package/lib/esm/solid/Box.d.ts.map +1 -0
  1492. package/lib/esm/solid/Box.js +229 -0
  1493. package/lib/esm/solid/Box.js.map +1 -0
  1494. package/lib/esm/solid/Cone.d.ts +119 -0
  1495. package/lib/esm/solid/Cone.d.ts.map +1 -0
  1496. package/lib/esm/solid/Cone.js +267 -0
  1497. package/lib/esm/solid/Cone.js.map +1 -0
  1498. package/lib/esm/solid/LinearSweep.d.ts +81 -0
  1499. package/lib/esm/solid/LinearSweep.d.ts.map +1 -0
  1500. package/lib/esm/solid/LinearSweep.js +143 -0
  1501. package/lib/esm/solid/LinearSweep.js.map +1 -0
  1502. package/lib/esm/solid/RotationalSweep.d.ts +71 -0
  1503. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -0
  1504. package/lib/esm/solid/RotationalSweep.js +139 -0
  1505. package/lib/esm/solid/RotationalSweep.js.map +1 -0
  1506. package/lib/esm/solid/RuledSweep.d.ts +76 -0
  1507. package/lib/esm/solid/RuledSweep.d.ts.map +1 -0
  1508. package/lib/esm/solid/RuledSweep.js +202 -0
  1509. package/lib/esm/solid/RuledSweep.js.map +1 -0
  1510. package/lib/esm/solid/SolidPrimitive.d.ts +63 -0
  1511. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -0
  1512. package/lib/esm/solid/SolidPrimitive.js +23 -0
  1513. package/lib/esm/solid/SolidPrimitive.js.map +1 -0
  1514. package/lib/esm/solid/Sphere.d.ts +120 -0
  1515. package/lib/esm/solid/Sphere.d.ts.map +1 -0
  1516. package/lib/esm/solid/Sphere.js +294 -0
  1517. package/lib/esm/solid/Sphere.js.map +1 -0
  1518. package/lib/esm/solid/SweepContour.d.ts +82 -0
  1519. package/lib/esm/solid/SweepContour.d.ts.map +1 -0
  1520. package/lib/esm/solid/SweepContour.js +250 -0
  1521. package/lib/esm/solid/SweepContour.js.map +1 -0
  1522. package/lib/esm/solid/TorusPipe.d.ts +123 -0
  1523. package/lib/esm/solid/TorusPipe.d.ts.map +1 -0
  1524. package/lib/esm/solid/TorusPipe.js +296 -0
  1525. package/lib/esm/solid/TorusPipe.js.map +1 -0
  1526. package/lib/esm/topology/ChainMerge.d.ts +119 -0
  1527. package/lib/esm/topology/ChainMerge.d.ts.map +1 -0
  1528. package/lib/esm/topology/ChainMerge.js +280 -0
  1529. package/lib/esm/topology/ChainMerge.js.map +1 -0
  1530. package/lib/esm/topology/Graph.d.ts +591 -0
  1531. package/lib/esm/topology/Graph.d.ts.map +1 -0
  1532. package/lib/esm/topology/Graph.js +1156 -0
  1533. package/lib/esm/topology/Graph.js.map +1 -0
  1534. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +125 -0
  1535. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -0
  1536. package/lib/esm/topology/HalfEdgeGraphSearch.js +296 -0
  1537. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -0
  1538. package/lib/esm/topology/HalfEdgeGraphSpineContext.d.ts +98 -0
  1539. package/lib/esm/topology/HalfEdgeGraphSpineContext.d.ts.map +1 -0
  1540. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +519 -0
  1541. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -0
  1542. package/lib/esm/topology/HalfEdgeGraphValidation.d.ts +52 -0
  1543. package/lib/esm/topology/HalfEdgeGraphValidation.d.ts.map +1 -0
  1544. package/lib/esm/topology/HalfEdgeGraphValidation.js +107 -0
  1545. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -0
  1546. package/lib/esm/topology/HalfEdgeMarkSet.d.ts +232 -0
  1547. package/lib/esm/topology/HalfEdgeMarkSet.d.ts.map +1 -0
  1548. package/lib/esm/topology/HalfEdgeMarkSet.js +369 -0
  1549. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -0
  1550. package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts +51 -0
  1551. package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts.map +1 -0
  1552. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +93 -0
  1553. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -0
  1554. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts +34 -0
  1555. package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -0
  1556. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +252 -0
  1557. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -0
  1558. package/lib/esm/topology/HalfEdgePositionDetail.d.ts +97 -0
  1559. package/lib/esm/topology/HalfEdgePositionDetail.d.ts.map +1 -0
  1560. package/lib/esm/topology/HalfEdgePositionDetail.js +173 -0
  1561. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -0
  1562. package/lib/esm/topology/HalfEdgePriorityQueue.d.ts +34 -0
  1563. package/lib/esm/topology/HalfEdgePriorityQueue.d.ts.map +1 -0
  1564. package/lib/esm/topology/HalfEdgePriorityQueue.js +68 -0
  1565. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -0
  1566. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts +38 -0
  1567. package/lib/esm/topology/InsertAndRetriangulateContext.d.ts.map +1 -0
  1568. package/lib/esm/topology/InsertAndRetriangulateContext.js +239 -0
  1569. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -0
  1570. package/lib/esm/topology/MaskManager.d.ts +33 -0
  1571. package/lib/esm/topology/MaskManager.d.ts.map +1 -0
  1572. package/lib/esm/topology/MaskManager.js +63 -0
  1573. package/lib/esm/topology/MaskManager.js.map +1 -0
  1574. package/lib/esm/topology/Merging.d.ts +90 -0
  1575. package/lib/esm/topology/Merging.d.ts.map +1 -0
  1576. package/lib/esm/topology/Merging.js +362 -0
  1577. package/lib/esm/topology/Merging.js.map +1 -0
  1578. package/lib/esm/topology/RegularizeFace.d.ts +106 -0
  1579. package/lib/esm/topology/RegularizeFace.d.ts.map +1 -0
  1580. package/lib/esm/topology/RegularizeFace.js +367 -0
  1581. package/lib/esm/topology/RegularizeFace.js.map +1 -0
  1582. package/lib/esm/topology/SignedDataSummary.d.ts +37 -0
  1583. package/lib/esm/topology/SignedDataSummary.d.ts.map +1 -0
  1584. package/lib/esm/topology/SignedDataSummary.js +54 -0
  1585. package/lib/esm/topology/SignedDataSummary.js.map +1 -0
  1586. package/lib/esm/topology/Triangulation.d.ts +230 -0
  1587. package/lib/esm/topology/Triangulation.d.ts.map +1 -0
  1588. package/lib/esm/topology/Triangulation.js +945 -0
  1589. package/lib/esm/topology/Triangulation.js.map +1 -0
  1590. package/lib/esm/topology/XYParitySearchContext.d.ts +54 -0
  1591. package/lib/esm/topology/XYParitySearchContext.d.ts.map +1 -0
  1592. package/lib/esm/topology/XYParitySearchContext.js +138 -0
  1593. package/lib/esm/topology/XYParitySearchContext.js.map +1 -0
  1594. package/package.json +11 -8
  1595. package/lib/Constant.d.ts.map +0 -1
  1596. package/lib/Constant.js.map +0 -1
  1597. package/lib/Geometry.d.ts.map +0 -1
  1598. package/lib/Geometry.js.map +0 -1
  1599. package/lib/bspline/AkimaCurve3d.d.ts.map +0 -1
  1600. package/lib/bspline/AkimaCurve3d.js.map +0 -1
  1601. package/lib/bspline/BSpline1dNd.d.ts.map +0 -1
  1602. package/lib/bspline/BSpline1dNd.js.map +0 -1
  1603. package/lib/bspline/BSplineCurve.d.ts.map +0 -1
  1604. package/lib/bspline/BSplineCurve.js.map +0 -1
  1605. package/lib/bspline/BSplineCurve3dH.d.ts.map +0 -1
  1606. package/lib/bspline/BSplineCurve3dH.js.map +0 -1
  1607. package/lib/bspline/BSplineCurveOps.d.ts.map +0 -1
  1608. package/lib/bspline/BSplineCurveOps.js.map +0 -1
  1609. package/lib/bspline/BSplineSurface.d.ts +0 -485
  1610. package/lib/bspline/BSplineSurface.d.ts.map +0 -1
  1611. package/lib/bspline/BSplineSurface.js.map +0 -1
  1612. package/lib/bspline/Bezier1dNd.d.ts.map +0 -1
  1613. package/lib/bspline/Bezier1dNd.js.map +0 -1
  1614. package/lib/bspline/BezierCurve3d.d.ts.map +0 -1
  1615. package/lib/bspline/BezierCurve3d.js.map +0 -1
  1616. package/lib/bspline/BezierCurve3dH.d.ts.map +0 -1
  1617. package/lib/bspline/BezierCurve3dH.js.map +0 -1
  1618. package/lib/bspline/BezierCurveBase.d.ts.map +0 -1
  1619. package/lib/bspline/BezierCurveBase.js.map +0 -1
  1620. package/lib/bspline/InterpolationCurve3d.d.ts.map +0 -1
  1621. package/lib/bspline/InterpolationCurve3d.js.map +0 -1
  1622. package/lib/bspline/KnotVector.d.ts.map +0 -1
  1623. package/lib/bspline/KnotVector.js.map +0 -1
  1624. package/lib/bspline/SurfaceLocationDetail.d.ts.map +0 -1
  1625. package/lib/bspline/SurfaceLocationDetail.js.map +0 -1
  1626. package/lib/clipping/AlternatingConvexClipTree.d.ts.map +0 -1
  1627. package/lib/clipping/AlternatingConvexClipTree.js.map +0 -1
  1628. package/lib/clipping/BooleanClipFactory.d.ts.map +0 -1
  1629. package/lib/clipping/BooleanClipFactory.js.map +0 -1
  1630. package/lib/clipping/BooleanClipNode.d.ts.map +0 -1
  1631. package/lib/clipping/BooleanClipNode.js.map +0 -1
  1632. package/lib/clipping/ClipPlane.d.ts.map +0 -1
  1633. package/lib/clipping/ClipPlane.js.map +0 -1
  1634. package/lib/clipping/ClipPrimitive.d.ts.map +0 -1
  1635. package/lib/clipping/ClipPrimitive.js.map +0 -1
  1636. package/lib/clipping/ClipUtils.d.ts.map +0 -1
  1637. package/lib/clipping/ClipUtils.js.map +0 -1
  1638. package/lib/clipping/ClipVector.d.ts.map +0 -1
  1639. package/lib/clipping/ClipVector.js.map +0 -1
  1640. package/lib/clipping/ConvexClipPlaneSet.d.ts.map +0 -1
  1641. package/lib/clipping/ConvexClipPlaneSet.js.map +0 -1
  1642. package/lib/clipping/UnionOfConvexClipPlaneSets.d.ts.map +0 -1
  1643. package/lib/clipping/UnionOfConvexClipPlaneSets.js.map +0 -1
  1644. package/lib/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +0 -1
  1645. package/lib/clipping/internalContexts/LineStringOffsetClipperContext.js.map +0 -1
  1646. package/lib/core-geometry.d.ts.map +0 -1
  1647. package/lib/core-geometry.js.map +0 -1
  1648. package/lib/curve/Arc3d.d.ts.map +0 -1
  1649. package/lib/curve/Arc3d.js.map +0 -1
  1650. package/lib/curve/ChainCollectorContext.d.ts.map +0 -1
  1651. package/lib/curve/ChainCollectorContext.js.map +0 -1
  1652. package/lib/curve/ConstructCurveBetweenCurves.d.ts.map +0 -1
  1653. package/lib/curve/ConstructCurveBetweenCurves.js.map +0 -1
  1654. package/lib/curve/CoordinateXYZ.d.ts.map +0 -1
  1655. package/lib/curve/CoordinateXYZ.js.map +0 -1
  1656. package/lib/curve/CurveChain.d.ts.map +0 -1
  1657. package/lib/curve/CurveChain.js.map +0 -1
  1658. package/lib/curve/CurveChainWithDistanceIndex.d.ts.map +0 -1
  1659. package/lib/curve/CurveChainWithDistanceIndex.js.map +0 -1
  1660. package/lib/curve/CurveCollection.d.ts.map +0 -1
  1661. package/lib/curve/CurveCollection.js.map +0 -1
  1662. package/lib/curve/CurveCurve.d.ts.map +0 -1
  1663. package/lib/curve/CurveCurve.js.map +0 -1
  1664. package/lib/curve/CurveCurveCloseApproachXY.d.ts.map +0 -1
  1665. package/lib/curve/CurveCurveCloseApproachXY.js.map +0 -1
  1666. package/lib/curve/CurveCurveIntersectXY.d.ts.map +0 -1
  1667. package/lib/curve/CurveCurveIntersectXY.js.map +0 -1
  1668. package/lib/curve/CurveCurveIntersectXYZ.d.ts.map +0 -1
  1669. package/lib/curve/CurveCurveIntersectXYZ.js.map +0 -1
  1670. package/lib/curve/CurveExtendMode.d.ts.map +0 -1
  1671. package/lib/curve/CurveExtendMode.js.map +0 -1
  1672. package/lib/curve/CurveFactory.d.ts.map +0 -1
  1673. package/lib/curve/CurveFactory.js.map +0 -1
  1674. package/lib/curve/CurveLocationDetail.d.ts.map +0 -1
  1675. package/lib/curve/CurveLocationDetail.js.map +0 -1
  1676. package/lib/curve/CurvePrimitive.d.ts.map +0 -1
  1677. package/lib/curve/CurvePrimitive.js.map +0 -1
  1678. package/lib/curve/CurveProcessor.d.ts.map +0 -1
  1679. package/lib/curve/CurveProcessor.js.map +0 -1
  1680. package/lib/curve/CurveWireMomentsXYZ.d.ts.map +0 -1
  1681. package/lib/curve/CurveWireMomentsXYZ.js.map +0 -1
  1682. package/lib/curve/GeometryQuery.d.ts.map +0 -1
  1683. package/lib/curve/GeometryQuery.js.map +0 -1
  1684. package/lib/curve/LineSegment3d.d.ts.map +0 -1
  1685. package/lib/curve/LineSegment3d.js.map +0 -1
  1686. package/lib/curve/LineString3d.d.ts.map +0 -1
  1687. package/lib/curve/LineString3d.js.map +0 -1
  1688. package/lib/curve/Loop.d.ts.map +0 -1
  1689. package/lib/curve/Loop.js.map +0 -1
  1690. package/lib/curve/ParityRegion.d.ts.map +0 -1
  1691. package/lib/curve/ParityRegion.js.map +0 -1
  1692. package/lib/curve/Path.d.ts.map +0 -1
  1693. package/lib/curve/Path.js.map +0 -1
  1694. package/lib/curve/PointString3d.d.ts.map +0 -1
  1695. package/lib/curve/PointString3d.js.map +0 -1
  1696. package/lib/curve/ProxyCurve.d.ts.map +0 -1
  1697. package/lib/curve/ProxyCurve.js.map +0 -1
  1698. package/lib/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +0 -1
  1699. package/lib/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +0 -1
  1700. package/lib/curve/Query/CurveSplitContext.d.ts.map +0 -1
  1701. package/lib/curve/Query/CurveSplitContext.js.map +0 -1
  1702. package/lib/curve/Query/CylindricalRange.d.ts.map +0 -1
  1703. package/lib/curve/Query/CylindricalRange.js.map +0 -1
  1704. package/lib/curve/Query/InOutTests.d.ts.map +0 -1
  1705. package/lib/curve/Query/InOutTests.js.map +0 -1
  1706. package/lib/curve/Query/PlanarSubdivision.d.ts.map +0 -1
  1707. package/lib/curve/Query/PlanarSubdivision.js.map +0 -1
  1708. package/lib/curve/Query/StrokeCountChain.d.ts.map +0 -1
  1709. package/lib/curve/Query/StrokeCountChain.js.map +0 -1
  1710. package/lib/curve/Query/StrokeCountMap.d.ts.map +0 -1
  1711. package/lib/curve/Query/StrokeCountMap.js.map +0 -1
  1712. package/lib/curve/RegionMomentsXY.d.ts.map +0 -1
  1713. package/lib/curve/RegionMomentsXY.js.map +0 -1
  1714. package/lib/curve/RegionOps.d.ts.map +0 -1
  1715. package/lib/curve/RegionOps.js.map +0 -1
  1716. package/lib/curve/RegionOpsClassificationSweeps.d.ts.map +0 -1
  1717. package/lib/curve/RegionOpsClassificationSweeps.js.map +0 -1
  1718. package/lib/curve/StrokeOptions.d.ts.map +0 -1
  1719. package/lib/curve/StrokeOptions.js.map +0 -1
  1720. package/lib/curve/UnionRegion.d.ts.map +0 -1
  1721. package/lib/curve/UnionRegion.js.map +0 -1
  1722. package/lib/curve/internalContexts/CloneCurvesContext.d.ts.map +0 -1
  1723. package/lib/curve/internalContexts/CloneCurvesContext.js.map +0 -1
  1724. package/lib/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +0 -1
  1725. package/lib/curve/internalContexts/CloneWithExpandedLineStrings.js.map +0 -1
  1726. package/lib/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +0 -1
  1727. package/lib/curve/internalContexts/CountLinearPartsSearchContext.js.map +0 -1
  1728. package/lib/curve/internalContexts/GapSearchContext.d.ts.map +0 -1
  1729. package/lib/curve/internalContexts/GapSearchContext.js.map +0 -1
  1730. package/lib/curve/internalContexts/MultiChainCollector.d.ts.map +0 -1
  1731. package/lib/curve/internalContexts/MultiChainCollector.js.map +0 -1
  1732. package/lib/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +0 -1
  1733. package/lib/curve/internalContexts/PlaneAltitudeRangeContext.js.map +0 -1
  1734. package/lib/curve/internalContexts/PolygonOffsetContext.d.ts.map +0 -1
  1735. package/lib/curve/internalContexts/PolygonOffsetContext.js.map +0 -1
  1736. package/lib/curve/internalContexts/SumLengthsContext.d.ts.map +0 -1
  1737. package/lib/curve/internalContexts/SumLengthsContext.js.map +0 -1
  1738. package/lib/curve/internalContexts/TransformInPlaceContext.d.ts.map +0 -1
  1739. package/lib/curve/internalContexts/TransformInPlaceContext.js.map +0 -1
  1740. package/lib/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +0 -1
  1741. package/lib/curve/spiral/AustralianRailCorpXYEvaluator.js.map +0 -1
  1742. package/lib/curve/spiral/ClothoidSeries.d.ts.map +0 -1
  1743. package/lib/curve/spiral/ClothoidSeries.js.map +0 -1
  1744. package/lib/curve/spiral/CubicEvaluator.d.ts.map +0 -1
  1745. package/lib/curve/spiral/CubicEvaluator.js.map +0 -1
  1746. package/lib/curve/spiral/CzechSpiralEvaluator.d.ts.map +0 -1
  1747. package/lib/curve/spiral/CzechSpiralEvaluator.js.map +0 -1
  1748. package/lib/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +0 -1
  1749. package/lib/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +0 -1
  1750. package/lib/curve/spiral/DirectSpiral3d.d.ts +0 -264
  1751. package/lib/curve/spiral/DirectSpiral3d.d.ts.map +0 -1
  1752. package/lib/curve/spiral/DirectSpiral3d.js +0 -464
  1753. package/lib/curve/spiral/DirectSpiral3d.js.map +0 -1
  1754. package/lib/curve/spiral/IntegratedSpiral3d.d.ts +0 -154
  1755. package/lib/curve/spiral/IntegratedSpiral3d.d.ts.map +0 -1
  1756. package/lib/curve/spiral/IntegratedSpiral3d.js +0 -351
  1757. package/lib/curve/spiral/IntegratedSpiral3d.js.map +0 -1
  1758. package/lib/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +0 -1
  1759. package/lib/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +0 -1
  1760. package/lib/curve/spiral/NormalizedTransition.d.ts.map +0 -1
  1761. package/lib/curve/spiral/NormalizedTransition.js.map +0 -1
  1762. package/lib/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +0 -1
  1763. package/lib/curve/spiral/PolishCubicSpiralEvaluator.js.map +0 -1
  1764. package/lib/curve/spiral/TransitionConditionalProperties.d.ts.map +0 -1
  1765. package/lib/curve/spiral/TransitionConditionalProperties.js.map +0 -1
  1766. package/lib/curve/spiral/TransitionSpiral3d.d.ts.map +0 -1
  1767. package/lib/curve/spiral/TransitionSpiral3d.js.map +0 -1
  1768. package/lib/curve/spiral/XYCurveEvaluator.d.ts.map +0 -1
  1769. package/lib/curve/spiral/XYCurveEvaluator.js.map +0 -1
  1770. package/lib/geometry3d/Angle.d.ts.map +0 -1
  1771. package/lib/geometry3d/Angle.js.map +0 -1
  1772. package/lib/geometry3d/AngleSweep.d.ts.map +0 -1
  1773. package/lib/geometry3d/AngleSweep.js.map +0 -1
  1774. package/lib/geometry3d/BarycentricTriangle.d.ts.map +0 -1
  1775. package/lib/geometry3d/BarycentricTriangle.js.map +0 -1
  1776. package/lib/geometry3d/BilinearPatch.d.ts.map +0 -1
  1777. package/lib/geometry3d/BilinearPatch.js.map +0 -1
  1778. package/lib/geometry3d/CoincidentGeometryOps.d.ts.map +0 -1
  1779. package/lib/geometry3d/CoincidentGeometryOps.js.map +0 -1
  1780. package/lib/geometry3d/Ellipsoid.d.ts.map +0 -1
  1781. package/lib/geometry3d/Ellipsoid.js.map +0 -1
  1782. package/lib/geometry3d/FrameBuilder.d.ts.map +0 -1
  1783. package/lib/geometry3d/FrameBuilder.js.map +0 -1
  1784. package/lib/geometry3d/FrustumAnimation.d.ts.map +0 -1
  1785. package/lib/geometry3d/FrustumAnimation.js.map +0 -1
  1786. package/lib/geometry3d/GeometryHandler.d.ts.map +0 -1
  1787. package/lib/geometry3d/GeometryHandler.js.map +0 -1
  1788. package/lib/geometry3d/GrowableBlockedArray.d.ts.map +0 -1
  1789. package/lib/geometry3d/GrowableBlockedArray.js.map +0 -1
  1790. package/lib/geometry3d/GrowableFloat64Array.d.ts.map +0 -1
  1791. package/lib/geometry3d/GrowableFloat64Array.js.map +0 -1
  1792. package/lib/geometry3d/GrowableXYArray.d.ts.map +0 -1
  1793. package/lib/geometry3d/GrowableXYArray.js.map +0 -1
  1794. package/lib/geometry3d/GrowableXYZArray.d.ts.map +0 -1
  1795. package/lib/geometry3d/GrowableXYZArray.js.map +0 -1
  1796. package/lib/geometry3d/IndexedCollectionInterval.d.ts.map +0 -1
  1797. package/lib/geometry3d/IndexedCollectionInterval.js.map +0 -1
  1798. package/lib/geometry3d/IndexedXYCollection.d.ts.map +0 -1
  1799. package/lib/geometry3d/IndexedXYCollection.js.map +0 -1
  1800. package/lib/geometry3d/IndexedXYZCollection.d.ts.map +0 -1
  1801. package/lib/geometry3d/IndexedXYZCollection.js.map +0 -1
  1802. package/lib/geometry3d/LongitudeLatitudeAltitude.d.ts.map +0 -1
  1803. package/lib/geometry3d/LongitudeLatitudeAltitude.js.map +0 -1
  1804. package/lib/geometry3d/Matrix3d.d.ts.map +0 -1
  1805. package/lib/geometry3d/Matrix3d.js.map +0 -1
  1806. package/lib/geometry3d/OrderedRotationAngles.d.ts.map +0 -1
  1807. package/lib/geometry3d/OrderedRotationAngles.js.map +0 -1
  1808. package/lib/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +0 -1
  1809. package/lib/geometry3d/Plane3dByOriginAndUnitNormal.js.map +0 -1
  1810. package/lib/geometry3d/Plane3dByOriginAndVectors.d.ts.map +0 -1
  1811. package/lib/geometry3d/Plane3dByOriginAndVectors.js.map +0 -1
  1812. package/lib/geometry3d/Point2dArrayCarrier.d.ts.map +0 -1
  1813. package/lib/geometry3d/Point2dArrayCarrier.js.map +0 -1
  1814. package/lib/geometry3d/Point2dVector2d.d.ts.map +0 -1
  1815. package/lib/geometry3d/Point2dVector2d.js.map +0 -1
  1816. package/lib/geometry3d/Point3dArrayCarrier.d.ts.map +0 -1
  1817. package/lib/geometry3d/Point3dArrayCarrier.js.map +0 -1
  1818. package/lib/geometry3d/Point3dVector3d.d.ts.map +0 -1
  1819. package/lib/geometry3d/Point3dVector3d.js.map +0 -1
  1820. package/lib/geometry3d/PointHelpers.d.ts.map +0 -1
  1821. package/lib/geometry3d/PointHelpers.js.map +0 -1
  1822. package/lib/geometry3d/PointStreaming.d.ts.map +0 -1
  1823. package/lib/geometry3d/PointStreaming.js.map +0 -1
  1824. package/lib/geometry3d/PolygonOps.d.ts.map +0 -1
  1825. package/lib/geometry3d/PolygonOps.js.map +0 -1
  1826. package/lib/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +0 -1
  1827. package/lib/geometry3d/PolylineCompressionByEdgeOffset.js.map +0 -1
  1828. package/lib/geometry3d/PolylineOps.d.ts.map +0 -1
  1829. package/lib/geometry3d/PolylineOps.js.map +0 -1
  1830. package/lib/geometry3d/Range.d.ts.map +0 -1
  1831. package/lib/geometry3d/Range.js.map +0 -1
  1832. package/lib/geometry3d/Ray3d.d.ts.map +0 -1
  1833. package/lib/geometry3d/Ray3d.js.map +0 -1
  1834. package/lib/geometry3d/ReusableObjectCache.d.ts.map +0 -1
  1835. package/lib/geometry3d/ReusableObjectCache.js.map +0 -1
  1836. package/lib/geometry3d/Segment1d.d.ts.map +0 -1
  1837. package/lib/geometry3d/Segment1d.js.map +0 -1
  1838. package/lib/geometry3d/SortablePolygon.d.ts.map +0 -1
  1839. package/lib/geometry3d/SortablePolygon.js.map +0 -1
  1840. package/lib/geometry3d/Transform.d.ts.map +0 -1
  1841. package/lib/geometry3d/Transform.js.map +0 -1
  1842. package/lib/geometry3d/UVSurfaceOps.d.ts.map +0 -1
  1843. package/lib/geometry3d/UVSurfaceOps.js.map +0 -1
  1844. package/lib/geometry3d/XYZProps.d.ts.map +0 -1
  1845. package/lib/geometry3d/XYZProps.js.map +0 -1
  1846. package/lib/geometry3d/YawPitchRollAngles.d.ts.map +0 -1
  1847. package/lib/geometry3d/YawPitchRollAngles.js.map +0 -1
  1848. package/lib/geometry4d/Map4d.d.ts.map +0 -1
  1849. package/lib/geometry4d/Map4d.js.map +0 -1
  1850. package/lib/geometry4d/Matrix4d.d.ts.map +0 -1
  1851. package/lib/geometry4d/Matrix4d.js.map +0 -1
  1852. package/lib/geometry4d/MomentData.d.ts.map +0 -1
  1853. package/lib/geometry4d/MomentData.js.map +0 -1
  1854. package/lib/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +0 -1
  1855. package/lib/geometry4d/PlaneByOriginAndVectors4d.js.map +0 -1
  1856. package/lib/geometry4d/Point4d.d.ts.map +0 -1
  1857. package/lib/geometry4d/Point4d.js.map +0 -1
  1858. package/lib/numerics/BandedSystem.d.ts.map +0 -1
  1859. package/lib/numerics/BandedSystem.js.map +0 -1
  1860. package/lib/numerics/BezierPolynomials.d.ts.map +0 -1
  1861. package/lib/numerics/BezierPolynomials.js.map +0 -1
  1862. package/lib/numerics/ClusterableArray.d.ts.map +0 -1
  1863. package/lib/numerics/ClusterableArray.js.map +0 -1
  1864. package/lib/numerics/Complex.d.ts.map +0 -1
  1865. package/lib/numerics/Complex.js.map +0 -1
  1866. package/lib/numerics/ConvexPolygon2d.d.ts.map +0 -1
  1867. package/lib/numerics/ConvexPolygon2d.js.map +0 -1
  1868. package/lib/numerics/Newton.d.ts.map +0 -1
  1869. package/lib/numerics/Newton.js.map +0 -1
  1870. package/lib/numerics/PascalCoefficients.d.ts.map +0 -1
  1871. package/lib/numerics/PascalCoefficients.js.map +0 -1
  1872. package/lib/numerics/PolarData.d.ts.map +0 -1
  1873. package/lib/numerics/PolarData.js.map +0 -1
  1874. package/lib/numerics/Polynomials.d.ts.map +0 -1
  1875. package/lib/numerics/Polynomials.js.map +0 -1
  1876. package/lib/numerics/Quadrature.d.ts.map +0 -1
  1877. package/lib/numerics/Quadrature.js.map +0 -1
  1878. package/lib/numerics/Range1dArray.d.ts.map +0 -1
  1879. package/lib/numerics/Range1dArray.js.map +0 -1
  1880. package/lib/numerics/TriDiagonalSystem.d.ts.map +0 -1
  1881. package/lib/numerics/TriDiagonalSystem.js.map +0 -1
  1882. package/lib/numerics/UnionFind.d.ts.map +0 -1
  1883. package/lib/numerics/UnionFind.js.map +0 -1
  1884. package/lib/numerics/UsageSums.d.ts.map +0 -1
  1885. package/lib/numerics/UsageSums.js.map +0 -1
  1886. package/lib/polyface/AuxData.d.ts.map +0 -1
  1887. package/lib/polyface/AuxData.js.map +0 -1
  1888. package/lib/polyface/BoxTopology.d.ts.map +0 -1
  1889. package/lib/polyface/BoxTopology.js.map +0 -1
  1890. package/lib/polyface/FacetFaceData.d.ts.map +0 -1
  1891. package/lib/polyface/FacetFaceData.js.map +0 -1
  1892. package/lib/polyface/FacetOrientation.d.ts.map +0 -1
  1893. package/lib/polyface/FacetOrientation.js.map +0 -1
  1894. package/lib/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +0 -1
  1895. package/lib/polyface/GreedyTriangulationBetweenLineStrings.js.map +0 -1
  1896. package/lib/polyface/IndexedEdgeMatcher.d.ts.map +0 -1
  1897. package/lib/polyface/IndexedEdgeMatcher.js.map +0 -1
  1898. package/lib/polyface/IndexedPolyfaceVisitor.d.ts.map +0 -1
  1899. package/lib/polyface/IndexedPolyfaceVisitor.js.map +0 -1
  1900. package/lib/polyface/Polyface.d.ts.map +0 -1
  1901. package/lib/polyface/Polyface.js.map +0 -1
  1902. package/lib/polyface/PolyfaceBuilder.d.ts.map +0 -1
  1903. package/lib/polyface/PolyfaceBuilder.js.map +0 -1
  1904. package/lib/polyface/PolyfaceClip.d.ts.map +0 -1
  1905. package/lib/polyface/PolyfaceClip.js.map +0 -1
  1906. package/lib/polyface/PolyfaceData.d.ts +0 -170
  1907. package/lib/polyface/PolyfaceData.d.ts.map +0 -1
  1908. package/lib/polyface/PolyfaceData.js +0 -531
  1909. package/lib/polyface/PolyfaceData.js.map +0 -1
  1910. package/lib/polyface/PolyfaceQuery.d.ts.map +0 -1
  1911. package/lib/polyface/PolyfaceQuery.js.map +0 -1
  1912. package/lib/polyface/RangeLengthData.d.ts.map +0 -1
  1913. package/lib/polyface/RangeLengthData.js.map +0 -1
  1914. package/lib/polyface/TaggedNumericData.d.ts.map +0 -1
  1915. package/lib/polyface/TaggedNumericData.js.map +0 -1
  1916. package/lib/polyface/TriangleCandidate.d.ts.map +0 -1
  1917. package/lib/polyface/TriangleCandidate.js.map +0 -1
  1918. package/lib/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +0 -1
  1919. package/lib/polyface/multiclip/BuildAverageNormalsContext.js.map +0 -1
  1920. package/lib/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +0 -1
  1921. package/lib/polyface/multiclip/GriddedRaggedRange2dSet.js.map +0 -1
  1922. package/lib/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +0 -1
  1923. package/lib/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +0 -1
  1924. package/lib/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +0 -1
  1925. package/lib/polyface/multiclip/LinearSearchRange2dArray.js.map +0 -1
  1926. package/lib/polyface/multiclip/Range2dSearchInterface.d.ts.map +0 -1
  1927. package/lib/polyface/multiclip/Range2dSearchInterface.js.map +0 -1
  1928. package/lib/polyface/multiclip/RangeSearch.d.ts.map +0 -1
  1929. package/lib/polyface/multiclip/RangeSearch.js.map +0 -1
  1930. package/lib/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +0 -1
  1931. package/lib/polyface/multiclip/SweepLineStringToFacetContext.js.map +0 -1
  1932. package/lib/polyface/multiclip/XYPointBuckets.d.ts.map +0 -1
  1933. package/lib/polyface/multiclip/XYPointBuckets.js.map +0 -1
  1934. package/lib/serialization/BGFBAccessors.d.ts.map +0 -1
  1935. package/lib/serialization/BGFBAccessors.js.map +0 -1
  1936. package/lib/serialization/BGFBReader.d.ts.map +0 -1
  1937. package/lib/serialization/BGFBReader.js.map +0 -1
  1938. package/lib/serialization/BGFBWriter.d.ts.map +0 -1
  1939. package/lib/serialization/BGFBWriter.js.map +0 -1
  1940. package/lib/serialization/BentleyGeometryFlatBuffer.d.ts.map +0 -1
  1941. package/lib/serialization/BentleyGeometryFlatBuffer.js.map +0 -1
  1942. package/lib/serialization/DeepCompare.d.ts.map +0 -1
  1943. package/lib/serialization/DeepCompare.js.map +0 -1
  1944. package/lib/serialization/GeometrySamples.d.ts.map +0 -1
  1945. package/lib/serialization/GeometrySamples.js.map +0 -1
  1946. package/lib/serialization/IModelJsonSchema.d.ts.map +0 -1
  1947. package/lib/serialization/IModelJsonSchema.js.map +0 -1
  1948. package/lib/solid/Box.d.ts.map +0 -1
  1949. package/lib/solid/Box.js.map +0 -1
  1950. package/lib/solid/Cone.d.ts.map +0 -1
  1951. package/lib/solid/Cone.js.map +0 -1
  1952. package/lib/solid/LinearSweep.d.ts.map +0 -1
  1953. package/lib/solid/LinearSweep.js.map +0 -1
  1954. package/lib/solid/RotationalSweep.d.ts.map +0 -1
  1955. package/lib/solid/RotationalSweep.js.map +0 -1
  1956. package/lib/solid/RuledSweep.d.ts.map +0 -1
  1957. package/lib/solid/RuledSweep.js.map +0 -1
  1958. package/lib/solid/SolidPrimitive.d.ts.map +0 -1
  1959. package/lib/solid/SolidPrimitive.js.map +0 -1
  1960. package/lib/solid/Sphere.d.ts.map +0 -1
  1961. package/lib/solid/Sphere.js.map +0 -1
  1962. package/lib/solid/SweepContour.d.ts.map +0 -1
  1963. package/lib/solid/SweepContour.js.map +0 -1
  1964. package/lib/solid/TorusPipe.d.ts.map +0 -1
  1965. package/lib/solid/TorusPipe.js.map +0 -1
  1966. package/lib/topology/ChainMerge.d.ts.map +0 -1
  1967. package/lib/topology/ChainMerge.js.map +0 -1
  1968. package/lib/topology/Graph.d.ts.map +0 -1
  1969. package/lib/topology/Graph.js.map +0 -1
  1970. package/lib/topology/HalfEdgeGraphSearch.d.ts.map +0 -1
  1971. package/lib/topology/HalfEdgeGraphSearch.js.map +0 -1
  1972. package/lib/topology/HalfEdgeGraphSpineContext.d.ts.map +0 -1
  1973. package/lib/topology/HalfEdgeGraphSpineContext.js.map +0 -1
  1974. package/lib/topology/HalfEdgeGraphValidation.d.ts.map +0 -1
  1975. package/lib/topology/HalfEdgeGraphValidation.js.map +0 -1
  1976. package/lib/topology/HalfEdgeMarkSet.d.ts.map +0 -1
  1977. package/lib/topology/HalfEdgeMarkSet.js.map +0 -1
  1978. package/lib/topology/HalfEdgeNodeXYZUV.d.ts.map +0 -1
  1979. package/lib/topology/HalfEdgeNodeXYZUV.js.map +0 -1
  1980. package/lib/topology/HalfEdgePointInGraphSearch.d.ts.map +0 -1
  1981. package/lib/topology/HalfEdgePointInGraphSearch.js.map +0 -1
  1982. package/lib/topology/HalfEdgePositionDetail.d.ts.map +0 -1
  1983. package/lib/topology/HalfEdgePositionDetail.js.map +0 -1
  1984. package/lib/topology/HalfEdgePriorityQueue.d.ts.map +0 -1
  1985. package/lib/topology/HalfEdgePriorityQueue.js.map +0 -1
  1986. package/lib/topology/InsertAndRetriangulateContext.d.ts.map +0 -1
  1987. package/lib/topology/InsertAndRetriangulateContext.js.map +0 -1
  1988. package/lib/topology/MaskManager.d.ts.map +0 -1
  1989. package/lib/topology/MaskManager.js.map +0 -1
  1990. package/lib/topology/Merging.d.ts.map +0 -1
  1991. package/lib/topology/Merging.js.map +0 -1
  1992. package/lib/topology/RegularizeFace.d.ts.map +0 -1
  1993. package/lib/topology/RegularizeFace.js.map +0 -1
  1994. package/lib/topology/SignedDataSummary.d.ts.map +0 -1
  1995. package/lib/topology/SignedDataSummary.js.map +0 -1
  1996. package/lib/topology/Triangulation.d.ts.map +0 -1
  1997. package/lib/topology/Triangulation.js.map +0 -1
  1998. package/lib/topology/XYParitySearchContext.d.ts.map +0 -1
  1999. package/lib/topology/XYParitySearchContext.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"PointHelpers.d.ts","sourceRoot":"","sources":["../../src/geometry3d/PointHelpers.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PointHelpers.js","sourceRoot":"","sources":["../../src/geometry3d/PointHelpers.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\n/* eslint-disable @typescript-eslint/naming-convention, no-empty */\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\nimport { MultiLineStringDataVariant } from \"../topology/Triangulation\";\r\nimport { IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"./Plane3dByOriginAndUnitNormal\";\r\nimport { Point2d } from \"./Point2dVector2d\";\r\nimport { Point3dArrayCarrier } from \"./Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d, XYZ } from \"./Point3dVector3d\";\r\nimport { PointStringDeepXYZArrayCollector, VariantPointDataStream } from \"./PointStreaming\";\r\nimport { Transform } from \"./Transform\";\r\nimport { XAndY, XYAndZ, XYZProps } from \"./XYZProps\";\r\n\r\n/**\r\n * The `NumberArray` class contains static methods that act on arrays of numbers.\r\n * @public\r\n */\r\nexport class NumberArray {\r\n /** return the sum of values in an array, The summation is done with correction terms which\r\n * improves last-bit numeric accuracy.\r\n */\r\n public static preciseSum(data: number[]) {\r\n const n = data.length;\r\n if (n === 0)\r\n return 0.0;\r\n let sum = data[0];\r\n let c = 0.0;\r\n let y: number;\r\n let t: number;\r\n for (let i = 1; i < n; i++) {\r\n y = data[i] - c;\r\n t = sum + y;\r\n c = (t - sum) - y;\r\n sum = t;\r\n }\r\n return sum;\r\n }\r\n /** Return true if arrays have identical counts and equal entries (using `!==` comparison) */\r\n public static isExactEqual(dataA: any[] | Float64Array | undefined, dataB: any[] | Float64Array | undefined) {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n for (let i = 0; i < dataA.length; i++)\r\n if (dataA[i] !== dataB[i])\r\n return false;\r\n return true;\r\n }\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n /** Return true if arrays have identical counts and entries equal within tolerance */\r\n public static isAlmostEqual(\r\n dataA: number[] | Float64Array | undefined,\r\n dataB: number[] | Float64Array | undefined,\r\n tolerance: number) {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n for (let i = 0; i < dataA.length; i++)\r\n if (Math.abs(dataA[i] - dataB[i]) >= tolerance) return false;\r\n return true;\r\n }\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n\r\n /** return the sum of numbers in an array. Note that \"PreciseSum\" may be more accurate. */\r\n public static sum(data: number[] | Float64Array) {\r\n let sum = 0;\r\n for (const x of data) { sum += x; }\r\n return sum;\r\n }\r\n /** test if coordinate x appears (to tolerance by `Geometry.isSameCoordinate`) in this array of numbers */\r\n public static isCoordinateInArray(x: number, data: number[] | undefined): boolean {\r\n if (data) {\r\n for (const y of data) { if (Geometry.isSameCoordinate(x, y)) return true; }\r\n }\r\n return false;\r\n }\r\n /** Return the max absolute value in a array of numbers. */\r\n public static maxAbsArray(values: number[]) {\r\n const arrLen = values.length;\r\n if (arrLen === 0) {\r\n return 0.0;\r\n }\r\n let a = Math.abs(values[0]);\r\n for (let i = 1; i < arrLen; i++) {\r\n const b = Math.abs(values[i]);\r\n if (a < b) {\r\n a = b;\r\n }\r\n }\r\n return a;\r\n }\r\n /** return the max absolute value of a pair of numbers */\r\n public static maxAbsTwo(a1: number, a2: number) {\r\n a1 = Math.abs(a1);\r\n a2 = Math.abs(a2);\r\n return (a1 > a2) ? a1 : a2;\r\n }\r\n /** Return the max absolute difference between corresponding entries in two arrays of numbers\r\n * * If sizes are mismatched, only the smaller length is tested.\r\n */\r\n public static maxAbsDiff(dataA: number[] | Float64Array, dataB: number[] | Float64Array): number {\r\n let a = 0.0;\r\n const n = Math.min(dataA.length, dataB.length);\r\n for (let i = 0; i < n; i++) { a = Math.max(a, Math.abs(dataA[i] - dataB[i])); }\r\n return a;\r\n }\r\n\r\n /** Return the max absolute difference between corresponding entries in two Float64Array\r\n * * If sizes are mismatched, only the smaller length is tested.\r\n */\r\n public static maxAbsDiffFloat64(dataA: Float64Array, dataB: Float64Array): number {\r\n let a = 0.0;\r\n const n = Math.min(dataA.length, dataB.length);\r\n for (let i = 0; i < n; i++) { a = Math.max(a, Math.abs(dataA[i] - dataB[i])); }\r\n return a;\r\n }\r\n /**\r\n * Return an array with indicated start and end points, maximum step size internally\r\n * @param low low value\r\n * @param high high value\r\n * @param step max permitted step\r\n */\r\n public static createArrayWithMaxStepSize(low: number, high: number, step: number): number[] {\r\n if (low === high)\r\n return [low];\r\n const delta = high - low;\r\n const numInterval = Math.max(1, Math.floor(Math.abs(delta / step)));\r\n const result = [];\r\n result.push(low);\r\n for (let i = 1; i < numInterval; i++) {\r\n result.push(low + (i / numInterval) * delta);\r\n }\r\n result.push(high);\r\n return result;\r\n }\r\n\r\n /** copy numbers from variant sources to number[]. */\r\n public static create(source: number[] | Float64Array): number[] {\r\n const result: number[] = [];\r\n for (const q of source)\r\n result.push(q);\r\n return result;\r\n }\r\n\r\n /** Return a copy of the knots array, with multiplicity of first and last knots raised or lowered to expectedMultiplicity. */\r\n public static cloneWithStartAndEndMultiplicity(knots: number[] | undefined, target0: number, target1: number): number[] {\r\n const result: number[] = [];\r\n if (knots === undefined || knots.length === 0)\r\n return result;\r\n let multiplicity0 = 1;\r\n const knot0 = knots[0];\r\n const knot1 = knots[knots.length - 1];\r\n for (; multiplicity0 < knots.length && knots[multiplicity0] === knot0;) { multiplicity0++; }\r\n let multiplicity1 = 1;\r\n const k1 = knots.length - 1;\r\n for (; k1 - multiplicity1 >= 0 && knots[k1 - multiplicity1] === knot1;) { multiplicity1++; }\r\n\r\n for (let k = 0; k < target0; k++)\r\n result.push(knot0);\r\n for (let k = multiplicity0; k + multiplicity1 < knots.length; k++)\r\n result.push(knots[k]);\r\n for (let k = 0; k < target1; k++)\r\n result.push(knot1);\r\n return result;\r\n }\r\n\r\n}\r\n/**\r\n * The `Point2dArray` class contains static methods that act on arrays of 2d points.\r\n * @public\r\n */\r\nexport class Point2dArray {\r\n /** Return true if arrays have same length and matching coordinates. */\r\n public static isAlmostEqual(dataA: undefined | Point2d[], dataB: undefined | Point2d[]): boolean {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n for (let i = 0; i < dataA.length; i++) {\r\n if (!dataA[i].isAlmostEqual(dataB[i]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n /**\r\n * Return an array containing clones of the Point3d data[]\r\n * @param data source data\r\n */\r\n public static clonePoint2dArray(data: Point2d[]): Point2d[] {\r\n return data.map((p: Point2d) => p.clone());\r\n }\r\n /**\r\n * Return the number of points when trailing points that match point 0 are excluded.\r\n * @param data array of XAndY points.\r\n */\r\n public static pointCountExcludingTrailingWraparound(data: XAndY[]): number {\r\n let n = data.length;\r\n if (n < 2)\r\n return n;\r\n const x0 = data[0].x;\r\n const y0 = data[0].y;\r\n while (n > 1) {\r\n if (!Geometry.isSameCoordinate(data[n - 1].x, x0) || !Geometry.isSameCoordinate(data[n - 1].y, y0))\r\n return n;\r\n n--;\r\n }\r\n return n;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * The `Vector3ddArray` class contains static methods that act on arrays of 2d vectors.\r\n * @public\r\n */\r\nexport class Vector3dArray {\r\n /** Return true if arrays have same length and matching coordinates. */\r\n public static isAlmostEqual(dataA: undefined | Vector3d[], dataB: undefined | Vector3d[]): boolean {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n for (let i = 0; i < dataA.length; i++)\r\n if (!dataA[i].isAlmostEqual(dataB[i]))\r\n return false;\r\n return true;\r\n }\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n /**\r\n * Return an array containing clones of the Vector3d data[]\r\n * @param data source data\r\n */\r\n public static cloneVector3dArray(data: XYAndZ[]): Vector3d[] {\r\n return data.map((p: XYAndZ) => Vector3d.create(p.x, p.y, p.z));\r\n }\r\n}\r\n\r\n/**\r\n * The `Point4dArray` class contains static methods that act on arrays of 4d points.\r\n * @public\r\n */\r\nexport class Point4dArray {\r\n /** pack each point and its corresponding weight into a buffer of xyzw xyzw ... */\r\n public static packPointsAndWeightsToFloat64Array(data: Point3d[] | Float64Array | number[], weights: number[] | Float64Array,\r\n result?: Float64Array): Float64Array | undefined {\r\n if (Array.isArray(data) && data[0] instanceof Point3d) {\r\n const points = data as Point3d[];\r\n if (points.length !== weights.length)\r\n return undefined;\r\n result = result ? result : new Float64Array(4 * points.length);\r\n let i = 0;\r\n let k = 0;\r\n for (k = 0; k < points.length; k++) {\r\n result[i++] = points[k].x;\r\n result[i++] = points[k].y;\r\n result[i++] = points[k].z;\r\n result[i++] = weights[k];\r\n }\r\n return result;\r\n } else {\r\n const points = data as (Float64Array | number[]);\r\n const numPoints = weights.length;\r\n if (points.length !== 3 * numPoints)\r\n return undefined;\r\n let i = 0; let k;\r\n result = result ? result : new Float64Array(4 * numPoints);\r\n for (k = 0; k < numPoints; k++) {\r\n const k0 = 3 * k;\r\n result[i++] = points[k0];\r\n result[i++] = points[k0 + 1];\r\n result[i++] = points[k0 + 2];\r\n result[i++] = weights[k];\r\n }\r\n return result;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** pack x,y,z,w in Float64Array. */\r\n public static packToFloat64Array(data: Point4d[], result?: Float64Array): Float64Array {\r\n result = result ? result : new Float64Array(4 * data.length);\r\n let i = 0;\r\n for (const p of data) {\r\n result[i++] = p.x;\r\n result[i++] = p.y;\r\n result[i++] = p.z;\r\n result[i++] = p.w;\r\n }\r\n return result;\r\n }\r\n /** unpack from ... to array of Point4d */\r\n public static unpackToPoint4dArray(data: Float64Array): Point4d[] {\r\n const result = [];\r\n for (let i = 0; i + 3 < data.length; i += 4) {\r\n result.push(Point4d.create(data[i], data[i + 1], data[i + 2], data[i + 3]));\r\n }\r\n return result;\r\n }\r\n /** unpack from xyzw xyzw... array to array of Point3d and array of weight.\r\n */\r\n public static unpackFloat64ArrayToPointsAndWeights(data: Float64Array, points: Point3d[], weights: number[],\r\n pointFormatter: (x: number, y: number, z: number) => any = Point3d.create) {\r\n points.length = 0;\r\n weights.length = 0;\r\n for (let i = 0; i + 3 < data.length; i += 4) {\r\n points.push(pointFormatter(data[i], data[i + 1], data[i + 2]));\r\n weights.push(data[i + 3]);\r\n }\r\n }\r\n private static _workPoint4d = Point4d.create();\r\n /**\r\n * Multiply (and replace) each block of 4 values as a Point4d.\r\n * @param transform transform to apply\r\n * @param xyzw array of x,y,z,w points.\r\n */\r\n public static multiplyInPlace(transform: Transform, xyzw: Float64Array): void {\r\n const numXYZW = xyzw.length;\r\n const xyzw1 = Point4dArray._workPoint4d;\r\n for (let i = 0; i + 3 < numXYZW; i += 4) {\r\n transform.multiplyXYZW(xyzw[i], xyzw[i + 1], xyzw[i + 2], xyzw[i + 3], xyzw1);\r\n xyzw[i] = xyzw1.x;\r\n xyzw[i + 1] = xyzw1.y;\r\n xyzw[i + 2] = xyzw1.z;\r\n xyzw[i + 3] = xyzw1.w;\r\n }\r\n }\r\n /** test for near equality of all corresponding numeric values, treated as coordinates. */\r\n public static isAlmostEqual(dataA: Point4d[] | Float64Array | undefined, dataB: Point4d[] | Float64Array | undefined): boolean {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n if (dataA instanceof Float64Array && dataB instanceof Float64Array) {\r\n for (let i = 0; i < dataA.length; i++)\r\n if (!Geometry.isSameCoordinate(dataA[i], dataB[i]))\r\n return false;\r\n } else if (Array.isArray(dataA) && Array.isArray(dataB)) {\r\n for (let i = 0; i < dataA.length; i++)\r\n if (!dataA[i].isAlmostEqual(dataB[i]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n // if both are null it is equal, otherwise unequal\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n /** return true iff all xyzw points' altitudes are within tolerance of the plane.*/\r\n public static isCloseToPlane(data: Point4d[] | Float64Array, plane: Plane3dByOriginAndUnitNormal, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n if (Array.isArray(data)) {\r\n for (const xyzw of data) {\r\n if (Math.abs(plane.altitudeXYZW(xyzw.x, xyzw.y, xyzw.z, xyzw.w)) > tolerance)\r\n return false;\r\n }\r\n } else if (data instanceof Float64Array) {\r\n const numXYZ = data.length;\r\n for (let i = 0; i + 2 < numXYZ; i += 4) {\r\n if (Math.abs(plane.altitudeXYZW(data[i], data[i + 1], data[i + 2], data[i + 3])) > tolerance)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n/**\r\n * The `Point3dArray` class contains static methods that act on arrays of 3d points.\r\n * @public\r\n */\r\n\r\nexport class Point3dArray {\r\n /** pack x,y,z to `Float64Array` */\r\n public static packToFloat64Array(data: Point3d[]): Float64Array {\r\n const result = new Float64Array(3 * data.length);\r\n let i = 0;\r\n for (const p of data) {\r\n result[i++] = p.x;\r\n result[i++] = p.y;\r\n result[i++] = p.z;\r\n }\r\n return result;\r\n }\r\n /**\r\n * Compute the 8 weights of trilinear mapping\r\n * By appropriate choice of weights, this can be used for both point and derivative mappings.\r\n * @param weights preallocated array to receive weights.\r\n * @param u0 low u weight\r\n * @param u1 high u weight\r\n * @param v0 low v weight\r\n * @param v1 high v weight\r\n * @param w0 low w weight\r\n * @param w1 high w weight\r\n */\r\n public static evaluateTrilinearWeights(weights: Float64Array, u0: number, u1: number, v0: number, v1: number, w0: number, w1: number) {\r\n\r\n weights[0] = u0 * v0 * w0;\r\n weights[1] = u1 * v0 * w0;\r\n weights[2] = u0 * v1 * w0;\r\n weights[3] = u1 * v1 * w0;\r\n weights[4] = u0 * v0 * w1;\r\n weights[5] = u1 * v0 * w1;\r\n weights[6] = u0 * v1 * w1;\r\n weights[7] = u1 * v1 * w1;\r\n }\r\n /**\r\n * sum the weighted x components from a point array.\r\n * * weights.length is the number of summed terms\r\n * * points must have at least that length\r\n * @param weights\r\n * @param points\r\n */\r\n public static sumWeightedX(weights: Float64Array, points: Point3d[]): number {\r\n let sum = 0.0;\r\n const n = weights.length;\r\n for (let i = 0; i < n; i++)\r\n sum += weights[i] * points[i].x;\r\n return sum;\r\n }\r\n\r\n /**\r\n * sum the weighted x components from a point array.\r\n * * weights.length is the number of summed terms\r\n * * points must have at least that length\r\n * @param weights\r\n * @param points\r\n */\r\n public static sumWeightedY(weights: Float64Array, points: Point3d[]): number {\r\n let sum = 0.0;\r\n const n = weights.length;\r\n for (let i = 0; i < n; i++)\r\n sum += weights[i] * points[i].y;\r\n return sum;\r\n }\r\n\r\n /**\r\n * sum the weighted x components from a point array.\r\n * * weights.length is the number of summed terms\r\n * * points must have at least that length\r\n * @param weights\r\n * @param points\r\n */\r\n public static sumWeightedZ(weights: Float64Array, points: Point3d[]): number {\r\n let sum = 0.0;\r\n const n = weights.length;\r\n for (let i = 0; i < n; i++)\r\n sum += weights[i] * points[i].z;\r\n return sum;\r\n }\r\n\r\n private static _weightUVW = new Float64Array(8);\r\n private static _weightDU = new Float64Array(8);\r\n private static _weightDV = new Float64Array(8);\r\n private static _weightDW = new Float64Array(8);\r\n /**\r\n * Compute a point by trilinear mapping.\r\n * @param points array of 8 points at corners, with x index varying fastest.\r\n * @param result optional result point\r\n */\r\n public static evaluateTrilinearPoint(points: Point3d[], u: number, v: number, w: number, result?: Point3d): Point3d {\r\n if (!result) result = Point3d.create(0, 0, 0);\r\n this.evaluateTrilinearWeights(this._weightUVW, 1 - u, u, 1 - v, v, 1 - w, w);\r\n let a;\r\n for (let i = 0; i < 8; i++) {\r\n a = this._weightUVW[i];\r\n result.x += a * points[i].x;\r\n result.y += a * points[i].y;\r\n result.z += a * points[i].z;\r\n }\r\n return result;\r\n }\r\n /**\r\n * Compute a point and derivatives wrt uvw by trilinear mapping.\r\n * * evaluated point is the point part of the transform\r\n * * u,v,w derivatives are the respective columns of the matrix part of the transform.\r\n * @param points array of 8 points at corners, with x index varying fastest.\r\n * @param result optional result transform\r\n */\r\n public static evaluateTrilinearDerivativeTransform(points: Point3d[], u: number, v: number, w: number, result?: Transform): Transform {\r\n this.evaluateTrilinearWeights(this._weightUVW, 1 - u, u, 1 - v, v, 1 - w, w);\r\n this.evaluateTrilinearWeights(this._weightDU, -1, 1, 1 - v, v, 1 - w, w);\r\n this.evaluateTrilinearWeights(this._weightDV, 1 - u, u, -1, 1, 1 - w, w);\r\n this.evaluateTrilinearWeights(this._weightDW, 1 - u, u, 1 - v, v, -1, 1);\r\n return Transform.createRowValues(\r\n this.sumWeightedX(this._weightDU, points), this.sumWeightedX(this._weightDV, points), this.sumWeightedX(this._weightDW, points), this.sumWeightedX(this._weightUVW, points),\r\n this.sumWeightedY(this._weightDU, points), this.sumWeightedY(this._weightDV, points), this.sumWeightedY(this._weightDW, points), this.sumWeightedY(this._weightUVW, points),\r\n this.sumWeightedZ(this._weightDU, points), this.sumWeightedZ(this._weightDV, points), this.sumWeightedZ(this._weightDW, points), this.sumWeightedZ(this._weightUVW, points),\r\n result);\r\n }\r\n /** unpack from a number array or Float64Array to an array of `Point3d` */\r\n public static unpackNumbersToPoint3dArray(data: Float64Array | number[]): Point3d[] {\r\n const result = [];\r\n for (let i = 0; i + 2 < data.length; i += 3) {\r\n result.push(Point3d.create(data[i], data[i + 1], data[i + 2]));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * return an 2-dimensional array containing all the values of `data` in arrays of numPerBlock\r\n * @param data simple array of numbers\r\n * @param numPerBlock number of values in each block at first level down\r\n */\r\n public static unpackNumbersToNestedArrays(data: Float64Array, numPerBlock: number): any[] {\r\n const result = [];\r\n const n = data.length;\r\n let i = 0;\r\n let i1 = 0;\r\n while (i < n) {\r\n // there is at least one more value for a block\r\n const row = [];\r\n i1 = i + numPerBlock;\r\n if (i1 > n)\r\n i1 = n;\r\n for (; i < i1; i++) {\r\n row.push(data[i]);\r\n }\r\n result.push(row);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * return an 3-dimensional array containing all the values of `data` in arrays numPerRow blocks of numPerBlock\r\n * @param data simple array of numbers\r\n * @param numPerBlock number of values in each block at first level down\r\n */\r\n public static unpackNumbersToNestedArraysIJK(data: Float64Array, numPerBlock: number, numPerRow: number): any[] {\r\n const result = [];\r\n const n = data.length;\r\n let i = 0;\r\n let i1 = 0;\r\n let i2;\r\n while (i < n) {\r\n const row = [];\r\n i2 = i + numPerBlock * numPerRow;\r\n while (i < i2) {\r\n const block = [];\r\n i1 = i + numPerBlock;\r\n if (i1 > n)\r\n i1 = n;\r\n for (; i < i1; i++) {\r\n block.push(data[i]);\r\n }\r\n row.push(block);\r\n }\r\n result.push(row);\r\n }\r\n return result;\r\n }\r\n /** multiply a transform times each x,y,z triple and replace the x,y,z in the packed array */\r\n public static multiplyInPlace(transform: Transform, xyz: Float64Array): void {\r\n const xyz1 = Point3d.create();\r\n const numXYZ = xyz.length;\r\n for (let i = 0; i + 2 < numXYZ; i += 3) {\r\n transform.multiplyXYZ(xyz[i], xyz[i + 1], xyz[i + 2], xyz1);\r\n xyz[i] = xyz1.x;\r\n xyz[i + 1] = xyz1.y;\r\n xyz[i + 2] = xyz1.z;\r\n }\r\n }\r\n /** Apply Geometry.isAlmostEqual to corresponding coordinates */\r\n public static isAlmostEqual(dataA: Point3d[] | Float64Array | undefined, dataB: Point3d[] | Float64Array | undefined): boolean {\r\n if (dataA && dataB) {\r\n if (dataA.length !== dataB.length)\r\n return false;\r\n if (dataA instanceof Float64Array && dataB instanceof Float64Array) {\r\n for (let i = 0; i < dataA.length; i++)\r\n if (!Geometry.isSameCoordinate(dataA[i], dataB[i]))\r\n return false;\r\n } else if (Array.isArray(dataA) && Array.isArray(dataB)) {\r\n for (let i = 0; i < dataA.length; i++)\r\n if (!dataA[i].isAlmostEqual(dataB[i]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n // if both are null it is equal, otherwise unequal\r\n return (dataA === undefined && dataB === undefined);\r\n }\r\n\r\n /** return simple average of all coordinates. (000 if empty array) */\r\n public static centroid(points: IndexedXYZCollection | Point3d[], result?: Point3d): Point3d {\r\n if (points instanceof IndexedXYZCollection) {\r\n result = Point3d.create(0, 0, 0, result);\r\n const p = Point3d.create();\r\n if (points.length > 0) {\r\n for (let i = 0; i < points.length; i++) {\r\n points.getPoint3dAtCheckedPointIndex(i, p);\r\n result.x += p.x; result.y += p.y; result.z += p.z;\r\n }\r\n result.scaleInPlace(1.0 / points.length);\r\n }\r\n return result;\r\n }\r\n const carrier = new Point3dArrayCarrier(points);\r\n return this.centroid(carrier);\r\n }\r\n\r\n /** Return the index of the point most distant from spacePoint */\r\n public static indexOfMostDistantPoint(points: Point3d[], spacePoint: XYZ, farVector: Vector3d): number | undefined {\r\n if (points.length === 0)\r\n return undefined;\r\n let dMax = -1;\r\n let d;\r\n let result = -1;\r\n for (let i = 0; i < points.length; i++) {\r\n d = spacePoint.distance(points[i]);\r\n if (d > dMax) {\r\n spacePoint.vectorTo(points[i], farVector);\r\n dMax = d;\r\n result = i;\r\n }\r\n }\r\n return result;\r\n }\r\n /** return the index of the point whose vector from space point has the largest magnitude of cross product with given vector. */\r\n public static indexOfPointWithMaxCrossProductMagnitude(points: Point3d[], spacePoint: Point3d, vector: Vector3d, farVector: Vector3d): number | undefined {\r\n if (points.length === 0)\r\n return undefined;\r\n let dMax = -1;\r\n let d;\r\n let result = -1;\r\n let vectorAB; // to be reused in loop !!!\r\n for (let i = 0; i < points.length; i++) {\r\n vectorAB = spacePoint.vectorTo(points[i], vectorAB);\r\n d = vectorAB.crossProductMagnitude(vector);\r\n if (d > dMax) {\r\n farVector.setFrom(vectorAB);\r\n dMax = d;\r\n result = i;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /** Return the index of the closest point in the array (full xyz) */\r\n public static closestPointIndex(data: XYAndZ[], spacePoint: XYAndZ): number {\r\n let index = -1;\r\n let dMin = Number.MAX_VALUE;\r\n let d;\r\n const x0 = spacePoint.x;\r\n const y0 = spacePoint.y;\r\n const z0 = spacePoint.z;\r\n for (let i = 0; i < data.length; i++) {\r\n d = Geometry.distanceXYZXYZ(x0, y0, z0, data[i].x, data[i].y, data[i].z);\r\n if (d < dMin) {\r\n index = i;\r\n dMin = d;\r\n }\r\n }\r\n return index;\r\n }\r\n /** return true iff all points' altitudes are within tolerance of the plane.*/\r\n public static isCloseToPlane(data: Point3d[] | Float64Array, plane: Plane3dByOriginAndUnitNormal, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n if (Array.isArray(data)) {\r\n let xyz;\r\n for (xyz of data) {\r\n if (Math.abs(plane.altitude(xyz)) > tolerance)\r\n return false;\r\n }\r\n } else if (data instanceof Float64Array) {\r\n const numXYZ = data.length;\r\n for (let i = 0; i + 2 < numXYZ; i += 3) {\r\n if (Math.abs(plane.altitudeXYZ(data[i], data[i + 1], data[i + 2])) > tolerance)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Sum lengths of edges.\r\n * @param data points.\r\n */\r\n public static sumEdgeLengths(data: Point3d[] | Float64Array, addClosureEdge: boolean = false): number {\r\n let sum = 0.0;\r\n if (Array.isArray(data)) {\r\n const n = data.length - 1;\r\n for (let i = 0; i < n; i++) sum += data[i].distance(data[i + 1]);\r\n if (addClosureEdge && n > 0)\r\n sum += data[0].distance(data[n]);\r\n\r\n } else if (data instanceof Float64Array) {\r\n const numXYZ = data.length;\r\n let i = 0;\r\n for (; i + 5 < numXYZ; i += 3) { // final i points at final point x\r\n sum += Geometry.hypotenuseXYZ(data[i + 3] - data[i],\r\n data[i + 4] - data[i + 1],\r\n data[i + 5] - data[i + 2]);\r\n }\r\n if (addClosureEdge && i >= 3) {\r\n sum += Geometry.hypotenuseXYZ(data[0] - data[i],\r\n data[1] - data[i + 1],\r\n data[2] - data[i + 2]);\r\n }\r\n }\r\n return sum;\r\n }\r\n\r\n /**\r\n * Return an array containing clones of the Point3d data[]\r\n * @param data source data\r\n */\r\n public static clonePoint3dArray(data: XYZProps[] | Float64Array): Point3d[] {\r\n const result: Point3d[] = [];\r\n if (data.length === 0)\r\n return result;\r\n if (data instanceof Float64Array) {\r\n for (let i = 0; i + 2 < data.length; i += 3)\r\n result.push(Point3d.create(data[i], data[i + 1], data[i + 2]));\r\n return result;\r\n }\r\n for (const p of data) {\r\n if (Array.isArray(p))\r\n result.push(Point3d.create(p[0], p[1], p[2]));\r\n else\r\n result.push(Point3d.create(p.x, p.y, p.z));\r\n }\r\n return result;\r\n }\r\n /**\r\n * Return an array containing Point2d with xy parts of each Point3d\r\n * @param data source data\r\n */\r\n public static clonePoint2dArray(data: XYAndZ[]): Point2d[] {\r\n return data.map((p: XYAndZ) => Point2d.create(p.x, p.y));\r\n }\r\n /**\r\n * clone points in the input array, inserting points within each edge to limit edge length.\r\n * @param points array of points\r\n * @param maxEdgeLength max length of an edge\r\n */\r\n public static cloneWithMaxEdgeLength(points: Point3d[], maxEdgeLength: number): Point3d[] {\r\n if (points.length === 0)\r\n return [];\r\n const result = [points[0]];\r\n for (let i = 1; i < points.length; i++) {\r\n const a = points[i - 1].distance(points[i]);\r\n const n = Geometry.stepCount(maxEdgeLength, a, 1);\r\n for (let k = 1; k < n; k++)\r\n result.push(points[i - 1].interpolate(k / n, points[i]));\r\n result.push(points[i]);\r\n\r\n }\r\n return result;\r\n }\r\n /** Pack isolated x,y,z args as a json `[x,y,z]` */\r\n private static xyzToArray(x: number, y: number, z: number): number[] { return [x, y, z]; }\r\n\r\n /**\r\n * return similarly-structured array, array of arrays, etc, with the lowest level point data specifically structured as arrays of 3 numbers `[1,2,3]`\r\n * @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`\r\n */\r\n public static cloneDeepJSONNumberArrays(data: MultiLineStringDataVariant): number[][] {\r\n const collector = new PointStringDeepXYZArrayCollector(this.xyzToArray);\r\n VariantPointDataStream.streamXYZ(data, collector);\r\n return collector.claimResult();\r\n }\r\n /**\r\n * clone an array of [[XYZProps]] data, specifically as arrays of 3 numbers\r\n */\r\n public static cloneXYZPropsAsNumberArray(data: XYZProps[]): number[][] {\r\n // data is an array ... each member is either Point3d or [x,y,z]\r\n const result = [];\r\n for (const p of data) {\r\n if (p instanceof Point3d) {\r\n result.push([p.x, p.y, p.z]);\r\n } else if (Array.isArray(p)) {\r\n result.push([p[0], p[1], p.length > 2 ? p[2] : 0.0]);\r\n }\r\n }\r\n return result;\r\n }\r\n /**\r\n * clone an array of [[XYZProps]] data, specifically as flattened array of number\r\n */\r\n public static cloneXYZPropsAsFloat64Array(data: XYZProps[]): Float64Array {\r\n const result = new Float64Array(data.length * 3);\r\n let i = 0;\r\n for (const p of data) {\r\n if (p instanceof Point3d) {\r\n result[i++] = p.x;\r\n result[i++] = p.y;\r\n result[i++] = p.z;\r\n } else if (Array.isArray(p)) {\r\n result[i++] = p[0];\r\n result[i++] = p[1];\r\n result[i++] = p.length > 2 ? p[2] : 0.0; // allow missing z\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * return similarly-structured array, array of arrays, etc, with the lowest level point data specifically structured as `Point3d`.\r\n * @param data point data with various leaf forms such as `[1,2,3]`, `{x:1,y:2,z:3}`, `Point3d`\r\n */\r\n public static cloneDeepXYZPoint3dArrays(data: MultiLineStringDataVariant): any[] {\r\n const collector = new PointStringDeepXYZArrayCollector(Point3d.create);\r\n VariantPointDataStream.streamXYZ(data, collector);\r\n return collector.claimResult();\r\n }\r\n\r\n /**\r\n * return perpendicular distance from points[indexB] to the segment points[indexA] to points[indexC].\r\n * * extrapolation option when projection is outside of fraction range 0..1 are:\r\n * * false ==> measure distance to closest endpoint\r\n * * true ==> measure distance to extended line segment.\r\n * (no index checking!)\r\n */\r\n public static distanceIndexedPointBToSegmentAC(points: Point3d[], indexA: number, indexB: number, indexC: number, extrapolate: boolean): number {\r\n const vectorU = Vector3d.createStartEnd(points[indexA], points[indexC]);\r\n const vectorV = Vector3d.createStartEnd(points[indexA], points[indexB]);\r\n const uDotU = vectorU.dotProduct(vectorU);\r\n const uDotV = vectorU.dotProduct(vectorV);\r\n let fraction = Geometry.conditionalDivideFraction(uDotV, uDotU);\r\n if (fraction === undefined)\r\n fraction = 0.0;\r\n if (!extrapolate) {\r\n if (fraction > 1.0)\r\n fraction = 1.0;\r\n if (fraction < 0.0)\r\n fraction = 0.0;\r\n }\r\n let h2 = vectorV.magnitudeSquared() - fraction * fraction * uDotU;\r\n // h2 should never be negative except for quirky tolerance ..\r\n if (h2 < 0.0)\r\n h2 = 0.0;\r\n return Math.sqrt(h2);\r\n }\r\n\r\n /** Computes the hull of the XY projection of points.\r\n * * Returns the hull as an array of Point3d\r\n * * Optionally returns non-hull points in `insidePoints[]`\r\n * * If both arrays empty if less than 3 points.\r\n * *\r\n */\r\n public static computeConvexHullXY(points: Point3d[], hullPoints: Point3d[], insidePoints: Point3d[], addClosurePoint: boolean = false) {\r\n hullPoints.length = 0;\r\n insidePoints.length = 0;\r\n let n = points.length;\r\n // Get deep copy\r\n const xy1: Point3d[] = points.slice(0, n);\r\n xy1.sort(Geometry.lexicalXYLessThan);\r\n if (n < 3) {\r\n for (const p of xy1)\r\n hullPoints.push(p);\r\n if (addClosurePoint && xy1.length > 0)\r\n hullPoints.push(xy1[0]);\r\n return;\r\n }\r\n hullPoints.push(xy1[0]); // This is sure to stay\r\n hullPoints.push(xy1[1]); // This one can be removed in loop.\r\n let numInside = 0;\r\n // First sweep creates upper hull\r\n for (let i = 2; i < n; i++) {\r\n const candidate = xy1[i];\r\n let top = hullPoints.length - 1;\r\n while (top >= 1 && hullPoints[top - 1].crossProductToPointsXY(hullPoints[top], candidate) <= 0.0) {\r\n xy1[numInside++] = hullPoints[top];\r\n top--;\r\n hullPoints.pop();\r\n }\r\n hullPoints.push(candidate);\r\n }\r\n const i0 = hullPoints.length - 1;\r\n xy1.length = numInside;\r\n xy1.push(hullPoints[0]); // force first point to be reconsidered as final hull point.\r\n xy1.sort(Geometry.lexicalXYLessThan);\r\n n = xy1.length;\r\n // xy1.back () is already on stack.\r\n hullPoints.push(xy1[n - 1]);\r\n for (let i = n - 1; i-- > 0;) {\r\n const candidate = xy1[i];\r\n let top = hullPoints.length - 1;\r\n while (top > i0 && hullPoints[top - 1].crossProductToPointsXY(hullPoints[top], candidate) <= 0.0) {\r\n insidePoints.push(hullPoints[top]);\r\n top--;\r\n hullPoints.pop();\r\n }\r\n if (i > 0) // don't replicate start !!!\r\n hullPoints.push(candidate);\r\n }\r\n if (addClosurePoint)\r\n hullPoints.push(hullPoints[0]);\r\n }\r\n /**\r\n * Return (clones of) points in data[] with min and max x and y parts.\r\n * @param data array to examine.\r\n */\r\n public static minMaxPoints(data: Point3d[]): { minXPoint: Point3d, maxXPoint: Point3d, minYPoint: Point3d, maxYPoint: Point3d } | undefined {\r\n if (data.length === 0)\r\n return undefined;\r\n const result = { minXPoint: data[0].clone(), maxXPoint: data[0].clone(), minYPoint: data[0].clone(), maxYPoint: data[0].clone() };\r\n let q;\r\n for (let i = 1; i < data.length; i++) {\r\n q = data[i];\r\n if (q.x < result.minXPoint.x) result.minXPoint.setFromPoint3d(q);\r\n if (q.x > result.maxXPoint.x) result.maxXPoint.setFromPoint3d(q);\r\n if (q.y < result.minYPoint.y) result.minYPoint.setFromPoint3d(q);\r\n if (q.y > result.maxYPoint.y) result.maxYPoint.setFromPoint3d(q);\r\n }\r\n return result;\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PointStreaming.d.ts","sourceRoot":"","sources":["../../src/geometry3d/PointStreaming.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAyB,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQlC;;;GAGG;AACH,qBAAa,yBAAyB;IAC7B,UAAU,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAC1E,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IACnD,QAAQ,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAChF;AACD;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,yBAAyB;IACzE,OAAO,CAAC,GAAG,CAAC,CAAS;IACrB,OAAO,CAAC,GAAG,CAAC,CAAS;IACrB,OAAO,CAAC,GAAG,CAAC,CAAS;IACL,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAOhD,UAAU,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAG1F;;;;;;;;OAQG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CACxG;AACD;;;GAGG;AACH,qBAAa,oCAAqC,SAAQ,yBAAyB;IACjF,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxB,UAAU,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAG1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhD,QAAQ,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxF,wEAAwE;IACjE,4BAA4B,IAAI,gBAAgB,EAAE,GAAG,SAAS;CAKtE;AACD;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;IACtE,OAAO,CAAC,MAAM,CAAC,CAAiC;IAChC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzD,WAAW,IAAI,OAAO;CAO9B;AAED,qBAAa,gCAAgC;IAI3C,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAA2C;IAC/D;;;OAGG;gBACgB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,GAAG;IAOjE,UAAU,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAGhD,QAAQ,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMxE,WAAW,IAAI,GAAG,EAAE;CAM5B;AACD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAU;IACpC;;;;OAIG;WACW,SAAS,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,yBAAyB;CAqC7F"}
@@ -1 +0,0 @@
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 { LineStringDataVariant, MultiLineStringDataVariant } from \"../topology/Triangulation\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\n/* eslint-disable @typescript-eslint/naming-convention, no-empty */\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 +0,0 @@
1
- {"version":3,"file":"PolygonOps.d.ts","sourceRoot":"","sources":["../../src/geometry3d/PolygonOps.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolygonOps.js","sourceRoot":"","sources":["../../src/geometry3d/PolygonOps.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\nimport { Geometry, PlaneAltitudeEvaluator } from \"../Geometry\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\nimport { XYParitySearchContext } from \"../topology/XYParitySearchContext\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedReadWriteXYZCollection, IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point2d, Vector2d } from \"./Point2dVector2d\";\r\nimport { Point3dArrayCarrier } from \"./Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\nimport { Range1d, Range3d } from \"./Range\";\r\nimport { Ray3d } from \"./Ray3d\";\r\nimport { SortablePolygon } from \"./SortablePolygon\";\r\nimport { XAndY } from \"./XYZProps\";\r\n\r\n/**\r\n * Carrier for a loop extracted from clip operation, annotated for sorting\r\n * @internal\r\n */\r\nexport class CutLoop {\r\n /* All points of the loop */\r\n public xyz: GrowableXYZArray;\r\n /* ray within point of \"on\" edge */\r\n public edge?: Ray3d;\r\n public sortCoordinate0: number;\r\n public sortCoordinate1: number;\r\n public sortDelta: number;\r\n public isNotch: boolean;\r\n public constructor(xyz: GrowableXYZArray) {\r\n this.xyz = xyz;\r\n this.edge = undefined;\r\n this.sortCoordinate0 = this.sortCoordinate1 = 0;\r\n this.sortDelta = 0;\r\n this.isNotch = false;\r\n }\r\n /**\r\n * Create a `CutLoop` structure annotated with the vector from last point to first.\r\n * @param xyz coordinates to capture\r\n */\r\n public static createCaptureWithReturnEdge(xyz: GrowableXYZArray): CutLoop {\r\n const result = new CutLoop(xyz);\r\n if (xyz.length >= 2)\r\n result.edge = Ray3d.createStartEnd(xyz.front()!, xyz.back()!);\r\n return result;\r\n }\r\n /**\r\n * Set up coordinates for sort steps:\r\n * * Make `sortCoordinate0` and `sortCoordinate` the (algebraically sorted) start and end fractions along the ray\r\n * * Make `sortDelta` the oriented difference of those two\r\n * * Hence sorting on the coordinates puts loops in left-to-right order by the their edge vector leftmost point.\r\n */\r\n public setSortCoordinates(ray: Ray3d) {\r\n this.sortDelta = this.edge!.direction.dotProduct(ray.direction);\r\n const a = ray.dotProductToPoint(this.edge!.origin);\r\n if (this.sortDelta >= 0) {\r\n this.sortCoordinate0 = a;\r\n this.sortCoordinate1 = a + this.sortDelta;\r\n } else {\r\n this.sortCoordinate0 = a + this.sortDelta; // and sortDelta is negative !!!\r\n this.sortCoordinate1 = a;\r\n\r\n }\r\n }\r\n /** Return\r\n * * 0 if other sort limits are not strictly contained in this.\r\n * * 1 if other sort limits are strictly contained with same direction\r\n * * -1 if other sort limits are strictly contained in opposite direction.\r\n */\r\n public containsSortLimits(other: CutLoop): number {\r\n if (other.sortCoordinate0 >= this.sortCoordinate1\r\n || other.sortCoordinate0 <= this.sortCoordinate0\r\n || other.sortCoordinate1 <= this.sortCoordinate0\r\n || other.sortCoordinate1 >= this.sortCoordinate1)\r\n return 0;\r\n return this.sortDelta * other.sortDelta > 0 ? 1 : -1;\r\n }\r\n /**\r\n * * push coordinates from other onto this\r\n * * reset this.sortCoordinate0 to other.sortCoordinate1\r\n * @param other new coordinates\r\n */\r\n public absorb(other: CutLoop) {\r\n this.xyz.pushFromGrowableXYZArray(other.xyz);\r\n this.sortCoordinate0 = other.sortCoordinate1;\r\n }\r\n /** Comparison function for system sort function applied to an array of CutLoop .... */\r\n public static sortFunction(loopA: CutLoop, loopB: CutLoop): number {\r\n const q = loopA.sortCoordinate0 - loopB.sortCoordinate0;\r\n return q > 0 ? 1 : -1;\r\n }\r\n\r\n /** Return first point coordinates.\r\n * * For type checking, assume array is not empty.\r\n */\r\n public front(result?: Point3d): Point3d { return this.xyz.front(result)!; }\r\n /** Return last point coordinates.\r\n * * For type checking, assume array is not empty.\r\n */\r\n public back(result?: Point3d): Point3d { return this.xyz.back(result)!; }\r\n\r\n}\r\n/**\r\n * Context to hold an array of input loops and apply sort logic.\r\n * * This is used when a non-convex face is clipped by a plane\r\n * * Simple convex clip logic in this case generates double-back edges that need to be eliminated.\r\n * * This class manages the elimination.\r\n * * Usage pattern is:\r\n * @internal\r\n */\r\nexport class CutLoopMergeContext {\r\n /** Array (filled by user code) of loops being sorted. Contents are subject to being changed during sort. */\r\n public inputLoops: CutLoop[];\r\n /** Array (filled by sortAndMergeLoops) of reorganized loops. */\r\n public outputLoops: CutLoop[];\r\n // Initialize with empty loop arrays.\r\n public constructor() {\r\n this.inputLoops = [];\r\n this.outputLoops = [];\r\n }\r\n /**\r\n * * Search all start and end points for the one most distant from point0.\r\n */\r\n private mostDistantPoint(point0: Point3d, workPoint: Point3d, resultPoint: Point3d) {\r\n let dMax = -1.0;\r\n resultPoint.setZero();\r\n let d;\r\n for (const loop of this.inputLoops) {\r\n loop.front(workPoint);\r\n d = workPoint.distanceSquared(point0);\r\n if (d > dMax) {\r\n dMax = d;\r\n resultPoint.setFromPoint3d(workPoint);\r\n }\r\n loop.back(workPoint);\r\n d = workPoint.distanceSquared(point0);\r\n if (d > dMax) {\r\n dMax = d;\r\n resultPoint.setFromPoint3d(workPoint);\r\n }\r\n }\r\n }\r\n /**\r\n * * Find a long (probably longest) edge through start and end points of inputs.\r\n * * Setup sortCoordinate0 and sortCoordinate1 along that edge for each loop\r\n * * sort all inputLoop members by sortCoordinate0.\r\n */\r\n private sortInputs() {\r\n if (this.inputLoops.length > 0 && this.inputLoops[0].xyz.length > 0) {\r\n const point0 = this.inputLoops[0].xyz.front()!;\r\n const workPoint = Point3d.create();\r\n const point1 = Point3d.create();\r\n // point0 could be in the middle. Find the most distant point ...\r\n this.mostDistantPoint(point0, workPoint, point1);\r\n // And again from point1 to get to the other extreme . .\r\n this.mostDistantPoint(point1, workPoint, point0);\r\n const sortRay = Ray3d.createStartEnd(point0, point1);\r\n sortRay.direction.normalizeInPlace();\r\n for (const loop of this.inputLoops)\r\n loop.setSortCoordinates(sortRay);\r\n this.inputLoops.sort(CutLoop.sortFunction);\r\n\r\n }\r\n }\r\n /**\r\n * * sort all input loops by coordinate along the cut edge\r\n * * sweep left to right, using start and end coordinates to decide if loops are outer or hole, and combine holes into their containing outer loops.\r\n */\r\n public sortAndMergeLoops() {\r\n this.sortInputs();\r\n const inputs = this.inputLoops;\r\n const outputs = this.outputLoops;\r\n const stack = [];\r\n outputs.length = 0;\r\n for (const candidate of inputs) {\r\n candidate.isNotch = false;\r\n // candidate must be either (a) absorbed in to of stack or (b) pushed onto stack.\r\n // If pushed, must have indication of natch state.\r\n for (; stack.length > 0;) {\r\n const topOfStack = stack[stack.length - 1];\r\n const containment = topOfStack.containsSortLimits(candidate);\r\n if (containment === 0) {\r\n if (!topOfStack.isNotch)\r\n outputs.push(topOfStack);\r\n stack.pop();\r\n continue; // a larger topOfStack may have appeared !\r\n candidate.isNotch = false;\r\n } else if (containment === 1) {\r\n candidate.isNotch = false;\r\n break;\r\n } else {\r\n topOfStack.absorb(candidate);\r\n candidate.isNotch = true;\r\n break;\r\n }\r\n }\r\n stack.push(candidate);\r\n }\r\n // Anything on stack must be complete ...\r\n for (const p of stack) {\r\n if (!p.isNotch)\r\n outputs.push(p);\r\n }\r\n }\r\n}\r\n/** Static class for operations that treat an array of points as a polygon (with area!) */\r\n/**\r\n * Various (static method) computations for arrays of points interpreted as a polygon.\r\n * @public\r\n */\r\nexport class PolygonOps {\r\n /** Sum areas of triangles from points[0] to each far edge.\r\n * * Consider triangles from points[0] to each edge.\r\n * * Sum the areas(absolute, without regard to orientation) all these triangles.\r\n * @returns sum of absolute triangle areas.\r\n */\r\n public static sumTriangleAreas(points: Point3d[] | GrowableXYZArray): number {\r\n let s = 0;\r\n const n = points.length;\r\n if (Array.isArray(points)) {\r\n if (n >= 3) {\r\n const origin = points[0];\r\n const vector0 = origin.vectorTo(points[1]);\r\n let vector1 = Vector3d.create();\r\n // This will work with or without closure edge. If closure is given, the last vector is 000.\r\n for (let i = 2; i < n; i++) {\r\n vector1 = origin.vectorTo(points[i], vector1);\r\n s += vector0.crossProductMagnitude(vector1);\r\n vector0.setFrom(vector1);\r\n }\r\n }\r\n return s * 0.5;\r\n }\r\n const crossVector = Vector3d.create();\r\n for (let i = 2; i < n; i++) {\r\n points.crossProductIndexIndexIndex(0, i - 1, i, crossVector);\r\n s += crossVector.magnitude();\r\n }\r\n return s * 0.5;\r\n }\r\n /** Sum areas of triangles from points[0] to each far edge.\r\n * * Consider triangles from points[0] to each edge.\r\n * * Sum the areas(absolute, without regard to orientation) all these triangles.\r\n * @returns sum of absolute triangle areas.\r\n */\r\n public static sumTriangleAreasXY(points: Point3d[]): number {\r\n let s = 0.0;\r\n const n = points.length;\r\n if (n >= 3) {\r\n const origin = points[0];\r\n const vector0 = origin.vectorTo(points[1]);\r\n let vector1 = Vector3d.create();\r\n // This will work with or without closure edge. If closure is given, the last vector is 000.\r\n for (let i = 2; i < n; i++) {\r\n vector1 = origin.vectorTo(points[i], vector1);\r\n s += vector0.crossProductXY(vector1);\r\n vector0.setFrom(vector1);\r\n }\r\n }\r\n s *= 0.5;\r\n // console.log (\"polygon area \", s, points);\r\n return s;\r\n }\r\n /** These values are the integrated area moment products [xx,xy,xz, x]\r\n * for a right triangle in the first quadrant at the origin -- (0,0),(1,0),(0,1)\r\n */\r\n private static readonly _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);\r\n /** These values are the integrated volume moment products [xx,xy,xz, x, yx,yy,yz,y, zx,zy,zz,z,x,y,z,1]\r\n * for a tetrahedron in the first quadrant at the origin -- (0,00),(1,0,0),(0,1,0),(0,0,1)\r\n */\r\n private static readonly _tetrahedralMomentWeights = Matrix4d.createRowValues(\r\n 1.0 / 60.0, 1.0 / 120, 1.0 / 120, 1.0 / 24.0,\r\n 1.0 / 120, 1.0 / 60.0, 1.0 / 120, 1.0 / 24.0,\r\n 1.0 / 120, 1.0 / 120, 1.0 / 60.0, 1.0 / 24.0,\r\n 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 6.0);\r\n // statics for shared reuse.\r\n // many methods use these.\r\n // only use them in \"leaf\" methods that are certain not to call other users . . .\r\n private static _vector0 = Vector3d.create();\r\n private static _vector1 = Vector3d.create();\r\n private static _vector2 = Vector3d.create();\r\n private static _vectorOrigin = Vector3d.create();\r\n private static _normal = Vector3d.create();\r\n private static _matrixA = Matrix4d.createIdentity();\r\n private static _matrixB = Matrix4d.createIdentity();\r\n private static _matrixC = Matrix4d.createIdentity();\r\n /** return a vector which is perpendicular to the polygon and has magnitude equal to the polygon area. */\r\n public static areaNormalGo(points: IndexedXYZCollection, result?: Vector3d): Vector3d | undefined {\r\n if (!result)\r\n result = new Vector3d();\r\n const n = points.length;\r\n if (n === 3) {\r\n points.crossProductIndexIndexIndex(0, 1, 2, result);\r\n } else if (n >= 3) {\r\n result.setZero();\r\n // This will work with or without closure edge. If closure is given, the last vector is 000.\r\n for (let i = 2; i < n; i++) {\r\n points.accumulateCrossProductIndexIndexIndex(0, i - 1, i, result);\r\n }\r\n }\r\n // ALL BRANCHES SUM FULL CROSS PRODUCTS AND EXPECT SCALE HERE\r\n result.scaleInPlace(0.5);\r\n return result;\r\n }\r\n /** return a vector which is perpendicular to the polygon and has magnitude equal to the polygon area. */\r\n public static areaNormal(points: Point3d[], result?: Vector3d): Vector3d {\r\n if (!result)\r\n result = Vector3d.create();\r\n PolygonOps.areaNormalGo(new Point3dArrayCarrier(points), result);\r\n return result;\r\n }\r\n /** return the area of the polygon.\r\n * * This assumes the polygon is planar\r\n * * This does NOT assume the polygon is on the xy plane.\r\n */\r\n public static area(points: Point3d[]): number {\r\n return PolygonOps.areaNormal(points).magnitude();\r\n }\r\n /** return the projected XY area of the polygon. */\r\n public static areaXY(points: Point3d[] | IndexedXYZCollection): number {\r\n let area = 0.0;\r\n if (points instanceof IndexedXYZCollection) {\r\n if (points.length > 2) {\r\n const x0 = points.getXAtUncheckedPointIndex(0);\r\n const y0 = points.getYAtUncheckedPointIndex(0);\r\n let u1 = points.getXAtUncheckedPointIndex(1) - x0;\r\n let v1 = points.getYAtUncheckedPointIndex(1) - y0;\r\n let u2, v2;\r\n for (let i = 1; i + 1 < points.length; i++, u1 = u2, v1 = v2) {\r\n u2 = points.getXAtUncheckedPointIndex(i) - x0;\r\n v2 = points.getYAtUncheckedPointIndex(i) - y0;\r\n area += Geometry.crossProductXYXY(u1, v1, u2, v2);\r\n }\r\n }\r\n } else {\r\n for (let i = 1; i + 1 < points.length; i++)\r\n area += points[0].crossProductToPointsXY(points[i], points[i + 1]);\r\n }\r\n return 0.5 * area;\r\n }\r\n /**\r\n * Return a Ray3d with (assuming the polygon is planar and not self-intersecting)\r\n * * origin at the centroid of the (3D) polygon\r\n * * normal is a unit vector perpendicular to the plane\r\n * * 'a' member is the area.\r\n * @param points\r\n */\r\n public static centroidAreaNormal(points: IndexedXYZCollection | Point3d[]): Ray3d | undefined {\r\n if (Array.isArray(points)) {\r\n const carrier = new Point3dArrayCarrier(points);\r\n return this.centroidAreaNormal(carrier);\r\n }\r\n const n = points.length;\r\n if (n === 3) {\r\n const normal = points.crossProductIndexIndexIndex(0, 1, 2)!;\r\n const a = 0.5 * normal.magnitude();\r\n const centroid = points.getPoint3dAtCheckedPointIndex(0)!;\r\n points.accumulateScaledXYZ(1, 1.0, centroid);\r\n points.accumulateScaledXYZ(2, 1.0, centroid);\r\n centroid.scaleInPlace(1.0 / 3.0);\r\n const result = Ray3d.createCapture(centroid, normal);\r\n if (result.tryNormalizeInPlaceWithAreaWeight(a))\r\n return result;\r\n return undefined;\r\n }\r\n if (n >= 3) {\r\n\r\n const areaNormal = Vector3d.createZero();\r\n // This will work with or without closure edge. If closure is given, the last vector is 000.\r\n for (let i = 2; i < n; i++) {\r\n points.accumulateCrossProductIndexIndexIndex(0, i - 1, i, areaNormal);\r\n }\r\n areaNormal.normalizeInPlace();\r\n\r\n const origin = points.getPoint3dAtCheckedPointIndex(0)!;\r\n const vector0 = Vector3d.create();\r\n const vector1 = Vector3d.create();\r\n points.vectorXYAndZIndex(origin, 1, vector0);\r\n let cross = Vector3d.create();\r\n const centroidSum = Vector3d.createZero();\r\n const normalSum = Vector3d.createZero();\r\n let signedTriangleArea;\r\n // This will work with or without closure edge. If closure is given, the last vector is 000.\r\n for (let i = 2; i < n; i++) {\r\n points.vectorXYAndZIndex(origin, i, vector1);\r\n cross = vector0.crossProduct(vector1, cross);\r\n signedTriangleArea = areaNormal.dotProduct(cross); // well, actually twice the area.\r\n normalSum.addInPlace(cross); // this grows to twice the area\r\n const b = signedTriangleArea / 6.0;\r\n centroidSum.plus2Scaled(vector0, b, vector1, b, centroidSum);\r\n vector0.setFrom(vector1);\r\n }\r\n const area = 0.5 * normalSum.magnitude();\r\n const inverseArea = Geometry.conditionalDivideFraction(1, area);\r\n if (inverseArea !== undefined) {\r\n const result = Ray3d.createCapture(origin.plusScaled(centroidSum, inverseArea), normalSum);\r\n result.tryNormalizeInPlaceWithAreaWeight(area);\r\n return result;\r\n }\r\n }\r\n return undefined;\r\n }\r\n // Has the potential to be combined with centroidAreaNormal for point3d array and Ray3d return listed above...\r\n // Returns undefined if given point array less than 3 or if not safe to divide at any point\r\n /**\r\n * * Return (in caller-allocated centroid) the centroid of the xy polygon.\r\n * * Return (as function value) the area\r\n */\r\n public static centroidAndAreaXY(points: Point2d[], centroid: Point2d): number | undefined {\r\n let area = 0.0;\r\n centroid.set(0, 0);\r\n if (points.length < 3)\r\n return undefined;\r\n const origin = points[0];\r\n let vectorSum = Vector2d.create(0, 0); // == sum ((U+V)/3) * (U CROSS V)/2 -- but leave out divisions\r\n let areaSum = 0.0; // == sum (U CROSS V) / 2 -- but leave out divisions\r\n for (let i = 1; i + 1 < points.length; i++) {\r\n const vector0 = origin.vectorTo(points[i]);\r\n const vector1 = origin.vectorTo(points[i + 1]);\r\n const tempArea = vector0.crossProduct(vector1);\r\n vectorSum = vectorSum.plus(vector0.plus(vector1).scale(tempArea));\r\n areaSum += tempArea;\r\n }\r\n area = areaSum * 0.5;\r\n const a = Geometry.conditionalDivideFraction(1.0, 6.0 * area);\r\n if (a === undefined) {\r\n centroid.setFrom(origin);\r\n return undefined;\r\n }\r\n centroid.setFrom(origin.plusScaled(vectorSum, a));\r\n return area;\r\n }\r\n /**\r\n * Return a unit normal to the plane of the polygon.\r\n * @param points array of points around the polygon. This is assumed to NOT have closure edge.\r\n * @param result caller-allocated result vector.\r\n */\r\n public static unitNormal(points: IndexedXYZCollection, result: Vector3d): boolean {\r\n const n = points.length;\r\n if (n === 3) {\r\n points.crossProductIndexIndexIndex(0, 1, 2, result);\r\n return result.normalizeInPlace();\r\n }\r\n if (n === 4) {\r\n // cross product of diagonals is more stable than from single of the points . . .\r\n points.vectorIndexIndex(0, 2, PolygonOps._vector0);\r\n points.vectorIndexIndex(1, 3, PolygonOps._vector1);\r\n PolygonOps._vector0.crossProduct(PolygonOps._vector1, result);\r\n return result.normalizeInPlace();\r\n }\r\n // more than 4 points ... no shortcuts ...\r\n PolygonOps.areaNormalGo(points, result);\r\n return result.normalizeInPlace();\r\n }\r\n /** Accumulate to the matrix of area products of a polygon with respect to an origin.\r\n * The polygon is assumed to be planar and non-self-intersecting.\r\n */\r\n /** Accumulate to the matrix of area products of a polygon with respect to an origin.\r\n * * The polygon is assumed to be planar and non-self-intersecting.\r\n * * Accumulated values are integrals over triangles from point 0 of the polygon to other edges of the polygon.\r\n * * Integral over each triangle is transformed to integrals from the given origin.\r\n * @param points array of points around the polygon. Final closure point is not needed.\r\n * @param origin origin for global accumulation.\r\n * @param moments 4x4 matrix where products are accumulated.\r\n */\r\n public static addSecondMomentAreaProducts(points: IndexedXYZCollection, origin: Point3d, moments: Matrix4d) {\r\n this.addSecondMomentTransformedProducts(PolygonOps._triangleMomentWeights, points, origin, 2, moments);\r\n }\r\n\r\n /** Accumulate to the matrix of volume products of a polygon with respect to an origin.\r\n * * The polygon is assumed to be planar and non-self-intersecting.\r\n * * Accumulated values are integrals over tetrahedra from the origin to triangles on the polygon.\r\n * @param points array of points around the polygon. Final closure point is not needed.\r\n * @param origin origin for tetrahedra\r\n * @param moments 4x4 matrix where products are accumulated.\r\n */\r\n public static addSecondMomentVolumeProducts(points: IndexedXYZCollection, origin: Point3d, moments: Matrix4d) {\r\n this.addSecondMomentTransformedProducts(PolygonOps._tetrahedralMomentWeights, points, origin, 3, moments);\r\n }\r\n /** Return the matrix of area products of a polygon with respect to an origin.\r\n * The polygon is assumed to be planar and non-self-intersecting.\r\n * * `frameType===2` has xy vectors in the plane of the polygon, plus a unit normal z. (Used for area integrals)\r\n * * `frameType===3` has vectors from origin to 3 points in the triangle. (Used for volume integrals)\r\n */\r\n private static addSecondMomentTransformedProducts(firstQuadrantMoments: Matrix4d, points: IndexedXYZCollection, origin: Point3d,\r\n frameType: 2 | 3,\r\n moments: Matrix4d) {\r\n const unitNormal = PolygonOps._normal;\r\n if (PolygonOps.unitNormal(points, unitNormal)) {\r\n // The direction of the normal makes the various detJ values positive or negative so that non-convex polygons\r\n // sum correctly.\r\n const vector01 = PolygonOps._vector0;\r\n const vector02 = PolygonOps._vector1;\r\n const vector03 = PolygonOps._vector2;\r\n const placement = PolygonOps._matrixA;\r\n const matrixAB = PolygonOps._matrixB;\r\n const matrixABC = PolygonOps._matrixC;\r\n const vectorOrigin = points.vectorXYAndZIndex(origin, 0, PolygonOps._vectorOrigin)!;\r\n const numPoints = points.length;\r\n let detJ = 0;\r\n for (let i2 = 2; i2 < numPoints; i2++) {\r\n if (frameType === 2) {\r\n points.vectorIndexIndex(0, i2 - 1, vector01);\r\n points.vectorIndexIndex(0, i2, vector02);\r\n detJ = unitNormal.tripleProduct(vector01, vector02);\r\n placement.setOriginAndVectors(vectorOrigin, vector01, vector02, unitNormal);\r\n placement.multiplyMatrixMatrix(firstQuadrantMoments, matrixAB);\r\n matrixAB.multiplyMatrixMatrixTranspose(placement, matrixABC);\r\n moments.addScaledInPlace(matrixABC, detJ);\r\n } else if (frameType === 3) {\r\n points.vectorXYAndZIndex(origin, 0, vector01);\r\n points.vectorXYAndZIndex(origin, i2 - 1, vector02);\r\n points.vectorXYAndZIndex(origin, i2, vector03);\r\n detJ = vector01.tripleProduct(vector02, vector03);\r\n placement.setOriginAndVectors(origin, vector01, vector02, vector03);\r\n placement.multiplyMatrixMatrix(firstQuadrantMoments, matrixAB);\r\n matrixAB.multiplyMatrixMatrixTranspose(placement, matrixABC);\r\n moments.addScaledInPlace(matrixABC, detJ);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Test the direction of turn at the vertices of the polygon, ignoring z-coordinates.\r\n *\r\n * * For a polygon without self intersections, this is a convexity and orientation test: all positive is convex and counterclockwise,\r\n * all negative is convex and clockwise\r\n * * Beware that a polygon which turns through more than a full turn can cross itself and close, but is not convex\r\n * * Returns 1 if all turns are to the left, -1 if all to the right, and 0 if there are any zero or reverse turns\r\n */\r\n public static testXYPolygonTurningDirections(pPointArray: Point2d[] | Point3d[]): number {\r\n // Reduce count by trailing duplicates; leaves iLast at final index\r\n let numPoint = pPointArray.length;\r\n let iLast = numPoint - 1;\r\n while (iLast > 1 && pPointArray[iLast].x === pPointArray[0].x && pPointArray[iLast].y === pPointArray[0].y) {\r\n numPoint = iLast--;\r\n }\r\n if (numPoint > 2) {\r\n let vector0 = Point2d.create(pPointArray[iLast].x - pPointArray[iLast - 1].x, pPointArray[iLast].y - pPointArray[iLast - 1].y);\r\n const vector1 = Point2d.create(pPointArray[0].x - pPointArray[iLast].x, pPointArray[0].y - pPointArray[iLast].y);\r\n const baseArea = vector0.x * vector1.y - vector0.y * vector1.x;\r\n // In a convex polygon, all successive-vector cross products will\r\n // have the same sign as the base area, hence all products will be\r\n // positive.\r\n for (let i1 = 1; i1 < numPoint; i1++) {\r\n vector0 = vector1.clone();\r\n Point2d.create(pPointArray[i1].x - pPointArray[i1 - 1].x, pPointArray[i1].y - pPointArray[i1 - 1].y, vector1);\r\n const currArea = vector0.x * vector1.y - vector0.y * vector1.x;\r\n if (currArea * baseArea <= 0.0)\r\n return 0;\r\n }\r\n // Fall out with all signs same as base area\r\n return baseArea > 0.0 ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n /**\r\n * Test if point (x,y) is IN, OUT or ON a polygon.\r\n * @return (1) for in, (-1) for OUT, (0) for ON\r\n * @param x x coordinate\r\n * @param y y coordinate\r\n * @param points array of xy coordinates.\r\n */\r\n public static classifyPointInPolygon(x: number, y: number, points: XAndY[]): number | undefined {\r\n const context = new XYParitySearchContext(x, y);\r\n let i0 = 0;\r\n const n = points.length;\r\n let i1;\r\n let iLast = -1;\r\n // walk to an acceptable start index ...\r\n for (i0 = 0; i0 < n; i0++) {\r\n i1 = i0 + 1;\r\n if (i1 >= n)\r\n i1 = 0;\r\n if (context.tryStartEdge(points[i0].x, points[i0].y, points[i1].x, points[i1].y)) {\r\n iLast = i1;\r\n break;\r\n }\r\n }\r\n if (iLast < 0)\r\n return undefined;\r\n for (let i = 1; i <= n; i++) {\r\n i1 = iLast + i;\r\n if (i1 >= n)\r\n i1 -= n;\r\n if (!context.advance(points[i1].x, points[i1].y))\r\n return context.classifyCounts();\r\n }\r\n return context.classifyCounts();\r\n }\r\n /**\r\n * Test if point (x,y) is IN, OUT or ON a polygon.\r\n * @return (1) for in, (-1) for OUT, (0) for ON\r\n * @param x x coordinate\r\n * @param y y coordinate\r\n * @param points array of xy coordinates.\r\n */\r\n public static classifyPointInPolygonXY(x: number, y: number, points: IndexedXYZCollection): number | undefined {\r\n const context = new XYParitySearchContext(x, y);\r\n let i0 = 0;\r\n const n = points.length;\r\n let i1;\r\n let iLast = -1;\r\n // walk to an acceptable start index ...\r\n for (i0 = 0; i0 < n; i0++) {\r\n i1 = i0 + 1;\r\n if (i1 >= n)\r\n i1 = 0;\r\n if (context.tryStartEdge(points.getXAtUncheckedPointIndex(i0), points.getYAtUncheckedPointIndex(i0), points.getXAtUncheckedPointIndex(i1), points.getYAtUncheckedPointIndex(i1))) {\r\n iLast = i1;\r\n break;\r\n }\r\n }\r\n if (iLast < 0)\r\n return undefined;\r\n for (let i = 1; i <= n; i++) {\r\n i1 = iLast + i;\r\n if (i1 >= n)\r\n i1 -= n;\r\n if (!context.advance(points.getXAtUncheckedPointIndex(i1), points.getYAtUncheckedPointIndex(i1)))\r\n return context.classifyCounts();\r\n }\r\n return context.classifyCounts();\r\n }\r\n\r\n /**\r\n * Reverse loops as necessary to make them all have CCW orientation for given outward normal.\r\n * @param loops\r\n * @param outwardNormal\r\n * @return the number of loops reversed.\r\n */\r\n public static orientLoopsCCWForOutwardNormalInPlace(loops: IndexedReadWriteXYZCollection | IndexedReadWriteXYZCollection[], outwardNormal: Vector3d): number {\r\n if (loops instanceof IndexedXYZCollection)\r\n return this.orientLoopsCCWForOutwardNormalInPlace([loops], outwardNormal);\r\n const orientations: number[] = [];\r\n const unitNormal = Vector3d.create();\r\n // orient individually ... (no hole analysis)\r\n let numReverse = 0;\r\n for (const loop of loops) {\r\n if (this.unitNormal(loop, unitNormal)) {\r\n const q = unitNormal.dotProduct(outwardNormal);\r\n orientations.push(q);\r\n if (q <= 0.0)\r\n loop.reverseInPlace();\r\n numReverse++;\r\n } else {\r\n orientations.push(0.0);\r\n }\r\n }\r\n return numReverse;\r\n }\r\n /**\r\n * If reverse loops as necessary to make them all have CCW orientation for given outward normal.\r\n * * Return an array of arrays which capture the input pointers.\r\n * * In each first level array:\r\n * * The first loop is an outer loop.\r\n * * all subsequent loops are holes\r\n * * The outer loop is CCW\r\n * * The holes are CW.\r\n * * Call RegionOps.sortOuterAndHoleLoopsXY to have the result returned as a UnionRegion\r\n * @param loops multiple loops to sort and reverse.\r\n */\r\n public static sortOuterAndHoleLoopsXY(loops: IndexedReadWriteXYZCollection[]): IndexedReadWriteXYZCollection[][] {\r\n const loopAndArea: SortablePolygon[] = [];\r\n for (const loop of loops) {\r\n SortablePolygon.pushPolygon(loopAndArea, loop);\r\n }\r\n return SortablePolygon.sortAsArrayOfArrayOfPolygons(loopAndArea);\r\n }\r\n}\r\n/**\r\n * `IndexedXYZCollectionPolygonOps` class contains _static_ methods for typical operations on polygons carried as `IndexedXyZCollection`\r\n * @public\r\n */\r\nexport class IndexedXYZCollectionPolygonOps {\r\n private static _xyz0Work: Point3d = Point3d.create();\r\n private static _xyz1Work: Point3d = Point3d.create();\r\n private static _xyz2Work: Point3d = Point3d.create();\r\n /**\r\n * Split a (convex) polygon into 2 parts based on altitude evaluations.\r\n * * POSITIVE ALTITUDE IS IN\r\n * @param plane any `PlaneAltitudeEvaluator` object that can evaluate `plane.altitude(xyz)` for distance from the plane.\r\n * @param xyz original polygon\r\n * @param xyzPositive array to receive inside part (altitude > 0)\r\n * @param xyzNegative array to receive outside part\r\n * @param altitudeRange min and max altitudes encountered.\r\n */\r\n public static splitConvexPolygonInsideOutsidePlane(plane: PlaneAltitudeEvaluator,\r\n xyz: IndexedReadWriteXYZCollection,\r\n xyzPositive: IndexedReadWriteXYZCollection,\r\n xyzNegative: IndexedReadWriteXYZCollection, altitudeRange: Range1d) {\r\n const xyz0 = IndexedXYZCollectionPolygonOps._xyz0Work;\r\n const xyz1 = IndexedXYZCollectionPolygonOps._xyz1Work;\r\n const xyzInterpolated = IndexedXYZCollectionPolygonOps._xyz2Work;\r\n const n = xyz.length;\r\n xyzPositive.clear();\r\n xyzNegative.clear();\r\n // let numSplit = 0;\r\n const fractionTol = 1.0e-8;\r\n if (n > 2) {\r\n xyz.back(xyz0);\r\n altitudeRange.setNull();\r\n let a0 = plane.altitude(xyz0);\r\n altitudeRange.extendX(a0);\r\n // if (a0 >= 0.0)\r\n // work.push_back (xyz0);\r\n for (let i1 = 0; i1 < n; i1++) {\r\n xyz.getPoint3dAtUncheckedPointIndex(i1, xyz1);\r\n const a1 = plane.altitude(xyz1);\r\n altitudeRange.extendX(a1);\r\n let nearZero = false;\r\n if (a0 * a1 < 0.0) {\r\n // simple crossing. . .\r\n const f = - a0 / (a1 - a0);\r\n if (f > 1.0 - fractionTol && a1 >= 0.0) {\r\n // the endpoint will be saved -- avoid the duplicate\r\n nearZero = true;\r\n } else {\r\n xyz0.interpolate(f, xyz1, xyzInterpolated);\r\n xyzPositive.push(xyzInterpolated);\r\n xyzNegative.push(xyzInterpolated);\r\n }\r\n // numSplit++;\r\n }\r\n if (a1 >= 0.0 || nearZero)\r\n xyzPositive.push(xyz1);\r\n if (a1 <= 0.0 || nearZero)\r\n xyzNegative.push(xyz1);\r\n xyz0.setFromPoint3d(xyz1);\r\n a0 = a1;\r\n }\r\n }\r\n }\r\n /**\r\n * Clip a polygon to one side of a plane.\r\n * * Results with 2 or fewer points are ignored.\r\n * * Other than ensuring capacity in the arrays, there are no object allocations during execution of this function.\r\n * * plane is passed as unrolled Point4d (ax,ay,az,aw) point (x,y,z) acts as homogeneous (x,y,z,1)\r\n * * `keepPositive === true` selects positive altitudes.\r\n * @param plane any type that has `plane.altitude`\r\n * @param xyz input points.\r\n * @param work work buffer\r\n * @param tolerance tolerance for \"on plane\" decision.\r\n * @return the number of crossings. If this is larger than 2, the result is \"correct\" in a parity sense but may have overlapping (hence cancelling) parts.\r\n */\r\n public static clipConvexPolygonInPlace(plane: PlaneAltitudeEvaluator, xyz: GrowableXYZArray, work: GrowableXYZArray, keepPositive: boolean = true, tolerance: number = Geometry.smallMetricDistance): number {\r\n work.clear();\r\n const s = keepPositive ? 1.0 : -1.0;\r\n const n = xyz.length;\r\n let numNegative = 0;\r\n const fractionTol = 1.0e-8;\r\n const b = -tolerance;\r\n let numCrossings = 0;\r\n if (xyz.length > 1) {\r\n let a1;\r\n let index0 = xyz.length - 1;\r\n let a0 = s * xyz.evaluateUncheckedIndexPlaneAltitude(index0, plane);\r\n if (Math.abs(a0) < tolerance)\r\n a0 = 0;\r\n // if (a0 >= 0.0)\r\n // work.push_back (xyz0);\r\n for (let index1 = 0; index1 < n; a0 = a1, index0 = index1++) {\r\n a1 = s * xyz.evaluateUncheckedIndexPlaneAltitude(index1, plane);\r\n if (Math.abs(a1) < tolerance)\r\n a1 = 0;\r\n if (a1 < 0)\r\n numNegative++;\r\n if (a0 * a1 < 0.0) {\r\n // simple crossing . . .\r\n const f = - a0 / (a1 - a0);\r\n if (f > 1.0 - fractionTol && a1 >= 0.0) {\r\n // the endpoint will be saved -- avoid the duplicate\r\n } else {\r\n work.pushInterpolatedFromGrowableXYZArray(xyz, index0, f, index1);\r\n if (a1 > 0)\r\n numCrossings++; // \"out to in\"\r\n }\r\n }\r\n if (a1 >= b) {\r\n work.pushFromGrowableXYZArray(xyz, index1);\r\n if (a0 < -b) {\r\n numCrossings++; // \"in to out\"\r\n }\r\n }\r\n index0 = index1;\r\n a0 = a1;\r\n }\r\n }\r\n\r\n if (work.length <= 2) {\r\n xyz.clear();\r\n } else if (numNegative > 0) {\r\n xyz.clear();\r\n xyz.pushFromGrowableXYZArray(work);\r\n }\r\n work.clear();\r\n return numCrossings;\r\n }\r\n\r\n /**\r\n * * Input a \"clipped\" polygon (from clipConvexPolygonInPlace) with more than 2 crossings, i.e. is from a non-convex polygon with configurations like:\r\n * * multiple distinct polygons\r\n * * single polygon, but cut lines overlap and cancel by parity rules.\r\n * * return 1 or more polygons, each having first and last points \"on\" the plane and intermediate points \"off\"\r\n * * `minChainLength` indicates the shortest chain to be returned.\r\n * @internal\r\n */\r\n public static gatherCutLoopsFromPlaneClip(plane: PlaneAltitudeEvaluator, xyz: GrowableXYZArray, minChainLength: number = 3, tolerance: number = Geometry.smallMetricDistance): CutLoopMergeContext {\r\n const result: CutLoopMergeContext = new CutLoopMergeContext();\r\n // find the first on-plane point\r\n let firstOnPlaneIndex = 0;\r\n const n = xyz.length;\r\n for (; firstOnPlaneIndex < n; firstOnPlaneIndex++) {\r\n const a = xyz.evaluateUncheckedIndexPlaneAltitude(firstOnPlaneIndex, plane);\r\n if (Math.abs(a) <= tolerance)\r\n break;\r\n }\r\n if (firstOnPlaneIndex === n)\r\n return result;\r\n // find contiguous blocks of \"off plane\" points with on-plane points at their end.\r\n let candidateA = firstOnPlaneIndex;\r\n while (candidateA < n) {\r\n const currentChain = new GrowableXYZArray();\r\n currentChain.pushFromGrowableXYZArray(xyz, candidateA);\r\n let candidateB = candidateA + 1;\r\n while (candidateB < n) {\r\n currentChain.pushFromGrowableXYZArray(xyz, candidateB);\r\n const a = xyz.evaluateUncheckedIndexPlaneAltitude(candidateB, plane);\r\n if (Math.abs(a) <= tolerance) {\r\n break;\r\n }\r\n candidateB++;\r\n }\r\n if (candidateB === n)\r\n for (let i = 0; i <= firstOnPlaneIndex; i++)\r\n currentChain.pushFromGrowableXYZArray(xyz, i);\r\n if (currentChain.length >= minChainLength)\r\n result.inputLoops.push(CutLoop.createCaptureWithReturnEdge(currentChain));\r\n candidateA = candidateB;\r\n }\r\n return result;\r\n }\r\n /**\r\n * * Input the loops from `gatherCutLoopsFromClipPlane`\r\n * * Consolidate loops for reentrant configurations.\r\n * * WARNING: The output reuses and modifies input loops whenever possible.\r\n * @internal\r\n */\r\n public static reorderCutLoops(loops: CutLoopMergeContext) {\r\n // Simple case: all loops have common orientation\r\n if (loops.inputLoops.length === 1)\r\n return;\r\n // Simple cases: 2 loops . . .\r\n if (loops.inputLoops.length === 2) {\r\n // if edges are in the same direction, it must be a pair of unrelated loop . . .\r\n if (loops.inputLoops[0].edge!.direction.dotProduct(loops.inputLoops[1].edge!.direction) > 0) {\r\n loops.outputLoops.push(loops.inputLoops[0]);\r\n loops.outputLoops.push(loops.inputLoops[1]);\r\n return;\r\n }\r\n // twist the two loops into 1,\r\n const source = loops.inputLoops[1].xyz;\r\n const dest = loops.inputLoops[0].xyz;\r\n dest.pushFromGrowableXYZArray(source);\r\n loops.outputLoops.push(loops.inputLoops[0]);\r\n return;\r\n }\r\n // 3 or more loops.\r\n loops.sortAndMergeLoops();\r\n //\r\n }\r\n /**\r\n * Return the intersection of the plane with a range cube.\r\n * @param range\r\n * @param xyzOut intersection polygon. This is convex.\r\n * @return reference to xyz if the polygon still has points; undefined if all points are clipped away.\r\n */\r\n public static intersectRangeConvexPolygonInPlace(range: Range3d, xyz: GrowableXYZArray): GrowableXYZArray | undefined {\r\n if (range.isNull)\r\n return undefined;\r\n const work = new GrowableXYZArray();\r\n const plane = Point4d.create();\r\n plane.set(0, 0, -1, range.high.z);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n plane.set(0, 0, 1, -range.low.z);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n plane.set(0, -1, 0, range.high.y);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n plane.set(0, 1, 0, -range.low.y);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n plane.set(-1, 0, 0, range.high.x);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n plane.set(1, 0, 0, -range.low.x);\r\n this.clipConvexPolygonInPlace(plane, xyz, work, true);\r\n if (xyz.length === 0)\r\n return undefined;\r\n\r\n return xyz;\r\n }\r\n}\r\n/**\r\n * `Point3dArrayPolygonOps` class contains _static_ methods for typical operations on polygons carried as `Point3d[]`\r\n * @public\r\n */\r\nexport class Point3dArrayPolygonOps {\r\n private static _xyz0Work: Point3d = Point3d.create();\r\n // private static _xyz1Work: Point3d = Point3d.create();\r\n // private static _xyz2Work: Point3d = Point3d.create();\r\n /**\r\n * Split a (convex) polygon into 2 parts.\r\n * @param xyz original polygon\r\n * @param xyzIn array to receive inside part\r\n * @param xyzOut array to receive outside part\r\n * @param altitudeRange min and max altitudes encountered.\r\n */\r\n public static convexPolygonSplitInsideOutsidePlane(plane: PlaneAltitudeEvaluator, xyz: Point3d[], xyzIn: Point3d[], xyzOut: Point3d[], altitudeRange: Range1d) {\r\n const xyzCarrier = new Point3dArrayCarrier(xyz);\r\n const xyzInCarrier = new Point3dArrayCarrier(xyzIn);\r\n const xyzOutCarrier = new Point3dArrayCarrier(xyzOut);\r\n IndexedXYZCollectionPolygonOps.splitConvexPolygonInsideOutsidePlane(plane, xyzCarrier, xyzInCarrier, xyzOutCarrier, altitudeRange);\r\n\r\n }\r\n\r\n /** Return an array containing\r\n * * All points that are exactly on the plane.\r\n * * Crossing points between adjacent points that are (strictly) on opposite sides.\r\n */\r\n public static polygonPlaneCrossings(plane: PlaneAltitudeEvaluator, xyz: Point3d[], crossings: Point3d[]) {\r\n crossings.length = 0;\r\n if (xyz.length >= 2) {\r\n const xyz0 = this._xyz0Work;\r\n xyz0.setFromPoint3d(xyz[xyz.length - 1]);\r\n let a0 = plane.altitude(xyz0);\r\n for (const xyz1 of xyz) {\r\n const a1 = plane.altitude(xyz1);\r\n if (a0 * a1 < 0.0) {\r\n // simple crossing. . .\r\n const f = - a0 / (a1 - a0);\r\n crossings.push(xyz0.interpolate(f, xyz1));\r\n }\r\n if (a1 === 0.0) { // IMPORTANT -- every point is directly tested here\r\n crossings.push(xyz1.clone());\r\n }\r\n xyz0.setFromPoint3d(xyz1);\r\n a0 = a1;\r\n }\r\n }\r\n }\r\n /**\r\n * Clip a polygon, returning the clip result in the same object.\r\n * @param xyz input/output polygon\r\n * @param work scratch object\r\n * @param tolerance tolerance for on-plane decision.\r\n */\r\n public static convexPolygonClipInPlace(plane: PlaneAltitudeEvaluator, xyz: Point3d[], work: Point3d[] | undefined, tolerance: number = Geometry.smallMetricDistance) {\r\n if (work === undefined)\r\n work = [];\r\n work.length = 0;\r\n let numNegative = 0;\r\n const fractionTol = 1.0e-8;\r\n const b = -tolerance;\r\n if (xyz.length > 2) {\r\n let xyz0 = xyz[xyz.length - 1];\r\n let a0 = plane.altitude(xyz0);\r\n // if (a0 >= 0.0)\r\n // work.push_back (xyz0);\r\n for (const xyz1 of xyz) {\r\n const a1 = plane.altitude(xyz1);\r\n if (a1 < 0)\r\n numNegative++;\r\n if (a0 * a1 < 0.0) {\r\n // simple crossing . . .\r\n const f = - a0 / (a1 - a0);\r\n if (f > 1.0 - fractionTol && a1 >= 0.0) {\r\n // the endpoint will be saved -- avoid the duplicate\r\n } else {\r\n work.push(xyz0.interpolate(f, xyz1));\r\n }\r\n }\r\n if (a1 >= b)\r\n work.push(xyz1);\r\n xyz0 = Point3d.createFrom(xyz1);\r\n a0 = a1;\r\n }\r\n }\r\n\r\n if (work.length <= 2) {\r\n xyz.length = 0;\r\n } else if (numNegative > 0) {\r\n xyz.length = 0;\r\n for (const xyzI of work) {\r\n xyz.push(xyzI);\r\n }\r\n work.length = 0;\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolylineCompressionByEdgeOffset.d.ts","sourceRoot":"","sources":["../../src/geometry3d/PolylineCompressionByEdgeOffset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AAGtD;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,OAAO;IAKP,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,KAAK,CAAgC;IAE7C,yCAAyC;IACzC,OAAO,CAAC,iBAAiB,CAAS;IAClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;;;;;OAMG;IAGH,OAAO,CAAC,+BAA+B;IAcvC;;;;;OAKG;WACW,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IAMpG;;;;;;;;OAQG;WACW,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM;IAuBtI;;OAEG;WACW,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IA6BzF;;OAEG;WACW,kCAAkC,CAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM;IAgB7F;;OAEG;WACW,sCAAsC,CAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,EAAE,oBAAoB,SAAS;IAiCzI;;;;;OAKG;WACW,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM;CAqB/E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolylineCompressionByEdgeOffset.js","sourceRoot":"","sources":["../../src/geometry3d/PolylineCompressionByEdgeOffset.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\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedReadWriteXYZCollection, IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3dArrayCarrier } from \"./Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\n\r\n// cspell:word Puecker\r\n/** context class for Puecker-Douglas polyline compression, viz https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm\r\n * @internal\r\n */\r\nexport class PolylineCompressionContext {\r\n /** Caller provides source and tolerance.\r\n * * pointer to source is retained, but contents of source are never modified.\r\n */\r\n private constructor(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, tolerance: number) {\r\n this._toleranceSquared = tolerance * tolerance;\r\n this._source = source;\r\n this._dest = dest;\r\n }\r\n private _source: IndexedXYZCollection;\r\n\r\n private _dest: IndexedReadWriteXYZCollection;\r\n\r\n /** Squared tolerance for equal point. */\r\n private _toleranceSquared: number;\r\n /** push (clone of) the point at index i from the source to the growing result.\r\n * * index is adjusted cyclically to source index range by modulo.\r\n */\r\n private acceptPointByIndex(i: number) {\r\n const point = this._source.getPoint3dAtCheckedPointIndex(this._source.cyclicIndex(i));\r\n if (point)\r\n this._dest.push(point);\r\n }\r\n /** work data used by find max deviation */\r\n private static _vector01: Vector3d = Vector3d.create();\r\n private static _vectorQ: Vector3d = Vector3d.create();\r\n /**\r\n * Return index of max magnitude of cross product of vectors (index to index+1) and (index to index+2)\r\n * * Return undefined if unable to find a nonzero cross product.\r\n * @param i0 first cross product central index.\r\n * @param i1 last cross product central index.\r\n */\r\n private indexOfMaxCrossProduct(index0: number, index1: number): number | undefined {\r\n let qMax = 0.0;\r\n let q;\r\n let indexMax: number | undefined;\r\n for (let index = index0; index <= index1; index++) {\r\n const iA = this._source.cyclicIndex(index);\r\n const iB = this._source.cyclicIndex(index + 1);\r\n const iC = this._source.cyclicIndex(index + 2);\r\n this._source.crossProductIndexIndexIndex(iA, iB, iC, PolylineCompressionContext._vectorQ);\r\n q = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n if (q > qMax) {\r\n qMax = q;\r\n indexMax = index;\r\n }\r\n }\r\n return indexMax;\r\n }\r\n\r\n /**\r\n * Return interior index where max deviation in excess of tolerance occurs.\r\n * @param i0 first index of interval\r\n * @param i1 INCLUSIVE final index\r\n */\r\n private indexOfMaxDeviation(index0: number, index1: number): number | undefined {\r\n const i0 = this._source.cyclicIndex(index0);\r\n const i1 = this._source.cyclicIndex(index1);\r\n let maxDeviation = this._toleranceSquared;\r\n let maxDeviationIndex;\r\n let numerator;\r\n let distanceSquared;\r\n let s;\r\n let i;\r\n this._source.vectorIndexIndex(i0, i1, PolylineCompressionContext._vector01)!;\r\n const denominator = PolylineCompressionContext._vector01.magnitudeSquared();\r\n for (let index = index0 + 1; index < index1; index++) {\r\n i = this._source.cyclicIndex(index);\r\n this._source.vectorIndexIndex(i0, i, PolylineCompressionContext._vectorQ);\r\n numerator = PolylineCompressionContext._vector01.dotProduct(PolylineCompressionContext._vectorQ);\r\n if (numerator <= 0) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else if (numerator > denominator) {\r\n this._source.vectorIndexIndex(i1, i, PolylineCompressionContext._vectorQ);\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else {\r\n s = numerator / denominator;\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n }\r\n if (distanceSquared > maxDeviation) {\r\n maxDeviation = distanceSquared;\r\n maxDeviationIndex = index;\r\n }\r\n }\r\n return maxDeviationIndex;\r\n }\r\n /**\r\n *\r\n * @param i0 first active point index\r\n * @param i1 last active point index (INCLUSIVE -- not \"one beyond\")\r\n * @param chordTolerance\r\n * @param result\r\n */\r\n // ASSUME index i0 is already saved.\r\n // ASSUME point i\r\n private recursiveCompressByChordErrorGo(i0: number, i1: number) {\r\n if (i1 === i0 + 1) {\r\n this.acceptPointByIndex(i1);\r\n return;\r\n }\r\n const distantPointIndex = this.indexOfMaxDeviation(i0, i1);\r\n if (distantPointIndex === undefined) {\r\n this.acceptPointByIndex(i1); // which compresses out some points.\r\n } else {\r\n this.recursiveCompressByChordErrorGo(i0, distantPointIndex);\r\n this.recursiveCompressByChordErrorGo(distantPointIndex, i1);\r\n }\r\n }\r\n // cspell:word Peucker\r\n /**\r\n * Return a point array with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * @param source input points.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressPoint3dArrayByChordError(source: Point3d[], chordTolerance: number): Point3d[] {\r\n const source1 = new Point3dArrayCarrier(source);\r\n const dest1 = new Point3dArrayCarrier([]);\r\n this.compressCollectionByChordError(source1, dest1, chordTolerance);\r\n return dest1.data;\r\n }\r\n /**\r\n * * Return a polyline with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * * Global search for vertices that are close to edges between widely separated neighbors.\r\n * * Recurses to smaller subsets.\r\n * @param source input points\r\n * @param dest output points. Must be different from source.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressCollectionByChordError(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, chordTolerance: number) {\r\n dest.clear();\r\n const n = source.length;\r\n if (n === 1) {\r\n dest.push(source.getPoint3dAtCheckedPointIndex(0)!);\r\n return;\r\n }\r\n const context = new PolylineCompressionContext(source, dest, chordTolerance);\r\n // Do compression on inclusive interval from indexA to indexB, with indices interpreted cyclically if closed\r\n let indexA = 0;\r\n let indexB = n - 1;\r\n if (n > 2 && source.distanceIndexIndex(0, n - 1)! <= chordTolerance) {\r\n // cyclic data. It is possible that the wrap point itself has to be seen as an internal point.\r\n // do the search from point index where there is a large triangle . ..\r\n const maxCrossProductIndex = context.indexOfMaxCrossProduct(0, n - 1);\r\n if (maxCrossProductIndex !== undefined) {\r\n indexA = maxCrossProductIndex + 1;\r\n indexB = indexA + n;\r\n }\r\n }\r\n context.acceptPointByIndex(indexA);\r\n context.recursiveCompressByChordErrorGo(indexA, indexB);\r\n }\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByShortEdgeLength(data: GrowableXYZArray, edgeLength: number) {\r\n const n = data.length;\r\n if (n < 2)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n // back up from final point ..\r\n let indexB = n - 1;\r\n while (indexB > 0 && data.distanceIndexIndex(indexB - 1, n - 1)! < edgeLength)\r\n indexB--;\r\n if (indexB === 0) {\r\n // Theres only one point there.\r\n data.length = 1;\r\n return;\r\n }\r\n // we want the exact bits of the final point even if others were nearby ..\r\n if (indexB < n - 1)\r\n data.moveIndexToIndex(n - 1, indexB);\r\n let candidateIndex = lastAcceptedIndex + 1;\r\n while (candidateIndex <= indexB) {\r\n const d = data.distanceIndexIndex(lastAcceptedIndex, candidateIndex)!;\r\n if (d >= edgeLength) {\r\n data.moveIndexToIndex(candidateIndex, lastAcceptedIndex + 1);\r\n lastAcceptedIndex++;\r\n }\r\n candidateIndex++;\r\n }\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceBySmallTriangleArea(data: GrowableXYZArray, triangleArea: number) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const cross = Vector3d.create();\r\n for (let i1 = 1; i1 + 1 < n; i1++) {\r\n data.crossProductIndexIndexIndex(lastAcceptedIndex, i1, i1 + 1, cross);\r\n if (0.5 * cross.magnitude() > triangleArea) {\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n }\r\n data.moveIndexToIndex(n - 1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to edge between neighbors.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByPerpendicularDistance(data: GrowableXYZArray, perpendicularDistance: number, maxExtensionFraction = 1.0001) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const vector01 = PolylineCompressionContext._vector01;\r\n const vectorQ = PolylineCompressionContext._vectorQ;\r\n let distanceSquared;\r\n const perpendicularDistanceSquared = perpendicularDistance * perpendicularDistance;\r\n let denominator;\r\n let i1 = 1;\r\n for (; i1 + 1 < n; i1++) {\r\n data.vectorIndexIndex(lastAcceptedIndex, i1 + 1, vector01);\r\n data.vectorIndexIndex(lastAcceptedIndex, i1, vectorQ);\r\n denominator = vector01.magnitudeSquared();\r\n const s = Geometry.conditionalDivideFraction(vectorQ.dotProduct(vector01), denominator);\r\n if (s !== undefined) {\r\n if (s >= 0.0 && s <= maxExtensionFraction) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n if (distanceSquared <= perpendicularDistanceSquared) {\r\n // force accept of point i1+1 .\r\n data.moveIndexToIndex(i1 + 1, ++lastAcceptedIndex);\r\n i1 = i1 + 1;\r\n continue;\r\n }\r\n }\r\n }\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n if (i1 < n)\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n /**\r\n * IF the first and last points are close AND first and last segments are colinear, remove first and last points. Prior second to last becomes replicated start and end.\r\n * * Expected to be called \"last\" after other compressions, so points \"next to\" shared first and last are good to keep.\r\n * @param points\r\n * @param perpendicularDistance\r\n */\r\n public static compressColinearWrapInPlace(points: Point3d[], tolerance: number) {\r\n const lastIndex = points.length - 1;\r\n if (lastIndex >= 3 && points[0].distance(points[lastIndex]) < tolerance) {\r\n // indices of 3 points potentially colinear.\r\n const indexA = lastIndex - 1;\r\n const indexB = 0;\r\n const indexC = 1;\r\n const vectorU = Vector3d.createStartEnd(points[indexA], points[indexC]);\r\n const vectorV = Vector3d.createStartEnd(points[indexA], points[indexB]);\r\n const uDotU = vectorU.dotProduct(vectorU);\r\n const uDotV = vectorU.dotProduct(vectorV);\r\n const fraction = Geometry.conditionalDivideFraction(uDotV, uDotU);\r\n if (fraction !== undefined && fraction > 0.0 && fraction < 1.0) {\r\n const h2 = vectorV.magnitudeSquared() - fraction * fraction * uDotU;\r\n if (Math.sqrt(Math.abs(h2)) < tolerance) {\r\n points[0] = points[indexA];\r\n points.pop();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolylineOps.d.ts","sourceRoot":"","sources":["../../src/geometry3d/PolylineOps.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;OAGG;WACW,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;IAOzD;;;;;;OAMG;WACW,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IAGxF;;;;;OAKG;WACW,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE;IAKrF;;;;;OAKG;WACW,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,EAAE;IAM3F;;;;;;;OAOG;WACW,+BAA+B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,GAAG,OAAO,EAAE;IAYrH,OAAO,CAAC,MAAM,CAAC,kCAAkC;IAOjD;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiCvC;;;SAGK;WACY,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,OAAe,EAAE,SAAS,GAAE,MAAqC,GAAG,OAAO,EAAE;CAoCzI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolylineOps.js","sourceRoot":"","sources":["../../src/geometry3d/PolylineOps.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/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { Point3d } from \"./Point3dVector3d\";\r\nimport { PolylineCompressionContext } from \"./PolylineCompressionByEdgeOffset\";\r\nimport { Range1d } from \"./Range\";\r\n\r\n// cspell:word Puecker\r\n/**\r\n * PolylineOps is a collection of static methods operating on polylines.\r\n * @public\r\n */\r\nexport class PolylineOps {\r\n /**\r\n * Return a Range1d with the shortest and longest edge lengths of the polyline.\r\n * @param points points to examine.\r\n */\r\n public static edgeLengthRange(points: Point3d[]): Range1d {\r\n const range = Range1d.createNull();\r\n for (let i = 1; i < points.length; i++) {\r\n range.extendX(points[i - 1].distance(points[i]));\r\n }\r\n return range;\r\n }\r\n /**\r\n * Return a simplified subset of given points.\r\n * * Points are removed by the Douglas-Puecker algorithm, viz https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm\r\n * * This is a global search, with multiple passes over the data.\r\n * @param source\r\n * @param chordTolerance\r\n */\r\n public static compressByChordError(source: Point3d[], chordTolerance: number): Point3d[] {\r\n return PolylineCompressionContext.compressPoint3dArrayByChordError(source, chordTolerance);\r\n }\r\n /**\r\n * Return a simplified subset of given points, omitting points if very close to their neighbors.\r\n * * This is a local search, with a single pass over the data.\r\n * @param source input points\r\n * @param maxEdgeLength\r\n */\r\n public static compressShortEdges(source: Point3d[], maxEdgeLength: number): Point3d[] {\r\n const dest = GrowableXYZArray.create(source);\r\n PolylineCompressionContext.compressInPlaceByShortEdgeLength(dest, maxEdgeLength);\r\n return dest.getPoint3dArray();\r\n }\r\n /**\r\n * Return a simplified subset of given points, omitting points of the triangle with adjacent points is small.\r\n * * This is a local search, with a single pass over the data.\r\n * @param source input points\r\n * @param maxEdgeLength\r\n */\r\n public static compressSmallTriangles(source: Point3d[], maxTriangleArea: number): Point3d[] {\r\n const dest = GrowableXYZArray.create(source);\r\n PolylineCompressionContext.compressInPlaceBySmallTriangleArea(dest, maxTriangleArea);\r\n return dest.getPoint3dArray();\r\n }\r\n\r\n /**\r\n * Return a simplified subset of given points, omitting points if close to the edge between neighboring points before and after\r\n * * This is a local search, with a single pass over the data for each pass.\r\n * @param source input points\r\n * @param maxDistance omit points if this close to edge between points before and after\r\n * @param numPass max number of times to run the filter. numPass=2 is observed to behave well.\r\n *\r\n */\r\n public static compressByPerpendicularDistance(source: Point3d[], maxDistance: number, numPass: number = 2): Point3d[] {\r\n const dest = GrowableXYZArray.create(source);\r\n let num0 = dest.length;\r\n for (let pass = 0; pass < numPass; pass++) {\r\n PolylineCompressionContext.compressInPlaceByPerpendicularDistance(dest, maxDistance);\r\n const num1 = dest.length;\r\n if (num1 === num0)\r\n break;\r\n num0 = num1;\r\n }\r\n return dest.getPoint3dArray();\r\n }\r\n private static squaredDistanceToInterpolatedPoint(pointQ: Point3d, point0: Point3d, fraction: number, point1: Point3d): number {\r\n const g = 1.0 - fraction;\r\n const dx = pointQ.x - (g * point0.x + fraction * point1.x);\r\n const dy = pointQ.y - (g * point0.y + fraction * point1.y);\r\n const dz = pointQ.z - (g * point0.z + fraction * point1.z);\r\n return dx * dx + dy * dy + dz * dz;\r\n }\r\n /**\r\n * test if either\r\n * * points[indexA] matches pointQ\r\n * * line from points[indexA] to points[indexB] overlaps points[indexA] to pointQ\r\n * @param points\r\n * @param pointQ\r\n * @param tolerance\r\n */\r\n private static isDanglerConfiguration(points: Point3d[], indexA: number, indexB: number,pointQ: Point3d, squaredDistanceTolerance: number): boolean {\r\n if (indexA < 0 || indexA >= points.length)\r\n return false;\r\n const pointA = points[indexA];\r\n // simple point match ...\r\n const d2Q = pointA.distanceSquared(pointQ);\r\n if (d2Q <= squaredDistanceTolerance)\r\n return true;\r\n if (indexB < 0 || indexB >= points.length)\r\n return false;\r\n const pointB = points[indexB];\r\n // The expensive test .. does newPoint double back to an interior or extrapolation of the final dest segment?\r\n //\r\n // or pointQ\r\n const dot = pointA.dotVectorsToTargets(pointB, pointQ);\r\n // simple case -- pointB..pointA..pointQ continues forward\r\n if (dot <= 0.0)\r\n return false;\r\n const d2B = pointA.distanceSquared(pointB);\r\n let distanceSquared;\r\n if (d2Q >= d2B) {\r\n // pointB----------------------------------->>>>>>> pointA\r\n // pointQ<<<<---------------------------------------------------------\r\n const fraction = dot / d2Q; // safe to divide because of earlier d2Q test.\r\n distanceSquared = this.squaredDistanceToInterpolatedPoint(pointB, pointA, fraction, pointQ);\r\n } else {\r\n // pointB----------------------------------->>>>>>> pointA\r\n // pointQ<<<<----------------------\r\n const fraction = dot / d2B;\r\n distanceSquared = this.squaredDistanceToInterpolatedPoint(pointQ, pointA, fraction, pointB);\r\n }\r\n return distanceSquared < squaredDistanceTolerance;\r\n }\r\n/**\r\n * Return a simplified subset of given points, omitting points on \"danglers\" that depart and return on a single path.\r\n * @param source input points\r\n */\r\n public static compressDanglers(source: Point3d[], closed: boolean = false, tolerance: number = Geometry.smallMetricDistance): Point3d[] {\r\n let n = source.length;\r\n const squaredDistanceTolerance = tolerance * tolerance;\r\n if (closed)\r\n while (n > 1 && source[n - 1].distanceSquared(source[0]) <= squaredDistanceTolerance)\r\n n--;\r\n const dest = [];\r\n dest.push(source[0].clone());\r\n for (let i = 1; i < n; i++){\r\n const newPoint = source[i];\r\n while (this.isDanglerConfiguration(dest, dest.length - 1, dest.length - 2, newPoint, squaredDistanceTolerance))\r\n dest.pop();\r\n dest.push(newPoint.clone());\r\n }\r\n if (closed) {\r\n // No purge moving backwards. Last point\r\n let leftIndex = 0;\r\n let rightIndex = dest.length - 1;\r\n while (rightIndex > leftIndex + 2) {\r\n if (this.isDanglerConfiguration(dest, leftIndex, leftIndex + 1, dest[rightIndex], squaredDistanceTolerance)) {\r\n leftIndex++;\r\n } else if (this.isDanglerConfiguration(dest, rightIndex, rightIndex - 1, dest[leftIndex], squaredDistanceTolerance)) {\r\n rightIndex--;\r\n } else {\r\n break;\r\n }\r\n }\r\n if (rightIndex + 1 < dest.length)\r\n dest.length = rightIndex + 1;\r\n if (leftIndex > 0) {\r\n dest.splice(0, leftIndex);\r\n }\r\n }\r\n return dest;\r\n }\r\n\r\n}\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../src/geometry3d/Range.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGlH;;;GAGG;AACH,8BAAsB,SAAS;IAC7B,+EAA+E;IAC/E,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAW;IAC9D,+EAA+E;IAC/E,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAY;IAC/D,kFAAkF;IAClF,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAClE,qFAAqF;WACvE,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAChD,mGAAmG;WACrF,gBAAgB,CAAC,GAAG,EAAE,OAAO;IAC3C,iGAAiG;WACnF,gBAAgB,CAAC,EAAE,EAAE,OAAO;IAC1C;;;;;;;;OAQG;WACW,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAa5G;;;;OAIG;WACW,iCAAiC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAS9F;AACD;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,SAAU,YAAW,aAAa,EAAE,eAAe;IAI9E,4BAA4B;IACrB,GAAG,EAAE,OAAO,CAAC;IACpB,6BAA6B;IACtB,IAAI,EAAE,OAAO,CAAC;IACrB,+EAA+E;IACxE,OAAO;IASd,gEAAgE;IACzD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC/B,8GAA8G;WAChG,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY;IAC9D,8EAA8E;IACvE,cAAc,IAAI,YAAY;IACrC;;;;OAIG;WACW,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC;IAKvE;;;;OAIG;WACW,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC;gBAGrD,IAAI,GAAE,MAAoC,EAAE,IAAI,GAAE,MAAoC,EAAE,IAAI,GAAE,MAAoC,EACnJ,KAAK,GAAE,MAAoC,EAAE,KAAK,GAAE,MAAoC,EAAE,KAAK,GAAE,MAAoC;IAMvI,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrE,2CAA2C;IACpC,OAAO,CAAC,KAAK,EAAE,OAAO;IAC7B,+DAA+D;WACjD,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAK1E;;;;OAIG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY;IAmBtC;;OAEG;IACI,MAAM,IAAI,YAAY;IAC7B,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAMjE,OAAO,CAAC,SAAS;IAejB,oBAAoB;IACb,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAKjC;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAO1D,qDAAqD;WACvC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1D,iGAAiG;IAC1F,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE;IAKjC,oHAAoH;WACtG,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE;IAOxC,wEAAwE;WAC1D,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO;IAK9E,yDAAyD;WAC3C,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;IAOhG,yDAAyD;WAC3C,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,CAAC;IAMtH,qEAAqE;WACvD,6BAA6B,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,CAAC;IAK7H,kEAAkE;IAC3D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM7C,kCAAkC;WACpB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1F,2GAA2G;WAC7F,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQpI,iGAAiG;WACnF,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAUnJ,wHAAwH;WAC1G,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAS5F,gDAAgD;WAClC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAS9E,wEAAwE;IACjE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAE,SAAS;IAiB9E,wEAAwE;IACjE,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,SAAS;IAS/F;OACG;IACI,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IASjF;OACG;IACI,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAU7F;OACG;IACI,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAelG,4DAA4D;IACrD,6BAA6B,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IASlH,qHAAqH;IACrH,IAAW,MAAM,IAAI,OAAO,CAI3B;IAED,mHAAmH;WACrG,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAMlD,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAIlC;IAED,oEAAoE;IACpE,IAAW,MAAM,IAAI,OAAO,CAAgD;IAC5E,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAElD,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,uDAAuD;IAChD,OAAO,IAAI,MAAM;IAExB,8DAA8D;IACvD,SAAS,IAAI,MAAM;IAC1B,+IAA+I;IACxI,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAE5C,gJAAgJ;IACzI,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE3E,+GAA+G;IACxG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAI1G;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAKtH;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAGvE;;OAEG;IACI,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;IAM3D;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAS1E;;;OAGG;IACI,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO;IAW1D;;;OAGG;IACI,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAwB7C;;;;;;;;;OASG;WACW,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAaxD;;;;;;OAMG;IACI,WAAW,CAAC,SAAS,GAAE,MAAY,EAAE,YAAY,GAAE,OAAc,EAAE,UAAU,GAAE,OAAc,GAAG,OAAO,EAAE,GAAG,SAAS;IAiB5H,kFAAkF;IAC3E,MAAM,IAAI,MAAM;IAMvB,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,IAAI,OAAO,CAA2D;IAE9F,0DAA0D;IACnD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAS5D,+EAA+E;IACxE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAMhD,2CAA2C;IACpC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAE7C,mEAAmE;IAC5D,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAO/C,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAS7C,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAS/C,yDAAyD;IAClD,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMjD,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAW7C,gHAAgH;IACzG,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAS9C,2EAA2E;IACpE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAWvD,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,iEAAiE;IAC1D,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,0CAA0C;IACnC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAQvD,wFAAwF;IACjF,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAQ/D,wDAAwD;IACjD,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIzE,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAO9C,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAW3D,kCAAkC;IAC3B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAYvD;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IAgBlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzC,yDAAyD;IAClD,wBAAwB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAQ9D;;;OAGG;IACI,2BAA2B,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAYjE;;OAEG;IACI,gBAAgB,CAAC,GAAG,GAAE,MAAa;CAiB3C;AACD;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,oEAAoE;IAC7D,GAAG,EAAE,MAAM,CAAC;IACnB,qEAAqE;IAC9D,IAAI,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAC3C,OAAO;IAKd,OAAO,CAAC,SAAS;IAOjB,OAAO;IAOP,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO;IAIvD,wCAAwC;IACjC,OAAO,CAAC,KAAK,EAAE,OAAO;IAC7B;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAa5C,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAMjE;;;;OAIG;IACI,MAAM,IAAI,YAAY;IAE7B;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAMjC;;OAEG;WACW,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IAMhE;;OAEG;WACW,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM1D;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAShE;;;OAGG;IACI,IAAI,CAAC,CAAC,EAAE,MAAM;IAErB,gCAAgC;WAClB,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAMlE;;;;OAIG;IACI,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAO5C,IAAW,SAAS,IAAI,OAAO,CAEhC;IACC;;;OAGG;WACW,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQhF;;;OAGG;WACW,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAW/F;;;OAGG;WACW,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAO5F,2CAA2C;IACpC,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE;IAMlD;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAM9F,wFAAwF;IACxF,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,wDAAwD;IACjD,MAAM,IAAI,MAAM;IAEvB,+GAA+G;IACxG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIhD,8DAA8D;IACvD,MAAM,IAAI,MAAM;IAMvB,kDAAkD;IAClD,IAAW,kBAAkB,IAAI,OAAO,CAA0D;IAElG,4CAA4C;IACrC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAKpC,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAK7C,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAGjD;;;;;;OAMG;IACM,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAWrD,gHAAgH;IACzG,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAI9C,iHAAiH;IAC1G,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMrC,+CAA+C;IACxC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK/B,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAOxC,gFAAgF;IACzE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQpC,kFAAkF;IAC3E,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAQrC,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAY3D,kCAAkC;IAClC,yCAAyC;IAClC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAQvD;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IASlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;;;;;;;;;;;;;;;;OAiBG;IACI,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CA+B9F;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,SAAU,YAAW,YAAY;IAG5D,oEAAoE;IAC7D,GAAG,EAAE,OAAO,CAAC;IACpB,oEAAoE;IAC7D,IAAI,EAAE,OAAO,CAAC;IAErB,kDAAkD;IAC3C,OAAO;IAMd,8GAA8G;WAChG,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;IAC7D,uFAAuF;IAChF,cAAc,IAAI,YAAY;IACrC;;;;OAIG;WACW,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC;IAKvE;;;;OAIG;WACW,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC;gBAGrD,IAAI,SAA4B,EAAE,IAAI,SAA4B,EAAE,KAAK,SAA4B,EAAE,KAAK,SAA4B;IAK3J,6FAA6F;IACtF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI7C,uEAAuE;IAChE,OAAO,CAAC,KAAK,EAAE,YAAY;IAIlC,2EAA2E;WAC7D,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAI/E,+DAA+D;IACxD,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAiB5C,gEAAgE;IACzD,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC;IAC/B,wEAAwE;IACjE,MAAM,IAAI,YAAY;IAC7B,qEAAqE;WACvD,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC;IAOjE,OAAO,CAAC,SAAS;IAWjB,gEAAgE;IACzD,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAKjC,sCAAsC;WACxB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAK1D,8CAA8C;IACvC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKjC,gCAAgC;WAClB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAM9E,0GAA0G;WAC5F,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAO1G,0GAA0G;WAC5F,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAOpI,gGAAgG;WAClF,yBAAyB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAUzH,gDAAgD;WAClC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAQ9E,mHAAmH;IACnH,IAAW,MAAM,IAAI,OAAO,CAG3B;IAED,sIAAsI;WACxH,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAKlD,iDAAiD;IACjD,IAAW,aAAa,IAAI,OAAO,CAGlC;IACD,oEAAoE;IACpE,IAAW,MAAM,IAAI,OAAO,CAAgD;IAC5E,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,kCAAkC;IAClC,IAAW,IAAI,IAAI,MAAM,CAAuB;IAChD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAClD,mCAAmC;IACnC,IAAW,KAAK,IAAI,MAAM,CAAwB;IAElD,2CAA2C;IACpC,OAAO,IAAI,MAAM;IAExB,2CAA2C;IACpC,OAAO,IAAI,MAAM;IAExB,+IAA+I;IACxI,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAE5C,+IAA+I;IACxI,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAE3E,6GAA6G;IACtG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGvF;;;OAGG;IACI,SAAS,CAAC,MAAM,GAAE,OAAe,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,EAAE;IAgBnE,uEAAuE;IAChE,MAAM,IAAI,MAAM;IAMvB,kDAAkD;IAClD,IAAW,aAAa,IAAI,OAAO,CAA2D;IAC9F,kDAAkD;IAClD,IAAW,aAAa,IAAI,OAAO,CAA2D;IAE9F,wDAAwD;IACjD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAOhD,2CAA2C;IACpC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAE3C,+CAA+C;IACxC,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAOlD,yDAAyD;IAClD,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAOpD,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAU5C,sGAAsG;IAC/F,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAQnD,wDAAwD;IACjD,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3C,wDAAwD;IACjD,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK5E,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAEtC,4CAA4C;IACrC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAO7C,yCAAyC;IAClC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAWhE,kCAAkC;IAC3B,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAa5D;;;OAGG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM;IAYlD;;;;;;OAMG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;CAO3E"}