@itwin/core-geometry 5.0.0-dev.1 → 5.0.0-dev.100

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 (1078) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.d.ts +2 -4
  5. package/lib/cjs/Geometry.d.ts.map +1 -1
  6. package/lib/cjs/Geometry.js +37 -39
  7. package/lib/cjs/Geometry.js.map +1 -1
  8. package/lib/cjs/bspline/AkimaCurve3d.js +3 -1
  9. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  10. package/lib/cjs/bspline/BSpline1dNd.d.ts +90 -54
  11. package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
  12. package/lib/cjs/bspline/BSpline1dNd.js +137 -84
  13. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  14. package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
  15. package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
  16. package/lib/cjs/bspline/BSplineCurve.js +249 -181
  17. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  18. package/lib/cjs/bspline/BSplineCurve3dH.js +1 -0
  19. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  20. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  21. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  22. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  23. package/lib/cjs/bspline/BSplineSurface.js +22 -2
  24. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  25. package/lib/cjs/bspline/Bezier1dNd.js +6 -0
  26. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  27. package/lib/cjs/bspline/BezierCurve3d.d.ts +3 -1
  28. package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
  29. package/lib/cjs/bspline/BezierCurve3d.js +5 -5
  30. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  31. package/lib/cjs/bspline/BezierCurve3dH.js +2 -0
  32. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  33. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  34. package/lib/cjs/bspline/BezierCurveBase.js +21 -2
  35. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  36. package/lib/cjs/bspline/InterpolationCurve3d.js +12 -1
  37. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  38. package/lib/cjs/bspline/KnotVector.d.ts +82 -60
  39. package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
  40. package/lib/cjs/bspline/KnotVector.js +144 -84
  41. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  42. package/lib/cjs/bspline/SurfaceLocationDetail.js +12 -0
  43. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  44. package/lib/cjs/clipping/AlternatingConvexClipTree.js +14 -13
  45. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  46. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  47. package/lib/cjs/clipping/BooleanClipNode.js +4 -0
  48. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  49. package/lib/cjs/clipping/ClipPlane.js +10 -1
  50. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  51. package/lib/cjs/clipping/ClipPrimitive.js +19 -0
  52. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  53. package/lib/cjs/clipping/ClipUtils.js +5 -1
  54. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  55. package/lib/cjs/clipping/ClipVector.js +11 -8
  56. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  57. package/lib/cjs/clipping/ConvexClipPlaneSet.js +5 -3
  58. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  59. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  60. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  61. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  62. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  63. package/lib/cjs/core-geometry.d.ts +1 -0
  64. package/lib/cjs/core-geometry.d.ts.map +1 -1
  65. package/lib/cjs/core-geometry.js +1 -0
  66. package/lib/cjs/core-geometry.js.map +1 -1
  67. package/lib/cjs/curve/Arc3d.d.ts +42 -8
  68. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  69. package/lib/cjs/curve/Arc3d.js +94 -26
  70. package/lib/cjs/curve/Arc3d.js.map +1 -1
  71. package/lib/cjs/curve/ConstructCurveBetweenCurves.js +3 -0
  72. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  73. package/lib/cjs/curve/CoordinateXYZ.js +3 -2
  74. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  75. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  76. package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  77. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -10
  78. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  79. package/lib/cjs/curve/CurveCollection.d.ts +16 -2
  80. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  81. package/lib/cjs/curve/CurveCollection.js +46 -11
  82. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  83. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  84. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  85. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  86. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  87. package/lib/cjs/curve/CurveFactory.js +213 -135
  88. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  89. package/lib/cjs/curve/CurveLocationDetail.js +44 -0
  90. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  91. package/lib/cjs/curve/CurveOps.js.map +1 -1
  92. package/lib/cjs/curve/CurvePrimitive.d.ts +7 -10
  93. package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
  94. package/lib/cjs/curve/CurvePrimitive.js +27 -12
  95. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  96. package/lib/cjs/curve/CurveProcessor.js +2 -0
  97. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  98. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  99. package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -0
  100. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  101. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  102. package/lib/cjs/curve/LineSegment3d.js +6 -2
  103. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  104. package/lib/cjs/curve/LineString3d.d.ts +12 -8
  105. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  106. package/lib/cjs/curve/LineString3d.js +56 -15
  107. package/lib/cjs/curve/LineString3d.js.map +1 -1
  108. package/lib/cjs/curve/Loop.d.ts +12 -6
  109. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  110. package/lib/cjs/curve/Loop.js +24 -10
  111. package/lib/cjs/curve/Loop.js.map +1 -1
  112. package/lib/cjs/curve/OffsetOptions.js +25 -21
  113. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  114. package/lib/cjs/curve/ParityRegion.js +4 -2
  115. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  116. package/lib/cjs/curve/Path.js +2 -2
  117. package/lib/cjs/curve/Path.js.map +1 -1
  118. package/lib/cjs/curve/PointString3d.js +3 -2
  119. package/lib/cjs/curve/PointString3d.js.map +1 -1
  120. package/lib/cjs/curve/ProxyCurve.js +1 -0
  121. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  122. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  123. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  124. package/lib/cjs/curve/Query/CurveSplitContext.js +3 -0
  125. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  126. package/lib/cjs/curve/Query/CylindricalRange.d.ts +8 -6
  127. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
  128. package/lib/cjs/curve/Query/CylindricalRange.js +19 -11
  129. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  130. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  131. package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -6
  132. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  133. package/lib/cjs/curve/Query/StrokeCountChain.js +12 -0
  134. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  135. package/lib/cjs/curve/Query/StrokeCountMap.js +14 -0
  136. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  137. package/lib/cjs/curve/RegionMomentsXY.js +4 -5
  138. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  139. package/lib/cjs/curve/RegionOps.js +9 -10
  140. package/lib/cjs/curve/RegionOps.js.map +1 -1
  141. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +24 -1
  142. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  143. package/lib/cjs/curve/StrokeOptions.d.ts +10 -5
  144. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  145. package/lib/cjs/curve/StrokeOptions.js +30 -8
  146. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  147. package/lib/cjs/curve/UnionRegion.js +4 -2
  148. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  149. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  150. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  151. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js +6 -0
  152. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  153. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +2 -0
  154. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  155. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  156. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  157. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  158. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  159. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  160. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  161. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  162. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  163. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  164. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  165. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  166. package/lib/cjs/curve/internalContexts/CurveLengthContext.js +6 -0
  167. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  168. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  169. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  170. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  171. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
  172. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  173. package/lib/cjs/curve/internalContexts/GapSearchContext.js +1 -0
  174. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  175. package/lib/cjs/curve/internalContexts/MultiChainCollector.js +12 -0
  176. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  177. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  178. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  179. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  180. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  181. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +22 -4
  182. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  183. package/lib/cjs/curve/internalContexts/SumLengthsContext.js +1 -0
  184. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  185. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +3 -0
  186. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  187. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  188. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  189. package/lib/cjs/curve/spiral/ClothoidSeries.js +4 -0
  190. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  191. package/lib/cjs/curve/spiral/CubicEvaluator.js +2 -0
  192. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  193. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +4 -0
  194. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  195. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  196. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  197. package/lib/cjs/curve/spiral/DirectSpiral3d.js +12 -2
  198. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  199. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +24 -4
  200. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  201. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  202. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  203. package/lib/cjs/curve/spiral/NormalizedTransition.js +5 -0
  204. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  205. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  206. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  207. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +10 -0
  208. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  209. package/lib/cjs/curve/spiral/TransitionSpiral3d.js +10 -0
  210. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  211. package/lib/cjs/curve/spiral/XYCurveEvaluator.js +6 -0
  212. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  213. package/lib/cjs/geometry3d/Angle.js +18 -16
  214. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  215. package/lib/cjs/geometry3d/AngleSweep.d.ts +7 -2
  216. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  217. package/lib/cjs/geometry3d/AngleSweep.js +14 -2
  218. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  219. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
  220. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  221. package/lib/cjs/geometry3d/BarycentricTriangle.js +42 -8
  222. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  223. package/lib/cjs/geometry3d/BilinearPatch.js +8 -0
  224. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  225. package/lib/cjs/geometry3d/CoincidentGeometryOps.js +5 -0
  226. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  227. package/lib/cjs/geometry3d/Ellipsoid.d.ts +8 -7
  228. package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -1
  229. package/lib/cjs/geometry3d/Ellipsoid.js +63 -14
  230. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  231. package/lib/cjs/geometry3d/FrameBuilder.js +12 -4
  232. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  233. package/lib/cjs/geometry3d/FrustumAnimation.js +7 -0
  234. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  235. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  236. package/lib/cjs/geometry3d/GrowableBlockedArray.js +12 -0
  237. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  238. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts +2 -0
  239. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  240. package/lib/cjs/geometry3d/GrowableFloat64Array.js +7 -0
  241. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  242. package/lib/cjs/geometry3d/GrowableXYArray.d.ts +0 -5
  243. package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
  244. package/lib/cjs/geometry3d/GrowableXYArray.js +16 -7
  245. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  246. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  247. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  248. package/lib/cjs/geometry3d/GrowableXYZArray.js +70 -16
  249. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  250. package/lib/cjs/geometry3d/IndexedCollectionInterval.js +6 -0
  251. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  252. package/lib/cjs/geometry3d/IndexedXYCollection.js +1 -0
  253. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  254. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  255. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  256. package/lib/cjs/geometry3d/IndexedXYZCollection.js +26 -11
  257. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  258. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  259. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  260. package/lib/cjs/geometry3d/Matrix3d.d.ts +11 -8
  261. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  262. package/lib/cjs/geometry3d/Matrix3d.js +61 -36
  263. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  264. package/lib/cjs/geometry3d/OrderedRotationAngles.js +10 -2
  265. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  266. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  267. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  268. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  269. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  270. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  271. package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -0
  272. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  273. package/lib/cjs/geometry3d/Point2dVector2d.js +4 -0
  274. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  275. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +3 -1
  276. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  277. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +7 -10
  278. package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
  279. package/lib/cjs/geometry3d/Point3dVector3d.js +16 -10
  280. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  281. package/lib/cjs/geometry3d/PointHelpers.d.ts +15 -4
  282. package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
  283. package/lib/cjs/geometry3d/PointHelpers.js +29 -8
  284. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  285. package/lib/cjs/geometry3d/PointStreaming.js +12 -4
  286. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  287. package/lib/cjs/geometry3d/PolygonOps.d.ts +12 -6
  288. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  289. package/lib/cjs/geometry3d/PolygonOps.js +154 -70
  290. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  291. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  292. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  293. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  294. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  295. package/lib/cjs/geometry3d/PolylineOps.js +12 -5
  296. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  297. package/lib/cjs/geometry3d/Range.js +21 -4
  298. package/lib/cjs/geometry3d/Range.js.map +1 -1
  299. package/lib/cjs/geometry3d/Ray2d.js +2 -0
  300. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  301. package/lib/cjs/geometry3d/Ray3d.d.ts +2 -2
  302. package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
  303. package/lib/cjs/geometry3d/Ray3d.js +20 -11
  304. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  305. package/lib/cjs/geometry3d/ReusableObjectCache.js +4 -0
  306. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  307. package/lib/cjs/geometry3d/Segment1d.js +4 -0
  308. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  309. package/lib/cjs/geometry3d/SortablePolygon.js +11 -0
  310. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  311. package/lib/cjs/geometry3d/Transform.d.ts +1 -1
  312. package/lib/cjs/geometry3d/Transform.js +4 -1
  313. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  314. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  315. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  316. package/lib/cjs/geometry3d/YawPitchRollAngles.js +6 -0
  317. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  318. package/lib/cjs/geometry4d/Map4d.js +2 -0
  319. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  320. package/lib/cjs/geometry4d/Matrix4d.js +1 -0
  321. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  322. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  323. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  324. package/lib/cjs/geometry4d/MomentData.js +90 -66
  325. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  326. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  327. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  328. package/lib/cjs/geometry4d/Point4d.js +2 -0
  329. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  330. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  331. package/lib/cjs/numerics/BezierPolynomials.js +8 -0
  332. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  333. package/lib/cjs/numerics/ClusterableArray.js +29 -13
  334. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  335. package/lib/cjs/numerics/Complex.js +2 -0
  336. package/lib/cjs/numerics/Complex.js.map +1 -1
  337. package/lib/cjs/numerics/ConvexPolygon2d.js +3 -0
  338. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  339. package/lib/cjs/numerics/Newton.js +59 -4
  340. package/lib/cjs/numerics/Newton.js.map +1 -1
  341. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  342. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  343. package/lib/cjs/numerics/PolarData.js +13 -1
  344. package/lib/cjs/numerics/PolarData.js.map +1 -1
  345. package/lib/cjs/numerics/Polynomials.d.ts +5 -5
  346. package/lib/cjs/numerics/Polynomials.js +70 -32
  347. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  348. package/lib/cjs/numerics/Quadrature.js +26 -20
  349. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  350. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  351. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  352. package/lib/cjs/numerics/TriDiagonalSystem.js +11 -0
  353. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  354. package/lib/cjs/numerics/UnionFind.js +1 -0
  355. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  356. package/lib/cjs/numerics/UsageSums.js +10 -0
  357. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  358. package/lib/cjs/polyface/AuxData.d.ts +2 -2
  359. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  360. package/lib/cjs/polyface/AuxData.js +27 -3
  361. package/lib/cjs/polyface/AuxData.js.map +1 -1
  362. package/lib/cjs/polyface/BoxTopology.js +67 -67
  363. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  364. package/lib/cjs/polyface/FacetFaceData.d.ts +1 -1
  365. package/lib/cjs/polyface/FacetFaceData.js +3 -1
  366. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  367. package/lib/cjs/polyface/FacetLocationDetail.js +30 -0
  368. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  369. package/lib/cjs/polyface/FacetOrientation.js +12 -1
  370. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  371. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  372. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  373. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +33 -23
  374. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  375. package/lib/cjs/polyface/IndexedEdgeMatcher.js +63 -33
  376. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  377. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  378. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  379. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +16 -5
  380. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  381. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  382. package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  383. package/lib/cjs/polyface/IndexedPolyfaceWalker.js +353 -0
  384. package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -0
  385. package/lib/cjs/polyface/Polyface.d.ts +46 -19
  386. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  387. package/lib/cjs/polyface/Polyface.js +96 -32
  388. package/lib/cjs/polyface/Polyface.js.map +1 -1
  389. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -27
  390. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  391. package/lib/cjs/polyface/PolyfaceBuilder.js +70 -92
  392. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  393. package/lib/cjs/polyface/PolyfaceClip.js +8 -0
  394. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  395. package/lib/cjs/polyface/PolyfaceData.d.ts +49 -6
  396. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  397. package/lib/cjs/polyface/PolyfaceData.js +133 -12
  398. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  399. package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
  400. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  401. package/lib/cjs/polyface/PolyfaceQuery.js +51 -10
  402. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  403. package/lib/cjs/polyface/RangeLengthData.js +7 -0
  404. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  405. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  406. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  407. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +5 -2
  408. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  409. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  410. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  411. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  412. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  413. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +5 -0
  414. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  415. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  416. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  417. package/lib/cjs/polyface/TaggedNumericData.js +8 -0
  418. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  419. package/lib/cjs/polyface/TriangleCandidate.js +3 -0
  420. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  421. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  422. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  423. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  424. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  425. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  426. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  427. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  428. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  429. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +32 -0
  430. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  431. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  432. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  433. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  434. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  435. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  436. package/lib/cjs/polyface/multiclip/XYPointBuckets.js +6 -0
  437. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  438. package/lib/cjs/serialization/BGFBAccessors.d.ts +35 -9
  439. package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -1
  440. package/lib/cjs/serialization/BGFBAccessors.js +141 -179
  441. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  442. package/lib/cjs/serialization/BGFBReader.d.ts +2 -2
  443. package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
  444. package/lib/cjs/serialization/BGFBReader.js +75 -62
  445. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  446. package/lib/cjs/serialization/BGFBWriter.d.ts +5 -1
  447. package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
  448. package/lib/cjs/serialization/BGFBWriter.js +18 -3
  449. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  450. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js +1 -0
  451. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  452. package/lib/cjs/serialization/DeepCompare.js +17 -17
  453. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  454. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  455. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  456. package/lib/cjs/serialization/GeometrySamples.js +113 -112
  457. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  458. package/lib/cjs/serialization/IModelJsonSchema.d.ts +78 -64
  459. package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
  460. package/lib/cjs/serialization/IModelJsonSchema.js +107 -83
  461. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  462. package/lib/cjs/serialization/SerializationHelpers.d.ts +36 -0
  463. package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -1
  464. package/lib/cjs/serialization/SerializationHelpers.js +117 -0
  465. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  466. package/lib/cjs/solid/Box.d.ts +9 -3
  467. package/lib/cjs/solid/Box.d.ts.map +1 -1
  468. package/lib/cjs/solid/Box.js +17 -7
  469. package/lib/cjs/solid/Box.js.map +1 -1
  470. package/lib/cjs/solid/Cone.d.ts +42 -16
  471. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  472. package/lib/cjs/solid/Cone.js +55 -19
  473. package/lib/cjs/solid/Cone.js.map +1 -1
  474. package/lib/cjs/solid/LinearSweep.d.ts +9 -3
  475. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  476. package/lib/cjs/solid/LinearSweep.js +13 -6
  477. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  478. package/lib/cjs/solid/RotationalSweep.d.ts +27 -16
  479. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  480. package/lib/cjs/solid/RotationalSweep.js +53 -27
  481. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  482. package/lib/cjs/solid/RuledSweep.d.ts +35 -26
  483. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  484. package/lib/cjs/solid/RuledSweep.js +43 -29
  485. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  486. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  487. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  488. package/lib/cjs/solid/SolidPrimitive.js +11 -6
  489. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  490. package/lib/cjs/solid/Sphere.d.ts +53 -24
  491. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  492. package/lib/cjs/solid/Sphere.js +75 -40
  493. package/lib/cjs/solid/Sphere.js.map +1 -1
  494. package/lib/cjs/solid/SweepContour.d.ts +25 -16
  495. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  496. package/lib/cjs/solid/SweepContour.js +34 -16
  497. package/lib/cjs/solid/SweepContour.js.map +1 -1
  498. package/lib/cjs/solid/TorusPipe.d.ts +8 -2
  499. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  500. package/lib/cjs/solid/TorusPipe.js +16 -7
  501. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  502. package/lib/cjs/topology/ChainMerge.js +16 -4
  503. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  504. package/lib/cjs/topology/Graph.js +41 -6
  505. package/lib/cjs/topology/Graph.js.map +1 -1
  506. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  507. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  508. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  509. package/lib/cjs/topology/HalfEdgeGraphSearch.js +2 -0
  510. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  511. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +9 -2
  512. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  513. package/lib/cjs/topology/HalfEdgeGraphValidation.js +7 -9
  514. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  515. package/lib/cjs/topology/HalfEdgeMarkSet.js +5 -0
  516. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  517. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +6 -0
  518. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  519. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +1 -0
  520. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  521. package/lib/cjs/topology/HalfEdgePositionDetail.js +16 -0
  522. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  523. package/lib/cjs/topology/HalfEdgePriorityQueue.js +2 -0
  524. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  525. package/lib/cjs/topology/InsertAndRetriangulateContext.js +4 -0
  526. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  527. package/lib/cjs/topology/MaskManager.js +3 -0
  528. package/lib/cjs/topology/MaskManager.js.map +1 -1
  529. package/lib/cjs/topology/Merging.js +11 -6
  530. package/lib/cjs/topology/Merging.js.map +1 -1
  531. package/lib/cjs/topology/RegularizeFace.js +22 -0
  532. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  533. package/lib/cjs/topology/SignedDataSummary.js +22 -0
  534. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  535. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  536. package/lib/cjs/topology/Triangulation.js +21 -11
  537. package/lib/cjs/topology/Triangulation.js.map +1 -1
  538. package/lib/cjs/topology/XYParitySearchContext.js +13 -0
  539. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  540. package/lib/esm/Constant.js +17 -17
  541. package/lib/esm/Constant.js.map +1 -1
  542. package/lib/esm/Geometry.d.ts +2 -4
  543. package/lib/esm/Geometry.d.ts.map +1 -1
  544. package/lib/esm/Geometry.js +37 -39
  545. package/lib/esm/Geometry.js.map +1 -1
  546. package/lib/esm/bspline/AkimaCurve3d.js +3 -1
  547. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  548. package/lib/esm/bspline/BSpline1dNd.d.ts +90 -54
  549. package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
  550. package/lib/esm/bspline/BSpline1dNd.js +137 -84
  551. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  552. package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
  553. package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
  554. package/lib/esm/bspline/BSplineCurve.js +249 -181
  555. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  556. package/lib/esm/bspline/BSplineCurve3dH.js +1 -0
  557. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  558. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  559. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  560. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  561. package/lib/esm/bspline/BSplineSurface.js +22 -2
  562. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  563. package/lib/esm/bspline/Bezier1dNd.js +6 -0
  564. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  565. package/lib/esm/bspline/BezierCurve3d.d.ts +3 -1
  566. package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
  567. package/lib/esm/bspline/BezierCurve3d.js +5 -5
  568. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  569. package/lib/esm/bspline/BezierCurve3dH.js +2 -0
  570. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  571. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  572. package/lib/esm/bspline/BezierCurveBase.js +21 -2
  573. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  574. package/lib/esm/bspline/InterpolationCurve3d.js +12 -1
  575. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  576. package/lib/esm/bspline/KnotVector.d.ts +82 -60
  577. package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
  578. package/lib/esm/bspline/KnotVector.js +144 -84
  579. package/lib/esm/bspline/KnotVector.js.map +1 -1
  580. package/lib/esm/bspline/SurfaceLocationDetail.js +12 -0
  581. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  582. package/lib/esm/clipping/AlternatingConvexClipTree.js +14 -13
  583. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  584. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  585. package/lib/esm/clipping/BooleanClipNode.js +4 -0
  586. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  587. package/lib/esm/clipping/ClipPlane.js +10 -1
  588. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  589. package/lib/esm/clipping/ClipPrimitive.js +19 -0
  590. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  591. package/lib/esm/clipping/ClipUtils.js +5 -1
  592. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  593. package/lib/esm/clipping/ClipVector.js +11 -8
  594. package/lib/esm/clipping/ClipVector.js.map +1 -1
  595. package/lib/esm/clipping/ConvexClipPlaneSet.js +5 -3
  596. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  597. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -1
  598. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  599. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
  600. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  601. package/lib/esm/core-geometry.d.ts +1 -0
  602. package/lib/esm/core-geometry.d.ts.map +1 -1
  603. package/lib/esm/core-geometry.js +1 -0
  604. package/lib/esm/core-geometry.js.map +1 -1
  605. package/lib/esm/curve/Arc3d.d.ts +42 -8
  606. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  607. package/lib/esm/curve/Arc3d.js +94 -26
  608. package/lib/esm/curve/Arc3d.js.map +1 -1
  609. package/lib/esm/curve/ConstructCurveBetweenCurves.js +3 -0
  610. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  611. package/lib/esm/curve/CoordinateXYZ.js +3 -2
  612. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  613. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +0 -2
  614. package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
  615. package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -10
  616. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  617. package/lib/esm/curve/CurveCollection.d.ts +16 -2
  618. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  619. package/lib/esm/curve/CurveCollection.js +46 -11
  620. package/lib/esm/curve/CurveCollection.js.map +1 -1
  621. package/lib/esm/curve/CurveCurve.js.map +1 -1
  622. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  623. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  624. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  625. package/lib/esm/curve/CurveFactory.js +213 -135
  626. package/lib/esm/curve/CurveFactory.js.map +1 -1
  627. package/lib/esm/curve/CurveLocationDetail.js +44 -0
  628. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  629. package/lib/esm/curve/CurveOps.js.map +1 -1
  630. package/lib/esm/curve/CurvePrimitive.d.ts +7 -10
  631. package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
  632. package/lib/esm/curve/CurvePrimitive.js +27 -12
  633. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  634. package/lib/esm/curve/CurveProcessor.js +2 -0
  635. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  636. package/lib/esm/curve/CurveTypes.js.map +1 -1
  637. package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -0
  638. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  639. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  640. package/lib/esm/curve/LineSegment3d.js +6 -2
  641. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  642. package/lib/esm/curve/LineString3d.d.ts +12 -8
  643. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  644. package/lib/esm/curve/LineString3d.js +56 -15
  645. package/lib/esm/curve/LineString3d.js.map +1 -1
  646. package/lib/esm/curve/Loop.d.ts +12 -6
  647. package/lib/esm/curve/Loop.d.ts.map +1 -1
  648. package/lib/esm/curve/Loop.js +24 -10
  649. package/lib/esm/curve/Loop.js.map +1 -1
  650. package/lib/esm/curve/OffsetOptions.js +25 -21
  651. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  652. package/lib/esm/curve/ParityRegion.js +4 -2
  653. package/lib/esm/curve/ParityRegion.js.map +1 -1
  654. package/lib/esm/curve/Path.js +2 -2
  655. package/lib/esm/curve/Path.js.map +1 -1
  656. package/lib/esm/curve/PointString3d.js +3 -2
  657. package/lib/esm/curve/PointString3d.js.map +1 -1
  658. package/lib/esm/curve/ProxyCurve.js +1 -0
  659. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  660. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
  661. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  662. package/lib/esm/curve/Query/CurveSplitContext.js +3 -0
  663. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  664. package/lib/esm/curve/Query/CylindricalRange.d.ts +8 -6
  665. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
  666. package/lib/esm/curve/Query/CylindricalRange.js +19 -11
  667. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  668. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  669. package/lib/esm/curve/Query/PlanarSubdivision.js +4 -6
  670. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  671. package/lib/esm/curve/Query/StrokeCountChain.js +12 -0
  672. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  673. package/lib/esm/curve/Query/StrokeCountMap.js +14 -0
  674. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  675. package/lib/esm/curve/RegionMomentsXY.js +4 -5
  676. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  677. package/lib/esm/curve/RegionOps.js +9 -10
  678. package/lib/esm/curve/RegionOps.js.map +1 -1
  679. package/lib/esm/curve/RegionOpsClassificationSweeps.js +24 -1
  680. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  681. package/lib/esm/curve/StrokeOptions.d.ts +10 -5
  682. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  683. package/lib/esm/curve/StrokeOptions.js +30 -8
  684. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  685. package/lib/esm/curve/UnionRegion.js +4 -2
  686. package/lib/esm/curve/UnionRegion.js.map +1 -1
  687. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
  688. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  689. package/lib/esm/curve/internalContexts/ChainCollectorContext.js +6 -0
  690. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  691. package/lib/esm/curve/internalContexts/CloneCurvesContext.js +2 -0
  692. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  693. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  694. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
  695. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  696. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
  697. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  698. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
  699. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  700. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
  701. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  702. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
  703. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  704. package/lib/esm/curve/internalContexts/CurveLengthContext.js +6 -0
  705. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  706. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
  707. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  708. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  709. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
  710. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  711. package/lib/esm/curve/internalContexts/GapSearchContext.js +1 -0
  712. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  713. package/lib/esm/curve/internalContexts/MultiChainCollector.js +12 -0
  714. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  715. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
  716. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  717. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
  718. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  719. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +22 -4
  720. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  721. package/lib/esm/curve/internalContexts/SumLengthsContext.js +1 -0
  722. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  723. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +3 -0
  724. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  725. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
  726. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  727. package/lib/esm/curve/spiral/ClothoidSeries.js +4 -0
  728. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  729. package/lib/esm/curve/spiral/CubicEvaluator.js +2 -0
  730. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  731. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +4 -0
  732. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  733. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
  734. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  735. package/lib/esm/curve/spiral/DirectSpiral3d.js +12 -2
  736. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  737. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +24 -4
  738. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  739. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
  740. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  741. package/lib/esm/curve/spiral/NormalizedTransition.js +5 -0
  742. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  743. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
  744. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  745. package/lib/esm/curve/spiral/TransitionConditionalProperties.js +10 -0
  746. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  747. package/lib/esm/curve/spiral/TransitionSpiral3d.js +10 -0
  748. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  749. package/lib/esm/curve/spiral/XYCurveEvaluator.js +6 -0
  750. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  751. package/lib/esm/geometry3d/Angle.js +18 -16
  752. package/lib/esm/geometry3d/Angle.js.map +1 -1
  753. package/lib/esm/geometry3d/AngleSweep.d.ts +7 -2
  754. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  755. package/lib/esm/geometry3d/AngleSweep.js +14 -2
  756. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  757. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
  758. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  759. package/lib/esm/geometry3d/BarycentricTriangle.js +42 -8
  760. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  761. package/lib/esm/geometry3d/BilinearPatch.js +8 -0
  762. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  763. package/lib/esm/geometry3d/CoincidentGeometryOps.js +5 -0
  764. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  765. package/lib/esm/geometry3d/Ellipsoid.d.ts +8 -7
  766. package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -1
  767. package/lib/esm/geometry3d/Ellipsoid.js +63 -14
  768. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  769. package/lib/esm/geometry3d/FrameBuilder.js +12 -4
  770. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  771. package/lib/esm/geometry3d/FrustumAnimation.js +7 -0
  772. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  773. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  774. package/lib/esm/geometry3d/GrowableBlockedArray.js +12 -0
  775. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  776. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +2 -0
  777. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  778. package/lib/esm/geometry3d/GrowableFloat64Array.js +7 -0
  779. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  780. package/lib/esm/geometry3d/GrowableXYArray.d.ts +0 -5
  781. package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
  782. package/lib/esm/geometry3d/GrowableXYArray.js +16 -7
  783. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  784. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  785. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  786. package/lib/esm/geometry3d/GrowableXYZArray.js +70 -16
  787. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  788. package/lib/esm/geometry3d/IndexedCollectionInterval.js +6 -0
  789. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  790. package/lib/esm/geometry3d/IndexedXYCollection.js +1 -0
  791. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  792. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  793. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  794. package/lib/esm/geometry3d/IndexedXYZCollection.js +26 -11
  795. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  796. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +3 -0
  797. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  798. package/lib/esm/geometry3d/Matrix3d.d.ts +11 -8
  799. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  800. package/lib/esm/geometry3d/Matrix3d.js +61 -36
  801. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  802. package/lib/esm/geometry3d/OrderedRotationAngles.js +10 -2
  803. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  804. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  805. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
  806. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  807. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +7 -0
  808. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  809. package/lib/esm/geometry3d/Point2dArrayCarrier.js +2 -0
  810. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  811. package/lib/esm/geometry3d/Point2dVector2d.js +4 -0
  812. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  813. package/lib/esm/geometry3d/Point3dArrayCarrier.js +3 -1
  814. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  815. package/lib/esm/geometry3d/Point3dVector3d.d.ts +7 -10
  816. package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
  817. package/lib/esm/geometry3d/Point3dVector3d.js +16 -10
  818. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  819. package/lib/esm/geometry3d/PointHelpers.d.ts +15 -4
  820. package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
  821. package/lib/esm/geometry3d/PointHelpers.js +29 -8
  822. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  823. package/lib/esm/geometry3d/PointStreaming.js +12 -4
  824. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  825. package/lib/esm/geometry3d/PolygonOps.d.ts +12 -6
  826. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  827. package/lib/esm/geometry3d/PolygonOps.js +154 -70
  828. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  829. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
  830. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  831. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  832. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  833. package/lib/esm/geometry3d/PolylineOps.js +12 -5
  834. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  835. package/lib/esm/geometry3d/Range.js +21 -4
  836. package/lib/esm/geometry3d/Range.js.map +1 -1
  837. package/lib/esm/geometry3d/Ray2d.js +2 -0
  838. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  839. package/lib/esm/geometry3d/Ray3d.d.ts +2 -2
  840. package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
  841. package/lib/esm/geometry3d/Ray3d.js +20 -11
  842. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  843. package/lib/esm/geometry3d/ReusableObjectCache.js +4 -0
  844. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  845. package/lib/esm/geometry3d/Segment1d.js +4 -0
  846. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  847. package/lib/esm/geometry3d/SortablePolygon.js +11 -0
  848. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  849. package/lib/esm/geometry3d/Transform.d.ts +1 -1
  850. package/lib/esm/geometry3d/Transform.js +4 -1
  851. package/lib/esm/geometry3d/Transform.js.map +1 -1
  852. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  853. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  854. package/lib/esm/geometry3d/YawPitchRollAngles.js +6 -0
  855. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  856. package/lib/esm/geometry4d/Map4d.js +2 -0
  857. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  858. package/lib/esm/geometry4d/Matrix4d.js +1 -0
  859. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  860. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  861. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  862. package/lib/esm/geometry4d/MomentData.js +90 -66
  863. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  864. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
  865. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  866. package/lib/esm/geometry4d/Point4d.js +2 -0
  867. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  868. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  869. package/lib/esm/numerics/BezierPolynomials.js +8 -0
  870. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  871. package/lib/esm/numerics/ClusterableArray.js +29 -13
  872. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  873. package/lib/esm/numerics/Complex.js +2 -0
  874. package/lib/esm/numerics/Complex.js.map +1 -1
  875. package/lib/esm/numerics/ConvexPolygon2d.js +3 -0
  876. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  877. package/lib/esm/numerics/Newton.js +59 -4
  878. package/lib/esm/numerics/Newton.js.map +1 -1
  879. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  880. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  881. package/lib/esm/numerics/PolarData.js +13 -1
  882. package/lib/esm/numerics/PolarData.js.map +1 -1
  883. package/lib/esm/numerics/Polynomials.d.ts +5 -5
  884. package/lib/esm/numerics/Polynomials.js +70 -32
  885. package/lib/esm/numerics/Polynomials.js.map +1 -1
  886. package/lib/esm/numerics/Quadrature.js +26 -20
  887. package/lib/esm/numerics/Quadrature.js.map +1 -1
  888. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  889. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  890. package/lib/esm/numerics/TriDiagonalSystem.js +11 -0
  891. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  892. package/lib/esm/numerics/UnionFind.js +1 -0
  893. package/lib/esm/numerics/UnionFind.js.map +1 -1
  894. package/lib/esm/numerics/UsageSums.js +10 -0
  895. package/lib/esm/numerics/UsageSums.js.map +1 -1
  896. package/lib/esm/polyface/AuxData.d.ts +2 -2
  897. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  898. package/lib/esm/polyface/AuxData.js +27 -3
  899. package/lib/esm/polyface/AuxData.js.map +1 -1
  900. package/lib/esm/polyface/BoxTopology.js +67 -67
  901. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  902. package/lib/esm/polyface/FacetFaceData.d.ts +1 -1
  903. package/lib/esm/polyface/FacetFaceData.js +3 -1
  904. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  905. package/lib/esm/polyface/FacetLocationDetail.js +30 -0
  906. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  907. package/lib/esm/polyface/FacetOrientation.js +12 -1
  908. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  909. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
  910. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  911. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +33 -23
  912. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  913. package/lib/esm/polyface/IndexedEdgeMatcher.js +63 -33
  914. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  915. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +4 -3
  916. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  917. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +16 -5
  918. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  919. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +233 -0
  920. package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
  921. package/lib/esm/polyface/IndexedPolyfaceWalker.js +349 -0
  922. package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -0
  923. package/lib/esm/polyface/Polyface.d.ts +46 -19
  924. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  925. package/lib/esm/polyface/Polyface.js +96 -32
  926. package/lib/esm/polyface/Polyface.js.map +1 -1
  927. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -27
  928. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  929. package/lib/esm/polyface/PolyfaceBuilder.js +71 -93
  930. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  931. package/lib/esm/polyface/PolyfaceClip.js +8 -0
  932. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  933. package/lib/esm/polyface/PolyfaceData.d.ts +49 -6
  934. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  935. package/lib/esm/polyface/PolyfaceData.js +133 -12
  936. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  937. package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
  938. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  939. package/lib/esm/polyface/PolyfaceQuery.js +51 -10
  940. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  941. package/lib/esm/polyface/RangeLengthData.js +7 -0
  942. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  943. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
  944. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  945. package/lib/esm/polyface/RangeTree/MinimumValueTester.js +5 -2
  946. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  947. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
  948. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  949. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
  950. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  951. package/lib/esm/polyface/RangeTree/RangeTreeNode.js +5 -0
  952. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  953. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
  954. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  955. package/lib/esm/polyface/TaggedNumericData.js +8 -0
  956. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  957. package/lib/esm/polyface/TriangleCandidate.js +3 -0
  958. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  959. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
  960. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  961. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
  962. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  963. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
  964. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  965. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
  966. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  967. package/lib/esm/polyface/multiclip/OffsetMeshContext.js +32 -0
  968. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  969. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  970. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  971. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  972. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
  973. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  974. package/lib/esm/polyface/multiclip/XYPointBuckets.js +6 -0
  975. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  976. package/lib/esm/serialization/BGFBAccessors.d.ts +35 -9
  977. package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -1
  978. package/lib/esm/serialization/BGFBAccessors.js +141 -179
  979. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  980. package/lib/esm/serialization/BGFBReader.d.ts +2 -2
  981. package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
  982. package/lib/esm/serialization/BGFBReader.js +75 -62
  983. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  984. package/lib/esm/serialization/BGFBWriter.d.ts +5 -1
  985. package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
  986. package/lib/esm/serialization/BGFBWriter.js +18 -3
  987. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  988. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +1 -0
  989. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  990. package/lib/esm/serialization/DeepCompare.js +17 -17
  991. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  992. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  993. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  994. package/lib/esm/serialization/GeometrySamples.js +113 -112
  995. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  996. package/lib/esm/serialization/IModelJsonSchema.d.ts +78 -64
  997. package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
  998. package/lib/esm/serialization/IModelJsonSchema.js +107 -83
  999. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  1000. package/lib/esm/serialization/SerializationHelpers.d.ts +36 -0
  1001. package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -1
  1002. package/lib/esm/serialization/SerializationHelpers.js +117 -0
  1003. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  1004. package/lib/esm/solid/Box.d.ts +9 -3
  1005. package/lib/esm/solid/Box.d.ts.map +1 -1
  1006. package/lib/esm/solid/Box.js +17 -7
  1007. package/lib/esm/solid/Box.js.map +1 -1
  1008. package/lib/esm/solid/Cone.d.ts +42 -16
  1009. package/lib/esm/solid/Cone.d.ts.map +1 -1
  1010. package/lib/esm/solid/Cone.js +56 -20
  1011. package/lib/esm/solid/Cone.js.map +1 -1
  1012. package/lib/esm/solid/LinearSweep.d.ts +9 -3
  1013. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  1014. package/lib/esm/solid/LinearSweep.js +13 -6
  1015. package/lib/esm/solid/LinearSweep.js.map +1 -1
  1016. package/lib/esm/solid/RotationalSweep.d.ts +27 -16
  1017. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  1018. package/lib/esm/solid/RotationalSweep.js +53 -27
  1019. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  1020. package/lib/esm/solid/RuledSweep.d.ts +35 -26
  1021. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  1022. package/lib/esm/solid/RuledSweep.js +43 -29
  1023. package/lib/esm/solid/RuledSweep.js.map +1 -1
  1024. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  1025. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  1026. package/lib/esm/solid/SolidPrimitive.js +11 -6
  1027. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  1028. package/lib/esm/solid/Sphere.d.ts +53 -24
  1029. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  1030. package/lib/esm/solid/Sphere.js +76 -41
  1031. package/lib/esm/solid/Sphere.js.map +1 -1
  1032. package/lib/esm/solid/SweepContour.d.ts +25 -16
  1033. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  1034. package/lib/esm/solid/SweepContour.js +34 -16
  1035. package/lib/esm/solid/SweepContour.js.map +1 -1
  1036. package/lib/esm/solid/TorusPipe.d.ts +8 -2
  1037. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  1038. package/lib/esm/solid/TorusPipe.js +16 -7
  1039. package/lib/esm/solid/TorusPipe.js.map +1 -1
  1040. package/lib/esm/topology/ChainMerge.js +16 -4
  1041. package/lib/esm/topology/ChainMerge.js.map +1 -1
  1042. package/lib/esm/topology/Graph.js +41 -6
  1043. package/lib/esm/topology/Graph.js.map +1 -1
  1044. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
  1045. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
  1046. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  1047. package/lib/esm/topology/HalfEdgeGraphSearch.js +2 -0
  1048. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  1049. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +9 -2
  1050. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  1051. package/lib/esm/topology/HalfEdgeGraphValidation.js +7 -9
  1052. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  1053. package/lib/esm/topology/HalfEdgeMarkSet.js +5 -0
  1054. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  1055. package/lib/esm/topology/HalfEdgeNodeXYZUV.js +6 -0
  1056. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  1057. package/lib/esm/topology/HalfEdgePointInGraphSearch.js +1 -0
  1058. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  1059. package/lib/esm/topology/HalfEdgePositionDetail.js +16 -0
  1060. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  1061. package/lib/esm/topology/HalfEdgePriorityQueue.js +2 -0
  1062. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  1063. package/lib/esm/topology/InsertAndRetriangulateContext.js +4 -0
  1064. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  1065. package/lib/esm/topology/MaskManager.js +3 -0
  1066. package/lib/esm/topology/MaskManager.js.map +1 -1
  1067. package/lib/esm/topology/Merging.js +11 -6
  1068. package/lib/esm/topology/Merging.js.map +1 -1
  1069. package/lib/esm/topology/RegularizeFace.js +22 -0
  1070. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  1071. package/lib/esm/topology/SignedDataSummary.js +22 -0
  1072. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  1073. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  1074. package/lib/esm/topology/Triangulation.js +21 -11
  1075. package/lib/esm/topology/Triangulation.js.map +1 -1
  1076. package/lib/esm/topology/XYParitySearchContext.js +13 -0
  1077. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  1078. package/package.json +9 -9
@@ -5,7 +5,7 @@ import { GeometryQuery } from "../curve/GeometryQuery";
5
5
  import { GeometryHandler } from "../geometry3d/GeometryHandler";
6
6
  import { Point2d } from "../geometry3d/Point2dVector2d";
7
7
  import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
8
- import { Range3d } from "../geometry3d/Range";
8
+ import { Range1d, Range3d } from "../geometry3d/Range";
9
9
  import { Transform } from "../geometry3d/Transform";
10
10
  import { FacetFaceData } from "./FacetFaceData";
11
11
  import { IndexedPolyfaceVisitor } from "./IndexedPolyfaceVisitor";
@@ -27,7 +27,9 @@ export declare abstract class Polyface extends GeometryQuery {
27
27
  * @param numWrap the number of vertices to replicate in visitor arrays.
28
28
  */
29
29
  abstract createVisitor(numWrap: number): PolyfaceVisitor;
30
- /** Flag indicating if the mesh display must assume both sides are visible. */
30
+ /**
31
+ * The [[PolyfaceData.twoSided]] flag.
32
+ */
31
33
  get twoSided(): boolean;
32
34
  set twoSided(value: boolean);
33
35
  /**
@@ -81,6 +83,15 @@ export declare class IndexedPolyface extends Polyface {
81
83
  * @param facetToFacetData optional array of face identifiers (e.g. known during clone)
82
84
  */
83
85
  protected constructor(data: PolyfaceData, facetStart?: number[], facetToFaceData?: number[]);
86
+ /** Given an edgeIndex (index into `data.pointIndex`), return the index of the facet containing the edge. */
87
+ edgeIndexToFacetIndex(k: number | undefined): number | undefined;
88
+ /**
89
+ * Given an edgeIndex (index into `data.pointIndex`), return the range of the edgeIndices of the containing facet.
90
+ * * If an edge with edgeIndex `k` is found in the facet with facetIndex `f`, then the returned range `r` satisfies
91
+ * `r.low = this.facetIndex0(f) <= k < this.facetIndex1(f) = r.high` and can be used to iterate the facet's face
92
+ * loop. See [[facetIndex0]].
93
+ */
94
+ edgeIndexToFaceLoop(k: number | undefined): Range1d | undefined;
84
95
  /** Test if other is an instance of `IndexedPolyface` */
85
96
  isSameGeometryClass(other: any): boolean;
86
97
  /** Tests for equivalence between two IndexedPolyfaces. */
@@ -89,11 +100,9 @@ export declare class IndexedPolyface extends Polyface {
89
100
  get isEmpty(): boolean;
90
101
  /**
91
102
  * Transform the mesh.
92
- * * Apply the transform to points.
93
- * * Apply the (inverse transpose of the) matrix part to normals.
94
- * * If determinant of the transform matrix is negative, also
95
- * * negate normals
96
- * * reverse index order around each facet.
103
+ * * If `transform` is a mirror, also reverse the index order around each facet.
104
+ * * Note that this method always returns true. If transforming the normals fails (due to singular matrix or zero
105
+ * normal), the original normal(s) are left unchanged.
97
106
  */
98
107
  tryTransformInPlace(transform: Transform): boolean;
99
108
  /** Reverse indices for a single facet. */
@@ -113,7 +122,7 @@ export declare class IndexedPolyface extends Polyface {
113
122
  * Return face data using a facet index.
114
123
  * * Returns `undefined` if none found.
115
124
  * * This is the REFERENCE to the FacetFaceData not a copy.
116
- */
125
+ */
117
126
  tryGetFaceData(i: number): FacetFaceData | undefined;
118
127
  /**
119
128
  * Add facets from `source` to `this` polyface.
@@ -136,7 +145,7 @@ export declare class IndexedPolyface extends Polyface {
136
145
  * @param needNormals `true` to allocate empty normal data and index arrays; `false` (default) to leave undefined.
137
146
  * @param needParams `true` to allocate empty uv parameter data and index arrays; `false` (default) to leave undefined.
138
147
  * @param needColors `true` to allocate empty color data and index arrays; `false` (default) to leave undefined.
139
- * @param twoSided `true` if the facets are to be considered viewable from the back; `false` (default) if not.
148
+ * @param twoSided `true` (default) if the facets are to be considered viewable from the back; `false` if they are amenable to backface culling.
140
149
  */
141
150
  static create(needNormals?: boolean, needParams?: boolean, needColors?: boolean, twoSided?: boolean): IndexedPolyface;
142
151
  /**
@@ -234,14 +243,32 @@ export declare class IndexedPolyface extends Polyface {
234
243
  /** Number of normals (read-only property). */
235
244
  get normalCount(): number;
236
245
  /** Test if `index` is a valid facet index. */
237
- isValidFacetIndex(index: number): boolean;
246
+ isValidFacetIndex(facetIndex: number): boolean;
238
247
  /** Return the number of edges in a particular facet. */
239
248
  numEdgeInFacet(facetIndex: number): number;
240
- /** ASSUME valid facet index. Return start index of facet in pointIndex arrays. */
241
- facetIndex0(index: number): number;
242
- /** ASSUME valid facet index. Return one past end index of facet in pointIndex arrays. */
243
- facetIndex1(index: number): number;
244
- /** Create a visitor for this polyface */
249
+ /**
250
+ * Given a valid facet index, return the index at which its face loop starts in the index arrays.
251
+ * * A "face loop" is a contiguous block of indices into the parallel polyface index arrays.
252
+ * * Each of these indices represents an edge of a facet, thus it is sometimes called an "edgeIndex".
253
+ * * Together with [[facetIndex1]], this method can be used to iterate the face loop of the facet
254
+ * with index `iFacet` as follows:
255
+ * ````
256
+ * for (let iEdge = this.facetIndex0(iFacet); iEdge < this.facetIndex1(iFacet); iEdge++) {
257
+ * const iPoint = this.data.pointIndex[iEdge];
258
+ * const p = this.data.point[iPoint];
259
+ * // ... process the edge of this facet starting at point p
260
+ * }
261
+ * ````
262
+ */
263
+ facetIndex0(facetIndex: number): number;
264
+ /**
265
+ * Given a valid facet index, return one past the index at which its face loop ends in the index arrays.
266
+ * * For details, see [[facetIndex0]].
267
+ */
268
+ facetIndex1(facetIndex: number): number;
269
+ /** Return a readonly reference to the facetStart array accessed by [[facetIndex0]] and [[facetIndex1]]. */
270
+ get facetStart(): ReadonlyArray<number>;
271
+ /** create a visitor for this polyface */
245
272
  createVisitor(numWrap?: number): IndexedPolyfaceVisitor;
246
273
  /** Return the range of (optionally transformed) points in this mesh. */
247
274
  range(transform?: Transform, result?: Range3d): Range3d;
@@ -265,8 +292,8 @@ export declare class IndexedPolyface extends Polyface {
265
292
  * A PolyfaceVisitor manages data while walking through facets.
266
293
  * * The polyface visitor holds data for one facet at a time.
267
294
  * * The caller can request the position in the addressed polyfaceData as a "readIndex".
268
- * * The readIndex values (as numbers) are not promised to be sequential (i.e., it might be a simple facet count
269
- * or might have "gaps" at the whim of the particular PolyfaceVisitor implementation).
295
+ * * The readIndex values (as numbers) are not assumed to be sequential (i.e., they might be contiguous facet indices
296
+ * or the indexing scheme might have gaps at the whim of the particular PolyfaceVisitor implementation).
270
297
  * @public
271
298
  */
272
299
  export interface PolyfaceVisitor extends PolyfaceData {
@@ -292,7 +319,7 @@ export interface PolyfaceVisitor extends PolyfaceData {
292
319
  clientPolyface(): Polyface | undefined;
293
320
  /**
294
321
  * Set the number of vertices replicated in visitor arrays (both data and index arrays).
295
- * * 0,1,2 are the most common as numWrap.
322
+ * * 0,1,2 are the most common values.
296
323
  * * Example: suppose `[6,7,8]` is the pointIndex array representing a triangle. First edge would be `6,7`. Second
297
324
  * edge is `7,8`. Third edge is `8,6`. To access `6` for the third edge, we have to go back to the start of array.
298
325
  * Therefore, it is useful to store `6` at the end of pointIndex array, i.e., `[6,7,8,6]` meaning `numWrap = 1`.
@@ -300,7 +327,7 @@ export interface PolyfaceVisitor extends PolyfaceData {
300
327
  * the next two points, e.g., to form two adjacent vectors for a cross product.
301
328
  */
302
329
  setNumWrap(numWrap: number): void;
303
- /** Clear the contents of all arrays. Use this along with `pushDataFrom` to build up new facets. */
330
+ /** Clear the contents of the data arrays. Use this along with `pushDataFrom` to build up new facets. */
304
331
  clearArrays(): void;
305
332
  /** Transfer data from a specified index of the other visitor as new data in this visitor. */
306
333
  pushDataFrom(other: PolyfaceVisitor, index: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Polyface.d.ts","sourceRoot":"","sources":["../../../src/polyface/Polyface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Polyface.d.ts","sourceRoot":"","sources":["../../../src/polyface/Polyface.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ const GrowableXYArray_1 = require("../geometry3d/GrowableXYArray");
15
15
  const GrowableXYZArray_1 = require("../geometry3d/GrowableXYZArray");
16
16
  const Point3dVector3d_1 = require("../geometry3d/Point3dVector3d");
17
17
  const PointHelpers_1 = require("../geometry3d/PointHelpers");
18
+ const Range_1 = require("../geometry3d/Range");
18
19
  const FacetFaceData_1 = require("./FacetFaceData");
19
20
  const IndexedPolyfaceVisitor_1 = require("./IndexedPolyfaceVisitor");
20
21
  const PolyfaceData_1 = require("./PolyfaceData");
@@ -24,14 +25,18 @@ const PolyfaceData_1 = require("./PolyfaceData");
24
25
  * @public
25
26
  */
26
27
  class Polyface extends GeometryQuery_1.GeometryQuery {
28
+ /** String name for schema properties */
29
+ geometryCategory = "polyface";
30
+ /** Underlying polyface data. */
31
+ data;
27
32
  /** Constructor */
28
33
  constructor(data) {
29
34
  super();
30
- /** String name for schema properties */
31
- this.geometryCategory = "polyface";
32
35
  this.data = data;
33
36
  }
34
- /** Flag indicating if the mesh display must assume both sides are visible. */
37
+ /**
38
+ * The [[PolyfaceData.twoSided]] flag.
39
+ */
35
40
  get twoSided() {
36
41
  return this.data.twoSided;
37
42
  }
@@ -86,6 +91,20 @@ exports.Polyface = Polyface;
86
91
  * @public
87
92
  */
88
93
  class IndexedPolyface extends Polyface {
94
+ /**
95
+ * Start indices of all facets of the polyface.
96
+ * * Each element is an index to the `this.data.pointIndex` array entry for a specific facet.
97
+ * * The facet count is `_facetStart.length - 1`.
98
+ * * The face loop for the i_th facet consists of the entries in `this.data.pointIndex` at indices `_facetStart[i]`
99
+ * up to (but not including) `_facetStart[i + 1]`.
100
+ * * Note the array is initialized with one entry (value 0).
101
+ */
102
+ _facetStart;
103
+ /**
104
+ * Index to the `this.data.face` array entry for a specific facet.
105
+ * * `_facetToFaceData` has one entry per facet.
106
+ */
107
+ _facetToFaceData;
89
108
  /**
90
109
  * Constructor for a new polyface.
91
110
  * @param data PolyfaceData arrays to capture.
@@ -105,6 +124,24 @@ class IndexedPolyface extends Polyface {
105
124
  else
106
125
  this._facetToFaceData = [];
107
126
  }
127
+ /** Given an edgeIndex (index into `data.pointIndex`), return the index of the facet containing the edge. */
128
+ edgeIndexToFacetIndex(k) {
129
+ if (k === undefined)
130
+ return undefined;
131
+ return PointHelpers_1.NumberArray.searchStrictlyIncreasingNumbers(this._facetStart, k);
132
+ }
133
+ /**
134
+ * Given an edgeIndex (index into `data.pointIndex`), return the range of the edgeIndices of the containing facet.
135
+ * * If an edge with edgeIndex `k` is found in the facet with facetIndex `f`, then the returned range `r` satisfies
136
+ * `r.low = this.facetIndex0(f) <= k < this.facetIndex1(f) = r.high` and can be used to iterate the facet's face
137
+ * loop. See [[facetIndex0]].
138
+ */
139
+ edgeIndexToFaceLoop(k) {
140
+ const q = this.edgeIndexToFacetIndex(k);
141
+ if (q !== undefined)
142
+ return Range_1.Range1d.createXX(this.facetIndex0(q), this.facetIndex1(q));
143
+ return undefined;
144
+ }
108
145
  /** Test if other is an instance of `IndexedPolyface` */
109
146
  isSameGeometryClass(other) {
110
147
  return other instanceof IndexedPolyface;
@@ -124,20 +161,14 @@ class IndexedPolyface extends Polyface {
124
161
  }
125
162
  /**
126
163
  * Transform the mesh.
127
- * * Apply the transform to points.
128
- * * Apply the (inverse transpose of the) matrix part to normals.
129
- * * If determinant of the transform matrix is negative, also
130
- * * negate normals
131
- * * reverse index order around each facet.
164
+ * * If `transform` is a mirror, also reverse the index order around each facet.
165
+ * * Note that this method always returns true. If transforming the normals fails (due to singular matrix or zero
166
+ * normal), the original normal(s) are left unchanged.
132
167
  */
133
168
  tryTransformInPlace(transform) {
134
- if (!this.data.tryTransformInPlace(transform))
135
- return false;
136
- const determinant = transform.matrix.determinant();
137
- if (determinant < 0) {
169
+ this.data.tryTransformInPlace(transform);
170
+ if (transform.matrix.determinant() < 0)
138
171
  this.reverseIndices();
139
- this.reverseNormals();
140
- }
141
172
  return true;
142
173
  }
143
174
  /** Reverse indices for a single facet. */
@@ -146,8 +177,7 @@ class IndexedPolyface extends Polyface {
146
177
  }
147
178
  /** Return a deep clone. */
148
179
  clone() {
149
- const result = new IndexedPolyface(this.data.clone(), this._facetStart.slice(), this._facetToFaceData.slice());
150
- return result;
180
+ return new IndexedPolyface(this.data.clone(), this._facetStart.slice(), this._facetToFaceData.slice());
151
181
  }
152
182
  /**
153
183
  * Return a deep clone with transformed points and normals.
@@ -170,7 +200,7 @@ class IndexedPolyface extends Polyface {
170
200
  * Return face data using a facet index.
171
201
  * * Returns `undefined` if none found.
172
202
  * * This is the REFERENCE to the FacetFaceData not a copy.
173
- */
203
+ */
174
204
  tryGetFaceData(i) {
175
205
  if (i < 0 || i >= this._facetToFaceData.length)
176
206
  return undefined;
@@ -302,9 +332,9 @@ class IndexedPolyface extends Polyface {
302
332
  * @param needNormals `true` to allocate empty normal data and index arrays; `false` (default) to leave undefined.
303
333
  * @param needParams `true` to allocate empty uv parameter data and index arrays; `false` (default) to leave undefined.
304
334
  * @param needColors `true` to allocate empty color data and index arrays; `false` (default) to leave undefined.
305
- * @param twoSided `true` if the facets are to be considered viewable from the back; `false` (default) if not.
335
+ * @param twoSided `true` (default) if the facets are to be considered viewable from the back; `false` if they are amenable to backface culling.
306
336
  */
307
- static create(needNormals = false, needParams = false, needColors = false, twoSided = false) {
337
+ static create(needNormals = false, needParams = false, needColors = false, twoSided = true) {
308
338
  return new IndexedPolyface(new PolyfaceData_1.PolyfaceData(needNormals, needParams, needColors, twoSided));
309
339
  }
310
340
  /**
@@ -453,6 +483,14 @@ class IndexedPolyface extends Polyface {
453
483
  validateAllIndices(index0 = 0, errors) {
454
484
  const numPointIndices = this.data.pointIndex.length;
455
485
  const messages = errors ?? [];
486
+ if (0 === numPointIndices) {
487
+ messages.push("empty pointIndex array");
488
+ return false;
489
+ }
490
+ if (index0 < 0 || index0 >= numPointIndices) {
491
+ messages.push("invalid input offset");
492
+ return false;
493
+ }
456
494
  if (this.data.normalIndex && this.data.normalIndex.length !== numPointIndices)
457
495
  messages.push("normalIndex count must match pointIndex count");
458
496
  if (this.data.paramIndex && this.data.paramIndex.length !== numPointIndices)
@@ -462,13 +500,19 @@ class IndexedPolyface extends Polyface {
462
500
  if (this.data.edgeVisible.length !== numPointIndices)
463
501
  messages.push("visibleIndex count must equal pointIndex count");
464
502
  if (!Polyface.areIndicesValid(this.data.pointIndex, index0, numPointIndices, this.data.point, this.data.point ? this.data.point.length : 0))
465
- messages.push("invalid point indices in the last facet");
503
+ messages.push("invalid point index encountered");
466
504
  if (!Polyface.areIndicesValid(this.data.normalIndex, index0, numPointIndices, this.data.normal, this.data.normal ? this.data.normal.length : 0))
467
- messages.push("invalid normal indices in the last facet");
505
+ messages.push("invalid normal index encountered");
468
506
  if (!Polyface.areIndicesValid(this.data.paramIndex, index0, numPointIndices, this.data.param, this.data.param ? this.data.param.length : 0))
469
- messages.push("invalid param indices in the last facet");
507
+ messages.push("invalid param index encountered");
470
508
  if (!Polyface.areIndicesValid(this.data.colorIndex, index0, numPointIndices, this.data.color, this.data.color ? this.data.color.length : 0))
471
- messages.push("invalid color indices in the last facet");
509
+ messages.push("invalid color index encountered");
510
+ if (this.data.edgeMateIndex) {
511
+ if (this.data.edgeMateIndex.length !== numPointIndices)
512
+ messages.push("edgeMateIndex count must equal pointIndex count");
513
+ else if (!this.data.edgeMateIndex.every((i) => i === undefined || this.data.isValidEdgeIndex(i)))
514
+ messages.push("invalid edgeMate encountered");
515
+ }
472
516
  return 0 === messages.length;
473
517
  }
474
518
  /**
@@ -523,8 +567,8 @@ class IndexedPolyface extends Polyface {
523
567
  return this.data.normalCount;
524
568
  }
525
569
  /** Test if `index` is a valid facet index. */
526
- isValidFacetIndex(index) {
527
- return index >= 0 && index < this.facetCount;
570
+ isValidFacetIndex(facetIndex) {
571
+ return facetIndex >= 0 && facetIndex < this.facetCount;
528
572
  }
529
573
  /** Return the number of edges in a particular facet. */
530
574
  numEdgeInFacet(facetIndex) {
@@ -532,15 +576,35 @@ class IndexedPolyface extends Polyface {
532
576
  return this._facetStart[facetIndex + 1] - this._facetStart[facetIndex];
533
577
  return 0;
534
578
  }
535
- /** ASSUME valid facet index. Return start index of facet in pointIndex arrays. */
536
- facetIndex0(index) {
537
- return this._facetStart[index];
579
+ /**
580
+ * Given a valid facet index, return the index at which its face loop starts in the index arrays.
581
+ * * A "face loop" is a contiguous block of indices into the parallel polyface index arrays.
582
+ * * Each of these indices represents an edge of a facet, thus it is sometimes called an "edgeIndex".
583
+ * * Together with [[facetIndex1]], this method can be used to iterate the face loop of the facet
584
+ * with index `iFacet` as follows:
585
+ * ````
586
+ * for (let iEdge = this.facetIndex0(iFacet); iEdge < this.facetIndex1(iFacet); iEdge++) {
587
+ * const iPoint = this.data.pointIndex[iEdge];
588
+ * const p = this.data.point[iPoint];
589
+ * // ... process the edge of this facet starting at point p
590
+ * }
591
+ * ````
592
+ */
593
+ facetIndex0(facetIndex) {
594
+ return this._facetStart[facetIndex];
595
+ }
596
+ /**
597
+ * Given a valid facet index, return one past the index at which its face loop ends in the index arrays.
598
+ * * For details, see [[facetIndex0]].
599
+ */
600
+ facetIndex1(facetIndex) {
601
+ return this._facetStart[facetIndex + 1];
538
602
  }
539
- /** ASSUME valid facet index. Return one past end index of facet in pointIndex arrays. */
540
- facetIndex1(index) {
541
- return this._facetStart[index + 1];
603
+ /** Return a readonly reference to the facetStart array accessed by [[facetIndex0]] and [[facetIndex1]]. */
604
+ get facetStart() {
605
+ return this._facetStart;
542
606
  }
543
- /** Create a visitor for this polyface */
607
+ /** create a visitor for this polyface */
544
608
  createVisitor(numWrap = 0) {
545
609
  return IndexedPolyfaceVisitor_1.IndexedPolyfaceVisitor.create(this, numWrap);
546
610
  }