@itwin/core-geometry 4.7.0-dev.8 → 4.8.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/Constant.js.map +1 -1
  3. package/lib/cjs/Geometry.js.map +1 -1
  4. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  5. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  9. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  10. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  13. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  14. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  15. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  16. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  17. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  19. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  21. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  22. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  23. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  24. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  25. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  26. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  27. package/lib/cjs/core-geometry.js.map +1 -1
  28. package/lib/cjs/curve/Arc3d.js.map +1 -1
  29. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  30. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  31. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  32. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  33. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  34. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  35. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  36. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  37. package/lib/cjs/curve/CurveOps.js.map +1 -1
  38. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  39. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  40. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  41. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  42. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  43. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  44. package/lib/cjs/curve/LineString3d.js.map +1 -1
  45. package/lib/cjs/curve/Loop.js.map +1 -1
  46. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  47. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  48. package/lib/cjs/curve/Path.js.map +1 -1
  49. package/lib/cjs/curve/PointString3d.js.map +1 -1
  50. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  51. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  52. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  53. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  54. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  55. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  56. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  57. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  58. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  59. package/lib/cjs/curve/RegionOps.js.map +1 -1
  60. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  61. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  62. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  63. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  64. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  65. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  66. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  67. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  68. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  71. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  80. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  81. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  82. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  83. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  84. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  85. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  86. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  87. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  88. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  89. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  90. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  91. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  92. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  93. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  94. package/lib/cjs/geometry3d/Angle.d.ts +15 -13
  95. package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
  96. package/lib/cjs/geometry3d/Angle.js +24 -38
  97. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  98. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  99. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  100. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  101. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  102. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  103. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  104. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  105. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  106. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  107. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  108. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  109. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  110. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  111. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  112. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  113. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  114. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  115. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  116. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  117. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  118. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  119. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  120. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  121. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  122. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  123. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  124. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  125. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  126. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  127. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  128. package/lib/cjs/geometry3d/Range.js.map +1 -1
  129. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  130. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  131. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  132. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  133. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  134. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  135. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  136. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  137. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  138. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  139. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  140. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  141. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  142. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  143. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  144. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  145. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  146. package/lib/cjs/numerics/Complex.js.map +1 -1
  147. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  148. package/lib/cjs/numerics/Newton.js.map +1 -1
  149. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  150. package/lib/cjs/numerics/PolarData.js.map +1 -1
  151. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  152. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  153. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  154. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  155. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  156. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  157. package/lib/cjs/polyface/AuxData.js.map +1 -1
  158. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  159. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  160. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  161. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  162. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  163. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  164. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +46 -13
  165. package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  166. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +78 -24
  167. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  168. package/lib/cjs/polyface/Polyface.d.ts +5 -0
  169. package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
  170. package/lib/cjs/polyface/Polyface.js.map +1 -1
  171. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  172. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  173. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  174. package/lib/cjs/polyface/PolyfaceQuery.d.ts +70 -64
  175. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  176. package/lib/cjs/polyface/PolyfaceQuery.js +95 -83
  177. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  178. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  179. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  180. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  181. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  182. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  183. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  184. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  185. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  186. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  187. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  188. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  189. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  190. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  191. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  192. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  193. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  194. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  195. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  196. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  197. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  198. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  199. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  200. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  201. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  202. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  203. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  204. package/lib/cjs/solid/Box.js.map +1 -1
  205. package/lib/cjs/solid/Cone.js.map +1 -1
  206. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  207. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  208. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  209. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  210. package/lib/cjs/solid/Sphere.js.map +1 -1
  211. package/lib/cjs/solid/SweepContour.js.map +1 -1
  212. package/lib/cjs/solid/TorusPipe.d.ts +19 -12
  213. package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
  214. package/lib/cjs/solid/TorusPipe.js +27 -15
  215. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  216. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  217. package/lib/cjs/topology/Graph.js.map +1 -1
  218. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  219. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  220. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  221. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  222. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  223. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  224. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  225. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  226. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  227. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  228. package/lib/cjs/topology/MaskManager.js.map +1 -1
  229. package/lib/cjs/topology/Merging.js.map +1 -1
  230. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  231. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  232. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  233. package/lib/cjs/topology/Triangulation.js.map +1 -1
  234. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  235. package/lib/esm/Constant.js.map +1 -1
  236. package/lib/esm/Geometry.js.map +1 -1
  237. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  238. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  239. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  240. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  241. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  242. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  243. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  244. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  245. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  246. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  247. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  248. package/lib/esm/bspline/KnotVector.js.map +1 -1
  249. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  250. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  251. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  252. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  253. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  254. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  255. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  256. package/lib/esm/clipping/ClipVector.js.map +1 -1
  257. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  258. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  259. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  260. package/lib/esm/core-geometry.js.map +1 -1
  261. package/lib/esm/curve/Arc3d.js.map +1 -1
  262. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  263. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  264. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  265. package/lib/esm/curve/CurveCollection.js.map +1 -1
  266. package/lib/esm/curve/CurveCurve.js.map +1 -1
  267. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  268. package/lib/esm/curve/CurveFactory.js.map +1 -1
  269. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  270. package/lib/esm/curve/CurveOps.js.map +1 -1
  271. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  272. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  273. package/lib/esm/curve/CurveTypes.js.map +1 -1
  274. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  275. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  276. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  277. package/lib/esm/curve/LineString3d.js.map +1 -1
  278. package/lib/esm/curve/Loop.js.map +1 -1
  279. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  280. package/lib/esm/curve/ParityRegion.js.map +1 -1
  281. package/lib/esm/curve/Path.js.map +1 -1
  282. package/lib/esm/curve/PointString3d.js.map +1 -1
  283. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  284. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  285. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  286. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  287. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  288. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  289. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  290. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  291. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  292. package/lib/esm/curve/RegionOps.js.map +1 -1
  293. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  294. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  295. package/lib/esm/curve/UnionRegion.js.map +1 -1
  296. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  297. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  298. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  299. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  300. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  301. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  302. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  303. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  304. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  305. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  306. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  307. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  308. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  309. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  310. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  311. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  312. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  313. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  314. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  315. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  316. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  317. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  318. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  319. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  320. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  321. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  322. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  323. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  324. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  325. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  326. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  327. package/lib/esm/geometry3d/Angle.d.ts +15 -13
  328. package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
  329. package/lib/esm/geometry3d/Angle.js +24 -38
  330. package/lib/esm/geometry3d/Angle.js.map +1 -1
  331. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  332. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  333. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  334. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  335. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  336. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  337. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  338. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  339. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  340. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  341. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  342. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  343. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  344. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  345. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  346. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  347. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  348. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  349. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  350. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  351. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  352. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  353. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  354. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  355. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  356. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  357. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  358. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  359. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  360. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  361. package/lib/esm/geometry3d/Range.js.map +1 -1
  362. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  363. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  364. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  365. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  366. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  367. package/lib/esm/geometry3d/Transform.js.map +1 -1
  368. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  369. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  370. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  371. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  372. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  373. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  374. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  375. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  376. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  377. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  378. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  379. package/lib/esm/numerics/Complex.js.map +1 -1
  380. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  381. package/lib/esm/numerics/Newton.js.map +1 -1
  382. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  383. package/lib/esm/numerics/PolarData.js.map +1 -1
  384. package/lib/esm/numerics/Polynomials.js.map +1 -1
  385. package/lib/esm/numerics/Quadrature.js.map +1 -1
  386. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  387. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  388. package/lib/esm/numerics/UnionFind.js.map +1 -1
  389. package/lib/esm/numerics/UsageSums.js.map +1 -1
  390. package/lib/esm/polyface/AuxData.js.map +1 -1
  391. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  392. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  393. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  394. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  395. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  396. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  397. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +46 -13
  398. package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
  399. package/lib/esm/polyface/IndexedPolyfaceVisitor.js +78 -24
  400. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  401. package/lib/esm/polyface/Polyface.d.ts +5 -0
  402. package/lib/esm/polyface/Polyface.d.ts.map +1 -1
  403. package/lib/esm/polyface/Polyface.js.map +1 -1
  404. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  405. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  406. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  407. package/lib/esm/polyface/PolyfaceQuery.d.ts +70 -64
  408. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  409. package/lib/esm/polyface/PolyfaceQuery.js +95 -83
  410. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  411. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  412. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  413. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  414. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  415. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  416. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  417. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  418. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  419. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  420. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  421. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  422. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  423. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  424. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  425. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  426. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  427. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  428. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  429. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  430. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  431. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  432. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  433. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  434. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  435. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  436. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  437. package/lib/esm/solid/Box.js.map +1 -1
  438. package/lib/esm/solid/Cone.js.map +1 -1
  439. package/lib/esm/solid/LinearSweep.js.map +1 -1
  440. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  441. package/lib/esm/solid/RuledSweep.js.map +1 -1
  442. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  443. package/lib/esm/solid/Sphere.js.map +1 -1
  444. package/lib/esm/solid/SweepContour.js.map +1 -1
  445. package/lib/esm/solid/TorusPipe.d.ts +19 -12
  446. package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
  447. package/lib/esm/solid/TorusPipe.js +27 -15
  448. package/lib/esm/solid/TorusPipe.js.map +1 -1
  449. package/lib/esm/topology/ChainMerge.js.map +1 -1
  450. package/lib/esm/topology/Graph.js.map +1 -1
  451. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  452. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  453. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  454. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  455. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  456. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  457. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  458. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  459. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  460. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  461. package/lib/esm/topology/MaskManager.js.map +1 -1
  462. package/lib/esm/topology/Merging.js.map +1 -1
  463. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  464. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  465. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  466. package/lib/esm/topology/Triangulation.js.map +1 -1
  467. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  468. package/package.json +3 -3
@@ -159,6 +159,18 @@ export declare enum DuplicateFacetClusterSelector {
159
159
  /** Retain one from any cluster with an odd number of faces. */
160
160
  SelectOneByParity = 3
161
161
  }
162
+ /**
163
+ * Announce the points on a drape panel.
164
+ * * The first two points in the array are always along the draped line segment.
165
+ * * The last two are always on the facet.
166
+ * * If there are 4 points, those two pairs are distinct, i.e. both segment points are to the same side of the facet.
167
+ * * If there are 3 points, those two pairs share an on-facet point.
168
+ * * The panel is ordered so the outward normal is to the right of the draped segment.
169
+ * @param indexAOnFacet index (in points) of the point that is the first facet point for moving forward along the linestring.
170
+ * @param indexBOnFacet index (in points) of the point that is the second facet point for moving forward along the linestring.
171
+ * @public
172
+ */
173
+ export type AnnounceDrapePanel = (linestring: GrowableXYZArray, segmentIndex: number, polyface: Polyface, facetIndex: number, points: Point3d[], indexAOnFacet: number, indexBOnFacet: number) => any;
162
174
  /**
163
175
  * PolyfaceQuery is a static class whose methods implement queries on a `Polyface` or `PolyfaceVisitor` provided as a
164
176
  * parameter to each method.
@@ -220,41 +232,39 @@ export declare class PolyfaceQuery {
220
232
  */
221
233
  static areFacetsConvex(source: Polyface | PolyfaceVisitor): boolean;
222
234
  /**
223
- * Test for convex volume by dihedral angle tests on all edges.
224
- * * This tests if all dihedral angles of the mesh are positive.
225
- * * In a closed solid, this is a strong test for overall mesh convexity with outward facing normals.
226
- * * See [[dihedralAngleSummary]] for the definition of "dihedral angle".
227
- * * With `ignoreBoundaries` true, this may be a useful test when all the facets are in a single edge-connected
228
- * component, such as a pyramid with no underside.
229
- * * It is not a correct test if there are multiple, disjoint components.
230
- * * Take the above-mentioned pyramid with no underside.
231
- * * Within the same mesh, have a second pyramid placed to the side, still facing upward.
232
- * * The angles will pass the dihedral convexity test, but the composite thing surely is not convex.
235
+ * Compute a number summarizing the dihedral angles in the mesh.
236
+ * * A dihedral angle is the signed angle between adjacent facets' normals. This angle is positive when the cross
237
+ * product `normalA x normalB` has the same direction as facetA's traversal of the facets' shared edge.
233
238
  * @param source mesh.
234
239
  * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
235
- * @returns true if all dihedral angles of the mesh are positive.
240
+ * See [[isConvexByDihedralAngleCount]] for comments about passing true when there are multiple
241
+ * connected components.
242
+ * * Return `0` if all dihedral angles are zero (and `ignoreBoundaries === true`). The mesh is planar.
243
+ * * Otherwise, return `1` if all dihedral angles are non-negative. The mesh probably encloses a convex volume and
244
+ * has outward normals.
245
+ * * Otherwise, return `-1` if all dihedral angles are non-positive. The mesh probably encloses a convex volume and
246
+ * has inward normals.
247
+ * * Otherwise, return `-2`. Also return `-2` if a non-manifold condition was detected, or a facet normal could not
248
+ * be computed. A non-manifold condition is a positive-length edge adjacent to more than 2 facets or (if
249
+ * `ignoreBoundaries` is false) adjacent to exactly one facet.
236
250
  */
237
- static isConvexByDihedralAngleCount(source: Polyface, ignoreBoundaries?: boolean): boolean;
238
- /**
239
- * Compute a number summarizing the dihedral angles in the mesh.
240
- * * A dihedral angle is the signed angle between adjacent facets' normals. This angle is positive when the cross
241
- * product `normalA x normalB` has the same direction as facetA's traversal of the facets' shared edge.
242
- * @param source mesh.
243
- * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
244
- * See [[isConvexByDihedralAngleCount]] for comments about passing true when there are multiple
245
- * connected components.
246
- * * Return `0` if all dihedral angles are zero (and `ignoreBoundaries === true`). The mesh is planar.
247
- * * Otherwise, return `1` if all dihedral angles are non-negative. The mesh probably encloses a convex volume and
248
- * has outward normals.
249
- * * Otherwise, return `-1` if all dihedral angles are non-positive. The mesh probably encloses a convex volume and
250
- * has inward normals.
251
- * * Otherwise, return `-2`. Also return `-2` if a non-manifold condition was detected, or a facet normal could not
252
- * be computed. A non-manifold condition is a positive-length edge adjacent to more than 2 facets or (if
253
- * `ignoreBoundaries` is false) adjacent to exactly one facet.
254
- */
255
251
  static dihedralAngleSummary(source: Polyface, ignoreBoundaries?: boolean): number;
256
- /** Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume. */
257
- static isPolyfaceClosedByEdgePairing(source: Polyface): boolean;
252
+ /**
253
+ * Test for convex volume by dihedral angle tests on all edges.
254
+ * * This tests if all dihedral angles of the mesh are positive.
255
+ * * In a closed solid, this is a strong test for overall mesh convexity with outward facing normals.
256
+ * * See [[dihedralAngleSummary]] for the definition of "dihedral angle".
257
+ * * With `ignoreBoundaries` true, this may be a useful test when all the facets are in a single edge-connected
258
+ * component, such as a pyramid with no underside.
259
+ * * It is not a correct test if there are multiple, disjoint components.
260
+ * * Take the above-mentioned pyramid with no underside.
261
+ * * Within the same mesh, have a second pyramid placed to the side, still facing upward.
262
+ * * The angles will pass the dihedral convexity test, but the composite thing surely is not convex.
263
+ * @param source mesh.
264
+ * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
265
+ * @returns true if all dihedral angles of the mesh are positive.
266
+ */
267
+ static isConvexByDihedralAngleCount(source: Polyface, ignoreBoundaries?: boolean): boolean;
258
268
  /**
259
269
  * Test edges pairing in `source` mesh.
260
270
  * * For `allowSimpleBoundaries === false` true return means this is a closed 2-manifold surface.
@@ -264,6 +274,19 @@ export declare class PolyfaceQuery {
264
274
  * * Any edge with 2 adjacent facets in the same direction triggers a `false` return.
265
275
  */
266
276
  static isPolyfaceManifold(source: Polyface, allowSimpleBoundaries?: boolean): boolean;
277
+ /** Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume. */
278
+ static isPolyfaceClosedByEdgePairing(source: Polyface): boolean;
279
+ /**
280
+ * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.
281
+ * If not, extract the boundary edges as lines.
282
+ * @param source polyface or visitor.
283
+ * @param announceEdge function to be called with each boundary edge. The announcement is start and end points,
284
+ * start and end indices, and facet index.
285
+ * @param includeTypical true to announce typical boundary edges with a single adjacent facet.
286
+ * @param includeMismatch true to announce edges with more than 2 adjacent facets.
287
+ * @param includeNull true to announce edges with identical start and end vertex indices.
288
+ */
289
+ static announceBoundaryEdges(source: Polyface | PolyfaceVisitor | undefined, announceEdge: (pointA: Point3d, pointB: Point3d, indexA: number, indexB: number, facetIndex: number) => void, includeTypical?: boolean, includeMismatch?: boolean, includeNull?: boolean): void;
267
290
  /**
268
291
  * Construct a CurveCollection containing boundary edges.
269
292
  * * Each edge is a LineSegment3d.
@@ -282,17 +305,6 @@ export declare class PolyfaceQuery {
282
305
  * @param includeNull true to include edges with identical start and end vertex indices.
283
306
  */
284
307
  static collectBoundaryEdges(source: Polyface | PolyfaceVisitor, includeTypical?: boolean, includeMismatch?: boolean, includeNull?: boolean): AnyChain | undefined;
285
- /**
286
- * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.
287
- * If not, extract the boundary edges as lines.
288
- * @param source polyface or visitor.
289
- * @param announceEdge function to be called with each boundary edge. The announcement is start and end points,
290
- * start and end indices, and facet index.
291
- * @param includeTypical true to announce typical boundary edges with a single adjacent facet.
292
- * @param includeMismatch true to announce edges with more than 2 adjacent facets.
293
- * @param includeNull true to announce edges with identical start and end vertex indices.
294
- */
295
- static announceBoundaryEdges(source: Polyface | PolyfaceVisitor | undefined, announceEdge: (pointA: Point3d, pointB: Point3d, indexA: number, indexB: number, facetIndex: number) => void, includeTypical?: boolean, includeMismatch?: boolean, includeNull?: boolean): void;
296
308
  /**
297
309
  * Load all half edges from a mesh to an IndexedEdgeMatcher.
298
310
  * @param polyface a mesh or a visitor assumed to have numWrap === 1.
@@ -413,9 +425,15 @@ export declare class PolyfaceQuery {
413
425
  static cloneFiltered(source: Polyface | PolyfaceVisitor, filter: (visitor: PolyfaceVisitor) => boolean): IndexedPolyface;
414
426
  /** Clone the facets with in-facet dangling edges removed. */
415
427
  static cloneWithDanglingEdgesRemoved(source: Polyface | PolyfaceVisitor): IndexedPolyface;
416
- /** Return the point count of the `source`. */
428
+ /**
429
+ * Return the point count of the `source`.
430
+ * * If `source` is a visitor, this is an upper bound on the number of addressed mesh vertices.
431
+ */
417
432
  static visitorClientPointCount(source: Polyface | PolyfaceVisitor): number;
418
- /** Return the facet count of the `source`. */
433
+ /**
434
+ * Return the facet count of the `source`.
435
+ * * If `source` is a visitor, this is the number of facets it can visit.
436
+ */
419
437
  static visitorClientFacetCount(source: Polyface | PolyfaceVisitor): number;
420
438
  /**
421
439
  * Partition the facet set into connected components such that two adjacent facets are in the same component if and
@@ -513,24 +531,24 @@ export declare class PolyfaceQuery {
513
531
  */
514
532
  private static compareFacetIndexAndVertexIndices;
515
533
  /**
516
- * Collect facet duplicates.
517
- * @param polyface the polyface.
518
- * @param includeSingletons if true, non-duplicated facets are included in the output.
534
+ * Announce facet duplicates.
519
535
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
520
536
  * indices of a cluster of facets with the same vertex indices.
521
537
  */
522
- static collectDuplicateFacetIndices(polyface: Polyface, includeSingletons?: boolean): number[][];
538
+ static announceDuplicateFacetIndices(polyface: Polyface, announceCluster: (clusterFacetIndices: number[]) => void): void;
523
539
  /**
524
- * Announce facet duplicates.
540
+ * Collect facet duplicates.
541
+ * @param polyface the polyface.
542
+ * @param includeSingletons if true, non-duplicated facets are included in the output.
525
543
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
526
544
  * indices of a cluster of facets with the same vertex indices.
527
545
  */
528
- static announceDuplicateFacetIndices(polyface: Polyface, announceCluster: (clusterFacetIndices: number[]) => void): void;
546
+ static collectDuplicateFacetIndices(polyface: Polyface, includeSingletons?: boolean): number[][];
529
547
  /**
530
- * Return a new facet set with a subset of facets in polyface.
548
+ * Return a new facet set from the source facets, specifying how to copy duplicate facets.
531
549
  * @param source the polyface.
532
550
  * @param includeSingletons true to copy facets that only appear once
533
- * @param clusterSelector indicates whether duplicate clusters are to have 0, 1, or all facets included.
551
+ * @param clusterSelector indicates whether to copy 0, 1, or all facets in each cluster of duplicate facets.
534
552
  */
535
553
  static cloneByFacetDuplication(source: Polyface, includeSingletons: boolean, clusterSelector: DuplicateFacetClusterSelector): Polyface;
536
554
  /** Clone the facets, removing points that are simply within colinear edges. */
@@ -643,16 +661,4 @@ export declare class PolyfaceQuery {
643
661
  */
644
662
  static intersectRay3d(visitor: Polyface | PolyfaceVisitor, ray: Ray3d, options?: FacetIntersectOptions): FacetLocationDetail | undefined;
645
663
  }
646
- /**
647
- * Announce the points on a drape panel.
648
- * * The first two points in the array are always along the draped line segment.
649
- * * The last two are always on the facet.
650
- * * If there are 4 points, those two pairs are distinct, i.e. both segment points are to the same side of the facet.
651
- * * If there are 3 points, those two pairs share an on-facet point.
652
- * * The panel is ordered so the outward normal is to the right of the draped segment.
653
- * @param indexAOnFacet index (in points) of the point that is the first facet point for moving forward along the linestring.
654
- * @param indexBOnFacet index (in points) of the point that is the second facet point for moving forward along the linestring.
655
- * @public
656
- */
657
- export type AnnounceDrapePanel = (linestring: GrowableXYZArray, segmentIndex: number, polyface: Polyface, facetIndex: number, points: Point3d[], indexAOnFacet: number, indexBOnFacet: number) => any;
658
664
  //# sourceMappingURL=PolyfaceQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolyfaceQuery.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolyfaceQuery.d.ts","sourceRoot":"","sources":["../../../src/polyface/PolyfaceQuery.ts"],"names":[],"mappings":"AAKA;;GAEG;AAKH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAE1F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAIlE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAY,aAAa,EAAgB,MAAM,mBAAmB,CAAC;AAK1E,OAAO,EACsB,qBAAqB,EAAE,mBAAmB,EACtE,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAgB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,8BAA8B;IACzC;;;;OAIG;IACI,WAAW,EAAE,QAAQ,CAAC;IAC7B,mEAAmE;IAC5D,sBAAsB,EAAE,OAAO,CAAC;IACvC,iHAAiH;IAC1G,mBAAmB,EAAE,OAAO,CAAC;IACpC,0DAA0D;IACnD,mBAAmB,EAAE,OAAO,CAAC;IACpC;;;OAGG;IACI,SAAS,EAAE,KAAK,CAAC;IACxB,4CAA4C;IACrC,cAAc,EAAE,OAAO,CAAC;IAC/B,gFAAgF;IAChF,OAAO;IAeP;;;;;;OAMG;WACW,MAAM,CAClB,WAAW,CAAC,EAAE,QAAQ,EACtB,SAAS,CAAC,EAAE,KAAK,EACjB,cAAc,CAAC,EAAE,OAAO,EACxB,sBAAsB,CAAC,EAAE,OAAO,EAChC,mBAAmB,CAAC,EAAE,OAAO,EAC7B,mBAAmB,CAAC,EAAE,OAAO,GAC5B,8BAA8B;IAUjC,kDAAkD;IAClD,IAAW,UAAU,IAAI,OAAO,CAI/B;IACD;;;;;MAKE;IACK,0BAA0B,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO;CAQ9E;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gGAAgG;IAChG,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,yDAAyD;IAClD,+BAA+B,EAAE,KAAK,CAAC;IAC9C,yEAAyE;IAClE,oCAAoC,EAAE,KAAK,CAAC;IACnD;;;;OAIG;IACI,0BAA0B,EAAE,KAAK,CAAC;IACzC;;;OAGG;IACI,cAAc,CAAC,EAAE,gCAAgC,CAAC;IAEzD,yCAAyC;IACzC,OAAO;IASP;;;;;;;;;;;OAWG;WACW,MAAM,CAClB,+BAA+B,GAAE,KAA+B,EAChE,oCAAoC,GAAE,KAA+B,EACrE,8BAA8B,GAAE,KAAgC,GAC/D,iBAAiB;CAcrB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,iCAAiC,CAAC,EAAE,UAAU,CAAC;IAC/C,sDAAsD;IACtD,iCAAiC,CAAC,EAAE,UAAU,CAAC;CAChD;AAED;;;GAGG;AACH,oBAAY,6BAA6B;IACvC,qCAAqC;IACrC,UAAU,IAAI;IACd,8CAA8C;IAC9C,SAAS,IAAI;IACb,2CAA2C;IAC3C,SAAS,IAAI;IACb,+DAA+D;IAC/D,iBAAiB,IAAI;CACtB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EACtE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAChF,GAAG,CAAC;AAET;;;;GAIG;AACH,qBAAa,aAAa;IACxB,6DAA6D;WAC/C,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI3D,+DAA+D;WACjD,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW;IASrE;;;;;;OAMG;WACW,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM;IAgB3G;;;;;;OAMG;WACW,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAqBjG;;;;;;OAMG;WACW,8BAA8B,CAC1C,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,KAAK,EAAE,4BAA4B,GACtE,wBAAwB;IA+D3B,8GAA8G;WAChG,gCAAgC,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ;IAU7G,6GAA6G;WAC/F,kCAAkC,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ;IAU/G;;;;;OAKG;WACW,2BAA2B,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAOnF;;;;;;;OAOG;WACW,6BAA6B,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;IAOrF;;;;OAIG;WACW,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO;IAa1E;;;;;;;;;;;;;;;;OAgBG;WACW,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAE,OAAe,GAAG,MAAM;IA2D/F;;;;;;;;;;;;;;KAcC;WACa,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO;IAGxG;;;;;;;MAOE;WACY,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAE,OAAe,GAAG,OAAO;IAcnG,kHAAkH;WACpG,6BAA6B,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAGtE;;;;;;;;;OASG;WACW,qBAAqB,CACjC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,SAAS,EAC9C,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,EAC5G,cAAc,GAAE,OAAc,EAC9B,eAAe,GAAE,OAAc,EAC/B,WAAW,GAAE,OAAc,GAC1B,IAAI;IAuCP;;;;;;;OAOG;WACW,aAAa,CACzB,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,SAAS,EAC9C,cAAc,GAAE,OAAc,EAC9B,eAAe,GAAE,OAAc,EAC/B,WAAW,GAAE,OAAc,GAC1B,eAAe,GAAG,SAAS;IAU9B;;;;;;;OAOG;WACW,oBAAoB,CAChC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAClC,cAAc,GAAE,OAAc,EAC9B,eAAe,GAAE,OAAc,EAC/B,WAAW,GAAE,OAAc,GAC1B,QAAQ,GAAG,SAAS;IAWvB;;;MAGE;WACY,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,kBAAkB;IAa1F;;;;;;;;OAQG;WACW,uBAAuB,CACnC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,EACpH,WAAW,EAAE,QAAQ,EACrB,SAAS,GAAE,KAAgC,GAC1C,IAAI;IA4CP;;;;;;;OAOG;WACW,sBAAsB,CAClC,MAAM,EAAE,QAAQ,GAAG,eAAe,EAClC,WAAW,EAAE,QAAQ,EACrB,SAAS,GAAE,KAAgC,GAC1C,QAAQ,GAAG,SAAS;IAUvB;;;;OAIG;WACW,yCAAyC,CACrD,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,kBAAkB,GAC3B,GAAG;IAUN,OAAO,CAAC,MAAM,CAAC,eAAe,CAAS;IACvC;;;;OAIG;WACW,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKtD;;;OAGG;IACH,WAAkB,cAAc,IAAI,MAAM,CAEzC;IACD;;;OAGG;IACH,OAAc,eAAe,SAAK;IAClC,4FAA4F;mBACvE,iDAAiD;IAStE;;;;;;;OAOG;WACiB,8CAA8C,CAChE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,GACnF,OAAO,CAAC,MAAM,CAAC;IAgBlB;;;OAGG;WACW,+CAA+C,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM,EAAE,EAAE;IA6B/G;;;;;;;OAOG;WACW,uCAAuC,CACnD,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,GACrF,MAAM,EAAE,EAAE;IA4Bb;;;;;;;;;OASG;WACW,uBAAuB,CACnC,QAAQ,EAAE,eAAe,EACzB,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAC3B,WAAW,EAAE,QAAQ,EACrB,kBAAkB,GAAE,KAAmC,GACtD,eAAe,GAAG,SAAS;IAO9B;;;;OAIG;WACW,oCAAoC,CAChD,IAAI,EAAE,QAAQ,GAAG,eAAe,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7E,IAAI;IAWP;;;;;;;OAOG;WACW,4BAA4B,CACxC,IAAI,EAAE,QAAQ,GAAG,eAAe,EAAE,kBAAkB,CAAC,EAAE,KAAK,GAC3D,eAAe,GAAG,SAAS;IAoD9B;;;;;;;;;;;;;;OAcG;WACW,eAAe,CAC3B,IAAI,EAAE,QAAQ,GAAG,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,GAC1F,eAAe,GAAG,SAAS;IAsC9B,iEAAiE;WACnD,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE;IAsBvG,gDAAgD;WAClC,aAAa,CACzB,MAAM,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,GAChF,eAAe;IAkBlB,6DAA6D;WAC/C,6BAA6B,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe;IAiDhG;;;OAGG;WACW,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM;IAiBjF;;;OAGG;WACW,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM;IAmBjF;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,2CAA2C;IA8B1D;;;;;;OAMG;WACW,6CAA6C,CACzD,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,kBAAkB,GAAE,OAAe,GACxE,MAAM,EAAE,EAAE;IAuBb;;;;OAIG;WACW,0CAA0C,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAc1H,sFAAsF;WACxE,0CAA0C,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAG1H;;;;;;OAMG;WACW,uBAAuB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,QAAQ,GAAG,eAAe,EAC7C,OAAO,CAAC,EAAE,8BAA8B,GACvC,oBAAoB,EAAE;IAyCzB;;;;;;;;;;;;;;;OAeG;WACW,yBAAyB,CACrC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,EAAE,EAC9C,iBAAiB,EAAE,QAAQ,GAAG,eAAe,EAC7C,iBAAiB,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAChD,YAAY,EAAE;IAmCjB;;;;;;QAMI;WACU,oCAAoC,CAChD,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GACrD,aAAa,EAAE;IAOlB;;;;;;OAMG;WACW,qCAAqC,CACjD,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GACrD,YAAY,EAAE;IAOjB;;;;;;;;OAQG;WACiB,0CAA0C,CAC5D,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GACrD,OAAO,CAAC,YAAY,EAAE,CAAC;IAgB1B;;;OAGG;WACW,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,eAAe;IAU3F;;;OAGG;WACW,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe;IAoDxE;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAUhD;;;;OAIG;WACW,6BAA6B,CACzC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,IAAI,GAC3E,IAAI;IAyCP;;;;;;OAMG;WACW,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAE,OAAe,GAAG,MAAM,EAAE,EAAE;IAW9G;;;;;OAKG;WACW,uBAAuB,CACnC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,6BAA6B,GAC3F,QAAQ;IA0BX,+EAA+E;WACjE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IA6CtE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC;;;;;;OAMG;WACW,uBAAuB,CACnC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GACjF,IAAI;IAQP;;;;;OAKG;WACW,uBAAuB,CACnC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GACjE,OAAO,GAAG,SAAS;IAStB;;;;;;;OAOG;WACW,2BAA2B,CACvC,IAAI,EAAE,QAAQ,GAAG,eAAe,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,GAAE,OAAe,GACxF,mBAAmB,EAAE;IA+BxB;;;;;;;;MAQE;WACY,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,KAAK;IA2BpF;;;OAGG;WACW,sBAAsB,CAClC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAC9D,QAAQ,GAAG,SAAS;IASvB;;;;OAIG;WACW,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKhF;;;;OAIG;WACW,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa;IAkB1E,wHAAwH;WAC1G,uDAAuD,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO;IAGrG,qFAAqF;WACvE,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAGlE;;;;;;;;;;MAUE;WACY,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,GAAE,KAAiC,GAAG,IAAI;IAGrH;;;;;;OAMG;WACW,WAAW,CACvB,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,GAAE,iBAA8C,GACnH,eAAe;IAMlB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAsB;IACnD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAyB;IACvD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAwB;IACvD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAgC;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA4B;IAC7D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAA+B;IACjE;;;;;;;;;;;;;;;;;MAiBE;WACY,cAAc,CAC1B,OAAO,EAAE,QAAQ,GAAG,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAC/E,mBAAmB,GAAG,SAAS;CAiDnC"}
@@ -354,40 +354,22 @@ class PolyfaceQuery {
354
354
  return true;
355
355
  }
356
356
  /**
357
- * Test for convex volume by dihedral angle tests on all edges.
358
- * * This tests if all dihedral angles of the mesh are positive.
359
- * * In a closed solid, this is a strong test for overall mesh convexity with outward facing normals.
360
- * * See [[dihedralAngleSummary]] for the definition of "dihedral angle".
361
- * * With `ignoreBoundaries` true, this may be a useful test when all the facets are in a single edge-connected
362
- * component, such as a pyramid with no underside.
363
- * * It is not a correct test if there are multiple, disjoint components.
364
- * * Take the above-mentioned pyramid with no underside.
365
- * * Within the same mesh, have a second pyramid placed to the side, still facing upward.
366
- * * The angles will pass the dihedral convexity test, but the composite thing surely is not convex.
357
+ * Compute a number summarizing the dihedral angles in the mesh.
358
+ * * A dihedral angle is the signed angle between adjacent facets' normals. This angle is positive when the cross
359
+ * product `normalA x normalB` has the same direction as facetA's traversal of the facets' shared edge.
367
360
  * @param source mesh.
368
361
  * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
369
- * @returns true if all dihedral angles of the mesh are positive.
362
+ * See [[isConvexByDihedralAngleCount]] for comments about passing true when there are multiple
363
+ * connected components.
364
+ * * Return `0` if all dihedral angles are zero (and `ignoreBoundaries === true`). The mesh is planar.
365
+ * * Otherwise, return `1` if all dihedral angles are non-negative. The mesh probably encloses a convex volume and
366
+ * has outward normals.
367
+ * * Otherwise, return `-1` if all dihedral angles are non-positive. The mesh probably encloses a convex volume and
368
+ * has inward normals.
369
+ * * Otherwise, return `-2`. Also return `-2` if a non-manifold condition was detected, or a facet normal could not
370
+ * be computed. A non-manifold condition is a positive-length edge adjacent to more than 2 facets or (if
371
+ * `ignoreBoundaries` is false) adjacent to exactly one facet.
370
372
  */
371
- static isConvexByDihedralAngleCount(source, ignoreBoundaries = false) {
372
- return this.dihedralAngleSummary(source, ignoreBoundaries) > 0;
373
- }
374
- /**
375
- * Compute a number summarizing the dihedral angles in the mesh.
376
- * * A dihedral angle is the signed angle between adjacent facets' normals. This angle is positive when the cross
377
- * product `normalA x normalB` has the same direction as facetA's traversal of the facets' shared edge.
378
- * @param source mesh.
379
- * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
380
- * See [[isConvexByDihedralAngleCount]] for comments about passing true when there are multiple
381
- * connected components.
382
- * * Return `0` if all dihedral angles are zero (and `ignoreBoundaries === true`). The mesh is planar.
383
- * * Otherwise, return `1` if all dihedral angles are non-negative. The mesh probably encloses a convex volume and
384
- * has outward normals.
385
- * * Otherwise, return `-1` if all dihedral angles are non-positive. The mesh probably encloses a convex volume and
386
- * has inward normals.
387
- * * Otherwise, return `-2`. Also return `-2` if a non-manifold condition was detected, or a facet normal could not
388
- * be computed. A non-manifold condition is a positive-length edge adjacent to more than 2 facets or (if
389
- * `ignoreBoundaries` is false) adjacent to exactly one facet.
390
- */
391
373
  static dihedralAngleSummary(source, ignoreBoundaries = false) {
392
374
  // more info can be found at geometry/internaldocs/Polyface.md
393
375
  const edges = new IndexedEdgeMatcher_1.IndexedEdgeMatcher();
@@ -443,9 +425,23 @@ class PolyfaceQuery {
443
425
  return 0;
444
426
  return -2;
445
427
  }
446
- /** Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume. */
447
- static isPolyfaceClosedByEdgePairing(source) {
448
- return this.isPolyfaceManifold(source, false);
428
+ /**
429
+ * Test for convex volume by dihedral angle tests on all edges.
430
+ * * This tests if all dihedral angles of the mesh are positive.
431
+ * * In a closed solid, this is a strong test for overall mesh convexity with outward facing normals.
432
+ * * See [[dihedralAngleSummary]] for the definition of "dihedral angle".
433
+ * * With `ignoreBoundaries` true, this may be a useful test when all the facets are in a single edge-connected
434
+ * component, such as a pyramid with no underside.
435
+ * * It is not a correct test if there are multiple, disjoint components.
436
+ * * Take the above-mentioned pyramid with no underside.
437
+ * * Within the same mesh, have a second pyramid placed to the side, still facing upward.
438
+ * * The angles will pass the dihedral convexity test, but the composite thing surely is not convex.
439
+ * @param source mesh.
440
+ * @param ignoreBoundaries if `true` ignore simple boundary edges, i.e., allow unclosed meshes. Default is `false`.
441
+ * @returns true if all dihedral angles of the mesh are positive.
442
+ */
443
+ static isConvexByDihedralAngleCount(source, ignoreBoundaries = false) {
444
+ return this.dihedralAngleSummary(source, ignoreBoundaries) > 0;
449
445
  }
450
446
  /**
451
447
  * Test edges pairing in `source` mesh.
@@ -469,36 +465,9 @@ class PolyfaceQuery {
469
465
  edges.sortAndCollectClusters(undefined, allowSimpleBoundaries ? undefined : badClusters, undefined, badClusters);
470
466
  return badClusters.length === 0;
471
467
  }
472
- /**
473
- * Construct a CurveCollection containing boundary edges.
474
- * * Each edge is a LineSegment3d.
475
- * @param source polyface or visitor.
476
- * @param includeTypical true to in include typical boundary edges with a single adjacent facet.
477
- * @param includeMismatch true to include edges with more than 2 adjacent facets.
478
- * @param includeNull true to include edges with identical start and end vertex indices.
479
- */
480
- static boundaryEdges(source, includeTypical = true, includeMismatch = true, includeNull = true) {
481
- const result = new CurveCollection_1.BagOfCurves();
482
- const announceEdge = (pointA, pointB, _indexA, _indexB, _readIndex) => {
483
- result.tryAddChild(LineSegment3d_1.LineSegment3d.create(pointA, pointB));
484
- };
485
- PolyfaceQuery.announceBoundaryEdges(source, announceEdge, includeTypical, includeMismatch, includeNull);
486
- if (result.children.length === 0)
487
- return undefined;
488
- return result;
489
- }
490
- /**
491
- * Collect boundary edges.
492
- * * Return the edges as the simplest collection of chains of line segments.
493
- * @param source polyface or visitor.
494
- * @param includeTypical true to in include typical boundary edges with a single adjacent facet.
495
- * @param includeMismatch true to include edges with more than 2 adjacent facets.
496
- * @param includeNull true to include edges with identical start and end vertex indices.
497
- */
498
- static collectBoundaryEdges(source, includeTypical = true, includeMismatch = true, includeNull = true) {
499
- const collector = new MultiChainCollector_1.MultiChainCollector(Geometry_1.Geometry.smallMetricDistance, Geometry_1.Geometry.smallMetricDistance);
500
- PolyfaceQuery.announceBoundaryEdges(source, (ptA, ptB) => collector.captureCurve(LineSegment3d_1.LineSegment3d.create(ptA, ptB)), includeTypical, includeMismatch, includeNull);
501
- return collector.grabResult(true);
468
+ /** Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume. */
469
+ static isPolyfaceClosedByEdgePairing(source) {
470
+ return this.isPolyfaceManifold(source, false);
502
471
  }
503
472
  /**
504
473
  * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.
@@ -549,6 +518,37 @@ class PolyfaceQuery {
549
518
  }
550
519
  }
551
520
  }
521
+ /**
522
+ * Construct a CurveCollection containing boundary edges.
523
+ * * Each edge is a LineSegment3d.
524
+ * @param source polyface or visitor.
525
+ * @param includeTypical true to in include typical boundary edges with a single adjacent facet.
526
+ * @param includeMismatch true to include edges with more than 2 adjacent facets.
527
+ * @param includeNull true to include edges with identical start and end vertex indices.
528
+ */
529
+ static boundaryEdges(source, includeTypical = true, includeMismatch = true, includeNull = true) {
530
+ const result = new CurveCollection_1.BagOfCurves();
531
+ const announceEdge = (pointA, pointB, _indexA, _indexB, _readIndex) => {
532
+ result.tryAddChild(LineSegment3d_1.LineSegment3d.create(pointA, pointB));
533
+ };
534
+ PolyfaceQuery.announceBoundaryEdges(source, announceEdge, includeTypical, includeMismatch, includeNull);
535
+ if (result.children.length === 0)
536
+ return undefined;
537
+ return result;
538
+ }
539
+ /**
540
+ * Collect boundary edges.
541
+ * * Return the edges as the simplest collection of chains of line segments.
542
+ * @param source polyface or visitor.
543
+ * @param includeTypical true to in include typical boundary edges with a single adjacent facet.
544
+ * @param includeMismatch true to include edges with more than 2 adjacent facets.
545
+ * @param includeNull true to include edges with identical start and end vertex indices.
546
+ */
547
+ static collectBoundaryEdges(source, includeTypical = true, includeMismatch = true, includeNull = true) {
548
+ const collector = new MultiChainCollector_1.MultiChainCollector(Geometry_1.Geometry.smallMetricDistance, Geometry_1.Geometry.smallMetricDistance);
549
+ PolyfaceQuery.announceBoundaryEdges(source, (ptA, ptB) => collector.captureCurve(LineSegment3d_1.LineSegment3d.create(ptA, ptB)), includeTypical, includeMismatch, includeNull);
550
+ return collector.grabResult(true);
551
+ }
552
552
  /**
553
553
  * Load all half edges from a mesh to an IndexedEdgeMatcher.
554
554
  * @param polyface a mesh or a visitor assumed to have numWrap === 1.
@@ -994,13 +994,17 @@ class PolyfaceQuery {
994
994
  }
995
995
  return builder.claimPolyface(true);
996
996
  }
997
- /** Return the point count of the `source`. */
997
+ /**
998
+ * Return the point count of the `source`.
999
+ * * If `source` is a visitor, this is an upper bound on the number of addressed mesh vertices.
1000
+ */
998
1001
  static visitorClientPointCount(source) {
999
1002
  if (source instanceof Polyface_1.Polyface)
1000
1003
  return source.data.point.length;
1001
1004
  const polyface = source.clientPolyface();
1002
1005
  if (polyface !== undefined)
1003
1006
  return polyface.data.point.length;
1007
+ const saveReadIndex = source.currentReadIndex();
1004
1008
  source.reset();
1005
1009
  let maxIndex = -1;
1006
1010
  while (source.moveToNextFacet()) {
@@ -1008,22 +1012,30 @@ class PolyfaceQuery {
1008
1012
  if (pointIndex > maxIndex)
1009
1013
  maxIndex = pointIndex;
1010
1014
  }
1015
+ source.moveToReadIndex(saveReadIndex);
1011
1016
  return maxIndex + 1;
1012
1017
  }
1013
- /** Return the facet count of the `source`. */
1018
+ /**
1019
+ * Return the facet count of the `source`.
1020
+ * * If `source` is a visitor, this is the number of facets it can visit.
1021
+ */
1014
1022
  static visitorClientFacetCount(source) {
1015
1023
  if (source instanceof Polyface_1.Polyface) {
1016
1024
  if (source.facetCount !== undefined)
1017
1025
  return source.facetCount;
1018
1026
  source = source.createVisitor(0);
1019
1027
  }
1028
+ if (source.getVisitableFacetCount)
1029
+ return source.getVisitableFacetCount();
1020
1030
  const polyface = source.clientPolyface();
1021
1031
  if (polyface !== undefined && polyface.facetCount !== undefined)
1022
1032
  return polyface.facetCount;
1033
+ const saveReadIndex = source.currentReadIndex();
1023
1034
  let facetCount = 0;
1024
1035
  source.reset();
1025
1036
  while (source.moveToNextFacet())
1026
1037
  ++facetCount;
1038
+ source.moveToReadIndex(saveReadIndex);
1027
1039
  return facetCount;
1028
1040
  }
1029
1041
  /**
@@ -1328,21 +1340,6 @@ class PolyfaceQuery {
1328
1340
  }
1329
1341
  return 0;
1330
1342
  }
1331
- /**
1332
- * Collect facet duplicates.
1333
- * @param polyface the polyface.
1334
- * @param includeSingletons if true, non-duplicated facets are included in the output.
1335
- * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
1336
- * indices of a cluster of facets with the same vertex indices.
1337
- */
1338
- static collectDuplicateFacetIndices(polyface, includeSingletons = false) {
1339
- const result = [];
1340
- this.announceDuplicateFacetIndices(polyface, (clusterFacetIndices) => {
1341
- if (includeSingletons || clusterFacetIndices.length > 1)
1342
- result.push(clusterFacetIndices.slice());
1343
- });
1344
- return result;
1345
- }
1346
1343
  /**
1347
1344
  * Announce facet duplicates.
1348
1345
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
@@ -1391,10 +1388,25 @@ class PolyfaceQuery {
1391
1388
  }
1392
1389
  }
1393
1390
  /**
1394
- * Return a new facet set with a subset of facets in polyface.
1391
+ * Collect facet duplicates.
1392
+ * @param polyface the polyface.
1393
+ * @param includeSingletons if true, non-duplicated facets are included in the output.
1394
+ * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
1395
+ * indices of a cluster of facets with the same vertex indices.
1396
+ */
1397
+ static collectDuplicateFacetIndices(polyface, includeSingletons = false) {
1398
+ const result = [];
1399
+ this.announceDuplicateFacetIndices(polyface, (clusterFacetIndices) => {
1400
+ if (includeSingletons || clusterFacetIndices.length > 1)
1401
+ result.push(clusterFacetIndices.slice());
1402
+ });
1403
+ return result;
1404
+ }
1405
+ /**
1406
+ * Return a new facet set from the source facets, specifying how to copy duplicate facets.
1395
1407
  * @param source the polyface.
1396
1408
  * @param includeSingletons true to copy facets that only appear once
1397
- * @param clusterSelector indicates whether duplicate clusters are to have 0, 1, or all facets included.
1409
+ * @param clusterSelector indicates whether to copy 0, 1, or all facets in each cluster of duplicate facets.
1398
1410
  */
1399
1411
  static cloneByFacetDuplication(source, includeSingletons, clusterSelector) {
1400
1412
  const builder = PolyfaceBuilder_1.PolyfaceBuilder.create();