@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolyfaceBuilder.js","sourceRoot":"","sources":["../../../src/polyface/PolyfaceBuilder.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 Polyface\r\n */\r\n\r\nimport { ConstructCurveBetweenCurves } from \"../curve/ConstructCurveBetweenCurves\";\r\nimport { AnyCurve, AnyRegion } from \"../curve/CurveChain\";\r\nimport { CurveChain, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurveFactory } from \"../curve/CurveFactory\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { CylindricalRangeQuery } from \"../curve/Query/CylindricalRange\";\r\nimport { StrokeCountSection } from \"../curve/Query/StrokeCountChain\";\r\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\r\nimport { AxisOrder, Geometry } from \"../Geometry\";\r\nimport { BarycentricTriangle } from \"../geometry3d/BarycentricTriangle\";\r\nimport { BilinearPatch } from \"../geometry3d/BilinearPatch\";\r\nimport { FrameBuilder } from \"../geometry3d/FrameBuilder\";\r\nimport { NullGeometryHandler, UVSurface } from \"../geometry3d/GeometryHandler\";\r\nimport { GrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { GrowableXYArray } from \"../geometry3d/GrowableXYArray\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Plane3dByOriginAndVectors } from \"../geometry3d/Plane3dByOriginAndVectors\";\r\nimport { Point2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3dArrayCarrier } from \"../geometry3d/Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d, XYZ } from \"../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { UVSurfaceOps } from \"../geometry3d/UVSurfaceOps\";\r\nimport { Box } from \"../solid/Box\";\r\nimport { Cone } from \"../solid/Cone\";\r\nimport { LinearSweep } from \"../solid/LinearSweep\";\r\nimport { RotationalSweep } from \"../solid/RotationalSweep\";\r\nimport { RuledSweep } from \"../solid/RuledSweep\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { SweepContour } from \"../solid/SweepContour\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { HalfEdge, HalfEdgeGraph, HalfEdgeToBooleanFunction } from \"../topology/Graph\";\r\nimport { Triangulator } from \"../topology/Triangulation\";\r\nimport { BoxTopology } from \"./BoxTopology\";\r\nimport { GreedyTriangulationBetweenLineStrings } from \"./GreedyTriangulationBetweenLineStrings\";\r\nimport { IndexedPolyface, PolyfaceVisitor } from \"./Polyface\";\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention, @typescript-eslint/prefer-for-of */\r\n/**\r\n * A FacetSector\r\n * * initially holds coordinate data for a place where xyz and sectionDerivative are known\r\n * * normal is computed as a deferred step using an edge to adjacent place on ruled surface\r\n * * indices are set up even later.\r\n */\r\nclass FacetSector {\r\n public xyz: Point3d;\r\n public xyzIndex: number;\r\n public normal?: Vector3d;\r\n public normalIndex: number;\r\n public uv?: Point2d;\r\n public uvIndex: number;\r\n public sectionDerivative?: Vector3d;\r\n public constructor(needNormal: boolean = false, needUV: boolean = false, needSectionDerivative: boolean = false) {\r\n this.xyz = Point3d.create();\r\n this.normalIndex = -1;\r\n this.uvIndex = -1;\r\n\r\n this.xyzIndex = -1;\r\n if (needNormal) {\r\n this.normal = Vector3d.create();\r\n }\r\n if (needUV) {\r\n this.uv = Point2d.create();\r\n this.uvIndex = -1;\r\n }\r\n if (needSectionDerivative) {\r\n this.sectionDerivative = Vector3d.create();\r\n }\r\n }\r\n /** copy contents (not pointers) from source\r\n * * ASSUME all fields defined in this are defined int the source (undefined check only needed on this)\r\n */\r\n public copyContentsFrom(other: FacetSector) {\r\n this.xyz.setFromPoint3d(other.xyz);\r\n this.xyzIndex = other.xyzIndex;\r\n if (this.normal)\r\n this.normal.setFromVector3d(other.normal!);\r\n this.normalIndex = other.normalIndex;\r\n if (this.uv)\r\n this.uv.setFrom(other.uv);\r\n this.uvIndex = other.uvIndex;\r\n if (this.sectionDerivative)\r\n this.sectionDerivative.setFrom(other.sectionDerivative);\r\n }\r\n /** access xyz, derivative from given arrays.\r\n * * ASSUME corresponding defined conditions\r\n * * xyz and derivative are set.\r\n * * index fields for updated data are cleared to -1.\r\n */\r\n public loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(i: number, packedXYZ: GrowableXYZArray, packedDerivatives?: GrowableXYZArray, fractions?: GrowableFloat64Array, v?: number) {\r\n packedXYZ.getPoint3dAtCheckedPointIndex(i, this.xyz);\r\n if (fractions && v !== undefined)\r\n this.uv = Point2d.create(fractions.atUncheckedIndex(i), v);\r\n this.xyzIndex = -1;\r\n this.normalIndex = -1;\r\n this.uvIndex = -1;\r\n if (this.sectionDerivative !== undefined && packedDerivatives !== undefined)\r\n packedDerivatives.getVector3dAtCheckedVectorIndex(i, this.sectionDerivative);\r\n }\r\n private static suppressSmallUnitVectorComponents(uvw: XYZ) {\r\n const tol = 1.0e-15;\r\n if (Math.abs(uvw.x) < tol) uvw.x = 0.0;\r\n if (Math.abs(uvw.y) < tol) uvw.y = 0.0;\r\n if (Math.abs(uvw.z) < tol) uvw.z = 0.0;\r\n }\r\n private static _edgeVector: Vector3d = Vector3d.create();\r\n /**\r\n * given two sectors with xyz and sectionDerivative (u derivative)\r\n * use the edge from A to B as v direction in-surface derivative.\r\n * compute cross products (and normalize)\r\n * @param sectorA \"lower\" sector\r\n * @param sectorB \"upper\" sector\r\n *\r\n */\r\n public static computeNormalsAlongRuleLine(sectorA: FacetSector, sectorB: FacetSector) {\r\n // We expect that if sectionDerivative is defined so is normal.\r\n // (If not, the cross product calls will generate normals that are never used .. not good, garbage collector will clean up.)\r\n if (sectorA.sectionDerivative && sectorB.sectionDerivative) {\r\n const vectorAB = FacetSector._edgeVector;\r\n Vector3d.createStartEnd(sectorA.xyz, sectorB.xyz, vectorAB);\r\n sectorA.sectionDerivative.crossProduct(vectorAB, sectorA.normal);\r\n sectorB.sectionDerivative.crossProduct(vectorAB, sectorB.normal);\r\n sectorA.normal!.normalizeInPlace();\r\n sectorB.normal!.normalizeInPlace();\r\n FacetSector.suppressSmallUnitVectorComponents(sectorA.normal!);\r\n FacetSector.suppressSmallUnitVectorComponents(sectorB.normal!);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * * Simple construction for strongly typed GeometryQuery objects:\r\n *\r\n * * Create a builder with `builder = PolyfaceBuilder.create()`\r\n * * Add GeometryQuery objects:\r\n *\r\n * * `builder.addGeometryQuery(g: GeometryQuery)`\r\n * * `builder.addCone(cone: Cone)`\r\n * * `builder.addTorusPipe(surface: TorusPipe)`\r\n * * `builder.addLinearSweepLineStrings(surface: LinearSweep)`\r\n * * `builder.addRotationalSweep(surface: RotationalSweep)`\r\n * * `builder.addLinearSweep(surface: LinearSweep)`\r\n * * `builder.addRuledSweep(surface: RuledSweep)`\r\n * * `builder.addSphere(sphere: Sphere)`\r\n * * `builder.addBox(box: Box)`\r\n * * `builder.addIndexedPolyface(polyface)`\r\n * * Extract with `builder.claimPolyface (true)`\r\n *\r\n * * Simple construction for ephemeral constructive data:\r\n *\r\n * * Create a builder with `builder = PolyfaceBuilder.create()`\r\n * * Add from fragmentary data:\r\n * * `builder.addBetweenLineStrings (linestringA, linestringB, addClosure)`\r\n * * `builder.addBetweenTransformedLineStrings (curves, transformA, transformB, addClosure)`\r\n * * `builder.addBetweenStroked (curveA, curveB)`\r\n * * `builder.addLinearSweepLineStrings (contour, vector)`\r\n * * `builder.addPolygon (points, numPointsToUse)`\r\n * * `builder.addTransformedUnitBox (transform)`\r\n * * `builder.addTriangleFan (conePoint, linestring, toggleOrientation)`\r\n * * `builder.addTrianglesInUncheckedPolygon (linestring, toggle)`\r\n * * `builder.addUVGridBody(surface,numU, numV, createFanInCaps)`\r\n * * `builder.addGraph(Graph, acceptFaceFunction)`\r\n * * Extract with `builder.claimPolyface(true)`\r\n *\r\n * * Low-level detail construction -- direct use of indices\r\n * * Create a builder with `builder = PolyfaceBuilder.create()`\r\n * * Add GeometryQuery objects\r\n * * `builder.findOrAddPoint(point)`\r\n * * `builder.findOrAddPointInLineString (linestring, index)`\r\n * * `builder.findOrAddTransformedPointInLineString(linestring, index, transform)`\r\n * * `builder.findOrAddPointXYZ(x,y,z)`\r\n * * `builder.addTriangle (point0, point1, point2)`\r\n * * `builder.addQuad (point0, point1, point2, point3)`\r\n * * `builder.addOneBasedPointIndex (index)`\r\n * @public\r\n */\r\nexport class PolyfaceBuilder extends NullGeometryHandler {\r\n private _polyface: IndexedPolyface;\r\n private _options: StrokeOptions;\r\n /** return (pointer to) the `StrokeOptions` in use by the builder. */\r\n public get options(): StrokeOptions { return this._options; }\r\n // State data that affects the current construction.\r\n private _reversed: boolean;\r\n /** Ask if this builder is reversing vertex order as loops are received. */\r\n public get reversedFlag(): boolean { return this._reversed; }\r\n /** extract the polyface. */\r\n public claimPolyface(compress: boolean = true): IndexedPolyface {\r\n if (compress)\r\n this._polyface.data.compress();\r\n return this._polyface;\r\n }\r\n /** Toggle (reverse) the flag controlling orientation flips for newly added facets. */\r\n public toggleReversedFacetFlag() { this._reversed = !this._reversed; }\r\n\r\n private constructor(options?: StrokeOptions) {\r\n super();\r\n this._options = options ? options : StrokeOptions.createForFacets();\r\n this._polyface = IndexedPolyface.create(this._options.needNormals,\r\n this._options.needParams, this._options.needColors, this._options.needTwoSided);\r\n this._reversed = false;\r\n }\r\n /**\r\n * Create a builder with given StrokeOptions\r\n * @param options StrokeOptions (captured)\r\n */\r\n public static create(options?: StrokeOptions): PolyfaceBuilder {\r\n return new PolyfaceBuilder(options);\r\n }\r\n /** add facets for a transformed unit box. */\r\n public addTransformedUnitBox(transform: Transform) {\r\n this.addTransformedRangeMesh(transform, Range3d.createXYZXYZ(0, 0, 0, 1, 1, 1));\r\n }\r\n\r\n /** add facets for a transformed unit box.\r\n * * for each face in the order of BoxTopology.cornerIndexCCW, faceSelector[i]===false skips that facet.\r\n */\r\n public addTransformedRangeMesh(transform: Transform, range: Range3d, faceSelector?: boolean[]) {\r\n const pointIndex0 = this._polyface.data.pointCount;\r\n // these will have sequential indices starting at pointIndex0 . . .\r\n const points = range.corners();\r\n for (const p of points)\r\n this._polyface.addPoint(transform.multiplyPoint3d(p));\r\n let faceCounter = 0;\r\n for (const facet of BoxTopology.cornerIndexCCW) {\r\n if (!faceSelector || (faceCounter < faceSelector.length && faceSelector[faceCounter])) {\r\n for (const pointIndex of facet)\r\n this._polyface.addPointIndex(pointIndex0 + pointIndex);\r\n this._polyface.terminateFacet();\r\n }\r\n faceCounter++;\r\n }\r\n }\r\n /** Add triangles from points[0] to each far edge.\r\n * @param ls linestring with point coordinates\r\n * @param toggle if true, wrap the triangle creation in toggleReversedFacetFlag.\r\n */\r\n public addTriangleFan(conePoint: Point3d, ls: LineString3d, toggle: boolean): void {\r\n const n = ls.numPoints();\r\n if (n > 2) {\r\n if (toggle)\r\n this.toggleReversedFacetFlag();\r\n const index0 = this.findOrAddPoint(conePoint);\r\n let index1 = this.findOrAddPointInLineString(ls, 0)!;\r\n let index2 = 0;\r\n for (let i = 1; i < n; i++) {\r\n index2 = this.findOrAddPointInLineString(ls, i)!;\r\n this.addIndexedTrianglePointIndexes(index0, index1, index2);\r\n index1 = index2;\r\n }\r\n if (toggle)\r\n this.toggleReversedFacetFlag();\r\n }\r\n }\r\n\r\n /** Add triangles from points[0] to each far edge\r\n * * Assume the polygon is convex.\r\n * * i.e. simple triangulation from point0\r\n * * i.e. simple cross products give a good normal.\r\n * @param ls linestring with point coordinates\r\n * @param reverse if true, wrap the triangle creation in toggleReversedFacetFlag.\r\n */\r\n public addTrianglesInUncheckedConvexPolygon(ls: LineString3d, toggle: boolean): void {\r\n const n = ls.numPoints();\r\n if (n > 2) {\r\n if (toggle)\r\n this.toggleReversedFacetFlag();\r\n let normal;\r\n let normalIndex;\r\n if (this._options.needNormals) {\r\n normal = ls.quickUnitNormal(PolyfaceBuilder._workVectorFindOrAdd)!;\r\n if (toggle)\r\n normal.scaleInPlace(-1.0);\r\n normalIndex = this._polyface.addNormal(normal);\r\n }\r\n const needParams = this._options.needParams;\r\n\r\n const packedUV = needParams ? ls.packedUVParams : undefined;\r\n let paramIndex0 = -1;\r\n let paramIndex1 = -1;\r\n let paramIndex2 = -1;\r\n if (packedUV) {\r\n paramIndex0 = this.findOrAddParamInGrowableXYArray(packedUV, 0)!;\r\n paramIndex1 = this.findOrAddParamInGrowableXYArray(packedUV, 1)!;\r\n }\r\n const pointIndex0 = this.findOrAddPointInLineString(ls, 0)!;\r\n let pointIndex1 = this.findOrAddPointInLineString(ls, 1)!;\r\n let pointIndex2 = 0;\r\n let numEdge = n;\r\n if (ls.isPhysicallyClosed)\r\n numEdge--;\r\n for (let i = 2; i < numEdge; i++, pointIndex1 = pointIndex2, paramIndex1 = paramIndex2) {\r\n pointIndex2 = this.findOrAddPointInLineString(ls, i)!;\r\n this.addIndexedTrianglePointIndexes(pointIndex0, pointIndex1, pointIndex2, false);\r\n if (normalIndex !== undefined)\r\n this.addIndexedTriangleNormalIndexes(normalIndex, normalIndex, normalIndex);\r\n if (packedUV) {\r\n paramIndex2 = this.findOrAddParamInGrowableXYArray(packedUV, i)!;\r\n this.addIndexedTriangleParamIndexes(paramIndex0, paramIndex1, paramIndex2);\r\n }\r\n this._polyface.terminateFacet();\r\n }\r\n if (toggle)\r\n this.toggleReversedFacetFlag();\r\n }\r\n }\r\n\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.\r\n */\r\n public findOrAddPoint(xyz: Point3d): number {\r\n return this._polyface.addPoint(xyz);\r\n }\r\n\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new param or (if known) return index of a prior param with the same coordinates.\r\n */\r\n public findOrAddParamXY(x: number, y: number): number {\r\n return this._polyface.addParamUV(x, y);\r\n }\r\n private static _workPointFindOrAddA = Point3d.create();\r\n private static _workVectorFindOrAdd = Vector3d.create();\r\n private static _workUVFindOrAdd = Point2d.create();\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the point in the linestring.\r\n */\r\n public findOrAddPointInLineString(ls: LineString3d, index: number, transform?: Transform, priorIndex?: number): number | undefined {\r\n const q = ls.pointAt(index, PolyfaceBuilder._workPointFindOrAddA);\r\n if (q) {\r\n if (transform)\r\n transform.multiplyPoint3d(q, q);\r\n return this._polyface.addPoint(q, priorIndex);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the point in the linestring.\r\n */\r\n public findOrAddPointInGrowableXYZArray(xyz: GrowableXYZArray, index: number, transform?: Transform, priorIndex?: number): number | undefined {\r\n const q = xyz.getPoint3dAtCheckedPointIndex(index, PolyfaceBuilder._workPointFindOrAddA);\r\n if (q) {\r\n if (transform)\r\n transform.multiplyPoint3d(q, q);\r\n return this._polyface.addPoint(q, priorIndex);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the point in the linestring.\r\n */\r\n public findOrAddNormalInGrowableXYZArray(xyz: GrowableXYZArray, index: number, transform?: Transform, priorIndex?: number): number | undefined {\r\n const q = xyz.getVector3dAtCheckedVectorIndex(index, PolyfaceBuilder._workVectorFindOrAdd);\r\n if (q) {\r\n if (transform)\r\n transform.multiplyVector(q, q);\r\n return this._polyface.addNormal(q, priorIndex);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Announce param coordinates. The implementation is free to either create a new param or (if known) return index of a prior point with the same coordinates.\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the param in the linestring.\r\n */\r\n public findOrAddParamInGrowableXYArray(data: GrowableXYArray, index: number): number | undefined {\r\n if (!data)\r\n return undefined;\r\n const q = data.getPoint2dAtUncheckedPointIndex(index, PolyfaceBuilder._workUVFindOrAdd);\r\n if (q) {\r\n return this._polyface.addParam(q);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Announce param coordinates, taking u from ls.fractions and v from parameter. The implementation is free to either create a new param or (if known) return index of a prior point with the same coordinates.\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the point in the linestring.\r\n */\r\n public findOrAddParamInLineString(ls: LineString3d, index: number, v: number, priorIndexA?: number, priorIndexB?: number): number | undefined {\r\n const u = (ls.fractions && index < ls.fractions.length) ? ls.fractions.atUncheckedIndex(index) : index / ls.points.length;\r\n return this._polyface.addParamUV(u, v, priorIndexA, priorIndexB);\r\n }\r\n\r\n /**\r\n * Announce normal coordinates found at index in the surfaceNormal array stored on the linestring\r\n * @returns Returns the point index in the Polyface.\r\n * @param index Index of the point in the linestring.\r\n * @param priorIndex possible prior normal index to reuse\r\n */\r\n public findOrAddNormalInLineString(ls: LineString3d, index: number, transform?: Transform, priorIndexA?: number, priorIndexB?: number): number | undefined {\r\n const linestringNormals = ls.packedSurfaceNormals;\r\n if (linestringNormals) {\r\n const q = linestringNormals.getVector3dAtCheckedVectorIndex(index, PolyfaceBuilder._workVectorFindOrAdd);\r\n if (q) {\r\n if (transform)\r\n transform.multiplyVector(q, q);\r\n return this._polyface.addNormal(q, priorIndexA, priorIndexB);\r\n }\r\n }\r\n return undefined;\r\n\r\n }\r\n\r\n /**\r\n * Announce point coordinates. The implementation is free to either create a new point or (if known) return index of a prior point with the same coordinates.\r\n */\r\n public findOrAddPointXYZ(x: number, y: number, z: number): number {\r\n return this._polyface.addPointXYZ(x, y, z);\r\n }\r\n\r\n /** Returns a transform who can be applied to points on a triangular facet in order to obtain UV parameters. */\r\n private getUVTransformForTriangleFacet(pointA: Point3d, pointB: Point3d, pointC: Point3d): Transform | undefined {\r\n const vectorAB = pointA.vectorTo(pointB);\r\n const vectorAC = pointA.vectorTo(pointC);\r\n const unitAxes = Matrix3d.createRigidFromColumns(vectorAB, vectorAC, AxisOrder.XYZ);\r\n const localToWorld = Transform.createOriginAndMatrix(pointA, unitAxes);\r\n return localToWorld.inverse();\r\n }\r\n\r\n /** Returns the normal to a triangular facet. */\r\n private getNormalForTriangularFacet(pointA: Point3d, pointB: Point3d, pointC: Point3d): Vector3d {\r\n const vectorAB = pointA.vectorTo(pointB);\r\n const vectorAC = pointA.vectorTo(pointC);\r\n let normal = vectorAB.crossProduct(vectorAC).normalize();\r\n normal = normal ? normal : Vector3d.create();\r\n return normal;\r\n }\r\n\r\n // ###: Consider case where normals will be reversed and point through the other end of the facet\r\n /**\r\n * Add a quad to the polyface given its points in order around the edges.\r\n * Optionally provide params and the plane normal, otherwise they will be calculated without reference data.\r\n * Optionally mark this quad as the last piece of a face in this polyface.\r\n */\r\n public addQuadFacet(points: Point3d[] | GrowableXYZArray, params?: Point2d[], normals?: Vector3d[]) {\r\n if (points instanceof GrowableXYZArray)\r\n points = points.getPoint3dArray();\r\n // If params and/or normals are needed, calculate them first\r\n const needParams = this.options.needParams;\r\n const needNormals = this.options.needNormals;\r\n let param0: Point2d, param1: Point2d, param2: Point2d, param3: Point2d;\r\n let normal0: Vector3d, normal1: Vector3d, normal2: Vector3d, normal3: Vector3d;\r\n if (needParams) {\r\n if (params !== undefined && params.length > 3) {\r\n param0 = params[0];\r\n param1 = params[1];\r\n param2 = params[2];\r\n param3 = params[3];\r\n } else {\r\n const paramTransform = this.getUVTransformForTriangleFacet(points[0], points[1], points[2]);\r\n if (paramTransform === undefined) {\r\n param0 = param1 = param2 = param3 = Point2d.createZero();\r\n } else {\r\n param0 = Point2d.createFrom(paramTransform.multiplyPoint3d(points[0]));\r\n param1 = Point2d.createFrom(paramTransform.multiplyPoint3d(points[1]));\r\n param2 = Point2d.createFrom(paramTransform.multiplyPoint3d(points[2]));\r\n param3 = Point2d.createFrom(paramTransform.multiplyPoint3d(points[3]));\r\n }\r\n }\r\n }\r\n if (needNormals) {\r\n if (normals !== undefined && normals.length > 3) {\r\n normal0 = normals[0];\r\n normal1 = normals[1];\r\n normal2 = normals[2];\r\n normal3 = normals[3];\r\n } else {\r\n normal0 = this.getNormalForTriangularFacet(points[0], points[1], points[2]);\r\n normal1 = this.getNormalForTriangularFacet(points[0], points[1], points[2]);\r\n normal2 = this.getNormalForTriangularFacet(points[0], points[1], points[2]);\r\n normal3 = this.getNormalForTriangularFacet(points[0], points[1], points[2]);\r\n }\r\n }\r\n\r\n if (this._options.shouldTriangulate) {\r\n // Add as two triangles, with a diagonal along the shortest distance\r\n const vectorAC = points[0].vectorTo(points[2]);\r\n const vectorBD = points[1].vectorTo(points[3]);\r\n\r\n // Note: We pass along any values for normals or params that we calculated\r\n if (vectorAC.magnitude() >= vectorBD.magnitude()) {\r\n this.addTriangleFacet([points[0], points[1], points[2]], needParams ? [param0!, param1!, param2!] : undefined, needNormals ? [normal0!, normal1!, normal2!] : undefined);\r\n this.addTriangleFacet([points[0], points[2], points[3]], needParams ? [param0!, param2!, param3!] : undefined, needNormals ? [normal0!, normal2!, normal3!] : undefined);\r\n } else {\r\n this.addTriangleFacet([points[0], points[1], points[3]], needParams ? [param0!, param1!, param3!] : undefined, needNormals ? [normal0!, normal1!, normal3!] : undefined);\r\n this.addTriangleFacet([points[1], points[2], points[3]], needParams ? [param1!, param2!, param3!] : undefined, needNormals ? [normal1!, normal2!, normal3!] : undefined);\r\n }\r\n return;\r\n }\r\n\r\n let idx0, idx1, idx2, idx3;\r\n\r\n // Add params if needed\r\n if (needParams) {\r\n idx0 = this._polyface.addParam(param0!);\r\n idx1 = this._polyface.addParam(param1!);\r\n idx2 = this._polyface.addParam(param2!);\r\n idx3 = this._polyface.addParam(param3!);\r\n this.addIndexedQuadParamIndexes(idx0, idx1, idx3, idx2);\r\n }\r\n\r\n // Add normals if needed\r\n if (needNormals) {\r\n idx0 = this._polyface.addNormal(normal0!);\r\n idx1 = this._polyface.addNormal(normal1!);\r\n idx2 = this._polyface.addNormal(normal2!);\r\n idx3 = this._polyface.addNormal(normal3!);\r\n this.addIndexedQuadNormalIndexes(idx0, idx1, idx3, idx2);\r\n }\r\n\r\n // Add point and point indexes last (terminates the facet)\r\n idx0 = this.findOrAddPoint(points[0]);\r\n idx1 = this.findOrAddPoint(points[1]);\r\n idx2 = this.findOrAddPoint(points[2]);\r\n idx3 = this.findOrAddPoint(points[3]);\r\n this.addIndexedQuadPointIndexes(idx0, idx1, idx3, idx2);\r\n }\r\n\r\n /** Announce a single quad facet's point indexes.\r\n *\r\n * * The actual quad may be reversed or triangulated based on builder setup.\r\n * * indexA0 and indexA1 are in the forward order at the \"A\" end of the quad\r\n * * indexB0 and indexB1 are in the forward order at the \"B\" end of the quad.\r\n */\r\n private addIndexedQuadPointIndexes(indexA0: number, indexA1: number, indexB0: number, indexB1: number, terminate: boolean = true) {\r\n if (this._reversed) {\r\n this._polyface.addPointIndex(indexA0);\r\n this._polyface.addPointIndex(indexB0);\r\n this._polyface.addPointIndex(indexB1);\r\n this._polyface.addPointIndex(indexA1);\r\n } else {\r\n this._polyface.addPointIndex(indexA0);\r\n this._polyface.addPointIndex(indexA1);\r\n this._polyface.addPointIndex(indexB1);\r\n this._polyface.addPointIndex(indexB0);\r\n }\r\n if (terminate)\r\n this._polyface.terminateFacet();\r\n }\r\n\r\n /** For a single quad facet, add the indexes of the corresponding param points. */\r\n private addIndexedQuadParamIndexes(indexA0: number, indexA1: number, indexB0: number, indexB1: number) {\r\n if (this._reversed) {\r\n this._polyface.addParamIndex(indexA0);\r\n this._polyface.addParamIndex(indexB0);\r\n this._polyface.addParamIndex(indexB1);\r\n this._polyface.addParamIndex(indexA1);\r\n } else {\r\n this._polyface.addParamIndex(indexA0);\r\n this._polyface.addParamIndex(indexA1);\r\n this._polyface.addParamIndex(indexB1);\r\n this._polyface.addParamIndex(indexB0);\r\n }\r\n }\r\n\r\n /** For a single quad facet, add the indexes of the corresponding normal vectors. */\r\n private addIndexedQuadNormalIndexes(indexA0: number, indexA1: number, indexB0: number, indexB1: number) {\r\n if (this._reversed) {\r\n this._polyface.addNormalIndex(indexA0);\r\n this._polyface.addNormalIndex(indexB0);\r\n this._polyface.addNormalIndex(indexB1);\r\n this._polyface.addNormalIndex(indexA1);\r\n } else {\r\n this._polyface.addNormalIndex(indexA0);\r\n this._polyface.addNormalIndex(indexA1);\r\n this._polyface.addNormalIndex(indexB1);\r\n this._polyface.addNormalIndex(indexB0);\r\n }\r\n }\r\n\r\n // ### TODO: Consider case where normals will be reversed and point through the other end of the facet\r\n /**\r\n * Add a triangle to the polyface given its points in order around the edges.\r\n * * Optionally provide params and triangle normals, otherwise they will be calculated without reference data.\r\n */\r\n public addTriangleFacet(points: Point3d[] | GrowableXYZArray, params?: Point2d[], normals?: Vector3d[]) {\r\n if (points.length < 3)\r\n return;\r\n let idx0: number;\r\n let idx1: number;\r\n let idx2: number;\r\n let point0, point1, point2;\r\n if (points instanceof GrowableXYZArray) {\r\n point0 = points.getPoint3dAtCheckedPointIndex(0)!;\r\n point1 = points.getPoint3dAtCheckedPointIndex(1)!;\r\n point2 = points.getPoint3dAtCheckedPointIndex(2)!;\r\n } else {\r\n point0 = points[0];\r\n point1 = points[1];\r\n point2 = points[2];\r\n }\r\n\r\n // Add params if needed\r\n if (this._options.needParams) {\r\n if (params && params.length >= 3) { // Params were given\r\n idx0 = this._polyface.addParam(params[0]);\r\n idx1 = this._polyface.addParam(params[1]);\r\n idx2 = this._polyface.addParam(params[2]);\r\n } else { // Compute params\r\n const paramTransform = this.getUVTransformForTriangleFacet(point0, point1, point2);\r\n idx0 = this._polyface.addParam(Point2d.createFrom(paramTransform ? paramTransform.multiplyPoint3d(point0) : undefined));\r\n idx1 = this._polyface.addParam(Point2d.createFrom(paramTransform ? paramTransform.multiplyPoint3d(point1) : undefined));\r\n idx2 = this._polyface.addParam(Point2d.createFrom(paramTransform ? paramTransform.multiplyPoint3d(point1) : undefined));\r\n }\r\n this.addIndexedTriangleParamIndexes(idx0, idx1, idx2);\r\n }\r\n\r\n // Add normals if needed\r\n if (this._options.needNormals) {\r\n if (normals !== undefined && normals.length > 2) { // Normals were given\r\n idx0 = this._polyface.addNormal(normals[0]);\r\n idx1 = this._polyface.addNormal(normals[1]);\r\n idx2 = this._polyface.addNormal(normals[2]);\r\n } else { // Compute normals\r\n const normal = this.getNormalForTriangularFacet(point0, point1, point2);\r\n idx0 = this._polyface.addNormal(normal);\r\n idx1 = this._polyface.addNormal(normal);\r\n idx2 = this._polyface.addNormal(normal);\r\n }\r\n this.addIndexedTriangleNormalIndexes(idx0, idx1, idx2);\r\n }\r\n\r\n // Add point and point indexes last (terminates the facet)\r\n idx0 = this.findOrAddPoint(point0);\r\n idx1 = this.findOrAddPoint(point1);\r\n idx2 = this.findOrAddPoint(point2);\r\n this.addIndexedTrianglePointIndexes(idx0, idx1, idx2);\r\n }\r\n\r\n /** Announce a single triangle facet's point indexes.\r\n *\r\n * * The actual quad may be reversed or triangulated based on builder setup.\r\n */\r\n private addIndexedTrianglePointIndexes(indexA: number, indexB: number, indexC: number, terminateFacet: boolean = true) {\r\n if (!this._reversed) {\r\n this._polyface.addPointIndex(indexA);\r\n this._polyface.addPointIndex(indexB);\r\n this._polyface.addPointIndex(indexC);\r\n } else {\r\n this._polyface.addPointIndex(indexA);\r\n this._polyface.addPointIndex(indexC);\r\n this._polyface.addPointIndex(indexB);\r\n }\r\n if (terminateFacet)\r\n this._polyface.terminateFacet();\r\n }\r\n\r\n /** For a single triangle facet, add the indexes of the corresponding params. */\r\n private addIndexedTriangleParamIndexes(indexA: number, indexB: number, indexC: number) {\r\n if (!this._reversed) {\r\n this._polyface.addParamIndex(indexA);\r\n this._polyface.addParamIndex(indexB);\r\n this._polyface.addParamIndex(indexC);\r\n } else {\r\n this._polyface.addParamIndex(indexA);\r\n this._polyface.addParamIndex(indexC);\r\n this._polyface.addParamIndex(indexB);\r\n }\r\n }\r\n\r\n /** For a single triangle facet, add the indexes of the corresponding params. */\r\n private addIndexedTriangleNormalIndexes(indexA: number, indexB: number, indexC: number) {\r\n if (!this._reversed) {\r\n this._polyface.addNormalIndex(indexA);\r\n this._polyface.addNormalIndex(indexB);\r\n this._polyface.addNormalIndex(indexC);\r\n } else {\r\n this._polyface.addNormalIndex(indexA);\r\n this._polyface.addNormalIndex(indexC);\r\n this._polyface.addNormalIndex(indexB);\r\n }\r\n }\r\n /** Find or add xyzIndex and normalIndex for coordinates in the sector. */\r\n private setSectorIndices(sector: FacetSector) {\r\n sector.xyzIndex = this.findOrAddPoint(sector.xyz);\r\n if (sector.normal)\r\n sector.normalIndex = this._polyface.addNormal(sector.normal);\r\n if (sector.uv)\r\n sector.uvIndex = this._polyface.addParam(sector.uv);\r\n }\r\n private addSectorQuadA01B01(sectorA0: FacetSector, sectorA1: FacetSector, sectorB0: FacetSector, sectorB1: FacetSector) {\r\n if (sectorA0.xyz.isAlmostEqual(sectorA1.xyz) && sectorB0.xyz.isAlmostEqual(sectorB1.xyz)) {\r\n // ignore null quad !!\r\n } else {\r\n if (this._options.needNormals)\r\n this.addIndexedQuadNormalIndexes(sectorA0.normalIndex, sectorA1.normalIndex, sectorB0.normalIndex, sectorB1.normalIndex);\r\n if (this._options.needParams)\r\n this.addIndexedQuadParamIndexes(sectorA0.uvIndex, sectorA1.uvIndex, sectorB0.uvIndex, sectorB1.uvIndex);\r\n this.addIndexedQuadPointIndexes(sectorA0.xyzIndex, sectorA1.xyzIndex, sectorB0.xyzIndex, sectorB1.xyzIndex);\r\n this._polyface.terminateFacet();\r\n\r\n }\r\n\r\n }\r\n /** Add facets between lineStrings with matched point counts.\r\n * * surface normals are computed from (a) curve tangents in the linestrings and (b)rule line between linestrings.\r\n * * Facets are announced to addIndexedQuad.\r\n * * addIndexedQuad is free to apply reversal or triangulation options.\r\n */\r\n public addBetweenLineStringsWithRuleEdgeNormals(lineStringA: LineString3d, vA: number, lineStringB: LineString3d, vB: number, addClosure: boolean = false) {\r\n const pointA = lineStringA.packedPoints;\r\n const pointB = lineStringB.packedPoints;\r\n const derivativeA = lineStringA.packedDerivatives;\r\n const derivativeB = lineStringB.packedDerivatives;\r\n const fractionA = lineStringA.fractions;\r\n const fractionB = lineStringB.fractions;\r\n const needNormals = this._options.needNormals;\r\n const needParams = this._options.needParams;\r\n const sectorA0 = new FacetSector(needNormals, needParams, needNormals);\r\n const sectorA1 = new FacetSector(needNormals, needParams, needNormals);\r\n const sectorB0 = new FacetSector(needNormals, needParams, needNormals);\r\n const sectorB1 = new FacetSector(needNormals, needParams, needNormals);\r\n const sectorA00 = new FacetSector(needNormals, needParams, needNormals);\r\n const sectorB00 = new FacetSector(needNormals, needParams, needNormals);\r\n\r\n const numPoints = pointA.length;\r\n if (numPoints < 2 || numPoints !== pointB.length) return;\r\n sectorA0.loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(0, pointA, derivativeA, fractionA, vA);\r\n sectorB0.loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(0, pointB, derivativeB, fractionB, vB);\r\n if (needNormals)\r\n FacetSector.computeNormalsAlongRuleLine(sectorA0, sectorB0);\r\n this.setSectorIndices(sectorA0);\r\n this.setSectorIndices(sectorB0);\r\n\r\n sectorA00.copyContentsFrom(sectorA0);\r\n sectorB00.copyContentsFrom(sectorB0);\r\n for (let i = 1; i < numPoints; i++) {\r\n sectorA1.loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(i, pointA, derivativeA, fractionA, vA);\r\n sectorB1.loadIndexedPointAndDerivativeCoordinatesFromPackedArrays(i, pointB, derivativeA, fractionB, vB);\r\n FacetSector.computeNormalsAlongRuleLine(sectorA1, sectorB1);\r\n this.setSectorIndices(sectorA1);\r\n this.setSectorIndices(sectorB1);\r\n // create the facet ...\r\n this.addSectorQuadA01B01(sectorA0, sectorA1, sectorB0, sectorB1);\r\n sectorA0.copyContentsFrom(sectorA1);\r\n sectorB0.copyContentsFrom(sectorB1);\r\n }\r\n if (addClosure)\r\n this.addSectorQuadA01B01(sectorA0, sectorA00, sectorB0, sectorB00);\r\n }\r\n\r\n /** Add facets between lineStrings with matched point counts.\r\n * * point indices pre-stored\r\n * * normal indices pre-stored\r\n * * uv indices pre-stored\r\n */\r\n public addBetweenLineStringsWithStoredIndices(lineStringA: LineString3d, lineStringB: LineString3d) {\r\n const pointA = lineStringA.pointIndices!;\r\n const pointB = lineStringB.pointIndices!;\r\n let normalA: GrowableFloat64Array | undefined = lineStringA.normalIndices;\r\n let normalB: GrowableFloat64Array | undefined = lineStringB.normalIndices;\r\n if (!this._options.needNormals) {\r\n normalA = undefined;\r\n normalB = undefined;\r\n }\r\n let paramA: GrowableFloat64Array | undefined = lineStringA.paramIndices;\r\n let paramB: GrowableFloat64Array | undefined = lineStringB.paramIndices;\r\n if (!this._options.needParams) {\r\n paramA = undefined;\r\n paramB = undefined;\r\n }\r\n\r\n const numPoints = pointA.length;\r\n for (let i = 1; i < numPoints; i++) {\r\n if (pointA.atUncheckedIndex(i - 1) !== pointA.atUncheckedIndex(i) || pointB.atUncheckedIndex(i - 1) !== pointB.atUncheckedIndex(i)) {\r\n this.addIndexedQuadPointIndexes(pointA.atUncheckedIndex(i - 1), pointA.atUncheckedIndex(i), pointB.atUncheckedIndex(i - 1), pointB.atUncheckedIndex(i));\r\n if (normalA && normalB)\r\n this.addIndexedQuadNormalIndexes(normalA.atUncheckedIndex(i - 1), normalA.atUncheckedIndex(i), normalB.atUncheckedIndex(i - 1), normalB.atUncheckedIndex(i));\r\n if (paramA && paramB)\r\n this.addIndexedQuadParamIndexes(paramA.atUncheckedIndex(i - 1), paramA.atUncheckedIndex(i), paramB.atUncheckedIndex(i - 1), paramB.atUncheckedIndex(i));\r\n this._polyface.terminateFacet();\r\n }\r\n }\r\n }\r\n\r\n /** Add facets between lineStrings with matched point counts.\r\n *\r\n * * Facets are announced to addIndexedQuad.\r\n * * addIndexedQuad is free to apply reversal or triangulation options.\r\n */\r\n public addBetweenTransformedLineStrings(curves: AnyCurve, transformA: Transform, transformB: Transform, addClosure: boolean = false) {\r\n if (curves instanceof LineString3d) {\r\n const pointA = curves.points;\r\n const numPoints = pointA.length;\r\n let indexA0 = this.findOrAddPointInLineString(curves, 0, transformA)!;\r\n let indexB0 = this.findOrAddPointInLineString(curves, 0, transformB)!;\r\n const indexA00 = indexA0;\r\n const indexB00 = indexB0;\r\n let indexA1 = 0;\r\n let indexB1 = 0;\r\n for (let i = 1; i < numPoints; i++) {\r\n indexA1 = this.findOrAddPointInLineString(curves, i, transformA)!;\r\n indexB1 = this.findOrAddPointInLineString(curves, i, transformB)!;\r\n this.addIndexedQuadPointIndexes(indexA0, indexA1, indexB0, indexB1);\r\n indexA0 = indexA1;\r\n indexB0 = indexB1;\r\n }\r\n if (addClosure)\r\n this.addIndexedQuadPointIndexes(indexA0, indexA00, indexB0, indexB00);\r\n } else {\r\n const children = curves.children;\r\n // just send the children individually -- final s will fix things??\r\n if (children)\r\n for (const c of children) {\r\n this.addBetweenTransformedLineStrings(c as AnyCurve, transformA, transformB);\r\n }\r\n }\r\n }\r\n\r\n private addBetweenStrokeSetPair(dataA: AnyCurve, vA: number, dataB: AnyCurve, vB: number) {\r\n if (dataA instanceof LineString3d && dataB instanceof LineString3d) {\r\n this.addBetweenLineStringsWithRuleEdgeNormals(dataA, vA, dataB, vB, false);\r\n } else if (dataA instanceof ParityRegion && dataB instanceof ParityRegion) {\r\n if (dataA.children.length === dataB.children.length) {\r\n for (let i = 0; i < dataA.children.length; i++) {\r\n this.addBetweenStrokeSetPair(dataA.children[i], vA, dataB.children[i], vB);\r\n }\r\n }\r\n } else if (dataA instanceof CurveChain && dataB instanceof CurveChain) {\r\n const chainA = dataA.children;\r\n const chainB = dataB.children;\r\n if (chainA.length === chainB.length) {\r\n for (let i = 0; i < chainA.length; i++) {\r\n const cpA = chainA[i];\r\n const cpB = chainB[i];\r\n if (cpA instanceof LineString3d && cpB instanceof LineString3d) {\r\n this.addBetweenLineStringsWithRuleEdgeNormals(cpA, vA, cpB, vB);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Add facets from a Cone\r\n */\r\n public addCone(cone: Cone) {\r\n // ensure identical stroke counts at each end . . .\r\n let strokeCount = 16;\r\n if (this._options)\r\n strokeCount = this._options.applyTolerancesToArc(cone.getMaxRadius());\r\n let axisStrokeCount = 1;\r\n const lineStringA = cone.strokeConstantVSection(0.0, strokeCount, this._options);\r\n const lineStringB = cone.strokeConstantVSection(1.0, strokeCount, this._options);\r\n\r\n if (this._options) {\r\n const vDistanceRange = GrowableXYZArray.distanceRangeBetweenCorrespondingPoints(lineStringA.packedPoints, lineStringB.packedPoints);\r\n axisStrokeCount = this._options.applyMaxEdgeLength(1, vDistanceRange.low);\r\n }\r\n const sizes = cone.maxIsoParametricDistance();\r\n this.addUVGridBody(cone, strokeCount, axisStrokeCount, Segment1d.create(0, sizes.x), Segment1d.create(0, sizes.y));\r\n this.endFace();\r\n\r\n if (cone.capped) {\r\n if (!Geometry.isSmallMetricDistance(cone.getRadiusA())) {\r\n this.addTrianglesInUncheckedConvexPolygon(lineStringA, true); // lower triangles flip\r\n this.endFace();\r\n }\r\n if (!Geometry.isSmallMetricDistance(cone.getRadiusB())) {\r\n this.addTrianglesInUncheckedConvexPolygon(lineStringB, false); // upper triangles to not flip.\r\n this.endFace();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add facets for a TorusPipe.\r\n */\r\n public addTorusPipe(surface: TorusPipe, phiStrokeCount?: number, thetaStrokeCount?: number) {\r\n const thetaFraction = surface.getThetaFraction();\r\n const numU = Geometry.clamp(Geometry.resolveNumber(phiStrokeCount, 8), 4, 64);\r\n const numV = Geometry.clamp(\r\n Geometry.resolveNumber(thetaStrokeCount, Math.ceil(16 * thetaFraction)),\r\n 2, 64);\r\n\r\n this.toggleReversedFacetFlag();\r\n const sizes = surface.maxIsoParametricDistance();\r\n this.addUVGridBody(surface, numU, numV, Segment1d.create(0, sizes.x), Segment1d.create(0, sizes.y));\r\n this.toggleReversedFacetFlag();\r\n\r\n if (surface.capped && thetaFraction < 1.0) {\r\n const centerFrame = surface.getConstructiveFrame()!;\r\n const minorRadius = surface.getMinorRadius();\r\n const majorRadius = surface.getMajorRadius();\r\n const a = 2 * minorRadius;\r\n const r0 = majorRadius - minorRadius;\r\n const r1 = majorRadius + minorRadius;\r\n const z0 = -minorRadius;\r\n const cap0ToLocal = Transform.createRowValues(\r\n a, 0, 0, r0,\r\n 0, 0, -1, 0,\r\n 0, a, 0, z0);\r\n const cap0ToWorld = centerFrame.multiplyTransformTransform(cap0ToLocal);\r\n const worldToCap0 = cap0ToWorld.inverse();\r\n if (worldToCap0) {\r\n const ls0 = UVSurfaceOps.createLinestringOnUVLine(surface, 0, 0, 1, 0, numU, false, true);\r\n ls0.computeUVFromXYZTransform(worldToCap0);\r\n this.addTrianglesInUncheckedConvexPolygon(ls0, false);\r\n }\r\n const thetaRadians = surface.getSweepAngle().radians;\r\n const cc = Math.cos(thetaRadians);\r\n const ss = Math.sin(thetaRadians);\r\n\r\n const cap1ToLocal = Transform.createRowValues(\r\n -cc * a, 0, -ss, r1 * cc,\r\n -ss * a, 0, cc, r1 * ss,\r\n 0, a, 0, z0);\r\n\r\n const cap1ToWorld = centerFrame.multiplyTransformTransform(cap1ToLocal);\r\n const worldToCap1 = cap1ToWorld.inverse();\r\n if (worldToCap1) {\r\n const ls1 = UVSurfaceOps.createLinestringOnUVLine(surface, 1, 1, 0, 1, numU, false, true);\r\n ls1.computeUVFromXYZTransform(worldToCap1);\r\n this.addTrianglesInUncheckedConvexPolygon(ls1, false);\r\n }\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Add point data (no params, normals) for linestrings.\r\n * * This recurses through curve chains (loops and paths)\r\n * * linestrings are swept\r\n * * All other curve types are ignored.\r\n * @param vector sweep vector\r\n * @param contour contour which contains only linestrings\r\n */\r\n public addLinearSweepLineStringsXYZOnly(contour: AnyCurve, vector: Vector3d) {\r\n if (contour instanceof LineString3d) {\r\n let pointA = Point3d.create();\r\n let pointB = Point3d.create();\r\n let indexA0 = 0;\r\n let indexA1 = 0;\r\n let indexB0 = 0;\r\n let indexB1 = 0;\r\n const n = contour.numPoints();\r\n for (let i = 0; i < n; i++) {\r\n pointA = contour.pointAt(i, pointA)!;\r\n pointB = pointA.plus(vector, pointB);\r\n indexA1 = this.findOrAddPoint(pointA);\r\n indexB1 = this.findOrAddPoint(pointB);\r\n if (i > 0) {\r\n this.addIndexedQuadPointIndexes(indexA0, indexA1, indexB0, indexB1);\r\n }\r\n indexA0 = indexA1;\r\n indexB0 = indexB1;\r\n }\r\n } else if (contour instanceof CurveChain) {\r\n for (const ls of contour.children) {\r\n this.addLinearSweepLineStringsXYZOnly(ls, vector);\r\n }\r\n }\r\n }\r\n /**\r\n * Construct facets for a rotational sweep.\r\n */\r\n public addRotationalSweep(surface: RotationalSweep) {\r\n const contour = surface.getCurves();\r\n const section0 = StrokeCountSection.createForParityRegionOrChain(contour, this._options);\r\n const baseStrokes = section0.getStrokes();\r\n\r\n const axis = surface.cloneAxisRay();\r\n const perpendicularVector = CylindricalRangeQuery.computeMaxVectorFromRay(axis, baseStrokes);\r\n const swingVector = axis.direction.crossProduct(perpendicularVector);\r\n if (this._options.needNormals)\r\n CylindricalRangeQuery.buildRotationalNormalsInLineStrings(baseStrokes, axis, swingVector);\r\n const maxDistance = perpendicularVector.magnitude();\r\n const maxPath = Math.abs(maxDistance * surface.getSweep().radians);\r\n let numStep = StrokeOptions.applyAngleTol(this._options, 1, surface.getSweep().radians, undefined);\r\n numStep = StrokeOptions.applyMaxEdgeLength(this._options, numStep, maxPath);\r\n for (let i = 1; i <= numStep; i++) {\r\n const transformA = surface.getFractionalRotationTransform((i - 1) / numStep);\r\n const transformB = surface.getFractionalRotationTransform(i / numStep);\r\n this.addBetweenRotatedStrokeSets(baseStrokes, transformA, i - 1, transformB, i);\r\n }\r\n if (surface.capped) {\r\n const capContour = surface.getSweepContourRef();\r\n capContour.purgeFacets();\r\n capContour.emitFacets(this, true, undefined);\r\n // final loop pass left transformA at end ..\r\n capContour.emitFacets(this, false, surface.getFractionalRotationTransform(1.0));\r\n }\r\n }\r\n /**\r\n * Construct facets for any planar region\r\n */\r\n public addTriangulatedRegion(region: AnyRegion) {\r\n const contour = SweepContour.createForLinearSweep(region);\r\n if (contour)\r\n contour.emitFacets(this, true, undefined);\r\n }\r\n\r\n /**\r\n * * Recursively visit all children of data.\r\n * * At each primitive, invoke the computeStrokeCountForOptions method, with options from the builder.\r\n * @param data\r\n */\r\n public applyStrokeCountsToCurvePrimitives(data: AnyCurve | GeometryQuery) {\r\n const options = this._options;\r\n if (data instanceof CurvePrimitive) {\r\n data.computeStrokeCountForOptions(options);\r\n } else if (data instanceof CurveCollection) {\r\n const children = data.children;\r\n if (children)\r\n for (const child of children) {\r\n this.applyStrokeCountsToCurvePrimitives(child);\r\n }\r\n }\r\n }\r\n\r\n private addBetweenStrokeSetsWithRuledNormals(stroke0: AnyCurve, stroke1: AnyCurve, numVEdge: number) {\r\n const strokeSets = [stroke0];\r\n const fractions = [0.0];\r\n for (let vIndex = 1; vIndex < numVEdge; vIndex++) {\r\n const vFraction = vIndex / numVEdge;\r\n const strokeA = ConstructCurveBetweenCurves.interpolateBetween(stroke0, vIndex / numVEdge, stroke1) as AnyCurve;\r\n strokeSets.push(strokeA);\r\n fractions.push(vFraction);\r\n }\r\n strokeSets.push(stroke1);\r\n fractions.push(1.0);\r\n for (let vIndex = 0; vIndex < numVEdge; vIndex++) {\r\n this.addBetweenStrokeSetPair(strokeSets[vIndex], fractions[vIndex], strokeSets[vIndex + 1], fractions[vIndex + 1]);\r\n }\r\n }\r\n private createIndicesInLineString(ls: LineString3d, vParam: number, transform?: Transform) {\r\n\r\n const n = ls.numPoints();\r\n {\r\n const pointIndices = ls.ensureEmptyPointIndices();\r\n const index0 = this.findOrAddPointInLineString(ls, 0, transform);\r\n pointIndices.push(index0!);\r\n if (n > 1) {\r\n let indexA = index0;\r\n let indexB;\r\n for (let i = 1; i + 1 < n; i++) {\r\n indexB = this.findOrAddPointInLineString(ls, i, transform, indexA);\r\n pointIndices.push(indexB!);\r\n indexA = indexB;\r\n }\r\n // assume last point can only repeat back to zero ...\r\n indexB = this.findOrAddPointInLineString(ls, n - 1, transform, index0);\r\n pointIndices.push(indexB!);\r\n }\r\n }\r\n if (this._options.needNormals && ls.packedSurfaceNormals !== undefined) {\r\n const normalIndices = ls.ensureEmptyNormalIndices();\r\n const normalIndex0 = this.findOrAddNormalInLineString(ls, 0, transform);\r\n normalIndices.push(normalIndex0!);\r\n let normalIndexA = normalIndex0;\r\n let normalIndexB;\r\n if (n > 1) {\r\n for (let i = 1; i + 1 < n; i++) {\r\n normalIndexB = this.findOrAddNormalInLineString(ls, i, transform, normalIndexA);\r\n normalIndices.push(normalIndexB!);\r\n normalIndexA = normalIndexB;\r\n }\r\n // assume last point can only repeat back to zero ...\r\n normalIndexB = this.findOrAddNormalInLineString(ls, n - 1, transform, normalIndex0, normalIndexA);\r\n normalIndices.push(normalIndexB!);\r\n }\r\n }\r\n if (this._options.needParams && ls.packedUVParams !== undefined) {\r\n const uvIndices = ls.ensureEmptyUVIndices();\r\n const uvIndex0 = this.findOrAddParamInLineString(ls, 0, vParam);\r\n uvIndices.push(uvIndex0!);\r\n let uvIndexA = uvIndex0;\r\n let uvIndexB;\r\n if (n > 1) {\r\n for (let i = 1; i + 1 < n; i++) {\r\n uvIndexB = this.findOrAddParamInLineString(ls, i, vParam, uvIndexA);\r\n uvIndices.push(uvIndexB!);\r\n uvIndexA = uvIndexB;\r\n }\r\n // assume last point can only repeat back to zero ...\r\n uvIndexB = this.findOrAddParamInLineString(ls, n - 1, vParam, uvIndexA, uvIndex0);\r\n uvIndices.push(uvIndexB!);\r\n }\r\n }\r\n\r\n }\r\n\r\n private addBetweenRotatedStrokeSets(stroke0: AnyCurve, transformA: Transform, vA: number, transformB: Transform, vB: number) {\r\n if (stroke0 instanceof LineString3d) {\r\n const strokeA = stroke0.cloneTransformed(transformA) as LineString3d;\r\n this.createIndicesInLineString(strokeA, vA);\r\n const strokeB = stroke0.cloneTransformed(transformB) as LineString3d;\r\n this.createIndicesInLineString(strokeB, vB);\r\n this.addBetweenLineStringsWithStoredIndices(strokeA, strokeB);\r\n } else if (stroke0 instanceof ParityRegion) {\r\n for (let i = 0; i < stroke0.children.length; i++) { // eslint-disable-line @typescript-eslint/prefer-for-of\r\n this.addBetweenRotatedStrokeSets(stroke0.children[i], transformA, vA, transformB, vB);\r\n }\r\n } else if (stroke0 instanceof CurveChain) {\r\n const chainA = stroke0.children;\r\n for (let i = 0; i < chainA.length; i++) { // eslint-disable-line @typescript-eslint/prefer-for-of\r\n const cpA = chainA[i];\r\n if (cpA instanceof LineString3d) {\r\n this.addBetweenRotatedStrokeSets(cpA, transformA, vA, transformB, vB);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n *\r\n * Add facets from\r\n * * The swept contour\r\n * * each cap.\r\n */\r\n public addLinearSweep(surface: LinearSweep) {\r\n const contour = surface.getCurvesRef();\r\n const section0 = StrokeCountSection.createForParityRegionOrChain(contour, this._options);\r\n const stroke0 = section0.getStrokes();\r\n const sweepVector = surface.cloneSweepVector();\r\n const sweepTransform = Transform.createTranslation(sweepVector);\r\n const stroke1 = stroke0.cloneTransformed(sweepTransform) as AnyCurve;\r\n const numVEdge = this._options.applyMaxEdgeLength(1, sweepVector.magnitude());\r\n this.addBetweenStrokeSetsWithRuledNormals(stroke0, stroke1, numVEdge);\r\n\r\n if (surface.capped && contour.isAnyRegionType) {\r\n const contourA = surface.getSweepContourRef();\r\n contourA.purgeFacets();\r\n\r\n contourA.emitFacets(this, true, undefined);\r\n contourA.emitFacets(this, false, sweepTransform);\r\n }\r\n }\r\n\r\n /**\r\n * Add facets from a ruled sweep.\r\n */\r\n public addRuledSweep(surface: RuledSweep): boolean {\r\n const contours = surface.sweepContoursRef();\r\n let stroke0: AnyCurve | undefined;\r\n let stroke1: AnyCurve;\r\n const sectionMaps = [];\r\n for (let i = 0; i < contours.length; i++) { // eslint-disable-line @typescript-eslint/prefer-for-of\r\n sectionMaps.push(StrokeCountSection.createForParityRegionOrChain(contours[i].curves, this._options));\r\n }\r\n if (StrokeCountSection.enforceStrokeCountCompatibility(sectionMaps)) {\r\n StrokeCountSection.enforceCompatibleDistanceSums(sectionMaps);\r\n for (let i = 0; i < contours.length; i++) {\r\n stroke1 = sectionMaps[i].getStrokes();\r\n if (!stroke1)\r\n stroke1 = contours[i].curves.cloneStroked();\r\n if (i > 0 && stroke0 && stroke1) {\r\n const distanceRange = Range1d.createNull();\r\n if (StrokeCountSection.extendDistanceRangeBetweenStrokes(stroke0, stroke1, distanceRange)\r\n && !distanceRange.isNull) {\r\n const numVEdge = this._options.applyMaxEdgeLength(1, distanceRange.high);\r\n this.addBetweenStrokeSetsWithRuledNormals(stroke0, stroke1, numVEdge);\r\n }\r\n }\r\n stroke0 = stroke1;\r\n }\r\n }\r\n\r\n if (surface.capped && contours[0].curves.isAnyRegionType) {\r\n contours[0].purgeFacets();\r\n\r\n contours[0].emitFacets(this, true, undefined);\r\n contours[contours.length - 1].purgeFacets();\r\n contours[contours.length - 1].emitFacets(this, false, undefined);\r\n }\r\n return true;\r\n }\r\n /**\r\n * Add facets from a Sphere\r\n */\r\n public addSphere(sphere: Sphere, strokeCount?: number) {\r\n let numStrokeTheta = strokeCount ? strokeCount : this.options.applyTolerancesToArc(sphere.maxAxisRadius());\r\n if (Geometry.isOdd(numStrokeTheta))\r\n numStrokeTheta += 1;\r\n const numStrokePhi = Geometry.clampToStartEnd(Math.abs(numStrokeTheta * sphere.latitudeSweepFraction), 1, Math.ceil(numStrokeTheta * 0.5));\r\n\r\n const lineStringA = sphere.strokeConstantVSection(0.0, numStrokeTheta, this._options);\r\n if (sphere.capped && !Geometry.isSmallMetricDistance(lineStringA.quickLength())) {\r\n this.addTrianglesInUncheckedConvexPolygon(lineStringA, true); // lower triangles flip\r\n this.endFace();\r\n }\r\n\r\n const sizes = sphere.maxIsoParametricDistance();\r\n\r\n this.addUVGridBody(sphere, numStrokeTheta, numStrokePhi, Segment1d.create(0, sizes.x), Segment1d.create(0, sizes.y));\r\n this.endFace();\r\n\r\n const lineStringB = sphere.strokeConstantVSection(1.0, numStrokeTheta, this._options);\r\n if (sphere.capped && !Geometry.isSmallMetricDistance(lineStringB.quickLength())) {\r\n this.addTrianglesInUncheckedConvexPolygon(lineStringB, false); // upper triangles do not flip\r\n this.endFace();\r\n }\r\n }\r\n /**\r\n * Add facets from a Box\r\n */\r\n public addBox(box: Box) {\r\n const corners = box.getCorners();\r\n const xLength = Geometry.maxXY(box.getBaseX(), box.getBaseX());\r\n const yLength = Geometry.maxXY(box.getBaseY(), box.getTopY());\r\n let zLength = 0.0;\r\n for (let i = 0; i < 4; i++) {\r\n zLength = Geometry.maxXY(zLength, corners[i].distance(corners[i + 4]));\r\n\r\n }\r\n\r\n const numX = this._options.applyMaxEdgeLength(1, xLength);\r\n const numY = this._options.applyMaxEdgeLength(1, yLength);\r\n const numZ = this._options.applyMaxEdgeLength(1, zLength);\r\n // Wrap the 4 out-of-plane faces as a single parameters space with \"distance\" advancing in x then y then negative x then negative y ...\r\n const uParamRange = Segment1d.create(0, xLength);\r\n const vParamRange = Segment1d.create(0, zLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[0], corners[1], corners[4], corners[5]), numX, numZ, uParamRange, vParamRange);\r\n uParamRange.shift(xLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[1], corners[3], corners[5], corners[7]), numY, numZ, uParamRange, vParamRange);\r\n uParamRange.shift(yLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[3], corners[2], corners[7], corners[6]), numX, numZ, uParamRange, vParamRange);\r\n uParamRange.shift(xLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[2], corners[0], corners[6], corners[4]), numY, numZ, uParamRange, vParamRange);\r\n // finally end that wraparound face !!\r\n this.endFace();\r\n if (box.capped) {\r\n uParamRange.set(0.0, xLength);\r\n vParamRange.set(0.0, yLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[4], corners[5], corners[6], corners[7]), numX, numY, uParamRange, vParamRange);\r\n this.endFace();\r\n\r\n uParamRange.set(0.0, xLength);\r\n vParamRange.set(0.0, yLength);\r\n this.addUVGridBody(BilinearPatch.create(corners[2], corners[3], corners[0], corners[1]), numX, numY, uParamRange, vParamRange);\r\n this.endFace();\r\n }\r\n }\r\n\r\n /** Add a polygon to the evolving facets.\r\n *\r\n * * Add points to the polyface\r\n * * indices are added (in reverse order if indicated by the builder state)\r\n * @param points array of points. This may contain extra points not to be used in the polygon\r\n * @param numPointsToUse number of points to use.\r\n */\r\n public addPolygon(points: Point3d[], numPointsToUse?: number) {\r\n // don't use trailing points that match start point.\r\n if (numPointsToUse === undefined)\r\n numPointsToUse = points.length;\r\n while (numPointsToUse > 1 && points[numPointsToUse - 1].isAlmostEqual(points[0]))\r\n numPointsToUse--;\r\n let index = 0;\r\n if (!this._reversed) {\r\n for (let i = 0; i < numPointsToUse; i++) {\r\n index = this.findOrAddPoint(points[i]);\r\n this._polyface.addPointIndex(index);\r\n }\r\n } else {\r\n for (let i = numPointsToUse; --i >= 0;) {\r\n index = this.findOrAddPoint(points[i]);\r\n this._polyface.addPointIndex(index);\r\n }\r\n }\r\n this._polyface.terminateFacet();\r\n }\r\n\r\n /** Add a polygon to the evolving facets.\r\n *\r\n * * Add points to the polyface\r\n * * indices are added (in reverse order if indicated by the builder state)\r\n * * Arrays with 2 or fewer points are ignored.\r\n * @param points array of points. Trailing closure points are ignored.\r\n */\r\n public addPolygonGrowableXYZArray(points: GrowableXYZArray) {\r\n // don't use trailing points that match start point.\r\n let numPointsToUse = points.length;\r\n while (numPointsToUse > 2 && Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, numPointsToUse - 1)!))\r\n numPointsToUse--;\r\n // strip trailing duplicates\r\n while (numPointsToUse > 2 && Geometry.isSmallMetricDistance(points.distanceIndexIndex(numPointsToUse - 2, numPointsToUse - 1)!))\r\n numPointsToUse--;\r\n // ignore triangles for which the height is less than smallMetricDistance times length\r\n // sum of edge lengths is twice the perimeter. If it is flat that's twice the largest base dimension.\r\n // cross product magnitude is twice the area.\r\n if (numPointsToUse === 3) {\r\n const cross = points.crossProductIndexIndexIndex(0, 1, 2)!;\r\n const q = cross.magnitude();\r\n const p = points.distanceIndexIndex(0, 1)! + points.distanceIndexIndex(0, 2)! + points.distanceIndexIndex(1, 2)!;\r\n if (q < Geometry.smallMetricDistance * p)\r\n numPointsToUse = 0;\r\n }\r\n if (numPointsToUse > 2) {\r\n let index = 0;\r\n if (!this._reversed) {\r\n for (let i = 0; i < numPointsToUse; i++) {\r\n index = this.findOrAddPointInGrowableXYZArray(points, i)!;\r\n this._polyface.addPointIndex(index);\r\n }\r\n } else {\r\n for (let i = numPointsToUse; --i >= 0;) {\r\n index = this.findOrAddPointInGrowableXYZArray(points, i)!;\r\n this._polyface.addPointIndex(index);\r\n }\r\n }\r\n this._polyface.terminateFacet();\r\n }\r\n }\r\n /** Add a polygon to the evolving facets.\r\n *\r\n * * Add points to the polyface\r\n * * indices are added (in reverse order if indicated by the builder state)\r\n * @param normals array of points. This may contain extra points not to be used in the polygon\r\n * @param numPointsToUse number of points to use.\r\n */\r\n public addFacetFromGrowableArrays(points: GrowableXYZArray, normals: GrowableXYZArray | undefined, params: GrowableXYArray | undefined, colors: number[] | undefined) {\r\n // don't use trailing points that match start point.\r\n let numPointsToUse = points.length;\r\n while (numPointsToUse > 1 && Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, numPointsToUse - 1)!))\r\n numPointsToUse--;\r\n let index = 0;\r\n if (normals && normals.length < numPointsToUse)\r\n normals = undefined;\r\n if (params && params.length < numPointsToUse)\r\n params = undefined;\r\n if (colors && colors.length < numPointsToUse)\r\n colors = undefined;\r\n if (!this._reversed) {\r\n for (let i = 0; i < numPointsToUse; i++) {\r\n index = this.findOrAddPointInGrowableXYZArray(points, i)!;\r\n this._polyface.addPointIndex(index);\r\n\r\n if (normals) {\r\n index = this.findOrAddNormalInGrowableXYZArray(normals, i)!;\r\n this._polyface.addNormalIndex(index);\r\n }\r\n\r\n if (params) {\r\n index = this.findOrAddParamInGrowableXYArray(params, i)!;\r\n this._polyface.addParamIndex(index);\r\n }\r\n if (colors) {\r\n index = this._polyface.addColor(colors[i]);\r\n this._polyface.addColorIndex(index);\r\n }\r\n }\r\n } else {\r\n for (let i = numPointsToUse; --i >= 0;) {\r\n index = this.findOrAddPointInGrowableXYZArray(points, i)!;\r\n this._polyface.addPointIndex(index);\r\n\r\n if (normals) {\r\n index = this.findOrAddNormalInGrowableXYZArray(normals, i)!;\r\n this._polyface.addNormalIndex(index);\r\n }\r\n\r\n if (params) {\r\n index = this.findOrAddParamInGrowableXYArray(params, i)!;\r\n this._polyface.addParamIndex(index);\r\n }\r\n if (colors) {\r\n index = this._polyface.addColor(colors[i]);\r\n this._polyface.addColorIndex(index);\r\n }\r\n }\r\n }\r\n this._polyface.terminateFacet();\r\n }\r\n\r\n /** Add the current visitor facet to the evolving polyface.\r\n * * indices are added (in reverse order if indicated by the builder state)\r\n */\r\n public addFacetFromVisitor(visitor: PolyfaceVisitor) {\r\n this.addFacetFromGrowableArrays(visitor.point, visitor.normal, visitor.param, visitor.color);\r\n }\r\n\r\n /** Add a polyface, with optional reverse and transform. */\r\n public addIndexedPolyface(source: IndexedPolyface, reversed: boolean, transform?: Transform) {\r\n this._polyface.addIndexedPolyface(source, reversed, transform);\r\n }\r\n\r\n /**\r\n * Produce a new FacetFaceData for all terminated facets since construction of the previous face.\r\n * Each facet number/index is mapped to the FacetFaceData through the faceToFaceData array.\r\n * Returns true if successful, and false otherwise.\r\n */\r\n public endFace(): boolean {\r\n return this._polyface.setNewFaceData();\r\n }\r\n\r\n /** Double dispatch handler for Cone */\r\n public override handleCone(g: Cone): any { return this.addCone(g); }\r\n /** Double dispatch handler for TorusPipe */\r\n public override handleTorusPipe(g: TorusPipe): any { return this.addTorusPipe(g); }\r\n /** Double dispatch handler for Sphere */\r\n public override handleSphere(g: Sphere): any { return this.addSphere(g); }\r\n /** Double dispatch handler for Box */\r\n public override handleBox(g: Box): any { return this.addBox(g); }\r\n /** Double dispatch handler for LinearSweep */\r\n public override handleLinearSweep(g: LinearSweep): any { return this.addLinearSweep(g); }\r\n /** Double dispatch handler for RotationalSweep */\r\n public override handleRotationalSweep(g: RotationalSweep): any { return this.addRotationalSweep(g); }\r\n /** Double dispatch handler for RuledSweep */\r\n public override handleRuledSweep(g: RuledSweep): any { return this.addRuledSweep(g); }\r\n /** add facets for a GeometryQuery object. This is double dispatch through `dispatchToGeometryHandler(this)` */\r\n public addGeometryQuery(g: GeometryQuery) { g.dispatchToGeometryHandler(this); }\r\n\r\n /**\r\n *\r\n * * Visit all faces\r\n * * Test each face with f(node) for any node on the face.\r\n * * For each face that passes, pass its coordinates to the builder.\r\n * * Rely on the builder's compress step to find common vertex coordinates\r\n * @internal\r\n */\r\n public addGraph(graph: HalfEdgeGraph, needParams: boolean, acceptFaceFunction: HalfEdgeToBooleanFunction = HalfEdge.testNodeMaskNotExterior,\r\n isEdgeVisibleFunction: HalfEdgeToBooleanFunction | undefined = HalfEdge.testMateMaskExterior) {\r\n let index = 0;\r\n const needNormals = this._options.needNormals;\r\n let normalIndex = 0;\r\n if (needNormals)\r\n normalIndex = this._polyface.addNormalXYZ(0, 0, 1); // big assumption !!!! someday check if that's where the facets actually are!!\r\n\r\n graph.announceFaceLoops(\r\n (_graph: HalfEdgeGraph, seed: HalfEdge) => {\r\n if (acceptFaceFunction(seed) && seed.countEdgesAroundFace() > 2) {\r\n let node = seed;\r\n do {\r\n index = this.findOrAddPointXYZ(node.x, node.y, node.z);\r\n this._polyface.addPointIndex(index, isEdgeVisibleFunction === undefined ? true : isEdgeVisibleFunction(node));\r\n if (needParams) {\r\n index = this.findOrAddParamXY(node.x, node.y);\r\n this._polyface.addParamIndex(index);\r\n }\r\n if (needNormals) {\r\n this._polyface.addNormalIndex(normalIndex);\r\n }\r\n node = node.faceSuccessor;\r\n } while (node !== seed);\r\n this._polyface.terminateFacet();\r\n }\r\n return true;\r\n });\r\n }\r\n /**\r\n *\r\n * * For each node in `faces`\r\n * * add all of its vertices to the polyface\r\n * * add point indices to form a new facet.\r\n * * (Note: no normal or param indices are added)\r\n * * terminate the facet\r\n * @internal\r\n */\r\n public addGraphFaces(_graph: HalfEdgeGraph, faces: HalfEdge[]) {\r\n let index = 0;\r\n for (const seed of faces) {\r\n let node = seed;\r\n do {\r\n index = this.findOrAddPointXYZ(node.x, node.y, node.z);\r\n this._polyface.addPointIndex(index);\r\n node = node.faceSuccessor;\r\n } while (node !== seed);\r\n this._polyface.terminateFacet();\r\n }\r\n }\r\n /** Create a polyface containing the faces of a HalfEdgeGraph, with test function to filter faces.\r\n * @internal\r\n */\r\n public static graphToPolyface(graph: HalfEdgeGraph, options?: StrokeOptions, acceptFaceFunction: HalfEdgeToBooleanFunction = HalfEdge.testNodeMaskNotExterior): IndexedPolyface {\r\n const builder = PolyfaceBuilder.create(options);\r\n builder.addGraph(graph, builder.options.needParams, acceptFaceFunction);\r\n builder.endFace();\r\n return builder.claimPolyface();\r\n }\r\n /** Create a polyface containing an array of faces of a HalfEdgeGraph, with test function to filter faces.\r\n * @internal\r\n */\r\n public static graphFacesToPolyface(graph: HalfEdgeGraph, faces: HalfEdge[]): IndexedPolyface {\r\n const builder = PolyfaceBuilder.create();\r\n builder.addGraphFaces(graph, faces);\r\n builder.endFace();\r\n return builder.claimPolyface();\r\n }\r\n\r\n /** Create a polyface containing triangles in a (space) polygon.\r\n * * The polyface contains only coordinate data (no params or normals).\r\n */\r\n public static polygonToTriangulatedPolyface(points: Point3d[], localToWorld?: Transform): IndexedPolyface | undefined {\r\n if (!localToWorld)\r\n localToWorld = FrameBuilder.createFrameWithCCWPolygon(points);\r\n if (localToWorld) {\r\n const localPoints = localToWorld.multiplyInversePoint3dArray(points)!;\r\n const areaXY = PolygonOps.areaXY(localPoints);\r\n if (areaXY < 0.0)\r\n localPoints.reverse();\r\n const graph = Triangulator.createTriangulatedGraphFromSingleLoop(localPoints);\r\n if (graph) {\r\n const polyface = this.graphToPolyface(graph);\r\n polyface.tryTransformInPlace(localToWorld);\r\n return polyface;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Given arrays of coordinates for multiple facets.\r\n * * pointArray[i] is an array of 3 or 4 points\r\n * * paramArray[i] is an array of matching number of params\r\n * * normalArray[i] is an array of matching number of normals.\r\n * @param pointArray array of arrays of point coordinates\r\n * @param paramArray array of arrays of uv parameters\r\n * @param normalArray array of arrays of normals\r\n * @param endFace if true, call this.endFace after adding all the facets.\r\n */\r\n public addCoordinateFacets(pointArray: Point3d[][], paramArray?: Point2d[][], normalArray?: Vector3d[][], endFace: boolean = false) {\r\n for (let i = 0; i < pointArray.length; i++) {\r\n const params = paramArray ? paramArray[i] : undefined;\r\n const normals = normalArray ? normalArray[i] : undefined;\r\n\r\n if (pointArray[i].length === 3)\r\n this.addTriangleFacet(pointArray[i], params, normals);\r\n else if (pointArray[i].length === 4)\r\n this.addQuadFacet(pointArray[i], params, normals);\r\n }\r\n\r\n if (endFace)\r\n this.endFace();\r\n }\r\n /**\r\n * * Evaluate `(numU + 1) * (numV + 1)` grid points (in 0..1 in both u and v) on a surface.\r\n * * Add the facets for `numU * numV` quads.\r\n * * uv params are the 0..1 fractions.\r\n * * normals are cross products of u and v direction partial derivatives.\r\n * @param surface\r\n * @param numU number of intervals (edges) in the u direction. (Number of points is `numU + 1`)\r\n * @param numV number of intervals (edges) in the v direction. (Number of points is `numV + 1`)\r\n * @param uMap optional mapping from u fraction to parameter space (such as texture)\r\n * @param vMap optional mapping from v fraction to parameter space (such as texture)\r\n */\r\n public addUVGridBody(surface: UVSurface, numU: number, numV: number, uMap?: Segment1d, vMap?: Segment1d) {\r\n let xyzIndex0 = new GrowableFloat64Array(numU);\r\n let xyzIndex1 = new GrowableFloat64Array(numU);\r\n let paramIndex0: GrowableFloat64Array | undefined;\r\n let paramIndex1: GrowableFloat64Array | undefined;\r\n let normalIndex0: GrowableFloat64Array | undefined;\r\n let normalIndex1: GrowableFloat64Array | undefined;\r\n const reverse = this._reversed;\r\n const needNormals = this.options.needNormals;\r\n if (needNormals) {\r\n normalIndex0 = new GrowableFloat64Array(numU);\r\n normalIndex1 = new GrowableFloat64Array(numU);\r\n }\r\n const needParams = this.options.needParams;\r\n if (needParams) {\r\n paramIndex0 = new GrowableFloat64Array(numU);\r\n paramIndex1 = new GrowableFloat64Array(numU);\r\n }\r\n\r\n let indexSwap;\r\n xyzIndex0.ensureCapacity(numU);\r\n xyzIndex1.ensureCapacity(numU);\r\n const uv = Point2d.create();\r\n const normal = Vector3d.create();\r\n const du = 1.0 / numU;\r\n const dv = 1.0 / numV;\r\n const plane = Plane3dByOriginAndVectors.createXYPlane();\r\n for (let v = 0; v <= numV; v++) {\r\n // evaluate new points ....\r\n xyzIndex1.clear();\r\n if (needNormals)\r\n normalIndex1!.clear();\r\n if (needParams)\r\n paramIndex1!.clear();\r\n for (let u = 0; u <= numU; u++) {\r\n const uFrac = u * du;\r\n const vFrac = v * dv;\r\n surface.uvFractionToPointAndTangents(uFrac, vFrac, plane);\r\n xyzIndex1.push(this._polyface.addPoint(plane.origin));\r\n if (needNormals) {\r\n plane.vectorU.crossProduct(plane.vectorV, normal);\r\n normal.normalizeInPlace();\r\n if (reverse)\r\n normal.scaleInPlace(-1.0);\r\n normalIndex1!.push(this._polyface.addNormal(normal));\r\n }\r\n if (needParams)\r\n paramIndex1!.push(this._polyface.addParam(Point2d.create(\r\n uMap ? uMap.fractionToPoint(uFrac) : uFrac,\r\n vMap ? vMap.fractionToPoint(vFrac) : vFrac,\r\n uv)));\r\n }\r\n\r\n if (v > 0) {\r\n for (let u = 0; u < numU; u++) {\r\n if (!this._options.shouldTriangulate) {\r\n this.addIndexedQuadPointIndexes(\r\n xyzIndex0.atUncheckedIndex(u), xyzIndex0.atUncheckedIndex(u + 1),\r\n xyzIndex1.atUncheckedIndex(u), xyzIndex1.atUncheckedIndex(u + 1), false);\r\n if (needNormals)\r\n this.addIndexedQuadNormalIndexes(\r\n normalIndex0!.atUncheckedIndex(u), normalIndex0!.atUncheckedIndex(u + 1),\r\n normalIndex1!.atUncheckedIndex(u), normalIndex1!.atUncheckedIndex(u + 1));\r\n if (needParams)\r\n this.addIndexedQuadParamIndexes(\r\n paramIndex0!.atUncheckedIndex(u), paramIndex0!.atUncheckedIndex(u + 1),\r\n paramIndex1!.atUncheckedIndex(u), paramIndex1!.atUncheckedIndex(u + 1));\r\n this._polyface.terminateFacet();\r\n\r\n } else {\r\n this.addIndexedTrianglePointIndexes(\r\n xyzIndex0.atUncheckedIndex(u), xyzIndex0.atUncheckedIndex(u + 1),\r\n xyzIndex1.atUncheckedIndex(u), false);\r\n if (needNormals)\r\n this.addIndexedTriangleNormalIndexes(\r\n normalIndex0!.atUncheckedIndex(u), normalIndex0!.atUncheckedIndex(u + 1),\r\n normalIndex1!.atUncheckedIndex(u));\r\n if (needParams)\r\n this.addIndexedTriangleParamIndexes(\r\n paramIndex0!.atUncheckedIndex(u), paramIndex0!.atUncheckedIndex(u + 1),\r\n paramIndex1!.atUncheckedIndex(u));\r\n this._polyface.terminateFacet();\r\n\r\n this.addIndexedTrianglePointIndexes(\r\n xyzIndex1.atUncheckedIndex(u),\r\n xyzIndex0.atUncheckedIndex(u + 1),\r\n xyzIndex1.atUncheckedIndex(u + 1), false);\r\n if (needNormals)\r\n this.addIndexedTriangleNormalIndexes(\r\n normalIndex1!.atUncheckedIndex(u),\r\n normalIndex0!.atUncheckedIndex(u + 1),\r\n normalIndex1!.atUncheckedIndex(u + 1));\r\n if (needParams)\r\n this.addIndexedTriangleParamIndexes(\r\n paramIndex1!.atUncheckedIndex(u),\r\n paramIndex0!.atUncheckedIndex(u + 1),\r\n paramIndex1!.atUncheckedIndex(u + 1));\r\n this._polyface.terminateFacet();\r\n }\r\n }\r\n }\r\n indexSwap = xyzIndex1; xyzIndex1 = xyzIndex0; xyzIndex0 = indexSwap;\r\n if (needParams) {\r\n indexSwap = paramIndex1; paramIndex1 = paramIndex0; paramIndex0 = indexSwap;\r\n }\r\n if (needNormals) {\r\n indexSwap = normalIndex1; normalIndex1 = normalIndex0; normalIndex0 = indexSwap;\r\n }\r\n\r\n }\r\n xyzIndex0.clear();\r\n xyzIndex1.clear();\r\n }\r\n /**\r\n * Triangulate the points as viewed in xy.\r\n * @param points\r\n */\r\n public static pointsToTriangulatedPolyface(points: Point3d[]): IndexedPolyface | undefined {\r\n const graph = Triangulator.createTriangulatedGraphFromPoints(points);\r\n if (graph)\r\n return PolyfaceBuilder.graphToPolyface(graph);\r\n return undefined;\r\n }\r\n /** Create (and add to the builder) triangles that bridge the gap between two linestrings.\r\n * * Each triangle will have 1 vertex on one of the linestrings and 2 on the other\r\n * * Choice of triangles is heuristic, hence does not have a unique solution.\r\n * * Logic to choice among the various possible triangle orders prefers\r\n * * Make near-coplanar facets\r\n * * make facets with good aspect ratio.\r\n * * This is exercised with a limited number of lookahead points, i.e. greedy to make first-available decision.\r\n * @param pointsA points of first linestring.\r\n * @param pointsB points of second linestring.\r\n */\r\n public addGreedyTriangulationBetweenLineStrings(pointsA: Point3d[] | LineString3d | IndexedXYZCollection, pointsB: Point3d[] | LineString3d | IndexedXYZCollection) {\r\n const context = GreedyTriangulationBetweenLineStrings.createContext();\r\n context.emitTriangles(\r\n resolveToIndexedXYZCollectionOrCarrier(pointsA),\r\n resolveToIndexedXYZCollectionOrCarrier(pointsB),\r\n (triangle: BarycentricTriangle) => {\r\n this.addTriangleFacet(triangle.points);\r\n });\r\n }\r\n\r\n private addMiteredPipesFromPoints(centerline: IndexedXYZCollection, radius: number, numFacetAround: number = 12) {\r\n const sections = CurveFactory.createMiteredPipeSections(centerline, radius);\r\n const pointA0 = Point3d.create();\r\n const pointA1 = Point3d.create();\r\n const pointB0 = Point3d.create();\r\n const pointB1 = Point3d.create();\r\n if (numFacetAround < 3)\r\n numFacetAround = 3;\r\n const df = 1.0 / numFacetAround;\r\n for (let i = 1; i < sections.length; i++) {\r\n const arcA = sections[i - 1];\r\n const arcB = sections[i];\r\n arcA.fractionToPoint(0.0, pointA0);\r\n arcB.fractionToPoint(0.0, pointB0);\r\n for (let k = 1; k <= numFacetAround; k++, pointA0.setFromPoint3d(pointA1), pointB0.setFromPoint3d(pointB1)) {\r\n const f = k * df;\r\n arcA.fractionToPoint(f, pointA1);\r\n arcB.fractionToPoint(f, pointB1);\r\n this.addQuadFacet([pointA0, pointB0, pointB1, pointA1]);\r\n }\r\n }\r\n }\r\n public addMiteredPipes(centerline: IndexedXYZCollection | Point3d[] | CurvePrimitive, radius: number, numFacetAround: number = 12) {\r\n if (Array.isArray(centerline)) {\r\n this.addMiteredPipesFromPoints(new Point3dArrayCarrier(centerline), radius, numFacetAround);\r\n } else if (centerline instanceof GrowableXYZArray) {\r\n this.addMiteredPipesFromPoints(centerline, radius, numFacetAround);\r\n } else if (centerline instanceof IndexedXYZCollection) {\r\n this.addMiteredPipesFromPoints(centerline, radius, numFacetAround);\r\n } else if (centerline instanceof LineString3d) {\r\n this.addMiteredPipesFromPoints(centerline.packedPoints, radius, numFacetAround);\r\n } else if (centerline instanceof GeometryQuery) {\r\n const linestring = LineString3d.create();\r\n centerline.emitStrokes(linestring);\r\n this.addMiteredPipesFromPoints(linestring.packedPoints, radius, numFacetAround);\r\n }\r\n }\r\n}\r\n\r\nfunction resolveToIndexedXYZCollectionOrCarrier(points: Point3d[] | LineString3d | IndexedXYZCollection): IndexedXYZCollection {\r\n if (Array.isArray(points))\r\n return new Point3dArrayCarrier(points);\r\n if (points instanceof LineString3d)\r\n return points.packedPoints;\r\n return points;\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolyfaceClip.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceClip.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolyfaceClip.js","sourceRoot":"","sources":["../../../src/polyface/PolyfaceClip.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 Polyface\r\n */\r\n\r\n// import { Point2d } from \"./Geometry2d\";\r\n/* eslint-disable @typescript-eslint/naming-convention, no-empty */\r\nimport { ClipPlane } from \"../clipping/ClipPlane\";\r\nimport { ConvexClipPlaneSet } from \"../clipping/ConvexClipPlaneSet\";\r\nimport { UnionOfConvexClipPlaneSets } from \"../clipping/UnionOfConvexClipPlaneSets\";\r\nimport { AnyRegion } from \"../curve/CurveChain\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { RegionBinaryOpType, RegionOps } from \"../curve/RegionOps\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { PlaneAltitudeEvaluator } from \"../Geometry\";\r\nimport { FrameBuilder } from \"../geometry3d/FrameBuilder\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { IndexedXYZCollectionPolygonOps, PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range1d, Range2d, Range3d } from \"../geometry3d/Range\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SweepContour } from \"../solid/SweepContour\";\r\nimport { ChainMergeContext } from \"../topology/ChainMerge\";\r\nimport { RangeSearch } from \"./multiclip/RangeSearch\";\r\n// import { Point3d, Vector3d, Point2d } from \"./PointVector\";\r\nimport { IndexedPolyface, Polyface, PolyfaceVisitor } from \"./Polyface\";\r\nimport { PolyfaceBuilder } from \"./PolyfaceBuilder\";\r\nimport { PolyfaceQuery } from \"./PolyfaceQuery\";\r\n\r\n /**\r\n * carrier for a point array with an index into UnionOfConvexClipPlaneSets\r\n * @private\r\n */\r\n class ClipCandidate {\r\n public nextConvexSetIndex: number;\r\n public points: GrowableXYZArray;\r\n public constructor(points: GrowableXYZArray, nextConvexSetIndex: number) {\r\n this.nextConvexSetIndex = nextConvexSetIndex;\r\n this.points = points;\r\n }\r\n }\r\n\r\n/**\r\n * A pair of PolyfaceBuilder objects, for use by clippers that emit inside and outside parts.\r\n * * There are nominally 4 builders:\r\n * * builderA collects simple \"inside\" clip.\r\n * * builderB collects simple \"outside\" clip.\r\n * * builderA1 collects \"side\" clip for inside.\r\n * * builderB1 collets \"side\" clip for outside.\r\n * * `static ClippedPolyfaceBuilders.create(keepInside, keepOutside)` initializes `builderA` and `builderB` (each optionally to undefined), with undefined `builderA1` and `builderB1`\r\n * * `builders.enableSideBuilders()` makes `builderA1` and `builderB1` match `builderA` and `builderB`.\r\n * * construction methods aim their facets at appropriate builders if defined.\r\n * * @public\r\n */\r\nexport class ClippedPolyfaceBuilders {\r\n /** An available builder. Typically the \"inside\" parts */\r\n public builderA?: PolyfaceBuilder;\r\n /** An available builder. Typically the \"outside\" parts */\r\n public builderB?: PolyfaceBuilder;\r\n /** request to construct cut faces */\r\n public buildClosureFaces?: boolean;\r\n private constructor(builderA: PolyfaceBuilder | undefined, builderB: PolyfaceBuilder | undefined, buildClosureFaces: boolean = false) {\r\n this.builderA = builderA;\r\n this.builderB = builderB;\r\n this.buildClosureFaces = buildClosureFaces;\r\n }\r\n /** Simple create with default options on builder. */\r\n public static create(keepInside: boolean = true, keepOutside: boolean = false, buildSideFaces: boolean = false) {\r\n return new ClippedPolyfaceBuilders(keepInside ? PolyfaceBuilder.create() : undefined, keepOutside ? PolyfaceBuilder.create() : undefined, buildSideFaces);\r\n }\r\n\r\n public claimPolyface(selector: 0 | 1, fixup: boolean): IndexedPolyface | undefined {\r\n const builder = selector === 0 ? this.builderA : this.builderB;\r\n if (builder) {\r\n let polyface = builder.claimPolyface();\r\n if (fixup) {\r\n polyface = PolyfaceQuery.cloneWithTVertexFixup(polyface);\r\n }\r\n return polyface;\r\n }\r\n return undefined;\r\n }\r\n}\r\n/** PolyfaceClip is a static class gathering operations using Polyfaces and clippers.\r\n * @public\r\n */\r\nexport class PolyfaceClip {\r\n /** Clip each facet of polyface to the ClipPlane.\r\n * * Return all surviving clip as a new mesh.\r\n * * WARNING: The new mesh is \"points only\" -- parameters, normals, etc are not interpolated\r\n */\r\n public static clipPolyfaceClipPlaneWithClosureFace(polyface: Polyface, clipper: ClipPlane, insideClip: boolean = true, buildClosureFaces: boolean = true) {\r\n return this.clipPolyfaceClipPlane(polyface, clipper, insideClip, buildClosureFaces);\r\n }\r\n /** Clip each facet of polyface to the ClipPlane.\r\n * * Return all surviving clip as a new mesh.\r\n * * WARNING: The new mesh is \"points only\" -- parameters, normals, etc are not interpolated\r\n */\r\n public static clipPolyfaceClipPlane(polyface: Polyface, clipper: ClipPlane, insideClip: boolean = true, buildClosureFaces: boolean = false): Polyface {\r\n const builders = ClippedPolyfaceBuilders.create(insideClip, !insideClip, buildClosureFaces);\r\n this.clipPolyfaceInsideOutside(polyface, clipper, builders);\r\n return builders.claimPolyface(insideClip ? 0 : 1, true)!;\r\n }\r\n\r\n /** Clip each facet of polyface to the ClipPlane.\r\n * * Return surviving clip as a new mesh.\r\n * * WARNING: The new mesh is \"points only\".\r\n */\r\n public static clipPolyfaceConvexClipPlaneSet(polyface: Polyface, clipper: ConvexClipPlaneSet): Polyface {\r\n const visitor = polyface.createVisitor(0);\r\n const builder = PolyfaceBuilder.create();\r\n const work = new GrowableXYZArray(10);\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n clipper.clipConvexPolygonInPlace(visitor.point, work);\r\n if (visitor.point.length > 2)\r\n builder.addPolygonGrowableXYZArray(visitor.point);\r\n }\r\n return builder.claimPolyface(true);\r\n }\r\n\r\n /** Clip each facet of polyface to the the clippers.\r\n * * Add inside, outside fragments to builderA, builderB\r\n * * This does not consider params, normals, colors. Just points.\r\n * * outputSelect determines how the clip output is structured\r\n * * 0 outputs all shards -- this may have many interior edges.\r\n * * 1 stitches shards together to get cleaner facets.\r\n * @internal\r\n */\r\n public static clipPolyfaceUnionOfConvexClipPlaneSetsToBuilders(polyface: Polyface, allClippers: UnionOfConvexClipPlaneSets, destination: ClippedPolyfaceBuilders, outputSelector: number = 1) {\r\n const builderA = destination.builderA;\r\n const builderB = destination.builderB;\r\n const visitor = polyface.createVisitor(0);\r\n const cache = new GrowableXYZArrayCache();\r\n const insideShards: GrowableXYZArray[] = [];\r\n const outsideShards: GrowableXYZArray[] = [];\r\n const residualPolygons: ClipCandidate[] = [];\r\n let candidate: ClipCandidate | undefined;\r\n const outsideParts: GrowableXYZArray[] = [];\r\n\r\n const numConvexSet = allClippers.convexSets.length;\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n residualPolygons.push(new ClipCandidate(cache.grabAndFill(visitor.point), 0));\r\n while ((candidate = residualPolygons.pop()) !== undefined) {\r\n const convexSetIndex = candidate.nextConvexSetIndex;\r\n if (convexSetIndex >= numConvexSet) {\r\n // ths remnant polygon is OUT ...\r\n if (candidate.points.length > 2)\r\n outsideShards.push(candidate.points);\r\n } else {\r\n const clipper = allClippers.convexSets[convexSetIndex];\r\n outsideParts.length = 0; // NO NO -- why isn't it empty from prior step cleanup?\r\n const insidePart = clipper.clipInsidePushOutside(candidate.points, outsideParts, cache);\r\n if (insidePart) {\r\n if (insidePart.length > 2)\r\n insideShards.push(insidePart);\r\n // Keep outside parts active for clip by later facets . . .\r\n for (const outsidePolygon of outsideParts) {\r\n residualPolygons.push(new ClipCandidate(outsidePolygon, convexSetIndex + 1));\r\n }\r\n } else {\r\n // Nothing was insidePart. The outside parts might be split by intermediate steps -- but all the pieces are there.\r\n candidate.nextConvexSetIndex++;\r\n residualPolygons.push(candidate);\r\n }\r\n outsideParts.length = 0;\r\n }\r\n }\r\n if (outsideShards.length === 0) {\r\n builderA?.addPolygonGrowableXYZArray(visitor.point);\r\n } else if (insideShards.length === 0) {\r\n // the facet spanned clippers but is intact outside\r\n builderB?.addPolygonGrowableXYZArray(visitor.point);\r\n } else {\r\n const localToWorld = FrameBuilder.createRightHandedFrame(undefined, visitor.point);\r\n let worldToLocal: Transform | undefined;\r\n if (outputSelector === 1 && localToWorld !== undefined\r\n && undefined !== (worldToLocal = localToWorld.inverse())) {\r\n this.cleanupAndAddRegion(builderA, insideShards, worldToLocal, localToWorld);\r\n\r\n this.cleanupAndAddRegion(builderB, outsideShards, worldToLocal, localToWorld);\r\n } else {\r\n for (const shard of insideShards)\r\n this.addPolygonToBuilderAndDropToCache(shard, builderA, cache);\r\n for (const shard of outsideShards)\r\n this.addPolygonToBuilderAndDropToCache(shard, builderB, cache);\r\n }\r\n }\r\n outsideShards.length = 0;\r\n insideShards.length = 0;\r\n }\r\n cache.dropAllToCache(outsideParts);\r\n if (destination.buildClosureFaces) {\r\n for (const clipper of allClippers.convexSets) {\r\n this.buildClosureFacesForConvexSet(visitor, clipper, destination, cache);\r\n }\r\n }\r\n }\r\n private static addRegion(builder: PolyfaceBuilder | undefined, region: AnyRegion | undefined) {\r\n if (builder !== undefined && region !== undefined) {\r\n if (region instanceof Loop && region.children.length === 1 && region.children[0] instanceof LineString3d) {\r\n builder.addPolygonGrowableXYZArray(region.children[0].packedPoints);\r\n } else if (region instanceof UnionRegion) {\r\n for (const child of region.children)\r\n this.addRegion(builder, child);\r\n }\r\n }\r\n }\r\n // WARNING: shards are transformed into local system, not reverted!!!\r\n private static cleanupAndAddRegion(builder: PolyfaceBuilder | undefined, shards: GrowableXYZArray[],\r\n worldToLocal: Transform | undefined, localToWorld: Transform | undefined) {\r\n if (builder !== undefined && shards.length > 0) {\r\n if (worldToLocal)\r\n GrowableXYZArray.multiplyTransformInPlace(worldToLocal, shards);\r\n const outsidePieces = RegionOps.polygonBooleanXYToLoops(shards, RegionBinaryOpType.Union, []);\r\n if (outsidePieces && outsidePieces.children.length > 0){\r\n if (localToWorld)\r\n outsidePieces.tryTransformInPlace(localToWorld);\r\n RegionOps.consolidateAdjacentPrimitives(outsidePieces);\r\n this.addRegion(builder, outsidePieces);\r\n }\r\n }\r\n }\r\n private static addPolygonToBuilderAndDropToCache(polygon: GrowableXYZArray | undefined, builder: PolyfaceBuilder | undefined, cache: GrowableXYZArrayCache) {\r\n if (polygon) {\r\n if (builder)\r\n builder.addPolygonGrowableXYZArray(polygon);\r\n cache.dropToCache(polygon);\r\n }\r\n }\r\n private static addPolygonArrayToBuilderAndDropToCache(polygonArray: GrowableXYZArray[], builder: PolyfaceBuilder | undefined, cache: GrowableXYZArrayCache) {\r\n let polygon;\r\n while ((polygon = polygonArray.pop()) !== undefined) {\r\n this.addPolygonToBuilderAndDropToCache(polygon, builder, cache);\r\n }\r\n }\r\n private static createChainContextsForConvexClipPlaneSet(clipper: ConvexClipPlaneSet): ChainMergeContext[] {\r\n const chainContexts = [];\r\n for (const plane of clipper.planes) {\r\n if (!plane.interior) {\r\n const c = ChainMergeContext.create();\r\n c.plane = plane;\r\n c.convexClipper = clipper;\r\n chainContexts.push(c);\r\n }\r\n }\r\n return chainContexts;\r\n }\r\n\r\n /** Clip each facet of polyface to the the clippers.\r\n * * Add inside, outside fragments to builderA, builderB\r\n * * This does not consider params, normals, colors. Just points.\r\n * @internal\r\n */\r\n public static clipPolyfaceConvexClipPlaneSetToBuilders(polyface: Polyface, clipper: ConvexClipPlaneSet, destination: ClippedPolyfaceBuilders) {\r\n const builderA = destination.builderA;\r\n const builderB = destination.builderB;\r\n const visitor = polyface.createVisitor(0);\r\n const cache = new GrowableXYZArrayCache();\r\n const outsideParts: GrowableXYZArray[] = [];\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n // !!! currentCandidates and next candidates are empty at this point !!!\r\n const insidePart = clipper.clipInsidePushOutside(visitor.point, outsideParts, cache);\r\n if (insidePart === undefined) {\r\n // everything is out ... outsideParts might be fragmented. Save only the original polygon\r\n builderB?.addPolygonGrowableXYZArray(visitor.point);\r\n cache.dropToCache(insidePart);\r\n cache.dropAllToCache(outsideParts);\r\n }\r\n this.addPolygonToBuilderAndDropToCache(insidePart, builderA, cache);\r\n this.addPolygonArrayToBuilderAndDropToCache(outsideParts, builderB, cache);\r\n }\r\n this.buildClosureFacesForConvexSet(visitor, clipper, destination, cache);\r\n }\r\n /**\r\n *\r\n * @param visitor visitor for all facets of interest (entire polyface)\r\n * @param clipper ConvexClipPlaneSet to apply\r\n * @param destination builders to receive inside, outside parts\r\n * @param cache GrowableArray cache.\r\n */\r\n private static buildClosureFacesForConvexSet(visitor: PolyfaceVisitor, clipper: ConvexClipPlaneSet, destination: ClippedPolyfaceBuilders,\r\n cache: GrowableXYZArrayCache) {\r\n if (destination.buildClosureFaces) {\r\n const chainContexts = this.createChainContextsForConvexClipPlaneSet(clipper);\r\n const workPoints = cache.grabFromCache();\r\n const facetPoints = cache.grabFromCache();\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n for (const chainContext of chainContexts) {\r\n const plane = chainContext.plane;\r\n facetPoints.clear();\r\n facetPoints.pushFrom(visitor.point);\r\n IndexedXYZCollectionPolygonOps.clipConvexPolygonInPlace(plane!, facetPoints, workPoints);\r\n chainContext.addSegmentsOnPlane(facetPoints, true);\r\n }\r\n }\r\n cache.dropToCache(facetPoints);\r\n cache.dropToCache(workPoints);\r\n for (const chainContext of chainContexts) {\r\n this.addClosureFacets(chainContext, destination, cache);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param visitor visitor for all facets of interest (entire polyface)\r\n * @param clipper ConvexClipPlaneSet to apply\r\n * @param destination builders to receive inside, outside parts\r\n * @param cache GrowableArray cache.\r\n */\r\n private static buildClosureFacesForPlane(visitor: PolyfaceVisitor, plane: PlaneAltitudeEvaluator, destination: ClippedPolyfaceBuilders,\r\n cache: GrowableXYZArrayCache) {\r\n if (destination.buildClosureFaces) {\r\n const chainContext = ChainMergeContext.create();\r\n chainContext.plane = plane;\r\n const workPoints = cache.grabFromCache();\r\n const facetPoints = cache.grabFromCache();\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n facetPoints.clear();\r\n facetPoints.pushFrom(visitor.point);\r\n IndexedXYZCollectionPolygonOps.clipConvexPolygonInPlace(plane, facetPoints, workPoints);\r\n chainContext.addSegmentsOnPlane(facetPoints, true);\r\n }\r\n cache.dropToCache(facetPoints);\r\n cache.dropToCache(workPoints);\r\n this.addClosureFacets(chainContext, destination, cache);\r\n }\r\n }\r\n private static evaluateInwardPlaneNormal(plane: PlaneAltitudeEvaluator, scale: number): Vector3d {\r\n return Vector3d.create(plane.velocityXYZ(scale, 0, 0), plane.velocityXYZ(0, scale, 0), plane.velocityXYZ(0, 0, scale));\r\n }\r\n /**\r\n * * Triangulate the contour.\r\n * * Add all the triangles to both builders\r\n * * reversed in builderB.\r\n */\r\n private static addClippedContour(contour: SweepContour, clipper: ConvexClipPlaneSet | undefined, destination: ClippedPolyfaceBuilders, cache: GrowableXYZArrayCache) {\r\n const polygonA = cache.grabFromCache();\r\n const polygonB = cache.grabFromCache();\r\n if (destination.builderB)\r\n destination.builderB.toggleReversedFacetFlag();\r\n contour.announceFacets((facets: IndexedPolyface) => {\r\n const visitor = facets.createVisitor();\r\n // The contour facets are convex .. easy clip ..\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n polygonA.clear();\r\n polygonA.pushFromGrowableXYZArray(visitor.point);\r\n clipper?.clipConvexPolygonInPlace(polygonA, polygonB);\r\n if (polygonA.length > 2) {\r\n destination.builderA?.addPolygonGrowableXYZArray(polygonA);\r\n destination.builderB?.addPolygonGrowableXYZArray(polygonA);\r\n }\r\n }\r\n }, undefined);\r\n if (destination.builderB)\r\n destination.builderB.toggleReversedFacetFlag();\r\n cache.dropToCache(polygonA);\r\n cache.dropToCache(polygonB);\r\n }\r\n\r\n /**\r\n * Gather loops out of the ChainMergeContext. Add to destination arrays.\r\n * @param chainContext ASSUMED TO HAVE A PLANE\r\n * @param destination\r\n */\r\n private static addClosureFacets(chainContext: ChainMergeContext, destination: ClippedPolyfaceBuilders, cache: GrowableXYZArrayCache) {\r\n const clipper = chainContext.convexClipper;\r\n const plane = chainContext.plane!;\r\n const outwardNormal = this.evaluateInwardPlaneNormal(plane, -1.0);\r\n chainContext.clusterAndMergeVerticesXYZ();\r\n const loops = chainContext.collectMaximalGrowableXYZArrays();\r\n if (loops.length > 1) {\r\n const loopSets = PolygonOps.sortOuterAndHoleLoopsXY(loops);\r\n for (const loopSet of loopSets) {\r\n PolygonOps.orientLoopsCCWForOutwardNormalInPlace(loopSet, outwardNormal);\r\n const contour = SweepContour.createForPolygon(loopSet, outwardNormal);\r\n if (contour !== undefined) {\r\n if (clipper) {\r\n this.addClippedContour(contour, clipper, destination, cache);\r\n } else {\r\n if (destination.builderA)\r\n contour.emitFacets(destination.builderA, true, clipper);\r\n if (destination.builderB)\r\n contour.emitFacets(destination.builderB, false, clipper);\r\n }\r\n }\r\n }\r\n } else {\r\n PolygonOps.orientLoopsCCWForOutwardNormalInPlace(loops, outwardNormal);\r\n const contour = SweepContour.createForPolygon(loops, outwardNormal);\r\n if (contour !== undefined) {\r\n if (clipper) {\r\n this.addClippedContour(contour, clipper, destination, cache);\r\n } else {\r\n if (destination.builderA)\r\n contour.emitFacets(destination.builderA, true, clipper);\r\n if (destination.builderB)\r\n contour.emitFacets(destination.builderB, false, clipper);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Clip each facet of polyface to the the clippers.\r\n * * Add inside, outside fragments to builderA, builderB\r\n * * This does not consider params, normals, colors. Just points.\r\n * @internal\r\n */\r\n public static clipPolyfaceClipPlaneToBuilders(polyface: Polyface, clipper: PlaneAltitudeEvaluator, destination: ClippedPolyfaceBuilders) {\r\n const builderA = destination.builderA;\r\n const builderB = destination.builderB;\r\n const visitor = polyface.createVisitor(0);\r\n const cache = new GrowableXYZArrayCache();\r\n const inside = cache.grabFromCache();\r\n const outside = cache.grabFromCache();\r\n const range = Range1d.createNull();\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n // !!! currentCandidates and next candidates are empty at this point !!!\r\n IndexedXYZCollectionPolygonOps.splitConvexPolygonInsideOutsidePlane(clipper, visitor.point, inside, outside, range);\r\n if (builderA)\r\n builderA.addPolygonGrowableXYZArray(inside);\r\n if (builderB)\r\n builderB.addPolygonGrowableXYZArray(outside);\r\n }\r\n this.buildClosureFacesForPlane(visitor, clipper, destination, cache);\r\n cache.dropToCache(inside);\r\n cache.dropToCache(outside);\r\n }\r\n\r\n /** Clip each facet of polyface to the ClipPlane or ConvexClipPlaneSet\r\n * * accumulate inside and outside facets -- to destination.builderA and destination.builderB\r\n * * if `destination.buildClosureFaces` is set, and also build closure facets\r\n * * This method parses the variant input types and calls a more specific method.\r\n * * WARNING: The new mesh is \"points only\".\r\n * * outputSelect applies only for UnionOfConvexClipPlaneSets -- see [[PolyfaceClip.clipPolyfaceUnionOfConvexClipPlaneSetsToBuilders]]\r\n */\r\n public static clipPolyfaceInsideOutside(polyface: Polyface, clipper: ClipPlane | ConvexClipPlaneSet | UnionOfConvexClipPlaneSets, destination: ClippedPolyfaceBuilders,\r\n outputSelect: number = 0) {\r\n if (clipper instanceof ClipPlane) {\r\n this.clipPolyfaceClipPlaneToBuilders(polyface, clipper, destination);\r\n } else if (clipper instanceof ConvexClipPlaneSet) {\r\n this.clipPolyfaceConvexClipPlaneSetToBuilders(polyface, clipper, destination);\r\n } else if (clipper instanceof UnionOfConvexClipPlaneSets) {\r\n this.clipPolyfaceUnionOfConvexClipPlaneSetsToBuilders(polyface, clipper, destination, outputSelect);\r\n }\r\n }\r\n /** Clip each facet of polyface to the ClipPlane or ConvexClipPlaneSet\r\n * * This method parses the variant input types and calls a more specific method.\r\n * * To get both inside and outside parts, use clipPolyfaceInsideOutside\r\n * * WARNING: The new mesh is \"points only\".\r\n */\r\n public static clipPolyface(polyface: Polyface, clipper: ClipPlane | ConvexClipPlaneSet): Polyface | undefined {\r\n if (clipper instanceof ClipPlane)\r\n return this.clipPolyfaceClipPlane(polyface, clipper);\r\n if (clipper instanceof ConvexClipPlaneSet)\r\n return this.clipPolyfaceConvexClipPlaneSet(polyface, clipper);\r\n // (The if tests exhaust the type space -- this line is unreachable.)\r\n return undefined;\r\n }\r\n /** Find consecutive points around a polygon (with implied closure edge) that are ON a plane\r\n * @param points array of points around polygon. Closure edge is implied.\r\n * @param chainContext context receiving edges\r\n * @param point0 work point\r\n * @param point1 work point\r\n */\r\n private static collectEdgesOnPlane(points: GrowableXYZArray, clipper: ClipPlane, chainContext: ChainMergeContext, point0: Point3d, point1: Point3d) {\r\n const n = points.length;\r\n if (n > 1) {\r\n points.getPoint3dAtUncheckedPointIndex(n - 1, point0);\r\n for (let i = 0; i < n; i++) {\r\n points.getPoint3dAtUncheckedPointIndex(i, point1);\r\n if (clipper.isPointOn(point0) && clipper.isPointOn(point1))\r\n chainContext.addSegment(point0, point1);\r\n point0.setFromPoint3d(point1);\r\n }\r\n }\r\n }\r\n /** Intersect each facet with the clip plane. (Producing intersection edges.)\r\n * * Return all edges chained as array of LineString3d.\r\n */\r\n public static sectionPolyfaceClipPlane(polyface: Polyface, clipper: ClipPlane): LineString3d[] {\r\n const chainContext = ChainMergeContext.create();\r\n\r\n const visitor = polyface.createVisitor(0);\r\n const work = new GrowableXYZArray(10);\r\n const point0 = Point3d.create();\r\n const point1 = Point3d.create();\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n clipper.clipConvexPolygonInPlace(visitor.point, work, true);\r\n this.collectEdgesOnPlane(visitor.point, clipper, chainContext, point0, point1);\r\n }\r\n chainContext.clusterAndMergeVerticesXYZ();\r\n return chainContext.collectMaximalChains();\r\n }\r\n\r\n /**\r\n * * Split facets of mesh \"A\" into parts that are\r\n * * under mesh \"B\"\r\n * * over mesh \"B\"\r\n * * both meshes are represented by visitors rather than the meshes themselves\r\n * * If the data in-hand is a mesh, call with `mesh.createVisitor`\r\n * * The respective clip parts are fed to caller-supplied builders.\r\n * * Caller may set either or both builders to toggle facet order (e.g. toggle the lower facets to make them \"point down\" in cut-fill application)\r\n * * This step is commonly one-half of \"cut fill\".\r\n * * A \"cut fill\" wrapper will call this twice with the visitor and builder roles reversed.\r\n * * Both polyfaces are assumed convex with CCW orientation viewed from above.\r\n * @param visitorA iterator over polyface to be split.\r\n * @param visitorB iterator over polyface that acts as a splitter\r\n * @param orientUnderMeshDownward if true, the \"meshAUnderB\" output is oriented with its normals reversed so it can act as the bottom side of a cut-fill pair.\r\n */\r\n public static clipPolyfaceUnderOverConvexPolyfaceIntoBuilders(visitorA: PolyfaceVisitor, visitorB: PolyfaceVisitor,\r\n builderAUnderB: PolyfaceBuilder | undefined,\r\n builderAOverB: PolyfaceBuilder | undefined) {\r\n const rangeDataA = PolyfaceQuery.collectRangeLengthData(visitorA);\r\n const searchA = RangeSearch.create2dSearcherForRangeLengthData<number>(rangeDataA);\r\n if (!searchA)\r\n return;\r\n const range = Range3d.create();\r\n for (visitorA.reset(); visitorA.moveToNextFacet();) {\r\n visitorA.point.setRange(range);\r\n searchA.addRange(range, visitorA.currentReadIndex());\r\n }\r\n const xyClip = new GrowableXYZArray(10);\r\n const workArray = new GrowableXYZArray(10);\r\n const xyFrustum = ConvexClipPlaneSet.createEmpty();\r\n const below = new GrowableXYZArray(10);\r\n const above = new GrowableXYZArray(10);\r\n const planeOfFacet = ClipPlane.createNormalAndPointXYZXYZ(0, 0, 1, 0, 0, 0)!;\r\n const altitudeRange = Range1d.createNull();\r\n\r\n for (visitorB.reset(); visitorB.moveToNextFacet();) {\r\n visitorB.point.setRange(range);\r\n ConvexClipPlaneSet.setPlaneAndXYLoopCCW(visitorB.point, planeOfFacet, xyFrustum);\r\n searchA.searchRange2d(range, (_rangeA: Range2d, readIndexA: number) => {\r\n visitorA.moveToReadIndex(readIndexA);\r\n xyFrustum.polygonClip(visitorA.point, xyClip, workArray);\r\n // builderAOverB.addPolygonGrowableXYZArray(xyClip);\r\n if (xyClip.length > 0) {\r\n // planeOfFacet.convexPolygonSplitInsideOutsideGrowableArrays(xyClip, below, above, altitudeRange);\r\n IndexedXYZCollectionPolygonOps.splitConvexPolygonInsideOutsidePlane(planeOfFacet, xyClip, below, above, altitudeRange);\r\n if (below.length > 0 && builderAUnderB)\r\n builderAUnderB.addPolygonGrowableXYZArray(below);\r\n if (above.length > 0 && builderAOverB)\r\n builderAOverB.addPolygonGrowableXYZArray(above);\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * * Split facets into vertically overlapping sections\r\n * * both meshes are represented by visitors rather than the meshes themselves\r\n * * If the data in-hand is a mesh, call with `mesh.createVisitor`\r\n * * The respective clip parts are returned as separate meshes.\r\n * * Caller may set either or both builders to toggle facet order (e.g. toggle the lower facets to make them \"point down\" in cut-fill application)\r\n * * Both polyfaces are assumed convex with CCW orientation viewed from above.\r\n * * Each output contains some facets from meshA and some from meshB:\r\n * * meshAUnderB -- areas where meshA is underneath mesh B.\r\n * * If A is \"design surface\" and B is existing DTM, this is \"cut\" volume\r\n * * meshAOverB -- areas where meshB is over meshB.\r\n * * If A is \"design surface\" and B is existing DTM, this is \"fill\" volume\r\n *\r\n * @param visitorA iterator over polyface to be split.\r\n * @param visitorB iterator over polyface that acts as a splitter\r\n * @param orientUnderMeshDownward if true, the \"meshAUnderB\" output is oriented with its normals reversed so it can act as the bottom side of a cut-fill pair.\r\n */\r\n public static computeCutFill(meshA: IndexedPolyface, meshB: IndexedPolyface): { meshAUnderB: IndexedPolyface, meshAOverB: IndexedPolyface } {\r\n const visitorA = meshA.createVisitor();\r\n const visitorB = meshB.createVisitor();\r\n const builderAUnderB = PolyfaceBuilder.create();\r\n const builderAOverB = PolyfaceBuilder.create();\r\n builderAUnderB.toggleReversedFacetFlag();\r\n this.clipPolyfaceUnderOverConvexPolyfaceIntoBuilders(visitorA, visitorB, builderAUnderB, builderAOverB);\r\n builderAUnderB.toggleReversedFacetFlag();\r\n builderAOverB.toggleReversedFacetFlag();\r\n this.clipPolyfaceUnderOverConvexPolyfaceIntoBuilders(visitorB, visitorA, builderAOverB, builderAUnderB);\r\n return {\r\n meshAUnderB: builderAUnderB.claimPolyface(),\r\n meshAOverB: builderAOverB.claimPolyface(),\r\n };\r\n }\r\n}\r\n"]}