@itwin/core-geometry 4.1.0-dev.8 → 4.1.0-dev.81

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 (676) hide show
  1. package/CHANGELOG.md +87 -1
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/BSplineCurve.d.ts +1 -1
  4. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  5. package/lib/cjs/bspline/BSplineCurve.js +2 -2
  6. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
  8. package/lib/cjs/bspline/BSplineSurface.js +1 -1
  9. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  10. package/lib/cjs/bspline/BezierCurveBase.d.ts +1 -1
  11. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BezierCurveBase.js +2 -2
  13. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  14. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  15. package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts +15 -17
  16. package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
  17. package/lib/cjs/clipping/AlternatingConvexClipTree.js +24 -20
  18. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  19. package/lib/cjs/clipping/BooleanClipFactory.d.ts +28 -28
  20. package/lib/cjs/clipping/BooleanClipFactory.d.ts.map +1 -1
  21. package/lib/cjs/clipping/BooleanClipFactory.js +28 -28
  22. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  23. package/lib/cjs/clipping/BooleanClipNode.d.ts +11 -11
  24. package/lib/cjs/clipping/BooleanClipNode.d.ts.map +1 -1
  25. package/lib/cjs/clipping/BooleanClipNode.js +11 -11
  26. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  27. package/lib/cjs/clipping/ClipPlane.d.ts +73 -76
  28. package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
  29. package/lib/cjs/clipping/ClipPlane.js +105 -86
  30. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  31. package/lib/cjs/clipping/ClipPrimitive.d.ts +78 -47
  32. package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
  33. package/lib/cjs/clipping/ClipPrimitive.js +112 -54
  34. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  35. package/lib/cjs/clipping/ClipUtils.d.ts +54 -44
  36. package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
  37. package/lib/cjs/clipping/ClipUtils.js +33 -29
  38. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  39. package/lib/cjs/clipping/ClipVector.d.ts +39 -25
  40. package/lib/cjs/clipping/ClipVector.d.ts.map +1 -1
  41. package/lib/cjs/clipping/ClipVector.js +35 -23
  42. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  43. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +61 -38
  44. package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  45. package/lib/cjs/clipping/ConvexClipPlaneSet.js +64 -41
  46. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  47. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +49 -30
  48. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  49. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +50 -30
  50. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  51. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +2 -2
  52. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -1
  53. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
  54. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  55. package/lib/cjs/core-geometry.d.ts +5 -1
  56. package/lib/cjs/core-geometry.d.ts.map +1 -1
  57. package/lib/cjs/core-geometry.js +5 -1
  58. package/lib/cjs/core-geometry.js.map +1 -1
  59. package/lib/cjs/curve/Arc3d.d.ts +4 -3
  60. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  61. package/lib/cjs/curve/Arc3d.js +7 -5
  62. package/lib/cjs/curve/Arc3d.js.map +1 -1
  63. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +62 -42
  64. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  65. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +71 -48
  66. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  67. package/lib/cjs/curve/CurveCollection.d.ts +36 -26
  68. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  69. package/lib/cjs/curve/CurveCollection.js +46 -39
  70. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  71. package/lib/cjs/curve/CurveCurve.d.ts +6 -2
  72. package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
  73. package/lib/cjs/curve/CurveCurve.js +13 -9
  74. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  75. package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts +74 -68
  76. package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
  77. package/lib/cjs/curve/CurveCurveCloseApproachXY.js +100 -108
  78. package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
  79. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts +46 -48
  80. package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  81. package/lib/cjs/curve/CurveCurveIntersectXY.js +72 -61
  82. package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
  83. package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts +32 -38
  84. package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
  85. package/lib/cjs/curve/CurveCurveIntersectXYZ.js +86 -97
  86. package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
  87. package/lib/cjs/curve/CurveFactory.d.ts +67 -3
  88. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  89. package/lib/cjs/curve/CurveFactory.js +75 -7
  90. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  91. package/lib/cjs/curve/CurveLocationDetail.d.ts +6 -6
  92. package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
  93. package/lib/cjs/curve/CurveLocationDetail.js +9 -7
  94. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  95. package/lib/cjs/curve/CurveOps.d.ts +77 -0
  96. package/lib/cjs/curve/CurveOps.d.ts.map +1 -0
  97. package/lib/cjs/curve/CurveOps.js +160 -0
  98. package/lib/cjs/curve/CurveOps.js.map +1 -0
  99. package/lib/cjs/curve/CurvePrimitive.d.ts +26 -18
  100. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  101. package/lib/cjs/curve/CurvePrimitive.js +4 -3
  102. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  103. package/lib/cjs/curve/GeometryQuery.d.ts +2 -2
  104. package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -1
  105. package/lib/cjs/curve/GeometryQuery.js +2 -2
  106. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  107. package/lib/cjs/curve/LineSegment3d.d.ts +7 -5
  108. package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
  109. package/lib/cjs/curve/LineSegment3d.js +6 -6
  110. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  111. package/lib/cjs/curve/LineString3d.d.ts +2 -2
  112. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  113. package/lib/cjs/curve/LineString3d.js +3 -3
  114. package/lib/cjs/curve/LineString3d.js.map +1 -1
  115. package/lib/cjs/curve/Loop.d.ts +7 -5
  116. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  117. package/lib/cjs/curve/Loop.js +18 -6
  118. package/lib/cjs/curve/Loop.js.map +1 -1
  119. package/lib/cjs/curve/OffsetOptions.d.ts +97 -0
  120. package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -0
  121. package/lib/cjs/curve/OffsetOptions.js +166 -0
  122. package/lib/cjs/curve/OffsetOptions.js.map +1 -0
  123. package/lib/cjs/curve/ParityRegion.d.ts +7 -7
  124. package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
  125. package/lib/cjs/curve/ParityRegion.js +19 -11
  126. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  127. package/lib/cjs/curve/Path.d.ts +6 -6
  128. package/lib/cjs/curve/Path.d.ts.map +1 -1
  129. package/lib/cjs/curve/Path.js +15 -9
  130. package/lib/cjs/curve/Path.js.map +1 -1
  131. package/lib/cjs/curve/ProxyCurve.d.ts +5 -7
  132. package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
  133. package/lib/cjs/curve/ProxyCurve.js +7 -7
  134. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  135. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  136. package/lib/cjs/curve/RegionOps.d.ts +76 -56
  137. package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
  138. package/lib/cjs/curve/RegionOps.js +83 -60
  139. package/lib/cjs/curve/RegionOps.js.map +1 -1
  140. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +2 -2
  141. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  142. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  143. package/lib/cjs/curve/StrokeOptions.js +6 -2
  144. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  145. package/lib/cjs/curve/UnionRegion.d.ts +6 -5
  146. package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
  147. package/lib/cjs/curve/UnionRegion.js +17 -8
  148. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  149. package/lib/cjs/curve/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
  150. package/lib/cjs/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
  151. package/lib/cjs/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
  152. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -0
  153. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
  154. package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  155. package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
  156. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  157. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +59 -70
  158. package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  159. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +130 -220
  160. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  161. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  162. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  163. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  164. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  165. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts +23 -95
  166. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  167. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +89 -178
  168. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  169. package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  170. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
  171. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  172. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +1 -1
  173. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  174. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts +1 -1
  175. package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  176. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +2 -2
  177. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  178. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +1 -1
  179. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  180. package/lib/cjs/geometry3d/Angle.d.ts +9 -0
  181. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  182. package/lib/cjs/geometry3d/Angle.js +13 -0
  183. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  184. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  185. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  186. package/lib/cjs/geometry3d/BilinearPatch.d.ts +43 -48
  187. package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -1
  188. package/lib/cjs/geometry3d/BilinearPatch.js +51 -55
  189. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  190. package/lib/cjs/geometry3d/Ellipsoid.d.ts +1 -1
  191. package/lib/cjs/geometry3d/Ellipsoid.js +1 -1
  192. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  193. package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
  194. package/lib/cjs/geometry3d/FrameBuilder.js +13 -11
  195. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  196. package/lib/cjs/geometry3d/GeometryHandler.d.ts +103 -97
  197. package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
  198. package/lib/cjs/geometry3d/GeometryHandler.js +247 -124
  199. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  200. package/lib/cjs/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
  201. package/lib/cjs/geometry3d/GrowableBlockedArray.js +1 -1
  202. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  203. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  204. package/lib/cjs/geometry3d/GrowableFloat64Array.js +1 -1
  205. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  206. package/lib/cjs/geometry3d/Matrix3d.d.ts +18 -0
  207. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  208. package/lib/cjs/geometry3d/Matrix3d.js +32 -5
  209. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  210. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  211. package/lib/cjs/geometry3d/Plane3d.d.ts +41 -32
  212. package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
  213. package/lib/cjs/geometry3d/Plane3d.js +11 -8
  214. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  215. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
  216. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  217. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
  218. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  219. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  220. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  221. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +37 -32
  222. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  223. package/lib/cjs/geometry3d/Point2dVector2d.d.ts +8 -9
  224. package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
  225. package/lib/cjs/geometry3d/Point2dVector2d.js +9 -10
  226. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  227. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  228. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +12 -4
  229. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  230. package/lib/cjs/geometry3d/Point3dVector3d.js +18 -5
  231. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  232. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  233. package/lib/cjs/geometry3d/PointHelpers.js +5 -5
  234. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  235. package/lib/cjs/geometry3d/PolygonOps.d.ts +6 -2
  236. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  237. package/lib/cjs/geometry3d/PolygonOps.js +31 -22
  238. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  239. package/lib/cjs/geometry3d/PolylineOps.d.ts +16 -1
  240. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  241. package/lib/cjs/geometry3d/PolylineOps.js +55 -0
  242. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  243. package/lib/cjs/geometry3d/Range.d.ts +134 -94
  244. package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
  245. package/lib/cjs/geometry3d/Range.js +297 -145
  246. package/lib/cjs/geometry3d/Range.js.map +1 -1
  247. package/lib/cjs/geometry3d/Ray2d.d.ts +69 -0
  248. package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -0
  249. package/lib/cjs/geometry3d/Ray2d.js +146 -0
  250. package/lib/cjs/geometry3d/Ray2d.js.map +1 -0
  251. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  252. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  253. package/lib/cjs/geometry3d/Transform.d.ts +10 -3
  254. package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
  255. package/lib/cjs/geometry3d/Transform.js +18 -6
  256. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  257. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  258. package/lib/cjs/numerics/ConvexPolygon2d.d.ts +7 -49
  259. package/lib/cjs/numerics/ConvexPolygon2d.d.ts.map +1 -1
  260. package/lib/cjs/numerics/ConvexPolygon2d.js +16 -107
  261. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  262. package/lib/cjs/numerics/Newton.js.map +1 -1
  263. package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
  264. package/lib/cjs/numerics/Polynomials.js +0 -2
  265. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  266. package/lib/cjs/numerics/Quadrature.js +5 -5
  267. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  268. package/lib/cjs/polyface/IndexedEdgeMatcher.js +1 -1
  269. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  270. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  271. package/lib/cjs/polyface/PolyfaceBuilder.js +2 -2
  272. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  273. package/lib/cjs/polyface/PolyfaceQuery.d.ts +93 -14
  274. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  275. package/lib/cjs/polyface/PolyfaceQuery.js +173 -34
  276. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  277. package/lib/cjs/polyface/TaggedNumericData.js +1 -1
  278. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  279. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
  280. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  281. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +27 -19
  282. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -1
  283. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +30 -12
  284. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  285. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +12 -8
  286. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -1
  287. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +18 -4
  288. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  289. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts +3 -4
  290. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -1
  291. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -5
  292. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  293. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  294. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.d.ts +15 -12
  295. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -1
  296. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  297. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +38 -0
  298. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  299. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +104 -1
  300. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  301. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  302. package/lib/cjs/serialization/GeometrySamples.d.ts +11 -0
  303. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  304. package/lib/cjs/serialization/GeometrySamples.js +30 -0
  305. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  306. package/lib/cjs/serialization/IModelJsonSchema.d.ts +2 -7
  307. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  308. package/lib/cjs/serialization/IModelJsonSchema.js +2 -7
  309. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  310. package/lib/cjs/solid/LinearSweep.d.ts +2 -1
  311. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  312. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  313. package/lib/cjs/solid/RotationalSweep.d.ts +2 -1
  314. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  315. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  316. package/lib/cjs/solid/RuledSweep.d.ts +2 -1
  317. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  318. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  319. package/lib/cjs/solid/SweepContour.d.ts +2 -2
  320. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  321. package/lib/cjs/solid/SweepContour.js +9 -0
  322. package/lib/cjs/solid/SweepContour.js.map +1 -1
  323. package/lib/cjs/topology/ChainMerge.js +1 -1
  324. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  325. package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  326. package/lib/cjs/topology/HalfEdgeGraphSearch.js +1 -1
  327. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  328. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +1 -1
  329. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  330. package/lib/cjs/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
  331. package/lib/cjs/topology/HalfEdgePriorityQueue.js +1 -1
  332. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  333. package/lib/cjs/topology/RegularizeFace.js +3 -3
  334. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  335. package/lib/cjs/topology/Triangulation.js +1 -1
  336. package/lib/cjs/topology/Triangulation.js.map +1 -1
  337. package/lib/esm/Geometry.js.map +1 -1
  338. package/lib/esm/bspline/BSplineCurve.d.ts +1 -1
  339. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  340. package/lib/esm/bspline/BSplineCurve.js +1 -1
  341. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  342. package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
  343. package/lib/esm/bspline/BSplineSurface.js +1 -1
  344. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  345. package/lib/esm/bspline/BezierCurveBase.d.ts +1 -1
  346. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  347. package/lib/esm/bspline/BezierCurveBase.js +1 -1
  348. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  349. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  350. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts +15 -17
  351. package/lib/esm/clipping/AlternatingConvexClipTree.d.ts.map +1 -1
  352. package/lib/esm/clipping/AlternatingConvexClipTree.js +24 -20
  353. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  354. package/lib/esm/clipping/BooleanClipFactory.d.ts +28 -28
  355. package/lib/esm/clipping/BooleanClipFactory.d.ts.map +1 -1
  356. package/lib/esm/clipping/BooleanClipFactory.js +28 -28
  357. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  358. package/lib/esm/clipping/BooleanClipNode.d.ts +11 -11
  359. package/lib/esm/clipping/BooleanClipNode.d.ts.map +1 -1
  360. package/lib/esm/clipping/BooleanClipNode.js +11 -11
  361. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  362. package/lib/esm/clipping/ClipPlane.d.ts +73 -76
  363. package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
  364. package/lib/esm/clipping/ClipPlane.js +105 -86
  365. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  366. package/lib/esm/clipping/ClipPrimitive.d.ts +78 -47
  367. package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
  368. package/lib/esm/clipping/ClipPrimitive.js +112 -54
  369. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  370. package/lib/esm/clipping/ClipUtils.d.ts +54 -44
  371. package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
  372. package/lib/esm/clipping/ClipUtils.js +33 -29
  373. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  374. package/lib/esm/clipping/ClipVector.d.ts +39 -25
  375. package/lib/esm/clipping/ClipVector.d.ts.map +1 -1
  376. package/lib/esm/clipping/ClipVector.js +35 -23
  377. package/lib/esm/clipping/ClipVector.js.map +1 -1
  378. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +61 -38
  379. package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
  380. package/lib/esm/clipping/ConvexClipPlaneSet.js +64 -41
  381. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  382. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +49 -30
  383. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
  384. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +50 -30
  385. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  386. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +2 -2
  387. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -1
  388. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +2 -2
  389. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  390. package/lib/esm/core-geometry.d.ts +5 -1
  391. package/lib/esm/core-geometry.d.ts.map +1 -1
  392. package/lib/esm/core-geometry.js +5 -1
  393. package/lib/esm/core-geometry.js.map +1 -1
  394. package/lib/esm/curve/Arc3d.d.ts +4 -3
  395. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  396. package/lib/esm/curve/Arc3d.js +6 -4
  397. package/lib/esm/curve/Arc3d.js.map +1 -1
  398. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +62 -42
  399. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  400. package/lib/esm/curve/CurveChainWithDistanceIndex.js +70 -47
  401. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  402. package/lib/esm/curve/CurveCollection.d.ts +36 -26
  403. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  404. package/lib/esm/curve/CurveCollection.js +46 -39
  405. package/lib/esm/curve/CurveCollection.js.map +1 -1
  406. package/lib/esm/curve/CurveCurve.d.ts +6 -2
  407. package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
  408. package/lib/esm/curve/CurveCurve.js +13 -9
  409. package/lib/esm/curve/CurveCurve.js.map +1 -1
  410. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +74 -68
  411. package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
  412. package/lib/esm/curve/CurveCurveCloseApproachXY.js +100 -108
  413. package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
  414. package/lib/esm/curve/CurveCurveIntersectXY.d.ts +46 -48
  415. package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
  416. package/lib/esm/curve/CurveCurveIntersectXY.js +72 -61
  417. package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
  418. package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts +32 -38
  419. package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
  420. package/lib/esm/curve/CurveCurveIntersectXYZ.js +86 -97
  421. package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
  422. package/lib/esm/curve/CurveFactory.d.ts +67 -3
  423. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  424. package/lib/esm/curve/CurveFactory.js +74 -6
  425. package/lib/esm/curve/CurveFactory.js.map +1 -1
  426. package/lib/esm/curve/CurveLocationDetail.d.ts +6 -6
  427. package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
  428. package/lib/esm/curve/CurveLocationDetail.js +9 -7
  429. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  430. package/lib/esm/curve/CurveOps.d.ts +77 -0
  431. package/lib/esm/curve/CurveOps.d.ts.map +1 -0
  432. package/lib/esm/curve/CurveOps.js +156 -0
  433. package/lib/esm/curve/CurveOps.js.map +1 -0
  434. package/lib/esm/curve/CurvePrimitive.d.ts +26 -18
  435. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  436. package/lib/esm/curve/CurvePrimitive.js +4 -3
  437. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  438. package/lib/esm/curve/GeometryQuery.d.ts +2 -2
  439. package/lib/esm/curve/GeometryQuery.d.ts.map +1 -1
  440. package/lib/esm/curve/GeometryQuery.js +2 -2
  441. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  442. package/lib/esm/curve/LineSegment3d.d.ts +7 -5
  443. package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
  444. package/lib/esm/curve/LineSegment3d.js +5 -5
  445. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  446. package/lib/esm/curve/LineString3d.d.ts +2 -2
  447. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  448. package/lib/esm/curve/LineString3d.js +2 -2
  449. package/lib/esm/curve/LineString3d.js.map +1 -1
  450. package/lib/esm/curve/Loop.d.ts +7 -5
  451. package/lib/esm/curve/Loop.d.ts.map +1 -1
  452. package/lib/esm/curve/Loop.js +18 -6
  453. package/lib/esm/curve/Loop.js.map +1 -1
  454. package/lib/esm/curve/OffsetOptions.d.ts +97 -0
  455. package/lib/esm/curve/OffsetOptions.d.ts.map +1 -0
  456. package/lib/esm/curve/OffsetOptions.js +161 -0
  457. package/lib/esm/curve/OffsetOptions.js.map +1 -0
  458. package/lib/esm/curve/ParityRegion.d.ts +7 -7
  459. package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
  460. package/lib/esm/curve/ParityRegion.js +19 -11
  461. package/lib/esm/curve/ParityRegion.js.map +1 -1
  462. package/lib/esm/curve/Path.d.ts +6 -6
  463. package/lib/esm/curve/Path.d.ts.map +1 -1
  464. package/lib/esm/curve/Path.js +15 -9
  465. package/lib/esm/curve/Path.js.map +1 -1
  466. package/lib/esm/curve/ProxyCurve.d.ts +5 -7
  467. package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
  468. package/lib/esm/curve/ProxyCurve.js +7 -7
  469. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  470. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  471. package/lib/esm/curve/RegionOps.d.ts +76 -56
  472. package/lib/esm/curve/RegionOps.d.ts.map +1 -1
  473. package/lib/esm/curve/RegionOps.js +84 -61
  474. package/lib/esm/curve/RegionOps.js.map +1 -1
  475. package/lib/esm/curve/RegionOpsClassificationSweeps.js +2 -2
  476. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  477. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  478. package/lib/esm/curve/StrokeOptions.js +6 -2
  479. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  480. package/lib/esm/curve/UnionRegion.d.ts +6 -5
  481. package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
  482. package/lib/esm/curve/UnionRegion.js +17 -8
  483. package/lib/esm/curve/UnionRegion.js.map +1 -1
  484. package/lib/esm/curve/{ChainCollectorContext.d.ts → internalContexts/ChainCollectorContext.d.ts} +4 -4
  485. package/lib/esm/curve/internalContexts/ChainCollectorContext.d.ts.map +1 -0
  486. package/lib/esm/curve/{ChainCollectorContext.js → internalContexts/ChainCollectorContext.js} +4 -4
  487. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -0
  488. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
  489. package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
  490. package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
  491. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  492. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +59 -70
  493. package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
  494. package/lib/esm/curve/internalContexts/MultiChainCollector.js +129 -218
  495. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  496. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
  497. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
  498. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
  499. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  500. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +23 -95
  501. package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
  502. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +86 -173
  503. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  504. package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
  505. package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
  506. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  507. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +1 -1
  508. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  509. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +1 -1
  510. package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -1
  511. package/lib/esm/curve/spiral/TransitionSpiral3d.js +1 -1
  512. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  513. package/lib/esm/curve/spiral/XYCurveEvaluator.js +1 -1
  514. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  515. package/lib/esm/geometry3d/Angle.d.ts +9 -0
  516. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  517. package/lib/esm/geometry3d/Angle.js +13 -0
  518. package/lib/esm/geometry3d/Angle.js.map +1 -1
  519. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  520. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  521. package/lib/esm/geometry3d/BilinearPatch.d.ts +43 -48
  522. package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -1
  523. package/lib/esm/geometry3d/BilinearPatch.js +51 -55
  524. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  525. package/lib/esm/geometry3d/Ellipsoid.d.ts +1 -1
  526. package/lib/esm/geometry3d/Ellipsoid.js +1 -1
  527. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  528. package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
  529. package/lib/esm/geometry3d/FrameBuilder.js +13 -11
  530. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  531. package/lib/esm/geometry3d/GeometryHandler.d.ts +103 -97
  532. package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
  533. package/lib/esm/geometry3d/GeometryHandler.js +247 -124
  534. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  535. package/lib/esm/geometry3d/GrowableBlockedArray.d.ts.map +1 -1
  536. package/lib/esm/geometry3d/GrowableBlockedArray.js +1 -1
  537. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  538. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  539. package/lib/esm/geometry3d/GrowableFloat64Array.js +1 -1
  540. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  541. package/lib/esm/geometry3d/Matrix3d.d.ts +18 -0
  542. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  543. package/lib/esm/geometry3d/Matrix3d.js +32 -5
  544. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  545. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  546. package/lib/esm/geometry3d/Plane3d.d.ts +41 -32
  547. package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
  548. package/lib/esm/geometry3d/Plane3d.js +11 -8
  549. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  550. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +37 -34
  551. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
  552. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +65 -43
  553. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  554. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
  555. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
  556. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +37 -32
  557. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  558. package/lib/esm/geometry3d/Point2dVector2d.d.ts +8 -9
  559. package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
  560. package/lib/esm/geometry3d/Point2dVector2d.js +9 -10
  561. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  562. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  563. package/lib/esm/geometry3d/Point3dVector3d.d.ts +12 -4
  564. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  565. package/lib/esm/geometry3d/Point3dVector3d.js +18 -5
  566. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  567. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  568. package/lib/esm/geometry3d/PointHelpers.js +5 -5
  569. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  570. package/lib/esm/geometry3d/PolygonOps.d.ts +6 -2
  571. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  572. package/lib/esm/geometry3d/PolygonOps.js +31 -22
  573. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  574. package/lib/esm/geometry3d/PolylineOps.d.ts +16 -1
  575. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  576. package/lib/esm/geometry3d/PolylineOps.js +56 -1
  577. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  578. package/lib/esm/geometry3d/Range.d.ts +134 -94
  579. package/lib/esm/geometry3d/Range.d.ts.map +1 -1
  580. package/lib/esm/geometry3d/Range.js +297 -145
  581. package/lib/esm/geometry3d/Range.js.map +1 -1
  582. package/lib/esm/geometry3d/Ray2d.d.ts +69 -0
  583. package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -0
  584. package/lib/esm/geometry3d/Ray2d.js +142 -0
  585. package/lib/esm/geometry3d/Ray2d.js.map +1 -0
  586. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  587. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  588. package/lib/esm/geometry3d/Transform.d.ts +10 -3
  589. package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
  590. package/lib/esm/geometry3d/Transform.js +18 -6
  591. package/lib/esm/geometry3d/Transform.js.map +1 -1
  592. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  593. package/lib/esm/numerics/ConvexPolygon2d.d.ts +7 -49
  594. package/lib/esm/numerics/ConvexPolygon2d.d.ts.map +1 -1
  595. package/lib/esm/numerics/ConvexPolygon2d.js +14 -104
  596. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  597. package/lib/esm/numerics/Newton.js.map +1 -1
  598. package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
  599. package/lib/esm/numerics/Polynomials.js +0 -2
  600. package/lib/esm/numerics/Polynomials.js.map +1 -1
  601. package/lib/esm/numerics/Quadrature.js +5 -5
  602. package/lib/esm/numerics/Quadrature.js.map +1 -1
  603. package/lib/esm/polyface/IndexedEdgeMatcher.js +1 -1
  604. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  605. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  606. package/lib/esm/polyface/PolyfaceBuilder.js +2 -2
  607. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  608. package/lib/esm/polyface/PolyfaceQuery.d.ts +93 -14
  609. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  610. package/lib/esm/polyface/PolyfaceQuery.js +173 -35
  611. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  612. package/lib/esm/polyface/TaggedNumericData.js +1 -1
  613. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  614. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +2 -2
  615. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  616. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +27 -19
  617. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -1
  618. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +30 -12
  619. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  620. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +12 -8
  621. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -1
  622. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +18 -4
  623. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  624. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts +3 -4
  625. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -1
  626. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -5
  627. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  628. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  629. package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts +15 -12
  630. package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -1
  631. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  632. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +38 -0
  633. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
  634. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +102 -1
  635. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  636. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  637. package/lib/esm/serialization/GeometrySamples.d.ts +11 -0
  638. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  639. package/lib/esm/serialization/GeometrySamples.js +30 -0
  640. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  641. package/lib/esm/serialization/IModelJsonSchema.d.ts +2 -7
  642. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  643. package/lib/esm/serialization/IModelJsonSchema.js +2 -7
  644. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  645. package/lib/esm/solid/LinearSweep.d.ts +2 -1
  646. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  647. package/lib/esm/solid/LinearSweep.js.map +1 -1
  648. package/lib/esm/solid/RotationalSweep.d.ts +2 -1
  649. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  650. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  651. package/lib/esm/solid/RuledSweep.d.ts +2 -1
  652. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  653. package/lib/esm/solid/RuledSweep.js.map +1 -1
  654. package/lib/esm/solid/SweepContour.d.ts +2 -2
  655. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  656. package/lib/esm/solid/SweepContour.js +9 -0
  657. package/lib/esm/solid/SweepContour.js.map +1 -1
  658. package/lib/esm/topology/ChainMerge.js +1 -1
  659. package/lib/esm/topology/ChainMerge.js.map +1 -1
  660. package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
  661. package/lib/esm/topology/HalfEdgeGraphSearch.js +1 -1
  662. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  663. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +1 -1
  664. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  665. package/lib/esm/topology/HalfEdgePriorityQueue.d.ts.map +1 -1
  666. package/lib/esm/topology/HalfEdgePriorityQueue.js +1 -1
  667. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  668. package/lib/esm/topology/RegularizeFace.js +3 -3
  669. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  670. package/lib/esm/topology/Triangulation.js +1 -1
  671. package/lib/esm/topology/Triangulation.js.map +1 -1
  672. package/package.json +6 -17
  673. package/lib/cjs/curve/ChainCollectorContext.d.ts.map +0 -1
  674. package/lib/cjs/curve/ChainCollectorContext.js.map +0 -1
  675. package/lib/esm/curve/ChainCollectorContext.d.ts.map +0 -1
  676. package/lib/esm/curve/ChainCollectorContext.js.map +0 -1
@@ -3,128 +3,219 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  /**
6
- * * `GeometryHandler` defines the base abstract methods for double-dispatch geometry computation.
6
+ * `GeometryHandler` defines the base abstract methods for double-dispatch geometry computation.
7
7
  * * User code that wants to handle one or all of the commonly known geometry types implements a handler class.
8
- * * User code that does not handle all types is most likely to start with `NullGeometryHandler`, which will provide no-action implementations for all types.
8
+ * * User code that does not handle all types is most likely to start with `NullGeometryHandler`, which will provide
9
+ * No-action implementations for all types.
9
10
  * @public
10
11
  */
11
12
  export class GeometryHandler {
12
- /** handle strongly typed [[CurveCollection]] */
13
+ /** Handle strongly typed [[CurveCollection]] */
13
14
  handleCurveCollection(_g) { }
14
- /** handle strongly typed Path (base class method calls handleCurveCollection) */
15
- handlePath(g) { return this.handleCurveCollection(g); }
16
- /** handle strongly typed Loop (base class method calls handleCurveCollection) */
17
- handleLoop(g) { return this.handleCurveCollection(g); }
18
- /** handle strongly typed ParityRegion (base class method calls handleCurveCollection) */
19
- handleParityRegion(g) { return this.handleCurveCollection(g); }
20
- /** handle strongly typed UnionRegion (base class method calls handleCurveCollection) */
21
- handleUnionRegion(g) { return this.handleCurveCollection(g); }
22
- /** handle strongly typed BagOfCurves (base class method calls handleCurveCollection) */
23
- handleBagOfCurves(g) { return this.handleCurveCollection(g); }
15
+ /** Handle strongly typed Path (base class method calls handleCurveCollection) */
16
+ handlePath(g) {
17
+ return this.handleCurveCollection(g);
18
+ }
19
+ /** Handle strongly typed Loop (base class method calls handleCurveCollection) */
20
+ handleLoop(g) {
21
+ return this.handleCurveCollection(g);
22
+ }
23
+ /** Handle strongly typed ParityRegion (base class method calls handleCurveCollection) */
24
+ handleParityRegion(g) {
25
+ return this.handleCurveCollection(g);
26
+ }
27
+ /** Handle strongly typed UnionRegion (base class method calls handleCurveCollection) */
28
+ handleUnionRegion(g) {
29
+ return this.handleCurveCollection(g);
30
+ }
31
+ /** Handle strongly typed BagOfCurves (base class method calls handleCurveCollection) */
32
+ handleBagOfCurves(g) {
33
+ return this.handleCurveCollection(g);
34
+ }
24
35
  }
25
36
  /**
26
- * `NullGeometryHandler` is a base class for dispatching various geometry types to
27
- * application specific implementation of some service.
28
- *
37
+ * `NullGeometryHandler` is a base class for dispatching various geometry types to application specific implementation
38
+ * of some service.
29
39
  * To use:
30
40
  * * Derive a class from `NullGeometryHandler`
31
- * * Reimplement any or all of the specific `handleXXXX` methods
41
+ * * Re-implement any or all of the specific `handleXXXX` methods
32
42
  * * Create a handler instance `myHandler`
33
- * * To send a `GeometryQuery` object `candidateGeometry` through the (fast) dispatch, invoke `candidateGeometry.dispatchToHandler (myHandler)
43
+ * * To send a `GeometryQuery` object `candidateGeometry` through the (fast) dispatch, invoke
44
+ * `candidateGeometry.dispatchToHandler (myHandler).
34
45
  * * The appropriate method or methods will get called with a strongly typed `_g ` value.
35
46
  * @public
36
47
  */
37
48
  export class NullGeometryHandler extends GeometryHandler {
38
- /** no-action implementation */
39
- handleLineSegment3d(_g) { return undefined; }
40
- /** no-action implementation */
41
- handleLineString3d(_g) { return undefined; }
42
- /** no-action implementation */
43
- handleArc3d(_g) { return undefined; }
44
- /** no-action implementation */
45
- handleCurveCollection(_g) { return undefined; }
46
- /** no-action implementation */
47
- handleBSplineCurve3d(_g) { return undefined; }
48
- /** no-action implementation */
49
- handleInterpolationCurve3d(_g) { return undefined; }
50
- /** no-action implementation */
51
- handleAkimaCurve3d(_g) { return undefined; }
52
- /** no-action implementation */
53
- handleBSplineCurve3dH(_g) { return undefined; }
54
- /** no-action implementation */
55
- handleBSplineSurface3d(_g) { return undefined; }
56
- /** no-action implementation */
57
- handleCoordinateXYZ(_g) { return undefined; }
58
- /** no-action implementation */
59
- handleBSplineSurface3dH(_g) { return undefined; }
60
- /** no-action implementation */
61
- handleIndexedPolyface(_g) { return undefined; }
62
- /** no-action implementation
49
+ /** No-action implementation */
50
+ handleLineSegment3d(_g) {
51
+ return undefined;
52
+ }
53
+ /** No-action implementation */
54
+ handleLineString3d(_g) {
55
+ return undefined;
56
+ }
57
+ /** No-action implementation */
58
+ handleArc3d(_g) {
59
+ return undefined;
60
+ }
61
+ /** No-action implementation */
62
+ handleCurveCollection(_g) {
63
+ return undefined;
64
+ }
65
+ /** No-action implementation */
66
+ handleBSplineCurve3d(_g) {
67
+ return undefined;
68
+ }
69
+ /** No-action implementation */
70
+ handleInterpolationCurve3d(_g) {
71
+ return undefined;
72
+ }
73
+ /** No-action implementation */
74
+ handleAkimaCurve3d(_g) {
75
+ return undefined;
76
+ }
77
+ /** No-action implementation */
78
+ handleBSplineCurve3dH(_g) {
79
+ return undefined;
80
+ }
81
+ /** No-action implementation */
82
+ handleBSplineSurface3d(_g) {
83
+ return undefined;
84
+ }
85
+ /** No-action implementation */
86
+ handleCoordinateXYZ(_g) {
87
+ return undefined;
88
+ }
89
+ /** No-action implementation */
90
+ handleBSplineSurface3dH(_g) {
91
+ return undefined;
92
+ }
93
+ /** No-action implementation */
94
+ handleIndexedPolyface(_g) {
95
+ return undefined;
96
+ }
97
+ /** No-action implementation
63
98
  * @alpha
64
99
  */
65
- handleTransitionSpiral(_g) { return undefined; }
66
- /** no-action implementation */
67
- handlePath(_g) { return undefined; }
68
- /** no-action implementation */
69
- handleLoop(_g) { return undefined; }
70
- /** no-action implementation */
71
- handleParityRegion(_g) { return undefined; }
72
- /** no-action implementation */
73
- handleUnionRegion(_g) { return undefined; }
74
- /** no-action implementation */
75
- handleBagOfCurves(_g) { return undefined; }
76
- /** no-action implementation */
77
- handleSphere(_g) { return undefined; }
78
- /** no-action implementation */
79
- handleCone(_g) { return undefined; }
80
- /** no-action implementation */
81
- handleBox(_g) { return undefined; }
82
- /** no-action implementation */
83
- handleTorusPipe(_g) { return undefined; }
84
- /** no-action implementation */
85
- handleLinearSweep(_g) { return undefined; }
86
- /** no-action implementation */
87
- handleRotationalSweep(_g) { return undefined; }
88
- /** no-action implementation */
89
- handleRuledSweep(_g) { return undefined; }
90
- /** no-action implementation */
91
- handlePointString3d(_g) { return undefined; }
92
- /** no-action implementation */
93
- handleBezierCurve3d(_g) { return undefined; }
94
- /** no-action implementation */
95
- handleBezierCurve3dH(_g) { return undefined; }
100
+ handleTransitionSpiral(_g) {
101
+ return undefined;
102
+ }
103
+ /** No-action implementation */
104
+ handlePath(_g) {
105
+ return undefined;
106
+ }
107
+ /** No-action implementation */
108
+ handleLoop(_g) {
109
+ return undefined;
110
+ }
111
+ /** No-action implementation */
112
+ handleParityRegion(_g) {
113
+ return undefined;
114
+ }
115
+ /** No-action implementation */
116
+ handleUnionRegion(_g) {
117
+ return undefined;
118
+ }
119
+ /** No-action implementation */
120
+ handleBagOfCurves(_g) {
121
+ return undefined;
122
+ }
123
+ /** No-action implementation */
124
+ handleSphere(_g) {
125
+ return undefined;
126
+ }
127
+ /** No-action implementation */
128
+ handleCone(_g) {
129
+ return undefined;
130
+ }
131
+ /** No-action implementation */
132
+ handleBox(_g) {
133
+ return undefined;
134
+ }
135
+ /** No-action implementation */
136
+ handleTorusPipe(_g) {
137
+ return undefined;
138
+ }
139
+ /** No-action implementation */
140
+ handleLinearSweep(_g) {
141
+ return undefined;
142
+ }
143
+ /** No-action implementation */
144
+ handleRotationalSweep(_g) {
145
+ return undefined;
146
+ }
147
+ /** No-action implementation */
148
+ handleRuledSweep(_g) {
149
+ return undefined;
150
+ }
151
+ /** No-action implementation */
152
+ handlePointString3d(_g) {
153
+ return undefined;
154
+ }
155
+ /** No-action implementation */
156
+ handleBezierCurve3d(_g) {
157
+ return undefined;
158
+ }
159
+ /** No-action implementation */
160
+ handleBezierCurve3dH(_g) {
161
+ return undefined;
162
+ }
96
163
  }
97
164
  /**
98
165
  * Implement GeometryHandler methods, with all curve collection methods recursing to children.
99
166
  * @public
100
167
  */
101
168
  export class RecurseToCurvesGeometryHandler extends GeometryHandler {
102
- /** no-action implementation */
103
- handleLineSegment3d(_g) { return undefined; }
104
- /** no-action implementation */
105
- handleLineString3d(_g) { return undefined; }
106
- /** no-action implementation */
107
- handleArc3d(_g) { return undefined; }
108
- /** no-action implementation */
109
- handleBSplineCurve3d(_g) { return undefined; }
110
- /** no-action implementation */
111
- handleInterpolationCurve3d(_g) { return undefined; }
112
- /** no-action implementation */
113
- handleAkimaCurve3d(_g) { return undefined; }
114
- /** no-action implementation */
115
- handleBSplineCurve3dH(_g) { return undefined; }
116
- /** no-action implementation */
117
- handleBSplineSurface3d(_g) { return undefined; }
118
- /** no-action implementation */
119
- handleCoordinateXYZ(_g) { return undefined; }
120
- /** no-action implementation */
121
- handleBSplineSurface3dH(_g) { return undefined; }
122
- /** no-action implementation */
123
- handleIndexedPolyface(_g) { return undefined; }
124
- /** no-action implementation
169
+ /** No-action implementation */
170
+ handleLineSegment3d(_g) {
171
+ return undefined;
172
+ }
173
+ /** No-action implementation */
174
+ handleLineString3d(_g) {
175
+ return undefined;
176
+ }
177
+ /** No-action implementation */
178
+ handleArc3d(_g) {
179
+ return undefined;
180
+ }
181
+ /** No-action implementation */
182
+ handleBSplineCurve3d(_g) {
183
+ return undefined;
184
+ }
185
+ /** No-action implementation */
186
+ handleInterpolationCurve3d(_g) {
187
+ return undefined;
188
+ }
189
+ /** No-action implementation */
190
+ handleAkimaCurve3d(_g) {
191
+ return undefined;
192
+ }
193
+ /** No-action implementation */
194
+ handleBSplineCurve3dH(_g) {
195
+ return undefined;
196
+ }
197
+ /** No-action implementation */
198
+ handleBSplineSurface3d(_g) {
199
+ return undefined;
200
+ }
201
+ /** No-action implementation */
202
+ handleCoordinateXYZ(_g) {
203
+ return undefined;
204
+ }
205
+ /** No-action implementation */
206
+ handleBSplineSurface3dH(_g) {
207
+ return undefined;
208
+ }
209
+ /** No-action implementation */
210
+ handleIndexedPolyface(_g) {
211
+ return undefined;
212
+ }
213
+ /** No-action implementation
125
214
  * @alpha
126
215
  */
127
- handleTransitionSpiral(_g) { return undefined; }
216
+ handleTransitionSpiral(_g) {
217
+ return undefined;
218
+ }
128
219
  /** Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children` */
129
220
  handleChildren(g) {
130
221
  const children = g.children;
@@ -134,36 +225,68 @@ export class RecurseToCurvesGeometryHandler extends GeometryHandler {
134
225
  }
135
226
  }
136
227
  /** Recurse to children */
137
- handleCurveCollection(g) { return this.handleChildren(g); }
228
+ handleCurveCollection(g) {
229
+ return this.handleChildren(g);
230
+ }
138
231
  /** Recurse to children */
139
- handlePath(g) { return this.handleChildren(g); }
232
+ handlePath(g) {
233
+ return this.handleChildren(g);
234
+ }
140
235
  /** Recurse to children */
141
- handleLoop(g) { return this.handleChildren(g); }
236
+ handleLoop(g) {
237
+ return this.handleChildren(g);
238
+ }
142
239
  /** Recurse to children */
143
- handleParityRegion(g) { return this.handleChildren(g); }
240
+ handleParityRegion(g) {
241
+ return this.handleChildren(g);
242
+ }
144
243
  /** Recurse to children */
145
- handleUnionRegion(g) { return this.handleChildren(g); }
244
+ handleUnionRegion(g) {
245
+ return this.handleChildren(g);
246
+ }
146
247
  /** Recurse to children */
147
- handleBagOfCurves(g) { return this.handleChildren(g); }
148
- /** no-action implementation */
149
- handleSphere(_g) { return undefined; }
150
- /** no-action implementation */
151
- handleCone(_g) { return undefined; }
152
- /** no-action implementation */
153
- handleBox(_g) { return undefined; }
154
- /** no-action implementation */
155
- handleTorusPipe(_g) { return undefined; }
156
- /** no-action implementation */
157
- handleLinearSweep(_g) { return undefined; }
158
- /** no-action implementation */
159
- handleRotationalSweep(_g) { return undefined; }
160
- /** no-action implementation */
161
- handleRuledSweep(_g) { return undefined; }
162
- /** no-action implementation */
163
- handlePointString3d(_g) { return undefined; }
164
- /** no-action implementation */
165
- handleBezierCurve3d(_g) { return undefined; }
166
- /** no-action implementation */
167
- handleBezierCurve3dH(_g) { return undefined; }
248
+ handleBagOfCurves(g) {
249
+ return this.handleChildren(g);
250
+ }
251
+ /** No-action implementation */
252
+ handleSphere(_g) {
253
+ return undefined;
254
+ }
255
+ /** No-action implementation */
256
+ handleCone(_g) {
257
+ return undefined;
258
+ }
259
+ /** No-action implementation */
260
+ handleBox(_g) {
261
+ return undefined;
262
+ }
263
+ /** No-action implementation */
264
+ handleTorusPipe(_g) {
265
+ return undefined;
266
+ }
267
+ /** No-action implementation */
268
+ handleLinearSweep(_g) {
269
+ return undefined;
270
+ }
271
+ /** No-action implementation */
272
+ handleRotationalSweep(_g) {
273
+ return undefined;
274
+ }
275
+ /** No-action implementation */
276
+ handleRuledSweep(_g) {
277
+ return undefined;
278
+ }
279
+ /** No-action implementation */
280
+ handlePointString3d(_g) {
281
+ return undefined;
282
+ }
283
+ /** No-action implementation */
284
+ handleBezierCurve3d(_g) {
285
+ return undefined;
286
+ }
287
+ /** No-action implementation */
288
+ handleBezierCurve3dH(_g) {
289
+ return undefined;
290
+ }
168
291
  }
169
292
  //# sourceMappingURL=GeometryHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryHandler.js","sourceRoot":"","sources":["../../../src/geometry3d/GeometryHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module ArraysAndInterfaces\r\n */\r\n\r\nimport { AkimaCurve3d } from \"../bspline/AkimaCurve3d\";\r\nimport { BezierCurve3d } from \"../bspline/BezierCurve3d\";\r\nimport { BezierCurve3dH } from \"../bspline/BezierCurve3dH\";\r\nimport { BezierCurveBase } from \"../bspline/BezierCurveBase\";\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH } from \"../bspline/BSplineSurface\";\r\nimport { InterpolationCurve3d } from \"../bspline/InterpolationCurve3d\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { BagOfCurves, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { PointString3d } from \"../curve/PointString3d\";\r\nimport { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { IndexedPolyface } from \"../polyface/Polyface\";\r\nimport { Box } from \"../solid/Box\";\r\nimport { Cone } from \"../solid/Cone\";\r\nimport { LinearSweep } from \"../solid/LinearSweep\";\r\nimport { RotationalSweep } from \"../solid/RotationalSweep\";\r\nimport { RuledSweep } from \"../solid/RuledSweep\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { Plane3dByOriginAndVectors } from \"./Plane3dByOriginAndVectors\";\r\nimport { Vector2d } from \"./Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\n\r\n/**\r\n * * `GeometryHandler` defines the base abstract methods for double-dispatch geometry computation.\r\n * * User code that wants to handle one or all of the commonly known geometry types implements a handler class.\r\n * * User code that does not handle all types is most likely to start with `NullGeometryHandler`, which will provide no-action implementations for all types.\r\n * @public\r\n */\r\nexport abstract class GeometryHandler {\r\n /** handle strongly typed [[LineSegment3d]] */\r\n public abstract handleLineSegment3d(g: LineSegment3d): any;\r\n /** handle strongly typed [[LineString3d]] */\r\n public abstract handleLineString3d(g: LineString3d): any;\r\n /** handle strongly typed [[Arc3d]] */\r\n public abstract handleArc3d(g: Arc3d): any;\r\n /** handle strongly typed [[CurveCollection]] */\r\n public handleCurveCollection(_g: CurveCollection): any { }\r\n /** handle strongly typed [[BSplineCurve3d]] */\r\n public abstract handleBSplineCurve3d(g: BSplineCurve3d): any;\r\n /** handle strongly typed [[InterpolationCurve3d]] */\r\n public abstract handleInterpolationCurve3d(g: InterpolationCurve3d): any;\r\n /** handle strongly typed [[AkimaCurve3d]] */\r\n public abstract handleAkimaCurve3d(g: AkimaCurve3d): any;\r\n /** handle strongly typed [[BSplineCurve3dH]] */\r\n public abstract handleBSplineCurve3dH(g: BSplineCurve3dH): any;\r\n /** handle strongly typed [[BSplineSurface3d]] */\r\n public abstract handleBSplineSurface3d(g: BSplineSurface3d): any;\r\n /** handle strongly typed [[CoordinateXYZ]] */\r\n public abstract handleCoordinateXYZ(g: CoordinateXYZ): any;\r\n /** handle strongly typed [[BSplineSurface3dH]] */\r\n public abstract handleBSplineSurface3dH(g: BSplineSurface3dH): any;\r\n /** handle strongly typed [[IndexedPolyface]] */\r\n public abstract handleIndexedPolyface(g: IndexedPolyface): any;\r\n /** handle strongly typed [[TransitionSpiral3d]]\r\n * @alpha\r\n */\r\n public abstract handleTransitionSpiral(g: TransitionSpiral3d): any;\r\n\r\n /** handle strongly typed Path (base class method calls handleCurveCollection) */\r\n public handlePath(g: Path): any { return this.handleCurveCollection(g); }\r\n /** handle strongly typed Loop (base class method calls handleCurveCollection) */\r\n public handleLoop(g: Loop): any { return this.handleCurveCollection(g); }\r\n /** handle strongly typed ParityRegion (base class method calls handleCurveCollection) */\r\n public handleParityRegion(g: ParityRegion): any { return this.handleCurveCollection(g); }\r\n /** handle strongly typed UnionRegion (base class method calls handleCurveCollection) */\r\n public handleUnionRegion(g: UnionRegion): any { return this.handleCurveCollection(g); }\r\n /** handle strongly typed BagOfCurves (base class method calls handleCurveCollection) */\r\n public handleBagOfCurves(g: BagOfCurves): any { return this.handleCurveCollection(g); }\r\n /** handle strongly typed BagOfCurves (base class method calls handleCurveCollection) */\r\n /** handle strongly typed Sphere */\r\n public abstract handleSphere(g: Sphere): any;\r\n /** handle strongly typed Cone */\r\n public abstract handleCone(g: Cone): any;\r\n /** handle strongly typed Box */\r\n public abstract handleBox(g: Box): any;\r\n /** handle strongly typed TorusPipe */\r\n public abstract handleTorusPipe(g: TorusPipe): any;\r\n /** handle strongly typed LinearSweep */\r\n public abstract handleLinearSweep(g: LinearSweep): any;\r\n /** handle strongly typed RotationalSweep */\r\n public abstract handleRotationalSweep(g: RotationalSweep): any;\r\n /** handle strongly typed RuledSweep */\r\n public abstract handleRuledSweep(g: RuledSweep): any;\r\n /** handle strongly typed PointString3d */\r\n public abstract handlePointString3d(g: PointString3d): any;\r\n /** handle strongly typed BezierCurve3d */\r\n public abstract handleBezierCurve3d(g: BezierCurve3d): any;\r\n /** handle strongly typed BezierCurve3dH */\r\n public abstract handleBezierCurve3dH(g: BezierCurve3dH): any;\r\n}\r\n/**\r\n * `NullGeometryHandler` is a base class for dispatching various geometry types to\r\n * application specific implementation of some service.\r\n *\r\n * To use:\r\n * * Derive a class from `NullGeometryHandler`\r\n * * Reimplement any or all of the specific `handleXXXX` methods\r\n * * Create a handler instance `myHandler`\r\n * * To send a `GeometryQuery` object `candidateGeometry` through the (fast) dispatch, invoke `candidateGeometry.dispatchToHandler (myHandler)\r\n * * The appropriate method or methods will get called with a strongly typed `_g ` value.\r\n * @public\r\n */\r\nexport class NullGeometryHandler extends GeometryHandler {\r\n /** no-action implementation */\r\n public handleLineSegment3d(_g: LineSegment3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleLineString3d(_g: LineString3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleArc3d(_g: Arc3d): any { return undefined; }\r\n /** no-action implementation */\r\n public override handleCurveCollection(_g: CurveCollection): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineCurve3d(_g: BSplineCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleInterpolationCurve3d(_g: InterpolationCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleAkimaCurve3d(_g: AkimaCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineCurve3dH(_g: BSplineCurve3dH): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineSurface3d(_g: BSplineSurface3d): any { return undefined; }\r\n\r\n /** no-action implementation */\r\n public handleCoordinateXYZ(_g: CoordinateXYZ): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineSurface3dH(_g: BSplineSurface3dH): any { return undefined; }\r\n /** no-action implementation */\r\n public handleIndexedPolyface(_g: IndexedPolyface): any { return undefined; }\r\n /** no-action implementation\r\n * @alpha\r\n */\r\n public handleTransitionSpiral(_g: TransitionSpiral3d): any { return undefined; }\r\n\r\n /** no-action implementation */\r\n public override handlePath(_g: Path): any { return undefined; }\r\n /** no-action implementation */\r\n public override handleLoop(_g: Loop): any { return undefined; }\r\n /** no-action implementation */\r\n public override handleParityRegion(_g: ParityRegion): any { return undefined; }\r\n /** no-action implementation */\r\n public override handleUnionRegion(_g: UnionRegion): any { return undefined; }\r\n /** no-action implementation */\r\n public override handleBagOfCurves(_g: BagOfCurves): any { return undefined; }\r\n\r\n /** no-action implementation */\r\n public handleSphere(_g: Sphere): any { return undefined; }\r\n /** no-action implementation */\r\n public handleCone(_g: Cone): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBox(_g: Box): any { return undefined; }\r\n /** no-action implementation */\r\n public handleTorusPipe(_g: TorusPipe): any { return undefined; }\r\n /** no-action implementation */\r\n public handleLinearSweep(_g: LinearSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handleRotationalSweep(_g: RotationalSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handleRuledSweep(_g: RuledSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handlePointString3d(_g: PointString3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBezierCurve3d(_g: BezierCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBezierCurve3dH(_g: BezierCurve3dH): any { return undefined; }\r\n}\r\n/**\r\n * Implement GeometryHandler methods, with all curve collection methods recursing to children.\r\n * @public\r\n */\r\nexport class RecurseToCurvesGeometryHandler extends GeometryHandler {\r\n /** no-action implementation */\r\n public handleLineSegment3d(_g: LineSegment3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleLineString3d(_g: LineString3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleArc3d(_g: Arc3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineCurve3d(_g: BSplineCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleInterpolationCurve3d(_g: InterpolationCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleAkimaCurve3d(_g: AkimaCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineCurve3dH(_g: BSplineCurve3dH): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineSurface3d(_g: BSplineSurface3d): any { return undefined; }\r\n\r\n /** no-action implementation */\r\n public handleCoordinateXYZ(_g: CoordinateXYZ): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBSplineSurface3dH(_g: BSplineSurface3dH): any { return undefined; }\r\n /** no-action implementation */\r\n public handleIndexedPolyface(_g: IndexedPolyface): any { return undefined; }\r\n /** no-action implementation\r\n * @alpha\r\n */\r\n public handleTransitionSpiral(_g: TransitionSpiral3d): any { return undefined; }\r\n /** Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children` */\r\n public handleChildren(g: GeometryQuery): any {\r\n const children = g.children;\r\n if (children)\r\n for (const child of children) {\r\n child.dispatchToGeometryHandler(this);\r\n }\r\n }\r\n /** Recurse to children */\r\n public override handleCurveCollection(g: CurveCollection): any { return this.handleChildren(g); }\r\n\r\n /** Recurse to children */\r\n public override handlePath(g: Path): any { return this.handleChildren(g); }\r\n /** Recurse to children */\r\n public override handleLoop(g: Loop): any { return this.handleChildren(g); }\r\n /** Recurse to children */\r\n public override handleParityRegion(g: ParityRegion): any { return this.handleChildren(g); }\r\n /** Recurse to children */\r\n public override handleUnionRegion(g: UnionRegion): any { return this.handleChildren(g); }\r\n /** Recurse to children */\r\n public override handleBagOfCurves(g: BagOfCurves): any { return this.handleChildren(g); }\r\n\r\n /** no-action implementation */\r\n public handleSphere(_g: Sphere): any { return undefined; }\r\n /** no-action implementation */\r\n public handleCone(_g: Cone): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBox(_g: Box): any { return undefined; }\r\n /** no-action implementation */\r\n public handleTorusPipe(_g: TorusPipe): any { return undefined; }\r\n /** no-action implementation */\r\n public handleLinearSweep(_g: LinearSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handleRotationalSweep(_g: RotationalSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handleRuledSweep(_g: RuledSweep): any { return undefined; }\r\n /** no-action implementation */\r\n public handlePointString3d(_g: PointString3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBezierCurve3d(_g: BezierCurve3d): any { return undefined; }\r\n /** no-action implementation */\r\n public handleBezierCurve3dH(_g: BezierCurve3dH): any { return undefined; }\r\n}\r\n\r\n/** IStrokeHandler is an interface with methods to receive data about curves being stroked.\r\n * CurvePrimitives emitStrokes () methods emit calls to a handler object with these methods.\r\n * The various CurvePrimitive types are free to announce either single points (announcePoint), linear fragments,\r\n * or fractional intervals of the parent curve.\r\n * * handler.startCurvePrimitive (cp) -- announce the curve primitive whose strokes will follow.\r\n * * announcePointTangent (xyz, fraction, tangent) -- announce a single point on the curve.\r\n * * announceIntervalForUniformStepStrokes (cp, numStrokes, fraction0, fraction1) -- announce a fraction\r\n * interval in which the curve can be evaluated (e.g. the handler can call cp->fractionToPointAndDerivative ())\r\n * * announceSegmentInterval (cp, point0, point1, numStrokes, fraction0, fraction1) -- announce\r\n * that the fractional interval fraction0, fraction1 is a straight line which should be broken into\r\n * numStrokes strokes.\r\n * * A LineSegment would make a single call to this.\r\n * * A LineString would make one call to this for each of its segments, with fractions indicating position\r\n * within the linestring.\r\n * * endCurvePrimitive (cp) -- announce the end of the curve primitive.\r\n * @public\r\n */\r\nexport interface IStrokeHandler {\r\n /** announce a parent curve primitive\r\n * * startParentCurvePrimitive() ...endParentCurvePrimitive() are wrapped around startCurvePrimitive and endCurvePrimitive when the interior primitive is a proxy.\r\n */\r\n startParentCurvePrimitive(cp: CurvePrimitive): void;\r\n /** Announce the curve primitive that will be described in subsequent calls. */\r\n startCurvePrimitive(cp: CurvePrimitive): void;\r\n /**\r\n * announce a single point with its fraction and tangent.\r\n * * (IMPORTANT) the same Point3d and Vector3d will be reset and passed on multiple calls.\r\n * * (THEREFORE) if the implementation is saving coordinates, it must copy the xyz data out into its own data structure rather than save the references.\r\n */\r\n announcePointTangent(xyz: Point3d, fraction: number, tangent: Vector3d): void;\r\n\r\n /** Announce that curve primitive cp should be evaluated in the specified fraction interval.\r\n * * Note that this method is permitted (expected) to provide pre-stroked data if available.\r\n * * In th pre-stroked case, the cp passed to the handler will be the stroked image, not the original.\r\n * * Callers that want summary data should implement (and return true from) needPrimaryDataForStrokes\r\n */\r\n announceIntervalForUniformStepStrokes(\r\n cp: CurvePrimitive,\r\n numStrokes: number,\r\n fraction0: number,\r\n fraction1: number): void;\r\n /**\r\n * OPTIONAL method for a handler to indicate that it wants primary geometry (e.g. spirals) rather than strokes.\r\n * @returns true if primary geometry should be passed (rather than stroked or otherwise simplified)\r\n */\r\n needPrimaryGeometryForStrokes?(): boolean;\r\n /** Announce numPoints interpolated between point0 and point1, with associated fractions */\r\n announceSegmentInterval(\r\n cp: CurvePrimitive,\r\n point0: Point3d,\r\n point1: Point3d,\r\n numStrokes: number,\r\n fraction0: number,\r\n fraction1: number): void;\r\n /** Announce that all data about `cp` has been announced. */\r\n endCurvePrimitive(cp: CurvePrimitive): void;\r\n /** Announce that all data about the parent primitive has been announced. */\r\n endParentCurvePrimitive(cp: CurvePrimitive): void;\r\n /**\r\n * Announce a bezier curve fragment.\r\n * * this is usually a section of BsplineCurve\r\n * * If this function is missing, the same interval will be passed to announceIntervalForUniformSteps.\r\n * @param bezier bezier fragment\r\n * @param numStrokes suggested number of strokes (uniform in bezier interval 0..1)\r\n * @param parent parent curve\r\n * @param spanIndex spanIndex within parent\r\n * @param fraction0 start fraction on parent curve\r\n * @param fraction1 end fraction on parent curve\r\n */\r\n announceBezierCurve?(\r\n bezier: BezierCurveBase,\r\n numStrokes: number,\r\n parent: CurvePrimitive,\r\n spandex: number,\r\n fraction0: number,\r\n fraction1: number): void;\r\n}\r\n\r\n/**\r\n * Interface with methods for mapping (u,v) fractional coordinates to surface xyz and derivatives.\r\n * @public\r\n */\r\nexport interface UVSurface {\r\n /**\r\n * Convert fractional u and v coordinates to surface point\r\n * @param uFraction fractional coordinate in u direction\r\n * @param vFraction fractional coordinate in the v direction\r\n * @param result optional pre-allocated point\r\n */\r\n uvFractionToPoint(uFraction: number, vFraction: number, result?: Point3d): Point3d;\r\n /**\r\n * Convert fractional u and v coordinates to surface point and in-surface tangent directions.\r\n * * Remark: the vectors are expected to be non-zero tangents which can be crossed to get a normal.\r\n * * Hence the are NOT precisely either (a) partial derivatives or (b) frenet vectors\r\n * @param uFraction fractional coordinate in u direction\r\n * @param vFraction fractional coordinate in the v direction\r\n * @param result optional pre-allocated carrier for point and vectors\r\n */\r\n uvFractionToPointAndTangents(uFraction: number, vFraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors;\r\n}\r\n/**\r\n * Interface for queries of distance-along in u and v directions\r\n * @public\r\n */\r\nexport interface UVSurfaceIsoParametricDistance {\r\n /**\r\n * * Return a vector whose x and y parts are \"size\" of the surface in the u and v directions.\r\n * * Sizes are use for applying scaling to mesh parameters\r\n * * These sizes are (reasonable approximations of) the max curve length along u and v isoparameter lines.\r\n * * e.g. for a sphere, these are:\r\n * * u direction = distance around the equator\r\n * * v direction = distance from south pole to north pole.\r\n */\r\n maxIsoParametricDistance(): Vector2d;\r\n}\r\n"]}
1
+ {"version":3,"file":"GeometryHandler.js","sourceRoot":"","sources":["../../../src/geometry3d/GeometryHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module ArraysAndInterfaces\r\n */\r\n\r\nimport { AkimaCurve3d } from \"../bspline/AkimaCurve3d\";\r\nimport { BezierCurve3d } from \"../bspline/BezierCurve3d\";\r\nimport { BezierCurve3dH } from \"../bspline/BezierCurve3dH\";\r\nimport { BezierCurveBase } from \"../bspline/BezierCurveBase\";\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { BSplineCurve3dH } from \"../bspline/BSplineCurve3dH\";\r\nimport { BSplineSurface3d, BSplineSurface3dH } from \"../bspline/BSplineSurface\";\r\nimport { InterpolationCurve3d } from \"../bspline/InterpolationCurve3d\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { BagOfCurves, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { Path } from \"../curve/Path\";\r\nimport { PointString3d } from \"../curve/PointString3d\";\r\nimport { TransitionSpiral3d } from \"../curve/spiral/TransitionSpiral3d\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { IndexedPolyface } from \"../polyface/Polyface\";\r\nimport { Box } from \"../solid/Box\";\r\nimport { Cone } from \"../solid/Cone\";\r\nimport { LinearSweep } from \"../solid/LinearSweep\";\r\nimport { RotationalSweep } from \"../solid/RotationalSweep\";\r\nimport { RuledSweep } from \"../solid/RuledSweep\";\r\nimport { Sphere } from \"../solid/Sphere\";\r\nimport { TorusPipe } from \"../solid/TorusPipe\";\r\nimport { Plane3dByOriginAndVectors } from \"./Plane3dByOriginAndVectors\";\r\nimport { Vector2d } from \"./Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\n\r\n/**\r\n * `GeometryHandler` defines the base abstract methods for double-dispatch geometry computation.\r\n * * User code that wants to handle one or all of the commonly known geometry types implements a handler class.\r\n * * User code that does not handle all types is most likely to start with `NullGeometryHandler`, which will provide\r\n * No-action implementations for all types.\r\n * @public\r\n */\r\nexport abstract class GeometryHandler {\r\n /** Handle strongly typed [[LineSegment3d]] */\r\n public abstract handleLineSegment3d(g: LineSegment3d): any;\r\n /** Handle strongly typed [[LineString3d]] */\r\n public abstract handleLineString3d(g: LineString3d): any;\r\n /** Handle strongly typed [[Arc3d]] */\r\n public abstract handleArc3d(g: Arc3d): any;\r\n /** Handle strongly typed [[CurveCollection]] */\r\n public handleCurveCollection(_g: CurveCollection): any { }\r\n /** Handle strongly typed [[BSplineCurve3d]] */\r\n public abstract handleBSplineCurve3d(g: BSplineCurve3d): any;\r\n /** Handle strongly typed [[InterpolationCurve3d]] */\r\n public abstract handleInterpolationCurve3d(g: InterpolationCurve3d): any;\r\n /** Handle strongly typed [[AkimaCurve3d]] */\r\n public abstract handleAkimaCurve3d(g: AkimaCurve3d): any;\r\n /** Handle strongly typed [[BSplineCurve3dH]] */\r\n public abstract handleBSplineCurve3dH(g: BSplineCurve3dH): any;\r\n /** Handle strongly typed [[BSplineSurface3d]] */\r\n public abstract handleBSplineSurface3d(g: BSplineSurface3d): any;\r\n /** Handle strongly typed [[CoordinateXYZ]] */\r\n public abstract handleCoordinateXYZ(g: CoordinateXYZ): any;\r\n /** Handle strongly typed [[BSplineSurface3dH]] */\r\n public abstract handleBSplineSurface3dH(g: BSplineSurface3dH): any;\r\n /** Handle strongly typed [[IndexedPolyface]] */\r\n public abstract handleIndexedPolyface(g: IndexedPolyface): any;\r\n /**\r\n * Handle strongly typed [[TransitionSpiral3d]]\r\n * @alpha\r\n */\r\n public abstract handleTransitionSpiral(g: TransitionSpiral3d): any;\r\n /** Handle strongly typed Path (base class method calls handleCurveCollection) */\r\n public handlePath(g: Path): any {\r\n return this.handleCurveCollection(g);\r\n }\r\n /** Handle strongly typed Loop (base class method calls handleCurveCollection) */\r\n public handleLoop(g: Loop): any {\r\n return this.handleCurveCollection(g);\r\n }\r\n /** Handle strongly typed ParityRegion (base class method calls handleCurveCollection) */\r\n public handleParityRegion(g: ParityRegion): any {\r\n return this.handleCurveCollection(g);\r\n }\r\n /** Handle strongly typed UnionRegion (base class method calls handleCurveCollection) */\r\n public handleUnionRegion(g: UnionRegion): any {\r\n return this.handleCurveCollection(g);\r\n }\r\n /** Handle strongly typed BagOfCurves (base class method calls handleCurveCollection) */\r\n public handleBagOfCurves(g: BagOfCurves): any {\r\n return this.handleCurveCollection(g);\r\n }\r\n /** Handle strongly typed Sphere */\r\n public abstract handleSphere(g: Sphere): any;\r\n /** Handle strongly typed Cone */\r\n public abstract handleCone(g: Cone): any;\r\n /** Handle strongly typed Box */\r\n public abstract handleBox(g: Box): any;\r\n /** Handle strongly typed TorusPipe */\r\n public abstract handleTorusPipe(g: TorusPipe): any;\r\n /** Handle strongly typed LinearSweep */\r\n public abstract handleLinearSweep(g: LinearSweep): any;\r\n /** Handle strongly typed RotationalSweep */\r\n public abstract handleRotationalSweep(g: RotationalSweep): any;\r\n /** Handle strongly typed RuledSweep */\r\n public abstract handleRuledSweep(g: RuledSweep): any;\r\n /** Handle strongly typed PointString3d */\r\n public abstract handlePointString3d(g: PointString3d): any;\r\n /** Handle strongly typed BezierCurve3d */\r\n public abstract handleBezierCurve3d(g: BezierCurve3d): any;\r\n /** Handle strongly typed BezierCurve3dH */\r\n public abstract handleBezierCurve3dH(g: BezierCurve3dH): any;\r\n}\r\n/**\r\n * `NullGeometryHandler` is a base class for dispatching various geometry types to application specific implementation\r\n * of some service.\r\n * To use:\r\n * * Derive a class from `NullGeometryHandler`\r\n * * Re-implement any or all of the specific `handleXXXX` methods\r\n * * Create a handler instance `myHandler`\r\n * * To send a `GeometryQuery` object `candidateGeometry` through the (fast) dispatch, invoke\r\n * `candidateGeometry.dispatchToHandler (myHandler).\r\n * * The appropriate method or methods will get called with a strongly typed `_g ` value.\r\n * @public\r\n */\r\nexport class NullGeometryHandler extends GeometryHandler {\r\n /** No-action implementation */\r\n public handleLineSegment3d(_g: LineSegment3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleLineString3d(_g: LineString3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleArc3d(_g: Arc3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handleCurveCollection(_g: CurveCollection): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineCurve3d(_g: BSplineCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleInterpolationCurve3d(_g: InterpolationCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleAkimaCurve3d(_g: AkimaCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineCurve3dH(_g: BSplineCurve3dH): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineSurface3d(_g: BSplineSurface3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleCoordinateXYZ(_g: CoordinateXYZ): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineSurface3dH(_g: BSplineSurface3dH): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleIndexedPolyface(_g: IndexedPolyface): any {\r\n return undefined;\r\n }\r\n /** No-action implementation\r\n * @alpha\r\n */\r\n public handleTransitionSpiral(_g: TransitionSpiral3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handlePath(_g: Path): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handleLoop(_g: Loop): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handleParityRegion(_g: ParityRegion): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handleUnionRegion(_g: UnionRegion): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public override handleBagOfCurves(_g: BagOfCurves): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleSphere(_g: Sphere): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleCone(_g: Cone): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBox(_g: Box): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleTorusPipe(_g: TorusPipe): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleLinearSweep(_g: LinearSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleRotationalSweep(_g: RotationalSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleRuledSweep(_g: RuledSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handlePointString3d(_g: PointString3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBezierCurve3d(_g: BezierCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBezierCurve3dH(_g: BezierCurve3dH): any {\r\n return undefined;\r\n }\r\n}\r\n/**\r\n * Implement GeometryHandler methods, with all curve collection methods recursing to children.\r\n * @public\r\n */\r\nexport class RecurseToCurvesGeometryHandler extends GeometryHandler {\r\n /** No-action implementation */\r\n public handleLineSegment3d(_g: LineSegment3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleLineString3d(_g: LineString3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleArc3d(_g: Arc3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineCurve3d(_g: BSplineCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleInterpolationCurve3d(_g: InterpolationCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleAkimaCurve3d(_g: AkimaCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineCurve3dH(_g: BSplineCurve3dH): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineSurface3d(_g: BSplineSurface3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleCoordinateXYZ(_g: CoordinateXYZ): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBSplineSurface3dH(_g: BSplineSurface3dH): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleIndexedPolyface(_g: IndexedPolyface): any {\r\n return undefined;\r\n }\r\n /** No-action implementation\r\n * @alpha\r\n */\r\n public handleTransitionSpiral(_g: TransitionSpiral3d): any {\r\n return undefined;\r\n }\r\n /** Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children` */\r\n public handleChildren(g: GeometryQuery): any {\r\n const children = g.children;\r\n if (children)\r\n for (const child of children) {\r\n child.dispatchToGeometryHandler(this);\r\n }\r\n }\r\n /** Recurse to children */\r\n public override handleCurveCollection(g: CurveCollection): any {\r\n return this.handleChildren(g);\r\n }\r\n /** Recurse to children */\r\n public override handlePath(g: Path): any {\r\n return this.handleChildren(g);\r\n }\r\n /** Recurse to children */\r\n public override handleLoop(g: Loop): any {\r\n return this.handleChildren(g);\r\n }\r\n /** Recurse to children */\r\n public override handleParityRegion(g: ParityRegion): any {\r\n return this.handleChildren(g);\r\n }\r\n /** Recurse to children */\r\n public override handleUnionRegion(g: UnionRegion): any {\r\n return this.handleChildren(g);\r\n }\r\n /** Recurse to children */\r\n public override handleBagOfCurves(g: BagOfCurves): any {\r\n return this.handleChildren(g);\r\n }\r\n /** No-action implementation */\r\n public handleSphere(_g: Sphere): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleCone(_g: Cone): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBox(_g: Box): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleTorusPipe(_g: TorusPipe): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleLinearSweep(_g: LinearSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleRotationalSweep(_g: RotationalSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleRuledSweep(_g: RuledSweep): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handlePointString3d(_g: PointString3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBezierCurve3d(_g: BezierCurve3d): any {\r\n return undefined;\r\n }\r\n /** No-action implementation */\r\n public handleBezierCurve3dH(_g: BezierCurve3dH): any {\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n * IStrokeHandler is an interface with methods to receive data about curves being stroked.\r\n * CurvePrimitives emitStrokes () methods emit calls to a handler object with these methods.\r\n * The various CurvePrimitive types are free to announce either single points (announcePoint), linear fragments,\r\n * or fractional intervals of the parent curve.\r\n * * handler.startCurvePrimitive (cp) -- announce the curve primitive whose strokes will follow.\r\n * * announcePointTangent (xyz, fraction, tangent) -- announce a single point on the curve.\r\n * * announceIntervalForUniformStepStrokes (cp, numStrokes, fraction0, fraction1) -- announce a fraction\r\n * interval in which the curve can be evaluated (e.g. the handler can call cp->fractionToPointAndDerivative ())\r\n * * announceSegmentInterval (cp, point0, point1, numStrokes, fraction0, fraction1) -- announce\r\n * that the fractional interval fraction0, fraction1 is a straight line which should be broken into\r\n * numStrokes strokes.\r\n * * A LineSegment would make a single call to this.\r\n * * A LineString would make one call to this for each of its segments, with fractions indicating position\r\n * within the linestring.\r\n * * endCurvePrimitive (cp) -- announce the end of the curve primitive.\r\n * @public\r\n */\r\nexport interface IStrokeHandler {\r\n /**\r\n * Announce a parent curve primitive\r\n * * startParentCurvePrimitive() ...endParentCurvePrimitive() are wrapped around startCurvePrimitive and\r\n * endCurvePrimitive when the interior primitive is a proxy.\r\n */\r\n startParentCurvePrimitive(cp: CurvePrimitive): void;\r\n /** Announce the curve primitive that will be described in subsequent calls. */\r\n startCurvePrimitive(cp: CurvePrimitive): void;\r\n /**\r\n * Announce a single point with its fraction and tangent.\r\n * * (IMPORTANT) the same Point3d and Vector3d will be reset and passed on multiple calls.\r\n * * (THEREFORE) if the implementation is saving coordinates, it must copy the xyz data out into its own data\r\n * structure rather than save the references.\r\n */\r\n announcePointTangent(xyz: Point3d, fraction: number, tangent: Vector3d): void;\r\n\r\n /**\r\n * Announce that curve primitive cp should be evaluated in the specified fraction interval.\r\n * * Note that this method is permitted (expected) to provide pre-stroked data if available.\r\n * * In th pre-stroked case, the cp passed to the handler will be the stroked image, not the original.\r\n * * Callers that want summary data should implement (and return true from) needPrimaryDataForStrokes\r\n */\r\n announceIntervalForUniformStepStrokes(\r\n cp: CurvePrimitive,\r\n numStrokes: number,\r\n fraction0: number,\r\n fraction1: number): void;\r\n /**\r\n * OPTIONAL method for a handler to indicate that it wants primary geometry (e.g. spirals) rather than strokes.\r\n * @returns true if primary geometry should be passed (rather than stroked or otherwise simplified)\r\n */\r\n needPrimaryGeometryForStrokes?(): boolean;\r\n /** Announce numPoints interpolated between point0 and point1, with associated fractions */\r\n announceSegmentInterval(\r\n cp: CurvePrimitive, point0: Point3d, point1: Point3d, numStrokes: number, fraction0: number, fraction1: number,\r\n ): void;\r\n /** Announce that all data about `cp` has been announced. */\r\n endCurvePrimitive(cp: CurvePrimitive): void;\r\n /** Announce that all data about the parent primitive has been announced. */\r\n endParentCurvePrimitive(cp: CurvePrimitive): void;\r\n /**\r\n * Announce a bezier curve fragment.\r\n * * this is usually a section of BsplineCurve\r\n * * If this function is missing, the same interval will be passed to announceIntervalForUniformSteps.\r\n * @param bezier bezier fragment\r\n * @param numStrokes suggested number of strokes (uniform in bezier interval 0..1)\r\n * @param parent parent curve\r\n * @param spanIndex spanIndex within parent\r\n * @param fraction0 start fraction on parent curve\r\n * @param fraction1 end fraction on parent curve\r\n */\r\n announceBezierCurve?(\r\n bezier: BezierCurveBase,\r\n numStrokes: number,\r\n parent: CurvePrimitive,\r\n spandex: number,\r\n fraction0: number,\r\n fraction1: number,\r\n ): void;\r\n}\r\n\r\n/**\r\n * Interface with methods for mapping (u,v) fractional coordinates to surface xyz and derivatives.\r\n * @public\r\n */\r\nexport interface UVSurface {\r\n /**\r\n * Convert fractional u and v coordinates to surface point.\r\n * @param uFraction fractional coordinate in u direction\r\n * @param vFraction fractional coordinate in v direction\r\n * @param result optional pre-allocated point\r\n */\r\n uvFractionToPoint(uFraction: number, vFraction: number, result?: Point3d): Point3d;\r\n /**\r\n * Convert fractional u and v coordinates to surface point and in-surface tangent directions.\r\n * * The vectors are expected to be non-zero tangents which can be crossed to get a normal.\r\n * * Hence they are not necessarily (a) partial derivatives or (b) Frenet vectors.\r\n * @param uFraction fractional coordinate in u direction\r\n * @param vFraction fractional coordinate in v direction\r\n * @param result optional pre-allocated carrier for point and vectors\r\n */\r\n uvFractionToPointAndTangents(\r\n uFraction: number, vFraction: number, result?: Plane3dByOriginAndVectors,\r\n ): Plane3dByOriginAndVectors;\r\n}\r\n/**\r\n * Interface for queries of distance-along in u and v directions\r\n * @public\r\n */\r\nexport interface UVSurfaceIsoParametricDistance {\r\n /**\r\n * * Return a vector whose x and y parts are \"size\" of the surface in the u and v directions.\r\n * * Sizes are use for applying scaling to mesh parameters\r\n * * These sizes are (reasonable approximations of) the max curve length along u and v isoparameter lines.\r\n * * e.g. for a sphere, these are:\r\n * * u direction = distance around the equator\r\n * * v direction = distance from south pole to north pole.\r\n */\r\n maxIsoParametricDistance(): Vector2d;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GrowableBlockedArray.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/GrowableBlockedArray.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,+CAA+C;IAC/C,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC;;;;;;;OAOG;gBACgB,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,EAAE,YAAY,CAAC,EAAE,MAAM;IAOtF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IA2B/H;;;OAGG;IACI,KAAK,IAAI,oBAAoB;IAOpC,yDAAyD;IACzD,IAAW,MAAM,IAAI,MAAM,CAAwB;IACnD,yDAAyD;IACzD,IAAW,SAAS,IAAI,MAAM,CAAwB;IACtD,gDAAgD;IAChD,IAAW,WAAW,IAAI,MAAM,CAA4B;IAC5D;;;;OAIG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAG3E,uEAAuE;IAChE,KAAK;IACZ,kDAAkD;IAC3C,aAAa;IAGpB,+CAA+C;IACxC,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc;IASnF;;;OAGG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAQjC;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM;IASjC,qCAAqC;IAC9B,QAAQ;IAIf,gFAAgF;IAChF,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM;IACpD,wHAAwH;IACjH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKvF,oFAAoF;IAC7E,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAGpE;;;;;OAKG;WACW,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAWxG,+EAA+E;IACxE,kBAAkB,CAAC,aAAa,GAAE,uBAAkE,GAAG,WAAW;IAezH,qFAAqF;IAC9E,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAa9E,2HAA2H;IACpH,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAYhH"}
1
+ {"version":3,"file":"GrowableBlockedArray.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/GrowableBlockedArray.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,+CAA+C;IAC/C,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC;;;;;;;OAOG;gBACgB,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,EAAE,YAAY,CAAC,EAAE,MAAM;IAOtF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IA2B/H;;;OAGG;IACI,KAAK,IAAI,oBAAoB;IAOpC,yDAAyD;IACzD,IAAW,MAAM,IAAI,MAAM,CAAwB;IACnD,yDAAyD;IACzD,IAAW,SAAS,IAAI,MAAM,CAAwB;IACtD,gDAAgD;IAChD,IAAW,WAAW,IAAI,MAAM,CAA4B;IAC5D;;;;OAIG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAG3E,uEAAuE;IAChE,KAAK;IACZ,kDAAkD;IAC3C,aAAa;IAGpB,+CAA+C;IACxC,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc;IASnF;;;OAGG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;IAQjC;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM;IASjC,qCAAqC;IAC9B,QAAQ;IAIf,gFAAgF;IAChF,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM;IACpD,wHAAwH;IACjH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKvF,oFAAoF;IAC7E,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAGpE;;;;;OAKG;WACW,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAWxG,+EAA+E;IACxE,kBAAkB,CAAC,aAAa,GAAE,uBAAwH,GAAG,WAAW;IAe/K,qFAAqF;IAC9E,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAa9E,2HAA2H;IACpH,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAYhH"}
@@ -162,7 +162,7 @@ export class GrowableBlockedArray {
162
162
  return ia - ib; // so original order is maintained among duplicates !!!!
163
163
  }
164
164
  /** Return an array of block indices sorted per compareLexicalBlock function */
165
- sortIndicesLexical(compareBlocks = GrowableBlockedArray.compareLexicalBlock) {
165
+ sortIndicesLexical(compareBlocks = (dataArray, size, iA, iB) => GrowableBlockedArray.compareLexicalBlock(dataArray, size, iA, iB)) {
166
166
  const n = this._inUse;
167
167
  // let numCompare = 0;
168
168
  const result = new Uint32Array(n);