@itwin/core-geometry 4.4.0-dev.8 → 4.5.0-dev.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 (299) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Geometry.d.ts +17 -0
  3. package/lib/cjs/Geometry.d.ts.map +1 -1
  4. package/lib/cjs/Geometry.js +14 -0
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/core-geometry.d.ts +3 -2
  7. package/lib/cjs/core-geometry.d.ts.map +1 -1
  8. package/lib/cjs/core-geometry.js +3 -2
  9. package/lib/cjs/core-geometry.js.map +1 -1
  10. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +2 -2
  11. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +3 -3
  12. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  13. package/lib/cjs/curve/CurveExtendMode.d.ts +7 -6
  14. package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
  15. package/lib/cjs/curve/CurveExtendMode.js +7 -6
  16. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  17. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  18. package/lib/cjs/curve/CurveLocationDetail.js +23 -18
  19. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  20. package/lib/cjs/curve/LineSegment3d.d.ts +14 -4
  21. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  22. package/lib/cjs/curve/LineSegment3d.js +107 -2
  23. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  24. package/lib/cjs/curve/LineString3d.d.ts +41 -8
  25. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  26. package/lib/cjs/curve/LineString3d.js +53 -15
  27. package/lib/cjs/curve/LineString3d.js.map +1 -1
  28. package/lib/cjs/curve/Loop.js +1 -1
  29. package/lib/cjs/curve/Loop.js.map +1 -1
  30. package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +2 -2
  31. package/lib/cjs/curve/Query/PlanarSubdivision.js +2 -2
  32. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  33. package/lib/cjs/curve/RegionOps.d.ts +1 -2
  34. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  35. package/lib/cjs/curve/RegionOps.js.map +1 -1
  36. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +5 -8
  37. package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  38. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +12 -12
  39. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  40. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +2 -2
  41. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  42. package/lib/cjs/geometry3d/GrowableXYArray.js +1 -1
  43. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  44. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +2 -3
  45. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  46. package/lib/cjs/geometry3d/GrowableXYZArray.js +1 -1
  47. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  48. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +18 -1
  49. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  50. package/lib/cjs/geometry3d/IndexedXYZCollection.js +13 -0
  51. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  52. package/lib/cjs/geometry3d/PointHelpers.d.ts +1 -2
  53. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  54. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  55. package/lib/cjs/geometry3d/PointStreaming.d.ts +1 -1
  56. package/lib/cjs/geometry3d/PointStreaming.d.ts.map +1 -1
  57. package/lib/cjs/geometry3d/PointStreaming.js +3 -1
  58. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  59. package/lib/cjs/geometry3d/PolygonOps.d.ts +68 -1
  60. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  61. package/lib/cjs/geometry3d/PolygonOps.js +152 -4
  62. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  63. package/lib/cjs/geometry3d/PolylineOps.d.ts +23 -1
  64. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  65. package/lib/cjs/geometry3d/PolylineOps.js +73 -1
  66. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  67. package/lib/cjs/geometry3d/Range.d.ts +1 -1
  68. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  69. package/lib/cjs/geometry3d/Range.js.map +1 -1
  70. package/lib/cjs/geometry3d/Transform.js +1 -1
  71. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  72. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts +7 -5
  73. package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  74. package/lib/cjs/geometry3d/YawPitchRollAngles.js +8 -6
  75. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  76. package/lib/cjs/numerics/Polynomials.d.ts +13 -1
  77. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  78. package/lib/cjs/numerics/Polynomials.js +13 -1
  79. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  80. package/lib/cjs/polyface/FacetLocationDetail.d.ts +28 -5
  81. package/lib/cjs/polyface/FacetLocationDetail.d.ts.map +1 -1
  82. package/lib/cjs/polyface/FacetLocationDetail.js +50 -15
  83. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  84. package/lib/cjs/polyface/Polyface.d.ts +1 -1
  85. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  86. package/lib/cjs/polyface/Polyface.js.map +1 -1
  87. package/lib/cjs/polyface/PolyfaceQuery.d.ts +7 -3
  88. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  89. package/lib/cjs/polyface/PolyfaceQuery.js +23 -0
  90. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  91. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.d.ts +52 -0
  92. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.d.ts.map +1 -0
  93. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +78 -0
  94. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -0
  95. package/lib/cjs/polyface/RangeTree/MinimumValueTester.d.ts +60 -0
  96. package/lib/cjs/polyface/RangeTree/MinimumValueTester.d.ts.map +1 -0
  97. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +96 -0
  98. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -0
  99. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts +57 -0
  100. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts.map +1 -0
  101. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +73 -0
  102. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -0
  103. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts +57 -0
  104. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts.map +1 -0
  105. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +84 -0
  106. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -0
  107. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts +274 -0
  108. package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -0
  109. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +505 -0
  110. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -0
  111. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.d.ts +204 -0
  112. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.d.ts.map +1 -0
  113. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +383 -0
  114. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -0
  115. package/lib/cjs/serialization/GeometrySamples.d.ts +36 -3
  116. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  117. package/lib/cjs/serialization/GeometrySamples.js +93 -4
  118. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  119. package/lib/cjs/solid/LinearSweep.d.ts +1 -1
  120. package/lib/cjs/solid/LinearSweep.js +1 -1
  121. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  122. package/lib/cjs/solid/SweepContour.d.ts +2 -2
  123. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  124. package/lib/cjs/solid/SweepContour.js.map +1 -1
  125. package/lib/cjs/topology/Graph.d.ts +5 -6
  126. package/lib/cjs/topology/Graph.d.ts.map +1 -1
  127. package/lib/cjs/topology/Graph.js +7 -6
  128. package/lib/cjs/topology/Graph.js.map +1 -1
  129. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +4 -4
  130. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -5
  131. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  132. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +108 -71
  133. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  134. package/lib/cjs/topology/HalfEdgeGraphSearch.js +223 -109
  135. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  136. package/lib/cjs/topology/Merging.d.ts +1 -1
  137. package/lib/cjs/topology/Merging.d.ts.map +1 -1
  138. package/lib/cjs/topology/Merging.js.map +1 -1
  139. package/lib/cjs/topology/SignedDataSummary.d.ts +13 -13
  140. package/lib/cjs/topology/SignedDataSummary.d.ts.map +1 -1
  141. package/lib/cjs/topology/SignedDataSummary.js +3 -3
  142. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  143. package/lib/cjs/topology/Triangulation.d.ts +1 -12
  144. package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
  145. package/lib/cjs/topology/Triangulation.js.map +1 -1
  146. package/lib/cjs/topology/XYParitySearchContext.d.ts +27 -21
  147. package/lib/cjs/topology/XYParitySearchContext.d.ts.map +1 -1
  148. package/lib/cjs/topology/XYParitySearchContext.js +73 -71
  149. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  150. package/lib/esm/Geometry.d.ts +17 -0
  151. package/lib/esm/Geometry.d.ts.map +1 -1
  152. package/lib/esm/Geometry.js +14 -0
  153. package/lib/esm/Geometry.js.map +1 -1
  154. package/lib/esm/core-geometry.d.ts +3 -2
  155. package/lib/esm/core-geometry.d.ts.map +1 -1
  156. package/lib/esm/core-geometry.js +3 -2
  157. package/lib/esm/core-geometry.js.map +1 -1
  158. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +2 -2
  159. package/lib/esm/curve/CurveChainWithDistanceIndex.js +3 -3
  160. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  161. package/lib/esm/curve/CurveExtendMode.d.ts +7 -6
  162. package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
  163. package/lib/esm/curve/CurveExtendMode.js +7 -6
  164. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  165. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  166. package/lib/esm/curve/CurveLocationDetail.js +23 -18
  167. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  168. package/lib/esm/curve/LineSegment3d.d.ts +14 -4
  169. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  170. package/lib/esm/curve/LineSegment3d.js +108 -3
  171. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  172. package/lib/esm/curve/LineString3d.d.ts +41 -8
  173. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  174. package/lib/esm/curve/LineString3d.js +53 -15
  175. package/lib/esm/curve/LineString3d.js.map +1 -1
  176. package/lib/esm/curve/Loop.js +1 -1
  177. package/lib/esm/curve/Loop.js.map +1 -1
  178. package/lib/esm/curve/Query/PlanarSubdivision.d.ts +2 -2
  179. package/lib/esm/curve/Query/PlanarSubdivision.js +2 -2
  180. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  181. package/lib/esm/curve/RegionOps.d.ts +1 -2
  182. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  183. package/lib/esm/curve/RegionOps.js +1 -1
  184. package/lib/esm/curve/RegionOps.js.map +1 -1
  185. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +5 -8
  186. package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
  187. package/lib/esm/curve/RegionOpsClassificationSweeps.js +12 -12
  188. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  189. package/lib/esm/geometry3d/GrowableXYArray.d.ts +2 -2
  190. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  191. package/lib/esm/geometry3d/GrowableXYArray.js +1 -1
  192. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  193. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +2 -3
  194. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  195. package/lib/esm/geometry3d/GrowableXYZArray.js +1 -1
  196. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  197. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +18 -1
  198. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  199. package/lib/esm/geometry3d/IndexedXYZCollection.js +13 -0
  200. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  201. package/lib/esm/geometry3d/PointHelpers.d.ts +1 -2
  202. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  203. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  204. package/lib/esm/geometry3d/PointStreaming.d.ts +1 -1
  205. package/lib/esm/geometry3d/PointStreaming.d.ts.map +1 -1
  206. package/lib/esm/geometry3d/PointStreaming.js +3 -1
  207. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  208. package/lib/esm/geometry3d/PolygonOps.d.ts +68 -1
  209. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  210. package/lib/esm/geometry3d/PolygonOps.js +150 -3
  211. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  212. package/lib/esm/geometry3d/PolylineOps.d.ts +23 -1
  213. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  214. package/lib/esm/geometry3d/PolylineOps.js +73 -1
  215. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  216. package/lib/esm/geometry3d/Range.d.ts +1 -1
  217. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  218. package/lib/esm/geometry3d/Range.js.map +1 -1
  219. package/lib/esm/geometry3d/Transform.js +1 -1
  220. package/lib/esm/geometry3d/Transform.js.map +1 -1
  221. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts +7 -5
  222. package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
  223. package/lib/esm/geometry3d/YawPitchRollAngles.js +8 -6
  224. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  225. package/lib/esm/numerics/Polynomials.d.ts +13 -1
  226. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  227. package/lib/esm/numerics/Polynomials.js +13 -1
  228. package/lib/esm/numerics/Polynomials.js.map +1 -1
  229. package/lib/esm/polyface/FacetLocationDetail.d.ts +28 -5
  230. package/lib/esm/polyface/FacetLocationDetail.d.ts.map +1 -1
  231. package/lib/esm/polyface/FacetLocationDetail.js +48 -14
  232. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  233. package/lib/esm/polyface/Polyface.d.ts +1 -1
  234. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  235. package/lib/esm/polyface/Polyface.js.map +1 -1
  236. package/lib/esm/polyface/PolyfaceQuery.d.ts +7 -3
  237. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  238. package/lib/esm/polyface/PolyfaceQuery.js +23 -0
  239. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  240. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.d.ts +52 -0
  241. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.d.ts.map +1 -0
  242. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +74 -0
  243. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -0
  244. package/lib/esm/polyface/RangeTree/MinimumValueTester.d.ts +60 -0
  245. package/lib/esm/polyface/RangeTree/MinimumValueTester.d.ts.map +1 -0
  246. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +92 -0
  247. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -0
  248. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts +57 -0
  249. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.d.ts.map +1 -0
  250. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +69 -0
  251. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -0
  252. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts +57 -0
  253. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.d.ts.map +1 -0
  254. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +80 -0
  255. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -0
  256. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts +274 -0
  257. package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -0
  258. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +497 -0
  259. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -0
  260. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.d.ts +204 -0
  261. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.d.ts.map +1 -0
  262. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +374 -0
  263. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -0
  264. package/lib/esm/serialization/GeometrySamples.d.ts +36 -3
  265. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  266. package/lib/esm/serialization/GeometrySamples.js +93 -4
  267. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  268. package/lib/esm/solid/LinearSweep.d.ts +1 -1
  269. package/lib/esm/solid/LinearSweep.js +1 -1
  270. package/lib/esm/solid/LinearSweep.js.map +1 -1
  271. package/lib/esm/solid/SweepContour.d.ts +2 -2
  272. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  273. package/lib/esm/solid/SweepContour.js.map +1 -1
  274. package/lib/esm/topology/Graph.d.ts +5 -6
  275. package/lib/esm/topology/Graph.d.ts.map +1 -1
  276. package/lib/esm/topology/Graph.js +7 -6
  277. package/lib/esm/topology/Graph.js.map +1 -1
  278. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +4 -4
  279. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -5
  280. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  281. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +108 -71
  282. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  283. package/lib/esm/topology/HalfEdgeGraphSearch.js +223 -109
  284. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  285. package/lib/esm/topology/Merging.d.ts +1 -1
  286. package/lib/esm/topology/Merging.d.ts.map +1 -1
  287. package/lib/esm/topology/Merging.js.map +1 -1
  288. package/lib/esm/topology/SignedDataSummary.d.ts +13 -13
  289. package/lib/esm/topology/SignedDataSummary.d.ts.map +1 -1
  290. package/lib/esm/topology/SignedDataSummary.js +3 -3
  291. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  292. package/lib/esm/topology/Triangulation.d.ts +1 -12
  293. package/lib/esm/topology/Triangulation.d.ts.map +1 -1
  294. package/lib/esm/topology/Triangulation.js.map +1 -1
  295. package/lib/esm/topology/XYParitySearchContext.d.ts +27 -21
  296. package/lib/esm/topology/XYParitySearchContext.d.ts.map +1 -1
  297. package/lib/esm/topology/XYParitySearchContext.js +73 -71
  298. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  299. package/package.json +3 -3
@@ -7,6 +7,7 @@ import { GeometryHandler, IStrokeHandler } from "../geometry3d/GeometryHandler";
7
7
  import { GrowableFloat64Array } from "../geometry3d/GrowableFloat64Array";
8
8
  import { GrowableXYArray } from "../geometry3d/GrowableXYArray";
9
9
  import { GrowableXYZArray } from "../geometry3d/GrowableXYZArray";
10
+ import { MultiLineStringDataVariant } from "../geometry3d/IndexedXYZCollection";
10
11
  import { Plane3dByOriginAndUnitNormal } from "../geometry3d/Plane3dByOriginAndUnitNormal";
11
12
  import { Plane3dByOriginAndVectors } from "../geometry3d/Plane3dByOriginAndVectors";
12
13
  import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
@@ -14,7 +15,6 @@ import { Range1d, Range3d } from "../geometry3d/Range";
14
15
  import { Ray3d } from "../geometry3d/Ray3d";
15
16
  import { Transform } from "../geometry3d/Transform";
16
17
  import { XAndY, XYZProps } from "../geometry3d/XYZProps";
17
- import { MultiLineStringDataVariant } from "../topology/Triangulation";
18
18
  import { VariantCurveExtendParameter } from "./CurveExtendMode";
19
19
  import { CurveLocationDetail } from "./CurveLocationDetail";
20
20
  import { AnnounceNumberNumberCurvePrimitive, CurvePrimitive } from "./CurvePrimitive";
@@ -85,15 +85,12 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
85
85
  * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
86
86
  */
87
87
  static create(...points: any[]): LineString3d;
88
- /**
89
- * Create a linestring, capturing the given GrowableXYZArray as the points.
90
- * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
91
- */
88
+ /** Create a linestring, capturing the given GrowableXYZArray as the points. */
92
89
  static createCapture(points: GrowableXYZArray): LineString3d;
93
90
  /** Create a linestring from `XAndY` points, with a specified z applied to all. */
94
91
  static createXY(points: XAndY[], z: number, enforceClosure?: boolean): LineString3d;
95
92
  /**
96
- * Add points to the linestring.
93
+ * Add copies of points to the linestring.
97
94
  * Valid inputs are:
98
95
  * * a Point2d
99
96
  * * a point3d
@@ -235,7 +232,15 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
235
232
  /** Return point and derivative at fraction, with 000 second derivative. */
236
233
  fractionToPointAnd2Derivatives(fraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors;
237
234
  /**
238
- * Convert a segment index and local fraction to a global fraction.
235
+ * Convert a segment index and local fraction to a global linestring fraction.
236
+ * @param index index of segment being evaluated
237
+ * @param localFraction local fraction in [0,1] within the segment
238
+ * @param numSegment number N of segments in the linestring
239
+ * @return global fraction f in [0,1] such that the segment is parameterized by index/N <= f <= (index+1)/N.
240
+ */
241
+ static mapLocalToGlobalFraction(index: number, localFraction: number, numSegment: number): number;
242
+ /**
243
+ * Convert a segment index and local fraction to a global linestring fraction.
239
244
  * @param index index of segment being evaluated
240
245
  * @param localFraction local fraction in [0,1] within the segment
241
246
  * @return global fraction f in [0,1] such that the segment is parameterized by index/N <= f <= (index+1)/N.
@@ -245,6 +250,18 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
245
250
  * Convert a global fraction to a segment index and local fraction.
246
251
  * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
247
252
  * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
253
+ * @returns segment index and local fraction
254
+ */
255
+ static mapGlobalToLocalFraction(globalFraction: number, numSegment: number): {
256
+ index: number;
257
+ fraction: number;
258
+ };
259
+ /**
260
+ * Convert a global linestring fraction to a segment index and local fraction.
261
+ * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
262
+ * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
263
+ * @param numSegment number N of segments in the linestring
264
+ * @returns segment index and local fraction
248
265
  */
249
266
  globalFractionToSegmentIndexAndLocalFraction(globalFraction: number): {
250
267
  index: number;
@@ -264,6 +281,8 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
264
281
  surfaceNormalAt(i: number, result?: Vector3d): Vector3d | undefined;
265
282
  /** Return the number of points in this linestring. */
266
283
  numPoints(): number;
284
+ /** Return the number of edges in this linestring. */
285
+ numEdges(): number;
267
286
  /** Evaluate the end point of the linestring. */
268
287
  endPoint(): Point3d;
269
288
  /** Reverse the points within the linestring. */
@@ -401,7 +420,7 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
401
420
  */
402
421
  clonePartialCurve(fractionA: number, fractionB: number): LineString3d;
403
422
  /** Return (if possible) a specific segment of the linestring */
404
- getIndexedSegment(index: number): LineSegment3d | undefined;
423
+ getIndexedSegment(index: number, result?: LineSegment3d): LineSegment3d | undefined;
405
424
  /** Returns true if first and last points are within metric tolerance. */
406
425
  get isPhysicallyClosed(): boolean;
407
426
  /**
@@ -444,6 +463,20 @@ export declare class LineString3d extends CurvePrimitive implements BeJSONFuncti
444
463
  * the end of the ray.
445
464
  */
446
465
  projectedParameterRange(ray: Vector3d | Ray3d, lowHigh?: Range1d): Range1d | undefined;
466
+ /**
467
+ * Convert the segment detail to a linestring detail:
468
+ * * `detail.childDetail` is set to a clone of the input segment detail (optionally populating pre-allocated `child` object).
469
+ * * `childDetail.a` is set to `segmentIndex`.
470
+ * * `detail.fraction` is set to the global linestring parameter.
471
+ * * `detail.curve` is set to the parent linestring.
472
+ * @param detail segment location detail, converted in place
473
+ * @param segmentIndex index of segment in the linestring
474
+ * @param numSegment linestring segment count
475
+ * @param parent optional linestring primitive
476
+ * @param child optional pre-allocated detail to use to clone the child data
477
+ * @returns reference to input detail, with both linestring and segment data
478
+ */
479
+ static convertLocalToGlobalDetail(detail: CurveLocationDetail, segmentIndex: number, numSegment: number, parent?: LineString3d, child?: CurveLocationDetail): CurveLocationDetail;
447
480
  }
448
481
  /**
449
482
  * An AnnotatedLineString3d is a linestring with additional surface-related data attached to each point
@@ -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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"}
@@ -17,7 +17,6 @@ import { PlaneAltitudeRangeContext } from "./internalContexts/PlaneAltitudeRange
17
17
  import { LineSegment3d } from "./LineSegment3d";
18
18
  import { OffsetOptions } from "./OffsetOptions";
19
19
  import { StrokeCountMap } from "./Query/StrokeCountMap";
20
- /* eslint-disable @typescript-eslint/naming-convention, no-empty */
21
20
  /**
22
21
  * Starting with baseIndex and moving index by stepDirection:
23
22
  * If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
@@ -136,10 +135,7 @@ class LineString3d extends CurvePrimitive {
136
135
  result.addPoints(points);
137
136
  return result;
138
137
  }
139
- /**
140
- * Create a linestring, capturing the given GrowableXYZArray as the points.
141
- * Point3d, Point2d, `[1,2,3]', array of any of those, or GrowableXYZArray
142
- */
138
+ /** Create a linestring, capturing the given GrowableXYZArray as the points. */
143
139
  static createCapture(points) {
144
140
  return new LineString3d(points);
145
141
  }
@@ -163,7 +159,7 @@ class LineString3d extends CurvePrimitive {
163
159
  return result;
164
160
  }
165
161
  /**
166
- * Add points to the linestring.
162
+ * Add copies of points to the linestring.
167
163
  * Valid inputs are:
168
164
  * * a Point2d
169
165
  * * a point3d
@@ -549,24 +545,33 @@ class LineString3d extends CurvePrimitive {
549
545
  return result;
550
546
  }
551
547
  /**
552
- * Convert a segment index and local fraction to a global fraction.
548
+ * Convert a segment index and local fraction to a global linestring fraction.
553
549
  * @param index index of segment being evaluated
554
550
  * @param localFraction local fraction in [0,1] within the segment
551
+ * @param numSegment number N of segments in the linestring
555
552
  * @return global fraction f in [0,1] such that the segment is parameterized by index/N <= f <= (index+1)/N.
556
553
  */
557
- segmentIndexAndLocalFractionToGlobalFraction(index, localFraction) {
558
- const numSegment = this._points.length - 1;
554
+ static mapLocalToGlobalFraction(index, localFraction, numSegment) {
559
555
  if (numSegment < 1)
560
556
  return 0.0;
561
557
  return (index + localFraction) / numSegment;
562
558
  }
559
+ /**
560
+ * Convert a segment index and local fraction to a global linestring fraction.
561
+ * @param index index of segment being evaluated
562
+ * @param localFraction local fraction in [0,1] within the segment
563
+ * @return global fraction f in [0,1] such that the segment is parameterized by index/N <= f <= (index+1)/N.
564
+ */
565
+ segmentIndexAndLocalFractionToGlobalFraction(index, localFraction) {
566
+ return LineString3d.mapLocalToGlobalFraction(index, localFraction, this._points.length - 1);
567
+ }
563
568
  /**
564
569
  * Convert a global fraction to a segment index and local fraction.
565
570
  * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
566
571
  * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
572
+ * @returns segment index and local fraction
567
573
  */
568
- globalFractionToSegmentIndexAndLocalFraction(globalFraction) {
569
- const numSegment = this._points.length - 1;
574
+ static mapGlobalToLocalFraction(globalFraction, numSegment) {
570
575
  if (numSegment < 1)
571
576
  return { index: 0, fraction: 0.0 };
572
577
  const scaledGlobalFraction = globalFraction * numSegment;
@@ -577,8 +582,17 @@ class LineString3d extends CurvePrimitive {
577
582
  segmentIndex = numSegment - 1;
578
583
  else // globalFraction in [0,1]
579
584
  segmentIndex = Math.floor(scaledGlobalFraction);
580
- const localFraction = scaledGlobalFraction - segmentIndex;
581
- return { index: segmentIndex, fraction: localFraction };
585
+ return { index: segmentIndex, fraction: scaledGlobalFraction - segmentIndex };
586
+ }
587
+ /**
588
+ * Convert a global linestring fraction to a segment index and local fraction.
589
+ * @param globalFraction a fraction f in [0,1] in the linestring parameterization, where the i_th segment
590
+ * (0 <= i < N) is parameterized by i/N <= f <= (i+1)/N.
591
+ * @param numSegment number N of segments in the linestring
592
+ * @returns segment index and local fraction
593
+ */
594
+ globalFractionToSegmentIndexAndLocalFraction(globalFraction) {
595
+ return LineString3d.mapGlobalToLocalFraction(globalFraction, this._points.length - 1);
582
596
  }
583
597
  /** Return a frenet frame, using nearby points to estimate a plane. */
584
598
  fractionToFrenetFrame(fraction, result) {
@@ -659,6 +673,10 @@ class LineString3d extends CurvePrimitive {
659
673
  numPoints() {
660
674
  return this._points.length;
661
675
  }
676
+ /** Return the number of edges in this linestring. */
677
+ numEdges() {
678
+ return this._points.length > 0 ? this._points.length - 1 : 0;
679
+ }
662
680
  /** Evaluate the end point of the linestring. */
663
681
  endPoint() {
664
682
  if (this._points.length === 0)
@@ -1244,9 +1262,9 @@ class LineString3d extends CurvePrimitive {
1244
1262
  return result;
1245
1263
  }
1246
1264
  /** Return (if possible) a specific segment of the linestring */
1247
- getIndexedSegment(index) {
1265
+ getIndexedSegment(index, result) {
1248
1266
  if (index >= 0 && index + 1 < this._points.length)
1249
- return LineSegment3d.create(this._points.getPoint3dAtCheckedPointIndex(index), this._points.getPoint3dAtCheckedPointIndex(index + 1));
1267
+ return LineSegment3d.create(this._points.getPoint3dAtCheckedPointIndex(index), this._points.getPoint3dAtCheckedPointIndex(index + 1), result);
1250
1268
  return undefined;
1251
1269
  }
1252
1270
  /** Returns true if first and last points are within metric tolerance. */
@@ -1356,6 +1374,26 @@ class LineString3d extends CurvePrimitive {
1356
1374
  projectedParameterRange(ray, lowHigh) {
1357
1375
  return PlaneAltitudeRangeContext.findExtremeFractionsAlongDirection(this, ray, lowHigh);
1358
1376
  }
1377
+ /**
1378
+ * Convert the segment detail to a linestring detail:
1379
+ * * `detail.childDetail` is set to a clone of the input segment detail (optionally populating pre-allocated `child` object).
1380
+ * * `childDetail.a` is set to `segmentIndex`.
1381
+ * * `detail.fraction` is set to the global linestring parameter.
1382
+ * * `detail.curve` is set to the parent linestring.
1383
+ * @param detail segment location detail, converted in place
1384
+ * @param segmentIndex index of segment in the linestring
1385
+ * @param numSegment linestring segment count
1386
+ * @param parent optional linestring primitive
1387
+ * @param child optional pre-allocated detail to use to clone the child data
1388
+ * @returns reference to input detail, with both linestring and segment data
1389
+ */
1390
+ static convertLocalToGlobalDetail(detail, segmentIndex, numSegment, parent, child) {
1391
+ detail.childDetail = detail.clone(child);
1392
+ detail.childDetail.a = segmentIndex;
1393
+ detail.fraction = this.mapLocalToGlobalFraction(segmentIndex, detail.fraction, numSegment);
1394
+ detail.curve = parent;
1395
+ return detail;
1396
+ }
1359
1397
  }
1360
1398
  LineString3d._workPointA = Point3d.create();
1361
1399
  LineString3d._workPointB = Point3d.create();