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

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
@@ -89,14 +89,15 @@ class BezierCoffs {
89
89
  for (let i = 0; i < this.coffs.length; i++)
90
90
  this.coffs[i] += a;
91
91
  }
92
- /** Compute parameter values where the bezier value matches _targetValue.
92
+ /** Compute parameter values where the bezier value matches targetValue.
93
93
  * * The base class finds roots only in 01. (i.e. ignores _restrictTo01)
94
- * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
94
+ * * Order-specific implementations apply special case analytic logic, e.g. for degree 1,2,3,4.
95
95
  */
96
96
  roots(targetValue, _restrictTo01) {
97
97
  const bezier = UnivariateBezier.create(this);
98
98
  bezier.addInPlace(-targetValue);
99
- return UnivariateBezier.deflateRoots01(bezier);
99
+ const roots = UnivariateBezier.deflateRoots(bezier);
100
+ return this.filter01(roots, true);
100
101
  }
101
102
  /** Given an array of numbers, optionally remove those not in the 0..1 interval.
102
103
  * @param roots candidate values
@@ -124,7 +125,9 @@ class BezierCoffs {
124
125
  return undefined;
125
126
  }
126
127
  /** zero out all coefficients. */
127
- zero() { this.coffs.fill(0); }
128
+ zero() {
129
+ this.coffs.fill(0);
130
+ }
128
131
  /** Subdivide -- write results into caller-supplied bezier coffs (which must be of the same order) */
129
132
  subdivide(u, left, right) {
130
133
  const order = this.order;
@@ -422,13 +425,15 @@ class UnivariateBezier extends BezierCoffs {
422
425
  this.coffs[i] += a;
423
426
  }
424
427
  }
425
- /** evaluate the basis functions at specified u.
428
+ /**
429
+ * Evaluate the basis functions at specified u.
426
430
  * @param u bezier parameter for evaluation.
427
- * @returns Return a (newly allocated) array of basis function values.
431
+ * @param result optional destination of length `order`. If insufficient length, a new array is returned.
432
+ * @returns array of `order` basis function values.
428
433
  */
429
434
  basisFunctions(u, result) {
430
435
  this._basisValues = PascalCoefficients_1.PascalCoefficients.getBezierBasisValues(this.order, u, this._basisValues);
431
- if (!result || result.length !== this.order)
436
+ if (!result || result.length < this.order)
432
437
  result = new Float64Array(this.order);
433
438
  let i = 0;
434
439
  for (const a of this._basisValues)
@@ -438,9 +443,11 @@ class UnivariateBezier extends BezierCoffs {
438
443
  /**
439
444
  * Sum weights[i] * data[...] in blocks of numPerBlock.
440
445
  * This is for low level use -- counts are not checked.
441
- * @param weights
442
- * @param data
443
- * @param numPerBlock
446
+ * @param weights input array of length `numWeights`
447
+ * @param numWeights number of weights
448
+ * @param data input array of length `numWeights * numPerBlock`
449
+ * @param numPerBlock control point dimension
450
+ * @param result output array of length `numPerBlock`
444
451
  */
445
452
  static sumWeightedBlocks(weights, numWeights, data, numPerBlock, result) {
446
453
  for (let k0 = 0; k0 < numPerBlock; k0++) {
@@ -456,33 +463,33 @@ class UnivariateBezier extends BezierCoffs {
456
463
  }
457
464
  }
458
465
  /**
459
- * Given (multidimensional) control points, sum the control points weighted by the basis function values at parameter u.
466
+ * Sum the control points weighted by the basis function values at parameter u.
460
467
  * @param u bezier parameter
461
- * @param polygon Array with coefficients in blocks.
462
- * @param blockSize size of blocks
463
- * @param result `blockSize` summed values.
468
+ * @param polygon packed multidimensional control points. ASSUMED contains `blockSize*order` values.
469
+ * @param blockSize dimension of control points
470
+ * @param result optional preallocated array of length `blockSize` to fill and return. If insufficient length, a newly created array is returned.
471
+ * @returns array of `blockSize` summed basis function values.
464
472
  */
465
473
  sumBasisFunctions(u, polygon, blockSize, result) {
466
- const order = this._order;
467
- if (!result)
468
- result = new Float64Array(order);
474
+ if (!result || result.length < blockSize)
475
+ result = new Float64Array(blockSize);
469
476
  this._basisValues = PascalCoefficients_1.PascalCoefficients.getBezierBasisValues(this.order, u, this._basisValues);
470
- UnivariateBezier.sumWeightedBlocks(this._basisValues, order, polygon, blockSize, result);
477
+ UnivariateBezier.sumWeightedBlocks(this._basisValues, this.order, polygon, blockSize, result);
471
478
  return result;
472
479
  }
473
480
  /**
474
- * Given (multidimensional) control points, sum the control points weighted by the basis function derivative values at parameter u.
481
+ * Sum the control points weighted by the basis function derivative values at parameter u.
475
482
  * @param u bezier parameter
476
- * @param polygon Array with coefficients in blocks.
477
- * @param blockSize size of blocks
478
- * @param result `blockSize` summed values.
483
+ * @param polygon packed multidimensional control points. ASSUMED contains `blockSize*order` values.
484
+ * @param blockSize dimension of control points
485
+ * @param result optional preallocated array of length `blockSize` to fill and return. If insufficient length, a newly created array is returned.
486
+ * @returns array of `blockSize` summed basis function derivative values.
479
487
  */
480
488
  sumBasisFunctionDerivatives(u, polygon, blockSize, result) {
481
- const order = this._order;
482
- if (!result)
489
+ if (!result || result.length < blockSize)
483
490
  result = new Float64Array(blockSize);
484
491
  this._basisValues = PascalCoefficients_1.PascalCoefficients.getBezierBasisDerivatives(this.order, u, this._basisValues);
485
- UnivariateBezier.sumWeightedBlocks(this._basisValues, order, polygon, blockSize, result);
492
+ UnivariateBezier.sumWeightedBlocks(this._basisValues, this.order, polygon, blockSize, result);
486
493
  return result;
487
494
  }
488
495
  /**
@@ -649,11 +656,10 @@ class UnivariateBezier extends BezierCoffs {
649
656
  // first c0*b0 = a0
650
657
  // last c[orderC-1]*b1 = a[orderA-1]
651
658
  /** Find roots of a bezier polynomial
652
- * * Only look for roots in 0..1
653
659
  * * As roots are found, deflate the polynomial.
654
660
  * * bezier coffs are changed (and order reduced) at each step.
655
661
  */
656
- static deflateRoots01(bezier) {
662
+ static deflateRoots(bezier) {
657
663
  const roots = [];
658
664
  const coffs = bezier.coffs;
659
665
  let a0, a1, segmentFraction, globalStartFraction, newtonFraction;
@@ -716,26 +722,29 @@ class Order2Bezier extends BezierCoffs {
716
722
  static solveCoffs(a0, a1) {
717
723
  return Geometry_1.Geometry.conditionalDivideFraction(-a0, (a1 - a0));
718
724
  }
719
- /** evaluate the basis functions at specified u.
725
+ /**
726
+ * Evaluate the basis functions at specified u.
720
727
  * @param u bezier parameter for evaluation.
721
- * @returns Return a (newly allocated) array of basis function values.
728
+ * @param result optional destination of length 2. If insufficient length, a new array is returned.
729
+ * @returns array of 2 basis function values.
722
730
  */
723
731
  basisFunctions(u, result) {
724
- if (!result)
732
+ if (!result || result.length < 2)
725
733
  result = new Float64Array(2);
726
734
  result[0] = 1.0 - u;
727
735
  result[1] = u;
728
736
  return result;
729
737
  }
730
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
738
+ /**
739
+ * Sum the control points weighted by the basis function values at parameter u.
731
740
  * @param u bezier parameter for evaluation.
741
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
732
742
  * @param n dimension of control points.
733
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
734
- * @param result optional destination for values. ASSUMED size `order`
735
- * @returns Return a (newly allocated) array of basis function values.
743
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
744
+ * @returns array of `n` summed basis function values.
736
745
  */
737
746
  sumBasisFunctions(u, polygon, n, result) {
738
- if (!result)
747
+ if (!result || result.length < n)
739
748
  result = new Float64Array(n);
740
749
  const v = 1.0 - u;
741
750
  for (let i = 0; i < n; i++) {
@@ -743,15 +752,16 @@ class Order2Bezier extends BezierCoffs {
743
752
  }
744
753
  return result;
745
754
  }
746
- /** evaluate the blocked derivative at u.
747
- * @param u bezier parameter for evaluation.
755
+ /**
756
+ * Sum the control points weighted by the basis function derivative values at parameter u.
757
+ * @param _u bezier parameter for evaluation.
758
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
748
759
  * @param n dimension of control points.
749
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
750
- * @param result optional destination for values. ASSUMED size `order`
751
- * @returns Return a (newly allocated) array of basis function values.
760
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
761
+ * @returns array of `n` summed basis function derivative values.
752
762
  */
753
763
  sumBasisFunctionDerivatives(_u, polygon, n, result) {
754
- if (!result)
764
+ if (!result || result.length < n)
755
765
  result = new Float64Array(n);
756
766
  for (let i = 0; i < n; i++) {
757
767
  result[i] = polygon[i + n] - polygon[i];
@@ -800,12 +810,14 @@ class Order3Bezier extends BezierCoffs {
800
810
  clone() {
801
811
  return new Order3Bezier(this.coffs[0], this.coffs[1], this.coffs[2]);
802
812
  }
803
- /** evaluate the basis functions at specified u.
813
+ /**
814
+ * Evaluate the basis functions at specified u.
804
815
  * @param u bezier parameter for evaluation.
805
- * @returns Return a (newly allocated) array of basis function values.
816
+ * @param result optional destination of length 3. If insufficient length, a new array is returned.
817
+ * @returns array of 3 basis function values.
806
818
  */
807
819
  basisFunctions(u, result) {
808
- if (!result)
820
+ if (!result || result.length < 3)
809
821
  result = new Float64Array(3);
810
822
  const v = 1.0 - u;
811
823
  result[0] = v * v;
@@ -813,15 +825,16 @@ class Order3Bezier extends BezierCoffs {
813
825
  result[2] = u * u;
814
826
  return result;
815
827
  }
816
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
828
+ /**
829
+ * Sum the control points weighted by the basis function values at parameter u.
817
830
  * @param u bezier parameter for evaluation.
831
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
818
832
  * @param n dimension of control points.
819
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
820
- * @param result optional destination for values. ASSUMED size `order`
821
- * @returns Return a (newly allocated) array of basis function values.
833
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
834
+ * @returns array of `n` summed basis function values.
822
835
  */
823
836
  sumBasisFunctions(u, polygon, n, result) {
824
- if (!result)
837
+ if (!result || result.length < n)
825
838
  result = new Float64Array(n);
826
839
  const v = 1 - u;
827
840
  const b0 = v * v;
@@ -832,15 +845,16 @@ class Order3Bezier extends BezierCoffs {
832
845
  }
833
846
  return result;
834
847
  }
835
- /** evaluate the blocked derivative at u.
848
+ /**
849
+ * Sum the control points weighted by the basis function derivative values at parameter u.
836
850
  * @param u bezier parameter for evaluation.
851
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
837
852
  * @param n dimension of control points.
838
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
839
- * @param result optional destination for values. ASSUMED size `order`
840
- * @returns Return a (newly allocated) array of basis function values.
853
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
854
+ * @returns array of `n` summed basis function derivative values.
841
855
  */
842
856
  sumBasisFunctionDerivatives(u, polygon, n, result) {
843
- if (!result)
857
+ if (!result || result.length < n)
844
858
  result = new Float64Array(n);
845
859
  const f0 = 2 * (1 - u);
846
860
  const f1 = 2 * u;
@@ -907,12 +921,14 @@ class Order4Bezier extends BezierCoffs {
907
921
  static createProductOrder3Order2(factorA, factorB) {
908
922
  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]);
909
923
  }
910
- /** evaluate the basis functions at specified u.
924
+ /**
925
+ * Evaluate the basis functions at specified u.
911
926
  * @param u bezier parameter for evaluation.
912
- * @returns Return a (newly allocated) array of basis function values.
927
+ * @param result optional destination of length 4. If insufficient length, a new array is returned.
928
+ * @returns array of 4 basis function values.
913
929
  */
914
930
  basisFunctions(u, result) {
915
- if (!result)
931
+ if (!result || result.length < 4)
916
932
  result = new Float64Array(4);
917
933
  const v = 1.0 - u;
918
934
  const uu = u * u;
@@ -923,15 +939,16 @@ class Order4Bezier extends BezierCoffs {
923
939
  result[3] = u * uu;
924
940
  return result;
925
941
  }
926
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
942
+ /**
943
+ * Sum the control points weighted by the basis function values at parameter u.
927
944
  * @param u bezier parameter for evaluation.
945
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
928
946
  * @param n dimension of control points.
929
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
930
- * @param result optional destination for values. ASSUMED size `order`
931
- * @returns Return a (newly allocated) array of basis function values.
947
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
948
+ * @returns array of `n` summed basis function values.
932
949
  */
933
950
  sumBasisFunctions(u, polygon, n, result) {
934
- if (!result)
951
+ if (!result || result.length < n)
935
952
  result = new Float64Array(n);
936
953
  const v = 1 - u;
937
954
  const uu = u * u;
@@ -945,15 +962,16 @@ class Order4Bezier extends BezierCoffs {
945
962
  }
946
963
  return result;
947
964
  }
948
- /** evaluate the blocked derivative at u.
965
+ /**
966
+ * Sum the control points weighted by the basis function derivative values at parameter u.
949
967
  * @param u bezier parameter for evaluation.
968
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
950
969
  * @param n dimension of control points.
951
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
952
- * @param result optional destination for values. ASSUMED size `order`
953
- * @returns Return a (newly allocated) array of basis function values.
970
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
971
+ * @returns array of `n` summed basis function derivative values.
954
972
  */
955
973
  sumBasisFunctionDerivatives(u, polygon, n, result) {
956
- if (!result)
974
+ if (!result || result.length < n)
957
975
  result = new Float64Array(n);
958
976
  const v = 1 - u;
959
977
  // QUADRATIC basis functions applied to differences ... (with factor 3 for derivative)
@@ -1060,10 +1078,11 @@ class Order5Bezier extends BezierCoffs {
1060
1078
  }
1061
1079
  /** evaluate the basis functions at specified u.
1062
1080
  * @param u bezier parameter for evaluation.
1063
- * @returns Return a (newly allocated) array of basis function values.
1081
+ * @param result optional destination of length 5. If insufficient length, a new array is returned.
1082
+ * @returns array of 5 basis function values.
1064
1083
  */
1065
1084
  basisFunctions(u, result) {
1066
- if (!result)
1085
+ if (!result || result.length < 5)
1067
1086
  result = new Float64Array(5);
1068
1087
  const v = 1.0 - u;
1069
1088
  const uu = u * u;
@@ -1077,15 +1096,16 @@ class Order5Bezier extends BezierCoffs {
1077
1096
  result[4] = uu * uu;
1078
1097
  return result;
1079
1098
  }
1080
- /** evaluate the basis functions at specified u. Sum multidimensional control points with basis weights.
1099
+ /**
1100
+ * Sum the control points weighted by the basis function values at parameter u.
1081
1101
  * @param u bezier parameter for evaluation.
1102
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1082
1103
  * @param n dimension of control points.
1083
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1084
- * @param result optional destination for values. ASSUMED size `order`
1085
- * @returns Return a (newly allocated) array of basis function values.
1104
+ * @param result optional preallocated array of length `n` to fill and return. If insufficient length, a newly created array is returned.
1105
+ * @returns array of `n` summed basis function values.
1086
1106
  */
1087
1107
  sumBasisFunctions(u, polygon, n, result) {
1088
- if (!result)
1108
+ if (!result || result.length < n)
1089
1109
  result = new Float64Array(n);
1090
1110
  const v = 1.0 - u;
1091
1111
  const uu = u * u;
@@ -1102,15 +1122,16 @@ class Order5Bezier extends BezierCoffs {
1102
1122
  }
1103
1123
  return result;
1104
1124
  }
1105
- /** evaluate the blocked derivative at u.
1125
+ /**
1126
+ * Sum the control points weighted by the basis function derivative values at parameter u.
1106
1127
  * @param u bezier parameter for evaluation.
1128
+ * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1107
1129
  * @param n dimension of control points.
1108
- * @param polygon packed multidimensional control points. ASSUMED contains `n*order` values.
1109
- * @param result optional destination for values. ASSUMED size `order`
1110
- * @returns Return a (newly allocated) array of basis function values.
1130
+ * @param result optional destination of length `n`. If insufficient length, a new array is returned.
1131
+ * @returns array of `n` summed basis function derivative values.
1111
1132
  */
1112
1133
  sumBasisFunctionDerivatives(u, polygon, n, result) {
1113
- if (!result)
1134
+ if (!result || result.length < n)
1114
1135
  result = new Float64Array(n);
1115
1136
  const v = 1 - u;
1116
1137
  // CUBIC basis functions applied to differences ...