@itwin/core-geometry 4.3.0-dev.9 → 4.3.0

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 (336) hide show
  1. package/CHANGELOG.md +52 -1
  2. package/lib/cjs/Geometry.d.ts +14 -2
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +20 -9
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/BSpline1dNd.d.ts +12 -2
  7. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSpline1dNd.js +27 -17
  9. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurve.d.ts +30 -16
  11. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSplineCurve.js +68 -44
  13. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve3dH.d.ts +27 -20
  15. package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve3dH.js +136 -87
  17. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineSurface.d.ts +138 -74
  19. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  20. package/lib/cjs/bspline/BSplineSurface.js +242 -119
  21. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  22. package/lib/cjs/bspline/Bezier1dNd.d.ts +18 -4
  23. package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -1
  24. package/lib/cjs/bspline/Bezier1dNd.js +19 -5
  25. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  26. package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3dH.js +2 -1
  28. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  29. package/lib/cjs/bspline/KnotVector.d.ts +30 -33
  30. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  31. package/lib/cjs/bspline/KnotVector.js +76 -69
  32. package/lib/cjs/bspline/KnotVector.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/core-geometry.d.ts +0 -2
  38. package/lib/cjs/core-geometry.d.ts.map +1 -1
  39. package/lib/cjs/core-geometry.js +0 -2
  40. package/lib/cjs/core-geometry.js.map +1 -1
  41. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  42. package/lib/cjs/curve/Arc3d.js +5 -5
  43. package/lib/cjs/curve/Arc3d.js.map +1 -1
  44. package/lib/cjs/curve/CurveLocationDetail.d.ts +1 -4
  45. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  46. package/lib/cjs/curve/CurveLocationDetail.js +4 -10
  47. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  48. package/lib/cjs/curve/CurveOps.d.ts +4 -5
  49. package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
  50. package/lib/cjs/curve/CurveOps.js +1 -1
  51. package/lib/cjs/curve/CurveOps.js.map +1 -1
  52. package/lib/cjs/curve/CurveTypes.d.ts +14 -2
  53. package/lib/cjs/curve/CurveTypes.d.ts.map +1 -1
  54. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  55. package/lib/cjs/curve/LineString3d.d.ts +3 -2
  56. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  57. package/lib/cjs/curve/LineString3d.js +1 -0
  58. package/lib/cjs/curve/LineString3d.js.map +1 -1
  59. package/lib/cjs/curve/PointString3d.d.ts +2 -1
  60. package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
  61. package/lib/cjs/curve/PointString3d.js.map +1 -1
  62. package/lib/cjs/curve/RegionOps.d.ts +5 -11
  63. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  64. package/lib/cjs/curve/RegionOps.js.map +1 -1
  65. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +15 -9
  66. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  67. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +68 -56
  68. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +14 -16
  70. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  71. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +51 -69
  72. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  74. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +3 -2
  75. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +2 -3
  77. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  78. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +4 -4
  80. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  81. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +38 -36
  82. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  83. package/lib/cjs/geometry3d/Angle.d.ts +0 -1
  84. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  85. package/lib/cjs/geometry3d/Angle.js +0 -1
  86. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  87. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +21 -5
  88. package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  89. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +71 -45
  90. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  91. package/lib/cjs/geometry3d/Matrix3d.d.ts +20 -13
  92. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  93. package/lib/cjs/geometry3d/Matrix3d.js +28 -21
  94. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  95. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +11 -2
  96. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  97. package/lib/cjs/geometry3d/Point3dVector3d.js +16 -5
  98. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  99. package/lib/cjs/geometry3d/PointHelpers.d.ts +58 -20
  100. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  101. package/lib/cjs/geometry3d/PointHelpers.js +213 -62
  102. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  103. package/lib/cjs/geometry3d/Segment1d.d.ts +5 -1
  104. package/lib/cjs/geometry3d/Segment1d.d.ts.map +1 -1
  105. package/lib/cjs/geometry3d/Segment1d.js +11 -7
  106. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  107. package/lib/cjs/geometry3d/Transform.d.ts +4 -5
  108. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  109. package/lib/cjs/geometry3d/Transform.js +4 -5
  110. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  111. package/lib/cjs/geometry4d/Point4d.d.ts +13 -0
  112. package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
  113. package/lib/cjs/geometry4d/Point4d.js +21 -0
  114. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  115. package/lib/cjs/numerics/BezierPolynomials.d.ts +88 -64
  116. package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
  117. package/lib/cjs/numerics/BezierPolynomials.js +92 -73
  118. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  119. package/lib/cjs/numerics/Newton.d.ts +143 -61
  120. package/lib/cjs/numerics/Newton.d.ts.map +1 -1
  121. package/lib/cjs/numerics/Newton.js +233 -66
  122. package/lib/cjs/numerics/Newton.js.map +1 -1
  123. package/lib/cjs/numerics/PascalCoefficients.d.ts +8 -12
  124. package/lib/cjs/numerics/PascalCoefficients.d.ts.map +1 -1
  125. package/lib/cjs/numerics/PascalCoefficients.js +10 -12
  126. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  127. package/lib/cjs/numerics/Polynomials.d.ts +6 -10
  128. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  129. package/lib/cjs/numerics/Polynomials.js +6 -10
  130. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  131. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +3 -0
  132. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  133. package/lib/cjs/polyface/PolyfaceBuilder.js +13 -2
  134. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  135. package/lib/cjs/polyface/PolyfaceData.d.ts +1 -1
  136. package/lib/cjs/polyface/PolyfaceData.js +1 -1
  137. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  138. package/lib/cjs/polyface/PolyfaceQuery.d.ts +38 -11
  139. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  140. package/lib/cjs/polyface/PolyfaceQuery.js +93 -16
  141. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  142. package/lib/cjs/serialization/BGFBReader.d.ts +10 -10
  143. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  144. package/lib/cjs/serialization/BGFBReader.js +69 -42
  145. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  146. package/lib/cjs/serialization/BGFBWriter.d.ts +8 -8
  147. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  148. package/lib/cjs/serialization/BGFBWriter.js +80 -55
  149. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  150. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  151. package/lib/cjs/serialization/GeometrySamples.js +6 -8
  152. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  153. package/lib/cjs/serialization/IModelJsonSchema.d.ts +8 -14
  154. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  155. package/lib/cjs/serialization/IModelJsonSchema.js +85 -259
  156. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  157. package/lib/cjs/serialization/SerializationHelpers.d.ts +109 -0
  158. package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -0
  159. package/lib/cjs/serialization/SerializationHelpers.js +591 -0
  160. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -0
  161. package/lib/cjs/topology/Graph.d.ts +399 -366
  162. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  163. package/lib/cjs/topology/Graph.js +531 -464
  164. package/lib/cjs/topology/Graph.js.map +1 -1
  165. package/lib/cjs/topology/MaskManager.d.ts +8 -9
  166. package/lib/cjs/topology/MaskManager.d.ts.map +1 -1
  167. package/lib/cjs/topology/MaskManager.js +11 -12
  168. package/lib/cjs/topology/MaskManager.js.map +1 -1
  169. package/lib/esm/Geometry.d.ts +14 -2
  170. package/lib/esm/Geometry.d.ts.map +1 -1
  171. package/lib/esm/Geometry.js +20 -9
  172. package/lib/esm/Geometry.js.map +1 -1
  173. package/lib/esm/bspline/BSpline1dNd.d.ts +12 -2
  174. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  175. package/lib/esm/bspline/BSpline1dNd.js +27 -17
  176. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  177. package/lib/esm/bspline/BSplineCurve.d.ts +30 -16
  178. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  179. package/lib/esm/bspline/BSplineCurve.js +68 -44
  180. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  181. package/lib/esm/bspline/BSplineCurve3dH.d.ts +27 -20
  182. package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -1
  183. package/lib/esm/bspline/BSplineCurve3dH.js +137 -88
  184. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  185. package/lib/esm/bspline/BSplineSurface.d.ts +138 -74
  186. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  187. package/lib/esm/bspline/BSplineSurface.js +242 -119
  188. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  189. package/lib/esm/bspline/Bezier1dNd.d.ts +18 -4
  190. package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -1
  191. package/lib/esm/bspline/Bezier1dNd.js +19 -5
  192. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  193. package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -1
  194. package/lib/esm/bspline/BezierCurve3dH.js +2 -1
  195. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  196. package/lib/esm/bspline/KnotVector.d.ts +30 -33
  197. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  198. package/lib/esm/bspline/KnotVector.js +76 -69
  199. package/lib/esm/bspline/KnotVector.js.map +1 -1
  200. package/lib/esm/clipping/ClipUtils.d.ts +32 -5
  201. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  202. package/lib/esm/clipping/ClipUtils.js +92 -11
  203. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  204. package/lib/esm/core-geometry.d.ts +0 -2
  205. package/lib/esm/core-geometry.d.ts.map +1 -1
  206. package/lib/esm/core-geometry.js +0 -2
  207. package/lib/esm/core-geometry.js.map +1 -1
  208. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  209. package/lib/esm/curve/Arc3d.js +5 -5
  210. package/lib/esm/curve/Arc3d.js.map +1 -1
  211. package/lib/esm/curve/CurveLocationDetail.d.ts +1 -4
  212. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  213. package/lib/esm/curve/CurveLocationDetail.js +4 -10
  214. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  215. package/lib/esm/curve/CurveOps.d.ts +4 -5
  216. package/lib/esm/curve/CurveOps.d.ts.map +1 -1
  217. package/lib/esm/curve/CurveOps.js +1 -1
  218. package/lib/esm/curve/CurveOps.js.map +1 -1
  219. package/lib/esm/curve/CurveTypes.d.ts +14 -2
  220. package/lib/esm/curve/CurveTypes.d.ts.map +1 -1
  221. package/lib/esm/curve/CurveTypes.js.map +1 -1
  222. package/lib/esm/curve/LineString3d.d.ts +3 -2
  223. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  224. package/lib/esm/curve/LineString3d.js +1 -0
  225. package/lib/esm/curve/LineString3d.js.map +1 -1
  226. package/lib/esm/curve/PointString3d.d.ts +2 -1
  227. package/lib/esm/curve/PointString3d.d.ts.map +1 -1
  228. package/lib/esm/curve/PointString3d.js.map +1 -1
  229. package/lib/esm/curve/RegionOps.d.ts +5 -11
  230. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  231. package/lib/esm/curve/RegionOps.js.map +1 -1
  232. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +15 -9
  233. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
  234. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +69 -57
  235. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  236. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +14 -16
  237. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
  238. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +51 -68
  239. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  240. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
  241. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +3 -2
  242. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  243. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +2 -3
  244. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  245. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  246. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +4 -4
  247. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  248. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +38 -36
  249. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  250. package/lib/esm/geometry3d/Angle.d.ts +0 -1
  251. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  252. package/lib/esm/geometry3d/Angle.js +0 -1
  253. package/lib/esm/geometry3d/Angle.js.map +1 -1
  254. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +21 -5
  255. package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
  256. package/lib/esm/geometry3d/CoincidentGeometryOps.js +71 -45
  257. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  258. package/lib/esm/geometry3d/Matrix3d.d.ts +20 -13
  259. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  260. package/lib/esm/geometry3d/Matrix3d.js +28 -21
  261. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  262. package/lib/esm/geometry3d/Point3dVector3d.d.ts +11 -2
  263. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  264. package/lib/esm/geometry3d/Point3dVector3d.js +16 -5
  265. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  266. package/lib/esm/geometry3d/PointHelpers.d.ts +58 -20
  267. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  268. package/lib/esm/geometry3d/PointHelpers.js +213 -62
  269. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  270. package/lib/esm/geometry3d/Segment1d.d.ts +5 -1
  271. package/lib/esm/geometry3d/Segment1d.d.ts.map +1 -1
  272. package/lib/esm/geometry3d/Segment1d.js +11 -7
  273. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  274. package/lib/esm/geometry3d/Transform.d.ts +4 -5
  275. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  276. package/lib/esm/geometry3d/Transform.js +4 -5
  277. package/lib/esm/geometry3d/Transform.js.map +1 -1
  278. package/lib/esm/geometry4d/Point4d.d.ts +13 -0
  279. package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
  280. package/lib/esm/geometry4d/Point4d.js +21 -0
  281. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  282. package/lib/esm/numerics/BezierPolynomials.d.ts +88 -64
  283. package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
  284. package/lib/esm/numerics/BezierPolynomials.js +92 -73
  285. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  286. package/lib/esm/numerics/Newton.d.ts +143 -61
  287. package/lib/esm/numerics/Newton.d.ts.map +1 -1
  288. package/lib/esm/numerics/Newton.js +229 -65
  289. package/lib/esm/numerics/Newton.js.map +1 -1
  290. package/lib/esm/numerics/PascalCoefficients.d.ts +8 -12
  291. package/lib/esm/numerics/PascalCoefficients.d.ts.map +1 -1
  292. package/lib/esm/numerics/PascalCoefficients.js +10 -12
  293. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  294. package/lib/esm/numerics/Polynomials.d.ts +6 -10
  295. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  296. package/lib/esm/numerics/Polynomials.js +6 -10
  297. package/lib/esm/numerics/Polynomials.js.map +1 -1
  298. package/lib/esm/polyface/PolyfaceBuilder.d.ts +3 -0
  299. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  300. package/lib/esm/polyface/PolyfaceBuilder.js +13 -2
  301. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  302. package/lib/esm/polyface/PolyfaceData.d.ts +1 -1
  303. package/lib/esm/polyface/PolyfaceData.js +1 -1
  304. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  305. package/lib/esm/polyface/PolyfaceQuery.d.ts +38 -11
  306. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  307. package/lib/esm/polyface/PolyfaceQuery.js +93 -16
  308. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  309. package/lib/esm/serialization/BGFBReader.d.ts +10 -10
  310. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  311. package/lib/esm/serialization/BGFBReader.js +69 -42
  312. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  313. package/lib/esm/serialization/BGFBWriter.d.ts +8 -8
  314. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  315. package/lib/esm/serialization/BGFBWriter.js +80 -55
  316. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  317. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  318. package/lib/esm/serialization/GeometrySamples.js +7 -9
  319. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  320. package/lib/esm/serialization/IModelJsonSchema.d.ts +8 -14
  321. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  322. package/lib/esm/serialization/IModelJsonSchema.js +86 -260
  323. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  324. package/lib/esm/serialization/SerializationHelpers.d.ts +109 -0
  325. package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -0
  326. package/lib/esm/serialization/SerializationHelpers.js +588 -0
  327. package/lib/esm/serialization/SerializationHelpers.js.map +1 -0
  328. package/lib/esm/topology/Graph.d.ts +399 -366
  329. package/lib/esm/topology/Graph.d.ts.map +1 -1
  330. package/lib/esm/topology/Graph.js +531 -464
  331. package/lib/esm/topology/Graph.js.map +1 -1
  332. package/lib/esm/topology/MaskManager.d.ts +8 -9
  333. package/lib/esm/topology/MaskManager.d.ts.map +1 -1
  334. package/lib/esm/topology/MaskManager.js +11 -12
  335. package/lib/esm/topology/MaskManager.js.map +1 -1
  336. package/package.json +3 -4
@@ -51,6 +51,8 @@ export declare namespace IModelJson {
51
51
  point?: XYZProps;
52
52
  /** `{bsurf:...}` */
53
53
  bsurf?: BSplineSurfaceProps;
54
+ /** `{pointString:...}` */
55
+ pointString?: XYZProps[];
54
56
  }
55
57
  /**
56
58
  * Property rules for json objects that can be deserialized to various CurvePrimitives
@@ -530,22 +532,11 @@ export declare namespace IModelJson {
530
532
  static parseCoordinate(data?: any): CoordinateXYZ | undefined;
531
533
  /** Parse TransitionSpiral content (right side) to TransitionSpiral3d. */
532
534
  static parseTransitionSpiral(data?: TransitionSpiralProps): TransitionSpiral3d | undefined;
533
- /**
534
- * Special closed case if the input was forced to bezier . . . (e.g. arc)
535
- * (b-1) 0 0 0 a . . . b 111 (a+1)
536
- * with {order} clamp-like values .. no pole duplication needed, but throw out 2 knots at each end . ..
537
- * @param numPoles number of poles
538
- * @param knots knot vector
539
- * @param order curve order
540
- * @param newKnots array to receive new knots.
541
- * @returns true if this is a closed-but-clamped case and corrected knots are filled in.
542
- */
543
- private static getCorrectedKnotsForClosedClamped;
544
- /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */
535
+ /** Parse `bcurve` content to BSplineCurve3d or BSplineCurve3dH object. */
545
536
  static parseBcurve(data?: any): BSplineCurve3d | BSplineCurve3dH | undefined;
546
- /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */
537
+ /** Parse `bcurve` content to an InterpolationCurve3d object. */
547
538
  static parseInterpolationCurve(data?: any): InterpolationCurve3d | undefined;
548
- /** Parse `bcurve` content (right side)to an Akima curve object. */
539
+ /** Parse `bcurve` content to an Akima curve object. */
549
540
  static parseAkimaCurve3d(data?: any): AkimaCurve3d | undefined;
550
541
  /** Parse array of json objects to array of instances. */
551
542
  static parseArray(data?: any): any[] | undefined;
@@ -651,6 +642,7 @@ export declare namespace IModelJson {
651
642
  private handlePolyfaceAuxData;
652
643
  /** Convert strongly typed instance to tagged json */
653
644
  handleIndexedPolyface(pf: IndexedPolyface): any;
645
+ private handleBSplineCurve;
654
646
  /** Convert strongly typed instance to tagged json */
655
647
  handleBSplineCurve3d(curve: BSplineCurve3d): any;
656
648
  /** Convert strongly typed instance to tagged json */
@@ -666,6 +658,8 @@ export declare namespace IModelJson {
666
658
  /** Convert strongly typed instance to tagged json */
667
659
  handleBezierCurve3dH(curve: BezierCurve3dH): any;
668
660
  /** Convert strongly typed instance to tagged json */
661
+ private handleBSplineSurface;
662
+ /** Convert strongly typed instance to tagged json */
669
663
  handleBSplineSurface3dH(surface: BSplineSurface3dH): any;
670
664
  /** Convert an array of strongly typed instances to an array of tagged json */
671
665
  emitArray(data: object[]): any;
@@ -1 +1 @@
1
- {"version":3,"file":"IModelJsonSchema.d.ts","sourceRoot":"","sources":["../../../src/serialization/IModelJsonSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelJsonSchema.d.ts","sourceRoot":"","sources":["../../../src/serialization/IModelJsonSchema.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,6 @@ const Ray3d_1 = require("../geometry3d/Ray3d");
39
39
  const Segment1d_1 = require("../geometry3d/Segment1d");
40
40
  const Transform_1 = require("../geometry3d/Transform");
41
41
  const YawPitchRollAngles_1 = require("../geometry3d/YawPitchRollAngles");
42
- const Point4d_1 = require("../geometry4d/Point4d");
43
42
  const AuxData_1 = require("../polyface/AuxData");
44
43
  const Polyface_1 = require("../polyface/Polyface");
45
44
  const TaggedNumericData_1 = require("../polyface/TaggedNumericData");
@@ -50,6 +49,7 @@ const RotationalSweep_1 = require("../solid/RotationalSweep");
50
49
  const RuledSweep_1 = require("../solid/RuledSweep");
51
50
  const Sphere_1 = require("../solid/Sphere");
52
51
  const TorusPipe_1 = require("../solid/TorusPipe");
52
+ const SerializationHelpers_1 = require("./SerializationHelpers");
53
53
  // cspell:word bagof
54
54
  /**
55
55
  * `ImodelJson` namespace has classes for serializing and deserialization json objects
@@ -292,111 +292,38 @@ var IModelJson;
292
292
  }
293
293
  return undefined;
294
294
  }
295
- /**
296
- * Special closed case if the input was forced to bezier . . . (e.g. arc)
297
- * (b-1) 0 0 0 a . . . b 111 (a+1)
298
- * with {order} clamp-like values .. no pole duplication needed, but throw out 2 knots at each end . ..
299
- * @param numPoles number of poles
300
- * @param knots knot vector
301
- * @param order curve order
302
- * @param newKnots array to receive new knots.
303
- * @returns true if this is a closed-but-clamped case and corrected knots are filled in.
304
- */
305
- static getCorrectedKnotsForClosedClamped(numPoles, knots, order, newKnots) {
306
- const numKnots = knots.length;
307
- if (numPoles + 2 * order - 1 === numKnots
308
- && knots[0] < knots[1]
309
- && knots[numKnots - 2] < knots[numKnots - 1]) {
310
- const a0 = knots[1];
311
- const a1 = knots[numKnots - 2];
312
- for (let i = 2; i <= order; i++) {
313
- if (knots[i] !== a0)
314
- return false;
315
- if (knots[numKnots - 1 - i] !== a1)
316
- return false;
317
- }
318
- // copy only the "minimal" set - without the typical extra knots from microstation and psd.
319
- for (let i = 2; i + 2 < numKnots; i++)
320
- newKnots.push(knots[i]);
321
- return true;
322
- }
323
- return false;
324
- }
325
- /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */
295
+ /** Parse `bcurve` content to BSplineCurve3d or BSplineCurve3dH object. */
326
296
  static parseBcurve(data) {
327
- if (data === undefined)
328
- return undefined;
329
- if (Array.isArray(data.points) && Array.isArray(data.knots) && Number.isFinite(data.order) && data.closed !== undefined) {
330
- if (data.points[0].length === 4) {
331
- const hPoles = [];
332
- for (const p of data.points)
333
- hPoles.push(Point4d_1.Point4d.fromJSON(p));
334
- const knots = [];
335
- let wrapMode = KnotVector_1.BSplineWrapMode.None;
336
- if (data.closed && this.getCorrectedKnotsForClosedClamped(data.points.length, data.knots, data.order, knots)) {
337
- // leave the poles alone -- knots are fixed.
338
- wrapMode = KnotVector_1.BSplineWrapMode.OpenByRemovingKnots;
339
- }
340
- else if (data.closed) {
341
- for (const knot of data.knots)
342
- knots.push(knot);
343
- for (let i = 0; i + 1 < data.order; i++) {
344
- hPoles.push(hPoles[i].clone());
345
- }
346
- wrapMode = KnotVector_1.BSplineWrapMode.OpenByAddingControlPoints;
347
- }
348
- else {
349
- // simple case .. just copy
350
- for (const knot of data.knots)
351
- knots.push(knot);
352
- }
353
- const newCurve = BSplineCurve3dH_1.BSplineCurve3dH.create(hPoles, knots, data.order);
354
- if (newCurve) {
355
- if (data.closed === true)
356
- newCurve.setWrappable(wrapMode);
357
- return newCurve;
358
- }
359
- }
360
- else if (data.points[0].length === 3 || data.points[0].length === 2) {
361
- const poles = [];
362
- for (const p of data.points)
363
- poles.push(Point3dVector3d_1.Point3d.fromJSON(p));
364
- const knots = [];
365
- let wrapMode = KnotVector_1.BSplineWrapMode.None;
366
- if (data.closed && this.getCorrectedKnotsForClosedClamped(data.points.length, data.knots, data.order, knots)) {
367
- wrapMode = KnotVector_1.BSplineWrapMode.OpenByRemovingKnots;
368
- // leave the poles alone -- knots are fixed.
369
- }
370
- else if (data.closed) {
371
- for (const knot of data.knots)
372
- knots.push(knot);
373
- for (let i = 0; i + 1 < data.order; i++) {
374
- poles.push(poles[i].clone());
375
- }
376
- wrapMode = KnotVector_1.BSplineWrapMode.OpenByAddingControlPoints;
377
- }
378
- else {
379
- // simple case .. just copy
380
- for (const knot of data.knots)
381
- knots.push(knot);
382
- }
383
- const newCurve = BSplineCurve_1.BSplineCurve3d.create(poles, knots, data.order);
384
- if (newCurve) {
385
- if (data.closed === true)
386
- newCurve.setWrappable(wrapMode);
387
- return newCurve;
297
+ let newCurve;
298
+ let dim;
299
+ if (data !== undefined
300
+ && data.hasOwnProperty("knots") && Array.isArray(data.knots)
301
+ && data.hasOwnProperty("order") && Number.isFinite(data.order)
302
+ && data.hasOwnProperty("points") && Array.isArray(data.points) && Array.isArray(data.points[0])
303
+ && (dim = data.points[0].length) >= 3 && dim <= 4) {
304
+ const myData = SerializationHelpers_1.SerializationHelpers.createBSplineCurveData(data.points, dim, data.knots, data.points.length, data.order);
305
+ if (data.hasOwnProperty("closed") && true === data.closed)
306
+ myData.params.closed = true;
307
+ if (SerializationHelpers_1.SerializationHelpers.Import.prepareBSplineCurveData(myData)) {
308
+ if (dim === 3)
309
+ newCurve = BSplineCurve_1.BSplineCurve3d.create(myData.poles, myData.params.knots, myData.params.order);
310
+ else
311
+ newCurve = BSplineCurve3dH_1.BSplineCurve3dH.create(myData.poles, myData.params.knots, myData.params.order);
312
+ if (undefined !== newCurve) {
313
+ if (undefined !== myData.params.wrapMode)
314
+ newCurve.setWrappable(myData.params.wrapMode);
388
315
  }
389
316
  }
390
317
  }
391
- return undefined;
318
+ return newCurve;
392
319
  }
393
- /** Parse `bcurve` content (right side)to BSplineCurve3d or BSplineCurve3dH object. */
320
+ /** Parse `bcurve` content to an InterpolationCurve3d object. */
394
321
  static parseInterpolationCurve(data) {
395
322
  if (data === undefined)
396
323
  return undefined;
397
324
  return InterpolationCurve3d_1.InterpolationCurve3d.create(data);
398
325
  }
399
- /** Parse `bcurve` content (right side)to an Akima curve object. */
326
+ /** Parse `bcurve` content to an Akima curve object. */
400
327
  static parseAkimaCurve3d(data) {
401
328
  if (data === undefined)
402
329
  return undefined;
@@ -546,26 +473,34 @@ var IModelJson;
546
473
  }
547
474
  /** Parse content of `bsurf` to BSplineSurface3d or BSplineSurface3dH */
548
475
  static parseBsurf(data) {
549
- if (data.hasOwnProperty("uKnots") && Array.isArray(data.uKnots)
476
+ let newSurface;
477
+ let dim;
478
+ if (data !== undefined
479
+ && data.hasOwnProperty("uKnots") && Array.isArray(data.uKnots)
550
480
  && data.hasOwnProperty("vKnots") && Array.isArray(data.vKnots)
551
481
  && data.hasOwnProperty("orderU") && Number.isFinite(data.orderU)
552
482
  && data.hasOwnProperty("orderV") && Number.isFinite(data.orderV)
553
- && data.hasOwnProperty("points") && Array.isArray(data.points)) {
554
- const orderU = data.orderU;
555
- const orderV = data.orderV;
556
- if (Array.isArray(data.points[0]) && Array.isArray(data.points[0][0])) {
557
- const d = data.points[0][0].length;
558
- /** xyz surface (no weights) */
559
- if (d === 3) {
560
- return BSplineSurface_1.BSplineSurface3d.createGrid(data.points, orderU, data.uKnots, orderV, data.vKnots);
561
- }
562
- /** xyzw surface (weights already applied) */
563
- if (d === 4) {
564
- return BSplineSurface_1.BSplineSurface3dH.createGrid(data.points, BSplineSurface_1.WeightStyle.WeightsAlreadyAppliedToCoordinates, orderU, data.uKnots, orderV, data.vKnots);
483
+ && data.hasOwnProperty("points") && Array.isArray(data.points) && Array.isArray(data.points[0]) && Array.isArray(data.points[0][0])
484
+ && (dim = data.points[0][0].length) >= 3 && dim <= 4) {
485
+ const myData = SerializationHelpers_1.SerializationHelpers.createBSplineSurfaceData(data.points, dim, data.uKnots, data.points[0].length, data.orderU, data.vKnots, data.points.length, data.orderV);
486
+ if (data.hasOwnProperty("closedU") && true === data.closedU)
487
+ myData.uParams.closed = true;
488
+ if (data.hasOwnProperty("closedV") && true === data.closedV)
489
+ myData.vParams.closed = true;
490
+ if (SerializationHelpers_1.SerializationHelpers.Import.prepareBSplineSurfaceData(myData, { jsonPoles: true })) {
491
+ if (dim === 3)
492
+ newSurface = BSplineSurface_1.BSplineSurface3d.createGrid(myData.poles, myData.uParams.order, myData.uParams.knots, myData.vParams.order, myData.vParams.knots);
493
+ else
494
+ newSurface = BSplineSurface_1.BSplineSurface3dH.createGrid(myData.poles, BSplineSurface_1.WeightStyle.WeightsAlreadyAppliedToCoordinates, myData.uParams.order, myData.uParams.knots, myData.vParams.order, myData.vParams.knots);
495
+ if (undefined !== newSurface) {
496
+ if (undefined !== myData.uParams.wrapMode)
497
+ newSurface.setWrappable(BSplineSurface_1.UVSelect.uDirection, myData.uParams.wrapMode);
498
+ if (undefined !== myData.vParams.wrapMode)
499
+ newSurface.setWrappable(BSplineSurface_1.UVSelect.vDirection, myData.vParams.wrapMode);
565
500
  }
566
501
  }
567
502
  }
568
- return undefined;
503
+ return newSurface;
569
504
  }
570
505
  /** Parse `cone` contents to `Cone` instance */
571
506
  static parseConeProps(json) {
@@ -1294,71 +1229,25 @@ var IModelJson;
1294
1229
  contents.tags = taggedNumericData;
1295
1230
  return { indexedMesh: contents };
1296
1231
  }
1232
+ handleBSplineCurve(curve) {
1233
+ const data = SerializationHelpers_1.SerializationHelpers.createBSplineCurveData(curve.polesRef, curve.poleDimension, curve.knotsRef, curve.numPoles, curve.order);
1234
+ const wrapMode = curve.getWrappable();
1235
+ if (KnotVector_1.BSplineWrapMode.None !== wrapMode)
1236
+ data.params.wrapMode = wrapMode;
1237
+ if (!SerializationHelpers_1.SerializationHelpers.Export.prepareBSplineCurveData(data, { jsonPoles: true, jsonKnots: true }))
1238
+ return undefined;
1239
+ return {
1240
+ bcurve: {
1241
+ points: data.poles,
1242
+ knots: data.params.knots,
1243
+ order: data.params.order,
1244
+ closed: data.params.closed ? true : undefined,
1245
+ },
1246
+ };
1247
+ }
1297
1248
  /** Convert strongly typed instance to tagged json */
1298
1249
  handleBSplineCurve3d(curve) {
1299
- // ASSUME -- if the curve originated "closed" the knot and pole replication are unchanged,
1300
- // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.
1301
- const wrapMode = curve.isClosable;
1302
- if (wrapMode === KnotVector_1.BSplineWrapMode.OpenByAddingControlPoints) {
1303
- const knots = curve.copyKnots(true);
1304
- const poles = curve.copyPoints();
1305
- const degree = curve.degree;
1306
- for (let i = 0; i < degree; i++)
1307
- poles.pop();
1308
- // knots have replicated first and last. Change the values to be periodic.
1309
- const leftIndex = degree;
1310
- const rightIndex = knots.length - degree - 1;
1311
- const knotPeriod = knots[rightIndex] - knots[leftIndex];
1312
- knots[0] = knots[rightIndex - degree] - knotPeriod;
1313
- knots[knots.length - 1] = knots[leftIndex + degree] + knotPeriod;
1314
- return {
1315
- bcurve: {
1316
- points: poles,
1317
- knots,
1318
- closed: true,
1319
- order: curve.order,
1320
- },
1321
- };
1322
- }
1323
- else if (curve.isClosable === KnotVector_1.BSplineWrapMode.OpenByRemovingKnots) {
1324
- // special case to re-close the case that originated as : a a0 a0 .. a0 knot0 knot1 knot2 ... b1 b1 .. b1 b
1325
- // with (order) copies of a0 and b1 (usually 0 and 1)
1326
- // and a,b are related to the interior knots
1327
- // (This is the "bezier saturated arc")
1328
- const rawKnots = curve.copyKnots(false); // unchanged knots . . .
1329
- const poles = curve.copyPoints();
1330
- const degree = curve.degree;
1331
- const leftIndex = degree - 1;
1332
- const rightIndex = rawKnots.length - degree;
1333
- const leftKnot = rawKnots[leftIndex];
1334
- const rightKnot = rawKnots[rightIndex];
1335
- const knotPeriod = rightKnot - leftKnot;
1336
- const knots = [];
1337
- knots.push(rawKnots[rightIndex - 1] - knotPeriod);
1338
- knots.push(leftKnot);
1339
- for (const k of rawKnots)
1340
- knots.push(k);
1341
- knots.push(rightKnot);
1342
- knots.push(rawKnots[leftIndex + 1] + knotPeriod);
1343
- return {
1344
- bcurve: {
1345
- points: poles,
1346
- knots,
1347
- closed: true,
1348
- order: curve.order,
1349
- },
1350
- };
1351
- }
1352
- else {
1353
- return {
1354
- bcurve: {
1355
- points: curve.copyPoints(),
1356
- knots: curve.copyKnots(true),
1357
- closed: false,
1358
- order: curve.order,
1359
- },
1360
- };
1361
- }
1250
+ return this.handleBSplineCurve(curve);
1362
1251
  }
1363
1252
  /** Convert strongly typed instance to tagged json */
1364
1253
  handleInterpolationCurve3d(curve) {
@@ -1382,93 +1271,17 @@ var IModelJson;
1382
1271
  bcurve: {
1383
1272
  points: curve.copyPolesAsJsonArray(),
1384
1273
  knots,
1385
- closed: false,
1386
1274
  order: curve.order,
1387
1275
  },
1388
1276
  };
1389
1277
  }
1390
1278
  /** Convert strongly typed instance to tagged json */
1391
1279
  handleBSplineCurve3dH(curve) {
1392
- // ASSUME -- if the curve originated "closed" the knot and pole replication are unchanged,
1393
- // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.
1394
- if (curve.isClosable) {
1395
- const knots = curve.copyKnots(true);
1396
- const poles = curve.copyPoints();
1397
- const degree = curve.degree;
1398
- for (let i = 0; i < degree; i++)
1399
- poles.pop();
1400
- // knots have replicated first and last. Change the values to be periodic.
1401
- const leftIndex = degree;
1402
- const rightIndex = knots.length - degree - 1;
1403
- const knotPeriod = knots[rightIndex] - knots[leftIndex];
1404
- knots[0] = knots[rightIndex - degree] - knotPeriod;
1405
- knots[knots.length - 1] = knots[leftIndex + degree] + knotPeriod;
1406
- return {
1407
- bcurve: {
1408
- points: poles,
1409
- knots,
1410
- closed: true,
1411
- order: curve.order,
1412
- },
1413
- };
1414
- }
1415
- else {
1416
- return {
1417
- bcurve: {
1418
- points: curve.copyPoints(),
1419
- knots: curve.copyKnots(true),
1420
- closed: false,
1421
- order: curve.order,
1422
- },
1423
- };
1424
- }
1280
+ return this.handleBSplineCurve(curve);
1425
1281
  }
1426
1282
  /** Convert strongly typed instance to tagged json */
1427
1283
  handleBSplineSurface3d(surface) {
1428
- // ASSUME -- if the curve originated "closed" the knot and pole replication are unchanged,
1429
- // so first and last knots can be re-assigned, and last (degree - 1) poles can be deleted.
1430
- const periodicU = surface.isClosable(0);
1431
- const periodicV = surface.isClosable(1);
1432
- if (periodicU || periodicV) {
1433
- let numUPoles = surface.numPolesUV(0);
1434
- let numVPoles = surface.numPolesUV(1);
1435
- if (periodicU)
1436
- numUPoles -= surface.degreeUV(0);
1437
- if (periodicV)
1438
- numVPoles -= surface.degreeUV(1);
1439
- const xyz = Point3dVector3d_1.Point3d.create();
1440
- const grid = [];
1441
- for (let j = 0; j < numVPoles; j++) {
1442
- const stringer = [];
1443
- for (let i = 0; i < numUPoles; i++) {
1444
- surface.getPoint3dPole(i, j, xyz);
1445
- stringer.push([xyz.x, xyz.y, xyz.z]);
1446
- }
1447
- grid.push(stringer);
1448
- }
1449
- return {
1450
- bsurf: {
1451
- points: grid,
1452
- uKnots: surface.copyKnots(0, true),
1453
- vKnots: surface.copyKnots(1, true),
1454
- orderU: surface.orderUV(0),
1455
- orderV: surface.orderUV(1),
1456
- closedU: periodicU,
1457
- closedV: periodicV,
1458
- },
1459
- };
1460
- }
1461
- else {
1462
- return {
1463
- bsurf: {
1464
- points: surface.getPointArray(false),
1465
- uKnots: surface.copyKnots(0, true),
1466
- vKnots: surface.copyKnots(1, true),
1467
- orderU: surface.orderUV(0),
1468
- orderV: surface.orderUV(1),
1469
- },
1470
- };
1471
- }
1284
+ return this.handleBSplineSurface(surface);
1472
1285
  }
1473
1286
  /** Convert strongly typed instance to tagged json */
1474
1287
  handleBezierCurve3dH(curve) {
@@ -1482,24 +1295,37 @@ var IModelJson;
1482
1295
  bcurve: {
1483
1296
  points: curve.copyPolesAsJsonArray(),
1484
1297
  knots,
1485
- closed: false,
1486
1298
  order: curve.order,
1487
1299
  },
1488
1300
  };
1489
1301
  }
1490
1302
  /** Convert strongly typed instance to tagged json */
1491
- handleBSplineSurface3dH(surface) {
1492
- const data = surface.getPointGridJSON();
1303
+ handleBSplineSurface(surface) {
1304
+ const data = SerializationHelpers_1.SerializationHelpers.createBSplineSurfaceData(surface.coffs, surface.poleDimension, surface.knots[BSplineSurface_1.UVSelect.uDirection].knots, surface.numPolesUV(BSplineSurface_1.UVSelect.uDirection), surface.orderUV(BSplineSurface_1.UVSelect.uDirection), surface.knots[BSplineSurface_1.UVSelect.vDirection].knots, surface.numPolesUV(BSplineSurface_1.UVSelect.vDirection), surface.orderUV(BSplineSurface_1.UVSelect.vDirection));
1305
+ const wrapModeU = surface.getWrappable(BSplineSurface_1.UVSelect.uDirection);
1306
+ const wrapModeV = surface.getWrappable(BSplineSurface_1.UVSelect.vDirection);
1307
+ if (KnotVector_1.BSplineWrapMode.None !== wrapModeU)
1308
+ data.uParams.wrapMode = wrapModeU;
1309
+ if (KnotVector_1.BSplineWrapMode.None !== wrapModeV)
1310
+ data.vParams.wrapMode = wrapModeV;
1311
+ if (!SerializationHelpers_1.SerializationHelpers.Export.prepareBSplineSurfaceData(data, { jsonPoles: true, jsonKnots: true }))
1312
+ return undefined;
1493
1313
  return {
1494
1314
  bsurf: {
1495
- points: data.points,
1496
- uKnots: surface.copyKnots(0, true),
1497
- vKnots: surface.copyKnots(1, true),
1498
- orderU: surface.orderUV(0),
1499
- orderV: surface.orderUV(1),
1315
+ points: data.poles,
1316
+ uKnots: data.uParams.knots,
1317
+ vKnots: data.vParams.knots,
1318
+ orderU: data.uParams.order,
1319
+ orderV: data.vParams.order,
1320
+ closedU: data.uParams.closed ? true : undefined,
1321
+ closedV: data.vParams.closed ? true : undefined,
1500
1322
  },
1501
1323
  };
1502
1324
  }
1325
+ /** Convert strongly typed instance to tagged json */
1326
+ handleBSplineSurface3dH(surface) {
1327
+ return this.handleBSplineSurface(surface);
1328
+ }
1503
1329
  /** Convert an array of strongly typed instances to an array of tagged json */
1504
1330
  emitArray(data) {
1505
1331
  const members = [];