@itwin/core-geometry 5.0.0-dev.3 → 5.0.0-dev.34

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 (730) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/lib/cjs/Constant.js +17 -17
  3. package/lib/cjs/Constant.js.map +1 -1
  4. package/lib/cjs/Geometry.js +35 -35
  5. package/lib/cjs/Geometry.js.map +1 -1
  6. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  7. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  10. package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
  11. package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
  12. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  13. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  14. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  15. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  16. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  17. package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
  18. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  19. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  20. package/lib/cjs/bspline/KnotVector.js +2 -2
  21. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  22. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  23. package/lib/cjs/clipping/AlternatingConvexClipTree.js +2 -2
  24. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  25. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  26. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  27. package/lib/cjs/clipping/ClipPlane.js +1 -1
  28. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  29. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  30. package/lib/cjs/clipping/ClipUtils.js +1 -1
  31. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  32. package/lib/cjs/clipping/ClipVector.js +1 -1
  33. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  34. package/lib/cjs/clipping/ConvexClipPlaneSet.js +3 -3
  35. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  36. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +1 -1
  37. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  38. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  39. package/lib/cjs/core-geometry.js.map +1 -1
  40. package/lib/cjs/curve/Arc3d.d.ts +40 -8
  41. package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
  42. package/lib/cjs/curve/Arc3d.js +80 -22
  43. package/lib/cjs/curve/Arc3d.js.map +1 -1
  44. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  45. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  46. package/lib/cjs/curve/CurveChainWithDistanceIndex.js +4 -4
  47. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  48. package/lib/cjs/curve/CurveCollection.d.ts +16 -2
  49. package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
  50. package/lib/cjs/curve/CurveCollection.js +33 -2
  51. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  52. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  53. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  54. package/lib/cjs/curve/CurveFactory.d.ts +87 -53
  55. package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
  56. package/lib/cjs/curve/CurveFactory.js +213 -135
  57. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  58. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  59. package/lib/cjs/curve/CurveOps.js.map +1 -1
  60. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  61. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  62. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  63. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  64. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  65. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  66. package/lib/cjs/curve/LineString3d.d.ts +12 -8
  67. package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
  68. package/lib/cjs/curve/LineString3d.js +34 -13
  69. package/lib/cjs/curve/LineString3d.js.map +1 -1
  70. package/lib/cjs/curve/Loop.d.ts +12 -6
  71. package/lib/cjs/curve/Loop.d.ts.map +1 -1
  72. package/lib/cjs/curve/Loop.js +12 -6
  73. package/lib/cjs/curve/Loop.js.map +1 -1
  74. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  75. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  76. package/lib/cjs/curve/Path.js.map +1 -1
  77. package/lib/cjs/curve/PointString3d.js.map +1 -1
  78. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  79. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  80. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  81. package/lib/cjs/curve/Query/CylindricalRange.d.ts +8 -6
  82. package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
  83. package/lib/cjs/curve/Query/CylindricalRange.js +13 -9
  84. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  85. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  86. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  87. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  88. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  89. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  90. package/lib/cjs/curve/RegionOps.js.map +1 -1
  91. package/lib/cjs/curve/RegionOpsClassificationSweeps.js +1 -1
  92. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  93. package/lib/cjs/curve/StrokeOptions.d.ts +4 -4
  94. package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
  95. package/lib/cjs/curve/StrokeOptions.js +1 -1
  96. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  97. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  98. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  99. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  100. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  101. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  102. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  103. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  104. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -5
  105. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  106. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +13 -13
  107. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  108. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +5 -5
  109. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  110. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  111. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  112. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  113. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +29 -23
  114. package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  115. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  116. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  117. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  118. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  119. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +4 -4
  120. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  121. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  122. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  123. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  124. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  125. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  126. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  127. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  128. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  129. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +2 -2
  130. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  131. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  132. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  133. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  134. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  135. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  136. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  137. package/lib/cjs/geometry3d/Angle.js +16 -16
  138. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  139. package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -1
  140. package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
  141. package/lib/cjs/geometry3d/AngleSweep.js +1 -1
  142. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  143. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
  144. package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  145. package/lib/cjs/geometry3d/BarycentricTriangle.js +17 -8
  146. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  147. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  148. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  149. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  150. package/lib/cjs/geometry3d/FrameBuilder.js +4 -4
  151. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  152. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  153. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  154. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  155. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts +2 -0
  156. package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  157. package/lib/cjs/geometry3d/GrowableFloat64Array.js +4 -0
  158. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  159. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  160. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
  161. package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  162. package/lib/cjs/geometry3d/GrowableXYZArray.js +54 -16
  163. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  164. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  165. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  166. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
  167. package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  168. package/lib/cjs/geometry3d/IndexedXYZCollection.js +24 -10
  169. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  170. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  171. package/lib/cjs/geometry3d/Matrix3d.d.ts +11 -8
  172. package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
  173. package/lib/cjs/geometry3d/Matrix3d.js +36 -34
  174. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  175. package/lib/cjs/geometry3d/OrderedRotationAngles.js +2 -2
  176. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  177. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  178. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  179. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  180. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  181. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  182. package/lib/cjs/geometry3d/Point3dArrayCarrier.js +1 -1
  183. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  184. package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -6
  185. package/lib/cjs/geometry3d/Point3dVector3d.js +6 -6
  186. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  187. package/lib/cjs/geometry3d/PointHelpers.js +5 -5
  188. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  189. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  190. package/lib/cjs/geometry3d/PolygonOps.d.ts +12 -6
  191. package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
  192. package/lib/cjs/geometry3d/PolygonOps.js +117 -70
  193. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  194. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  195. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  196. package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
  197. package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
  198. package/lib/cjs/geometry3d/PolylineOps.js +9 -5
  199. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  200. package/lib/cjs/geometry3d/Range.js +4 -4
  201. package/lib/cjs/geometry3d/Range.js.map +1 -1
  202. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  203. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  204. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  205. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  206. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  207. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  208. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  209. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  210. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  211. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  212. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  213. package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
  214. package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
  215. package/lib/cjs/geometry4d/MomentData.js +62 -64
  216. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  217. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  218. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  219. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  220. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  221. package/lib/cjs/numerics/ClusterableArray.js +13 -13
  222. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  223. package/lib/cjs/numerics/Complex.js.map +1 -1
  224. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  225. package/lib/cjs/numerics/Newton.js.map +1 -1
  226. package/lib/cjs/numerics/PascalCoefficients.js +1 -1
  227. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  228. package/lib/cjs/numerics/PolarData.js +1 -1
  229. package/lib/cjs/numerics/PolarData.js.map +1 -1
  230. package/lib/cjs/numerics/Polynomials.d.ts +5 -5
  231. package/lib/cjs/numerics/Polynomials.js +32 -32
  232. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  233. package/lib/cjs/numerics/Quadrature.js +20 -20
  234. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  235. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  236. package/lib/cjs/numerics/SmallSystem.js.map +1 -1
  237. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  238. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  239. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  240. package/lib/cjs/polyface/AuxData.d.ts +2 -2
  241. package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
  242. package/lib/cjs/polyface/AuxData.js +11 -3
  243. package/lib/cjs/polyface/AuxData.js.map +1 -1
  244. package/lib/cjs/polyface/BoxTopology.js +67 -67
  245. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  246. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  247. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  248. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  249. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +2 -2
  250. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  251. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +27 -20
  252. package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  253. package/lib/cjs/polyface/IndexedEdgeMatcher.js +56 -30
  254. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  255. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +2 -1
  256. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  257. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +2 -1
  258. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  259. package/lib/cjs/polyface/Polyface.d.ts +3 -5
  260. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  261. package/lib/cjs/polyface/Polyface.js +6 -13
  262. package/lib/cjs/polyface/Polyface.js.map +1 -1
  263. package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -7
  264. package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
  265. package/lib/cjs/polyface/PolyfaceBuilder.js +59 -64
  266. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  267. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  268. package/lib/cjs/polyface/PolyfaceData.d.ts +13 -3
  269. package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
  270. package/lib/cjs/polyface/PolyfaceData.js +26 -9
  271. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  272. package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
  273. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  274. package/lib/cjs/polyface/PolyfaceQuery.js +11 -10
  275. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  276. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  277. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  278. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  279. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  280. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  281. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  282. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  283. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  284. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  285. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  286. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  287. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  288. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  289. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  290. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  291. package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
  292. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  293. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  294. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  295. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  296. package/lib/cjs/serialization/BGFBReader.js +22 -22
  297. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  298. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  299. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  300. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  301. package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
  302. package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
  303. package/lib/cjs/serialization/GeometrySamples.js +112 -112
  304. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  305. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  306. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  307. package/lib/cjs/solid/Box.d.ts +9 -3
  308. package/lib/cjs/solid/Box.d.ts.map +1 -1
  309. package/lib/cjs/solid/Box.js +10 -5
  310. package/lib/cjs/solid/Box.js.map +1 -1
  311. package/lib/cjs/solid/Cone.d.ts +3 -2
  312. package/lib/cjs/solid/Cone.d.ts.map +1 -1
  313. package/lib/cjs/solid/Cone.js +3 -3
  314. package/lib/cjs/solid/Cone.js.map +1 -1
  315. package/lib/cjs/solid/LinearSweep.d.ts +9 -3
  316. package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
  317. package/lib/cjs/solid/LinearSweep.js +9 -4
  318. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  319. package/lib/cjs/solid/RotationalSweep.d.ts +15 -4
  320. package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
  321. package/lib/cjs/solid/RotationalSweep.js +20 -7
  322. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  323. package/lib/cjs/solid/RuledSweep.d.ts +35 -26
  324. package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
  325. package/lib/cjs/solid/RuledSweep.js +41 -28
  326. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  327. package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
  328. package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
  329. package/lib/cjs/solid/SolidPrimitive.js +8 -5
  330. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  331. package/lib/cjs/solid/Sphere.d.ts +17 -7
  332. package/lib/cjs/solid/Sphere.d.ts.map +1 -1
  333. package/lib/cjs/solid/Sphere.js +22 -16
  334. package/lib/cjs/solid/Sphere.js.map +1 -1
  335. package/lib/cjs/solid/SweepContour.d.ts +25 -16
  336. package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
  337. package/lib/cjs/solid/SweepContour.js +25 -16
  338. package/lib/cjs/solid/SweepContour.js.map +1 -1
  339. package/lib/cjs/solid/TorusPipe.d.ts +8 -2
  340. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  341. package/lib/cjs/solid/TorusPipe.js +9 -5
  342. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  343. package/lib/cjs/topology/ChainMerge.js +4 -4
  344. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  345. package/lib/cjs/topology/Graph.js +5 -5
  346. package/lib/cjs/topology/Graph.js.map +1 -1
  347. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  348. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  349. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +2 -2
  350. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  351. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  352. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  353. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  354. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  355. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  356. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  357. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  358. package/lib/cjs/topology/MaskManager.js.map +1 -1
  359. package/lib/cjs/topology/Merging.js.map +1 -1
  360. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  361. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  362. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  363. package/lib/cjs/topology/Triangulation.js +11 -11
  364. package/lib/cjs/topology/Triangulation.js.map +1 -1
  365. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  366. package/lib/esm/Constant.js +17 -17
  367. package/lib/esm/Constant.js.map +1 -1
  368. package/lib/esm/Geometry.js +35 -35
  369. package/lib/esm/Geometry.js.map +1 -1
  370. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  371. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  372. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  373. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  374. package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
  375. package/lib/esm/bspline/BSplineCurveOps.js +18 -21
  376. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  377. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  378. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  379. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  380. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  381. package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
  382. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  383. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  384. package/lib/esm/bspline/KnotVector.js +2 -2
  385. package/lib/esm/bspline/KnotVector.js.map +1 -1
  386. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  387. package/lib/esm/clipping/AlternatingConvexClipTree.js +2 -2
  388. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  389. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  390. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  391. package/lib/esm/clipping/ClipPlane.js +1 -1
  392. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  393. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  394. package/lib/esm/clipping/ClipUtils.js +1 -1
  395. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  396. package/lib/esm/clipping/ClipVector.js +1 -1
  397. package/lib/esm/clipping/ClipVector.js.map +1 -1
  398. package/lib/esm/clipping/ConvexClipPlaneSet.js +3 -3
  399. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  400. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +1 -1
  401. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  402. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  403. package/lib/esm/core-geometry.js.map +1 -1
  404. package/lib/esm/curve/Arc3d.d.ts +40 -8
  405. package/lib/esm/curve/Arc3d.d.ts.map +1 -1
  406. package/lib/esm/curve/Arc3d.js +80 -22
  407. package/lib/esm/curve/Arc3d.js.map +1 -1
  408. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  409. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  410. package/lib/esm/curve/CurveChainWithDistanceIndex.js +4 -4
  411. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  412. package/lib/esm/curve/CurveCollection.d.ts +16 -2
  413. package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
  414. package/lib/esm/curve/CurveCollection.js +33 -2
  415. package/lib/esm/curve/CurveCollection.js.map +1 -1
  416. package/lib/esm/curve/CurveCurve.js.map +1 -1
  417. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  418. package/lib/esm/curve/CurveFactory.d.ts +87 -53
  419. package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
  420. package/lib/esm/curve/CurveFactory.js +213 -135
  421. package/lib/esm/curve/CurveFactory.js.map +1 -1
  422. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  423. package/lib/esm/curve/CurveOps.js.map +1 -1
  424. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  425. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  426. package/lib/esm/curve/CurveTypes.js.map +1 -1
  427. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  428. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  429. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  430. package/lib/esm/curve/LineString3d.d.ts +12 -8
  431. package/lib/esm/curve/LineString3d.d.ts.map +1 -1
  432. package/lib/esm/curve/LineString3d.js +34 -13
  433. package/lib/esm/curve/LineString3d.js.map +1 -1
  434. package/lib/esm/curve/Loop.d.ts +12 -6
  435. package/lib/esm/curve/Loop.d.ts.map +1 -1
  436. package/lib/esm/curve/Loop.js +12 -6
  437. package/lib/esm/curve/Loop.js.map +1 -1
  438. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  439. package/lib/esm/curve/ParityRegion.js.map +1 -1
  440. package/lib/esm/curve/Path.js.map +1 -1
  441. package/lib/esm/curve/PointString3d.js.map +1 -1
  442. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  443. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  444. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  445. package/lib/esm/curve/Query/CylindricalRange.d.ts +8 -6
  446. package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
  447. package/lib/esm/curve/Query/CylindricalRange.js +13 -9
  448. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  449. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  450. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  451. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  452. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  453. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  454. package/lib/esm/curve/RegionOps.js.map +1 -1
  455. package/lib/esm/curve/RegionOpsClassificationSweeps.js +1 -1
  456. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  457. package/lib/esm/curve/StrokeOptions.d.ts +4 -4
  458. package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
  459. package/lib/esm/curve/StrokeOptions.js +1 -1
  460. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  461. package/lib/esm/curve/UnionRegion.js.map +1 -1
  462. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  463. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  464. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  465. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  466. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  467. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  468. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -5
  469. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  470. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +13 -13
  471. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  472. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +5 -5
  473. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  474. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  475. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  476. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
  477. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +29 -23
  478. package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
  479. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  480. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  481. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  482. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  483. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +4 -4
  484. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  485. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  486. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  487. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  488. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  489. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  490. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  491. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  492. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  493. package/lib/esm/curve/spiral/IntegratedSpiral3d.js +2 -2
  494. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  495. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  496. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  497. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  498. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  499. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  500. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  501. package/lib/esm/geometry3d/Angle.js +16 -16
  502. package/lib/esm/geometry3d/Angle.js.map +1 -1
  503. package/lib/esm/geometry3d/AngleSweep.d.ts +1 -1
  504. package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
  505. package/lib/esm/geometry3d/AngleSweep.js +1 -1
  506. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  507. package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
  508. package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
  509. package/lib/esm/geometry3d/BarycentricTriangle.js +17 -8
  510. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  511. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  512. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  513. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  514. package/lib/esm/geometry3d/FrameBuilder.js +4 -4
  515. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  516. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  517. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  518. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  519. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +2 -0
  520. package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
  521. package/lib/esm/geometry3d/GrowableFloat64Array.js +4 -0
  522. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  523. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  524. package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
  525. package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
  526. package/lib/esm/geometry3d/GrowableXYZArray.js +54 -16
  527. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  528. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  529. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  530. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
  531. package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
  532. package/lib/esm/geometry3d/IndexedXYZCollection.js +24 -10
  533. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  534. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  535. package/lib/esm/geometry3d/Matrix3d.d.ts +11 -8
  536. package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
  537. package/lib/esm/geometry3d/Matrix3d.js +36 -34
  538. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  539. package/lib/esm/geometry3d/OrderedRotationAngles.js +2 -2
  540. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  541. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  542. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  543. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  544. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  545. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  546. package/lib/esm/geometry3d/Point3dArrayCarrier.js +1 -1
  547. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  548. package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -6
  549. package/lib/esm/geometry3d/Point3dVector3d.js +6 -6
  550. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  551. package/lib/esm/geometry3d/PointHelpers.js +5 -5
  552. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  553. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  554. package/lib/esm/geometry3d/PolygonOps.d.ts +12 -6
  555. package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
  556. package/lib/esm/geometry3d/PolygonOps.js +117 -70
  557. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  558. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
  559. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  560. package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
  561. package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
  562. package/lib/esm/geometry3d/PolylineOps.js +9 -5
  563. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  564. package/lib/esm/geometry3d/Range.js +4 -4
  565. package/lib/esm/geometry3d/Range.js.map +1 -1
  566. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  567. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  568. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  569. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  570. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  571. package/lib/esm/geometry3d/Transform.js.map +1 -1
  572. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  573. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  574. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  575. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  576. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  577. package/lib/esm/geometry4d/MomentData.d.ts +72 -73
  578. package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
  579. package/lib/esm/geometry4d/MomentData.js +62 -64
  580. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  581. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  582. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  583. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  584. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  585. package/lib/esm/numerics/ClusterableArray.js +13 -13
  586. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  587. package/lib/esm/numerics/Complex.js.map +1 -1
  588. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  589. package/lib/esm/numerics/Newton.js.map +1 -1
  590. package/lib/esm/numerics/PascalCoefficients.js +1 -1
  591. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  592. package/lib/esm/numerics/PolarData.js +1 -1
  593. package/lib/esm/numerics/PolarData.js.map +1 -1
  594. package/lib/esm/numerics/Polynomials.d.ts +5 -5
  595. package/lib/esm/numerics/Polynomials.js +32 -32
  596. package/lib/esm/numerics/Polynomials.js.map +1 -1
  597. package/lib/esm/numerics/Quadrature.js +20 -20
  598. package/lib/esm/numerics/Quadrature.js.map +1 -1
  599. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  600. package/lib/esm/numerics/SmallSystem.js.map +1 -1
  601. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  602. package/lib/esm/numerics/UnionFind.js.map +1 -1
  603. package/lib/esm/numerics/UsageSums.js.map +1 -1
  604. package/lib/esm/polyface/AuxData.d.ts +2 -2
  605. package/lib/esm/polyface/AuxData.d.ts.map +1 -1
  606. package/lib/esm/polyface/AuxData.js +11 -3
  607. package/lib/esm/polyface/AuxData.js.map +1 -1
  608. package/lib/esm/polyface/BoxTopology.js +67 -67
  609. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  610. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  611. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  612. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  613. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +2 -2
  614. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  615. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +27 -20
  616. package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
  617. package/lib/esm/polyface/IndexedEdgeMatcher.js +56 -30
  618. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  619. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +2 -1
  620. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  621. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +2 -1
  622. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  623. package/lib/esm/polyface/Polyface.d.ts +3 -5
  624. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  625. package/lib/esm/polyface/Polyface.js +6 -13
  626. package/lib/esm/polyface/Polyface.js.map +1 -1
  627. package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -7
  628. package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
  629. package/lib/esm/polyface/PolyfaceBuilder.js +60 -65
  630. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  631. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  632. package/lib/esm/polyface/PolyfaceData.d.ts +13 -3
  633. package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
  634. package/lib/esm/polyface/PolyfaceData.js +26 -9
  635. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  636. package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
  637. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  638. package/lib/esm/polyface/PolyfaceQuery.js +11 -10
  639. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  640. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  641. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  642. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  643. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  644. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  645. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  646. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  647. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  648. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  649. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  650. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  651. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  652. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  653. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  654. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  655. package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
  656. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  657. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  658. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  659. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  660. package/lib/esm/serialization/BGFBReader.js +22 -22
  661. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  662. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  663. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  664. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  665. package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
  666. package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
  667. package/lib/esm/serialization/GeometrySamples.js +112 -112
  668. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  669. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  670. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  671. package/lib/esm/solid/Box.d.ts +9 -3
  672. package/lib/esm/solid/Box.d.ts.map +1 -1
  673. package/lib/esm/solid/Box.js +10 -5
  674. package/lib/esm/solid/Box.js.map +1 -1
  675. package/lib/esm/solid/Cone.d.ts +3 -2
  676. package/lib/esm/solid/Cone.d.ts.map +1 -1
  677. package/lib/esm/solid/Cone.js +3 -3
  678. package/lib/esm/solid/Cone.js.map +1 -1
  679. package/lib/esm/solid/LinearSweep.d.ts +9 -3
  680. package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
  681. package/lib/esm/solid/LinearSweep.js +9 -4
  682. package/lib/esm/solid/LinearSweep.js.map +1 -1
  683. package/lib/esm/solid/RotationalSweep.d.ts +15 -4
  684. package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
  685. package/lib/esm/solid/RotationalSweep.js +20 -7
  686. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  687. package/lib/esm/solid/RuledSweep.d.ts +35 -26
  688. package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
  689. package/lib/esm/solid/RuledSweep.js +41 -28
  690. package/lib/esm/solid/RuledSweep.js.map +1 -1
  691. package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
  692. package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
  693. package/lib/esm/solid/SolidPrimitive.js +8 -5
  694. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  695. package/lib/esm/solid/Sphere.d.ts +17 -7
  696. package/lib/esm/solid/Sphere.d.ts.map +1 -1
  697. package/lib/esm/solid/Sphere.js +22 -16
  698. package/lib/esm/solid/Sphere.js.map +1 -1
  699. package/lib/esm/solid/SweepContour.d.ts +25 -16
  700. package/lib/esm/solid/SweepContour.d.ts.map +1 -1
  701. package/lib/esm/solid/SweepContour.js +25 -16
  702. package/lib/esm/solid/SweepContour.js.map +1 -1
  703. package/lib/esm/solid/TorusPipe.d.ts +8 -2
  704. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  705. package/lib/esm/solid/TorusPipe.js +9 -5
  706. package/lib/esm/solid/TorusPipe.js.map +1 -1
  707. package/lib/esm/topology/ChainMerge.js +4 -4
  708. package/lib/esm/topology/ChainMerge.js.map +1 -1
  709. package/lib/esm/topology/Graph.js +5 -5
  710. package/lib/esm/topology/Graph.js.map +1 -1
  711. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  712. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  713. package/lib/esm/topology/HalfEdgeGraphSpineContext.js +2 -2
  714. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  715. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  716. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  717. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  718. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  719. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  720. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  721. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  722. package/lib/esm/topology/MaskManager.js.map +1 -1
  723. package/lib/esm/topology/Merging.js.map +1 -1
  724. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  725. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  726. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  727. package/lib/esm/topology/Triangulation.js +11 -11
  728. package/lib/esm/topology/Triangulation.js.map +1 -1
  729. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  730. package/package.json +5 -5
@@ -387,6 +387,25 @@ export class PolygonOps {
387
387
  s *= 0.5;
388
388
  return s;
389
389
  }
390
+ /** These values are the integrated area moment products [xx,xy,xz, x]
391
+ * for a right triangle in the first quadrant at the origin -- (0,0),(1,0),(0,1)
392
+ */
393
+ static { this._triangleMomentWeights = Matrix4d.createRowValues(2.0 / 24.0, 1.0 / 24.0, 0, 4.0 / 24.0, 1.0 / 24.0, 2.0 / 24.0, 0, 4.0 / 24.0, 0, 0, 0, 0, 4.0 / 24.0, 4.0 / 24.0, 0, 12.0 / 24.0); }
394
+ /** These values are the integrated volume moment products [xx,xy,xz, x, yx,yy,yz,y, zx,zy,zz,z,x,y,z,1]
395
+ * for a tetrahedron in the first quadrant at the origin -- (0,00),(1,0,0),(0,1,0),(0,0,1)
396
+ */
397
+ static { this._tetrahedralMomentWeights = Matrix4d.createRowValues(1.0 / 60.0, 1.0 / 120, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 60.0, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 120, 1.0 / 60.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 6.0); }
398
+ // statics for shared reuse.
399
+ // many methods use these.
400
+ // only use them in "leaf" methods that are certain not to call other users . . .
401
+ static { this._vector0 = Vector3d.create(); }
402
+ static { this._vector1 = Vector3d.create(); }
403
+ static { this._vector2 = Vector3d.create(); }
404
+ static { this._vectorOrigin = Vector3d.create(); }
405
+ static { this._normal = Vector3d.create(); }
406
+ static { this._matrixA = Matrix4d.createIdentity(); }
407
+ static { this._matrixB = Matrix4d.createIdentity(); }
408
+ static { this._matrixC = Matrix4d.createIdentity(); }
390
409
  /** return a vector which is perpendicular to the polygon and has magnitude equal to the polygon area. */
391
410
  static areaNormalGo(points, result) {
392
411
  if (!result)
@@ -453,8 +472,8 @@ export class PolygonOps {
453
472
  }
454
473
  /**
455
474
  * Return a Ray3d with (assuming the polygon is planar and not self-intersecting):
456
- * * `origin` at the centroid of the (3D) polygon
457
- * * `direction` is the unit vector perpendicular to the plane
475
+ * * `origin` at the centroid of the (3D) polygon,
476
+ * * `direction` is the unit vector perpendicular to the plane,
458
477
  * * `a` is the area.
459
478
  * @param points
460
479
  */
@@ -839,7 +858,10 @@ export class PolygonOps {
839
858
  * * Compare to [[closestPoint]].
840
859
  * @param polygon points of the polygon, closure point optional
841
860
  * @param testPoint point p to project onto the polygon edges. Works best when p is in the plane of the polygon.
842
- * @param tolerance optional distance tolerance to determine point-vertex and point-edge coincidence.
861
+ * @param tolerance optional tolerance(s) to determine point-vertex and point-edge coincidence. A single number
862
+ * is interpreted as distance tolerance. If an array is given, the first number is interpreted as distance tolerance;
863
+ * the second, as parametric tolerance. Default values are [[Geometry.smallMetricDistance]] for distance tolerance
864
+ * and 0.0 for parameter tolerance.
843
865
  * @param result optional pre-allocated object to fill and return
844
866
  * @returns details d of the closest point `d.point`:
845
867
  * * `d.isValid()` returns true if and only if the polygon is nontrivial.
@@ -851,7 +873,9 @@ export class PolygonOps {
851
873
  static closestPointOnBoundary(polygon, testPoint, tolerance = Geometry.smallMetricDistance, result) {
852
874
  if (!(polygon instanceof IndexedXYZCollection))
853
875
  return this.closestPointOnBoundary(new Point3dArrayCarrier(polygon), testPoint, tolerance, result);
854
- const distTol2 = tolerance * tolerance;
876
+ const distTol = Array.isArray(tolerance) ? tolerance[0] : tolerance;
877
+ const paramTol = Array.isArray(tolerance) ? Math.abs(tolerance[1]) : 0.0;
878
+ const distTol2 = distTol * distTol;
855
879
  let numPoints = polygon.length;
856
880
  while (numPoints > 1) {
857
881
  if (polygon.distanceSquaredIndexIndex(0, numPoints - 1) > distTol2)
@@ -861,29 +885,59 @@ export class PolygonOps {
861
885
  result = PolygonLocationDetail.create(result);
862
886
  if (0 === numPoints)
863
887
  return result; // invalid
864
- if (1 === numPoints) {
865
- polygon.getPoint3dAtUncheckedPointIndex(0, result.point);
888
+ const constructSingletonPoint = (index) => {
889
+ polygon.getPoint3dAtUncheckedPointIndex(index, result.point);
866
890
  result.a = result.point.distance(testPoint);
867
891
  result.v.setZero();
868
892
  result.code = PolygonLocation.OnPolygonVertex;
869
- result.closestEdgeIndex = 0;
893
+ result.closestEdgeIndex = index;
870
894
  result.closestEdgeParam = 0.0;
871
895
  return result;
872
- }
896
+ };
897
+ if (1 === numPoints)
898
+ return constructSingletonPoint(0);
899
+ // lambda for computing edge parameter at which testPoint projects onto the edge starting at iEdgeStart
900
+ const projectToEdge = (iEdgeStart) => {
901
+ let isValid = false;
902
+ let edgeParam = 0.0;
903
+ let uDotU = 0.0;
904
+ let vDotV = 0.0;
905
+ if (iEdgeStart >= 0 && iEdgeStart < numPoints) {
906
+ let iEdgeEnd = iEdgeStart + 1;
907
+ if (iEdgeEnd === numPoints)
908
+ iEdgeEnd = 0;
909
+ uDotU = polygon.distanceSquaredIndexIndex(iEdgeStart, iEdgeEnd);
910
+ if (uDotU > distTol2) { // nontrivial edge
911
+ vDotV = polygon.distanceSquaredIndexXYAndZ(iEdgeStart, testPoint);
912
+ const uDotV = polygon.dotProductIndexIndexXYAndZ(iEdgeStart, iEdgeEnd, testPoint);
913
+ edgeParam = uDotV / uDotU; // param of projection of testPoint onto edge [iEdgeStart, iEdgeEnd]
914
+ isValid = true;
915
+ }
916
+ }
917
+ return { isValid, edgeParam, uDotU, vDotV };
918
+ };
919
+ // find the previous nontrivial edge's projection status before processing the first edge
920
+ let projBeyondPrevEdge = false;
873
921
  let iPrev = numPoints - 1;
922
+ for (; iPrev > 0; --iPrev) {
923
+ const projData = projectToEdge(iPrev);
924
+ if (projData.isValid) {
925
+ projBeyondPrevEdge = projData.edgeParam > 1.0 + paramTol;
926
+ break;
927
+ }
928
+ }
929
+ if (iPrev <= 0) // all segments trivial, so treat like single point case
930
+ return constructSingletonPoint(0);
874
931
  let minDist2 = Geometry.largeCoordinateResult;
875
932
  for (let iBase = 0; iBase < numPoints; ++iBase) {
876
933
  let iNext = iBase + 1;
877
934
  if (iNext === numPoints)
878
935
  iNext = 0;
879
- const uDotU = polygon.distanceSquaredIndexIndex(iBase, iNext);
880
- if (uDotU <= distTol2)
881
- continue; // ignore trivial polygon edge (keep iPrev)
882
- const vDotV = polygon.distanceSquaredIndexXYAndZ(iBase, testPoint);
883
- const uDotV = polygon.dotProductIndexIndexXYAndZ(iBase, iNext, testPoint);
884
- const edgeParam = uDotV / uDotU; // param of projection of testPoint onto this edge
885
- if (edgeParam <= 0.0) { // testPoint projects to/before edge start
886
- const distToStart2 = vDotV;
936
+ const projData = projectToEdge(iBase);
937
+ if (!projData.isValid)
938
+ continue; // ignore trivial polygon edge (keep iPrev, projBeyondPrevEdge)
939
+ if (projData.edgeParam <= paramTol) { // testPoint projects to/before edge start
940
+ const distToStart2 = projData.vDotV;
887
941
  if (distToStart2 <= distTol2) {
888
942
  // testPoint is at edge start; we are done
889
943
  polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
@@ -894,25 +948,25 @@ export class PolygonOps {
894
948
  result.closestEdgeParam = 0.0;
895
949
  return result;
896
950
  }
897
- if (distToStart2 < minDist2) {
898
- if (polygon.dotProductIndexIndexXYAndZ(iBase, iPrev, testPoint) <= 0.0) {
899
- // update candidate (to edge start) only if testPoint projected beyond previous edge end
900
- polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
901
- result.a = Math.sqrt(distToStart2);
902
- polygon.crossProductIndexIndexIndex(iBase, iPrev, iNext, result.v);
903
- result.code = PolygonLocation.OnPolygonVertex;
904
- result.closestEdgeIndex = iBase;
905
- result.closestEdgeParam = 0.0;
906
- minDist2 = distToStart2;
907
- }
951
+ if (distToStart2 < minDist2 && projBeyondPrevEdge) {
952
+ // update candidate (to edge start) only if testPoint projected beyond previous edge end
953
+ polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
954
+ result.a = Math.sqrt(distToStart2);
955
+ polygon.crossProductIndexIndexIndex(iBase, iPrev, iNext, result.v);
956
+ result.code = PolygonLocation.OnPolygonVertex;
957
+ result.closestEdgeIndex = iBase;
958
+ result.closestEdgeParam = 0.0;
959
+ minDist2 = distToStart2;
908
960
  }
961
+ projBeyondPrevEdge = false;
909
962
  }
910
- else if (edgeParam <= 1.0) { // testPoint projects inside edge, or to edge end
911
- const projDist2 = vDotV - edgeParam * edgeParam * uDotU;
963
+ else if (projData.edgeParam <= 1.0 + paramTol) { // testPoint projects inside edge, or to edge end
964
+ projData.edgeParam = Geometry.clamp(projData.edgeParam, 0.0, 1.0);
965
+ const projDist2 = projData.vDotV - projData.edgeParam * projData.edgeParam * projData.uDotU;
912
966
  if (projDist2 <= distTol2) {
913
967
  // testPoint is on edge; we are done
914
- const distToStart2 = vDotV;
915
- if (edgeParam <= 0.5 && distToStart2 <= distTol2) {
968
+ const distToStart2 = projData.vDotV;
969
+ if (projData.edgeParam <= 0.5 && distToStart2 <= distTol2) {
916
970
  // testPoint is at edge start
917
971
  polygon.getPoint3dAtUncheckedPointIndex(iBase, result.point);
918
972
  result.a = Math.sqrt(distToStart2);
@@ -922,8 +976,8 @@ export class PolygonOps {
922
976
  result.closestEdgeParam = 0.0;
923
977
  return result;
924
978
  }
925
- const distToEnd2 = projDist2 + (1.0 - edgeParam) * (1.0 - edgeParam) * uDotU;
926
- if (edgeParam > 0.5 && distToEnd2 <= distTol2) {
979
+ const distToEnd2 = projDist2 + (1.0 - projData.edgeParam) * (1.0 - projData.edgeParam) * projData.uDotU;
980
+ if (projData.edgeParam > 0.5 && distToEnd2 <= distTol2) {
927
981
  // testPoint is at edge end
928
982
  polygon.getPoint3dAtUncheckedPointIndex(iNext, result.point);
929
983
  result.a = Math.sqrt(distToEnd2);
@@ -934,27 +988,29 @@ export class PolygonOps {
934
988
  return result;
935
989
  }
936
990
  // testPoint is on edge interior
937
- polygon.interpolateIndexIndex(iBase, edgeParam, iNext, result.point);
991
+ polygon.interpolateIndexIndex(iBase, projData.edgeParam, iNext, result.point);
938
992
  result.a = Math.sqrt(projDist2);
939
993
  result.v.setZero();
940
994
  result.code = PolygonLocation.OnPolygonEdgeInterior;
941
995
  result.closestEdgeIndex = iBase;
942
- result.closestEdgeParam = edgeParam;
996
+ result.closestEdgeParam = projData.edgeParam;
943
997
  return result;
944
998
  }
945
999
  if (projDist2 < minDist2) {
946
- // update candidate (to edge interior)
947
- polygon.interpolateIndexIndex(iBase, edgeParam, iNext, result.point);
1000
+ // update candidate
1001
+ polygon.interpolateIndexIndex(iBase, projData.edgeParam, iNext, result.point);
948
1002
  result.a = Math.sqrt(projDist2);
949
1003
  polygon.crossProductIndexIndexXYAndZ(iBase, iNext, testPoint, result.v);
950
- result.code = PolygonLocation.OnPolygonEdgeInterior;
1004
+ result.code = projData.edgeParam < 1.0 ? PolygonLocation.OnPolygonEdgeInterior : PolygonLocation.OnPolygonVertex;
1005
+ ;
951
1006
  result.closestEdgeIndex = iBase;
952
- result.closestEdgeParam = edgeParam;
1007
+ result.closestEdgeParam = projData.edgeParam;
953
1008
  minDist2 = projDist2;
954
1009
  }
1010
+ projBeyondPrevEdge = false;
955
1011
  }
956
- else { // edgeParam > 1.0
957
- // NOOP: testPoint projects beyond edge end, handled by next edge
1012
+ else {
1013
+ projBeyondPrevEdge = true; // to be handled by next edge
958
1014
  }
959
1015
  iPrev = iBase;
960
1016
  }
@@ -998,7 +1054,10 @@ export class PolygonOps {
998
1054
  /** Compute the intersection of a line (parameterized as a ray) with the plane of this polygon.
999
1055
  * @param polygon points of the polygon, closure point optional
1000
1056
  * @param ray infinite line to intersect, as a ray
1001
- * @param tolerance optional distance tolerance to determine point-vertex and point-edge coincidence.
1057
+ * @param tolerance optional tolerance(s) to determine point-vertex and point-edge coincidence. A single number
1058
+ * is interpreted as distance tolerance. If an array is given, the first number is interpreted as distance tolerance;
1059
+ * the second, as parametric tolerance. Default values are [[Geometry.smallMetricDistance]] for distance tolerance
1060
+ * and 0.0 for parameter tolerance.
1002
1061
  * @param result optional pre-allocated object to fill and return
1003
1062
  * @returns details d of the line-plane intersection `d.point`:
1004
1063
  * * `d.isValid()` returns true if and only if the line intersects the plane.
@@ -1025,11 +1084,18 @@ export class PolygonOps {
1025
1084
  // NOOP: intersectionPoint is on the polygon, so result.code already classifies it
1026
1085
  }
1027
1086
  else {
1028
- // intersectionPoint is not on polygon, so result.code refers to the closest point. Update it to refer to intersectionPoint.
1029
- if (PolygonLocation.OnPolygonVertex === result.code)
1030
- result.code = (dot > 0.0) ? PolygonLocation.InsidePolygonProjectsToVertex : PolygonLocation.OutsidePolygonProjectsToVertex;
1031
- else if (PolygonLocation.OnPolygonEdgeInterior === result.code)
1032
- result.code = (dot > 0.0) ? PolygonLocation.InsidePolygonProjectsToEdgeInterior : PolygonLocation.OutsidePolygonProjectsToEdgeInterior;
1087
+ // intersectionPoint is not on the polygon, so result.code refers to the closest point;
1088
+ // update it to refer to intersectionPoint.
1089
+ if (PolygonLocation.OnPolygonVertex === result.code) {
1090
+ result.code = (dot > 0.0)
1091
+ ? PolygonLocation.InsidePolygonProjectsToVertex
1092
+ : PolygonLocation.OutsidePolygonProjectsToVertex;
1093
+ }
1094
+ else if (PolygonLocation.OnPolygonEdgeInterior === result.code) {
1095
+ result.code = (dot > 0.0)
1096
+ ? PolygonLocation.InsidePolygonProjectsToEdgeInterior
1097
+ : PolygonLocation.OutsidePolygonProjectsToEdgeInterior;
1098
+ }
1033
1099
  }
1034
1100
  }
1035
1101
  return result;
@@ -1249,30 +1315,14 @@ export class PolygonOps {
1249
1315
  return result;
1250
1316
  }
1251
1317
  }
1252
- /** These values are the integrated area moment products [xx,xy,xz, x]
1253
- * for a right triangle in the first quadrant at the origin -- (0,0),(1,0),(0,1)
1254
- */
1255
- PolygonOps._triangleMomentWeights = Matrix4d.createRowValues(2.0 / 24.0, 1.0 / 24.0, 0, 4.0 / 24.0, 1.0 / 24.0, 2.0 / 24.0, 0, 4.0 / 24.0, 0, 0, 0, 0, 4.0 / 24.0, 4.0 / 24.0, 0, 12.0 / 24.0);
1256
- /** These values are the integrated volume moment products [xx,xy,xz, x, yx,yy,yz,y, zx,zy,zz,z,x,y,z,1]
1257
- * for a tetrahedron in the first quadrant at the origin -- (0,00),(1,0,0),(0,1,0),(0,0,1)
1258
- */
1259
- PolygonOps._tetrahedralMomentWeights = Matrix4d.createRowValues(1.0 / 60.0, 1.0 / 120, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 60.0, 1.0 / 120, 1.0 / 24.0, 1.0 / 120, 1.0 / 120, 1.0 / 60.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 24.0, 1.0 / 6.0);
1260
- // statics for shared reuse.
1261
- // many methods use these.
1262
- // only use them in "leaf" methods that are certain not to call other users . . .
1263
- PolygonOps._vector0 = Vector3d.create();
1264
- PolygonOps._vector1 = Vector3d.create();
1265
- PolygonOps._vector2 = Vector3d.create();
1266
- PolygonOps._vectorOrigin = Vector3d.create();
1267
- PolygonOps._normal = Vector3d.create();
1268
- PolygonOps._matrixA = Matrix4d.createIdentity();
1269
- PolygonOps._matrixB = Matrix4d.createIdentity();
1270
- PolygonOps._matrixC = Matrix4d.createIdentity();
1271
1318
  /**
1272
1319
  * `IndexedXYZCollectionPolygonOps` class contains _static_ methods for typical operations on polygons carried as `IndexedXYZCollection`
1273
1320
  * @public
1274
1321
  */
1275
1322
  export class IndexedXYZCollectionPolygonOps {
1323
+ static { this._xyz0Work = Point3d.create(); }
1324
+ static { this._xyz1Work = Point3d.create(); }
1325
+ static { this._xyz2Work = Point3d.create(); }
1276
1326
  /**
1277
1327
  * Split a (convex) polygon into 2 parts based on altitude evaluations.
1278
1328
  * * POSITIVE ALTITUDE IS IN
@@ -1529,14 +1579,12 @@ export class IndexedXYZCollectionPolygonOps {
1529
1579
  return xyz;
1530
1580
  }
1531
1581
  }
1532
- IndexedXYZCollectionPolygonOps._xyz0Work = Point3d.create();
1533
- IndexedXYZCollectionPolygonOps._xyz1Work = Point3d.create();
1534
- IndexedXYZCollectionPolygonOps._xyz2Work = Point3d.create();
1535
1582
  /**
1536
1583
  * `Point3dArrayPolygonOps` class contains _static_ methods for typical operations on polygons carried as `Point3d[]`
1537
1584
  * @public
1538
1585
  */
1539
1586
  export class Point3dArrayPolygonOps {
1587
+ static { this._xyz0Work = Point3d.create(); }
1540
1588
  // private static _xyz1Work: Point3d = Point3d.create();
1541
1589
  // private static _xyz2Work: Point3d = Point3d.create();
1542
1590
  /**
@@ -1610,5 +1658,4 @@ export class Point3dArrayPolygonOps {
1610
1658
  }
1611
1659
  }
1612
1660
  }
1613
- Point3dArrayPolygonOps._xyz0Work = Point3d.create();
1614
1661
  //# sourceMappingURL=PolygonOps.js.map