@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":"IModelJsonSchema.js","sourceRoot":"","sources":["../../../src/serialization/IModelJsonSchema.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 } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH, WeightStyle } from \"../bspline/BSplineSurface\";\r\nimport { BSplineWrapMode } from \"../bspline/KnotVector\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { BagOfCurves, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { AnyGeometryQuery, 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 { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { IntegratedSpiral3d } from \"../curve/spiral/IntegratedSpiral3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { AngleProps, AngleSweepProps, AxisOrder, Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { AngleSweep } from \"../geometry3d/AngleSweep\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Point2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d, Vector3d, XYZ } from \"../geometry3d/Point3dVector3d\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { XYProps, XYZProps } from \"../geometry3d/XYZProps\";\r\nimport { YawPitchRollAngles, YawPitchRollProps } from \"../geometry3d/YawPitchRollAngles\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\nimport { AuxChannel, AuxChannelData, AuxChannelDataType, PolyfaceAuxData } from \"../polyface/AuxData\";\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 { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { DirectSpiral3d } from \"../curve/spiral/DirectSpiral3d\";\r\nimport { TaggedNumericData } from \"../polyface/TaggedNumericData\";\r\nimport { InterpolationCurve3d as InterpolationCurve3d, InterpolationCurve3dProps } from \"../bspline/InterpolationCurve3d\";\r\nimport { AkimaCurve3d } from \"../bspline/AkimaCurve3d\";\r\nimport { BSplineCurveOps } from \"../bspline/BSplineCurveOps\";\r\n// cspell:word bagof\r\n/* eslint-disable no-console*/\r\n/**\r\n * `ImodelJson` namespace has classes for serializing and deserialization json objects\r\n * @public\r\n */\r\nexport namespace IModelJson {\r\n /**\r\n * Property rules for json objects that can be deserialized to various Curve and Solid objects\r\n * @public\r\n */\r\n export interface GeometryProps extends CurvePrimitiveProps, SolidPrimitiveProps, CurveCollectionProps {\r\n /** `{indexedMesh:...}` */\r\n indexedMesh?: IndexedMeshProps;\r\n /** `{point:...}` */\r\n point?: XYZProps;\r\n /** `{bsurf:...}` */\r\n bsurf?: BSplineSurfaceProps;\r\n }\r\n /**\r\n * Property rules for json objects that can be deserialized to various CurvePrimitives\r\n * * Only one of these is allowed in each instance.\r\n * @public\r\n */\r\n export interface CurvePrimitiveProps {\r\n /** `{lineSegment:...}` */\r\n lineSegment?: [XYZProps, XYZProps];\r\n /** `{lineString:...}` */\r\n lineString?: XYZProps[];\r\n /** `{bcurve:...}` */\r\n bcurve?: BcurveProps;\r\n /** `{transitionSpiral:...}` */\r\n transitionSpiral?: TransitionSpiralProps;\r\n /** `{arc:...}` */\r\n arc?: ArcByVectorProps | [XYZProps, XYZProps, XYZProps];\r\n /** `{interpolationCurve:...}~ */\r\n interpolationCurve?: InterpolationCurve3dProps;\r\n }\r\n\r\n /**\r\n * Property rules for json objects that can be deserialized to single point\r\n * @public\r\n */\r\n export interface PointProps {\r\n /** `{point:...}` */\r\n point?: XYZProps;\r\n }\r\n\r\n /**\r\n * Property rules for json objects that can be deserialized to a BsplineSurface\r\n * See `BCurveProps` for discussion of knot and pole counts.\r\n * @public\r\n */\r\n export interface BSplineSurfaceProps {\r\n /** polynomial order (one more than degree) in the u parameter direction */\r\n orderU: number;\r\n /** polynomial order (one more than degree) in the v parameter direction */\r\n orderV: number;\r\n /** Square grid of control points (aka poles) in row major order (row is along the u direction) */\r\n points: [[[number]]]; // each inner array is xyz or xyzw for a single control point. each middle array is a row of control points.\r\n /** Array of knots for the u direction bspline */\r\n uKnots: [number];\r\n /** Array of knots for the v direction bspline */\r\n vKnots: [number];\r\n }\r\n\r\n /**\r\n * Interface for a collection of curves, eg. as used as a swept contour.\r\n * @public\r\n */\r\n export interface CurveCollectionProps extends PlanarRegionProps {\r\n /** A sequence of curves joined head to tail: */\r\n path?: [CurvePrimitiveProps];\r\n /** A collection of curves with no required structure or connections: */\r\n bagofCurves?: [CurveCollectionProps];\r\n }\r\n\r\n /**\r\n * Interface for a collection of curves that bound a planar region\r\n * @public\r\n */\r\n export interface PlanarRegionProps {\r\n /** `{loop:...}`\r\n * * A sequence of curves which connect head to tail, with the final connecting back to the first\r\n */\r\n loop?: [CurvePrimitiveProps];\r\n /** `{parityRegion:...}`\r\n * * A collection of loops, with composite inside/outside determined by parity rules.\r\n * * (The single outer boundary with one or more holes is a parityRegion)\r\n */\r\n parityRegion?: [{ loop: [CurvePrimitiveProps] }];\r\n /** `{unionRegion:...}`\r\n * * A collection of loops and parityRegions\r\n */\r\n\r\n unionRegion?: [PlanarRegionProps];\r\n }\r\n /**\r\n * Interface for solid primitives: box, sphere, cylinder, cone, torusPipe, linear sweep, rotational sweep, ruled sweep.\r\n * @public\r\n */\r\n export interface SolidPrimitiveProps {\r\n /** `{cylinder:...}` */\r\n cylinder?: CylinderProps;\r\n /** `{box:...}` */\r\n box?: BoxProps;\r\n /** `{sphere:............}` */\r\n sphere?: SphereProps;\r\n /** `{cone:............}` */\r\n cone?: ConeProps;\r\n /** `{torusPipe:............}` */\r\n torusPipe?: TorusPipeProps;\r\n /** `{linearSweep:.........}` */\r\n linearSweep?: LinearSweepProps;\r\n /** `{rotationalSweep:...}` */\r\n rotationalSweep?: RotationalSweepProps;\r\n /** `{ruledSweep:...}` */\r\n ruledSweep?: RuledSweepProps;\r\n }\r\n /**\r\n * * There are multiple ways to specify an orientation\r\n * * A \"Best\" among these is application specific.\r\n * * An object with AxesProps should only specify one of the variants.\r\n * * YawPitchRollAngles uses 3 angles.\r\n * * * Cases where only one of the 3 is nonzero are intuitive\r\n * * * Cases where more than one is nonzero have difficult interactions and order issues.\r\n * * xyVectors uses a vector along the x direction and a vector into positive xy plane\r\n * along any direction not parallel to x.\r\n * * * In most cases, users supply a normalized x and the actual normalized y vector.\r\n * * zxVectors uses a z vector and another vector into the positive zx plane.\r\n * * * In most cases, users supply a normalized z and the actual normalized x vector.\r\n * @public\r\n */\r\n export interface AxesProps {\r\n /**\r\n * See YawPitchAngles class for further information about using 3 rotations to specify orientation.\r\n * @public\r\n */\r\n yawPitchRollAngles?: YawPitchRollProps;\r\n /**\r\n * Cartesian coordinate directions defined by X direction then Y direction.\r\n * * The right side contains two vectors in an array.\r\n * * The first vector gives the x axis direction\r\n * * * This is normalized to unit length.\r\n * * The second vector gives the positive y direction in the xy plane.\r\n * * * This vector is adjusted to be unit length and perpendicular to the x direction.\r\n */\r\n xyVectors?: [XYZProps, XYZProps];\r\n /**\r\n * Cartesian coordinate directions defined by X direction then Y direction.\r\n * * The right side contains two vectors in an array.\r\n * * The first vector gives the z axis direction\r\n * * * This is normalized to unit length.\r\n * * The second vector gives the positive x direction in the zx plane.\r\n * * * This vector is adjusted to be unit length and perpendicular to the z direction.\r\n */\r\n zxVectors?: [XYZProps, XYZProps];\r\n }\r\n\r\n /**\r\n * Interface for Arc3d value defined by center, vectorX, vectorY and sweepStartEnd.\r\n * @public\r\n */\r\n export interface ArcByVectorProps {\r\n /** Arc center point */\r\n center: XYZProps;\r\n /** Vector from center to 0-degree point (commonly called major axis vector) */\r\n vectorX: XYZProps;\r\n /** Vector from center to 90-degree point (common called minor axis vector) */\r\n vectorY: XYZProps;\r\n /** Start and end angles in parameterization `X=C+cos(theta) * vectorX + sin(theta) * vectorY` */\r\n sweepStartEnd: AngleSweepProps;\r\n }\r\n\r\n /**\r\n * Interface for Cone value defined by centers, radii, and (optional) vectors for circular section planes.\r\n * * VectorX and vectorY are optional.\r\n * * If either one is missing, both vectors are constructed perpendicular to the vector from start to end.\r\n * @public\r\n */\r\n export interface ConeProps extends AxesProps {\r\n /** Point on axis at start section. */\r\n start: XYZProps;\r\n /** Point on axis at end section */\r\n end: XYZProps;\r\n\r\n /** radius at `start` section */\r\n startRadius?: number;\r\n /** radius at `end` section */\r\n endRadius?: number;\r\n /** single radius to be applied as both start and end */\r\n radius?: number;\r\n /** optional x vector in start section. Omit for circular sections perpendicular to axis. */\r\n vectorX?: XYZProps;\r\n /** optional y vector in start section. Omit for circular sections perpendicular to axis. */\r\n vectorY?: XYZProps;\r\n /** flag for circular end caps. */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for cylinder defined by a radius and axis start and end centers.\r\n * @public\r\n */\r\n export interface CylinderProps {\r\n /** axis point at start */\r\n start: XYZProps;\r\n /** axis point at end */\r\n end: XYZProps;\r\n /** cylinder radius */\r\n radius: number;\r\n /** flag for circular end caps. */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for a linear sweep of a base curve or region.\r\n * @public\r\n */\r\n export interface LinearSweepProps {\r\n /** The swept curve or region. Any curve collection */\r\n contour: CurveCollectionProps;\r\n /** The sweep vector */\r\n vector: XYZProps;\r\n /** flag for circular end caps. */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for a rotational sweep of a base curve or region around an axis.\r\n * @public\r\n */\r\n export interface RotationalSweepProps {\r\n /** The swept curve or region. Any curve collection */\r\n contour: CurveCollectionProps;\r\n /** any point on the axis of rotation. */\r\n center: XYZProps;\r\n /** The axis of rotation */\r\n axis: XYZProps;\r\n /** sweep angle */\r\n sweepAngle: AngleProps;\r\n /** flag for circular end caps. */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for a surface with ruled sweeps between corresponding curves on successive contours\r\n * @public\r\n */\r\n export interface RuledSweepProps {\r\n /** The swept curve or region. An array of curve collections. */\r\n contour: [CurveCollectionProps];\r\n /** flag for circular end caps. */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for spiral\r\n * * Any 4 (but not 5) of the 5 values `[startBearing, endBearing, startRadius, endRadius, length]`\r\n * may be defined.\r\n * * In radius data, zero radius indicates straight line (infinite radius)\r\n * * Note that the inherited AxesProps allows multiple ways to specify orientation of the placement..\r\n * @public\r\n */\r\n export interface TransitionSpiralProps extends AxesProps {\r\n\r\n /** origin of the coordinate system. */\r\n origin: XYZProps;\r\n /** angle at departure from origin. */\r\n startBearing?: AngleProps;\r\n /** End bearing. */\r\n endBearing?: AngleProps;\r\n /** Radius at start (0 for straight line) */\r\n startRadius?: number;\r\n /** Radius at end (0 for straight line) */\r\n endRadius?: number;\r\n /** length along curve.\r\n */\r\n length?: number;\r\n /** Fractional part of active interval.\r\n * * There has been name confusion between native and typescript .... accept any variant ..\r\n * * native (July 2020) emits activeFractionInterval\r\n */\r\n activeFractionInterval?: number[];\r\n /** TransitionSpiral type.\r\n * * expected names are given in `IntegratedSpiralTypeName` and `DirectSpiralTypeName`\r\n */\r\n type?: string;\r\n }\r\n\r\n /**\r\n * Interface for bspline curve (aka bcurve)\r\n * @public\r\n */\r\n export interface BcurveProps {\r\n /** control points */\r\n points: [XYZProps];\r\n /** knots. */\r\n knots: [number];\r\n /** order of polynomial\r\n * * The order is the number of basis functions that are in effect at any knot value.\r\n * * The order is the number of points that affect the curve at any knot value,\r\n * i.e. the size of the \"local support\" set\r\n * * `order=2` is lines (degree 1)\r\n * * `order=3` is quadratic (degree 2)\r\n * * `order=4` is cubic (degree 3)\r\n * * The number of knots follows the convention \"poles+order= knots\".\r\n * * In this convention (for example), a clamped cubic with knots `[0,0,0,0, 1,2,3,4,4,4,4]`\r\n * has:\r\n * * * 4 (`order`) copies of the start and end knot (0 and 4) and\r\n * * * 3 interior knots\r\n * * Hence expect 7 poles.\r\n */\r\n order: number;\r\n /** optional flag for periodic data. */\r\n closed?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for Box (or frustum with all rectangular sections parallel to primary xy section)\r\n * * Orientation may be given in any `AxesProp`s way (yawPitchRoll, xyVectors, zxVectors)\r\n * * if topX or topY are omitted, each defaults to its baseX or baseY peer.\r\n * * `topOrigin` is determined with this priority order:\r\n * * * `topOrigin` overrides given `height`\r\n * * * on the z axis at distance `height`\r\n * * * If both `topOrigin` and `height` are omitted, `height` defaults to `baseX`\r\n * @public\r\n */\r\n export interface BoxProps extends AxesProps {\r\n /** Origin of the box coordinate system (required) */\r\n origin: XYZProps;\r\n /** base x size (required) */\r\n baseX: number;\r\n /** base size\r\n * * if omitted, defaults to baseX.\r\n */\r\n baseY: number;\r\n /** top origin.\r\n * * This is NOT required to be on the z axis.\r\n * * If omitted, a `heigh` must be present to given topOrigin on z axis.\r\n */\r\n topOrigin?: XYZProps;\r\n /** optional height. This is only used if `topOrigin` is omitted. */\r\n height?: number;\r\n /** x size on top section.\r\n * * If omitted, `baseX` is used\r\n */\r\n topX?: number;\r\n /** y size on top section.\r\n * * If omitted, `baseY` is used\r\n */\r\n topY?: number;\r\n /** optional capping flag. */\r\n capped?: boolean;\r\n\r\n }\r\n\r\n /**\r\n * Interface for Sphere (with optionally different radius to pole versus equator)\r\n * * Orientation may be given in any `AxesProp`s way (yawPitchRoll, xyVectors, zxVectors)\r\n * @public\r\n */\r\n export interface SphereProps extends AxesProps {\r\n /** Center of the sphere coordinate system */\r\n center: XYZProps;\r\n\r\n /** primary radius */\r\n radius?: number;\r\n /** optional x radius */\r\n radiusX?: number;\r\n /** optional y radius */\r\n radiusY?: number;\r\n\r\n /** optional radius at poles. */\r\n radiusZ?: number;\r\n\r\n /** optional sweep range for latitude. Default latitude limits are [-90,90 ] degrees. */\r\n latitudeStartEnd?: AngleSweepProps;\r\n /** optional capping flag. If missing, implied false */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for TorusPipe data\r\n * * Orientation may be given in any `AxesProp`s way (yawPitchRoll, xyVectors, zxVectors)\r\n * * Both radii are required.\r\n * * axes are required\r\n * * Axis definition is\r\n * * xy plane contains the major circle\r\n * * x axis points from donut hole center to flow center at start of pipe.\r\n * * z axis points through the hole.\r\n * @public\r\n */\r\n export interface TorusPipeProps extends AxesProps {\r\n /** Center of the full torus coordinate system. (donut hole center) */\r\n center: XYZProps;\r\n\r\n /** primary radius (elbow radius) */\r\n majorRadius: number;\r\n /** pipe radius */\r\n minorRadius?: number;\r\n /** sweep angle.\r\n * * if omitted, full 360 degree sweep.\r\n */\r\n sweepAngle?: AngleProps;\r\n /** optional capping flag. If missing, implied false */\r\n capped?: boolean;\r\n }\r\n\r\n /**\r\n * Interface for a ruled sweep.\r\n * @public\r\n */\r\n export interface RuledSweepProps {\r\n /** Array of contours */\r\n contour: [CurveCollectionProps];\r\n /** optional capping flag. */\r\n capped?: boolean;\r\n }\r\n /**\r\n * Interface for extra data attached to an indexed mesh.\r\n * See `TaggedNumericData` for further information (e.g. value `tagA` and `tagB` values)\r\n * @public\r\n */\r\n export interface TaggedNumericDataProps {\r\n /** integer tag identifying the meaning of this tag. */\r\n tagA: number;\r\n /** Second integer tag. */\r\n tagB: number;\r\n /** application specific integer data */\r\n intData?: number[];\r\n /** application specific doubles */\r\n doubleData?: number[];\r\n }\r\n /**\r\n * Interface for an indexed mesh.\r\n * * IMPORTANT: All indices are one-based.\r\n * * i.e. vertex index given as 11 appears at index 10 in the data array.\r\n * * This is to allow a negated index to mean \"don't draw the following edge\"\r\n * * Although negative indices are not allowed for normalIndex, colorIndex, or paramIndex, the \"one based\" style\r\n * is used for them so that all indices within the indexedMesh json object are handled similarly.\r\n * * In all index arrays, a ZERO indicates \"end of facet\".\r\n * @public\r\n */\r\n export interface IndexedMeshProps {\r\n /** vertex coordinates */\r\n point: [XYZProps];\r\n /** surface normals */\r\n normal?: [XYZProps];\r\n /** texture space (uv parameter) coordinates */\r\n param?: [XYProps];\r\n /** 32 bit color values */\r\n color?: [number];\r\n\r\n /** SIGNED ONE BASED ZERO TERMINATED array of point indices. */\r\n pointIndex: [number];\r\n /** ONE BASED ZERO TERMINATED array of param indices. ZERO is terminator for single facet. */\r\n paramIndex?: [number];\r\n /** ONE BASED ZERO TERMINATED array of normal indices. ZERO is terminator for single facet. */\r\n normalIndex?: [number];\r\n /** ONE BASED ZERO TERMINATED array of color indices. ZERO is terminator for single facet. */\r\n colorIndex?: [number];\r\n /** optional array of tagged geometry (such as to request subdivision surface) */\r\n taggedNumericData?: TaggedNumericDataProps;\r\n }\r\n /** parser services for \"iModelJson\" schema\r\n * * 1: create a reader with `new ImodelJsonReader`\r\n * * 2: parse json fragment to strongly typed geometry: `const g = reader.parse (fragment)`\r\n * @public\r\n */\r\n export class Reader {\r\n\r\n public constructor() { // empty ctor\r\n }\r\n\r\n private static parseVector3dProperty(json: any, propertyName: string, defaultValue?: Vector3d | undefined): Vector3d | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Geometry.isNumberArray(value, 3))\r\n return Vector3d.create(value[0], value[1], value[2]);\r\n if (XYZ.isXAndY(value))\r\n return Vector3d.fromJSON(value);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static parsePoint3dProperty(json: any, propertyName: string, defaultValue?: Point3d | undefined): Point3d | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Geometry.isNumberArray(value, 3))\r\n return Point3d.create(value[0], value[1], value[2]);\r\n if (XYZ.isXAndY(value))\r\n return Point3d.fromJSON(value);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static parseSegment1dProperty(json: any, propertyName: string, defaultValue?: Segment1d | undefined): Segment1d | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Geometry.isNumberArray(value, 2))\r\n return Segment1d.create(value[0], value[1]);\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static parseNumberProperty(json: any, propertyName: string, defaultValue?: number | undefined): number | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Number.isFinite(value))\r\n return value as number;\r\n }\r\n return defaultValue;\r\n }\r\n /**\r\n * @internal\r\n */\r\n public static parseTaggedNumericProps(json: any): TaggedNumericData | undefined {\r\n const tagA = this.parseNumberProperty(json, \"tagA\");\r\n const tagB = this.parseNumberProperty(json, \"tagB\", 0);\r\n if (tagA !== undefined) {\r\n const result = new TaggedNumericData(tagA, tagB);\r\n if (json.hasOwnProperty(\"intData\"))\r\n result.intData = this.parseNumberArrayProperty(json, \"intData\", 0, undefined);\r\n if (json.hasOwnProperty(\"doubleData\"))\r\n result.doubleData = this.parseNumberArrayProperty(json, \"doubleData\", 0, undefined);\r\n return result;\r\n }\r\n return undefined;\r\n }\r\n\r\n private static parseNumberArrayProperty(json: any, propertyName: string, minValues: number, maxValues: number | undefined, defaultValue?: number[] | undefined): number[] | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Array.isArray(value)\r\n && value.length >= minValues && (undefined === maxValues || value.length <= maxValues)) {\r\n const result = [];\r\n for (const a of value) {\r\n result.push(a);\r\n }\r\n return result;\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static parseAngleProperty(json: any, propertyName: string, defaultValue?: Angle | undefined): Angle | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n return Angle.fromJSON(value);\r\n }\r\n return defaultValue;\r\n }\r\n /**\r\n * @param defaultFunction function to call if needed to produce a default value\r\n */\r\n private static parseAngleSweepProps(json: any, propertyName: string, defaultFunction?: () => AngleSweep): AngleSweep | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n return AngleSweep.fromJSON(value);\r\n }\r\n if (defaultFunction === undefined)\r\n return undefined;\r\n return defaultFunction();\r\n }\r\n\r\n private static parseBooleanProperty(json: any, propertyName: string, defaultValue?: boolean | undefined): boolean | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (value === true) return true;\r\n if (value === false) return false;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static loadContourArray(json: any, propertyName: string): CurveCollection[] | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n if (Array.isArray(value)) {\r\n const result = [];\r\n for (const contourData of value) {\r\n const contour = Reader.parse(contourData);\r\n if (contour instanceof CurveCollection) {\r\n result.push(contour);\r\n }\r\n }\r\n if (result.length > 0)\r\n return result;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private static parseYawPitchRollAnglesToMatrix3d(json: YawPitchRollProps): Matrix3d | undefined {\r\n const ypr = YawPitchRollAngles.fromJSON(json);\r\n return ypr.toMatrix3d();\r\n }\r\n\r\n private static parseStringProperty(json: any, propertyName: string, defaultValue?: string | undefined): string | undefined {\r\n if (json.hasOwnProperty(propertyName)) {\r\n const value = json[propertyName];\r\n // if (value instanceof string)\r\n return value;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n private static parseAxesFromVectors(json: any, axisOrder: AxisOrder, createDefaultIdentity: boolean): Matrix3d | undefined {\r\n if (Array.isArray(json) && json.length === 2) {\r\n const xVector = Vector3d.fromJSON(json[0]);\r\n const yVector = Vector3d.fromJSON(json[1]);\r\n const matrix = Matrix3d.createRigidFromColumns(xVector, yVector, axisOrder);\r\n if (matrix) return matrix;\r\n }\r\n if (createDefaultIdentity)\r\n return Matrix3d.createIdentity();\r\n return undefined;\r\n }\r\n /**\r\n * Look for orientation data and convert to Matrix3d.\r\n * * Search order is:\r\n * * * yawPitchRollAngles\r\n * * * xyVectors\r\n * * * zxVectors\r\n * @param json [in] json source data\r\n * @param createDefaultIdentity [in] If true and no orientation is present, return an identity matrix. If false and no orientation is present, return undefined.\r\n */\r\n private static parseOrientation(json: any, createDefaultIdentity: boolean): Matrix3d | undefined {\r\n if (json.yawPitchRollAngles) {\r\n return Reader.parseYawPitchRollAnglesToMatrix3d(json.yawPitchRollAngles);\r\n } else if (json.xyVectors) {\r\n return Reader.parseAxesFromVectors(json.xyVectors, AxisOrder.XYZ, createDefaultIdentity);\r\n } else if (json.zxVectors) {\r\n return Reader.parseAxesFromVectors(json.zxVectors, AxisOrder.ZXY, createDefaultIdentity);\r\n }\r\n if (createDefaultIdentity)\r\n return Matrix3d.createIdentity();\r\n return undefined;\r\n }\r\n\r\n private static parseArcByVectorProps(data?: ArcByVectorProps): Arc3d | undefined {\r\n if (data\r\n && data.center !== undefined\r\n && data.vectorX !== undefined\r\n && data.vectorY !== undefined\r\n && data.sweepStartEnd !== undefined\r\n ) {\r\n return Arc3d.create(\r\n Point3d.fromJSON(data.center),\r\n Vector3d.fromJSON(data.vectorX),\r\n Vector3d.fromJSON(data.vectorY),\r\n AngleSweep.fromJSON(data.sweepStartEnd));\r\n }\r\n return undefined;\r\n }\r\n // remark: Returns LineString3d as last default when give points are colinear.\r\n private static parseArcBy3Points(data?: ArcByVectorProps): Arc3d | LineString3d | undefined {\r\n if (Array.isArray(data) && data.length > 2) {\r\n const pointA = Point3d.fromJSON(data[0]);\r\n const pointB = Point3d.fromJSON(data[1]);\r\n const pointC = Point3d.fromJSON(data[2]);\r\n return Arc3d.createCircularStartMiddleEnd(pointA, pointB, pointC);\r\n }\r\n return undefined;\r\n }\r\n\r\n private static parseArcObject(data?: ArcByVectorProps): Arc3d | LineString3d | undefined {\r\n let arc: Arc3d | LineString3d | undefined = Reader.parseArcByVectorProps(data);\r\n if (arc)\r\n return arc;\r\n arc = Reader.parseArcBy3Points(data);\r\n return arc; // possibly undefined.\r\n }\r\n /** Parse point content (right side) `[1,2,3]` to a CoordinateXYZ object. */\r\n public static parseCoordinate(data?: any): CoordinateXYZ | undefined {\r\n const point = Point3d.fromJSON(data);\r\n if (point)\r\n return CoordinateXYZ.create(point);\r\n return undefined;\r\n }\r\n /** Parse TransitionSpiral content (right side) to TransitionSpiral3d\r\n * @alpha\r\n */\r\n public static parseTransitionSpiral(data?: TransitionSpiralProps): TransitionSpiral3d | undefined {\r\n const axes = Reader.parseOrientation(data, true)!;\r\n const origin = Reader.parsePoint3dProperty(data, \"origin\");\r\n // the create method will juggle any 4 out of these 5 inputs to define the other ..\r\n const startBearing = Reader.parseAngleProperty(data, \"startBearing\");\r\n const endBearing = Reader.parseAngleProperty(data, \"endBearing\");\r\n const startRadius = Reader.parseNumberProperty(data, \"startRadius\");\r\n const endRadius = Reader.parseNumberProperty(data, \"endRadius\");\r\n let length = Reader.parseNumberProperty(data, \"length\", undefined);\r\n if (length === undefined)\r\n length = Reader.parseNumberProperty(data, \"curveLength\", undefined);\r\n\r\n let interval = Reader.parseSegment1dProperty(data, \"activeFractionInterval\", undefined);\r\n if (!interval)\r\n interval = Reader.parseSegment1dProperty(data, \"fractionInterval\", undefined);\r\n if (!interval)\r\n interval = Reader.parseSegment1dProperty(data, \"activeInterval\", undefined);\r\n const spiralType = Reader.parseStringProperty(data, \"type\", \"clothoid\")!;\r\n // REMARK: Our job is to parse and pass data along -- inscrutable validation happens in the implementation classes . . .\r\n if (origin) {\r\n let candidate: TransitionSpiral3d | undefined;\r\n candidate = IntegratedSpiral3d.createFrom4OutOf5(\r\n spiralType,\r\n startRadius, endRadius,\r\n startBearing, endBearing,\r\n length,\r\n interval,\r\n Transform.createOriginAndMatrix(origin, axes));\r\n if (candidate)\r\n return candidate;\r\n candidate = DirectSpiral3d.createFromLengthAndRadius(\r\n spiralType,\r\n startRadius, endRadius,\r\n startBearing, endBearing,\r\n length,\r\n interval,\r\n Transform.createOriginAndMatrix(origin, axes));\r\n if (candidate)\r\n return candidate;\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Special closed case if the input was forced to bezier . . . (e.g. arc)\r\n * (b-1) 0 0 0 a . . . b 111 (a+1)\r\n * with {order} clamp-like values .. no pole duplication needed, but throw out 2 knots at each end . ..\r\n * @param numPoles number of poles\r\n * @param knots knot vector\r\n * @param order curve order\r\n * @param newKnots array to receive new knots.\r\n * @returns true if this is a closed-but-clamped case and corrected knots are filled in.\r\n */\r\n private static getCorrectedKnotsForClosedClamped(numPoles: number, knots: number[], order: number, newKnots: number[]): boolean {\r\n const numKnots = knots.length;\r\n if (numPoles + 2 * order - 1 === numKnots\r\n && knots[0] < knots[1]\r\n && knots[numKnots - 2] < knots[numKnots - 1]) {\r\n const a0 = knots[1];\r\n const a1 = knots[numKnots - 2];\r\n for (let i = 2; i <= order; i++) {\r\n if (knots[i] !== a0)\r\n return false;\r\n if (knots[numKnots - 1 - i] !== a1)\r\n return false;\r\n }\r\n // copy only the \"minimal\" set - without the typical extra knots from microstation and psd.\r\n for (let i = 2; i + 2 < numKnots; i++)\r\n newKnots.push(knots[i]);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */\r\n public static parseBcurve(data?: any): BSplineCurve3d | BSplineCurve3dH | undefined {\r\n if (data === undefined)\r\n return undefined;\r\n if (Array.isArray(data.points) && Array.isArray(data.knots) && Number.isFinite(data.order) && data.closed !== undefined) {\r\n if (data.points[0].length === 4) {\r\n const hPoles: Point4d[] = [];\r\n for (const p of data.points) hPoles.push(Point4d.fromJSON(p));\r\n const knots: number[] = [];\r\n let wrapMode = BSplineWrapMode.None;\r\n if (data.closed && this.getCorrectedKnotsForClosedClamped(data.points.length, data.knots, data.order, knots)) {\r\n // leave the poles alone -- knots are fixed.\r\n wrapMode = BSplineWrapMode.OpenByRemovingKnots;\r\n } else if (data.closed) {\r\n for (const knot of data.knots) knots.push(knot);\r\n for (let i = 0; i + 1 < data.order; i++) {\r\n hPoles.push(hPoles[i].clone());\r\n }\r\n wrapMode = BSplineWrapMode.OpenByAddingControlPoints;\r\n } else {\r\n // simple case .. just copy\r\n for (const knot of data.knots) knots.push(knot);\r\n }\r\n const newCurve = BSplineCurve3dH.create(hPoles, knots, data.order);\r\n if (newCurve) {\r\n if (data.closed === true)\r\n newCurve.setWrappable(wrapMode);\r\n return newCurve;\r\n }\r\n } else if (data.points[0].length === 3 || data.points[0].length === 2) {\r\n\r\n const poles: Point3d[] = [];\r\n for (const p of data.points) poles.push(Point3d.fromJSON(p));\r\n const knots: number[] = [];\r\n let wrapMode = BSplineWrapMode.None;\r\n if (data.closed && this.getCorrectedKnotsForClosedClamped(data.points.length, data.knots, data.order, knots)) {\r\n wrapMode = BSplineWrapMode.OpenByRemovingKnots;\r\n // leave the poles alone -- knots are fixed.\r\n } else if (data.closed) {\r\n for (const knot of data.knots) knots.push(knot);\r\n for (let i = 0; i + 1 < data.order; i++) {\r\n poles.push(poles[i].clone());\r\n }\r\n wrapMode = BSplineWrapMode.OpenByAddingControlPoints;\r\n } else {\r\n // simple case .. just copy\r\n for (const knot of data.knots) knots.push(knot);\r\n }\r\n const newCurve = BSplineCurve3d.create(poles, knots, data.order);\r\n if (newCurve) {\r\n if (data.closed === true)\r\n newCurve.setWrappable(wrapMode);\r\n return newCurve;\r\n }\r\n }\r\n\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */\r\n public static parseInterpolationCurve(data?: any): InterpolationCurve3d | undefined {\r\n if (data === undefined)\r\n return undefined;\r\n return InterpolationCurve3d.create(data);\r\n }\r\n\r\n /** Parse `bcurve` content (right side)to an Akima curve object. */\r\n public static parseAkimaCurve3d(data?: any): AkimaCurve3d | undefined {\r\n if (data === undefined)\r\n return undefined;\r\n return AkimaCurve3d.create(data);\r\n }\r\n\r\n /** Parse array of json objects to array of instances. */\r\n public static parseArray(data?: any): any[] | undefined {\r\n if (Array.isArray(data)) {\r\n const myArray = [];\r\n let c;\r\n for (c of data) {\r\n const g = Reader.parse(c);\r\n if (g !== undefined)\r\n myArray.push(g);\r\n }\r\n return myArray;\r\n }\r\n return undefined;\r\n }\r\n\r\n // For each nonzero index, Announce Math.abs (value) -1\r\n private static addZeroBasedIndicesFromSignedOneBased(data: any, numPerFace: number, f: (x: number) => any): void {\r\n if (data && Geometry.isNumberArray(data)) {\r\n if (numPerFace > 1) {\r\n // all indices are used ...\r\n for (const value of data) {\r\n f(Math.abs(value) - 1);\r\n }\r\n } else {\r\n // ignore separator zeros ...\r\n for (const value of data) {\r\n if (value !== 0)\r\n f(Math.abs(value) - 1);\r\n }\r\n }\r\n }\r\n }\r\n /** parse polyface aux data content to PolyfaceAuxData instance */\r\n public static parsePolyfaceAuxData(data: any = undefined, numPerFace: number = 0): PolyfaceAuxData | undefined {\r\n\r\n if (!Array.isArray(data.channels) || !Array.isArray(data.indices))\r\n return undefined;\r\n\r\n const outChannels: AuxChannel[] = [];\r\n for (const inChannel of data.channels) {\r\n if (Array.isArray(inChannel.data) && inChannel.hasOwnProperty(\"dataType\")) {\r\n const outChannelData: AuxChannelData[] = [];\r\n for (const inChannelData of inChannel.data) {\r\n if (inChannelData.hasOwnProperty(\"input\") && Array.isArray(inChannelData.values))\r\n outChannelData.push(new AuxChannelData(inChannelData.input, inChannelData.values));\r\n }\r\n outChannels.push(new AuxChannel(outChannelData, inChannel.dataType as AuxChannelDataType, inChannel.name, inChannel.inputName));\r\n }\r\n }\r\n\r\n const auxData = new PolyfaceAuxData(outChannels, []);\r\n Reader.addZeroBasedIndicesFromSignedOneBased(data.indices, numPerFace, (x: number) => { auxData.indices.push(x); });\r\n\r\n return auxData;\r\n }\r\n\r\n /** parse indexed mesh content to an IndexedPolyface instance */\r\n public static parseIndexedMesh(data?: any): IndexedPolyface | undefined {\r\n // {Coord:[[x,y,z],. . . ], -- simple xyz for each point\r\n // CoordIndex[1,2,3,0] -- zero-terminated, one based !!!\r\n if (data.hasOwnProperty(\"point\") && Array.isArray(data.point)\r\n && data.hasOwnProperty(\"pointIndex\") && Array.isArray(data.pointIndex)) {\r\n const polyface = IndexedPolyface.create();\r\n if (data.hasOwnProperty(\"normal\") && Array.isArray(data.normal)) {\r\n // for normals, addNormal() is overeager to detect the (common) case of duplicate normals in sequence.\r\n // use addNormalXYZ which always creates a new one.\r\n // likewise for params\r\n for (const uvw of data.normal) {\r\n if (Geometry.isNumberArray(uvw, 3))\r\n polyface.addNormalXYZ(uvw[0], uvw[1], uvw[2]);\r\n }\r\n }\r\n if (data.hasOwnProperty(\"twoSided\")) {\r\n const q = data.twoSided;\r\n if (q === true || q === false) {\r\n polyface.twoSided = q;\r\n }\r\n }\r\n const numPerFace = data.hasOwnProperty(\"numPerFace\") ? data.numPerFace : 0;\r\n if (data.hasOwnProperty(\"expectedClosure\")) {\r\n const q = data.expectedClosure;\r\n if (Number.isFinite(q)) {\r\n polyface.expectedClosure = q;\r\n }\r\n }\r\n if (data.hasOwnProperty(\"param\") && Array.isArray(data.param)) {\r\n for (const uv of data.param) {\r\n if (Geometry.isNumberArray(uv, 2))\r\n polyface.addParamUV(uv[0], uv[1]);\r\n }\r\n }\r\n if (data.hasOwnProperty(\"color\") && Array.isArray(data.color)) {\r\n for (const c of data.color) {\r\n polyface.addColor(c);\r\n }\r\n }\r\n\r\n for (const p of data.point) polyface.addPointXYZ(p[0], p[1], p[2]);\r\n\r\n if (numPerFace > 1) {\r\n for (let i = 0; i < data.pointIndex.length; i++) {\r\n const p = data.pointIndex[i];\r\n const p0 = Math.abs(p) - 1;\r\n polyface.addPointIndex(p0, p > 0);\r\n if ((i + 1) % numPerFace === 0)\r\n polyface.terminateFacet(false);\r\n }\r\n\r\n } else {\r\n for (const p of data.pointIndex) {\r\n if (p === 0)\r\n polyface.terminateFacet(false); // we are responsible for index checking !!!\r\n else {\r\n const p0 = Math.abs(p) - 1;\r\n polyface.addPointIndex(p0, p > 0);\r\n }\r\n }\r\n }\r\n\r\n if (data.hasOwnProperty(\"normalIndex\")) {\r\n Reader.addZeroBasedIndicesFromSignedOneBased(data.normalIndex, numPerFace,\r\n (x: number) => { polyface.addNormalIndex(x); });\r\n }\r\n if (data.hasOwnProperty(\"paramIndex\")) {\r\n Reader.addZeroBasedIndicesFromSignedOneBased(data.paramIndex, numPerFace,\r\n (x: number) => { polyface.addParamIndex(x); });\r\n }\r\n\r\n if (data.hasOwnProperty(\"colorIndex\")) {\r\n Reader.addZeroBasedIndicesFromSignedOneBased(data.colorIndex, numPerFace,\r\n (x: number) => { polyface.addColorIndex(x); });\r\n }\r\n if (data.hasOwnProperty(\"auxData\"))\r\n polyface.data.auxData = Reader.parsePolyfaceAuxData(data.auxData, numPerFace);\r\n\r\n if (data.hasOwnProperty(\"tags\")) {\r\n polyface.data.taggedNumericData = Reader.parseTaggedNumericProps(data.tags);\r\n }\r\n\r\n return polyface;\r\n }\r\n return undefined;\r\n }\r\n /** parse contents of a curve collection to a CurveCollection instance */\r\n public static parseCurveCollectionMembers(result: CurveCollection, data?: any): CurveCollection | undefined {\r\n if (data && Array.isArray(data)) {\r\n for (const c of data) {\r\n const g = Reader.parse(c);\r\n if (g instanceof GeometryQuery && (\"curveCollection\" === g.geometryCategory || \"curvePrimitive\" === g.geometryCategory))\r\n result.tryAddChild(g);\r\n }\r\n return result;\r\n }\r\n return undefined;\r\n }\r\n /** Parse content of `bsurf` to BSplineSurface3d or BSplineSurface3dH */\r\n public static parseBsurf(data?: any): BSplineSurface3d | BSplineSurface3dH | undefined {\r\n if (data.hasOwnProperty(\"uKnots\") && Array.isArray(data.uKnots)\r\n && data.hasOwnProperty(\"vKnots\") && Array.isArray(data.vKnots)\r\n && data.hasOwnProperty(\"orderU\") && Number.isFinite(data.orderU)\r\n && data.hasOwnProperty(\"orderV\") && Number.isFinite(data.orderV)\r\n && data.hasOwnProperty(\"points\") && Array.isArray(data.points)\r\n ) {\r\n const orderU = data.orderU;\r\n const orderV = data.orderV;\r\n if (Array.isArray(data.points[0]) && Array.isArray(data.points[0][0])) {\r\n const d = data.points[0][0].length;\r\n /** xyz surface (no weights) */\r\n if (d === 3) {\r\n return BSplineSurface3d.createGrid(data.points,\r\n orderU, data.uKnots,\r\n orderV, data.vKnots);\r\n }\r\n /** xyzw surface (weights already applied) */\r\n if (d === 4) {\r\n return BSplineSurface3dH.createGrid(data.points,\r\n WeightStyle.WeightsAlreadyAppliedToCoordinates,\r\n orderU, data.uKnots,\r\n orderV, data.vKnots);\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n /** Parse `cone` contents to `Cone` instance */\r\n public static parseConeProps(json?: ConeProps): Cone | undefined {\r\n const axes = Reader.parseOrientation(json, false);\r\n const start = Reader.parsePoint3dProperty(json, \"start\");\r\n const end = Reader.parsePoint3dProperty(json, \"end\");\r\n const radius = Reader.parseNumberProperty(json, \"radius\");\r\n const startRadius = Reader.parseNumberProperty(json, \"startRadius\", radius);\r\n const endRadius = Reader.parseNumberProperty(json, \"endRadius\", startRadius);\r\n\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false) as boolean;\r\n\r\n if (start\r\n && end\r\n && startRadius !== undefined\r\n && endRadius !== undefined) {\r\n if (axes === undefined) {\r\n const axisVector = Vector3d.createStartEnd(start, end);\r\n const frame = Matrix3d.createRigidHeadsUp(axisVector, AxisOrder.ZXY);\r\n const vectorX = frame.columnX();\r\n const vectorY = frame.columnY();\r\n return Cone.createBaseAndTarget(start, end, vectorX, vectorY, startRadius, endRadius, capped);\r\n } else {\r\n return Cone.createBaseAndTarget(start, end, axes.columnX(), axes.columnY(), startRadius, endRadius, capped);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Parse `cylinder` content to `Cone` instance */\r\n public static parseCylinderProps(json?: CylinderProps): Cone | undefined {\r\n const start = Reader.parsePoint3dProperty(json, \"start\");\r\n const end = Reader.parsePoint3dProperty(json, \"end\");\r\n const radius = Reader.parseNumberProperty(json, \"radius\");\r\n\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false) as boolean;\r\n\r\n if (start\r\n && end\r\n && radius !== undefined) {\r\n return Cone.createAxisPoints(start, end, radius, radius, capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse line segment (array of 2 points) properties to `LineSegment3d` instance */\r\n private static parseLineSegmentProps(value: any[]): LineSegment3d | undefined {\r\n if (Array.isArray(value) && value.length > 1)\r\n return LineSegment3d.create(Point3d.fromJSON(value[0]), Point3d.fromJSON(value[1]));\r\n else\r\n return undefined;\r\n }\r\n /** Parse linear sweep content to `LinearSweep` instance. */\r\n public static parseLinearSweep(json?: any): LinearSweep | undefined {\r\n const contour = Reader.parse(json.contour);\r\n const capped = Reader.parseBooleanProperty(json, \"capped\");\r\n const extrusionVector = Reader.parseVector3dProperty(json, \"vector\");\r\n if (contour instanceof GeometryQuery\r\n && \"curveCollection\" === contour.geometryCategory\r\n && capped !== undefined\r\n && extrusionVector\r\n ) {\r\n return LinearSweep.create(contour, extrusionVector, capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse rotational sweep contents to `RotationalSweep` instance */\r\n public static parseRotationalSweep(json?: RotationalSweepProps): RotationalSweep | undefined {\r\n if (json === undefined)\r\n return undefined;\r\n const contour = Reader.parse(json.contour);\r\n const capped = Reader.parseBooleanProperty(json, \"capped\");\r\n const axisVector = Reader.parseVector3dProperty(json, \"axis\");\r\n const center = Reader.parsePoint3dProperty(json, \"center\");\r\n const sweepDegrees = Reader.parseNumberProperty(json, \"sweepAngle\");\r\n if (contour instanceof GeometryQuery\r\n && \"curveCollection\" === contour.geometryCategory\r\n && sweepDegrees !== undefined\r\n && capped !== undefined\r\n && axisVector\r\n && center\r\n ) {\r\n return RotationalSweep.create(\r\n contour,\r\n Ray3d.createCapture(center, axisVector),\r\n Angle.createDegrees(sweepDegrees),\r\n capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse box contents to `Box` instance */\r\n public static parseBox(json?: BoxProps): Box | undefined {\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false);\r\n const baseOrigin = Reader.parsePoint3dProperty(json, \"baseOrigin\");\r\n const baseX = Reader.parseNumberProperty(json, \"baseX\");\r\n const baseY = Reader.parseNumberProperty(json, \"baseY\", baseX);\r\n let topOrigin = Reader.parsePoint3dProperty(json, \"topOrigin\");\r\n const topX = Reader.parseNumberProperty(json, \"topX\", baseX);\r\n const topY = Reader.parseNumberProperty(json, \"topY\", baseY);\r\n const height = Reader.parseNumberProperty(json, \"height\", baseX);\r\n const axes = Reader.parseOrientation(json, true)!;\r\n\r\n if (baseOrigin && !topOrigin)\r\n topOrigin = Matrix3d.xyzMinusMatrixTimesXYZ(baseOrigin, axes, Vector3d.create(0, 0, height));\r\n\r\n if (capped !== undefined\r\n && baseX !== undefined\r\n && baseY !== undefined\r\n && topY !== undefined\r\n && topX !== undefined\r\n && axes\r\n && baseOrigin\r\n && topOrigin\r\n ) {\r\n return Box.createDgnBoxWithAxes(baseOrigin, axes, topOrigin, baseX, baseY, topX, topY, capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse `SphereProps` to `Sphere` instance. */\r\n public static parseSphere(json?: SphereProps): Sphere | undefined {\r\n const center = Reader.parsePoint3dProperty(json, \"center\");\r\n // optional unqualified radius . . .\r\n const radius = Reader.parseNumberProperty(json, \"radius\");\r\n // optional specific X\r\n const radiusX = Reader.parseNumberProperty(json, \"radiusX\", radius);\r\n // missing Y and Z both pick up radiusX (which may have already been defaulted from unqualified radius)\r\n const radiusY = Reader.parseNumberProperty(json, \"radiusX\", radiusX);\r\n const radiusZ = Reader.parseNumberProperty(json, \"radiusX\", radiusX);\r\n const latitudeStartEnd = Reader.parseAngleSweepProps(json, \"latitudeStartEnd\"); // this may be undefined!!\r\n\r\n const axes = Reader.parseOrientation(json, true)!;\r\n\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false);\r\n\r\n if (center !== undefined\r\n && radiusX !== undefined\r\n && radiusY !== undefined\r\n && radiusZ !== undefined\r\n && capped !== undefined) {\r\n return Sphere.createFromAxesAndScales(center, axes, radiusX, radiusY, radiusZ, latitudeStartEnd, capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse RuledSweepProps to RuledSweep instance. */\r\n public static parseRuledSweep(json?: RuledSweepProps): RuledSweep | undefined {\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false);\r\n const contours = this.loadContourArray(json, \"contour\");\r\n if (contours !== undefined\r\n && capped !== undefined) {\r\n return RuledSweep.create(contours, capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse TorusPipe props to TorusPipe instance. */\r\n public static parseTorusPipe(json?: TorusPipeProps): TorusPipe | undefined {\r\n\r\n const axes = Reader.parseOrientation(json, true)!;\r\n const center = Reader.parsePoint3dProperty(json, \"center\");\r\n const radiusA = Reader.parseNumberProperty(json, \"majorRadius\");\r\n const radiusB = Reader.parseNumberProperty(json, \"minorRadius\");\r\n const sweepAngle = Reader.parseAngleProperty(json, \"sweepAngle\", undefined);\r\n const capped = Reader.parseBooleanProperty(json, \"capped\", false)!;\r\n if (center\r\n && radiusA !== undefined\r\n && radiusB !== undefined\r\n ) {\r\n\r\n return TorusPipe.createDgnTorusPipe(center, axes.columnX(), axes.columnY(),\r\n radiusA, radiusB,\r\n sweepAngle ? sweepAngle : Angle.createDegrees(360), capped);\r\n }\r\n return undefined;\r\n }\r\n /** Parse an array object to array of Point3d instances. */\r\n public static parsePointArray(json?: any[]): Point3d[] {\r\n const points = [];\r\n if (json && Array.isArray(json)) {\r\n for (const member of json) {\r\n if (XYZ.isXAndY(member)) {\r\n points.push(Point3d.fromJSON(member));\r\n } else if (Geometry.isNumberArray(member, 2)) {\r\n points.push(Point3d.fromJSON(member));\r\n }\r\n }\r\n }\r\n return points;\r\n }\r\n /** Deserialize `json` to `GeometryQuery` instances. */\r\n public static parse(json?: any): AnyGeometryQuery | any[] | undefined {\r\n if (json !== undefined && json as object) {\r\n if (json.lineSegment !== undefined) {\r\n return Reader.parseLineSegmentProps(json.lineSegment);\r\n } else if (json.lineString !== undefined) {\r\n return LineString3d.create(Reader.parsePointArray(json.lineString));\r\n } else if (json.arc !== undefined) {\r\n return Reader.parseArcObject(json.arc);\r\n } else if (json.hasOwnProperty(\"point\")) {\r\n return Reader.parseCoordinate(json.point);\r\n\r\n } else if (json.hasOwnProperty(\"bcurve\")) {\r\n return Reader.parseBcurve(json.bcurve);\r\n } else if (json.hasOwnProperty(\"interpolationCurve\")) {\r\n return Reader.parseInterpolationCurve(json.interpolationCurve);\r\n } else if (json.hasOwnProperty(\"akimaCurve\")) {\r\n return Reader.parseAkimaCurve3d(json.akimaCurve);\r\n } else if (json.hasOwnProperty(\"path\")) {\r\n return Reader.parseCurveCollectionMembers(new Path(), json.path);\r\n } else if (json.hasOwnProperty(\"loop\")) {\r\n return Reader.parseCurveCollectionMembers(new Loop(), json.loop);\r\n } else if (json.hasOwnProperty(\"parityRegion\")) {\r\n return Reader.parseCurveCollectionMembers(new ParityRegion(), json.parityRegion);\r\n } else if (json.hasOwnProperty(\"unionRegion\")) {\r\n return Reader.parseCurveCollectionMembers(new UnionRegion(), json.unionRegion);\r\n } else if (json.hasOwnProperty(\"bagOfCurves\")) {\r\n return Reader.parseCurveCollectionMembers(new BagOfCurves(), json.bagOfCurves);\r\n } else if (json.hasOwnProperty(\"indexedMesh\")) {\r\n return Reader.parseIndexedMesh(json.indexedMesh);\r\n } else if (json.hasOwnProperty(\"bsurf\")) {\r\n return Reader.parseBsurf(json.bsurf);\r\n } else if (json.hasOwnProperty(\"cone\")) {\r\n return Reader.parseConeProps(json.cone);\r\n } else if (json.hasOwnProperty(\"cylinder\")) {\r\n return Reader.parseCylinderProps(json.cylinder);\r\n } else if (json.hasOwnProperty(\"sphere\")) {\r\n return Reader.parseSphere(json.sphere);\r\n } else if (json.hasOwnProperty(\"linearSweep\")) {\r\n return Reader.parseLinearSweep(json.linearSweep);\r\n } else if (json.hasOwnProperty(\"box\")) {\r\n return Reader.parseBox(json.box);\r\n } else if (json.hasOwnProperty(\"rotationalSweep\")) {\r\n return Reader.parseRotationalSweep(json.rotationalSweep);\r\n } else if (json.hasOwnProperty(\"ruledSweep\")) {\r\n return Reader.parseRuledSweep(json.ruledSweep);\r\n } else if (json.hasOwnProperty(\"torusPipe\")) {\r\n return Reader.parseTorusPipe(json.torusPipe);\r\n } else if (json.hasOwnProperty(\"pointString\")) {\r\n return PointString3d.create(Reader.parsePointArray(json.pointString));\r\n } else if (json.hasOwnProperty(\"transitionSpiral\")) {\r\n return Reader.parseTransitionSpiral(json.transitionSpiral);\r\n } else if (Array.isArray(json))\r\n return Reader.parseArray(json);\r\n }\r\n return undefined;\r\n }\r\n }\r\n // ISSUE: include 3d in names?\r\n // ISSUE: would like shorter term than lineSegment\r\n // ISSUE: is arc clear?\r\n // ISSUE: label center, vectorX, vector90 on arc?\r\n // ISSUE: sweep data on arc -- serialize as AngleSweep?\r\n /**\r\n * Class to deserialize json objects into GeometryQuery objects\r\n * @public\r\n */\r\n export class Writer extends GeometryHandler {\r\n\r\n public handleTaggedNumericData(data: TaggedNumericData): TaggedNumericDataProps {\r\n const result: TaggedNumericDataProps = { tagA: data.tagA, tagB: data.tagB };\r\n if (data.intData !== undefined && data.intData.length > 0)\r\n result.intData = data.intData.slice();\r\n if (data.doubleData !== undefined && data.doubleData.length > 0)\r\n result.doubleData = data.doubleData.slice();\r\n return result;\r\n }\r\n /** Convert strongly typed instance to tagged json */\r\n public handleLineSegment3d(data: LineSegment3d): any {\r\n return { lineSegment: [data.point0Ref.toJSON(), data.point1Ref.toJSON()] };\r\n }\r\n /** Convert strongly typed instance to tagged json */\r\n public handleCoordinateXYZ(data: CoordinateXYZ): any {\r\n return { point: data.point.toJSON() };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleArc3d(data: Arc3d): any {\r\n return {\r\n arc: {\r\n center: data.center.toJSON(),\r\n vectorX: data.vector0.toJSON(),\r\n vectorY: data.vector90.toJSON(),\r\n sweepStartEnd: [data.sweep.startDegrees, data.sweep.endDegrees],\r\n },\r\n };\r\n }\r\n /**\r\n * Insert orientation description to a data object.\r\n * @param matrix matrix with orientation\r\n * @param omitIfIdentity omit the axis data if the matrix is an identity.\r\n * @param data AxesProps object to be annotated.\r\n */\r\n private static insertOrientationFromMatrix(data: AxesProps, matrix: Matrix3d | undefined, omitIfIdentity: boolean) {\r\n if (omitIfIdentity) {\r\n if (matrix === undefined)\r\n return;\r\n if (matrix.isIdentity)\r\n return;\r\n }\r\n if (matrix)\r\n data.xyVectors = [matrix.columnX().toJSON(), matrix.columnY().toJSON()];\r\n else\r\n data.xyVectors = [[1, 0, 0], [0, 1, 0]];\r\n }\r\n private static isIdentityXY(xVector: Vector3d, yVector: Vector3d): boolean {\r\n return xVector.isAlmostEqualXYZ(1, 0, 0) && yVector.isAlmostEqualXYZ(0, 1, 0);\r\n }\r\n\r\n /**\r\n * Insert orientation description to a data object.\r\n * @param matrix matrix with orientation\r\n * @param omitIfIdentity omit the axis data if the matrix is an identity.\r\n * @param data AxesProps object to be annotated.\r\n */\r\n private static insertOrientationFromXYVectors(data: AxesProps, vectorX: Vector3d, vectorY: Vector3d, omitIfIdentity: boolean) {\r\n if (omitIfIdentity && Writer.isIdentityXY(vectorX, vectorY))\r\n return;\r\n data.xyVectors = [vectorX.toJSON(), vectorY.toJSON()];\r\n }\r\n\r\n /**\r\n * Insert orientation description to a data object, with orientation defined by u and v direction\r\n * vectors.\r\n * @param vectorX u direction\r\n * @param vectorV v direction\r\n * @param omitIfIdentity omit the axis data if the vectorU and vectorV are global x and y vectors.\r\n * @param data AxesProps object to be annotated.\r\n */\r\n private static insertXYOrientation(data: AxesProps, vectorU: Vector3d, vectorV: Vector3d, omitIfIdentity: boolean) {\r\n if (omitIfIdentity) {\r\n if (vectorU.isAlmostEqualXYZ(1, 0, 0) && vectorV.isAlmostEqualXYZ(0, 1, 0))\r\n return;\r\n }\r\n data.xyVectors = [vectorU.toJSON(), vectorV.toJSON()];\r\n }\r\n /**\r\n * parse properties of a TransitionSpiral.\r\n * @alpha\r\n */\r\n public handleTransitionSpiral(data: TransitionSpiral3d): any {\r\n // TODO: HANDLE NONRIGID TRANSFORM !!\r\n // the spiral may have indication of how it was defined. If so, use defined/undefined state of the original data\r\n // as indication of what current data to use. (Current data may have changed due to transforms.)\r\n if (data instanceof DirectSpiral3d) {\r\n const value: TransitionSpiralProps = {\r\n origin: data.localToWorld.origin.toJSON(),\r\n type: data.spiralType,\r\n };\r\n Writer.insertOrientationFromMatrix(value, data.localToWorld.matrix, true);\r\n\r\n if (!data.activeFractionInterval.isExact01)\r\n value.activeFractionInterval = [data.activeFractionInterval.x0, data.activeFractionInterval.x1];\r\n // Object.defineProperty(value, \"fractionInterval\", { value: [data.activeFractionInterval.x0, data.activeFractionInterval.x1] });\r\n value.startRadius = 0;\r\n value.endRadius = data.nominalR1;\r\n value.length = data.nominalL1;\r\n return { transitionSpiral: value };\r\n\r\n } else if (data instanceof IntegratedSpiral3d) {\r\n // TODO: HANDLE NONRIGID TRANSFORM !!\r\n // the spiral may have indication of how it was defined. If so, use defined/undefined state of the original data\r\n // as indication of what current data to use. (Current data may have changed due to transforms.)\r\n const originalProperties = data.designProperties;\r\n\r\n const value: TransitionSpiralProps = {\r\n origin: data.localToWorld.origin.toJSON(),\r\n type: data.spiralType,\r\n };\r\n Writer.insertOrientationFromMatrix(value, data.localToWorld.matrix, true);\r\n\r\n if (!data.activeFractionInterval.isExact01)\r\n value.activeFractionInterval = [data.activeFractionInterval.x0, data.activeFractionInterval.x1];\r\n // Object.defineProperty(value, \"fractionInterval\", { value: [data.activeFractionInterval.x0, data.activeFractionInterval.x1] });\r\n\r\n // if possible, do selective output of defining data (omit exactly one out of the 5, matching original definition)\r\n // EXCEPT do not omit final radius .. readers want it?\r\n if (originalProperties !== undefined && originalProperties.numDefinedProperties() === 4) {\r\n if (originalProperties.radius0 !== undefined)\r\n value.startRadius = data.radius01.x0;\r\n if (originalProperties.radius1 !== undefined)\r\n value.endRadius = data.radius01.x1;\r\n if (originalProperties.bearing0 !== undefined)\r\n value.startBearing = data.bearing01.startAngle.toJSON();\r\n if (originalProperties.bearing1 !== undefined)\r\n value.endBearing = data.bearing01.endAngle.toJSON();\r\n if (originalProperties.curveLength !== undefined)\r\n value.length = data.curveLength();\r\n if (value.endRadius === undefined)\r\n value.endRadius = data.radius01.x1;\r\n } else {\r\n // uh oh ... no original data, but the spiral itself knows all 5 values. We don't know which to consider primary.\r\n // DECISION -- put everything out, let readers make sense if they can. (It should be consistent ?)\r\n value.startRadius = data.radius01.x0;\r\n value.endRadius = data.radius01.x1;\r\n value.startBearing = data.bearing01.startAngle.toJSON();\r\n value.endBearing = data.bearing01.endAngle.toJSON();\r\n value.length = data.curveLength();\r\n }\r\n return { transitionSpiral: value };\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleCone(data: Cone): any {\r\n\r\n const radiusA = data.getRadiusA();\r\n const radiusB = data.getRadiusB();\r\n const centerA = data.getCenterA();\r\n const centerB = data.getCenterB();\r\n const vectorX = data.getVectorX();\r\n const vectorY = data.getVectorY();\r\n const axisVector = Vector3d.createStartEnd(centerA, centerB);\r\n\r\n if (Geometry.isSameCoordinate(radiusA, radiusB)\r\n && vectorX.isPerpendicularTo(axisVector)\r\n && vectorY.isPerpendicularTo(axisVector)\r\n && Geometry.isSameCoordinate(vectorX.magnitude(), 1.0)\r\n && Geometry.isSameCoordinate(vectorY.magnitude(), 1.0)) {\r\n return {\r\n cylinder: {\r\n capped: data.capped,\r\n start: data.getCenterA().toJSON(),\r\n end: data.getCenterB().toJSON(),\r\n radius: radiusA,\r\n },\r\n };\r\n } else {\r\n const coneProps: ConeProps = {\r\n capped: data.capped,\r\n start: data.getCenterA().toJSON(),\r\n end: data.getCenterB().toJSON(),\r\n startRadius: data.getRadiusA(),\r\n endRadius: data.getRadiusB(),\r\n };\r\n Writer.insertOrientationFromXYVectors(coneProps, vectorX, vectorY, false);\r\n return { cone: coneProps };\r\n }\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleSphere(data: Sphere): any {\r\n const xData = data.cloneVectorX().normalizeWithLength();\r\n const yData = data.cloneVectorY().normalizeWithLength();\r\n const zData = data.cloneVectorZ().normalizeWithLength();\r\n const latitudeSweep = data.cloneLatitudeSweep();\r\n\r\n const rX = xData.mag;\r\n const rY = yData.mag;\r\n const rZ = zData.mag;\r\n if (xData.v && zData.v) {\r\n const value: SphereProps = {\r\n center: data.cloneCenter().toJSON(),\r\n };\r\n if (!(data.getConstructiveFrame()!).matrix.isIdentity)\r\n value.zxVectors = [zData.v.toJSON(), xData.v.toJSON()];\r\n const fullSweep = latitudeSweep.isFullLatitudeSweep;\r\n\r\n if (data.capped && !fullSweep)\r\n value.capped = data.capped;\r\n\r\n if (Geometry.isSameCoordinate(rX, rY) && Geometry.isSameCoordinate(rX, rZ))\r\n value.radius = rX;\r\n else {\r\n value.radiusX = rX;\r\n value.radiusY = rY;\r\n value.radiusZ = rZ;\r\n }\r\n if (!fullSweep)\r\n value.latitudeStartEnd = latitudeSweep.toJSON();\r\n return { sphere: value };\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleTorusPipe(data: TorusPipe): any {\r\n\r\n const vectorX = data.cloneVectorX();\r\n const vectorY = data.cloneVectorY();\r\n const radiusA = data.getMajorRadius();\r\n const radiusB = data.getMinorRadius();\r\n const sweep = data.getSweepAngle();\r\n if (data.getIsReversed()) {\r\n vectorY.scaleInPlace(-1.0);\r\n sweep.setRadians(-sweep.radians);\r\n }\r\n const value: TorusPipeProps = {\r\n center: data.cloneCenter().toJSON(),\r\n majorRadius: radiusA,\r\n minorRadius: radiusB,\r\n xyVectors: [vectorX.toJSON(), vectorY.toJSON()],\r\n };\r\n if (!sweep.isFullCircle) {\r\n value.sweepAngle = sweep.degrees;\r\n value.capped = data.capped;\r\n }\r\n return { torusPipe: value };\r\n\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleLineString3d(data: LineString3d): any {\r\n const pointsA = data.points;\r\n const pointsB = [];\r\n if (pointsA)\r\n for (const p of pointsA) pointsB.push(p.toJSON());\r\n return { lineString: pointsB };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handlePointString3d(data: PointString3d): any {\r\n const pointsA = data.points;\r\n const pointsB = [];\r\n if (pointsA)\r\n for (const p of pointsA) pointsB.push(p.toJSON());\r\n return { pointString: pointsB };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public override handlePath(data: Path): any {\r\n return { path: this.collectChildren(data) };\r\n }\r\n /** Convert strongly typed instance to tagged json */\r\n public override handleLoop(data: Loop): any {\r\n return { loop: this.collectChildren(data) };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public override handleParityRegion(data: ParityRegion): any {\r\n return { parityRegion: this.collectChildren(data) };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public override handleUnionRegion(data: UnionRegion): any {\r\n return { unionRegion: this.collectChildren(data) };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public override handleBagOfCurves(data: BagOfCurves): any {\r\n return { bagOfCurves: this.collectChildren(data) };\r\n }\r\n\r\n private collectChildren(data: CurveCollection): any[] {\r\n const children = [];\r\n if (data.children && Array.isArray(data.children)) {\r\n for (const child of data.children) {\r\n const cdata = child.dispatchToGeometryHandler(this);\r\n if (cdata)\r\n children.push(cdata);\r\n }\r\n }\r\n return children;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleLinearSweep(data: LinearSweep): any {\r\n const extrusionVector = data.cloneSweepVector();\r\n const curves = data.getCurvesRef();\r\n const capped = data.capped;\r\n if (extrusionVector\r\n && curves\r\n && capped !== undefined) {\r\n return {\r\n linearSweep: {\r\n contour: curves.dispatchToGeometryHandler(this),\r\n capped,\r\n vector: extrusionVector.toJSON(),\r\n },\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleRuledSweep(data: RuledSweep): any {\r\n const contours = data.cloneContours();\r\n const capped = data.capped;\r\n if (contours\r\n && contours.length > 1\r\n && capped !== undefined) {\r\n const jsonContours = [];\r\n for (const c of contours) {\r\n jsonContours.push(this.emit(c));\r\n }\r\n return {\r\n ruledSweep: {\r\n contour: jsonContours,\r\n capped,\r\n },\r\n };\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleRotationalSweep(data: RotationalSweep): any {\r\n const axisRay = data.cloneAxisRay();\r\n const curves = data.getCurves();\r\n const capped = data.capped;\r\n const sweepAngle = data.getSweep();\r\n return {\r\n rotationalSweep: {\r\n axis: axisRay.direction.toJSON(),\r\n contour: curves.dispatchToGeometryHandler(this),\r\n capped,\r\n center: axisRay.origin.toJSON(),\r\n sweepAngle: sweepAngle.degrees,\r\n },\r\n };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBox(box: Box): any {\r\n const out: any = {\r\n box: {\r\n baseOrigin: box.getBaseOrigin().toJSON(),\r\n baseX: box.getBaseX(),\r\n baseY: box.getBaseY(),\r\n capped: box.capped,\r\n topOrigin: box.getTopOrigin().toJSON(),\r\n },\r\n };\r\n Writer.insertXYOrientation(out.box, box.getVectorX(), box.getVectorY(), true);\r\n if (!Geometry.isSameCoordinate(box.getTopX(), box.getBaseX()))\r\n out.box.topX = box.getTopX();\r\n if (!Geometry.isSameCoordinate(box.getTopY(), box.getBaseY()))\r\n out.box.topY = box.getTopY();\r\n\r\n return out;\r\n }\r\n\r\n private handlePolyfaceAuxData(auxData: PolyfaceAuxData, pf: IndexedPolyface): any {\r\n const contents: { [k: string]: any } = {};\r\n contents.indices = [];\r\n const visitor = pf.createVisitor(0);\r\n if (!visitor.auxData) return;\r\n\r\n while (visitor.moveToNextFacet()) {\r\n for (let i = 0; i < visitor.indexCount; i++) {\r\n contents.indices.push(visitor.auxData.indices[i] + 1);\r\n }\r\n contents.indices.push(0); // facet terminator.\r\n }\r\n contents.channels = [];\r\n for (const inChannel of auxData.channels) {\r\n const outChannel: { [k: string]: any } = {};\r\n outChannel.dataType = inChannel.dataType;\r\n outChannel.name = inChannel.name;\r\n outChannel.inputName = inChannel.inputName;\r\n outChannel.data = [];\r\n for (const inData of inChannel.data) {\r\n const outData: { [k: string]: any } = {};\r\n outData.input = inData.input;\r\n outData.values = inData.values.slice(0);\r\n outChannel.data.push(outData);\r\n }\r\n\r\n contents.channels.push(outChannel);\r\n }\r\n return contents;\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleIndexedPolyface(pf: IndexedPolyface): any {\r\n const points = [];\r\n const pointIndex: number[] = [];\r\n const normals = [];\r\n const params = [];\r\n const colors = [];\r\n {\r\n const p = Point3d.create();\r\n for (let i = 0; pf.data.point.getPoint3dAtCheckedPointIndex(i, p); i++)\r\n points.push(p.toJSON());\r\n }\r\n if (pf.data.normal) {\r\n const numNormal = pf.data.normal.length;\r\n const normal = Vector3d.create();\r\n for (let i = 0; i < numNormal; i++) {\r\n pf.data.normal.getVector3dAtCheckedVectorIndex(i, normal);\r\n normals.push(normal.toJSON());\r\n }\r\n\r\n }\r\n\r\n if (pf.data.param) {\r\n const uv = Point2d.create();\r\n for (let i = 0; pf.data.param.getPoint2dAtCheckedPointIndex(i, uv); i++)\r\n params.push(uv.toJSON());\r\n }\r\n\r\n if (pf.data.color) {\r\n for (const value of pf.data.color) colors.push(value);\r\n }\r\n\r\n const visitor = pf.createVisitor(0);\r\n let indexCounter = 0;\r\n\r\n const normalIndex = [];\r\n const paramIndex = [];\r\n const colorIndex = [];\r\n\r\n let n;\r\n while (visitor.moveToNextFacet()) {\r\n n = visitor.indexCount;\r\n // All meshes have point and point index ...\r\n for (let i = 0; i < n; i++) {\r\n // Change sign of value to be pushed based on whether or not the edge was originally visible or not\r\n const toPush = pf.data.edgeVisible[indexCounter + i] ? visitor.pointIndex[i] + 1 : - (visitor.clientPointIndex(i) + 1);\r\n pointIndex.push(toPush);\r\n }\r\n pointIndex.push(0); // facet terminator.\r\n indexCounter += visitor.indexCount;\r\n\r\n if (visitor.normalIndex) {\r\n for (let i = 0; i < n; i++) normalIndex.push(1 + visitor.clientNormalIndex(i));\r\n normalIndex.push(0);\r\n }\r\n if (visitor.paramIndex) {\r\n for (let i = 0; i < n; i++) paramIndex.push(1 + visitor.clientParamIndex(i));\r\n paramIndex.push(0);\r\n }\r\n if (visitor.colorIndex) {\r\n for (let i = 0; i < n; i++) colorIndex.push(1 + visitor.clientColorIndex(i));\r\n colorIndex.push(0);\r\n }\r\n }\r\n let taggedNumericData;\r\n if (pf.data.taggedNumericData) {\r\n taggedNumericData = this.handleTaggedNumericData(pf.data.taggedNumericData);\r\n }\r\n // assemble the contents in alphabetical order.\r\n const contents: { [k: string]: any } = {};\r\n if (pf.expectedClosure !== 0)\r\n contents.expectedClosure = pf.expectedClosure;\r\n if (pf.twoSided)\r\n contents.twoSided = true;\r\n if (pf.data.auxData)\r\n contents.auxData = this.handlePolyfaceAuxData(pf.data.auxData, pf);\r\n\r\n if (pf.data.color) contents.color = colors;\r\n if (pf.data.colorIndex) contents.colorIndex = colorIndex;\r\n\r\n if (pf.data.normal) contents.normal = normals;\r\n if (pf.data.normalIndex) contents.normalIndex = normalIndex;\r\n\r\n if (pf.data.param) contents.param = params;\r\n if (pf.data.paramIndex) contents.paramIndex = paramIndex;\r\n\r\n contents.point = points;\r\n contents.pointIndex = pointIndex;\r\n\r\n if (taggedNumericData)\r\n contents.tags = taggedNumericData;\r\n return { indexedMesh: contents };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBSplineCurve3d(curve: BSplineCurve3d): any {\r\n // ASSUME -- if the curve originated \"closed\" the knot and pole replication are unchanged,\r\n // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.\r\n const wrapMode = curve.isClosable;\r\n if (wrapMode === BSplineWrapMode.OpenByAddingControlPoints) {\r\n const knots = curve.copyKnots(true);\r\n const poles = curve.copyPoints();\r\n const degree = curve.degree;\r\n for (let i = 0; i < degree; i++) poles.pop();\r\n // knots have replicated first and last. Change the values to be periodic.\r\n const leftIndex = degree;\r\n const rightIndex = knots.length - degree - 1;\r\n const knotPeriod = knots[rightIndex] - knots[leftIndex];\r\n knots[0] = knots[rightIndex - degree] - knotPeriod;\r\n knots[knots.length - 1] = knots[leftIndex + degree] + knotPeriod;\r\n return {\r\n bcurve: {\r\n points: poles,\r\n knots,\r\n closed: true,\r\n order: curve.order,\r\n },\r\n };\r\n } else if (curve.isClosable === BSplineWrapMode.OpenByRemovingKnots) {\r\n // special case to re-close the case that originated as : a a0 a0 .. a0 knot0 knot1 knot2 ... b1 b1 .. b1 b\r\n // with (order) copies of a0 and b1 (usually 0 and 1)\r\n // and a,b are related to the interior knots\r\n // (This is the \"bezier saturated arc\")\r\n const rawKnots = curve.copyKnots(false); // unchanged knots . . .\r\n const poles = curve.copyPoints();\r\n const degree = curve.degree;\r\n const leftIndex = degree - 1;\r\n const rightIndex = rawKnots.length - degree;\r\n const leftKnot = rawKnots[leftIndex];\r\n const rightKnot = rawKnots[rightIndex];\r\n const knotPeriod = rightKnot - leftKnot;\r\n const knots = [];\r\n knots.push(rawKnots[rightIndex - 1] - knotPeriod);\r\n knots.push(leftKnot);\r\n for (const k of rawKnots) knots.push(k);\r\n knots.push(rightKnot);\r\n knots.push(rawKnots[leftIndex + 1] + knotPeriod);\r\n return {\r\n bcurve: {\r\n points: poles,\r\n knots,\r\n closed: true,\r\n order: curve.order,\r\n },\r\n };\r\n } else {\r\n return {\r\n bcurve: {\r\n points: curve.copyPoints(),\r\n knots: curve.copyKnots(true),\r\n closed: false,\r\n order: curve.order,\r\n },\r\n };\r\n }\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleInterpolationCurve3d(curve: InterpolationCurve3d): any {\r\n const props = curve.cloneProps();\r\n BSplineCurveOps.C2CubicFit.convertToJsonKnots(props);\r\n return { interpolationCurve: props };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleAkimaCurve3d(curve: AkimaCurve3d): any {\r\n return { akimaCurve: curve.cloneProps() };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBezierCurve3d(curve: BezierCurve3d): any {\r\n const knots = [];\r\n const order = curve.order;\r\n for (let i = 0; i < order; i++) knots.push(0.0);\r\n for (let i = 0; i < order; i++) knots.push(1.0);\r\n return {\r\n bcurve: {\r\n points: curve.copyPolesAsJsonArray(),\r\n knots,\r\n closed: false,\r\n order: curve.order,\r\n },\r\n };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBSplineCurve3dH(curve: BSplineCurve3dH): any {\r\n // ASSUME -- if the curve originated \"closed\" the knot and pole replication are unchanged,\r\n // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.\r\n if (curve.isClosable) {\r\n const knots = curve.copyKnots(true);\r\n const poles = curve.copyPoints();\r\n const degree = curve.degree;\r\n for (let i = 0; i < degree; i++) poles.pop();\r\n // knots have replicated first and last. Change the values to be periodic.\r\n const leftIndex = degree;\r\n const rightIndex = knots.length - degree - 1;\r\n const knotPeriod = knots[rightIndex] - knots[leftIndex];\r\n knots[0] = knots[rightIndex - degree] - knotPeriod;\r\n knots[knots.length - 1] = knots[leftIndex + degree] + knotPeriod;\r\n return {\r\n bcurve: {\r\n points: poles,\r\n knots,\r\n closed: true,\r\n order: curve.order,\r\n },\r\n };\r\n } else {\r\n return {\r\n bcurve: {\r\n points: curve.copyPoints(),\r\n knots: curve.copyKnots(true),\r\n closed: false,\r\n order: curve.order,\r\n },\r\n };\r\n }\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBSplineSurface3d(surface: BSplineSurface3d): any {\r\n // ASSUME -- if the curve originated \"closed\" the knot and pole replication are unchanged,\r\n // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.\r\n const periodicU = surface.isClosable(0);\r\n const periodicV = surface.isClosable(1);\r\n if (periodicU || periodicV) {\r\n let numUPoles = surface.numPolesUV(0);\r\n let numVPoles = surface.numPolesUV(1);\r\n if (periodicU) numUPoles -= surface.degreeUV(0);\r\n if (periodicV) numVPoles -= surface.degreeUV(1);\r\n const xyz = Point3d.create();\r\n const grid = [];\r\n for (let j = 0; j < numVPoles; j++) {\r\n const stringer = [];\r\n for (let i = 0; i < numUPoles; i++) {\r\n surface.getPoint3dPole(i, j, xyz)!;\r\n stringer.push([xyz.x, xyz.y, xyz.z]);\r\n }\r\n grid.push(stringer);\r\n }\r\n return {\r\n bsurf: {\r\n points: grid,\r\n uKnots: surface.copyKnots(0, true),\r\n vKnots: surface.copyKnots(1, true),\r\n orderU: surface.orderUV(0),\r\n orderV: surface.orderUV(1),\r\n closedU: periodicU,\r\n closedV: periodicV,\r\n },\r\n };\r\n } else {\r\n return {\r\n bsurf: {\r\n points: surface.getPointArray(false),\r\n uKnots: surface.copyKnots(0, true),\r\n vKnots: surface.copyKnots(1, true),\r\n orderU: surface.orderUV(0),\r\n orderV: surface.orderUV(1),\r\n },\r\n };\r\n }\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBezierCurve3dH(curve: BezierCurve3dH): any {\r\n const knots = [];\r\n const order = curve.order;\r\n for (let i = 0; i < order; i++) knots.push(0.0);\r\n for (let i = 0; i < order; i++) knots.push(1.0);\r\n return {\r\n bcurve: {\r\n points: curve.copyPolesAsJsonArray(),\r\n knots,\r\n closed: false,\r\n order: curve.order,\r\n },\r\n };\r\n }\r\n\r\n /** Convert strongly typed instance to tagged json */\r\n public handleBSplineSurface3dH(surface: BSplineSurface3dH): any {\r\n const data = surface.getPointGridJSON();\r\n return {\r\n bsurf: {\r\n points: data.points,\r\n uKnots: surface.copyKnots(0, true),\r\n vKnots: surface.copyKnots(1, true),\r\n orderU: surface.orderUV(0),\r\n orderV: surface.orderUV(1),\r\n },\r\n };\r\n }\r\n\r\n /** Convert an array of strongly typed instances to an array of tagged json */\r\n public emitArray(data: object[]): any {\r\n const members = [];\r\n for (const c of data) {\r\n const toPush = this.emit(c);\r\n members.push(toPush);\r\n }\r\n return members;\r\n }\r\n /** Convert GeometryQuery data (array or single instance) to instance to tagged json */\r\n public emit(data: any): any {\r\n if (Array.isArray(data))\r\n return this.emitArray(data);\r\n\r\n if (data instanceof GeometryQuery) {\r\n return data.dispatchToGeometryHandler(this);\r\n } else if (data instanceof TaggedNumericData) {\r\n return this.handleTaggedNumericData(data);\r\n }\r\n return undefined;\r\n }\r\n /** One-step static method to create a writer and emit a json object */\r\n public static toIModelJson(data: any): any {\r\n const writer = new Writer();\r\n return writer.emit(data);\r\n }\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../src/solid/Box.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../../src/solid/Box.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 Solid\r\n */\r\n\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\n\r\n/**\r\n * A box-like solid defined by\r\n * * A local coordinate frame\r\n * * (0,0,0) is left lower rear corner of box (considering \"left\" to reference x, \"lower\" to reference y, \"rear and front\" to reference z=0 and z=1)\r\n * * (0,0,1) is left lower front corner.\r\n * * (baseX,baseY,z) is right upper corner at z\r\n * * note that the frame x and y columns are usually unit vectors in local space, but z is full rear to front vector\r\n * * The separate values for base and top x and y allow the box to be a \"view frustum\" with parallel back and front planes but independent x and y bellows effects.\r\n * @public\r\n */\r\nexport class Box extends SolidPrimitive {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"box\";\r\n\r\n private _localToWorld: Transform;\r\n private _baseX: number;\r\n private _baseY: number;\r\n private _topX: number;\r\n private _topY: number;\r\n\r\n protected constructor(map: Transform,\r\n baseX: number, baseY: number, topX: number, topY: number, capped: boolean) {\r\n super(capped);\r\n this._localToWorld = map;\r\n this._baseX = baseX;\r\n this._baseY = baseY;\r\n this._topX = topX;\r\n this._topY = topY;\r\n }\r\n /** Return a clone */\r\n public clone(): Box {\r\n return new Box(this._localToWorld.clone(), this._baseX, this._baseY, this._topX, this._topY, this.capped);\r\n }\r\n\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin lower left of box\r\n * * x direction on base rectangle x edge\r\n * * y direction in base rectangle\r\n * * z direction perpendicular\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n return this._localToWorld.cloneRigid();\r\n }\r\n /** Apply the transform to the box's `localToWorld` frame.\r\n * * Note that this may make the frame nonrigid.\r\n */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (transform.matrix.isSingular())\r\n return false;\r\n transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);\r\n return true;\r\n }\r\n /** Clone the box and immediately apply `transform` to the local frame of the clone. */\r\n public cloneTransformed(transform: Transform): Box | undefined {\r\n const result = this.clone();\r\n transform.multiplyTransformTransform(result._localToWorld, result._localToWorld);\r\n return result;\r\n }\r\n\r\n /**\r\n * Create a new box from vector and size daa.\r\n * @param baseOrigin Origin of base rectangle\r\n * @param vectorX Direction for base rectangle\r\n * @param vectorY Direction for base rectangle\r\n * @param topOrigin origin of top rectangle\r\n * @param baseX size factor for base rectangle (multiplies vectorX)\r\n * @param baseY size factor for base rectangle (multiplies vectorY)\r\n * @param topX size factor for top rectangle (multiplies vectorX)\r\n * @param topY size factor for top rectangle (multiplies vectorY)\r\n * @param capped true to define top and bottom closure caps\r\n */\r\n public static createDgnBox(baseOrigin: Point3d, vectorX: Vector3d, vectorY: Vector3d,\r\n topOrigin: Point3d,\r\n baseX: number, baseY: number, topX: number, topY: number,\r\n capped: boolean): Box | undefined {\r\n const vectorZ = baseOrigin.vectorTo(topOrigin);\r\n const localToWorld = Transform.createOriginAndMatrixColumns(baseOrigin, vectorX, vectorY, vectorZ);\r\n return new Box(localToWorld, baseX, baseY, topX, topY, capped);\r\n }\r\n\r\n /**\r\n * Create a new box with xy directions taken from columns of the `axes` matrix.\r\n * @param baseOrigin Origin of base rectangle\r\n * @param axes Direction for base rectangle\r\n * @param topOrigin origin of top rectangle\r\n * @param baseX size factor for base rectangle (multiplies vectorX)\r\n * @param baseY size factor for base rectangle (multiplies vectorY)\r\n * @param topX size factor for top rectangle (multiplies vectorX)\r\n * @param topY size factor for top rectangle (multiplies vectorY)\r\n * @param capped true to define top and bottom closure caps\r\n */\r\n public static createDgnBoxWithAxes(baseOrigin: Point3d, axes: Matrix3d,\r\n topOrigin: Point3d,\r\n baseX: number, baseY: number, topX: number, topY: number,\r\n capped: boolean): Box | undefined {\r\n return Box.createDgnBox(baseOrigin, axes.columnX(), axes.columnY(), topOrigin,\r\n baseX, baseY, topX, topY, capped);\r\n }\r\n\r\n /**\r\n * Create an axis-aligned `Box` primitive for a range.\r\n * @param range range corners Origin of base rectangle\r\n * @param capped true to define top and bottom closure caps\r\n */\r\n public static createRange(range: Range3d, capped: boolean): Box | undefined {\r\n if (!range.isNull) {\r\n const lowPoint = range.low;\r\n const xSize = range.xLength();\r\n const ySize = range.yLength();\r\n const zPoint = range.low.clone();\r\n zPoint.z = zPoint.z + range.zLength();\r\n return Box.createDgnBox(\r\n lowPoint,\r\n Vector3d.unitX(), Vector3d.unitY(),\r\n zPoint,\r\n xSize, ySize, xSize, ySize, capped);\r\n }\r\n return undefined;\r\n }\r\n /** (property accessor) return the x length at z = 0 */\r\n public getBaseX(): number { return this._baseX; }\r\n /** (property accessor) return the y length at z = 0 */\r\n public getBaseY(): number { return this._baseY; }\r\n /** (property accessor) return the x length at z = 1 */\r\n public getTopX(): number { return this._topX; }\r\n /** (property accessor) return the x length at z = 1 */\r\n public getTopY(): number { return this._topY; }\r\n /** (property accessor) return the local coordinates point (0,0,0) to world */\r\n public getBaseOrigin(): Point3d { return this._localToWorld.multiplyXYZ(0, 0, 0); }\r\n /** (property accessor) return the local coordinates point (0,0,1) to world */\r\n public getTopOrigin(): Point3d { return this._localToWorld.multiplyXYZ(0, 0, 1); }\r\n /** (property accessor) return the local coordinate frame x vector */\r\n public getVectorX(): Vector3d { return this._localToWorld.matrix.columnX(); }\r\n /** (property accessor) return the local coordinate frame y vector */\r\n public getVectorY(): Vector3d { return this._localToWorld.matrix.columnY(); }\r\n /** (property accessor) return the local coordinate frame z vector */\r\n public getVectorZ(): Vector3d { return this._localToWorld.matrix.columnZ(); }\r\n /** Test of `other` is also of class `Box` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof Box; }\r\n /** test for near equality */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof Box) {\r\n if (this.capped !== other.capped) return false;\r\n if (!this._localToWorld.isAlmostEqual(other._localToWorld)) return false;\r\n return Geometry.isSameCoordinate(this._baseX, other._baseX)\r\n && Geometry.isSameCoordinate(this._baseY, other._baseY)\r\n && Geometry.isSameCoordinate(this._topX, other._topX)\r\n && Geometry.isSameCoordinate(this._topY, other._topY);\r\n }\r\n return false;\r\n }\r\n /** Second step of double dispatch: call `handler.handleBox(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleBox(this);\r\n }\r\n /** Return strokes of the cross-section rectangle at local z coordinate */\r\n public strokeConstantVSection(zFraction: number): LineString3d {\r\n const ax = Geometry.interpolate(this._baseX, zFraction, this._topX);\r\n const ay = Geometry.interpolate(this._baseY, zFraction, this._topY);\r\n const result = LineString3d.create();\r\n const transform = this._localToWorld;\r\n const workPoint = Point3d.create();\r\n transform.multiplyXYZ(0, 0, zFraction, workPoint);\r\n result.addPoint(workPoint);\r\n transform.multiplyXYZ(ax, 0, zFraction, workPoint);\r\n result.addPoint(workPoint);\r\n transform.multiplyXYZ(ax, ay, zFraction, workPoint);\r\n result.addPoint(workPoint);\r\n transform.multiplyXYZ(0, ay, zFraction, workPoint);\r\n result.addPoint(workPoint);\r\n transform.multiplyXYZ(0, 0, zFraction, workPoint);\r\n result.addPoint(workPoint);\r\n return result;\r\n }\r\n /**\r\n * Returns the 8 corners in x fastest, then y, finally z lexical order.\r\n */\r\n public getCorners(): Point3d[] {\r\n const transform = this._localToWorld;\r\n const ax = this._baseX;\r\n const ay = this._baseY;\r\n const bx = this._topX;\r\n const by = this._topY;\r\n return [\r\n transform.multiplyXYZ(0, 0, 0),\r\n transform.multiplyXYZ(ax, 0, 0),\r\n transform.multiplyXYZ(0, ay, 0),\r\n transform.multiplyXYZ(ax, ay, 0),\r\n transform.multiplyXYZ(0, 0, 1),\r\n transform.multiplyXYZ(bx, 0, 1),\r\n transform.multiplyXYZ(0, by, 1),\r\n transform.multiplyXYZ(bx, by, 1),\r\n ];\r\n }\r\n\r\n /**\r\n * Consider the box sides (not top and bottom) as a (u,v) surface with\r\n * * v = 0 as the z=0 local plane\r\n * * v = 1 as the z=1 local plane\r\n * Return the (rectangular) section at fractional v\r\n */\r\n public constantVSection(zFraction: number): CurveCollection {\r\n const ls = this.strokeConstantVSection(zFraction);\r\n return Loop.create(ls);\r\n }\r\n /** Extend `rangeToExtend` by each of the 8 corners */\r\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n const boxTransform = this._localToWorld;\r\n const ax = this._baseX;\r\n const ay = this._baseY;\r\n const bx = this._topX;\r\n const by = this._topY;\r\n if (transform) {\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, 0, 0, 0);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, ax, 0, 0);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, 0, ay, 0);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, ax, ay, 0);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, 0, 0, 1);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, bx, 0, 1);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, 0, by, 1);\r\n rangeToExtend.extendTransformTransformedXYZ(transform, boxTransform, bx, by, 1);\r\n } else {\r\n rangeToExtend.extendTransformedXYZ(boxTransform, 0, 0, 0);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, ax, 0, 0);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, 0, ay, 0);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, ax, ay, 0);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, 0, 0, 1);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, bx, 0, 1);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, 0, by, 1);\r\n rangeToExtend.extendTransformedXYZ(boxTransform, bx, by, 1);\r\n }\r\n }\r\n /**\r\n * @return true if this is a closed volume.\r\n */\r\n public get isClosedVolume(): boolean {\r\n return this.capped;\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cone.d.ts","sourceRoot":"","sources":["../../../src/solid/Cone.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cone.js","sourceRoot":"","sources":["../../../src/solid/Cone.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 Solid\r\n */\r\n\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GeometryHandler, UVSurface, UVSurfaceIsoParametricDistance } from \"../geometry3d/GeometryHandler\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Plane3dByOriginAndVectors } from \"../geometry3d/Plane3dByOriginAndVectors\";\r\nimport { Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\n\r\n/**\r\n * A cone with axis along the z axis of a (possibly skewed) local coordinate system.\r\n *\r\n * * In local coordinates, the sections at z=0 and z=1 are circles of radius r0 and r1.\r\n * * Either one individually may be zero, but they may not both be zero.\r\n * * The stored matrix has unit vectors in the xy columns, and full-length z column.\r\n * @public\r\n */\r\nexport class Cone extends SolidPrimitive implements UVSurface, UVSurfaceIsoParametricDistance {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"cone\";\r\n\r\n private _localToWorld: Transform; // Transform from local to global.\r\n private _radiusA: number; // nominal radius at z=0. skewed axes may make it an ellipse\r\n private _radiusB: number; // radius at z=1. skewed axes may make it an ellipse\r\n private _maxRadius: number; // maximum radius anywhere on the cone.\r\n protected constructor(map: Transform, radiusA: number, radiusB: number, capped: boolean) {\r\n super(capped);\r\n this._localToWorld = map;\r\n this._radiusA = radiusA;\r\n this._radiusB = radiusB;\r\n this._maxRadius = Math.max(this._radiusA, this._radiusB); // um... should resolve elliptical sections\r\n }\r\n /** Return a clone of this Cone. */\r\n public clone(): Cone {\r\n return new Cone(this._localToWorld.clone(), this._radiusA, this._radiusB, this.capped);\r\n }\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin at center of the base circle.\r\n * * base circle in the xy plane\r\n * * z axis by right hand rule.\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n return this._localToWorld.cloneRigid();\r\n }\r\n /** Apply the transform to this cone's locla to world coordinates.\r\n * * Note that the radii are not changed. Scaling is absorbed into the frame.\r\n * * This fails if the transformation is singular.\r\n */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (transform.matrix.isSingular())\r\n return false;\r\n transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);\r\n return true;\r\n }\r\n /**\r\n * Create a clone and immediately transform the clone.\r\n */\r\n public cloneTransformed(transform: Transform): Cone | undefined {\r\n const result = this.clone();\r\n transform.multiplyTransformTransform(result._localToWorld, result._localToWorld);\r\n return result;\r\n }\r\n /** create a cylinder or cone from two endpoints and their radii. The circular cross sections are perpendicular to the axis line\r\n * from start to end point.\r\n * * both radii must be of the same sign.\r\n * * negative radius is accepted to create interior surface. Downstream effects of that combined with capping may be a problem.\r\n */\r\n public static createAxisPoints(centerA: Point3d, centerB: Point3d, radiusA: number, radiusB: number, capped: boolean): Cone | undefined {\r\n const zDirection = centerA.vectorTo(centerB);\r\n const a = zDirection.magnitude();\r\n if (Geometry.isSmallMetricDistance(a)) return undefined;\r\n // force near-zero radii to true zero\r\n radiusA = Geometry.correctSmallMetricDistance(radiusA);\r\n radiusB = Geometry.correctSmallMetricDistance(radiusB);\r\n // cone tip may not be \"within\" the z range.\r\n if (radiusA * radiusB < 0.0) return undefined;\r\n // at least one must be nonzero.\r\n if (radiusA + radiusB === 0.0) return undefined;\r\n const matrix = Matrix3d.createRigidHeadsUp(zDirection);\r\n matrix.scaleColumns(1.0, 1.0, a, matrix);\r\n const localToWorld = Transform.createOriginAndMatrix(centerA, matrix);\r\n return new Cone(localToWorld, radiusA, radiusB, capped);\r\n }\r\n /** create a cylinder or cone from axis start and end with cross section defined by vectors that do not need to be perpendicular to each other or\r\n * to the axis.\r\n */\r\n public static createBaseAndTarget(centerA: Point3d, centerB: Point3d, vectorX: Vector3d, vectorY: Vector3d, radiusA: number, radiusB: number, capped: boolean) {\r\n radiusA = Math.abs(Geometry.correctSmallMetricDistance(radiusA));\r\n radiusB = Math.abs(Geometry.correctSmallMetricDistance(radiusB));\r\n const vectorZ = centerA.vectorTo(centerB);\r\n const localToWorld = Transform.createOriginAndMatrixColumns(centerA, vectorX, vectorY, vectorZ);\r\n return new Cone(localToWorld, radiusA, radiusB, capped);\r\n }\r\n /** (Property accessor) Return the center point at the base plane */\r\n public getCenterA(): Point3d { return this._localToWorld.multiplyXYZ(0, 0, 0); }\r\n /** (Property accessor) */\r\n public getCenterB(): Point3d { return this._localToWorld.multiplyXYZ(0, 0, 1); }\r\n /** (Property accessor) Return the x vector in the local frame */\r\n public getVectorX(): Vector3d { return this._localToWorld.matrix.columnX(); }\r\n /** (Property accessor) Return the y vector in the local frame */\r\n public getVectorY(): Vector3d { return this._localToWorld.matrix.columnY(); }\r\n /** (Property accessor) return the radius at the base plane */\r\n public getRadiusA(): number { return this._radiusA; }\r\n /** (Property accessor) return the radius at the top plane */\r\n public getRadiusB(): number { return this._radiusB; }\r\n /** (Property accessor) return the larger of the base and top plane radii */\r\n public getMaxRadius(): number { return this._maxRadius; }\r\n /** (Property accessor) return the radius at fraction `v` along the axis */\r\n public vFractionToRadius(v: number): number { return Geometry.interpolate(this._radiusA, v, this._radiusB); }\r\n /** (Property accessor) test if `other` is an instance of `Cone` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof Cone; }\r\n /** (Property accessor) Test for nearly equal coordinate data. */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof Cone) {\r\n if (this.capped !== other.capped) return false;\r\n if (!this._localToWorld.isAlmostEqualAllowZRotation(other._localToWorld)) return false;\r\n return Geometry.isSameCoordinate(this._radiusA, other._radiusA)\r\n && Geometry.isSameCoordinate(this._radiusB, other._radiusB);\r\n }\r\n return false;\r\n }\r\n /** Second step of double dispatch: call `handler.handleCone(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleCone(this);\r\n }\r\n\r\n /**\r\n * return strokes for a cross-section (elliptic arc) at specified fraction v along the axis.\r\n * * fixedStrokeCount takes priority over stroke options.\r\n * * The linestring is created by LineString3d.createForStrokes (fixedStrokeCount, options), which sets up property according to the options:\r\n * * optional fractions member\r\n * * optional uvParams. uvParams are installed as full-scale distance parameters.\r\n * * optional derivatives.\r\n * @param v fractional position along the cone axis\r\n * @param fixedStrokeCount optional stroke count.\r\n * @param options optional stroke options.\r\n */\r\n public strokeConstantVSection(v: number, fixedStrokeCount: number | undefined, options: StrokeOptions | undefined): LineString3d {\r\n let strokeCount = 16;\r\n if (fixedStrokeCount !== undefined)\r\n strokeCount = fixedStrokeCount;\r\n else if (options !== undefined)\r\n strokeCount = options.defaultCircleStrokes; // NEEDS WORK -- get circle stroke count with this.maxRadius !!!\r\n else {\r\n // accept the local default\r\n }\r\n strokeCount = Geometry.clampToStartEnd(strokeCount, 4, 64);\r\n const r = this.vFractionToRadius(v);\r\n const result = LineString3d.createForStrokes(fixedStrokeCount, options);\r\n const twoPi = Math.PI * 2.0;\r\n const deltaRadians = twoPi / strokeCount;\r\n let radians = 0;\r\n const fractions = result.fractions; // possibly undefined !!!\r\n const derivatives = result.packedDerivatives; // possibly undefined !!!\r\n const uvParams = result.packedUVParams; // possibly undefined !!\r\n const surfaceNormals = result.packedSurfaceNormals;\r\n const xyz = Point3d.create();\r\n const dXdu = Vector3d.create();\r\n const dXdv = Vector3d.create();\r\n const normal = Vector3d.create();\r\n const transform = this._localToWorld;\r\n let rc, rs, cc, ss;\r\n for (let i = 0; i <= strokeCount; i++) {\r\n if (i * 2 <= strokeCount)\r\n radians = i * deltaRadians;\r\n else\r\n radians = (i - strokeCount) * deltaRadians;\r\n cc = Math.cos(radians);\r\n ss = Math.sin(radians);\r\n rc = r * cc;\r\n rs = r * ss;\r\n\r\n transform.multiplyXYZ(rc, rs, v, xyz);\r\n result.addPoint(xyz);\r\n if (fractions)\r\n fractions.push(i / strokeCount);\r\n if (derivatives) {\r\n transform.matrix.multiplyXYZ(-rs * twoPi, rc * twoPi, 0.0, dXdu);\r\n derivatives.push(dXdu);\r\n }\r\n if (surfaceNormals) {\r\n // the along-hoop vector does not need to be scaled by radius -- just need the direction for a cross product.\r\n transform.matrix.multiplyXYZ(-ss, cc, 0.0, dXdu);\r\n transform.matrix.multiplyXYZ(0, 0, 1, dXdv);\r\n dXdu.unitCrossProduct(dXdv, normal);\r\n surfaceNormals.push(normal);\r\n }\r\n if (uvParams) {\r\n uvParams.pushXY(i / strokeCount, v);\r\n }\r\n }\r\n return result;\r\n }\r\n /**\r\n * Return the Arc3d section at vFraction\r\n * @param vFraction fractional position along the sweep direction\r\n */\r\n public constantVSection(vFraction: number): CurveCollection | undefined {\r\n const r = this.vFractionToRadius(vFraction);\r\n const transform = this._localToWorld;\r\n const center = transform.multiplyXYZ(0, 0, vFraction);\r\n const vector0 = transform.matrix.multiplyXYZ(r, 0, 0);\r\n const vector90 = transform.matrix.multiplyXYZ(0, r, 0);\r\n return Loop.create(Arc3d.create(center, vector0, vector90));\r\n }\r\n /** Extend `rangeToExtend` so it includes this `Cone` instance. */\r\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n const arc0 = this.constantVSection(0.0)!;\r\n const arc1 = this.constantVSection(1.0)!;\r\n arc0.extendRange(rangeToExtend, transform);\r\n arc1.extendRange(rangeToExtend, transform);\r\n }\r\n /** Evaluate a point on the Cone surfaces, with\r\n * * v = 0 is the base plane.\r\n * * v = 1 is the top plane\r\n * * u = 0 to u = 1 wraps the angular range.\r\n */\r\n public uvFractionToPoint(uFraction: number, vFraction: number, result?: Point3d): Point3d {\r\n const theta = uFraction * Math.PI * 2.0;\r\n const r = Geometry.interpolate(this._radiusA, vFraction, this._radiusB);\r\n const cosTheta = Math.cos(theta);\r\n const sinTheta = Math.sin(theta);\r\n return this._localToWorld.multiplyXYZ(r * cosTheta, r * sinTheta, vFraction, result);\r\n }\r\n /** Evaluate a point tangent plane on the Cone surfaces, with\r\n * * v = 0 is the base plane.\r\n * * v = 1 is the top plane\r\n * * u = 0 to u = 1 wraps the angular range.\r\n */\r\n public uvFractionToPointAndTangents(uFraction: number, vFraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors {\r\n const theta = uFraction * Math.PI * 2.0;\r\n const r = Geometry.interpolate(this._radiusA, vFraction, this._radiusB);\r\n const drdv = this._radiusB - this._radiusA;\r\n const cosTheta = Math.cos(theta);\r\n const sinTheta = Math.sin(theta);\r\n const fTheta = 2.0 * Math.PI;\r\n return Plane3dByOriginAndVectors.createOriginAndVectors(\r\n this._localToWorld.multiplyXYZ(r * cosTheta, r * sinTheta, vFraction),\r\n this._localToWorld.multiplyVectorXYZ(-r * sinTheta * fTheta, r * cosTheta * fTheta, 0),\r\n this._localToWorld.multiplyVectorXYZ(drdv * cosTheta, drdv * sinTheta, 1.0),\r\n result);\r\n }\r\n /**\r\n * @return true if this is a closed volume.\r\n */\r\n public get isClosedVolume(): boolean {\r\n return this.capped;\r\n }\r\n /**\r\n * Directional distance query\r\n * * u direction is around longitude circle at maximum distance from axis.\r\n * * v direction is on a line of longitude between the latitude limits.\r\n */\r\n public maxIsoParametricDistance(): Vector2d {\r\n const vectorX = this._localToWorld.matrix.columnX();\r\n const vectorY = this._localToWorld.matrix.columnY();\r\n const columnZ = this._localToWorld.matrix.columnZ();\r\n\r\n const xyNormal = vectorX.unitCrossProduct(vectorY)!;\r\n const hZ = xyNormal.dotProduct(columnZ);\r\n const zSkewVector = columnZ.plusScaled(xyNormal, hZ);\r\n const zSkewDistance = zSkewVector.magnitudeXY();\r\n return Vector2d.create(Math.PI * 2 * Math.max(this._radiusA, this._radiusB),\r\n Geometry.hypotenuseXY(Math.abs(this._radiusB - this._radiusA) + zSkewDistance, hZ));\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/LinearSweep.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,cAAc;IAC7C,wCAAwC;IACxC,SAAgB,kBAAkB,iBAAiB;IAEnD,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO;IAKP;;;;;OAKG;WACW,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS;IAM7G;;;;;;;;;;OAUG;WACW,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS;IAWlH,0CAA0C;IACnC,YAAY,IAAI,eAAe;IACtC,6EAA6E;IACtE,kBAAkB,IAAI,YAAY;IACzC,yCAAyC;IAClC,gBAAgB,IAAI,QAAQ;IACnC,2DAA2D;IACpD,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAC/C,0BAA0B;IACnB,KAAK,IAAI,WAAW;IAG3B,uDAAuD;IAChD,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAUzD;;;;OAIG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAGpD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW;IAK1D,uDAAuD;IACvC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAQ5D,8DAA8D;IACvD,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAMvE,uDAAuD;IAChD,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;IAahE;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;CACF"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearSweep.js","sourceRoot":"","sources":["../../../src/solid/LinearSweep.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 Solid\r\n */\r\n\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { XAndY } from \"../geometry3d/XYZProps\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\nimport { SweepContour } from \"./SweepContour\";\r\n\r\n/**\r\n * A LinearSweep is a `SolidPrimitive` defined by\r\n * * A set of curves (any Loop, Path, or parityRegion)\r\n * * A sweep vector\r\n * If the object is \"capped\", the curves must be planar.\r\n * @public\r\n */\r\nexport class LinearSweep extends SolidPrimitive {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"linearSweep\";\r\n\r\n private _contour: SweepContour;\r\n private _direction: Vector3d;\r\n\r\n private constructor(contour: SweepContour, direction: Vector3d, capped: boolean) {\r\n super(capped);\r\n this._contour = contour;\r\n this._direction = direction;\r\n }\r\n /**\r\n * Create a sweep of a starting contour.\r\n * @param contour contour to be swept\r\n * @param direction sweep vector. The contour is swept the full length of the vector.\r\n * @param capped true to include end caps\r\n */\r\n public static create(contour: CurveCollection, direction: Vector3d, capped: boolean): LinearSweep | undefined {\r\n const sweepable = SweepContour.createForLinearSweep(contour, direction);\r\n if (!sweepable)\r\n return undefined;\r\n return new LinearSweep(sweepable, direction, capped);\r\n }\r\n /** Create a z-direction sweep of the polyline or polygon given as xy linestring values.\r\n * * If not capped, the xyPoints array is always used unchanged.\r\n * * If capped but the xyPoints array does not close, exact closure will be enforced by one of these:\r\n * * * If the final point is almost equal to the first, it is replaced by the exact first point.\r\n * * * if the final point is not close to the first an extra point is added.\r\n * * If capped, the point order will be reversed if necessary to produce positive volume.\r\n * @param xyPoints array of xy coordinates\r\n * @param z z value to be used for all coordinates\r\n * @param zSweep the sweep distance in the z direction.\r\n * @param capped true if caps are to be added.\r\n */\r\n public static createZSweep(xyPoints: XAndY[], z: number, zSweep: number, capped: boolean): LinearSweep | undefined {\r\n const xyz = LineString3d.createXY(xyPoints, z, capped);\r\n if (capped) {\r\n xyz.addClosurePoint();\r\n const area = PolygonOps.areaXY(xyz.points);\r\n if (area * zSweep < 0.0)\r\n xyz.points.reverse();\r\n }\r\n const contour: CurveCollection = capped ? Loop.create(xyz) : Path.create(xyz);\r\n return LinearSweep.create(contour, Vector3d.create(0, 0, zSweep), capped);\r\n }\r\n /** get a reference to the swept curves */\r\n public getCurvesRef(): CurveCollection { return this._contour.curves; }\r\n /** Get a reference to the `SweepContour` carrying the plane of the curves */\r\n public getSweepContourRef(): SweepContour { return this._contour; }\r\n /** return a clone of the sweep vector */\r\n public cloneSweepVector(): Vector3d { return this._direction.clone(); }\r\n /** Test if `other` is also an instance of `LinearSweep` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof LinearSweep; }\r\n /** Return a deep clone */\r\n public clone(): LinearSweep {\r\n return new LinearSweep(this._contour.clone(), this._direction.clone(), this.capped);\r\n }\r\n /** apply a transform to the curves and sweep vector */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (transform.matrix.isSingular())\r\n return false;\r\n if (this._contour.tryTransformInPlace(transform)) {\r\n transform.multiplyVector(this._direction, this._direction);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin on base contour\r\n * * x, y directions from base contour.\r\n * * z direction perpendicular\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n return this._contour.localToWorld.cloneRigid();\r\n }\r\n /** Return a transformed clone */\r\n public cloneTransformed(transform: Transform): LinearSweep {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform);\r\n return result;\r\n }\r\n /** Test for near-equality of coordinates in `other` */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof LinearSweep) {\r\n return this._contour.isAlmostEqual(other._contour)\r\n && this._direction.isAlmostEqual(other._direction)\r\n && this.capped === other.capped;\r\n }\r\n return false;\r\n }\r\n /** Invoke strongly typed `handler.handleLinearSweep(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleLinearSweep(this);\r\n }\r\n /**\r\n * Return the curves at a fraction along the sweep direction.\r\n * @param vFraction fractional position along the sweep direction\r\n */\r\n public constantVSection(vFraction: number): CurveCollection | undefined {\r\n const section = this._contour.curves.clone();\r\n if (section && vFraction !== 0.0)\r\n section.tryTransformInPlace(Transform.createTranslation(this._direction.scale(vFraction)));\r\n return section;\r\n }\r\n /** Extend `rangeToExtend` to include this geometry. */\r\n public extendRange(rangeToExtend: Range3d, transform?: Transform) {\r\n const contourRange = this._contour.curves.range(transform);\r\n rangeToExtend.extendRange(contourRange);\r\n if (transform) {\r\n const transformedDirection = transform.multiplyVector(this._direction);\r\n contourRange.low.addInPlace(transformedDirection);\r\n contourRange.high.addInPlace(transformedDirection);\r\n } else {\r\n contourRange.low.addInPlace(this._direction);\r\n contourRange.high.addInPlace(this._direction);\r\n }\r\n rangeToExtend.extendRange(contourRange);\r\n }\r\n /**\r\n * @return true if this is a closed volume.\r\n */\r\n public get isClosedVolume(): boolean {\r\n return this.capped && this._contour.curves.isAnyRegionType;\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RotationalSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,cAAc;IACjD,wCAAwC;IACxC,SAAgB,kBAAkB,qBAAqB;IAEvD,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO;IAOP,iCAAiC;WACnB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS;IAQ5H;;;;OAIG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAQpD,0DAA0D;IACnD,YAAY,IAAI,KAAK;IAC5B,8CAA8C;IACvC,SAAS,IAAI,eAAe;IACnC,2EAA2E;IACpE,kBAAkB,IAAI,YAAY;IACzC,8BAA8B;IACvB,QAAQ,IAAI,KAAK;IACxB,6CAA6C;IACtC,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAC/C,uDAAuD;IACvC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAQ5D,0BAA0B;IACnB,KAAK,IAAI,eAAe;IAG/B,qCAAqC;IAC9B,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAQzD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAK9D,gFAAgF;IACzE,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D,mGAAmG;IAC5F,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAOvF;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAOvE,wDAAwD;IACjD,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;IAmBxD;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;CACF"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RotationalSweep.js","sourceRoot":"","sources":["../../../src/solid/RotationalSweep.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 Solid\r\n */\r\n\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\r\nimport { AxisOrder, Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\nimport { SweepContour } from \"./SweepContour\";\r\n\r\n/**\r\n * A LinearSweep is\r\n * * A planar contour (any Loop, Path, or parityRegion)\r\n * * An axis vector.\r\n * * The planar contour is expected to be in the plane of the axis vector\r\n * * The contour may have points and/or lines that are on the axis, but otherwise is entirely on one side of the axis.\r\n * * A sweep angle.\r\n * @public\r\n */\r\nexport class RotationalSweep extends SolidPrimitive {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"rotationalSweep\";\r\n\r\n private _contour: SweepContour;\r\n private _normalizedAxis: Ray3d;\r\n private _sweepAngle: Angle;\r\n private constructor(contour: SweepContour, normalizedAxis: Ray3d, sweepAngle: Angle, capped: boolean) {\r\n super(capped);\r\n this._contour = contour;\r\n this._normalizedAxis = normalizedAxis;\r\n this.capped = capped;\r\n this._sweepAngle = sweepAngle;\r\n }\r\n /** Create a rotational sweep. */\r\n public static create(contour: CurveCollection, axis: Ray3d, sweepAngle: Angle, capped: boolean): RotationalSweep | undefined {\r\n if (!axis.direction.normalizeInPlace()) return undefined;\r\n const sweepable = SweepContour.createForRotation(contour, axis);\r\n if (!sweepable)\r\n return undefined;\r\n return new RotationalSweep(sweepable, axis, sweepAngle.clone(), capped);\r\n }\r\n\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin at origin of rotation ray\r\n * * z direction along the rotation ray.\r\n * * y direction perpendicular to the base contour plane\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n const contourPerpendicular = this._contour.localToWorld.matrix.columnZ();\r\n const axes = Matrix3d.createRigidFromColumns(contourPerpendicular, this._normalizedAxis.direction, AxisOrder.YZX);\r\n if (axes) {\r\n return Transform.createOriginAndMatrix(this._normalizedAxis.origin, axes);\r\n }\r\n return undefined;\r\n }\r\n /** return clone of (not reference to) the axis vector. */\r\n public cloneAxisRay(): Ray3d { return this._normalizedAxis.clone(); }\r\n /** Return (REFERENCE TO) the swept curves. */\r\n public getCurves(): CurveCollection { return this._contour.curves; }\r\n /** Return (REFERENCE TO) the swept curves with containing plane markup. */\r\n public getSweepContourRef(): SweepContour { return this._contour; }\r\n /** Return the sweep angle. */\r\n public getSweep(): Angle { return this._sweepAngle.clone(); }\r\n /** Test if `other` is a `RotationalSweep` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof RotationalSweep; }\r\n /** Test for same axis, capping, and swept geometry. */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof RotationalSweep) {\r\n return this._contour.isAlmostEqual(other._contour)\r\n && this._normalizedAxis.isAlmostEqual(other._normalizedAxis)\r\n && this.capped === other.capped;\r\n }\r\n return false;\r\n }\r\n /** return a deep clone */\r\n public clone(): RotationalSweep {\r\n return new RotationalSweep(this._contour.clone(), this._normalizedAxis.clone(), this._sweepAngle.clone(), this.capped);\r\n }\r\n /** Transform the contour and axis */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (!transform.matrix.isSingular()\r\n && this._contour.tryTransformInPlace(transform)) {\r\n this._normalizedAxis.transformInPlace(transform);\r\n return this._normalizedAxis.direction.normalizeInPlace();\r\n }\r\n return false;\r\n }\r\n /** return a cloned transform. */\r\n public cloneTransformed(transform: Transform): RotationalSweep {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform);\r\n return result;\r\n }\r\n /** Dispatch to strongly typed handler `handler.handleRotationalSweep(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleRotationalSweep(this);\r\n }\r\n /** Return a transform that rotates around the rotational axis by a fraction of the total sweep. */\r\n public getFractionalRotationTransform(vFraction: number, result?: Transform): Transform {\r\n const radians = this._sweepAngle.radians * vFraction;\r\n const rotation = Transform.createFixedPointAndMatrix(this._normalizedAxis.origin,\r\n Matrix3d.createRotationAroundVector(this._normalizedAxis.direction, Angle.createRadians(radians),\r\n result ? result.matrix : undefined) as Matrix3d);\r\n return rotation;\r\n }\r\n /**\r\n * Return the curves of a constant-v section of the solid.\r\n * @param vFraction fractional position along the sweep direction\r\n */\r\n public constantVSection(vFraction: number): CurveCollection | undefined {\r\n const section = this._contour.curves.clone();\r\n if (section) {\r\n section.tryTransformInPlace(this.getFractionalRotationTransform(vFraction));\r\n }\r\n return section;\r\n }\r\n /** Extend range using sampled points on the surface. */\r\n public extendRange(range: Range3d, transform?: Transform) {\r\n const degreeStep = 360 / 32;\r\n const options = StrokeOptions.createForCurves();\r\n options.angleTol = Angle.createDegrees(degreeStep);\r\n const strokes = this._contour.curves.cloneStroked(options);\r\n const numStep = Geometry.stepCount(degreeStep, this._sweepAngle.degrees, 4, 32);\r\n const stepTransform = Transform.createIdentity();\r\n if (transform) {\r\n const compositeTransform = Transform.createIdentity();\r\n for (let i = 0; i <= numStep; i++) {\r\n transform.multiplyTransformTransform(this.getFractionalRotationTransform(i / numStep, stepTransform), compositeTransform);\r\n strokes.extendRange(range, compositeTransform);\r\n }\r\n\r\n } else {\r\n for (let i = 0; i <= numStep; i++)\r\n strokes.extendRange(range, this.getFractionalRotationTransform(i / numStep, stepTransform));\r\n }\r\n }\r\n /**\r\n * @return true if this is a closed volume.\r\n */\r\n public get isClosedVolume(): boolean {\r\n return this.capped || this._sweepAngle.isFullCircle;\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuledSweep.d.ts","sourceRoot":"","sources":["../../../src/solid/RuledSweep.ts"],"names":[],"mappings":"AAUA,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;GAIG;AACH,oBAAY,qBAAqB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,GAAG,SAAS,CAAC;AAC3H;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5C,wCAAwC;IACxC,SAAgB,kBAAkB,gBAAgB;IAElD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO;IAIP;;;OAGG;WACW,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS;IAS1F,uDAAuD;IAChD,gBAAgB,IAAI,YAAY,EAAE;IACzC;;OAEG;IACI,kBAAkB,IAAI,YAAY,EAAE;IAO3C;;OAEG;IACI,aAAa,IAAI,eAAe,EAAE;IAOzC,0BAA0B;IACnB,KAAK,IAAI,UAAU;IAG1B,uCAAuC;IAChC,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAQzD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU;IAKzD;;;;OAIG;IACI,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAIpD,uDAAuD;IAChD,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAC/C,8CAA8C;IAC9B,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAY5D,kEAAkE;IAC3D,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAG/D;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAqBvE,yCAAyC;IAClC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAKvE;;OAEG;WACW,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,GAAG,eAAe,GAAG,SAAS;IA6C9J;;;;OAIG;IACH,IAAW,cAAc,IAAI,OAAO,CAGnC;CAEF"}
File without changes