@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":"GeometrySamples.js","sourceRoot":"","sources":["../../../src/serialization/GeometrySamples.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 Serialization\r\n */\r\n\r\nimport { BezierCurve3d } from \"../bspline/BezierCurve3d\";\r\nimport { BezierCurve3dH } from \"../bspline/BezierCurve3dH\";\r\nimport { BSplineCurve3d, BSplineCurve3dBase } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH, WeightStyle } from \"../bspline/BSplineSurface\";\r\nimport { BSplineWrapMode, KnotVector } from \"../bspline/KnotVector\";\r\nimport { ClipPlane } from \"../clipping/ClipPlane\";\r\nimport { ConvexClipPlaneSet } from \"../clipping/ConvexClipPlaneSet\";\r\nimport { UnionOfConvexClipPlaneSets } from \"../clipping/UnionOfConvexClipPlaneSets\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { CurveChainWithDistanceIndex } from \"../curve/CurveChainWithDistanceIndex\";\r\nimport { BagOfCurves } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { PointString3d } from \"../curve/PointString3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { AxisOrder, Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { AngleSweep } from \"../geometry3d/AngleSweep\";\r\nimport { GrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"../geometry3d/Plane3dByOriginAndUnitNormal\";\r\nimport { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range1d, Range2d, Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { XYAndZ } from \"../geometry3d/XYZProps\";\r\nimport { Map4d } from \"../geometry4d/Map4d\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\nimport { IndexedPolyface } from \"../polyface/Polyface\";\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 { SolidPrimitive } from \"../solid/SolidPrimitive\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { IntegratedSpiral3d } from \"../curve/spiral/IntegratedSpiral3d\";\r\nimport { DirectSpiral3d } from \"../curve/spiral/DirectSpiral3d\";\r\nimport { PolyfaceData } from \"../polyface/PolyfaceData\";\r\nimport { AuxChannel, AuxChannelData, AuxChannelDataType, PolyfaceAuxData } from \"../polyface/AuxData\";\r\nimport { PolyfaceBuilder } from \"../polyface/PolyfaceBuilder\";\r\n\r\n/* eslint-disable no-console */\r\n/**\r\n * Function to be called to obtain function value at (i,n), for\r\n * * n fixed over many calls\r\n * * n may be assumed 1 or greater (so fraction = i/n is safe)\r\n * * i varies from 0 to n\r\n * @alpha\r\n */\r\nexport type SteppedIndexFunction = (i: number, n: number) => number;\r\n/**\r\n * Static methods to create functions of type SteppedIndexFunction\r\n * * Convention: constant value is optional last argument, with default value 0\r\n * @alpha\r\n */\r\nexport class SteppedIndexFunctionFactory {\r\n /** Returns a callable function that returns a constant value. */\r\n public static createConstant(value: number = 0): SteppedIndexFunction {\r\n return (_i: number, _n: number) => value;\r\n }\r\n /** Return a function that steps linearly\r\n * * f(i,n) = y0 + (i/n) * a\r\n */\r\n public static createLinear(a: number, f0: number = 0): SteppedIndexFunction {\r\n return (i: number, n: number) => (f0 + a * (i / n));\r\n }\r\n /** Return a function that steps with cosine of angles in sweep\r\n * * f(i,n) = y0 + amplitude * cos(i/n)\r\n */\r\n public static createCosine(amplitude: number, sweep: AngleSweep = AngleSweep.create360(), f0: number = 0): SteppedIndexFunction {\r\n return (i: number, n: number) => (f0 + amplitude * Math.cos(sweep.fractionToRadians(i / n)));\r\n }\r\n /** Return a function that steps with cosine of angles in sweep.\r\n * * f(i,n) = y0 + amplitude * sin(i/n)\r\n */\r\n public static createSine(amplitude: number, sweep: AngleSweep = AngleSweep.create360(), f0: number = 0): SteppedIndexFunction {\r\n return (i: number, n: number) => (f0 + amplitude * Math.sin(sweep.fractionToRadians(i / n)));\r\n }\r\n}\r\n/**\r\n * `Sample` has static methods to create a variety of geometry samples useful in testing.\r\n * @alpha\r\n */\r\nexport class Sample {\r\n /** Array with assorted Point2d samples */\r\n public static readonly point2d: Point2d[] = [\r\n Point2d.create(0, 0),\r\n Point2d.create(1, 0),\r\n Point2d.create(0, 1),\r\n Point2d.create(2, 3)];\r\n\r\n /** Array with assorted Point3d samples */\r\n public static readonly point3d: Point3d[] = [\r\n Point3d.create(0, 0, 0),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(0, 1, 0),\r\n Point3d.create(0, 1, 0),\r\n Point3d.create(0, 0, 1),\r\n Point3d.create(2, 3, 0),\r\n Point3d.create(0, 2, 5),\r\n Point3d.create(-3, 0, 5),\r\n Point3d.create(4, 3, -2)];\r\n\r\n /** Return an array of Point3d, with x,y,z all stepping through a range of values.\r\n * x varies fastest, then y then z\r\n */\r\n public static createPoint3dLattice(low: number, step: number, high: number): Point3d[] {\r\n const points = [];\r\n for (let z = low; z <= high; z += step)\r\n for (let y = low; y <= high; y += step)\r\n for (let x = low; x <= high; x += step)\r\n points.push(Point3d.create(x, y, z));\r\n return points;\r\n }\r\n\r\n /** Return an array of Point2d, with x,y all stepping through a range of values.\r\n * x varies fastest, then y\r\n */\r\n public static createPoint2dLattice(low: number, step: number, high: number): Point2d[] {\r\n const points = [];\r\n for (let y = low; y <= high; y += step)\r\n for (let x = low; x <= high; x += step)\r\n points.push(Point2d.create(x, y));\r\n return points;\r\n }\r\n /** Array with assorted Point4d samples */\r\n public static readonly point4d: Point4d[] = [\r\n Point4d.create(0, 0, 0, 1),\r\n Point4d.create(1, 0, 0, 1),\r\n Point4d.create(0, 1, 0, 1),\r\n Point4d.create(0, 1, 0, 1),\r\n Point4d.create(0, 0, 1, 1),\r\n Point4d.create(2, 3, 0, 1),\r\n Point4d.create(0, 2, 5, 1),\r\n Point4d.create(-3, 0, 5, 1),\r\n Point4d.create(-3, 0, 5, 0.3),\r\n Point4d.create(-3, 0, 5, -0.2),\r\n Point4d.create(4, 3, -2, 1)];\r\n /** Array with assorted nonzero vector samples. */\r\n public static createNonZeroVectors(): Vector3d[] {\r\n return [\r\n Vector3d.create(1, 0, 0),\r\n Vector3d.create(0, 1, 0),\r\n Vector3d.create(0, 0, 1),\r\n Vector3d.create(-1, 0, 0),\r\n Vector3d.create(0, -1, 0),\r\n Vector3d.create(0, 0, -1),\r\n Vector3d.createPolar(1.0, Angle.createDegrees(20)),\r\n Vector3d.createSpherical(1.0, Angle.createDegrees(20), Angle.createDegrees(10)),\r\n Vector3d.createPolar(2.0, Angle.createDegrees(20)),\r\n Vector3d.createSpherical(2.0, Angle.createDegrees(20), Angle.createDegrees(10)),\r\n Vector3d.create(2, 3, 0)];\r\n }\r\n /** Array with assorted nonzero Vector2d samples */\r\n public static readonly vector2d: Vector2d[] = [\r\n Vector2d.create(1, 0),\r\n Vector2d.create(0, 1),\r\n Vector2d.create(0, 0),\r\n Vector2d.create(-1, 0),\r\n Vector2d.create(0, -1),\r\n Vector2d.create(0, 0),\r\n Vector2d.createPolar(1.0, Angle.createDegrees(20)),\r\n Vector2d.createPolar(2.0, Angle.createDegrees(20)),\r\n Vector2d.create(2, 3)];\r\n /** Return an array with assorted Range3d samples */\r\n public static createRange3ds(): Range3d[] {\r\n return [\r\n Range3d.createXYZXYZ(0, 0, 0, 1, 1, 1),\r\n Range3d.createXYZ(1, 2, 3),\r\n Range3d.createXYZXYZ(-2, -3, 1, 200, 301, 8)];\r\n }\r\n /** Create 5 points of a (axis aligned) rectangle with corners (x0,y0) and (x1,y1) */\r\n public static createRectangleXY(x0: number, y0: number, ax: number, ay: number, z: number = 0): Point3d[] {\r\n return [\r\n Point3d.create(x0, y0, z),\r\n Point3d.create(x0 + ax, y0, z),\r\n Point3d.create(x0 + ax, y0 + ay, z),\r\n Point3d.create(x0, y0 + ay, z),\r\n Point3d.create(x0, y0, z),\r\n ];\r\n }\r\n\r\n /** Access the last point in the array. push another shifted by dx,dy,dz.\r\n * * No push if all are 0.\r\n * * If array is empty, push a leading 000\r\n */\r\n public static pushMove(data: Point3d[], dx: number, dy: number, dz: number = 0.0) {\r\n if (data.length === 0)\r\n data.push(Point3d.create(0, 0, 0));\r\n const back = data[data.length - 1];\r\n if (dx !== 0 || dy !== 0 || dz !== 0)\r\n data.push(Point3d.create(back.x + dx, back.y + dy, back.z + dz));\r\n }\r\n /** Return an array with numPoints on the unit circle (counting closure) */\r\n public static createUnitCircle(numPoints: number): Point3d[] {\r\n const points: Point3d[] = [];\r\n const dTheta = Geometry.safeDivideFraction(Math.PI * 2, numPoints - 1, 0.0);\r\n for (let i = 0; i + 1 < numPoints; i++) {\r\n const theta = i * dTheta;\r\n points.push(Point3d.create(Math.cos(theta), Math.sin(theta), 0.0));\r\n }\r\n points.push(points[0].clone());\r\n return points;\r\n }\r\n /** Create points for an L shaped polygon\r\n * * lower left at x0,y0.\r\n * * ax,ay are larger side lengths (lower left to corners along x and y directions)\r\n * * bx,by are smaller side lengths (inner corner to points along x and y directions)\r\n */\r\n public static createLShapedPolygon(x0: number, y0: number, ax: number, ay: number, bx: number, by: number, z: number = 0): Point3d[] {\r\n return [\r\n Point3d.create(x0, y0, z),\r\n Point3d.create(x0 + ax, y0, z),\r\n Point3d.create(x0 + ax, y0 + by),\r\n Point3d.create(x0 + bx, y0 + by),\r\n Point3d.create(x0 + bx, y0 + ay, z),\r\n Point3d.create(x0, y0 + ay, z),\r\n Point3d.create(x0, y0, z),\r\n ];\r\n }\r\n /** Create assorted clip planes. */\r\n public static createClipPlanes(): ClipPlane[] {\r\n const plane0 = ClipPlane.createNormalAndDistance(Vector3d.create(1, 0, 0), 2.0)!;\r\n const plane1 = plane0.cloneNegated();\r\n const plane2 = plane1.clone();\r\n plane2.setFlags(true, true);\r\n return [\r\n plane0, plane1, plane2,\r\n ClipPlane.createNormalAndDistance(Vector3d.create(3, 4, 0), 2.0)!,\r\n ClipPlane.createEdgeXY(Point3d.create(1, 0, 0), Point3d.create(24, 32, 0))!];\r\n }\r\n\r\n /**\r\n * * A first-quadrant unit square\r\n * * Two squares -- first and fourth quadrant unit squares\r\n * * Three squares -- first, second and fourth quadrant unit squares\r\n */\r\n public static createClipPlaneSets(): UnionOfConvexClipPlaneSets[] {\r\n const result = [];\r\n const quadrant1 = ConvexClipPlaneSet.createXYBox(0, 0, 1, 1);\r\n result.push(UnionOfConvexClipPlaneSets.createConvexSets([quadrant1.clone()]));\r\n const quadrant2 = ConvexClipPlaneSet.createXYBox(-1, 0, 0, 1);\r\n const quadrant4 = ConvexClipPlaneSet.createXYBox(0, -1, 1, 0);\r\n\r\n result.push(UnionOfConvexClipPlaneSets.createConvexSets([\r\n quadrant1.clone(),\r\n quadrant4.clone()]));\r\n result.push(UnionOfConvexClipPlaneSets.createConvexSets([\r\n quadrant1.clone(),\r\n quadrant2.clone(),\r\n quadrant4.clone()]));\r\n return result;\r\n }\r\n /** Create (unweighted) bspline curves.\r\n * order varies from 2 to 5\r\n */\r\n public static createBsplineCurves(includeMultipleKnots: boolean = false): BSplineCurve3d[] {\r\n const result: BSplineCurve3d[] = [];\r\n const yScale = 0.1;\r\n for (const order of [2, 3, 4, 5]) {\r\n const points = [];\r\n for (const x of [0, 1, 2, 3, 4, 5, 7]) {\r\n points.push(Point3d.create(x, yScale * (1 + x * x), 0.0));\r\n }\r\n const curve = BSplineCurve3d.createUniformKnots(points, order) as BSplineCurve3d;\r\n result.push(curve);\r\n }\r\n if (includeMultipleKnots) {\r\n const interiorKnotCandidates = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8];\r\n for (const order of [3, 4]) {\r\n const numPoints = 8;\r\n const points = [];\r\n for (let i = 0; i < numPoints; i++)\r\n points.push(Point3d.create(i, i * i, 0));\r\n const knots = [];\r\n for (let i = 0; i < order - 1; i++) knots.push(0);\r\n const numInteriorNeeded = numPoints - order;\r\n for (let i = 0; i < numInteriorNeeded; i++)knots.push(interiorKnotCandidates[i]);\r\n const lastKnot = knots[knots.length - 1] + 1;\r\n for (let i = 0; i < order - 1; i++) knots.push(lastKnot);\r\n const curve = BSplineCurve3d.create(points, knots, order);\r\n if (curve)\r\n result.push(curve);\r\n }\r\n }\r\n return result;\r\n }\r\n /** Create weighted bspline curves.\r\n * order varies from 2 to 5\r\n */\r\n public static createBspline3dHCurves(): BSplineCurve3dH[] {\r\n const result: BSplineCurve3dH[] = [];\r\n const yScale = 0.1;\r\n for (const weightVariation of [0, 0.125]) {\r\n for (const order of [2, 3, 4, 5]) {\r\n const points = [];\r\n for (const x of [0, 1, 2, 3, 4, 5, 7]) {\r\n points.push(Point4d.create(x, yScale * (1 + x * x), 0.0, 1.0 + weightVariation * Math.sin(x * Math.PI * 0.25)));\r\n }\r\n const curve = BSplineCurve3dH.createUniformKnots(points, order) as BSplineCurve3dH;\r\n result.push(curve);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /** Create weighted bsplines for circular arcs.\r\n */\r\n public static createBspline3dHArcs(): BSplineCurve3dH[] {\r\n const result: BSplineCurve3dH[] = [];\r\n const halfRadians = Angle.degreesToRadians(60.0);\r\n const c = Math.cos(halfRadians);\r\n const s = Math.sin(halfRadians);\r\n // const sec = 1.0 / c;\r\n // const t = s / c;\r\n const points = [\r\n Point4d.create(1, 0, 0, 1),\r\n Point4d.create(c, s, 0, c),\r\n Point4d.create(-c, s, 0, 1),\r\n Point4d.create(-1, 0, 0, c),\r\n Point4d.create(-c, -s, 0, 1),\r\n Point4d.create(c, -s, 0, c),\r\n Point4d.create(1, 0, 0, 1)];\r\n const knots = [0, 0, 1, 1, 2, 2, 3, 3];\r\n\r\n const curve = BSplineCurve3dH.create(points, knots, 3) as BSplineCurve3dH;\r\n result.push(curve);\r\n return result;\r\n }\r\n\r\n /** Return array [x,y,z,w] bspline control points for an arc in 90 degree bspline spans.\r\n * @param points array of [x,y,z,w]\r\n * @param center center of arc\r\n * @param axes matrix with 0 and 90 degree axes\r\n * @param radius0 radius multiplier for x direction.\r\n * @param radius90 radius multiplier for y direction.\r\n * @param applyWeightsToXYZ\r\n */\r\n public static createBsplineArc90SectionToXYZWArrays(\r\n center: Point3d,\r\n axes: Matrix3d,\r\n radius0: number,\r\n radius90: number,\r\n applyWeightsToXYZ: boolean): number[][] {\r\n const a = Math.sqrt(0.5);\r\n const xyz = Point3d.create();\r\n Matrix3d.xyzPlusMatrixTimesCoordinates(center, axes, radius0, 0.0, 0, xyz);\r\n const controlPoints = [];\r\n controlPoints.push([xyz.x, xyz.y, xyz.z, 1.0]);\r\n const cornerTrig = [1, 1, -1, -1, 1];\r\n const axisTrig = [1, 0, -1, 0, 1];\r\n for (let i = 0; i < 4; i++) {\r\n Matrix3d.xyzPlusMatrixTimesCoordinates(center, axes, radius0 * cornerTrig[i + 1], radius90 * cornerTrig[i], 0, xyz);\r\n controlPoints.push([xyz.x, xyz.y, xyz.z, a]);\r\n Matrix3d.xyzPlusMatrixTimesCoordinates(center, axes, radius0 * axisTrig[i + 1], radius90 * axisTrig[i], 0, xyz);\r\n controlPoints.push([xyz.x, xyz.y, xyz.z, 1.0]);\r\n }\r\n if (applyWeightsToXYZ) {\r\n for (const xyzw of controlPoints) {\r\n const b = xyzw[3];\r\n xyzw[0] *= b;\r\n xyzw[1] *= b;\r\n xyzw[2] *= b;\r\n }\r\n }\r\n return controlPoints;\r\n }\r\n\r\n /**\r\n * Create both unweighted and weighted bspline curves.\r\n * (This is the combined results from createBsplineCurves and createBspline3dHCurves)\r\n */\r\n public static createMixedBsplineCurves(): BSplineCurve3dBase[] {\r\n const arrayA = Sample.createBsplineCurves();\r\n const arrayB = Sample.createBspline3dHCurves();\r\n const result = [];\r\n for (const a of arrayA) result.push(a);\r\n for (const b of arrayB) result.push(b);\r\n return result;\r\n }\r\n\r\n /** create a plane from origin and normal coordinates -- default to 001 normal if needed. */\r\n public static createPlane(x: number, y: number, z: number, u: number, v: number, w: number): Plane3dByOriginAndUnitNormal {\r\n const point = Point3d.create(x, y, z);\r\n const vector = Vector3d.create(u, v, w).normalize();\r\n if (vector) {\r\n const plane = Plane3dByOriginAndUnitNormal.create(point, vector);\r\n if (plane)\r\n return plane;\r\n }\r\n return Sample.createPlane(x, y, z, u, v, 1);\r\n }\r\n\r\n /** Create ray from (x,y,z) and direction components. (Normalize the direction) */\r\n public static createRay(x: number, y: number, z: number, u: number, v: number, w: number): Ray3d {\r\n return Ray3d.create(\r\n Point3d.create(x, y, z),\r\n Vector3d.create(u, v, w).normalize() as Vector3d);\r\n }\r\n /** Assorted Plane3dBYOriginAndUnitNormal */\r\n public static readonly plane3dByOriginAndUnitNormal: Plane3dByOriginAndUnitNormal[] = [\r\n Plane3dByOriginAndUnitNormal.createXYPlane(),\r\n Plane3dByOriginAndUnitNormal.createYZPlane(),\r\n Plane3dByOriginAndUnitNormal.createZXPlane(),\r\n Sample.createPlane(0, 0, 0, 3, 0, 1),\r\n Sample.createPlane(1, 2, 3, 2, 4, -1)];\r\n\r\n /** Assorted Ray3d, not all unit direction vectors. */\r\n public static readonly ray3d: Ray3d[] = [\r\n Sample.createRay(0, 0, 0, 1, 0, 0),\r\n Sample.createRay(0, 0, 0, 0, 1, 0),\r\n Sample.createRay(0, 0, 0, 0, 0, 1),\r\n Sample.createRay(0, 0, 0, 1, 2, 0),\r\n Sample.createRay(1, 2, 3, 4, 2, -1)];\r\n /** Assorted angles. All principal directions, some others included. */\r\n public static readonly angle: Angle[] = [\r\n Angle.createDegrees(0),\r\n Angle.createDegrees(90),\r\n Angle.createDegrees(180),\r\n Angle.createDegrees(-90),\r\n Angle.createDegrees(30),\r\n Angle.createDegrees(-105)];\r\n /** Assorted angle sweeps */\r\n public static readonly angleSweep: AngleSweep[] = [\r\n AngleSweep.createStartEndDegrees(0, 90),\r\n AngleSweep.createStartEndDegrees(0, 180),\r\n AngleSweep.createStartEndDegrees(-90, 0),\r\n AngleSweep.createStartEndDegrees(0, -90),\r\n AngleSweep.createStartEndDegrees(0, 30),\r\n AngleSweep.createStartEndDegrees(45, 110)];\r\n\r\n /** assorted line segments */\r\n public static readonly lineSegment3d: LineSegment3d[] = [\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(1, 0, 0)),\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(0, 1, 0)),\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(0, 0, 1)),\r\n LineSegment3d.create(Point3d.create(1, 2, 3), Point3d.create(-2, -3, 0.5))];\r\n /** Assorted lines strings */\r\n public static createLineStrings(): LineString3d[] {\r\n return [\r\n LineString3d.createPoints(\r\n [\r\n Point3d.create(0, 0, 0),\r\n Point3d.create(1, 0, 0)]),\r\n LineString3d.createPoints(\r\n [\r\n Point3d.create(0, 0, 0),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0)]),\r\n LineString3d.createPoints(\r\n [\r\n Point3d.create(0, 0, 0),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0),\r\n Point3d.create(2, 2, 0)])];\r\n }\r\n /** Assorted Range1d: single point, null, simple forward, simple reverse */\r\n public static readonly range1d: Range1d[] = [\r\n Range1d.createX(1),\r\n Range1d.createNull(),\r\n Range1d.createXX(1, 2),\r\n Range1d.createXX(2, 1)];\r\n /** Assorted range2d: single point, null, 2 point with various creation orders. */\r\n public static readonly range2d: Range2d[] = [\r\n Range2d.createXY(1, 2),\r\n Range2d.createNull(),\r\n Range2d.createXYXY(1, 2, 0, 3),\r\n Range2d.createXYXY(1, 2, 3, 4)];\r\n /** Assorted range2d: single point, null, 2 point with various creation orders. */\r\n public static readonly range3d: Range3d[] = [\r\n Range3d.createXYZ(1, 2, 3),\r\n Range3d.createNull(),\r\n Range3d.createXYZXYZ(1, 2, 0, 3, 4, 7),\r\n Range3d.createXYZXYZ(1, 2, 3, -2, -4, -1)];\r\n /** Assorted Matrix3d:\r\n * * identity\r\n * * rotation around x\r\n * * rotation around general vector\r\n * * uniform scale\r\n * * nonuniform scale (including negative scales!)\r\n */\r\n public static createMatrix3dArray(): Matrix3d[] {\r\n return [\r\n Matrix3d.createIdentity(),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 0, 0), Angle.createDegrees(10)) as Matrix3d,\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, -2, 5), Angle.createDegrees(-6.0)) as Matrix3d,\r\n\r\n Matrix3d.createUniformScale(2.0),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 2, 3), Angle.createDegrees(49.0)) as Matrix3d,\r\n Matrix3d.createScale(1, 1, -1),\r\n Matrix3d.createScale(2, 3, 4)];\r\n }\r\n /** Assorted invertible transforms. */\r\n public static createInvertibleTransforms(): Transform[] {\r\n return [\r\n Transform.createIdentity(),\r\n Transform.createTranslationXYZ(1, 2, 0),\r\n Transform.createTranslationXYZ(1, 2, 3),\r\n Transform.createFixedPointAndMatrix(\r\n Point3d.create(4, 1, -2),\r\n Matrix3d.createUniformScale(2.0)),\r\n Transform.createFixedPointAndMatrix(\r\n Point3d.create(4, 1, -2),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 2, 3), Angle.createRadians(10)) as Matrix3d)];\r\n }\r\n\r\n /** Return an array of Matrix3d with various skew and scale. This includes at least:\r\n * * identity\r\n * * 3 distinct diagonals.\r\n * * The distinct diagonal base with smaller value added to\r\n * other 6 spots in succession.\r\n * * the distinct diagonals with all others also smaller non-zeros.\r\n */\r\n public static createScaleSkewMatrix3d(): Matrix3d[] {\r\n return [\r\n Matrix3d.createRowValues(\r\n 1, 0, 0,\r\n 0, 1, 0,\r\n 0, 0, 1),\r\n Matrix3d.createRowValues(\r\n 5, 0, 0,\r\n 0, 6, 0,\r\n 0, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 2, 0,\r\n 0, 6, 0,\r\n 0, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 0, 2,\r\n 0, 6, 0,\r\n 0, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 0, 0,\r\n 1, 6, 0,\r\n 0, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 0, 0,\r\n 0, 6, 1,\r\n 0, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 0, 0,\r\n 0, 6, 0,\r\n 1, 0, 7),\r\n Matrix3d.createRowValues(\r\n 5, 0, 0,\r\n 0, 6, 0,\r\n 0, 1, 7),\r\n Matrix3d.createRowValues(\r\n 5, 2, 3,\r\n 2, 6, 1,\r\n -1, 2, 7)];\r\n }\r\n\r\n /** Return an array of singular Matrix3d. This includes at least:\r\n * * all zeros\r\n * * one nonzero column\r\n * * two independent columns, third is zero\r\n * * two independent columns, third is sum of those\r\n * * two independent columns, third is copy of one\r\n */\r\n public static createSingularMatrix3d(): Matrix3d[] {\r\n const vectorU = Vector3d.create(2, 3, 6);\r\n const vectorV = Vector3d.create(-1, 5, 2);\r\n const vectorUPlusV = vectorU.plus(vectorV);\r\n const vector0 = Vector3d.createZero();\r\n return [\r\n Matrix3d.createZero(),\r\n // one nonzero column\r\n Matrix3d.createColumns(vectorU, vector0, vector0),\r\n Matrix3d.createColumns(vector0, vectorU, vector0),\r\n Matrix3d.createColumns(vector0, vector0, vector0),\r\n // two independent nonzero columns with zero\r\n Matrix3d.createColumns(vectorU, vectorV, vector0),\r\n Matrix3d.createColumns(vector0, vectorU, vectorV),\r\n Matrix3d.createColumns(vectorV, vector0, vector0),\r\n // third column dependent\r\n Matrix3d.createColumns(vectorU, vectorV, vectorUPlusV),\r\n Matrix3d.createColumns(vectorU, vectorUPlusV, vectorV),\r\n Matrix3d.createColumns(vectorUPlusV, vectorV, vectorU),\r\n // two independent with duplicate\r\n Matrix3d.createColumns(vectorU, vectorV, vectorU),\r\n Matrix3d.createColumns(vectorU, vectorU, vectorV),\r\n Matrix3d.createColumns(vectorV, vectorV, vectorU)];\r\n }\r\n\r\n /**\r\n * * Return an array of rigid transforms. This includes (at least)\r\n * * Identity\r\n * * translation with identity matrix\r\n * * rotation around origin and arbitrary vector\r\n * * rotation around space point and arbitrary vector\r\n * * use given refDistance is crude distance of translation and distance to fixed point.\r\n */\r\n public static createRigidTransforms(distanceScale: number = 4.0): Transform[] {\r\n const distanceScale3 = distanceScale / 3.0;\r\n const distanceScale4 = distanceScale / 4.0;\r\n return [\r\n Transform.createIdentity(),\r\n Transform.createTranslationXYZ(distanceScale3 * 1, distanceScale3 * 2, distanceScale3 * 3),\r\n Transform.createFixedPointAndMatrix(\r\n Point3d.create(0, 0, 0),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.unitY(), Angle.createDegrees(10)) as Matrix3d),\r\n Transform.createFixedPointAndMatrix(\r\n Point3d.create(distanceScale4 * 4, distanceScale4 * 1, -distanceScale4 * 2),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 2, 3), Angle.createDegrees(10)) as Matrix3d),\r\n Transform.createFixedPointAndMatrix(\r\n Point3d.create(distanceScale4 * 4, distanceScale4 * 1, -distanceScale4 * 2),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(-2, 1, 4), Angle.createDegrees(35)) as Matrix3d)];\r\n }\r\n /**\r\n * Return a single rigid transform with all terms nonzero.\r\n */\r\n public static createMessyRigidTransform(fixedPoint?: Point3d): Transform {\r\n return Transform.createFixedPointAndMatrix(\r\n fixedPoint ? fixedPoint : Point3d.create(1, 2, 3),\r\n Matrix3d.createRotationAroundVector(Vector3d.create(0.3, -0.2, 1.2), Angle.createDegrees(15.7))!);\r\n }\r\n /** Return various rigid matrices:\r\n * * identity\r\n * * small rotations around x, y, z\r\n * * small rotation around (1,2,3)\r\n */\r\n public static createRigidAxes(): Matrix3d[] {\r\n return [\r\n Matrix3d.createIdentity(),\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.unitX(), Angle.createDegrees(10)) as Matrix3d,\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.unitY(), Angle.createDegrees(10)) as Matrix3d,\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.unitZ(), Angle.createDegrees(10)) as Matrix3d,\r\n Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 2, 3), Angle.createDegrees(10)) as Matrix3d,\r\n ];\r\n }\r\n\r\n /**\r\n * Return various Matrix4d\r\n * * Simple promotion of each Sample.createInvertibleTransforms ()\r\n * * optional nasty [1,2,3,4...15] row order\r\n * @param includeIrregular if true, include [1,2,..15] row major\r\n */ // promote each transform[] to a Matrix4d.\r\n public static createMatrix4ds(includeIrregular: boolean = false): Matrix4d[] {\r\n const result = [];\r\n let transform;\r\n for (transform of Sample.createInvertibleTransforms())\r\n result.push(Matrix4d.createTransform(transform));\r\n if (includeIrregular) {\r\n result.push(Matrix4d.createRowValues(\r\n 1, 2, 3, 4,\r\n 5, 6, 7, 8,\r\n 9, 10, 11, 12,\r\n 13, 14, 15, 16));\r\n }\r\n return result;\r\n }\r\n /**\r\n * Create full Map4d for each `Sample.createInvertibleTransforms ()`\r\n */\r\n public static createMap4ds(): Map4d[] {\r\n const result = [];\r\n let transform;\r\n for (transform of Sample.createInvertibleTransforms()) {\r\n const inverse = transform.inverse();\r\n if (inverse) {\r\n const map = Map4d.createTransform(transform, inverse);\r\n if (map)\r\n result.push(map);\r\n }\r\n }\r\n return result;\r\n }\r\n /** Assorted simple `Path` objects. */\r\n public static createSimplePaths(withGaps: boolean = false): Path[] {\r\n const point0 = Point3d.create(0, 0, 0);\r\n const point1 = Point3d.create(10, 0, 0);\r\n\r\n const p1 = [point1, Point3d.create(0, 10, 0), Point3d.create(6, 10, 0), Point3d.create(6, 10, 0), Point3d.create(0, 10, 0)];\r\n const segment1 = LineSegment3d.create(point0, point1);\r\n const vectorU = Vector3d.unitX(3);\r\n const vectorV = Vector3d.unitY(3);\r\n const arc2 = Arc3d.create(point1.minus(vectorU), vectorU, vectorV, AngleSweep.createStartEndDegrees(0, 90));\r\n const simplePaths = [\r\n Path.create(segment1),\r\n Path.create(segment1, arc2),\r\n Path.create(\r\n LineSegment3d.create(point0, point1),\r\n LineString3d.create(p1)),\r\n Sample.createCappedArcPath(4, 0, 180),\r\n ];\r\n if (withGaps)\r\n simplePaths.push(\r\n Path.create(\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(10, 0, 0)),\r\n LineSegment3d.create(Point3d.create(10, 10, 0), Point3d.create(5, 0, 0))));\r\n\r\n return simplePaths;\r\n }\r\n /** Assorted `Path` with lines and arcs.\r\n * Specifically useful for offset tests.\r\n */\r\n public static createLineArcPaths(): Path[] {\r\n const paths = [];\r\n const x1 = 10.0;\r\n const y2 = 5.0;\r\n const y3 = 10.0;\r\n for (const y0 of [0, -1, 1]) {\r\n for (const x2 of [15, 11, 20, 9, 7]) {\r\n\r\n const point0 = Point3d.create(0, y0, 0);\r\n const point1 = Point3d.create(x1, 0, 0);\r\n const point2 = Point3d.create(x2, y2, 0);\r\n const point3 = Point3d.create(x1, y3, 0);\r\n const point4 = Point3d.create(0, y3 + y0, 0);\r\n const path0 = Path.create();\r\n path0.tryAddChild(LineString3d.create(point0, point1, point2, point3, point4));\r\n paths.push(path0);\r\n const path1 = Path.create();\r\n path1.tryAddChild(LineSegment3d.create(point0, point1));\r\n path1.tryAddChild(Arc3d.createCircularStartMiddleEnd(point1, Point3d.create(x2, y2, 0), point3));\r\n path1.tryAddChild(LineSegment3d.create(point3, point4));\r\n paths.push(path1);\r\n }\r\n }\r\n return paths;\r\n }\r\n\r\n /** Assorted `PointString3d` objects. */\r\n public static createSimplePointStrings(): PointString3d[] {\r\n const p1 = [[Point3d.create(0, 10, 0)], [Point3d.create(6, 10, 0)], [Point3d.create(6, 10, 0), [Point3d.create(6, 10, 0)]]];\r\n const simplePaths = [\r\n PointString3d.create(Point3d.create(1, 2, 0)),\r\n PointString3d.create(Point3d.create(0, 0, 0), Point3d.create(10, 0, 0)),\r\n PointString3d.create(\r\n Point3d.create(10, 0, 0),\r\n Point3d.create(10, 5, 0)),\r\n PointString3d.create(p1)];\r\n\r\n return simplePaths;\r\n }\r\n /** Assorted `Loop` objects */\r\n public static createSimpleLoops(): Loop[] {\r\n const point0 = Point3d.create(0, 0, 0);\r\n const point1 = Point3d.create(10, 0, 0);\r\n const point2 = Point3d.create(10, 5, 0);\r\n const point3 = Point3d.create(0, 5, 0);\r\n const result = [\r\n // rectangle with single linestring\r\n Loop.create(LineString3d.create(point0, point1, point2, point3, point0)),\r\n // unit circle\r\n Loop.create(Arc3d.createUnitCircle()),\r\n // rectangle, but with individual line segments\r\n Loop.create(\r\n LineSegment3d.create(point0, point1),\r\n LineSegment3d.create(point1, point2),\r\n LineSegment3d.create(point2, point3),\r\n LineSegment3d.create(point3, point0),\r\n ),\r\n // Semicircle\r\n Sample.createCappedArcLoop(4, -90, 90),\r\n ];\r\n return result;\r\n }\r\n /**\r\n * Create a square wave along x direction\r\n * @param dx0 distance along x axis at y=0\r\n * @param dy vertical rise\r\n * @param dx1 distance along x axis at y=dy\r\n * @param numPhase number of phases of the jump.\r\n * @param dyReturn y value for return to origin. If 0, the wave ends at y=0 after then final \"down\" with one extra horizontal dx0\r\n * If nonzero, rise to that y value, return to x=0, and return down to origin.\r\n *\r\n */\r\n public static createSquareWave(origin: Point3d, dx0: number, dy: number, dx1: number, numPhase: number, dyReturn: number): Point3d[] {\r\n const result = [origin.clone()];\r\n for (let i = 0; i < numPhase; i++) {\r\n this.pushMove(result, dx0, 0);\r\n this.pushMove(result, 0, dy);\r\n this.pushMove(result, dx1, 0);\r\n this.pushMove(result, 0, -dy);\r\n }\r\n this.pushMove(result, dx0, 0);\r\n if (dyReturn !== 0.0) {\r\n this.pushMove(result, 0, dyReturn);\r\n result.push(Point3d.create(origin.x, origin.y + dyReturn));\r\n result.push(result[0].clone());\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Create multiple interpolated points between two points\r\n * @param point0 start point (at fraction0)\r\n * @param point1 end point (at fraction1)\r\n * @param numPoints total number of points. This is force to at least 2.\r\n * @param result optional existing array to receive points.\r\n * @param index0 optional index of first point. Default is 0.\r\n * @param index1 optional index of final point. Default is numPoints\r\n */\r\n public static createInterpolatedPoints(point0: Point3d, point1: Point3d, numPoints: number, result?: Point3d[], index0?: number, index1?: number): Point3d[] {\r\n if (numPoints < 2)\r\n numPoints = 2;\r\n if (result === undefined)\r\n result = [];\r\n if (index0 === undefined)\r\n index0 = 0;\r\n if (index1 === undefined)\r\n index1 = numPoints;\r\n\r\n for (let i = index0; i <= index1; i++) {\r\n result.push(point0.interpolate(i / numPoints, point1));\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Append numPhase teeth. Each tooth starts with dxLow dwell at initial y, then sloped rise, then dwell at top, then sloped fall\r\n * * If no points are present, start with 000. (this happens in pushMove) Otherwise start from final point.\r\n * * return points array reference.\r\n * @param points point array to receive points\r\n * @param dxLow starting step along x direction\r\n * @param riseX width of rising and falling parts\r\n * @param riseY height of rise\r\n * @param dxHigh width at top\r\n * @param numPhase number of phases.\r\n */\r\n public static appendSawTooth(points: Point3d[], dxLow: number, riseX: number, riseY: number, dxHigh: number, numPhase: number): Point3d[] {\r\n for (let i = 0; i < numPhase; i++) {\r\n this.pushMove(points, dxLow, 0, 0);\r\n this.pushMove(points, riseX, riseY, 0);\r\n this.pushMove(points, dxHigh, 0, 0);\r\n this.pushMove(points, riseX, -riseY, 0);\r\n }\r\n return points;\r\n }\r\n /** append sawtooth with x distances successively scaled by xFactor */\r\n public static appendVariableSawTooth(points: Point3d[], dxLow: number, riseX: number, riseY: number, dxHigh: number, numPhase: number, xFactor: number): Point3d[] {\r\n let factor = 1.0;\r\n for (let i = 0; i < numPhase; i++) {\r\n this.appendSawTooth(points, factor * dxLow, factor * riseX, riseY, factor * dxHigh, 1);\r\n factor *= xFactor;\r\n }\r\n return points;\r\n }\r\n /**\r\n * Create a pair of sawtooth patterns, one (nominally) outbound and up, the other inbound and down.\r\n * * return phase count adjusted to end at start x\r\n * * enter return dx values as lengths -- sign will be negated in construction.\r\n * @param origin start of entire path.\r\n * @param dxLow low outbound dwell\r\n * @param riseX x part of outbound rise and fall\r\n * @param riseY y part of outbound rise and fall\r\n * @param dxHigh high outbound dwell\r\n * @param numPhaseOutbound number of phases outbound. Final phase followed by dxLow dwell.\r\n * @param dyFinal rise after final dwell.\r\n * @param dxLowReturn dwell at return high\r\n * @param riseXReturn rise x part of return\r\n * @param riseYReturn rise y part of return\r\n * @param dxHighReturn dwell at return high\r\n */\r\n public static createBidirectionalSawtooth(origin: Point3d, dxLow: number, riseX: number, riseY: number, dxHigh: number, numPhaseOutbound: number,\r\n dyFinal: number,\r\n dxLowReturn: number, riseXReturn: number, riseYReturn: number, dxHighReturn: number): Point3d[] {\r\n const data = [origin.clone()];\r\n const x0 = data[0].x;\r\n this.appendSawTooth(data, dxLow, riseX, riseY, dxHigh, numPhaseOutbound);\r\n this.pushMove(data, dxLow, 0, 0);\r\n this.pushMove(data, 0, dyFinal);\r\n const x1 = data[data.length - 1].x;\r\n const returnPhase = Math.abs(dxLowReturn + 2 * riseXReturn + dxHighReturn);\r\n const totalDX = Math.abs(x1 - x0);\r\n const numReturnPhase = Math.floor(Math.abs(totalDX / returnPhase));\r\n this.appendSawTooth(data, -dxLowReturn, -riseXReturn, riseYReturn, -dxHighReturn, numReturnPhase);\r\n const x2 = data[data.length - 1].x;\r\n this.pushMove(data, x0 - x2, 0, 0);\r\n data.push(data[0].clone());\r\n return data;\r\n }\r\n /** append to a linestring, taking steps along given vector directions\r\n * If the linestring is empty, a 000 point is added.\r\n * @param linestring LineString3d to receive points.\r\n * @param numPhase number of phases of the sawtooth\r\n * @param vectors any number of vector steps.\r\n */\r\n public static appendPhases(linestring: LineString3d, numPhase: number, ...vectors: Vector3d[]): void {\r\n const tailPoint = linestring.endPoint(); // and this defaults to 000 . ..\r\n if (linestring.numPoints() === 0)\r\n linestring.addPoint(tailPoint);\r\n\r\n for (let i = 0; i < numPhase; i++) {\r\n for (const v of vectors) {\r\n tailPoint.addInPlace(v);\r\n linestring.addPoint(tailPoint);\r\n }\r\n }\r\n }\r\n\r\n /** Assorted regions with arc boundaries\r\n * * full circle\r\n * * with varying sweep:\r\n * * partial arc with single chord closure\r\n * * partial arc with 2-edge closure via center\r\n */\r\n public static createArcRegions(): Loop[] {\r\n const result = [];\r\n const center = Point3d.create(0, 0, 0);\r\n for (const sweep of [\r\n AngleSweep.createStartEndDegrees(0, 360),\r\n AngleSweep.createStartEndDegrees(-20, 20),\r\n AngleSweep.createStartEndDegrees(0, 90),\r\n AngleSweep.createStartEndDegrees(0, 180),\r\n ]) {\r\n const arc0 = Arc3d.createXY(Point3d.create(0, 0), 2.0, sweep);\r\n if (arc0.sweep.isFullCircle) {\r\n result.push(Loop.create(arc0));\r\n } else {\r\n const chord = LineSegment3d.create(arc0.endPoint(), arc0.startPoint());\r\n result.push(Loop.create(arc0, chord));\r\n result.push(Loop.create(arc0, LineString3d.create(arc0.endPoint(), center, arc0.startPoint())));\r\n }\r\n\r\n }\r\n return result;\r\n }\r\n\r\n /** Assorted loops in xy plane:\r\n * * unit square\r\n * * rectangle\r\n * * L shape\r\n */\r\n public static createSimpleXYPointLoops(): Point3d[][] {\r\n const result = [];\r\n result.push(Sample.createRectangleXY(0, 0, 1, 1));\r\n result.push(Sample.createRectangleXY(0, 0, 4, 3));\r\n result.push(Sample.createLShapedPolygon(0, 0, 5, 4, 1, 2));\r\n return result;\r\n }\r\n /** Assorted `ParityRegion` objects */\r\n public static createSimpleParityRegions(includeBCurves: boolean = false): ParityRegion[] {\r\n const pointC = Point3d.create(-5, 0, 0);\r\n const point0 = Point3d.create(0, 0, 0);\r\n const point1 = Point3d.create(4, 2, 0);\r\n const point2 = Point3d.create(6, 4, 0);\r\n const point3 = Point3d.create(5, 5, 0);\r\n const point4 = Point3d.create(8, 3, 0);\r\n\r\n const reverseSweep = AngleSweep.createStartEndDegrees(0, -360);\r\n const ax = 10.0;\r\n const ay = 8.0;\r\n const bx = -3.0;\r\n const by = 2.0;\r\n const r2 = 0.5;\r\n const r2A = 2.5;\r\n const pointA = point0.plusXYZ(ax, 0, 0);\r\n const pointB = pointA.plusXYZ(0, ay, 0);\r\n const pointC1 = point0.plusXYZ(0, ay);\r\n\r\n const result = [\r\n ParityRegion.create(\r\n Loop.create(LineString3d.create(point0, pointA, pointB), Arc3d.createCircularStartMiddleEnd(pointB, pointC1, point0)!),\r\n Loop.create(LineString3d.createRectangleXY(point1, bx, by))),\r\n ParityRegion.create(\r\n Loop.create(\r\n Arc3d.createXY(pointC, 2.0)),\r\n Loop.create(Arc3d.createXY(pointC, 1.0, reverseSweep))),\r\n ParityRegion.create(\r\n Loop.create(LineString3d.createRectangleXY(point0, ax, ay)),\r\n Loop.create(LineString3d.createRectangleXY(point1, bx, by))),\r\n ParityRegion.create(\r\n Loop.create(LineString3d.createRectangleXY(point0, ax, ay)),\r\n Loop.create(LineString3d.createRectangleXY(point1, bx, by)),\r\n Loop.create(Arc3d.createXY(point2, r2, reverseSweep))),\r\n ParityRegion.create(\r\n Loop.create(LineString3d.createRectangleXY(point0, ax, ay)),\r\n Loop.create(LineString3d.createRectangleXY(point1, bx, by)),\r\n Loop.create(Arc3d.createXY(point2, r2, reverseSweep)),\r\n Loop.create(LineString3d.createRectangleXY(point3, bx, by))),\r\n ParityRegion.create(\r\n Loop.create(LineString3d.create(point0, pointA, pointB), Arc3d.createCircularStartMiddleEnd(pointB, pointC1, point0)!),\r\n Loop.create(LineString3d.createRectangleXY(point1, bx, by)),\r\n Loop.create(Arc3d.create(point4, Vector3d.create(-r2, 0), Vector3d.create(0, r2A))),\r\n Loop.create(LineString3d.createRectangleXY(point3, bx, by))),\r\n ];\r\n if (includeBCurves) {\r\n const ey = 1.0;\r\n result.push(\r\n ParityRegion.create(Loop.create(\r\n LineSegment3d.create(point0, pointA),\r\n BSplineCurve3d.createUniformKnots(\r\n [pointA, Point3d.create(ax + 1, ey),\r\n Point3d.create(ax + 1, 2 * ey),\r\n Point3d.create(ax + 2, 3 * ey),\r\n Point3d.create(ax + 1, 4 * ey), pointB], 3)!,\r\n Arc3d.createCircularStartMiddleEnd(pointB, pointC1, point0)!)));\r\n }\r\n return result;\r\n }\r\n /** Union region. */\r\n public static createSimpleUnions(): UnionRegion[] {\r\n const parityRegions = Sample.createSimpleParityRegions();\r\n const parityRange = parityRegions[0].range();\r\n const ax = 3.0;\r\n const ay = 1.0;\r\n const bx = 4.0;\r\n const by = 2.0;\r\n const result = [\r\n UnionRegion.create(\r\n Loop.create(LineString3d.createRectangleXY(Point3d.create(0, 0, 0), ax, ay)),\r\n Loop.create(LineString3d.createRectangleXY(Point3d.create(0, 2 * ay, 0), bx, by))),\r\n UnionRegion.create(\r\n Loop.create(LineString3d.create(Sample.createRectangleXY(parityRange.low.x, parityRange.high.y + 0.5, parityRange.xLength(), parityRange.yLength()))),\r\n parityRegions[0])];\r\n return result;\r\n }\r\n /** Assorted unstructured curve sets. */\r\n public static createBagOfCurves(): BagOfCurves[] {\r\n const parityRegions = Sample.createSimpleParityRegions();\r\n const loops = Sample.createSimpleLoops();\r\n const result = [\r\n BagOfCurves.create(loops[0], parityRegions[0], LineSegment3d.createXYXY(0, 1, 4, 2, 1)),\r\n // a bag with just an arc\r\n BagOfCurves.create(Arc3d.createUnitCircle()),\r\n // a bag with just a line segment\r\n BagOfCurves.create(LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(1, 1, 0))),\r\n // a bag with just a linestring\r\n BagOfCurves.create(LineString3d.create(Point3d.create(0, 0, 0), Point3d.create(1, 1, 0), Point3d.create(2, 1, 0))),\r\n ];\r\n return result;\r\n }\r\n\r\n /** Assorted smooth curve primitives:\r\n * * line segments\r\n * * arcs\r\n */\r\n public static createSmoothCurvePrimitives(size: number = 1.0): CurvePrimitive[] {\r\n const alpha = 0.1;\r\n const beta = 0.3;\r\n return [\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(size, 0, 0)),\r\n LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(size, size, 0)),\r\n Arc3d.create(\r\n Point3d.create(0, 0, 0),\r\n Vector3d.create(size, 0, 0),\r\n Vector3d.create(0, size, 0),\r\n AngleSweep.createStartEndDegrees(0, 90)),\r\n Arc3d.create(\r\n Point3d.create(0, 0, 0),\r\n Vector3d.create(size, 0, 0),\r\n Vector3d.create(0, size, 0),\r\n AngleSweep.createStartEndDegrees(-40, 270)),\r\n Arc3d.create(\r\n Point3d.create(0, 0, 0),\r\n Vector3d.create(size, alpha * size, 0),\r\n Vector3d.create(-alpha * beta * size, beta * size, 0),\r\n AngleSweep.createStartEndDegrees(-40, 270)),\r\n ];\r\n }\r\n /** assorted small polyface grids, possibly expanded by gridMultiplier */\r\n public static createSimpleIndexedPolyfaces(gridMultiplier: number): IndexedPolyface[] {\r\n const meshes = [\r\n Sample.createTriangularUnitGridPolyface(\r\n Point3d.create(),\r\n Vector3d.unitX(),\r\n Vector3d.unitY(),\r\n gridMultiplier * 3, 2 * gridMultiplier, false, false, false),\r\n Sample.createTriangularUnitGridPolyface(\r\n Point3d.create(),\r\n Vector3d.unitX(),\r\n Vector3d.unitY(),\r\n 3 * gridMultiplier, 2 * gridMultiplier, true, false, false),\r\n Sample.createTriangularUnitGridPolyface(\r\n Point3d.create(),\r\n Vector3d.unitX(),\r\n Vector3d.unitY(),\r\n 3 * gridMultiplier, 2 * gridMultiplier, false, true, false),\r\n Sample.createTriangularUnitGridPolyface(\r\n Point3d.create(),\r\n Vector3d.unitX(),\r\n Vector3d.unitY(),\r\n 3 * gridMultiplier, 2 * gridMultiplier, false, false, true),\r\n Sample.createTriangularUnitGridPolyface(\r\n Point3d.create(),\r\n Vector3d.unitX(),\r\n Vector3d.unitY(),\r\n 3 * gridMultiplier, 2 * gridMultiplier, true, true, true),\r\n ];\r\n for (const m of meshes)\r\n m.expectedClosure = 1;\r\n return meshes;\r\n }\r\n /**\r\n * Build a mesh that is a (possibly skewed) grid in a plane.\r\n * @param origin \"lower left\" coordinate\r\n * @param vectorX step in \"X\" direction\r\n * @param vectorY step in \"Y\" direction\r\n * @param numXVertices number of vertices in X direction\r\n * @param numYVertices number of vertices in y direction\r\n * @param createParams true to create parameters, with parameter value `(i,j)` for point at (0 based) vertex in x,y directions\r\n * @param createNormals true to create a (single) normal indexed from all facets\r\n * @param createColors true to create a single color on each quad. (shared between its triangles)\r\n * @note edgeVisible is false only on the diagonals\r\n */\r\n public static createTriangularUnitGridPolyface(origin: Point3d, vectorX: Vector3d, vectorY: Vector3d,\r\n numXVertices: number, numYVertices: number, createParams: boolean = false, createNormals: boolean = false, createColors: boolean = false, triangulate: boolean = true): IndexedPolyface {\r\n const mesh = IndexedPolyface.create(createNormals, createParams, createColors);\r\n const normal = vectorX.crossProduct(vectorY);\r\n if (createNormals) {\r\n normal.normalizeInPlace();\r\n mesh.addNormalXYZ(normal.x, normal.y, normal.z); // use XYZ to help coverage count!!\r\n }\r\n\r\n // Push to coordinate arrays\r\n for (let j = 0; j < numYVertices; j++) {\r\n for (let i = 0; i < numXVertices; i++) {\r\n mesh.addPoint(origin.plus2Scaled(vectorX, i, vectorY, j));\r\n if (createParams)\r\n mesh.addParamUV(i, j);\r\n }\r\n }\r\n let color = 10; // arbitrarily start at color 10 so colorIndex is different from color.\r\n // Push elements to index array (vertices are calculated using i and j positioning for each point)\r\n let thisColorIndex = 0;\r\n for (let j = 0; j + 1 < numYVertices; j++) {\r\n for (let i = 0; i + 1 < numXVertices; i++) {\r\n const vertex00 = numXVertices * j + i;\r\n const vertex10 = vertex00 + 1;\r\n const vertex01 = vertex00 + numXVertices;\r\n const vertex11 = vertex01 + 1;\r\n if (triangulate) {\r\n // Push lower triangle\r\n mesh.addPointIndex(vertex00, true); mesh.addPointIndex(vertex10, true); mesh.addPointIndex(vertex11, false);\r\n // make color === faceIndex\r\n if (createColors) {\r\n thisColorIndex = mesh.addColor(color++);\r\n mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex);\r\n }\r\n // param indexing matches points . .\r\n if (createParams) {\r\n mesh.addParamIndex(vertex00); mesh.addParamIndex(vertex10); mesh.addParamIndex(vertex11);\r\n }\r\n\r\n if (createNormals) {\r\n mesh.addNormalIndex(0); mesh.addNormalIndex(0); mesh.addNormalIndex(0);\r\n }\r\n mesh.terminateFacet(false);\r\n\r\n // upper triangle\r\n mesh.addPointIndex(vertex11, true); mesh.addPointIndex(vertex01, true); mesh.addPointIndex(vertex00, false);\r\n // make color === faceIndex\r\n if (createColors) {\r\n mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex);\r\n }\r\n // param indexing matches points.\r\n if (createParams) {\r\n mesh.addParamIndex(vertex11); mesh.addParamIndex(vertex01); mesh.addParamIndex(vertex00);\r\n }\r\n if (createNormals) {\r\n mesh.addNormalIndex(0); mesh.addNormalIndex(0); mesh.addNormalIndex(0);\r\n }\r\n mesh.terminateFacet(false);\r\n } else {\r\n // Push quad\r\n mesh.addPointIndex(vertex00, true); mesh.addPointIndex(vertex10, true); mesh.addPointIndex(vertex11, true); mesh.addPointIndex(vertex01, true);\r\n // make color === faceIndex\r\n if (createColors) {\r\n thisColorIndex = mesh.addColor(color++);\r\n mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex); mesh.addColorIndex(thisColorIndex);\r\n }\r\n // param indexing matches points . .\r\n if (createParams) {\r\n mesh.addParamIndex(vertex00); mesh.addParamIndex(vertex10); mesh.addParamIndex(vertex11); mesh.addParamIndex(vertex01);\r\n }\r\n\r\n if (createNormals) {\r\n mesh.addNormalIndex(0); mesh.addNormalIndex(0); mesh.addNormalIndex(0); mesh.addNormalIndex(0);\r\n }\r\n mesh.terminateFacet(false);\r\n\r\n }\r\n }\r\n }\r\n return mesh;\r\n }\r\n /** Create an xy grid of points in single array with x varying fastest. */\r\n public static createXYGrid(numU: number, numV: number, dX: number = 1.0, dY: number = 1.0): Point3d[] {\r\n const points = [];\r\n for (let j = 0; j < numV; j++) {\r\n for (let i = 0; i < numU; i++) {\r\n points.push(Point3d.create(i * dX, j * dY, 0));\r\n }\r\n }\r\n return points;\r\n }\r\n /** Create simple bspline surface on xy plane grid. */\r\n public static createXYGridBsplineSurface(numU: number, numV: number, orderU: number, orderV: number): BSplineSurface3d | undefined {\r\n return BSplineSurface3d.create(\r\n Sample.createXYGrid(numU, numV, 1.0, 1.0), numU, orderU, undefined, numV, orderV, undefined);\r\n }\r\n /**\r\n * Create a bspline surface whose poles area on circular paths.\r\n * * (BUT not weighted bspline, therefore although u and v isolines \"go around\" they are not true circles.)\r\n * @param radiusU major radius\r\n * @param radiusV minor radius\r\n * @param numU number of facets around major hoop\r\n * @param numV number of facets around minor hoop\r\n * @param orderU major hoop order\r\n * @param orderV minor hoop order\r\n */\r\n public static createPseudoTorusBsplineSurface(radiusU: number, radiusV: number, numU: number, numV: number, orderU: number, orderV: number): BSplineSurface3d | undefined {\r\n const points = [];\r\n const numUPole = numU + orderU - 1;\r\n const numVPole = numV + orderV - 1;\r\n const uKnots = KnotVector.createUniformWrapped(numU, orderU - 1, 0, 1);\r\n const vKnots = KnotVector.createUniformWrapped(numV, orderV - 1, 0, 1);\r\n const dURadians = 2.0 * Math.PI / numU;\r\n const dVRadians = 2.0 * Math.PI / numV;\r\n for (let iV = 0; iV < numVPole; iV++) {\r\n const vRadians = iV * dVRadians;\r\n const cV = Math.cos(vRadians);\r\n const sV = Math.sin(vRadians);\r\n for (let iU = 0; iU < numUPole; iU++) {\r\n const uRadians = iU * dURadians;\r\n const cU = Math.cos(uRadians);\r\n const sU = Math.sin(uRadians);\r\n const rho = radiusU + cV * radiusV;\r\n points.push(Point3d.create(rho * cU, rho * sU, sV * radiusV));\r\n\r\n }\r\n }\r\n const result = BSplineSurface3d.create(points, numUPole, orderU, uKnots.knots, numVPole, orderV, vKnots.knots);\r\n if (result) {\r\n result.setWrappable(0, BSplineWrapMode.OpenByAddingControlPoints);\r\n result.setWrappable(1, BSplineWrapMode.OpenByAddingControlPoints);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Create a Bspline surface for a cone.\r\n * @param centerA center at section A\r\n * @param centerB center at section B\r\n * @param radiusA radius at point A\r\n * @param radiusB radius at point B\r\n */\r\n public static createConeBsplineSurface(\r\n centerA: Point3d,\r\n centerB: Point3d,\r\n radiusA: number,\r\n radiusB: number,\r\n numSection: number): BSplineSurface3dH | undefined {\r\n if (numSection < 2)\r\n numSection = 2;\r\n const controlPoints: number[][][] = [];\r\n const numVPole = numSection;\r\n const q1 = 0.25;\r\n const q2 = 0.5;\r\n const q3 = 0.75;\r\n\r\n const uKnots = [0, 0, q1, q1, q2, q2, q3, q3, 1, 1];\r\n const vKnots = [];\r\n const dv = 1.0 / (numSection - 1);\r\n for (let i = 0; i < numSection; i++) {\r\n vKnots.push(i * dv);\r\n }\r\n const center = Point3d.create();\r\n const vectorAB = Vector3d.createStartEnd(centerA, centerB);\r\n const axes = Matrix3d.createRigidHeadsUp(vectorAB, AxisOrder.ZXY);\r\n let r0, r90, v;\r\n for (let iV = 0; iV < numVPole; iV++) {\r\n v = iV * dv;\r\n centerA.interpolate(v, centerB, center);\r\n r0 = r90 = Geometry.interpolate(radiusA, v, radiusB);\r\n controlPoints.push(Sample.createBsplineArc90SectionToXYZWArrays(center, axes, r0, r90, false));\r\n }\r\n\r\n const result = BSplineSurface3dH.createGrid(controlPoints,\r\n WeightStyle.WeightsSeparateFromCoordinates,\r\n 3, uKnots, 2, vKnots);\r\n // if (result) {\r\n // result.setWrappable(0, BSplineWrapMode.OpenByAddingControlPoints);\r\n // result.setWrappable(1, BSplineWrapMode.OpenByAddingControlPoints);\r\n // }\r\n return result;\r\n }\r\n /** Create bspline surface on xy grid with weights. */\r\n public static createWeightedXYGridBsplineSurface(\r\n numU: number, numV: number, orderU: number, orderV: number,\r\n weight00: number = 1.0,\r\n weight10: number = 1.0,\r\n weight01: number = 1.0,\r\n weight11: number = 1.0): BSplineSurface3dH | undefined {\r\n const xyzPoles = Sample.createXYGrid(numU, numV, 1.0, 1.0);\r\n const weights = [];\r\n for (let i = 0; i < numU; i++)\r\n for (let j = 0; j < numV; j++) {\r\n const wu0 = Geometry.interpolate(weight00, i / (numU - 1), weight10);\r\n const wu1 = Geometry.interpolate(weight01, i / (numU - 1), weight11);\r\n weights.push(Geometry.interpolate(wu0, j / (numV - 1), wu1));\r\n }\r\n\r\n return BSplineSurface3dH.create(xyzPoles,\r\n weights,\r\n numU, orderU, undefined,\r\n numV, orderV, undefined);\r\n }\r\n /** assorted linear sweeps */\r\n public static createSimpleLinearSweeps(): LinearSweep[] {\r\n const result: LinearSweep[] = [];\r\n const base = Loop.create(LineString3d.createRectangleXY(Point3d.create(), 2, 3));\r\n const vectorZ = Vector3d.create(0, 0, 1.234);\r\n const vectorQ = Vector3d.create(0.1, 0.21, 1.234);\r\n result.push(LinearSweep.create(base, vectorZ, false) as LinearSweep);\r\n result.push(LinearSweep.create(base, vectorZ, true) as LinearSweep);\r\n result.push(LinearSweep.create(base, vectorQ, false) as LinearSweep);\r\n result.push(LinearSweep.create(base, vectorQ, true) as LinearSweep);\r\n result.push(LinearSweep.create(Sample.createCappedArcLoop(5, -45, 90), vectorQ, true) as LinearSweep);\r\n for (const curve of Sample.createSmoothCurvePrimitives()) {\r\n const path = Path.create(curve);\r\n result.push(LinearSweep.create(path, vectorZ, false)!);\r\n }\r\n // coordinates for a clearly unclosed linestring ....\r\n const xyPoints = [\r\n Point2d.create(0, 0),\r\n Point2d.create(1, 0),\r\n Point2d.create(1, 1)];\r\n\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, false)!);\r\n // this forces artificial closure point . . .\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, true)!);\r\n\r\n // add a not-quite-exact closure point ...\r\n const e = 1.0e-11;\r\n xyPoints.push(Point2d.create(e, e));\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, false)!);\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, true)!);\r\n // make it a better closure\r\n xyPoints.pop();\r\n xyPoints.push(xyPoints[0]);\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, false)!);\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, 3, true)!);\r\n // negative sweep ...\r\n result.push(LinearSweep.createZSweep(xyPoints, 1, -3, true)!);\r\n return result;\r\n }\r\n /**\r\n * Create an array of primitives with an arc centered at origin and a line segment closing back to the arc start.\r\n * This can be bundled into Path or Loop by caller.\r\n */\r\n public static createCappedArcPrimitives(radius: number, startDegrees: number, endDegrees: number): CurvePrimitive[] {\r\n const arc = Arc3d.create(\r\n Point3d.create(0, 0, 0),\r\n Vector3d.unitX(radius),\r\n Vector3d.unitY(radius),\r\n AngleSweep.createStartEndDegrees(startDegrees, endDegrees));\r\n return [arc, LineSegment3d.create(arc.fractionToPoint(1.0), arc.fractionToPoint(0.0))];\r\n }\r\n /** Return a Path structure for a segment of arc, with closure segment */\r\n public static createCappedArcPath(radius: number, startDegrees: number, endDegrees: number): Path {\r\n return Path.createArray(Sample.createCappedArcPrimitives(radius, startDegrees, endDegrees));\r\n }\r\n /** Return a Loop structure for a segment of arc, with closure segment */\r\n public static createCappedArcLoop(radius: number, startDegrees: number, endDegrees: number): Loop {\r\n return Loop.createArray(Sample.createCappedArcPrimitives(radius, startDegrees, endDegrees));\r\n }\r\n /** Create assorted rotational sweeps. */\r\n public static createSimpleRotationalSweeps(): RotationalSweep[] {\r\n const result: RotationalSweep[] = [];\r\n // rectangle in xy plane\r\n const base = Loop.create(LineString3d.createRectangleXY(Point3d.create(1, 0, 0), 2, 3));\r\n // rotate around the y axis\r\n for (const axis of [\r\n Ray3d.createXYZUVW(0, 0, 0, 0, 1, 0),\r\n Ray3d.createXYZUVW(5, 0, 0, 0, 1, 0),\r\n Ray3d.createXYZUVW(-1, 0, 0, -1, 1, 0)]) {\r\n result.push(RotationalSweep.create(base, axis, Angle.createDegrees(45.0), false) as RotationalSweep);\r\n result.push(RotationalSweep.create(base, axis, Angle.createDegrees(150.0), true) as RotationalSweep);\r\n }\r\n\r\n return result;\r\n }\r\n /** Create assorted spheres */\r\n public static createSpheres(includeEllipsoidal: boolean = false): Sphere[] {\r\n const result: Sphere[] = [];\r\n result.push(Sphere.createCenterRadius(Point3d.create(0, 0, 0), 1.0));\r\n result.push(Sphere.createCenterRadius(Point3d.create(1, 2, 3), 3.0));\r\n const s1 = Sphere.createCenterRadius(Point3d.create(1, 2, 3), 2.0,\r\n AngleSweep.createStartEndDegrees(-45, 80));\r\n s1.capped = true;\r\n result.push(s1);\r\n // still a sphere, but with axes KIJ . .\r\n const s2 = Sphere.createFromAxesAndScales(\r\n Point3d.create(1, 2, 3),\r\n Matrix3d.createRowValues(\r\n 0, 1, 0,\r\n 0, 0, 1,\r\n 1, 0, 0),\r\n 4, 4, 4,\r\n AngleSweep.createStartEndDegrees(-45, 45), true)!;\r\n result.push(s2);\r\n if (includeEllipsoidal)\r\n result.push(Sphere.createDgnSphere(\r\n Point3d.create(1, 2, 3),\r\n Vector3d.unitX(),\r\n Vector3d.unitZ(), 3, 2, AngleSweep.createFullLatitude(), false)!);\r\n return result;\r\n }\r\n /** Create true (non-spherical) ellipsoids. */\r\n public static createEllipsoids(): Sphere[] {\r\n return [\r\n Sphere.createEllipsoid(\r\n Transform.createOriginAndMatrix(\r\n Point3d.create(0, 0, 0),\r\n Matrix3d.createRowValues(\r\n 4, 1, 1,\r\n 1, 4, 1,\r\n 0.5, 0.2, 5)),\r\n AngleSweep.createFullLatitude(),\r\n true)!];\r\n }\r\n /** Create assorted cones. */\r\n public static createCones(): Cone[] {\r\n const result: Cone[] = [];\r\n const origin = Point3d.create(0, 0, 0);\r\n const topZ = Point3d.create(0, 0, 5);\r\n const centerA = Point3d.create(1, 2, 1);\r\n const centerB = Point3d.create(2, 3, 8);\r\n result.push(Cone.createAxisPoints(Point3d.create(0, 0, 0), Point3d.create(0, 0, 1), 0.5, 0.5, false) as Cone);\r\n\r\n result.push(Cone.createAxisPoints(centerA, centerB, 0.5, 0.5, false) as Cone);\r\n result.push(Cone.createAxisPoints(origin, topZ, 1.0, 0.2, true) as Cone);\r\n result.push(Cone.createAxisPoints(centerA, centerB, 0.2, 0.5, false) as Cone);\r\n result.push(Cone.createAxisPoints(origin, centerB, 1.0, 0.0, false) as Cone);\r\n result.push(Cone.createAxisPoints(topZ, origin, 0.0, 1.0, true) as Cone);\r\n return result;\r\n }\r\n /** Return a TorusPipe with swept circle in xz plane rotating through an angle range around the Z axis. */\r\n public static createPartialTorusAroundZ(majorRadius: number, majorSweep: Angle, minorRadius: number, minorStart: Angle, minorEnd: Angle): RotationalSweep{\r\n const arc = Arc3d.createXYZXYZXYZ(\r\n majorRadius, 0, 0,\r\n minorRadius, 0, 0,\r\n 0, minorRadius, 0,\r\n AngleSweep.createStartEnd(minorStart, minorEnd));\r\n const contour = Path.create(arc);\r\n return RotationalSweep.create(contour, Ray3d.createZAxis(), majorSweep, false)!;\r\n }\r\n /** Create assorted Torus Pipes */\r\n public static createTorusPipes(): TorusPipe[] {\r\n const result: TorusPipe[] = [];\r\n const center = Point3d.create(1, 2, 3);\r\n\r\n const frame = Matrix3d.createRotationAroundVector(\r\n Vector3d.create(1, 2, 3), Angle.createRadians(10)) as Matrix3d;\r\n const vectorX = frame.columnX();\r\n const vectorY = frame.columnY();\r\n const vectorZ = frame.columnZ();\r\n result.push(TorusPipe.createInFrame(Transform.createIdentity(), 5.0, 0.8, Angle.create360(), false)!);\r\n result.push(TorusPipe.createInFrame(Transform.createIdentity(), 5.0, 1.0, Angle.createDegrees(90), true)!);\r\n result.push(TorusPipe.createDgnTorusPipe(center, vectorX, vectorY, 10, 1, Angle.createDegrees(180), true)!);\r\n\r\n result.push(TorusPipe.createDgnTorusPipe(center, vectorY, vectorZ, 10, 1, Angle.createDegrees(45), true) as TorusPipe);\r\n\r\n return result;\r\n }\r\n /** Create assorted boxes. */\r\n public static createBoxes(capped: boolean = true): Box[] {\r\n const result: Box[] = [];\r\n const cornerA = Point3d.create(1, 2, 3);\r\n const aX = 3.0;\r\n const aY = 2.0;\r\n const bX = 1.5;\r\n const bY = 1.0;\r\n const h = 5.0;\r\n const frame = Matrix3d.createRotationAroundVector(\r\n Vector3d.create(0, 0, 1), Angle.createDegrees(10)) as Matrix3d;\r\n const vectorX = frame.columnX();\r\n const vectorY = frame.columnY();\r\n const cornerB = Matrix3d.xyzPlusMatrixTimesCoordinates(cornerA, frame, 0, 0, h);\r\n result.push(Box.createDgnBox(cornerA, Vector3d.unitX(), Vector3d.unitY(),\r\n cornerB, aX, aY, aX, aY, capped) as Box);\r\n\r\n result.push(Box.createDgnBox(cornerA, Vector3d.unitX(), Vector3d.unitY(),\r\n cornerB, aX, aY, bX, bY, capped) as Box);\r\n result.push(Box.createDgnBox(cornerA, vectorX, vectorY, cornerB, aX, aY, bX, bY, capped) as Box);\r\n\r\n const frameY = Matrix3d.createRotationAroundVector(\r\n Vector3d.create(0, 1, 0), Angle.createDegrees(10)) as Matrix3d;\r\n result.push(Box.createDgnBox(cornerA, frameY.columnX(), frameY.columnY(),\r\n cornerA.plusScaled(frameY.columnZ(), h), aX, aY, bX, bY, capped) as Box);\r\n return result;\r\n }\r\n /** create an array of points for a rectangle with corners (x0,y0,z) and (x1,y1,z)\r\n */\r\n public static createRectangle(x0: number, y0: number, x1: number, y1: number, z: number = 0.0, closed: boolean = false): Point3d[] {\r\n const points = [\r\n Point3d.create(x0, y0, z),\r\n Point3d.create(x1, y0, z),\r\n Point3d.create(x1, y1, z),\r\n Point3d.create(x0, y1, z),\r\n ];\r\n if (closed)\r\n points.push(Point3d.create(x0, y0, z));\r\n return points;\r\n }\r\n /** create an array of points for a rectangle with corners of a Range2d.\r\n */\r\n public static createRectangleInRange2d(range: Range2d, z: number = 0.0, closed: boolean = false): Point3d[] {\r\n const x0 = range.low.x;\r\n const x1 = range.high.x;\r\n const y0 = range.low.y;\r\n const y1 = range.high.y;\r\n return this.createRectangle(x0, y0, x1, y1, z, closed);\r\n }\r\n\r\n /** Create assorted ruled sweeps */\r\n public static createRuledSweeps(includeParityRegion: boolean = false, includeBagOfCurves: boolean = false): RuledSweep[] {\r\n const allSweeps = [];\r\n const contour0 = Loop.create(LineString3d.create(this.createRectangleXY(0, 0, 3, 2, 0)));\r\n const contour1 = Loop.create(LineString3d.create(this.createRectangleXY(0, 0, 3, 2.5, 2)));\r\n const contour2 = Loop.create(LineString3d.create(this.createRectangleXY(0, 0, 4, 3.5, 4)));\r\n const contour3 = Loop.create(LineString3d.create(this.createRectangleXY(0, 0, 2, 1, 7)));\r\n const allContours = [contour0, contour1, contour2];\r\n allSweeps.push(RuledSweep.create([contour0, contour1], true) as RuledSweep);\r\n allSweeps.push(RuledSweep.create([contour0, contour1, contour2], true) as RuledSweep);\r\n allSweeps.push(RuledSweep.create([contour0, contour1, contour2, contour3], true) as RuledSweep);\r\n allSweeps.push(RuledSweep.create(allContours, false) as RuledSweep);\r\n\r\n const curves = Sample.createSmoothCurvePrimitives();\r\n for (const c of curves) {\r\n const frame = c.fractionToFrenetFrame(0.0);\r\n if (frame) {\r\n const perpVector = frame.matrix.columnZ();\r\n perpVector.scaleInPlace(10.0);\r\n const c1 = c.cloneTransformed(Transform.createTranslation(perpVector)) as CurvePrimitive;\r\n allSweeps.push(RuledSweep.create([Path.create(c), Path.create(c1)], false)!);\r\n }\r\n }\r\n if (includeParityRegion) {\r\n const outer = Loop.create(LineString3d.create(this.createRectangleXY(0, 0, 5, 6, 0)));\r\n const inner = Loop.create(LineString3d.create(this.createRectangleXY(1, 1, 2, 3, 0)));\r\n const contourA = ParityRegion.create(outer, inner);\r\n const contourB = contourA.clone();\r\n contourB.tryTranslateInPlace(0, 0, 2);\r\n allSweeps.push(RuledSweep.create([contourA, contourB], false)!);\r\n }\r\n if (includeBagOfCurves) {\r\n const contourA = BagOfCurves.create(LineSegment3d.createXYZXYZ(1, 1, 0, 3, 1, 0));\r\n const contourB = BagOfCurves.create(LineSegment3d.createXYZXYZ(1, 1, 1, 3, 1, 1));\r\n allSweeps.push(RuledSweep.create([contourA, contourB], false)!);\r\n }\r\n\r\n return allSweeps;\r\n }\r\n /**\r\n * Uniformly spaced numbers\r\n * @param a0 first entry\r\n * @param delta step between entries\r\n * @param n number of entries\r\n */\r\n public static createGrowableArrayCountedSteps(a0: number, delta: number, n: number): GrowableFloat64Array {\r\n const data = new GrowableFloat64Array(n);\r\n for (let i = 0; i < n; i++)\r\n data.push(a0 + i * delta);\r\n return data;\r\n }\r\n /**\r\n * Create points on a unit circle\r\n * @param radius first entry\r\n * @param numEdge number of edges of chorded circle. Angle step is 2PI/numEdge (whether or not closed)\r\n * @param closed true to include final point (i.e. return numEdge+1 points)\r\n */\r\n public static createGrowableArrayCirclePoints(radius: number, numEdge: number, closed: boolean = false,\r\n centerX: number = 0, centerY: number = 0, data?: GrowableXYZArray): GrowableXYZArray {\r\n if (!data) data = new GrowableXYZArray();\r\n data.ensureCapacity(numEdge + (closed ? 1 : 0));\r\n const delta = 2.0 * Math.PI / numEdge;\r\n for (let i = 0; i < numEdge; i++) {\r\n const radians = i * delta;\r\n data.push(Point3d.create(centerX + radius * Math.cos(radians), centerY + radius * Math.sin(radians)));\r\n }\r\n return data;\r\n }\r\n\r\n private static pushIfDistinct(points: Point3d[], xyz: Point3d, tol: number = 1.0e-12) {\r\n if (points.length === 0 || points[points.length - 1].distanceXY(xyz) > tol)\r\n points.push(xyz);\r\n }\r\n\r\n private static appendToFractalEval(points: Point3d[], pointA: Point3d, pointB: Point3d, pattern: Point2d[], numRecursion: number, perpendicularFactor: number) {\r\n const point0 = pointA.clone();\r\n Sample.pushIfDistinct(points, pointA);\r\n\r\n for (const uv of pattern) {\r\n const point1 = pointA.interpolatePerpendicularXY(uv.x, pointB, perpendicularFactor * uv.y);\r\n if (numRecursion > 0)\r\n Sample.appendToFractalEval(points, point0, point1, pattern, numRecursion - 1, perpendicularFactor);\r\n Sample.pushIfDistinct(points, point1);\r\n point0.setFrom(point1);\r\n }\r\n\r\n Sample.pushIfDistinct(points, pointB);\r\n }\r\n\r\n /**\r\n * For each edge of points, construct a transform (with scale, rotate, and translate) that spreads the patter out along the edge.\r\n * Repeat recursively for each edge\r\n * @returns Returns an array of recursively generated fractal points\r\n * @param poles level-0 (coarse) polygon whose edges are to be replaced by recursive fractals\r\n * @param pattern pattern to map to each edge of poles (and to edges of the recursion)\r\n * @param numRecursion number of recursions\r\n * @param perpendicularFactor factor to apply to perpendicular sizing.\r\n */\r\n public static createRecursiveFractalPolygon(poles: Point3d[], pattern: Point2d[], numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const points: Point3d[] = [];\r\n Sample.pushIfDistinct(points, poles[0]);\r\n for (let i = 0; i + 1 < poles.length; i++) {\r\n if (numRecursion > 0)\r\n Sample.appendToFractalEval(points, poles[i], poles[i + 1], pattern, numRecursion - 1, perpendicularFactor);\r\n Sample.pushIfDistinct(points, poles[i + 1]);\r\n }\r\n return points;\r\n }\r\n\r\n /** Primary shape is a \"triangle\" with lower edge pushed in so it becomes a mild nonconvex quad.\r\n * Fractal effects are gentle.\r\n */\r\n public static nonConvexQuadSimpleFractal(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.5, 0.1),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(0, 0, 0),\r\n Point3d.create(0.6, 0.1, 0),\r\n Point3d.create(1, 0.1, 0),\r\n Point3d.create(0.6, 1, 0),\r\n Point3d.create(),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n\r\n /** create a diamond with convex fractal */\r\n public static createFractalDiamondConvexPattern(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.3, 0.05),\r\n Point2d.create(0.5, 0.10),\r\n Point2d.create(0.7, 0.04),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(0, -1, 0),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(0, 1, 0),\r\n Point3d.create(-1, 0, 0),\r\n Point3d.create(0, -1, 0),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n /** Create l on a square, with pattern shift to both directions. */\r\n public static createFractalSquareReversingPattern(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.25, 0),\r\n Point2d.create(0.5, 0.2),\r\n Point2d.create(0.75, -0.1),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0),\r\n Point3d.create(0, 1, 0),\r\n Point3d.create(0, 0, 0),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n /** Create a fractal on a non-convex base and reversing pattern */\r\n public static createFractalHatReversingPattern(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.25, 0),\r\n Point2d.create(0.25, 0.1),\r\n Point2d.create(0.50, 0.1),\r\n Point2d.create(0.50, -0.1),\r\n Point2d.create(0.75, -0.1),\r\n Point2d.create(0.75, 0),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0),\r\n Point3d.create(0, 1, 0),\r\n Point3d.create(0, 0, 0),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n /** Create a fractal on a primary L shape with a reversing pattern */\r\n public static createFractalLReversingPattern(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.25, 0),\r\n Point2d.create(0.5, 0.2),\r\n Point2d.create(0.75, -0.1),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0),\r\n Point3d.create(2, 2, 0),\r\n Point3d.create(2, 3, 0),\r\n Point3d.create(0, 3, 0),\r\n Point3d.create(),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n\r\n /** Fractal with fewer concavity changes.... */\r\n public static createFractalLMildConcavePatter(numRecursion: number, perpendicularFactor: number): Point3d[] {\r\n const pattern: Point2d[] = [\r\n Point2d.create(),\r\n Point2d.create(0.25, 0.05),\r\n Point2d.create(0.5, 0.15),\r\n Point2d.create(0.75, 0.05),\r\n Point2d.create(1.0, 0.0),\r\n ];\r\n const poles: Point3d[] = [\r\n Point3d.create(),\r\n Point3d.create(1, 0, 0),\r\n Point3d.create(1, 1, 0),\r\n Point3d.create(2, 2, 0),\r\n Point3d.create(1.5, 3, 0),\r\n Point3d.create(0, 3, 0),\r\n Point3d.create(),\r\n ];\r\n return Sample.createRecursiveFractalPolygon(poles, pattern, numRecursion, perpendicularFactor);\r\n }\r\n /** append interpolated points from the array tail to the target. */\r\n public static appendSplits(points: Point3d[], target: Point3d, numSplit: number, includeTarget: boolean) {\r\n const pointA = points[points.length - 1];\r\n for (let i = 0; i < numSplit; i++)\r\n points.push(pointA.interpolate(i / numSplit, target));\r\n if (includeTarget)\r\n points.push(target);\r\n }\r\n /**\r\n * Triangle with 3 given vertices, and indicated extra points on each each.\r\n * @param numSplitAB number of extra points on edge AB\r\n * @param numSplitBC number of extra points on edge BC\r\n * @param numSplitCA number of extra points on edge CA\r\n * @param wrap true to replicate vertexA at end\r\n * @param xyzA vertexA\r\n * @param xyzB vertexB\r\n * @param xyzC vertexC\r\n */\r\n public static createTriangleWithSplitEdges(\r\n numSplitAB: number,\r\n numSplitBC: number,\r\n numSplitCA: number,\r\n wrap: boolean = true,\r\n xyzA: Point3d = Point3d.create(0, 0, 0),\r\n xyzB: Point3d = Point3d.create(1, 0, 0),\r\n xyzC: Point3d = Point3d.create(0, 1, 0)): Point3d[] {\r\n const result = [xyzA.clone()];\r\n Sample.appendSplits(result, xyzB, numSplitAB, true);\r\n Sample.appendSplits(result, xyzC, numSplitBC, true);\r\n Sample.appendSplits(result, xyzA, numSplitCA, wrap);\r\n return result;\r\n }\r\n /** Create a box (xyz) from half-lengths and center. */\r\n public static createCenteredBoxEdges(ax: number = 1, ay: number = 1, az: number = 0, cx: number = 0, cy: number = 0, cz: number = 0,\r\n geometry?: GeometryQuery[]): GeometryQuery[] {\r\n if (!geometry)\r\n geometry = [];\r\n const x0 = cx - ax;\r\n const y0 = cy - ay;\r\n const z0 = cz - az;\r\n\r\n const x1 = cx + ax;\r\n const y1 = cy + ay;\r\n const z1 = cz + az;\r\n\r\n for (const z of [z0, z1]) {\r\n geometry.push(\r\n LineString3d.create(\r\n Point3d.create(x0, y0, z),\r\n Point3d.create(x1, y0, z),\r\n Point3d.create(x1, y1, z),\r\n Point3d.create(x0, y1, z),\r\n Point3d.create(x0, y0, z)));\r\n }\r\n geometry.push(LineSegment3d.createXYZXYZ(x0, y0, z0, x0, y0, z1));\r\n geometry.push(LineSegment3d.createXYZXYZ(x1, y0, z0, x1, y0, z1));\r\n geometry.push(LineSegment3d.createXYZXYZ(x1, y1, z0, x1, y1, z1));\r\n geometry.push(LineSegment3d.createXYZXYZ(x0, y1, z0, x0, y1, z1));\r\n return geometry;\r\n }\r\n /** Assorted transition spirals\r\n * * (All combinations of bearing radius bearing radius length subsets.)\r\n */\r\n public static createSimpleTransitionSpirals(): TransitionSpiral3d[] {\r\n // 5 spirals exercise the intricate \"4 out of 5\" input rules for spirals . ..\r\n const r1 = 1000.0;\r\n const r0 = 0.0;\r\n const averageCurvature = IntegratedSpiral3d.averageCurvatureR0R1(r0, r1);\r\n const arcLength = 100.0;\r\n const dThetaRadians = arcLength * averageCurvature;\r\n\r\n return [\r\n IntegratedSpiral3d.createFrom4OutOf5(\"clothoid\", r0, r1,\r\n Angle.createDegrees(0), Angle.createRadians(dThetaRadians),\r\n undefined,\r\n undefined, Transform.createIdentity())!,\r\n IntegratedSpiral3d.createFrom4OutOf5(\"bloss\", r0, r1,\r\n Angle.createDegrees(0), undefined,\r\n arcLength,\r\n undefined, Transform.createIdentity())!,\r\n IntegratedSpiral3d.createFrom4OutOf5(\"clothoid\", r0, r1,\r\n undefined, Angle.createRadians(dThetaRadians),\r\n arcLength,\r\n undefined, Transform.createIdentity())!,\r\n IntegratedSpiral3d.createFrom4OutOf5(\"biquadratic\", r0, undefined,\r\n Angle.createDegrees(0), Angle.createRadians(dThetaRadians),\r\n arcLength,\r\n undefined, Transform.createIdentity())!,\r\n IntegratedSpiral3d.createFrom4OutOf5(\"sine\", undefined, r1,\r\n Angle.createDegrees(0), Angle.createRadians(dThetaRadians),\r\n arcLength,\r\n undefined, Transform.createIdentity())!,\r\n IntegratedSpiral3d.createFrom4OutOf5(\"cosine\", r0, r1,\r\n Angle.createDegrees(0), Angle.createRadians(dThetaRadians), undefined,\r\n Segment1d.create(0, 0.5),\r\n Transform.createOriginAndMatrix(Point3d.create(1, 2, 0),\r\n Matrix3d.createRotationAroundVector(Vector3d.unitZ(), Angle.createDegrees(15))))!,\r\n DirectSpiral3d.createFromLengthAndRadius(\"Arema\", r0, r1,\r\n Angle.createDegrees(0), undefined, arcLength,\r\n undefined,\r\n Transform.createOriginAndMatrix(Point3d.create(1, 2, 0),\r\n Matrix3d.createRotationAroundVector(Vector3d.unitZ(), Angle.createDegrees(15))))!,\r\n DirectSpiral3d.createFromLengthAndRadius(\"ChineseCubic\", r0, r1,\r\n Angle.createDegrees(0), undefined, arcLength,\r\n undefined,\r\n Transform.createOriginAndMatrix(Point3d.create(1, 2, 0),\r\n Matrix3d.createRotationAroundVector(Vector3d.unitZ(), Angle.createDegrees(15))))!,\r\n DirectSpiral3d.createFromLengthAndRadius(\"JapaneseCubic\", r0, r1,\r\n Angle.createDegrees(0), undefined, arcLength,\r\n undefined,\r\n Transform.createOriginAndMatrix(Point3d.create(1, 2, 0),\r\n Matrix3d.createRotationAroundVector(Vector3d.unitZ(), Angle.createDegrees(15))))!,\r\n DirectSpiral3d.createFromLengthAndRadius(\"DirectHalfCosine\", r0, r1,\r\n Angle.createDegrees(0), undefined, arcLength,\r\n undefined,\r\n Transform.createOriginAndMatrix(Point3d.create(1, 2, 0),\r\n Matrix3d.createRotationAroundVector(Vector3d.unitZ(), Angle.createDegrees(15))))!,\r\n DirectSpiral3d.createCzechCubic(Transform.createIdentity(), arcLength, r1)!];\r\n }\r\n /** Create a Bezier curve with significant twist effects\r\n * * r and theta are circle in xy plane at steps in thetaStepper\r\n * * z varies with sin(phi) at steps in phiStepper.\r\n */\r\n public static createTwistingBezier(order: number,\r\n x0: number,\r\n y0: number,\r\n r: number,\r\n thetaStepper: AngleSweep,\r\n phiStepper: AngleSweep,\r\n weightInterval?: Segment1d,\r\n ): CurvePrimitive | undefined {\r\n\r\n if (weightInterval !== undefined) {\r\n const points = [];\r\n for (let i = 0; i < order; i++) {\r\n const theta = thetaStepper.fractionToRadians(i);\r\n const phi = phiStepper.fractionToRadians(i);\r\n const weight = weightInterval.fractionToPoint(i / (order - 1));\r\n points.push(Point4d.create(\r\n weight * (x0 + r * Math.cos(theta)),\r\n weight * (y0 + r * Math.sin(theta)),\r\n weight * Math.sin(phi), weight));\r\n }\r\n return BezierCurve3dH.create(points)!;\r\n } else {\r\n const points = [];\r\n for (let i = 0; i < order; i++) {\r\n const theta = thetaStepper.fractionToRadians(i);\r\n const phi = phiStepper.fractionToRadians(i);\r\n points.push(Point3d.create(x0 + r * Math.cos(theta), y0 + r * Math.sin(theta), Math.sin(phi)));\r\n }\r\n return BezierCurve3d.create(points);\r\n }\r\n }\r\n /**\r\n * Create various curve chains with distance indexing.\r\n * * LineSegment\r\n * * CircularArc\r\n * * LineString\r\n * * order 3 bspline\r\n * * order 4 bspline\r\n * * alternating lines and arcs\r\n */\r\n public static createCurveChainWithDistanceIndex(): CurveChainWithDistanceIndex[] {\r\n const pointsA = [Point3d.create(0, 0, 0), Point3d.create(1, 3, 0), Point3d.create(2, 4, 0), Point3d.create(3, 3, 0), Point3d.create(4, 0, 0)];\r\n const result = [];\r\n // one singleton per basic curve type ...\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(LineSegment3d.create(Point3d.create(0, 0, 0), Point3d.create(5, 0, 0))))!);\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(Arc3d.createCircularStartMiddleEnd(\r\n Point3d.create(0, 0, 0), Point3d.create(3, 3, 0), Point3d.create(6, 0, 0))!))!);\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(LineString3d.create(pointsA)))!);\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(BSplineCurve3d.createUniformKnots(pointsA, 3)!))!);\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(BSplineCurve3d.createUniformKnots(pointsA, 4)!))!);\r\n result.push(CurveChainWithDistanceIndex.createCapture(\r\n Path.create(\r\n LineSegment3d.create(pointsA[0], pointsA[1]),\r\n Arc3d.createCircularStartMiddleEnd(pointsA[1], pointsA[2], pointsA[3])!,\r\n LineSegment3d.create(pointsA[3], pointsA[4])))!);\r\n return result;\r\n }\r\n /**\r\n * Create a square wave path.\r\n * @param numTooth number of teeth.\r\n * @param dxA x size of \"A\" part\r\n * @param dxB x size of \"B\" part\r\n * @param yA y for A part\r\n * @param yB y for B part\r\n * @param structure 1 for line segments, 2 for one linestring per tooth, 0 for single linestring\r\n */\r\n public static createSquareWavePath(numTooth: number, dxA: number, dxB: number, yA: number, yB: number, structure: number): Path {\r\n const dxAB = dxA + dxB;\r\n const path = Path.create();\r\n // build the whole linestring ...\r\n const allPoints = new GrowableXYZArray(4 * numTooth);\r\n let x2 = 0.0;\r\n for (let i = 0; i < numTooth; i++) {\r\n const x0 = i * dxAB;\r\n const x1 = x0 + dxA;\r\n x2 = (i + 1) * dxAB;\r\n allPoints.pushXYZ(x0, yA, 0);\r\n allPoints.pushXYZ(x1, yA, 0.0);\r\n allPoints.pushXYZ(x1, yB, 0.0);\r\n allPoints.pushXYZ(x2, yB, 0.0);\r\n }\r\n allPoints.pushXYZ(x2, yA, 0.0);\r\n\r\n const numPoints = allPoints.length;\r\n\r\n if (structure === 1) {\r\n const pointA = Point3d.create();\r\n const pointB = Point3d.create();\r\n allPoints.getPoint3dAtUncheckedPointIndex(0, pointA);\r\n for (let i1 = 0; i1 + 1 < numPoints; i1++) {\r\n allPoints.getPoint3dAtUncheckedPointIndex(i1, pointB);\r\n path.tryAddChild(LineSegment3d.create(pointA, pointB));\r\n pointA.setFromPoint3d(pointB);\r\n }\r\n } else if (structure === 2) {\r\n for (let i0 = 0; i0 + 4 < numPoints; i0 += 4) {\r\n const ls = LineString3d.create();\r\n ls.addSteppedPoints(allPoints, i0, 1, 5);\r\n path.tryAddChild(ls);\r\n }\r\n\r\n } else {\r\n const ls = LineString3d.create();\r\n ls.addSteppedPoints(allPoints, 0, 1, numPoints);\r\n path.tryAddChild(ls);\r\n\r\n }\r\n return path;\r\n }\r\n\r\n /**\r\n * Create various elliptic arcs\r\n * * circle with vector0, vector90 aligned with x,y\r\n * * circle with axes rotated\r\n * *\r\n * @param radiusRatio = vector90.magnitude / vector0.magnitude\r\n */\r\n public static createArcs(radiusRatio: number = 1.0, sweep: AngleSweep = AngleSweep.create360()): Arc3d[] {\r\n const arcs = [];\r\n const center0 = Point3d.create(0, 0, 0);\r\n const a = 1.0;\r\n const b = radiusRatio;\r\n const direction0 = Vector3d.createPolar(a, Angle.createDegrees(35.0));\r\n const direction90 = direction0.rotate90CCWXY();\r\n direction90.scaleInPlace(radiusRatio);\r\n arcs.push(Arc3d.create(center0, Vector3d.create(a, 0, 0), Vector3d.create(0, b, 0), sweep));\r\n arcs.push(Arc3d.create(center0, direction0, direction90, sweep));\r\n return arcs;\r\n }\r\n /**\r\n * Create many arcs, optionally including skews\r\n * * @param skewFactor array of skew factors. for each skew factor, all base arcs are replicated with vector90 shifted by the factor times vector0\r\n */\r\n public static createManyArcs(skewFactors: number[] = []): Arc3d[] {\r\n const result: Arc3d[] = [];\r\n const sweep1 = AngleSweep.createStartEndDegrees(-10, 75);\r\n const sweep2 = AngleSweep.createStartEndDegrees(160.0, 380.0);\r\n for (const arcs of [\r\n Sample.createArcs(1.0), Sample.createArcs(0.5),\r\n Sample.createArcs(1.0, sweep1), Sample.createArcs(0.3, sweep2)]) {\r\n for (const arc of arcs)\r\n result.push(arc);\r\n }\r\n const numBase = result.length;\r\n for (const skewFactor of skewFactors) {\r\n for (let i = 0; i < numBase; i++) {\r\n const originalArc = result[i];\r\n result.push(Arc3d.create(originalArc.center, originalArc.vector0, originalArc.vector90.plusScaled(originalArc.vector0, skewFactor), originalArc.sweep));\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Create edges of a range box.\r\n * * Line strings on low and high z\r\n * * single lines on each low z to high z edge.\r\n * * @param range (possibly null) range\r\n */\r\n public static createRangeEdges(range: Range3d): BagOfCurves | undefined {\r\n if (range.isNull)\r\n return undefined;\r\n const corners = range.corners();\r\n\r\n return BagOfCurves.create(\r\n LineString3d.create(corners[0], corners[1], corners[3], corners[2], corners[0]),\r\n LineString3d.create(corners[4], corners[5], corners[7], corners[6], corners[4]),\r\n LineSegment3d.create(corners[0], corners[4]),\r\n LineSegment3d.create(corners[1], corners[5]),\r\n LineSegment3d.create(corners[2], corners[6]),\r\n LineSegment3d.create(corners[3], corners[7]));\r\n }\r\n /** Create swept \"solids\" that can be capped.\r\n * * At least one of each solid type.\r\n * * each is within 10 of the origin all directions.\r\n */\r\n public static createClosedSolidSampler(capped: boolean): SolidPrimitive[] {\r\n const result = [];\r\n result.push(Box.createRange(Range3d.createXYZXYZ(0, 0, 0, 3, 2, 5), capped)!);\r\n\r\n result.push(Cone.createAxisPoints(Point3d.create(0, 0, 0), Point3d.create(0, 0, 5), 1.0, 1.0, capped)!);\r\n\r\n result.push(Sphere.createCenterRadius(Point3d.create(0, 0, 0), 1.0)!);\r\n\r\n result.push(TorusPipe.createInFrame(Transform.createIdentity(), 3.0, 1.0, Angle.create360(), capped)!);\r\n const arcA = Arc3d.createXY(Point3d.create(6, 1, 0), 1.0, AngleSweep.createStartEndDegrees(-90, 0));\r\n const point0 = arcA.fractionAndDistanceToPointOnTangent(0.0, -4);\r\n const pointQ1 = arcA.fractionAndDistanceToPointOnTangent(1.0, 2);\r\n const pointQ2 = arcA.fractionAndDistanceToPointOnTangent(1.0, 0.5);\r\n const pointR1 = Point3d.create(point0.x, pointQ1.y);\r\n const pointR2 = Point3d.create(point0.x, pointQ1.y);\r\n const linestringQ1 = LineString3d.create(arcA.fractionToPoint(1.0), pointQ1, pointR1, point0);\r\n const linestringQ2 = LineString3d.create(arcA.fractionToPoint(1.0), pointQ2, pointR2, point0);\r\n const contourZ = Path.create(linestringQ1.clone());\r\n\r\n const contourA = Loop.create(\r\n LineSegment3d.create(point0, arcA.fractionToPoint(0)),\r\n arcA.clone(),\r\n linestringQ1.clone());\r\n const contourB = Loop.create(\r\n LineSegment3d.create(point0, arcA.fractionToPoint(0)),\r\n arcA.clone(),\r\n linestringQ2.clone());\r\n contourB.tryTransformInPlace(Transform.createTranslationXYZ(1, 1, 3));\r\n\r\n // const contourC = contourB.cloneTransformed(Transform.createTranslationXYZ(2, 1, 4))!;\r\n result.push(LinearSweep.create(contourA, Vector3d.create(0, 0, 5), capped)!);\r\n const axis = Ray3d.createXYZUVW(0, 8, 0, 1, 0, 0);\r\n result.push(RotationalSweep.create(contourA.clone()!, axis.clone(), Angle.createDegrees(90), capped)!);\r\n\r\n if (!capped)\r\n result.push(RotationalSweep.create(contourZ.clone()!, axis.clone(), Angle.createDegrees(90), false)!);\r\n\r\n result.push(RuledSweep.create([contourA.clone()!, contourB.clone()!], capped)!);\r\n\r\n const transformC = Transform.createScaleAboutPoint(Point3d.create(0, 0, 8), 0.5);\r\n const contourC = contourB.cloneTransformed(transformC)!;\r\n result.push(RuledSweep.create([contourA.clone()!, contourB.clone()!, contourC.clone()!], capped)!);\r\n return result;\r\n }\r\n /**\r\n * Create points:\r\n * * `numRadialEdges` radially from origin to polar point (r,sweep.start)\r\n * * `numArcEdges` along arc from (r,sweep.start) to (r,sweep.end)\r\n * * `numRadialEdges` returning to origin.\r\n * * optionally include closure point at origin.\r\n * @param x0 center x\r\n * @param y0 center y\r\n * @param radius radius of circle.\r\n * @param sweep start and end angles of sweep.\r\n * @param numRadialEdges number of edges from center to arc\r\n * @param numArcEdges number of edges along arc\r\n * @param addClosure true to repeat center as closure point\r\n */\r\n public static createCutPie(x0: number, y0: number, radius: number, sweep: AngleSweep, numRadialEdges: number, numArcEdges: number, addClosure = false): Point3d[] {\r\n\r\n const points = [];\r\n const center = Point3d.create(x0, y0);\r\n points.push(center);\r\n const pointA = Point3d.create(x0 + radius * Math.cos(sweep.startRadians), y0 + radius * Math.sin(sweep.startRadians));\r\n const pointB = Point3d.create(x0 + radius * Math.cos(sweep.endRadians), y0 + radius * Math.sin(sweep.endRadians));\r\n for (let i = 1; i < numRadialEdges; i++)\r\n points.push(center.interpolate(i / numRadialEdges, pointA));\r\n points.push(pointA);\r\n for (let i = 1; i < numArcEdges; i++) {\r\n const radians = sweep.fractionToRadians(i / numArcEdges);\r\n points.push(Point3d.create(x0 + radius * Math.cos(radians), y0 + radius * Math.sin(radians)));\r\n }\r\n points.push(pointB);\r\n for (let i = 1; i < numRadialEdges; i++)\r\n points.push(pointB.interpolate(i / numRadialEdges, center));\r\n if (addClosure)\r\n points.push(center.clone());\r\n return points;\r\n }\r\n /**\r\n * * let ay = 4\r\n * * base polygon has vertices (0,0), (ax,0), (2*ax,0), (2* ax,ay), (ax,ay), (0,ay), (0,0).\r\n * * shift the x coordinates of vertices 1,4 by indicated amounts (0-based numbering)\r\n * * shift the y coordinates for points 1,2,3,4 by indicated amounts (in 0-based numbering)\r\n * * This is useful for testing non-y-monotonic face situations.\r\n * * Return as points.\r\n * @param dy1\r\n * @param dy2\r\n * @param dy3\r\n * @param dy4\r\n */\r\n public static creatVerticalStaggerPolygon(dy1: number, dy2: number, dy3: number, dy4: number,\r\n ax: number,\r\n ay: number,\r\n dx1: number,\r\n dx4: number): Point3d[] {\r\n const points = [];\r\n points.push(Point3d.create(0, 0));\r\n points.push(Point3d.create(ax + dx1, dy1));\r\n points.push(Point3d.create(2 * ax, dy2));\r\n points.push(Point3d.create(2 * ax, ay + dy3));\r\n points.push(Point3d.create(ax + dx4, ay + dy4));\r\n points.push(Point3d.create(0.0, ay));\r\n points.push(Point3d.create(0, 0));\r\n return points;\r\n }\r\n /**\r\n * make line segments for each pair of adjacent points.\r\n * @param points array of points\r\n * @param forceClosure if true, inspect coordinates to determine if a closure edge is needed.\r\n */\r\n public static convertPointsToSegments(points: Point3d[], forceClosure: boolean = false): LineSegment3d[] {\r\n const segments = [];\r\n const n = points.length;\r\n for (let i = 0; i + 1 < n; i++) {\r\n segments.push(LineSegment3d.create(points[i], points[i + 1]));\r\n }\r\n if (forceClosure && n > 1 && !points[0].isAlmostEqual(points[n - 1]))\r\n segments.push(LineSegment3d.create(points[n - 1], points[0]));\r\n return segments;\r\n }\r\n /**\r\n * Create a regular polygon\r\n * @param angle0 angle from x axis to first point.\r\n * @param numPoint number of points\r\n * @param close true to add closure edge.\r\n */\r\n public static createRegularPolygon(cx: number, cy: number, cz: number, angle0: Angle, r: number, numPoint: number, close: boolean): Point3d[] {\r\n const points = [];\r\n const angleStepRadians = 2.0 * Math.PI / numPoint;\r\n let radians;\r\n for (let i = 0; i < numPoint; i++) {\r\n radians = angle0.radians + i * angleStepRadians;\r\n points.push(Point3d.create(cx + r * Math.cos(radians), cy + r * Math.sin(radians), cz));\r\n }\r\n if (close)\r\n points.push(points[0].clone());\r\n return points;\r\n }\r\n\r\n /**\r\n * Create a star by alternating radii (with equal angular steps)\r\n * @param r0 first point radius\r\n * @param r1 second point radius (if undefined, this is skipped and the result is points on a circle.)\r\n * @param numPoint number of points\r\n * @param close true to add closure edge.\r\n */\r\n public static createStar(cx: number, cy: number, cz: number, r0: number, r1: number | undefined, numPoint: number, close: boolean, theta0?: Angle): Point3d[] {\r\n const points = [];\r\n const angleStepRadians = Math.PI / numPoint;\r\n const radians0 = theta0 === undefined ? 0.0 : theta0.radians;\r\n let radians;\r\n for (let i = 0; i < numPoint; i++) {\r\n radians = radians0 + 2 * i * angleStepRadians;\r\n points.push(Point3d.create(cx + r0 * Math.cos(radians), cy + r0 * Math.sin(radians), cz));\r\n if (r1 !== undefined) {\r\n radians = radians0 + (2 * i + 1) * angleStepRadians;\r\n points.push(Point3d.create(cx + r1 * Math.cos(radians), cy + r1 * Math.sin(radians), cz));\r\n }\r\n }\r\n if (close)\r\n points.push(points[0].clone());\r\n return points;\r\n }\r\n /**\r\n * Create an outer star A\r\n * Place multiple inner stars B with centers on circle C\r\n * @param rA0 radius to star tips on starA\r\n * @param rA1 radius to star tips on starA\r\n * @param numAPoint number of points on starA\r\n * @param rB0 radius to star B tips\r\n * @param rB1 radius to star B tips\r\n * @param numBPoint\r\n * @param rC radius for inner star centers\r\n * @param numC number of inner stars\r\n */\r\n public static createStarsInStars(rA0: number, rA1: number, numAPoint: number, rB0: number, rB1: number, numBPoint: number, rC: number, numC: number, close: boolean): Point3d[][] {\r\n const loops: Point3d[][] = [];\r\n loops.push(this.createStar(0, 0, 0, rA0, rA1, numAPoint, close));\r\n if (numC > 0) {\r\n const radiansStep = Math.PI * 2.0 / numC;\r\n for (let i = 0; i < numC; i++) {\r\n const radians = i * radiansStep;\r\n loops.push(\r\n this.createStar(rC * Math.cos(radians), rC * Math.sin(radians), 0.0, rB0, rB1, numBPoint, close));\r\n }\r\n }\r\n return loops;\r\n }\r\n private static appendGeometry(source: GeometryQuery[], dest: GeometryQuery[]) {\r\n for (const g of source) dest.push(g);\r\n }\r\n\r\n /** Create a simple example of each GeometryQuery type .... */\r\n public static createAllGeometryQueryTypes(): GeometryQuery[] {\r\n const result: GeometryQuery[] = [];\r\n const pointA = Point3d.create(0, 0, 0);\r\n const pointB = Point3d.create(1, 0, 0);\r\n const pointC = Point3d.create(1, 1, 0);\r\n const pointD = Point3d.create(0, 1, 0);\r\n const pointABC = [pointA, pointB, pointC];\r\n const pointABCD = [pointA, pointB, pointC, pointD];\r\n const pointABCDA = [pointA, pointB, pointC, pointD, pointA];\r\n result.push(LineSegment3d.create(pointA, pointB));\r\n result.push(CoordinateXYZ.create(pointA));\r\n result.push(Arc3d.createCircularStartMiddleEnd(pointA, pointB, pointC)!);\r\n result.push(PointString3d.create(pointA, pointB));\r\n result.push(IntegratedSpiral3d.createRadiusRadiusBearingBearing(Segment1d.create(0, 100), AngleSweep.createStartEndDegrees(0, 5), Segment1d.create(0, 0.5), Transform.createIdentity())!);\r\n result.push(LineString3d.create(pointABCD));\r\n result.push(BezierCurve3d.create(pointABC)!);\r\n result.push(BezierCurve3dH.create(pointABC)!);\r\n\r\n result.push(BSplineCurve3d.createUniformKnots(pointABC, 3)!);\r\n result.push(BSplineCurve3dH.createUniformKnots(pointABC, 3)!);\r\n\r\n result.push(Loop.create(LineString3d.create(pointABCDA)));\r\n result.push(Path.create(LineString3d.create(pointABCD)));\r\n result.push(this.createConeBsplineSurface(pointA, pointC, 1, 2, 4)!);\r\n result.push(this.createXYGridBsplineSurface(8, 4, 4, 3)!);\r\n this.appendGeometry(this.createClosedSolidSampler(true), result);\r\n result.push(this.createTriangularUnitGridPolyface(pointA, Vector3d.unitX(), Vector3d.unitY(), 4, 5));\r\n result.push(this.createTriangularUnitGridPolyface(pointA, Vector3d.unitX(), Vector3d.unitY(), 4, 5, true, true, true, false));\r\n this.appendGeometry(this.createSimpleParityRegions(), result);\r\n this.appendGeometry(this.createSimpleUnions(), result);\r\n this.appendGeometry(this.createBagOfCurves(), result);\r\n\r\n return result;\r\n }\r\n /** Create points on a sine wave\r\n * Point i is origin + (i * xStep, a *sin(theta0 + i * dTheta), b * sin(beta0 + i * dBeta))\r\n * * Default b is zero, so it is a simple sine wave\r\n * * If the dTheta and dBeta are equal, it is a sine wave in a tilted plane.\r\n * * If dTheta and dBeta are different it is a non-planar curve\r\n */\r\n public static createPointSineWave(origin: XYAndZ | undefined, numInterval: number = 24,\r\n xStep: number = Math.PI / 12,\r\n a: number = 1, thetaSweep: AngleSweep = AngleSweep.createStartEndDegrees(0, 360),\r\n b: number = 0, betaSweep: AngleSweep = AngleSweep.createStartEndDegrees(0, 180)): Point3d[] {\r\n return this.createPointsByIndexFunctions(numInterval, SteppedIndexFunctionFactory.createLinear(xStep, origin ? origin.x : 0),\r\n SteppedIndexFunctionFactory.createCosine(a, thetaSweep, origin ? origin.y : 0),\r\n SteppedIndexFunctionFactory.createCosine(b, betaSweep, origin ? origin.z : 0));\r\n }\r\n /** Create points with x,y,z independent functions of i and numInterval,\r\n * Point3d.create (fx(i,numInterval), fy(i,numInterval), fz(i, numInterval));\r\n */\r\n public static createPointsByIndexFunctions(numInterval: number, fx: SteppedIndexFunction, fy: SteppedIndexFunction, fz?: SteppedIndexFunction): Point3d[] {\r\n const points = [];\r\n if (numInterval > 0) {\r\n for (let i = 0; i <= numInterval; i++) {\r\n points.push(Point3d.create(fx(i, numInterval), fy(i, numInterval), fz ? fz(i, numInterval) : 0));\r\n }\r\n }\r\n return points;\r\n }\r\n /**\r\n * Add an AuxData (with multiple AuxChannelData) using data evaluated by a function of input and xyz.\r\n * @param data existing polyface data object to receive the additional AuxChannel\r\n * @param channelIndex\r\n * @param name name of channel\r\n * @param inputName name of input\r\n * @param input0 input value for channel 0\r\n * @param inputStep step between inputs (channels)\r\n * @param numInput number of channels (inputs)\r\n * @param dataType\r\n * @param scalarFunction function to return the scalar value at (input, point)\r\n */\r\n public static addAuxDataScalarChannel(\r\n data: PolyfaceData,\r\n channelIndex: number,\r\n name: string | undefined,\r\n inputName: string | undefined,\r\n input0: number, inputStep: number, numInput: number,\r\n dataType: AuxChannelDataType,\r\n scalarFunction: (input: number, xyz: Point3d) => number\r\n ): void {\r\n if (!data.auxData)\r\n data.auxData = new PolyfaceAuxData([], []);\r\n const channelDataArray = [];\r\n const xyz = Point3d.create();\r\n for (let i = 0; i < numInput; i++) {\r\n const input = input0 + i * inputStep;\r\n const values = [];\r\n for (let k = 0; k < data.point.length; k++) {\r\n data.point.getPoint3dAtUncheckedPointIndex(k, xyz);\r\n values.push(scalarFunction(input, xyz));\r\n }\r\n channelDataArray.push(new AuxChannelData(input, values));\r\n }\r\n const channel = new AuxChannel(channelDataArray, dataType, name, inputName);\r\n for (const _q of data.pointIndex){\r\n data.auxData.indices.push(channelIndex);\r\n }\r\n data.auxData.channels.push(channel);\r\n }\r\n/**\r\n * Create a mesh between concentric arcs\r\n * @param edgesPerQuadrant edges per 90 degrees\r\n * @param center arc center\r\n * @param r0 first radius\r\n * @param r1 second radius\r\n * @param theta0 start angle\r\n * @param theta1 end angle.\r\n * @returns\r\n */\r\n public static createMeshInAnnulus(edgesPerQuadrant: number, center: Point3d, r0: number, r1: number, theta0: Angle, theta1: Angle): IndexedPolyface | undefined {\r\n const point0 = [];\r\n const point1 = [];\r\n if (edgesPerQuadrant < 1)\r\n edgesPerQuadrant = 1;\r\n let edgeCount = Math.ceil(edgesPerQuadrant * (theta1.degrees - theta0.degrees) / 90);\r\n if (edgeCount < 1)\r\n edgeCount = 1;\r\n for (let i = 0; i <= edgeCount; i++){\r\n const theta = Angle.createInterpolate(theta0, i / edgeCount, theta1);\r\n point0.push (center.plusXYZ (r0 * theta.cos(), r0 * theta.sin(),0));\r\n point1.push (center.plusXYZ (r1 * theta.cos(), r1 * theta.sin(),0));\r\n }\r\n point1.reverse();\r\n const builder = PolyfaceBuilder.create();\r\n builder.addGreedyTriangulationBetweenLineStrings(point0, point1);\r\n return builder.claimPolyface();\r\n }\r\n/**\r\n * create strokes on an arc at radius r0, then returning at radius r1.\r\n */\r\n public static createAnnulusPolyline(edgesPerQuadrant: number, center: Point3d, r0: number, r1: number, theta0: Angle, theta1: Angle, addClosure: boolean): Point3d[]{\r\n const point0: Point3d[] = [];\r\n const point1: Point3d[] = [];\r\n if (edgesPerQuadrant < 1)\r\n edgesPerQuadrant = 1;\r\n let edgeCount = Math.ceil(edgesPerQuadrant * (theta1.degrees - theta0.degrees) / 90);\r\n if (edgeCount < 1)\r\n edgeCount = 1;\r\n for (let i = 0; i <= edgeCount; i++){\r\n const theta = Angle.createInterpolate(theta0, i / edgeCount, theta1);\r\n point0.push (center.plusXYZ (r0 * theta.cos(), r0 * theta.sin(),0));\r\n point1.push (center.plusXYZ (r1 * theta.cos(), r1 * theta.sin(),0));\r\n }\r\n while (point1.length > 0)\r\n point0.push(point1.pop()!);\r\n if (addClosure)\r\n point0.push(point0[0].clone());\r\n return point0;\r\n }\r\n /**\r\n * Return an array of points on a circular arc.\r\n * @param edgesPerQuadrant number of edges per 90 degrees\r\n * @param center arc center\r\n * @param r0 arc radius\r\n * @param theta0 start angle\r\n * @param theta1 end angle\r\n * @param addClosure true to add a closure stroke\r\n * @returns\r\n */\r\n public static createArcStrokes(edgesPerQuadrant: number, center: Point3d, r0: number, theta0: Angle, theta1: Angle, addClosure: boolean = true, z: number = 0): Point3d[] {\r\n const point0: Point3d[] = [];\r\n if (edgesPerQuadrant < 1)\r\n edgesPerQuadrant = 1;\r\n let edgeCount = Math.ceil(edgesPerQuadrant * (theta1.degrees - theta0.degrees) / 90);\r\n if (edgeCount < 1)\r\n edgeCount = 1;\r\n for (let i = 0; i <= edgeCount; i++) {\r\n const theta = Angle.createInterpolate(theta0, i / edgeCount, theta1);\r\n point0.push(center.plusXYZ(r0 * theta.cos(), r0 * theta.sin(), z));\r\n }\r\n if (addClosure)\r\n point0.push(point0[0].clone());\r\n return point0;\r\n }\r\n}\r\n"]}