@itwin/core-geometry 4.3.0-dev.2 → 4.3.0-dev.20

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 (350) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/lib/cjs/Geometry.d.ts.map +1 -1
  3. package/lib/cjs/Geometry.js +2 -4
  4. package/lib/cjs/Geometry.js.map +1 -1
  5. package/lib/cjs/bspline/BSpline1dNd.d.ts +12 -2
  6. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  7. package/lib/cjs/bspline/BSpline1dNd.js +27 -17
  8. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve.d.ts +30 -16
  10. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurve.js +68 -44
  12. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  13. package/lib/cjs/bspline/BSplineCurve3dH.d.ts +27 -20
  14. package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -1
  15. package/lib/cjs/bspline/BSplineCurve3dH.js +136 -87
  16. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  17. package/lib/cjs/bspline/BSplineSurface.d.ts +138 -74
  18. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  19. package/lib/cjs/bspline/BSplineSurface.js +242 -119
  20. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  21. package/lib/cjs/bspline/Bezier1dNd.d.ts +18 -4
  22. package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -1
  23. package/lib/cjs/bspline/Bezier1dNd.js +19 -5
  24. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  25. package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -1
  26. package/lib/cjs/bspline/BezierCurve3dH.js +2 -1
  27. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  28. package/lib/cjs/bspline/KnotVector.d.ts +30 -33
  29. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  30. package/lib/cjs/bspline/KnotVector.js +76 -69
  31. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  32. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  33. package/lib/cjs/clipping/ClipUtils.d.ts +32 -5
  34. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  35. package/lib/cjs/clipping/ClipUtils.js +92 -11
  36. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  37. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +18 -1
  38. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  39. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +47 -0
  40. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  41. package/lib/cjs/curve/CurveCollection.d.ts +9 -9
  42. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  43. package/lib/cjs/curve/CurveCollection.js +7 -10
  44. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  45. package/lib/cjs/curve/CurveCurve.d.ts +2 -2
  46. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  47. package/lib/cjs/curve/CurveCurve.js +3 -16
  48. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  49. package/lib/cjs/curve/CurveLocationDetail.d.ts +17 -4
  50. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  51. package/lib/cjs/curve/CurveLocationDetail.js +32 -10
  52. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  53. package/lib/cjs/curve/CurveOps.d.ts +4 -5
  54. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  55. package/lib/cjs/curve/CurveOps.js +1 -1
  56. package/lib/cjs/curve/CurveOps.js.map +1 -1
  57. package/lib/cjs/curve/CurveTypes.d.ts +14 -2
  58. package/lib/cjs/curve/CurveTypes.d.ts.map +1 -1
  59. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  60. package/lib/cjs/curve/CurveWireMomentsXYZ.d.ts.map +1 -1
  61. package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -4
  62. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  63. package/lib/cjs/curve/LineString3d.d.ts +3 -6
  64. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  65. package/lib/cjs/curve/LineString3d.js +1 -4
  66. package/lib/cjs/curve/LineString3d.js.map +1 -1
  67. package/lib/cjs/curve/PointString3d.d.ts +2 -1
  68. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  69. package/lib/cjs/curve/PointString3d.js.map +1 -1
  70. package/lib/cjs/curve/RegionOps.d.ts +7 -12
  71. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  72. package/lib/cjs/curve/RegionOps.js +2 -1
  73. package/lib/cjs/curve/RegionOps.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +0 -9
  75. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  76. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +16 -35
  77. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +12 -6
  79. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  80. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +80 -18
  81. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +11 -5
  83. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  84. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +73 -8
  85. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +2 -3
  87. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  88. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +2 -3
  89. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  90. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +4 -4
  91. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  92. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +38 -36
  93. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  94. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +21 -5
  95. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  96. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +71 -45
  97. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  98. package/lib/cjs/geometry3d/Matrix3d.d.ts +20 -13
  99. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  100. package/lib/cjs/geometry3d/Matrix3d.js +28 -21
  101. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  102. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +11 -2
  103. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  104. package/lib/cjs/geometry3d/Point3dVector3d.js +16 -5
  105. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  106. package/lib/cjs/geometry3d/PointHelpers.d.ts +58 -20
  107. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  108. package/lib/cjs/geometry3d/PointHelpers.js +213 -62
  109. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  110. package/lib/cjs/geometry3d/Segment1d.d.ts +5 -1
  111. package/lib/cjs/geometry3d/Segment1d.d.ts.map +1 -1
  112. package/lib/cjs/geometry3d/Segment1d.js +11 -7
  113. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  114. package/lib/cjs/geometry3d/Transform.d.ts +2 -3
  115. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  116. package/lib/cjs/geometry3d/Transform.js +2 -3
  117. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  118. package/lib/cjs/geometry4d/Point4d.d.ts +14 -1
  119. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  120. package/lib/cjs/geometry4d/Point4d.js +22 -1
  121. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  122. package/lib/cjs/numerics/BezierPolynomials.d.ts +91 -68
  123. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  124. package/lib/cjs/numerics/BezierPolynomials.js +100 -79
  125. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  126. package/lib/cjs/numerics/Newton.d.ts +115 -60
  127. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  128. package/lib/cjs/numerics/Newton.js +120 -62
  129. package/lib/cjs/numerics/Newton.js.map +1 -1
  130. package/lib/cjs/numerics/PascalCoefficients.d.ts +8 -12
  131. package/lib/cjs/numerics/PascalCoefficients.d.ts.map +1 -1
  132. package/lib/cjs/numerics/PascalCoefficients.js +10 -12
  133. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  134. package/lib/cjs/numerics/Polynomials.d.ts +2 -2
  135. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  136. package/lib/cjs/numerics/Polynomials.js +2 -2
  137. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  138. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +3 -0
  139. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  140. package/lib/cjs/polyface/PolyfaceBuilder.js +13 -2
  141. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  142. package/lib/cjs/polyface/PolyfaceClip.d.ts +1 -1
  143. package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
  144. package/lib/cjs/polyface/PolyfaceClip.js +6 -3
  145. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  146. package/lib/cjs/polyface/PolyfaceData.d.ts +1 -1
  147. package/lib/cjs/polyface/PolyfaceData.js +1 -1
  148. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  149. package/lib/cjs/polyface/PolyfaceQuery.d.ts +39 -12
  150. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  151. package/lib/cjs/polyface/PolyfaceQuery.js +94 -17
  152. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  153. package/lib/cjs/serialization/BGFBReader.d.ts +10 -10
  154. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  155. package/lib/cjs/serialization/BGFBReader.js +69 -42
  156. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  157. package/lib/cjs/serialization/BGFBWriter.d.ts +8 -8
  158. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  159. package/lib/cjs/serialization/BGFBWriter.js +80 -55
  160. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  161. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  162. package/lib/cjs/serialization/GeometrySamples.js +6 -8
  163. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  164. package/lib/cjs/serialization/IModelJsonSchema.d.ts +8 -14
  165. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  166. package/lib/cjs/serialization/IModelJsonSchema.js +85 -259
  167. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  168. package/lib/cjs/serialization/SerializationHelpers.d.ts +109 -0
  169. package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -0
  170. package/lib/cjs/serialization/SerializationHelpers.js +591 -0
  171. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -0
  172. package/lib/cjs/solid/SweepContour.d.ts +4 -2
  173. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  174. package/lib/cjs/solid/SweepContour.js +4 -2
  175. package/lib/cjs/solid/SweepContour.js.map +1 -1
  176. package/lib/esm/Geometry.d.ts.map +1 -1
  177. package/lib/esm/Geometry.js +2 -4
  178. package/lib/esm/Geometry.js.map +1 -1
  179. package/lib/esm/bspline/BSpline1dNd.d.ts +12 -2
  180. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  181. package/lib/esm/bspline/BSpline1dNd.js +27 -17
  182. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  183. package/lib/esm/bspline/BSplineCurve.d.ts +30 -16
  184. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  185. package/lib/esm/bspline/BSplineCurve.js +68 -44
  186. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  187. package/lib/esm/bspline/BSplineCurve3dH.d.ts +27 -20
  188. package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -1
  189. package/lib/esm/bspline/BSplineCurve3dH.js +137 -88
  190. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  191. package/lib/esm/bspline/BSplineSurface.d.ts +138 -74
  192. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  193. package/lib/esm/bspline/BSplineSurface.js +242 -119
  194. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  195. package/lib/esm/bspline/Bezier1dNd.d.ts +18 -4
  196. package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -1
  197. package/lib/esm/bspline/Bezier1dNd.js +19 -5
  198. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  199. package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -1
  200. package/lib/esm/bspline/BezierCurve3dH.js +2 -1
  201. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  202. package/lib/esm/bspline/KnotVector.d.ts +30 -33
  203. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  204. package/lib/esm/bspline/KnotVector.js +76 -69
  205. package/lib/esm/bspline/KnotVector.js.map +1 -1
  206. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  207. package/lib/esm/clipping/ClipUtils.d.ts +32 -5
  208. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  209. package/lib/esm/clipping/ClipUtils.js +92 -11
  210. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  211. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +18 -1
  212. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  213. package/lib/esm/curve/CurveChainWithDistanceIndex.js +48 -1
  214. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  215. package/lib/esm/curve/CurveCollection.d.ts +9 -9
  216. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  217. package/lib/esm/curve/CurveCollection.js +7 -10
  218. package/lib/esm/curve/CurveCollection.js.map +1 -1
  219. package/lib/esm/curve/CurveCurve.d.ts +2 -2
  220. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  221. package/lib/esm/curve/CurveCurve.js +3 -16
  222. package/lib/esm/curve/CurveCurve.js.map +1 -1
  223. package/lib/esm/curve/CurveLocationDetail.d.ts +17 -4
  224. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  225. package/lib/esm/curve/CurveLocationDetail.js +32 -10
  226. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  227. package/lib/esm/curve/CurveOps.d.ts +4 -5
  228. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  229. package/lib/esm/curve/CurveOps.js +1 -1
  230. package/lib/esm/curve/CurveOps.js.map +1 -1
  231. package/lib/esm/curve/CurveTypes.d.ts +14 -2
  232. package/lib/esm/curve/CurveTypes.d.ts.map +1 -1
  233. package/lib/esm/curve/CurveTypes.js.map +1 -1
  234. package/lib/esm/curve/CurveWireMomentsXYZ.d.ts.map +1 -1
  235. package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -4
  236. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  237. package/lib/esm/curve/LineString3d.d.ts +3 -6
  238. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  239. package/lib/esm/curve/LineString3d.js +1 -4
  240. package/lib/esm/curve/LineString3d.js.map +1 -1
  241. package/lib/esm/curve/PointString3d.d.ts +2 -1
  242. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  243. package/lib/esm/curve/PointString3d.js.map +1 -1
  244. package/lib/esm/curve/RegionOps.d.ts +7 -12
  245. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  246. package/lib/esm/curve/RegionOps.js +2 -1
  247. package/lib/esm/curve/RegionOps.js.map +1 -1
  248. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +0 -9
  249. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  250. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +16 -35
  251. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  252. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +12 -6
  253. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  254. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +81 -19
  255. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  256. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +11 -5
  257. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  258. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +74 -9
  259. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  260. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +2 -3
  261. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  262. package/lib/esm/curve/internalContexts/MultiChainCollector.js +2 -3
  263. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  264. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +4 -4
  265. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  266. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +38 -36
  267. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  268. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +21 -5
  269. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  270. package/lib/esm/geometry3d/CoincidentGeometryOps.js +71 -45
  271. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  272. package/lib/esm/geometry3d/Matrix3d.d.ts +20 -13
  273. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  274. package/lib/esm/geometry3d/Matrix3d.js +28 -21
  275. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  276. package/lib/esm/geometry3d/Point3dVector3d.d.ts +11 -2
  277. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  278. package/lib/esm/geometry3d/Point3dVector3d.js +16 -5
  279. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  280. package/lib/esm/geometry3d/PointHelpers.d.ts +58 -20
  281. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  282. package/lib/esm/geometry3d/PointHelpers.js +213 -62
  283. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  284. package/lib/esm/geometry3d/Segment1d.d.ts +5 -1
  285. package/lib/esm/geometry3d/Segment1d.d.ts.map +1 -1
  286. package/lib/esm/geometry3d/Segment1d.js +11 -7
  287. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  288. package/lib/esm/geometry3d/Transform.d.ts +2 -3
  289. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  290. package/lib/esm/geometry3d/Transform.js +2 -3
  291. package/lib/esm/geometry3d/Transform.js.map +1 -1
  292. package/lib/esm/geometry4d/Point4d.d.ts +14 -1
  293. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  294. package/lib/esm/geometry4d/Point4d.js +22 -1
  295. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  296. package/lib/esm/numerics/BezierPolynomials.d.ts +91 -68
  297. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  298. package/lib/esm/numerics/BezierPolynomials.js +100 -79
  299. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  300. package/lib/esm/numerics/Newton.d.ts +115 -60
  301. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  302. package/lib/esm/numerics/Newton.js +120 -62
  303. package/lib/esm/numerics/Newton.js.map +1 -1
  304. package/lib/esm/numerics/PascalCoefficients.d.ts +8 -12
  305. package/lib/esm/numerics/PascalCoefficients.d.ts.map +1 -1
  306. package/lib/esm/numerics/PascalCoefficients.js +10 -12
  307. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  308. package/lib/esm/numerics/Polynomials.d.ts +2 -2
  309. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  310. package/lib/esm/numerics/Polynomials.js +2 -2
  311. package/lib/esm/numerics/Polynomials.js.map +1 -1
  312. package/lib/esm/polyface/PolyfaceBuilder.d.ts +3 -0
  313. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  314. package/lib/esm/polyface/PolyfaceBuilder.js +13 -2
  315. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  316. package/lib/esm/polyface/PolyfaceClip.d.ts +1 -1
  317. package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
  318. package/lib/esm/polyface/PolyfaceClip.js +6 -3
  319. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  320. package/lib/esm/polyface/PolyfaceData.d.ts +1 -1
  321. package/lib/esm/polyface/PolyfaceData.js +1 -1
  322. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  323. package/lib/esm/polyface/PolyfaceQuery.d.ts +39 -12
  324. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  325. package/lib/esm/polyface/PolyfaceQuery.js +94 -17
  326. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  327. package/lib/esm/serialization/BGFBReader.d.ts +10 -10
  328. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  329. package/lib/esm/serialization/BGFBReader.js +69 -42
  330. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  331. package/lib/esm/serialization/BGFBWriter.d.ts +8 -8
  332. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  333. package/lib/esm/serialization/BGFBWriter.js +80 -55
  334. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  335. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  336. package/lib/esm/serialization/GeometrySamples.js +7 -9
  337. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  338. package/lib/esm/serialization/IModelJsonSchema.d.ts +8 -14
  339. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  340. package/lib/esm/serialization/IModelJsonSchema.js +86 -260
  341. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  342. package/lib/esm/serialization/SerializationHelpers.d.ts +109 -0
  343. package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -0
  344. package/lib/esm/serialization/SerializationHelpers.js +588 -0
  345. package/lib/esm/serialization/SerializationHelpers.js.map +1 -0
  346. package/lib/esm/solid/SweepContour.d.ts +4 -2
  347. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  348. package/lib/esm/solid/SweepContour.js +4 -2
  349. package/lib/esm/solid/SweepContour.js.map +1 -1
  350. package/package.json +3 -3
@@ -86,14 +86,15 @@ export class BezierCoffs {
86
86
  for (let i = 0; i < this.coffs.length; i++)
87
87
  this.coffs[i] += a;
88
88
  }
89
- /** Compute parameter values where the bezier value matches _targetValue.
89
+ /** Compute parameter values where the bezier value matches targetValue.
90
90
  * * The base class finds roots only in 01. (i.e. ignores _restrictTo01)
91
- * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
91
+ * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
92
92
  */
93
93
  roots(targetValue, _restrictTo01) {
94
94
  const bezier = UnivariateBezier.create(this);
95
95
  bezier.addInPlace(-targetValue);
96
- return UnivariateBezier.deflateRoots01(bezier);
96
+ const roots = UnivariateBezier.deflateRoots(bezier);
97
+ return this.filter01(roots, true);
97
98
  }
98
99
  /** Given an array of numbers, optionally remove those not in the 0..1 interval.
99
100
  * @param roots candidate values
@@ -121,7 +122,9 @@ export class BezierCoffs {
121
122
  return undefined;
122
123
  }
123
124
  /** zero out all coefficients. */
124
- zero() { this.coffs.fill(0); }
125
+ zero() {
126
+ this.coffs.fill(0);
127
+ }
125
128
  /** Subdivide -- write results into caller-supplied bezier coffs (which must be of the same order) */
126
129
  subdivide(u, left, right) {
127
130
  const order = this.order;
@@ -417,13 +420,15 @@ export class UnivariateBezier extends BezierCoffs {
417
420
  this.coffs[i] += a;
418
421
  }
419
422
  }
420
- /** evaluate the basis functions at specified u.
423
+ /**
424
+ * Evaluate the basis functions at specified u.
421
425
  * @param u bezier parameter for evaluation.
422
- * @returns Return a (newly allocated) array of basis function values.
426
+ * @param result optional destination of length `order`. If insufficient length, a new array is returned.
427
+ * @returns array of `order` basis function values.
423
428
  */
424
429
  basisFunctions(u, result) {
425
430
  this._basisValues = PascalCoefficients.getBezierBasisValues(this.order, u, this._basisValues);
426
- if (!result || result.length !== this.order)
431
+ if (!result || result.length < this.order)
427
432
  result = new Float64Array(this.order);
428
433
  let i = 0;
429
434
  for (const a of this._basisValues)
@@ -433,9 +438,11 @@ export class UnivariateBezier extends BezierCoffs {
433
438
  /**
434
439
  * Sum weights[i] * data[...] in blocks of numPerBlock.
435
440
  * This is for low level use -- counts are not checked.
436
- * @param weights
437
- * @param data
438
- * @param numPerBlock
441
+ * @param weights input array of length `numWeights`
442
+ * @param numWeights number of weights
443
+ * @param data input array of length `numWeights * numPerBlock`
444
+ * @param numPerBlock control point dimension
445
+ * @param result output array of length `numPerBlock`
439
446
  */
440
447
  static sumWeightedBlocks(weights, numWeights, data, numPerBlock, result) {
441
448
  for (let k0 = 0; k0 < numPerBlock; k0++) {
@@ -451,33 +458,33 @@ export class UnivariateBezier extends BezierCoffs {
451
458
  }
452
459
  }
453
460
  /**
454
- * Given (multidimensional) control points, sum the control points weighted by the basis function values at parameter u.
461
+ * Sum the control points weighted by the basis function values at parameter u.
455
462
  * @param u bezier parameter
456
- * @param polygon Array with coefficients in blocks.
457
- * @param blockSize size of blocks
458
- * @param result `blockSize` summed values.
463
+ * @param polygon packed multidimensional control points. ASSUMED contains `blockSize*order` values.
464
+ * @param blockSize dimension of control points
465
+ * @param result optional preallocated array of length `blockSize` to fill and return. If insufficient length, a newly created array is returned.
466
+ * @returns array of `blockSize` summed basis function values.
459
467
  */
460
468
  sumBasisFunctions(u, polygon, blockSize, result) {
461
- const order = this._order;
462
- if (!result)
463
- result = new Float64Array(order);
469
+ if (!result || result.length < blockSize)
470
+ result = new Float64Array(blockSize);
464
471
  this._basisValues = PascalCoefficients.getBezierBasisValues(this.order, u, this._basisValues);
465
- UnivariateBezier.sumWeightedBlocks(this._basisValues, order, polygon, blockSize, result);
472
+ UnivariateBezier.sumWeightedBlocks(this._basisValues, this.order, polygon, blockSize, result);
466
473
  return result;
467
474
  }
468
475
  /**
469
- * Given (multidimensional) control points, sum the control points weighted by the basis function derivative values at parameter u.
476
+ * Sum the control points weighted by the basis function derivative values at parameter u.
470
477
  * @param u bezier parameter
471
- * @param polygon Array with coefficients in blocks.
472
- * @param blockSize size of blocks
473
- * @param result `blockSize` summed values.
478
+ * @param polygon packed multidimensional control points. ASSUMED contains `blockSize*order` values.
479
+ * @param blockSize dimension of control points
480
+ * @param result optional preallocated array of length `blockSize` to fill and return. If insufficient length, a newly created array is returned.
481
+ * @returns array of `blockSize` summed basis function derivative values.
474
482
  */
475
483
  sumBasisFunctionDerivatives(u, polygon, blockSize, result) {
476
- const order = this._order;
477
- if (!result)
484
+ if (!result || result.length < blockSize)
478
485
  result = new Float64Array(blockSize);
479
486
  this._basisValues = PascalCoefficients.getBezierBasisDerivatives(this.order, u, this._basisValues);
480
- UnivariateBezier.sumWeightedBlocks(this._basisValues, order, polygon, blockSize, result);
487
+ UnivariateBezier.sumWeightedBlocks(this._basisValues, this.order, polygon, blockSize, result);
481
488
  return result;
482
489
  }
483
490
  /**
@@ -644,11 +651,10 @@ export class UnivariateBezier extends BezierCoffs {
644
651
  // first c0*b0 = a0
645
652
  // last c[orderC-1]*b1 = a[orderA-1]
646
653
  /** Find roots of a bezier polynomial
647
- * * Only look for roots in 0..1
648
654
  * * As roots are found, deflate the polynomial.
649
655
  * * bezier coffs are changed (and order reduced) at each step.
650
656
  */
651
- static deflateRoots01(bezier) {
657
+ static deflateRoots(bezier) {
652
658
  const roots = [];
653
659
  const coffs = bezier.coffs;
654
660
  let a0, a1, segmentFraction, globalStartFraction, newtonFraction;
@@ -710,26 +716,29 @@ export class Order2Bezier extends BezierCoffs {
710
716
  static solveCoffs(a0, a1) {
711
717
  return Geometry.conditionalDivideFraction(-a0, (a1 - a0));
712
718
  }
713
- /** evaluate the basis functions at specified u.
719
+ /**
720
+ * Evaluate the basis functions at specified u.
714
721
  * @param u bezier parameter for evaluation.
715
- * @returns Return a (newly allocated) array of basis function values.
722
+ * @param result optional destination of length 2. If insufficient length, a new array is returned.
723
+ * @returns array of 2 basis function values.
716
724
  */
717
725
  basisFunctions(u, result) {
718
- if (!result)
726
+ if (!result || result.length < 2)
719
727
  result = new Float64Array(2);
720
728
  result[0] = 1.0 - u;
721
729
  result[1] = u;
722
730
  return result;
723
731
  }
724
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
732
+ /**
733
+ * Sum the control points weighted by the basis function values at parameter u.
725
734
  * @param u bezier parameter for evaluation.
735
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
726
736
  * @param n dimension of control points.
727
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
728
- * @param result optional destination for values. ASSUMED size `order`
729
- * @returns Return a (newly allocated) array of basis function values.
737
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
738
+ * @returns array of `n` summed basis function values.
730
739
  */
731
740
  sumBasisFunctions(u, polygon, n, result) {
732
- if (!result)
741
+ if (!result || result.length < n)
733
742
  result = new Float64Array(n);
734
743
  const v = 1.0 - u;
735
744
  for (let i = 0; i < n; i++) {
@@ -737,15 +746,16 @@ export class Order2Bezier extends BezierCoffs {
737
746
  }
738
747
  return result;
739
748
  }
740
- /** evaluate the blocked derivative at u.
741
- * @param u bezier parameter for evaluation.
749
+ /**
750
+ * Sum the control points weighted by the basis function derivative values at parameter u.
751
+ * @param _u bezier parameter for evaluation.
752
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
742
753
  * @param n dimension of control points.
743
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
744
- * @param result optional destination for values. ASSUMED size `order`
745
- * @returns Return a (newly allocated) array of basis function values.
754
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
755
+ * @returns array of `n` summed basis function derivative values.
746
756
  */
747
757
  sumBasisFunctionDerivatives(_u, polygon, n, result) {
748
- if (!result)
758
+ if (!result || result.length < n)
749
759
  result = new Float64Array(n);
750
760
  for (let i = 0; i < n; i++) {
751
761
  result[i] = polygon[i + n] - polygon[i];
@@ -793,12 +803,14 @@ export class Order3Bezier extends BezierCoffs {
793
803
  clone() {
794
804
  return new Order3Bezier(this.coffs[0], this.coffs[1], this.coffs[2]);
795
805
  }
796
- /** evaluate the basis functions at specified u.
806
+ /**
807
+ * Evaluate the basis functions at specified u.
797
808
  * @param u bezier parameter for evaluation.
798
- * @returns Return a (newly allocated) array of basis function values.
809
+ * @param result optional destination of length 3. If insufficient length, a new array is returned.
810
+ * @returns array of 3 basis function values.
799
811
  */
800
812
  basisFunctions(u, result) {
801
- if (!result)
813
+ if (!result || result.length < 3)
802
814
  result = new Float64Array(3);
803
815
  const v = 1.0 - u;
804
816
  result[0] = v * v;
@@ -806,15 +818,16 @@ export class Order3Bezier extends BezierCoffs {
806
818
  result[2] = u * u;
807
819
  return result;
808
820
  }
809
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
821
+ /**
822
+ * Sum the control points weighted by the basis function values at parameter u.
810
823
  * @param u bezier parameter for evaluation.
824
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
811
825
  * @param n dimension of control points.
812
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
813
- * @param result optional destination for values. ASSUMED size `order`
814
- * @returns Return a (newly allocated) array of basis function values.
826
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
827
+ * @returns array of `n` summed basis function values.
815
828
  */
816
829
  sumBasisFunctions(u, polygon, n, result) {
817
- if (!result)
830
+ if (!result || result.length < n)
818
831
  result = new Float64Array(n);
819
832
  const v = 1 - u;
820
833
  const b0 = v * v;
@@ -825,15 +838,16 @@ export class Order3Bezier extends BezierCoffs {
825
838
  }
826
839
  return result;
827
840
  }
828
- /** evaluate the blocked derivative at u.
841
+ /**
842
+ * Sum the control points weighted by the basis function derivative values at parameter u.
829
843
  * @param u bezier parameter for evaluation.
844
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
830
845
  * @param n dimension of control points.
831
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
832
- * @param result optional destination for values. ASSUMED size `order`
833
- * @returns Return a (newly allocated) array of basis function values.
846
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
847
+ * @returns array of `n` summed basis function derivative values.
834
848
  */
835
849
  sumBasisFunctionDerivatives(u, polygon, n, result) {
836
- if (!result)
850
+ if (!result || result.length < n)
837
851
  result = new Float64Array(n);
838
852
  const f0 = 2 * (1 - u);
839
853
  const f1 = 2 * u;
@@ -899,12 +913,14 @@ export class Order4Bezier extends BezierCoffs {
899
913
  static createProductOrder3Order2(factorA, factorB) {
900
914
  return new Order4Bezier(factorA.coffs[0] * factorB.coffs[0], (factorA.coffs[0] * factorB.coffs[1] + 2.0 * factorA.coffs[1] * factorB.coffs[0]) / 3.0, (2.0 * factorA.coffs[1] * factorB.coffs[1] + factorA.coffs[2] * factorB.coffs[0]) / 3.0, factorA.coffs[2] * factorB.coffs[1]);
901
915
  }
902
- /** evaluate the basis functions at specified u.
916
+ /**
917
+ * Evaluate the basis functions at specified u.
903
918
  * @param u bezier parameter for evaluation.
904
- * @returns Return a (newly allocated) array of basis function values.
919
+ * @param result optional destination of length 4. If insufficient length, a new array is returned.
920
+ * @returns array of 4 basis function values.
905
921
  */
906
922
  basisFunctions(u, result) {
907
- if (!result)
923
+ if (!result || result.length < 4)
908
924
  result = new Float64Array(4);
909
925
  const v = 1.0 - u;
910
926
  const uu = u * u;
@@ -915,15 +931,16 @@ export class Order4Bezier extends BezierCoffs {
915
931
  result[3] = u * uu;
916
932
  return result;
917
933
  }
918
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
934
+ /**
935
+ * Sum the control points weighted by the basis function values at parameter u.
919
936
  * @param u bezier parameter for evaluation.
937
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
920
938
  * @param n dimension of control points.
921
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
922
- * @param result optional destination for values. ASSUMED size `order`
923
- * @returns Return a (newly allocated) array of basis function values.
939
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
940
+ * @returns array of `n` summed basis function values.
924
941
  */
925
942
  sumBasisFunctions(u, polygon, n, result) {
926
- if (!result)
943
+ if (!result || result.length < n)
927
944
  result = new Float64Array(n);
928
945
  const v = 1 - u;
929
946
  const uu = u * u;
@@ -937,15 +954,16 @@ export class Order4Bezier extends BezierCoffs {
937
954
  }
938
955
  return result;
939
956
  }
940
- /** evaluate the blocked derivative at u.
957
+ /**
958
+ * Sum the control points weighted by the basis function derivative values at parameter u.
941
959
  * @param u bezier parameter for evaluation.
960
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
942
961
  * @param n dimension of control points.
943
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
944
- * @param result optional destination for values. ASSUMED size `order`
945
- * @returns Return a (newly allocated) array of basis function values.
962
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
963
+ * @returns array of `n` summed basis function derivative values.
946
964
  */
947
965
  sumBasisFunctionDerivatives(u, polygon, n, result) {
948
- if (!result)
966
+ if (!result || result.length < n)
949
967
  result = new Float64Array(n);
950
968
  const v = 1 - u;
951
969
  // QUADRATIC basis functions applied to differences ... (with factor 3 for derivative)
@@ -1051,10 +1069,11 @@ export class Order5Bezier extends BezierCoffs {
1051
1069
  }
1052
1070
  /** evaluate the basis functions at specified u.
1053
1071
  * @param u bezier parameter for evaluation.
1054
- * @returns Return a (newly allocated) array of basis function values.
1072
+ * @param result optional destination of length 5. If insufficient length, a new array is returned.
1073
+ * @returns array of 5 basis function values.
1055
1074
  */
1056
1075
  basisFunctions(u, result) {
1057
- if (!result)
1076
+ if (!result || result.length < 5)
1058
1077
  result = new Float64Array(5);
1059
1078
  const v = 1.0 - u;
1060
1079
  const uu = u * u;
@@ -1068,15 +1087,16 @@ export class Order5Bezier extends BezierCoffs {
1068
1087
  result[4] = uu * uu;
1069
1088
  return result;
1070
1089
  }
1071
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
1090
+ /**
1091
+ * Sum the control points weighted by the basis function values at parameter u.
1072
1092
  * @param u bezier parameter for evaluation.
1093
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1073
1094
  * @param n dimension of control points.
1074
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1075
- * @param result optional destination for values. ASSUMED size `order`
1076
- * @returns Return a (newly allocated) array of basis function values.
1095
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
1096
+ * @returns array of `n` summed basis function values.
1077
1097
  */
1078
1098
  sumBasisFunctions(u, polygon, n, result) {
1079
- if (!result)
1099
+ if (!result || result.length < n)
1080
1100
  result = new Float64Array(n);
1081
1101
  const v = 1.0 - u;
1082
1102
  const uu = u * u;
@@ -1093,15 +1113,16 @@ export class Order5Bezier extends BezierCoffs {
1093
1113
  }
1094
1114
  return result;
1095
1115
  }
1096
- /** evaluate the blocked derivative at u.
1116
+ /**
1117
+ * Sum the control points weighted by the basis function derivative values at parameter u.
1097
1118
  * @param u bezier parameter for evaluation.
1119
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1098
1120
  * @param n dimension of control points.
1099
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1100
- * @param result optional destination for values. ASSUMED size `order`
1101
- * @returns Return a (newly allocated) array of basis function values.
1121
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
1122
+ * @returns array of `n` summed basis function derivative values.
1102
1123
  */
1103
1124
  sumBasisFunctionDerivatives(u, polygon, n, result) {
1104
- if (!result)
1125
+ if (!result || result.length < n)
1105
1126
  result = new Float64Array(n);
1106
1127
  const v = 1 - u;
1107
1128
  // CUBIC basis functions applied to differences ...