@itwin/core-geometry 3.1.0-dev.8 → 3.2.0-dev.12

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 (286) hide show
  1. package/CHANGELOG.md +48 -3
  2. package/lib/cjs/bspline/AkimaCurve3d.d.ts +2 -8
  3. package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -1
  4. package/lib/cjs/bspline/AkimaCurve3d.js +2 -17
  5. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  6. package/lib/cjs/bspline/BSpline1dNd.d.ts +11 -6
  7. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSpline1dNd.js +64 -6
  9. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurve.d.ts +18 -14
  11. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSplineCurve.js +54 -32
  13. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve3dH.d.ts +0 -2
  15. package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve3dH.js +0 -6
  17. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  19. package/lib/cjs/bspline/BSplineCurveOps.js +4 -6
  20. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  21. package/lib/cjs/bspline/Bezier1dNd.d.ts +8 -11
  22. package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -1
  23. package/lib/cjs/bspline/Bezier1dNd.js +13 -14
  24. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  25. package/lib/cjs/bspline/BezierCurve3d.d.ts +0 -6
  26. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3d.js +0 -14
  28. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  29. package/lib/cjs/bspline/BezierCurve3dH.d.ts +0 -4
  30. package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -1
  31. package/lib/cjs/bspline/BezierCurve3dH.js +0 -8
  32. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  33. package/lib/cjs/bspline/BezierCurveBase.d.ts +17 -0
  34. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  35. package/lib/cjs/bspline/BezierCurveBase.js +31 -1
  36. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  37. package/lib/cjs/bspline/InterpolationCurve3d.d.ts +2 -8
  38. package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -1
  39. package/lib/cjs/bspline/InterpolationCurve3d.js +2 -17
  40. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  41. package/lib/cjs/bspline/KnotVector.d.ts +24 -9
  42. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  43. package/lib/cjs/bspline/KnotVector.js +86 -26
  44. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  45. package/lib/cjs/curve/Arc3d.d.ts +8 -2
  46. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  47. package/lib/cjs/curve/Arc3d.js +32 -2
  48. package/lib/cjs/curve/Arc3d.js.map +1 -1
  49. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -4
  50. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  51. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -9
  52. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  53. package/lib/cjs/curve/CurveCollection.d.ts +2 -2
  54. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  55. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  56. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  57. package/lib/cjs/curve/CurveCurveIntersectXY.js +5 -3
  58. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  59. package/lib/cjs/curve/CurveFactory.d.ts +7 -3
  60. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  61. package/lib/cjs/curve/CurveFactory.js +30 -15
  62. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  63. package/lib/cjs/curve/CurvePrimitive.d.ts +27 -9
  64. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  65. package/lib/cjs/curve/CurvePrimitive.js +18 -0
  66. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  67. package/lib/cjs/curve/LineSegment3d.d.ts +8 -2
  68. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  69. package/lib/cjs/curve/LineSegment3d.js +14 -0
  70. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  71. package/lib/cjs/curve/LineString3d.d.ts +11 -4
  72. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  73. package/lib/cjs/curve/LineString3d.js +72 -22
  74. package/lib/cjs/curve/LineString3d.js.map +1 -1
  75. package/lib/cjs/curve/ProxyCurve.d.ts +12 -4
  76. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  77. package/lib/cjs/curve/ProxyCurve.js +16 -2
  78. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  79. package/lib/cjs/curve/Query/CurveSplitContext.d.ts.map +1 -1
  80. package/lib/cjs/curve/Query/CurveSplitContext.js +1 -3
  81. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  82. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +11 -0
  83. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  84. package/lib/cjs/curve/Query/PlanarSubdivision.js +26 -17
  85. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  86. package/lib/cjs/curve/RegionOps.d.ts +15 -16
  87. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  88. package/lib/cjs/curve/RegionOps.js +14 -16
  89. package/lib/cjs/curve/RegionOps.js.map +1 -1
  90. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  91. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +3 -1
  92. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  93. package/lib/cjs/curve/StrokeOptions.d.ts +6 -0
  94. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  95. package/lib/cjs/curve/StrokeOptions.js +21 -0
  96. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  97. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  98. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.d.ts +2 -2
  99. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -1
  100. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.d.ts +36 -0
  102. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.d.ts.map +1 -0
  103. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +73 -0
  104. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -0
  105. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +48 -24
  106. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  107. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +113 -112
  108. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  109. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +0 -4
  110. package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  111. package/lib/cjs/curve/spiral/DirectSpiral3d.js +0 -15
  112. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  113. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +0 -4
  114. package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  115. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +33 -22
  116. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  117. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +16 -0
  118. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  119. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +29 -0
  120. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  121. package/lib/cjs/geometry3d/Matrix3d.d.ts +4 -4
  122. package/lib/cjs/geometry3d/Matrix3d.js +4 -4
  123. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  124. package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
  125. package/lib/cjs/geometry4d/Matrix4d.js +21 -8
  126. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  127. package/lib/cjs/numerics/ClusterableArray.d.ts +1 -1
  128. package/lib/cjs/numerics/ClusterableArray.d.ts.map +1 -1
  129. package/lib/cjs/numerics/ClusterableArray.js +2 -2
  130. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  131. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +15 -1
  132. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  133. package/lib/cjs/polyface/PolyfaceBuilder.js +17 -11
  134. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  135. package/lib/cjs/serialization/IModelJsonSchema.d.ts +4 -0
  136. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  137. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  138. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  139. package/lib/cjs/solid/SweepContour.js.map +1 -1
  140. package/lib/cjs/topology/Merging.d.ts +22 -3
  141. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  142. package/lib/cjs/topology/Merging.js +97 -1
  143. package/lib/cjs/topology/Merging.js.map +1 -1
  144. package/lib/esm/bspline/AkimaCurve3d.d.ts +2 -8
  145. package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -1
  146. package/lib/esm/bspline/AkimaCurve3d.js +2 -17
  147. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  148. package/lib/esm/bspline/BSpline1dNd.d.ts +11 -6
  149. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  150. package/lib/esm/bspline/BSpline1dNd.js +65 -7
  151. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  152. package/lib/esm/bspline/BSplineCurve.d.ts +18 -14
  153. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  154. package/lib/esm/bspline/BSplineCurve.js +54 -32
  155. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  156. package/lib/esm/bspline/BSplineCurve3dH.d.ts +0 -2
  157. package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -1
  158. package/lib/esm/bspline/BSplineCurve3dH.js +0 -6
  159. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  160. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  161. package/lib/esm/bspline/BSplineCurveOps.js +4 -6
  162. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  163. package/lib/esm/bspline/Bezier1dNd.d.ts +8 -11
  164. package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -1
  165. package/lib/esm/bspline/Bezier1dNd.js +13 -14
  166. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  167. package/lib/esm/bspline/BezierCurve3d.d.ts +0 -6
  168. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
  169. package/lib/esm/bspline/BezierCurve3d.js +0 -14
  170. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  171. package/lib/esm/bspline/BezierCurve3dH.d.ts +0 -4
  172. package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -1
  173. package/lib/esm/bspline/BezierCurve3dH.js +0 -8
  174. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  175. package/lib/esm/bspline/BezierCurveBase.d.ts +17 -0
  176. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  177. package/lib/esm/bspline/BezierCurveBase.js +31 -1
  178. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  179. package/lib/esm/bspline/InterpolationCurve3d.d.ts +2 -8
  180. package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -1
  181. package/lib/esm/bspline/InterpolationCurve3d.js +2 -17
  182. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  183. package/lib/esm/bspline/KnotVector.d.ts +24 -9
  184. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  185. package/lib/esm/bspline/KnotVector.js +86 -26
  186. package/lib/esm/bspline/KnotVector.js.map +1 -1
  187. package/lib/esm/curve/Arc3d.d.ts +8 -2
  188. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  189. package/lib/esm/curve/Arc3d.js +32 -2
  190. package/lib/esm/curve/Arc3d.js.map +1 -1
  191. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -4
  192. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  193. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -9
  194. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  195. package/lib/esm/curve/CurveCollection.d.ts +2 -2
  196. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  197. package/lib/esm/curve/CurveCollection.js.map +1 -1
  198. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  199. package/lib/esm/curve/CurveCurveIntersectXY.js +5 -3
  200. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  201. package/lib/esm/curve/CurveFactory.d.ts +7 -3
  202. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  203. package/lib/esm/curve/CurveFactory.js +30 -15
  204. package/lib/esm/curve/CurveFactory.js.map +1 -1
  205. package/lib/esm/curve/CurvePrimitive.d.ts +27 -9
  206. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  207. package/lib/esm/curve/CurvePrimitive.js +18 -0
  208. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  209. package/lib/esm/curve/LineSegment3d.d.ts +8 -2
  210. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  211. package/lib/esm/curve/LineSegment3d.js +15 -1
  212. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  213. package/lib/esm/curve/LineString3d.d.ts +11 -4
  214. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  215. package/lib/esm/curve/LineString3d.js +72 -22
  216. package/lib/esm/curve/LineString3d.js.map +1 -1
  217. package/lib/esm/curve/ProxyCurve.d.ts +12 -4
  218. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  219. package/lib/esm/curve/ProxyCurve.js +16 -2
  220. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  221. package/lib/esm/curve/Query/CurveSplitContext.d.ts.map +1 -1
  222. package/lib/esm/curve/Query/CurveSplitContext.js +1 -3
  223. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  224. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +11 -0
  225. package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
  226. package/lib/esm/curve/Query/PlanarSubdivision.js +26 -17
  227. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  228. package/lib/esm/curve/RegionOps.d.ts +15 -16
  229. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  230. package/lib/esm/curve/RegionOps.js +15 -17
  231. package/lib/esm/curve/RegionOps.js.map +1 -1
  232. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  233. package/lib/esm/curve/RegionOpsClassificationSweeps.js +3 -1
  234. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  235. package/lib/esm/curve/StrokeOptions.d.ts +6 -0
  236. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  237. package/lib/esm/curve/StrokeOptions.js +21 -0
  238. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  239. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  240. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts +2 -2
  241. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -1
  242. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  243. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.d.ts +36 -0
  244. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.d.ts.map +1 -0
  245. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +69 -0
  246. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -0
  247. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +48 -24
  248. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  249. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +111 -111
  250. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  251. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +0 -4
  252. package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -1
  253. package/lib/esm/curve/spiral/DirectSpiral3d.js +0 -15
  254. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  255. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +0 -4
  256. package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -1
  257. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +33 -22
  258. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  259. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +16 -0
  260. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  261. package/lib/esm/curve/spiral/TransitionSpiral3d.js +29 -0
  262. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  263. package/lib/esm/geometry3d/Matrix3d.d.ts +4 -4
  264. package/lib/esm/geometry3d/Matrix3d.js +4 -4
  265. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  266. package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
  267. package/lib/esm/geometry4d/Matrix4d.js +21 -8
  268. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  269. package/lib/esm/numerics/ClusterableArray.d.ts +1 -1
  270. package/lib/esm/numerics/ClusterableArray.d.ts.map +1 -1
  271. package/lib/esm/numerics/ClusterableArray.js +2 -2
  272. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  273. package/lib/esm/polyface/PolyfaceBuilder.d.ts +15 -1
  274. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  275. package/lib/esm/polyface/PolyfaceBuilder.js +17 -11
  276. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  277. package/lib/esm/serialization/IModelJsonSchema.d.ts +4 -0
  278. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  279. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  280. package/lib/esm/solid/RuledSweep.js.map +1 -1
  281. package/lib/esm/solid/SweepContour.js.map +1 -1
  282. package/lib/esm/topology/Merging.d.ts +22 -3
  283. package/lib/esm/topology/Merging.d.ts.map +1 -1
  284. package/lib/esm/topology/Merging.js +95 -0
  285. package/lib/esm/topology/Merging.js.map +1 -1
  286. package/package.json +7 -5
@@ -19,6 +19,7 @@ import { VariantCurveExtendParameter } from "./CurveExtendMode";
19
19
  import { CurveLocationDetail } from "./CurveLocationDetail";
20
20
  import { AnnounceNumberNumberCurvePrimitive, CurvePrimitive } from "./CurvePrimitive";
21
21
  import { GeometryQuery } from "./GeometryQuery";
22
+ import { OffsetOptions } from "./internalContexts/PolygonOffsetContext";
22
23
  import { LineSegment3d } from "./LineSegment3d";
23
24
  import { StrokeCountMap } from "./Query/StrokeCountMap";
24
25
  import { StrokeOptions } from "./StrokeOptions";
@@ -76,7 +77,7 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
76
77
  get pointIndices(): GrowableFloat64Array | undefined;
77
78
  private constructor();
78
79
  /** Clone this linestring and apply the transform to the clone points. */
79
- cloneTransformed(transform: Transform): CurvePrimitive;
80
+ cloneTransformed(transform: Transform): LineString3d;
80
81
  /** Create a linestring, using flex length arg list and any typical combination of points such as
81
82
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
82
83
  */
@@ -365,12 +366,12 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
365
366
  announceClipIntervals(clipper: Clipper, announce?: AnnounceNumberNumberCurvePrimitive): boolean;
366
367
  private static _indexPoint;
367
368
  private addResolvedPoint;
368
- /** Return (if possible) a LineString which is a portion of this curve.
369
- * * This implementation does NOT extrapolate the linestring -- fractions are capped at 0 and 1.
369
+ /** Return a LineString which is a portion of this curve.
370
+ * * Fractions outside [0,1] extend the relevant end segment.
370
371
  * @param fractionA [in] start fraction
371
372
  * @param fractionB [in] end fraction
372
373
  */
373
- clonePartialCurve(fractionA: number, fractionB: number): CurvePrimitive | undefined;
374
+ clonePartialCurve(fractionA: number, fractionB: number): LineString3d;
374
375
  /** Return (if possible) a specific segment of the linestring */
375
376
  getIndexedSegment(index: number): LineSegment3d | undefined;
376
377
  /**
@@ -401,6 +402,12 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
401
402
  * @param smallestPossiblePrimitives if false, CurvePrimitiveWithDistanceIndex returns only itself. If true, it recurses to its (otherwise hidden) children.
402
403
  */
403
404
  collectCurvePrimitivesGo(collectorArray: CurvePrimitive[], _smallestPossiblePrimitives: boolean, explodeLinestrings?: boolean): void;
405
+ /**
406
+ * Construct an offset of each segment as viewed in the xy-plane (ignoring z).
407
+ * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully joined offset.
408
+ * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
409
+ */
410
+ constructOffsetXY(offsetDistanceOrOptions: number | OffsetOptions): CurvePrimitive | CurvePrimitive[] | undefined;
404
411
  }
405
412
  /** An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
406
413
  * * This is useful in facet construction.
@@ -1 +1 @@
1
- {"version":3,"file":"LineString3d.d.ts","sourceRoot":"","sources":["../../../src/curve/LineString3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LineString3d.d.ts","sourceRoot":"","sources":["../../../src/curve/LineString3d.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { Transform } from "../geometry3d/Transform";
12
12
  import { CurveExtendOptions } from "./CurveExtendMode";
13
13
  import { CurveIntervalRole, CurveLocationDetail, CurveSearchStatus } from "./CurveLocationDetail";
14
14
  import { CurvePrimitive } from "./CurvePrimitive";
15
+ import { OffsetOptions } from "./internalContexts/PolygonOffsetContext";
15
16
  import { LineSegment3d } from "./LineSegment3d";
16
17
  import { StrokeCountMap } from "./Query/StrokeCountMap";
17
18
  /* eslint-disable @typescript-eslint/naming-convention, no-empty */
@@ -1065,15 +1066,15 @@ export class LineString3d extends CurvePrimitive {
1065
1066
  }
1066
1067
  if (index < 0)
1067
1068
  index = 0;
1068
- if (index >= n) {
1069
- index = n - 1;
1069
+ if (index > n - 2) {
1070
+ index = n - 2;
1070
1071
  fraction += 1;
1071
1072
  }
1072
1073
  this._points.interpolate(index, fraction, index + 1, LineString3d._indexPoint);
1073
1074
  dest.push(LineString3d._indexPoint);
1074
1075
  }
1075
- /** Return (if possible) a LineString which is a portion of this curve.
1076
- * * This implementation does NOT extrapolate the linestring -- fractions are capped at 0 and 1.
1076
+ /** Return a LineString which is a portion of this curve.
1077
+ * * Fractions outside [0,1] extend the relevant end segment.
1077
1078
  * @param fractionA [in] start fraction
1078
1079
  * @param fractionB [in] end fraction
1079
1080
  */
@@ -1085,28 +1086,58 @@ export class LineString3d extends CurvePrimitive {
1085
1086
  return linestringA;
1086
1087
  }
1087
1088
  const n = this._points.length;
1089
+ if (n < 2)
1090
+ return this.clone();
1091
+ if (n > 2 && this.isPhysicallyClosed) {
1092
+ // don't extend a closed linestring
1093
+ if (fractionA < 0)
1094
+ fractionA = 0;
1095
+ if (fractionB > 1)
1096
+ fractionB = 1;
1097
+ }
1088
1098
  const numEdge = n - 1;
1089
- if (n < 2 || fractionA >= 1.0 || fractionB <= 0.0)
1090
- return undefined;
1091
- if (fractionA < 0)
1092
- fractionA = 0;
1093
- if (fractionB > 1)
1094
- fractionB = 1;
1095
- const gA = fractionA * numEdge;
1096
- const gB = fractionB * numEdge;
1097
- const indexA = Math.floor(gA);
1098
- const indexB = Math.floor(gB);
1099
- const localFractionA = gA - indexA;
1100
- const localFractionB = gB - indexB;
1099
+ let indexA; // left index of first extended/partial segment of clone
1100
+ let indexB; // left index of last extended/partial segment of clone
1101
+ let index0, index1; // range of original vertices to copy into clone
1102
+ let localFractionA = fractionA;
1103
+ let localFractionB = fractionB;
1104
+ if (fractionA < 0) {
1105
+ indexA = 0;
1106
+ index0 = 1; // first original vertex is not in clone
1107
+ }
1108
+ else if (0 <= fractionA && fractionA <= 1) {
1109
+ const gA = fractionA * numEdge;
1110
+ indexA = Math.floor(gA);
1111
+ localFractionA = gA - indexA;
1112
+ index0 = Geometry.isSmallRelative(1 - localFractionA) ? indexA + 2 : indexA + 1;
1113
+ }
1114
+ else { // 1 < fractionA
1115
+ indexA = n - 2;
1116
+ index0 = n; // no original vertices in clone
1117
+ }
1118
+ if (fractionB < 0) {
1119
+ indexB = 0;
1120
+ index1 = -1; // no original vertices in clone
1121
+ }
1122
+ else if (0 <= fractionB && fractionB <= 1) {
1123
+ const gB = fractionB * numEdge;
1124
+ indexB = Math.floor(gB);
1125
+ localFractionB = gB - indexB;
1126
+ index1 = Geometry.isSmallRelative(localFractionB) ? indexB - 1 : indexB;
1127
+ }
1128
+ else { // 1 < fractionB
1129
+ indexB = n - 2;
1130
+ index1 = n - 2; // last original vertex is not in clone
1131
+ }
1101
1132
  const result = LineString3d.create();
1102
1133
  this.addResolvedPoint(indexA, localFractionA, result._points);
1103
- for (let index = indexA + 1; index <= indexB; index++) {
1104
- this._points.getPoint3dAtUncheckedPointIndex(index, LineString3d._workPointA);
1105
- result._points.push(LineString3d._workPointA);
1106
- }
1107
- if (!Geometry.isSmallRelative(localFractionB)) {
1108
- this.addResolvedPoint(indexB, localFractionB, result._points);
1134
+ for (let index = index0; index <= index1; index++) {
1135
+ if (this._points.isIndexValid(index)) {
1136
+ this._points.getPoint3dAtUncheckedPointIndex(index, LineString3d._workPointA);
1137
+ result._points.push(LineString3d._workPointA);
1138
+ }
1109
1139
  }
1140
+ this.addResolvedPoint(indexB, localFractionB, result._points);
1110
1141
  return result;
1111
1142
  }
1112
1143
  /** Return (if possible) a specific segment of the linestring */
@@ -1193,6 +1224,25 @@ export class LineString3d extends CurvePrimitive {
1193
1224
  collectorArray.push(this);
1194
1225
  }
1195
1226
  }
1227
+ /**
1228
+ * Construct an offset of each segment as viewed in the xy-plane (ignoring z).
1229
+ * * No attempt is made to join the offset segments. Use RegionOps.constructCurveXYOffset() to return a fully joined offset.
1230
+ * @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
1231
+ */
1232
+ constructOffsetXY(offsetDistanceOrOptions) {
1233
+ const options = OffsetOptions.create(offsetDistanceOrOptions);
1234
+ const offsets = [];
1235
+ for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
1236
+ const offset = seg.constructOffsetXY(options);
1237
+ if (offset !== undefined) {
1238
+ if (offset instanceof CurvePrimitive)
1239
+ offsets.push(offset);
1240
+ else if (Array.isArray(offset))
1241
+ offset.forEach((cp) => offsets.push(cp));
1242
+ }
1243
+ }
1244
+ return offsets;
1245
+ }
1196
1246
  }
1197
1247
  LineString3d._workPointA = Point3d.create();
1198
1248
  LineString3d._workPointB = Point3d.create();