@itwin/core-geometry 4.1.0-dev.6 → 4.1.0-dev.62

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 (310) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
  3. package/lib/cjs/clipping/ClipPrimitive.js +2 -0
  4. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  5. package/lib/cjs/core-geometry.d.ts +1 -0
  6. package/lib/cjs/core-geometry.d.ts.map +1 -1
  7. package/lib/cjs/core-geometry.js +4 -1
  8. package/lib/cjs/core-geometry.js.map +1 -1
  9. package/lib/cjs/curve/Arc3d.d.ts +1 -0
  10. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  11. package/lib/cjs/curve/Arc3d.js +1 -0
  12. package/lib/cjs/curve/Arc3d.js.map +1 -1
  13. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  14. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  15. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
  16. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  17. package/lib/cjs/curve/CurveCollection.d.ts +36 -26
  18. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  19. package/lib/cjs/curve/CurveCollection.js +46 -39
  20. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  21. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  22. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  23. package/lib/cjs/curve/CurveFactory.d.ts +67 -3
  24. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  25. package/lib/cjs/curve/CurveFactory.js +75 -7
  26. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  27. package/lib/cjs/curve/CurveLocationDetail.d.ts +6 -6
  28. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  29. package/lib/cjs/curve/CurveLocationDetail.js +9 -7
  30. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  31. package/lib/cjs/curve/CurvePrimitive.d.ts +4 -3
  32. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  33. package/lib/cjs/curve/CurvePrimitive.js +4 -3
  34. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  35. package/lib/cjs/curve/LineSegment3d.d.ts +6 -4
  36. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  37. package/lib/cjs/curve/LineSegment3d.js +4 -4
  38. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  39. package/lib/cjs/curve/LineString3d.d.ts +1 -1
  40. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  41. package/lib/cjs/curve/LineString3d.js +1 -1
  42. package/lib/cjs/curve/LineString3d.js.map +1 -1
  43. package/lib/cjs/curve/Loop.d.ts +7 -5
  44. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  45. package/lib/cjs/curve/Loop.js +18 -6
  46. package/lib/cjs/curve/Loop.js.map +1 -1
  47. package/lib/cjs/curve/ParityRegion.d.ts +7 -7
  48. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  49. package/lib/cjs/curve/ParityRegion.js +19 -11
  50. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  51. package/lib/cjs/curve/Path.d.ts +6 -6
  52. package/lib/cjs/curve/Path.d.ts.map +1 -1
  53. package/lib/cjs/curve/Path.js +15 -9
  54. package/lib/cjs/curve/Path.js.map +1 -1
  55. package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
  56. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  57. package/lib/cjs/curve/ProxyCurve.js +7 -7
  58. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  59. package/lib/cjs/curve/RegionOps.d.ts +69 -47
  60. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  61. package/lib/cjs/curve/RegionOps.js +70 -47
  62. package/lib/cjs/curve/RegionOps.js.map +1 -1
  63. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  64. package/lib/cjs/curve/StrokeOptions.js +6 -2
  65. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  66. package/lib/cjs/curve/UnionRegion.d.ts +6 -5
  67. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  68. package/lib/cjs/curve/UnionRegion.js +17 -8
  69. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
  71. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  72. package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
  73. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  75. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  76. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +5 -2
  77. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  79. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  80. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  81. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  82. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  83. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  84. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +153 -87
  85. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  86. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  87. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
  88. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  89. package/lib/cjs/geometry3d/Angle.d.ts +9 -0
  90. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  91. package/lib/cjs/geometry3d/Angle.js +13 -0
  92. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  93. package/lib/cjs/geometry3d/BilinearPatch.d.ts +43 -48
  94. package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -1
  95. package/lib/cjs/geometry3d/BilinearPatch.js +51 -55
  96. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  97. package/lib/cjs/geometry3d/Ellipsoid.d.ts +1 -1
  98. package/lib/cjs/geometry3d/Ellipsoid.js +1 -1
  99. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  100. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  101. package/lib/cjs/geometry3d/FrameBuilder.js +13 -11
  102. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  103. package/lib/cjs/geometry3d/GeometryHandler.d.ts +5 -5
  104. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  105. package/lib/cjs/geometry3d/Matrix3d.d.ts +18 -0
  106. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  107. package/lib/cjs/geometry3d/Matrix3d.js +27 -0
  108. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  109. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  110. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  111. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  112. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  113. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +8 -0
  114. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  115. package/lib/cjs/geometry3d/Point3dVector3d.js +13 -0
  116. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  117. package/lib/cjs/geometry3d/PolylineOps.d.ts +16 -1
  118. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  119. package/lib/cjs/geometry3d/PolylineOps.js +55 -0
  120. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  121. package/lib/cjs/geometry3d/Range.d.ts +134 -94
  122. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  123. package/lib/cjs/geometry3d/Range.js +297 -145
  124. package/lib/cjs/geometry3d/Range.js.map +1 -1
  125. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  126. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  127. package/lib/cjs/geometry3d/Transform.d.ts +7 -0
  128. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  129. package/lib/cjs/geometry3d/Transform.js +12 -0
  130. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  131. package/lib/cjs/polyface/PolyfaceQuery.d.ts +64 -6
  132. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  133. package/lib/cjs/polyface/PolyfaceQuery.js +104 -19
  134. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  135. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +11 -0
  136. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  137. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +79 -1
  138. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  139. package/lib/cjs/serialization/GeometrySamples.d.ts +11 -0
  140. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  141. package/lib/cjs/serialization/GeometrySamples.js +30 -0
  142. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  143. package/lib/cjs/solid/LinearSweep.d.ts +2 -1
  144. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  145. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  146. package/lib/cjs/solid/RotationalSweep.d.ts +2 -1
  147. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  148. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  149. package/lib/cjs/solid/RuledSweep.d.ts +2 -1
  150. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  151. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  152. package/lib/cjs/solid/SweepContour.d.ts +2 -2
  153. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  154. package/lib/cjs/solid/SweepContour.js +9 -0
  155. package/lib/cjs/solid/SweepContour.js.map +1 -1
  156. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
  157. package/lib/esm/clipping/ClipPrimitive.js +2 -0
  158. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  159. package/lib/esm/core-geometry.d.ts +1 -0
  160. package/lib/esm/core-geometry.d.ts.map +1 -1
  161. package/lib/esm/core-geometry.js +2 -0
  162. package/lib/esm/core-geometry.js.map +1 -1
  163. package/lib/esm/curve/Arc3d.d.ts +1 -0
  164. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  165. package/lib/esm/curve/Arc3d.js +1 -0
  166. package/lib/esm/curve/Arc3d.js.map +1 -1
  167. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
  168. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  169. package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
  170. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  171. package/lib/esm/curve/CurveCollection.d.ts +36 -26
  172. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  173. package/lib/esm/curve/CurveCollection.js +46 -39
  174. package/lib/esm/curve/CurveCollection.js.map +1 -1
  175. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  176. package/lib/esm/curve/CurveCurve.js.map +1 -1
  177. package/lib/esm/curve/CurveFactory.d.ts +67 -3
  178. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  179. package/lib/esm/curve/CurveFactory.js +74 -6
  180. package/lib/esm/curve/CurveFactory.js.map +1 -1
  181. package/lib/esm/curve/CurveLocationDetail.d.ts +6 -6
  182. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  183. package/lib/esm/curve/CurveLocationDetail.js +9 -7
  184. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  185. package/lib/esm/curve/CurvePrimitive.d.ts +4 -3
  186. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  187. package/lib/esm/curve/CurvePrimitive.js +4 -3
  188. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  189. package/lib/esm/curve/LineSegment3d.d.ts +6 -4
  190. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  191. package/lib/esm/curve/LineSegment3d.js +4 -4
  192. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  193. package/lib/esm/curve/LineString3d.d.ts +1 -1
  194. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  195. package/lib/esm/curve/LineString3d.js +1 -1
  196. package/lib/esm/curve/LineString3d.js.map +1 -1
  197. package/lib/esm/curve/Loop.d.ts +7 -5
  198. package/lib/esm/curve/Loop.d.ts.map +1 -1
  199. package/lib/esm/curve/Loop.js +18 -6
  200. package/lib/esm/curve/Loop.js.map +1 -1
  201. package/lib/esm/curve/ParityRegion.d.ts +7 -7
  202. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  203. package/lib/esm/curve/ParityRegion.js +19 -11
  204. package/lib/esm/curve/ParityRegion.js.map +1 -1
  205. package/lib/esm/curve/Path.d.ts +6 -6
  206. package/lib/esm/curve/Path.d.ts.map +1 -1
  207. package/lib/esm/curve/Path.js +15 -9
  208. package/lib/esm/curve/Path.js.map +1 -1
  209. package/lib/esm/curve/ProxyCurve.d.ts +4 -6
  210. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  211. package/lib/esm/curve/ProxyCurve.js +7 -7
  212. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  213. package/lib/esm/curve/RegionOps.d.ts +69 -47
  214. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  215. package/lib/esm/curve/RegionOps.js +70 -47
  216. package/lib/esm/curve/RegionOps.js.map +1 -1
  217. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  218. package/lib/esm/curve/StrokeOptions.js +6 -2
  219. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  220. package/lib/esm/curve/UnionRegion.d.ts +6 -5
  221. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  222. package/lib/esm/curve/UnionRegion.js +17 -8
  223. package/lib/esm/curve/UnionRegion.js.map +1 -1
  224. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
  225. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  226. package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
  227. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  228. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +4 -0
  229. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  230. package/lib/esm/curve/internalContexts/MultiChainCollector.js +5 -2
  231. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  232. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  233. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  234. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  235. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  236. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +56 -34
  237. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  238. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +153 -87
  239. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  240. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  241. package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
  242. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  243. package/lib/esm/geometry3d/Angle.d.ts +9 -0
  244. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  245. package/lib/esm/geometry3d/Angle.js +13 -0
  246. package/lib/esm/geometry3d/Angle.js.map +1 -1
  247. package/lib/esm/geometry3d/BilinearPatch.d.ts +43 -48
  248. package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -1
  249. package/lib/esm/geometry3d/BilinearPatch.js +51 -55
  250. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  251. package/lib/esm/geometry3d/Ellipsoid.d.ts +1 -1
  252. package/lib/esm/geometry3d/Ellipsoid.js +1 -1
  253. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  254. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  255. package/lib/esm/geometry3d/FrameBuilder.js +13 -11
  256. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  257. package/lib/esm/geometry3d/GeometryHandler.d.ts +5 -5
  258. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  259. package/lib/esm/geometry3d/Matrix3d.d.ts +18 -0
  260. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  261. package/lib/esm/geometry3d/Matrix3d.js +27 -0
  262. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  263. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  264. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  265. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
  266. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  267. package/lib/esm/geometry3d/Point3dVector3d.d.ts +8 -0
  268. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  269. package/lib/esm/geometry3d/Point3dVector3d.js +13 -0
  270. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  271. package/lib/esm/geometry3d/PolylineOps.d.ts +16 -1
  272. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  273. package/lib/esm/geometry3d/PolylineOps.js +56 -1
  274. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  275. package/lib/esm/geometry3d/Range.d.ts +134 -94
  276. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  277. package/lib/esm/geometry3d/Range.js +297 -145
  278. package/lib/esm/geometry3d/Range.js.map +1 -1
  279. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  280. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  281. package/lib/esm/geometry3d/Transform.d.ts +7 -0
  282. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  283. package/lib/esm/geometry3d/Transform.js +12 -0
  284. package/lib/esm/geometry3d/Transform.js.map +1 -1
  285. package/lib/esm/polyface/PolyfaceQuery.d.ts +64 -6
  286. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  287. package/lib/esm/polyface/PolyfaceQuery.js +103 -19
  288. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  289. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +11 -0
  290. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  291. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +78 -1
  292. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  293. package/lib/esm/serialization/GeometrySamples.d.ts +11 -0
  294. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  295. package/lib/esm/serialization/GeometrySamples.js +30 -0
  296. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  297. package/lib/esm/solid/LinearSweep.d.ts +2 -1
  298. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  299. package/lib/esm/solid/LinearSweep.js.map +1 -1
  300. package/lib/esm/solid/RotationalSweep.d.ts +2 -1
  301. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  302. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  303. package/lib/esm/solid/RuledSweep.d.ts +2 -1
  304. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  305. package/lib/esm/solid/RuledSweep.js.map +1 -1
  306. package/lib/esm/solid/SweepContour.d.ts +2 -2
  307. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  308. package/lib/esm/solid/SweepContour.js +9 -0
  309. package/lib/esm/solid/SweepContour.js.map +1 -1
  310. package/package.json +5 -5
@@ -14,6 +14,47 @@ import { IndexedPolyface, Polyface, PolyfaceVisitor } from "./Polyface";
14
14
  import { RangeLengthData } from "./RangeLengthData";
15
15
  import { Ray3d } from "../geometry3d/Ray3d";
16
16
  import { FacetIntersectOptions, FacetLocationDetail } from "./FacetLocationDetail";
17
+ import { CurvePrimitive } from "../curve/CurvePrimitive";
18
+ /**
19
+ * Options carrier for sweeping linework onto meshes.
20
+ * * The create method initializes all options.
21
+ * @public
22
+ */
23
+ export declare class SweepLineStringToFacetsOptions {
24
+ /** vector "towards the eye"
25
+ * * In the common case of sweeping to an XY (e.g. ground or DTM) mesh,
26
+ * use the positive Z vector as an up vector.
27
+ * * In general case, this is a vector from the mesh towards an eye at infinity.
28
+ */
29
+ vectorToEye: Vector3d;
30
+ /** true to collect edges from facets that face towards the eye */
31
+ collectOnForwardFacets: boolean;
32
+ /** true to collect facets that are "on the side", i.e. their outward vector is perpendicular to vectorToEye. */
33
+ collectOnSideFacets: boolean;
34
+ /** true to collect facets that face away from the eye */
35
+ collectOnRearFacets: boolean;
36
+ /** (small) angle to use as tolerance for deciding if a facet is "on the side". Default (if given in degrees) is Geometry.smallAngleDegrees */
37
+ sideAngle: Angle;
38
+ /** option to assemble lines into chains */
39
+ assembleChains: boolean;
40
+ /** constructor -- captures fully-checked parameters from static create method.
41
+ */
42
+ private constructor();
43
+ /** Create an options structure.
44
+ * * Default vectorToEye is positive Z
45
+ * * Default sideAngle has radians value Geometry.smallAngleRadians
46
+ * * Default assembleChains is true
47
+ * * Default collectOnForwardFacets, collectOnSideFacets, collectOnRearFacets are all true.
48
+ */
49
+ static create(vectorToEye?: Vector3d, sideAngle?: Angle, assembleChains?: boolean, collectOnForwardFacets?: boolean, collectOnSideFacets?: boolean, collectOnRearFacets?: boolean): SweepLineStringToFacetsOptions;
50
+ /** Return true if all outputs are requested */
51
+ get collectAll(): boolean;
52
+ /** Decide if the instance flags accept this facet.
53
+ * * Facets whose facet normal have positive, zero, or negative dot product with the vectorToEye are forward, side, and rear.
54
+ * * Undefined facet normal returns false
55
+ */
56
+ collectFromThisFacetNormal(facetNormal: Vector3d | undefined): boolean;
57
+ }
17
58
  /**
18
59
  * Options carrier for cloneWithHolesFilled
19
60
  * @public
@@ -200,7 +241,7 @@ export declare class PolyfaceQuery {
200
241
  static announceBoundaryEdges(source: Polyface | PolyfaceVisitor | undefined, announceEdge: (pointA: Point3d, pointB: Point3d, indexA: number, indexB: number, facetIndex: number) => void, includeDanglers?: boolean, includeMismatch?: boolean, includeNull?: boolean): void;
201
242
  /** Find segments (within the linestring) which project to facets.
202
243
  * * Announce each pair of linestring segment and on-facet segment through a callback.
203
- * * Facets are ASSUMED to be convex and planar.
244
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
204
245
  */
205
246
  static announceSweepLinestringToConvexPolyfaceXY(linestringPoints: GrowableXYZArray, polyface: Polyface, announce: AnnounceDrapePanel): any;
206
247
  /** Execute context.projectToPolygon until its work estimates accumulate to workLimit */
@@ -221,7 +262,7 @@ export declare class PolyfaceQuery {
221
262
  static awaitBlockCount: number;
222
263
  /** Find segments (within the linestring) which project to facets.
223
264
  * * Announce each pair of linestring segment and on-facet segment through a callback.
224
- * * Facets are ASSUMED to be convex and planar.
265
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
225
266
  * * REMARK: Although this is public, the usual use is via slightly higher level public methods, viz:
226
267
  * * asyncSweepLinestringToFacetsXYReturnChains
227
268
  * @internal
@@ -311,22 +352,39 @@ export declare class PolyfaceQuery {
311
352
  static partitionFacetIndicesByEdgeConnectedComponent(polyface: Polyface | PolyfaceVisitor, stopAtVisibleEdges?: boolean): number[][];
312
353
  /** Find segments (within the linestring) which project to facets.
313
354
  * * Assemble each segment pair as a facet in a new polyface
314
- * * Facets are ASSUMED to be convex and planar.
355
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
315
356
  */
357
+ static sweepLineStringToFacetsXYReturnSweptFacets(linestringPoints: GrowableXYZArray, polyface: Polyface): Polyface;
358
+ /** @deprecated in 4.x. Use sweepLineStringToFacetsXYReturnSweptFacets instead. */
316
359
  static sweepLinestringToFacetsXYreturnSweptFacets(linestringPoints: GrowableXYZArray, polyface: Polyface): Polyface;
317
- /** Find segments (within the linestring) which project to facets.
318
- * * Return collected line segments
360
+ /**
361
+ * Sweeps the linestring to intersections with a mesh.
362
+ * * Return collected line segments.
363
+ * * If no options are given, the default sweep direction is the z-axis, and chains are assembled and returned.
364
+ * * See [[SweepLineStringToFacetsOptions]] for input and output options, including filtering by forward/side/rear facets.
365
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the sweep direction.
319
366
  */
367
+ static sweepLineStringToFacets(linestringPoints: GrowableXYZArray, polyface: Polyface, options?: SweepLineStringToFacetsOptions): CurvePrimitive[];
368
+ /** Find segments (within the linestring) which project to facets.
369
+ * * Return collected line segments.
370
+ * * This calls [[sweepLineStringToFacets]] with options created by
371
+ * `const options = SweepLineStringToFacetsOptions.create(Vector3d.unitZ(), Angle.createSmallAngle(),false, true, true, true);`
372
+ * @deprecated in 4.x. Use [[sweepLineStringToFacets]] to get further options.
373
+ */
320
374
  static sweepLinestringToFacetsXYReturnLines(linestringPoints: GrowableXYZArray, polyface: Polyface): LineSegment3d[];
321
375
  /** Find segments (within the linestring) which project to facets.
322
376
  * * Return chains.
377
+ * * This calls [[sweepLineStringToFacets]] with options created by
378
+ * `const options = SweepLineStringToFacetsOptions.create(Vector3d.unitZ(), Angle.createSmallAngle(),true, true, true, true);`
379
+ * @deprecated in 4.x. Use [[sweepLineStringToFacets]] to get further options.
323
380
  */
324
381
  static sweepLinestringToFacetsXYReturnChains(linestringPoints: GrowableXYZArray, polyface: Polyface): LineString3d[];
325
382
  /** Find segments (within the linestring) which project to facets.
326
383
  * * This is done as a sequence of "await" steps.
327
384
  * * Each "await" step deals with approximately PolyfaceQuery.asyncWorkLimit pairings of (linestring edge) with (facet edge)
328
- * * PolyfaceQuery.setAsyncWorkLimit () to change work blocks from default
385
+ * * PolyfaceQuery.setAsyncWorkLimit() to change work blocks from default
329
386
  * * Return chains.
387
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
330
388
  */
331
389
  static asyncSweepLinestringToFacetsXYReturnChains(linestringPoints: GrowableXYZArray, polyface: Polyface): Promise<LineString3d[]>;
332
390
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PolyfaceQuery.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolyfaceQuery.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceQuery.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.PolyfaceQuery = exports.DuplicateFacetClusterSelector = exports.OffsetMeshOptions = void 0;
7
+ exports.PolyfaceQuery = exports.DuplicateFacetClusterSelector = exports.OffsetMeshOptions = exports.SweepLineStringToFacetsOptions = void 0;
8
8
  /** @packageDocumentation
9
9
  * @module Polyface
10
10
  */
@@ -43,6 +43,47 @@ const HalfEdgeGraphFromIndexedLoopsContext_1 = require("../topology/HalfEdgeGrap
43
43
  const OffsetMeshContext_1 = require("./multiclip/OffsetMeshContext");
44
44
  const FacetLocationDetail_1 = require("./FacetLocationDetail");
45
45
  const BarycentricTriangle_1 = require("../geometry3d/BarycentricTriangle");
46
+ /**
47
+ * Options carrier for sweeping linework onto meshes.
48
+ * * The create method initializes all options.
49
+ * @public
50
+ */
51
+ class SweepLineStringToFacetsOptions {
52
+ /** constructor -- captures fully-checked parameters from static create method.
53
+ */
54
+ constructor(vectorToEye, sideAngle, assembleChains, collectOnForwardFacets, collectOnSideFacets, collectOnRearFacets) {
55
+ this.vectorToEye = vectorToEye;
56
+ this.sideAngle = sideAngle;
57
+ this.assembleChains = assembleChains;
58
+ this.collectOnForwardFacets = collectOnForwardFacets;
59
+ this.collectOnSideFacets = collectOnSideFacets;
60
+ this.collectOnRearFacets = collectOnRearFacets;
61
+ }
62
+ /** Create an options structure.
63
+ * * Default vectorToEye is positive Z
64
+ * * Default sideAngle has radians value Geometry.smallAngleRadians
65
+ * * Default assembleChains is true
66
+ * * Default collectOnForwardFacets, collectOnSideFacets, collectOnRearFacets are all true.
67
+ */
68
+ static create(vectorToEye, sideAngle, assembleChains, collectOnForwardFacets, collectOnSideFacets, collectOnRearFacets) {
69
+ return new SweepLineStringToFacetsOptions(vectorToEye === undefined ? Point3dVector3d_1.Vector3d.unitZ() : vectorToEye.clone(), sideAngle === undefined ? Angle_1.Angle.createRadians(Geometry_1.Geometry.smallAngleRadians) : sideAngle.clone(), Geometry_1.Geometry.resolveValue(assembleChains, true), Geometry_1.Geometry.resolveValue(collectOnForwardFacets, true), Geometry_1.Geometry.resolveValue(collectOnSideFacets, true), Geometry_1.Geometry.resolveValue(collectOnRearFacets, true));
70
+ }
71
+ /** Return true if all outputs are requested */
72
+ get collectAll() { return this.collectOnForwardFacets === true && this.collectOnRearFacets === true && this.collectOnRearFacets === true; }
73
+ /** Decide if the instance flags accept this facet.
74
+ * * Facets whose facet normal have positive, zero, or negative dot product with the vectorToEye are forward, side, and rear.
75
+ * * Undefined facet normal returns false
76
+ */
77
+ collectFromThisFacetNormal(facetNormal) {
78
+ if (facetNormal === undefined)
79
+ return false;
80
+ const theta = facetNormal.angleFromPerpendicular(this.vectorToEye);
81
+ if (theta.isMagnitudeLessThanOrEqual(this.sideAngle))
82
+ return this.collectOnSideFacets;
83
+ return facetNormal.dotProduct(this.vectorToEye) > 0 ? this.collectOnForwardFacets : this.collectOnRearFacets;
84
+ }
85
+ }
86
+ exports.SweepLineStringToFacetsOptions = SweepLineStringToFacetsOptions;
46
87
  /**
47
88
  * Options carrier for [[PolyfaceQuery.cloneOffset]].
48
89
  * * Default options are strongly recommended.
@@ -450,7 +491,7 @@ class PolyfaceQuery {
450
491
  }
451
492
  /** Find segments (within the linestring) which project to facets.
452
493
  * * Announce each pair of linestring segment and on-facet segment through a callback.
453
- * * Facets are ASSUMED to be convex and planar.
494
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
454
495
  */
455
496
  static announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, announce) {
456
497
  const context = SweepLineStringToFacetContext_1.SweepLineStringToFacetContext.create(linestringPoints);
@@ -480,7 +521,7 @@ class PolyfaceQuery {
480
521
  static get asyncWorkLimit() { return this._asyncWorkLimit; }
481
522
  /** Find segments (within the linestring) which project to facets.
482
523
  * * Announce each pair of linestring segment and on-facet segment through a callback.
483
- * * Facets are ASSUMED to be convex and planar.
524
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
484
525
  * * REMARK: Although this is public, the usual use is via slightly higher level public methods, viz:
485
526
  * * asyncSweepLinestringToFacetsXYReturnChains
486
527
  * @internal
@@ -844,9 +885,9 @@ class PolyfaceQuery {
844
885
  }
845
886
  /** Find segments (within the linestring) which project to facets.
846
887
  * * Assemble each segment pair as a facet in a new polyface
847
- * * Facets are ASSUMED to be convex and planar.
888
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
848
889
  */
849
- static sweepLinestringToFacetsXYreturnSweptFacets(linestringPoints, polyface) {
890
+ static sweepLineStringToFacetsXYReturnSweptFacets(linestringPoints, polyface) {
850
891
  const builder = PolyfaceBuilder_1.PolyfaceBuilder.create();
851
892
  this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points) => {
852
893
  if (points.length === 4)
@@ -856,32 +897,76 @@ class PolyfaceQuery {
856
897
  });
857
898
  return builder.claimPolyface(true);
858
899
  }
859
- /** Find segments (within the linestring) which project to facets.
860
- * * Return collected line segments
900
+ /** @deprecated in 4.x. Use sweepLineStringToFacetsXYReturnSweptFacets instead. */
901
+ static sweepLinestringToFacetsXYreturnSweptFacets(linestringPoints, polyface) {
902
+ return this.sweepLineStringToFacetsXYReturnSweptFacets(linestringPoints, polyface);
903
+ }
904
+ /**
905
+ * Sweeps the linestring to intersections with a mesh.
906
+ * * Return collected line segments.
907
+ * * If no options are given, the default sweep direction is the z-axis, and chains are assembled and returned.
908
+ * * See [[SweepLineStringToFacetsOptions]] for input and output options, including filtering by forward/side/rear facets.
909
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the sweep direction.
861
910
  */
911
+ static sweepLineStringToFacets(linestringPoints, polyface, options) {
912
+ let result = [];
913
+ // setup default options:
914
+ if (options === undefined)
915
+ options = SweepLineStringToFacetsOptions.create(Point3dVector3d_1.Vector3d.unitZ(), Angle_1.Angle.createRadians(Geometry_1.Geometry.smallAngleRadians), // tight geometry tolerance for vertical side facets
916
+ true, // assemble chains
917
+ true, true, true); // accept all outputs
918
+ let chainContext;
919
+ if (options.assembleChains)
920
+ chainContext = ChainMerge_1.ChainMergeContext.create();
921
+ const context = SweepLineStringToFacetContext_1.ClipSweptLineStringContext.create(linestringPoints, options.vectorToEye);
922
+ if (context) {
923
+ const visitor = polyface.createVisitor(0);
924
+ const workNormal = Point3dVector3d_1.Vector3d.createZero();
925
+ for (visitor.reset(); visitor.moveToNextFacet();) {
926
+ if (options.collectFromThisFacetNormal(PolygonOps_1.PolygonOps.areaNormalGo(visitor.point, workNormal))) {
927
+ context.processPolygon(visitor.point.getArray(), (pointA, pointB) => {
928
+ if (chainContext !== undefined)
929
+ chainContext.addSegment(pointA, pointB);
930
+ else
931
+ result.push(LineSegment3d_1.LineSegment3d.create(pointA, pointB));
932
+ });
933
+ }
934
+ }
935
+ if (chainContext !== undefined) {
936
+ chainContext.clusterAndMergeVerticesXYZ();
937
+ result = chainContext.collectMaximalChains();
938
+ }
939
+ }
940
+ return result;
941
+ }
942
+ /** Find segments (within the linestring) which project to facets.
943
+ * * Return collected line segments.
944
+ * * This calls [[sweepLineStringToFacets]] with options created by
945
+ * `const options = SweepLineStringToFacetsOptions.create(Vector3d.unitZ(), Angle.createSmallAngle(),false, true, true, true);`
946
+ * @deprecated in 4.x. Use [[sweepLineStringToFacets]] to get further options.
947
+ */
862
948
  static sweepLinestringToFacetsXYReturnLines(linestringPoints, polyface) {
863
- const drapeGeometry = [];
864
- this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
865
- drapeGeometry.push(LineSegment3d_1.LineSegment3d.create(points[indexA], points[indexB]));
866
- });
867
- return drapeGeometry;
949
+ const options = SweepLineStringToFacetsOptions.create(Point3dVector3d_1.Vector3d.unitZ(), Angle_1.Angle.createSmallAngle(), false, true, true, true);
950
+ const result = PolyfaceQuery.sweepLineStringToFacets(linestringPoints, polyface, options);
951
+ return result;
868
952
  }
869
953
  /** Find segments (within the linestring) which project to facets.
870
954
  * * Return chains.
955
+ * * This calls [[sweepLineStringToFacets]] with options created by
956
+ * `const options = SweepLineStringToFacetsOptions.create(Vector3d.unitZ(), Angle.createSmallAngle(),true, true, true, true);`
957
+ * @deprecated in 4.x. Use [[sweepLineStringToFacets]] to get further options.
871
958
  */
872
959
  static sweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
873
- const chainContext = ChainMerge_1.ChainMergeContext.create();
874
- this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface, (_linestring, _segmentIndex, _polyface, _facetIndex, points, indexA, indexB) => {
875
- chainContext.addSegment(points[indexA], points[indexB]);
876
- });
877
- chainContext.clusterAndMergeVerticesXYZ();
878
- return chainContext.collectMaximalChains();
960
+ const options = SweepLineStringToFacetsOptions.create(Point3dVector3d_1.Vector3d.unitZ(), Angle_1.Angle.createSmallAngle(), true, true, true, true);
961
+ const result = PolyfaceQuery.sweepLineStringToFacets(linestringPoints, polyface, options);
962
+ return result;
879
963
  }
880
964
  /** Find segments (within the linestring) which project to facets.
881
965
  * * This is done as a sequence of "await" steps.
882
966
  * * Each "await" step deals with approximately PolyfaceQuery.asyncWorkLimit pairings of (linestring edge) with (facet edge)
883
- * * PolyfaceQuery.setAsyncWorkLimit () to change work blocks from default
967
+ * * PolyfaceQuery.setAsyncWorkLimit() to change work blocks from default
884
968
  * * Return chains.
969
+ * * Facets are ASSUMED to be convex and planar, and not overlap in the z direction.
885
970
  */
886
971
  static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints, polyface) {
887
972
  const chainContext = ChainMerge_1.ChainMergeContext.create();