@itwin/core-geometry 4.7.0-dev.8 → 4.7.0-dev.9

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 (445) hide show
  1. package/lib/cjs/Constant.js.map +1 -1
  2. package/lib/cjs/Geometry.js.map +1 -1
  3. package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
  4. package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
  5. package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
  6. package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
  7. package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
  8. package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
  9. package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
  10. package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
  11. package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
  12. package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
  13. package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
  14. package/lib/cjs/bspline/KnotVector.js.map +1 -1
  15. package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
  16. package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
  17. package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
  18. package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
  19. package/lib/cjs/clipping/ClipPlane.js.map +1 -1
  20. package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
  21. package/lib/cjs/clipping/ClipUtils.js.map +1 -1
  22. package/lib/cjs/clipping/ClipVector.js.map +1 -1
  23. package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
  24. package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  25. package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  26. package/lib/cjs/core-geometry.js.map +1 -1
  27. package/lib/cjs/curve/Arc3d.js.map +1 -1
  28. package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
  29. package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
  30. package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
  31. package/lib/cjs/curve/CurveCollection.js.map +1 -1
  32. package/lib/cjs/curve/CurveCurve.js.map +1 -1
  33. package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
  34. package/lib/cjs/curve/CurveFactory.js.map +1 -1
  35. package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
  36. package/lib/cjs/curve/CurveOps.js.map +1 -1
  37. package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
  38. package/lib/cjs/curve/CurveProcessor.js.map +1 -1
  39. package/lib/cjs/curve/CurveTypes.js.map +1 -1
  40. package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
  41. package/lib/cjs/curve/GeometryQuery.js.map +1 -1
  42. package/lib/cjs/curve/LineSegment3d.js.map +1 -1
  43. package/lib/cjs/curve/LineString3d.js.map +1 -1
  44. package/lib/cjs/curve/Loop.js.map +1 -1
  45. package/lib/cjs/curve/OffsetOptions.js.map +1 -1
  46. package/lib/cjs/curve/ParityRegion.js.map +1 -1
  47. package/lib/cjs/curve/Path.js.map +1 -1
  48. package/lib/cjs/curve/PointString3d.js.map +1 -1
  49. package/lib/cjs/curve/ProxyCurve.js.map +1 -1
  50. package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  51. package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
  52. package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
  53. package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
  54. package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
  55. package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
  56. package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
  57. package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
  58. package/lib/cjs/curve/RegionOps.js.map +1 -1
  59. package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
  60. package/lib/cjs/curve/StrokeOptions.js.map +1 -1
  61. package/lib/cjs/curve/UnionRegion.js.map +1 -1
  62. package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  63. package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  64. package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  65. package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  66. package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  67. package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  68. package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  69. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  70. package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  71. package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
  72. package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  73. package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
  74. package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
  75. package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  76. package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  77. package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  78. package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
  79. package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  80. package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  81. package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
  82. package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
  83. package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  84. package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  85. package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
  86. package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  87. package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  88. package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
  89. package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  90. package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  91. package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
  92. package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
  93. package/lib/cjs/geometry3d/Angle.js.map +1 -1
  94. package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
  95. package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
  96. package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
  97. package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
  98. package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
  99. package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
  100. package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
  101. package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
  102. package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
  103. package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
  104. package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
  105. package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
  106. package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
  107. package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
  108. package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
  109. package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  110. package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
  111. package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
  112. package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
  113. package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  114. package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  115. package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
  116. package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
  117. package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
  118. package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
  119. package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
  120. package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
  121. package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
  122. package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  123. package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
  124. package/lib/cjs/geometry3d/Range.js.map +1 -1
  125. package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
  126. package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
  127. package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
  128. package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
  129. package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
  130. package/lib/cjs/geometry3d/Transform.js.map +1 -1
  131. package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
  132. package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
  133. package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
  134. package/lib/cjs/geometry4d/Map4d.js.map +1 -1
  135. package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
  136. package/lib/cjs/geometry4d/MomentData.js.map +1 -1
  137. package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  138. package/lib/cjs/geometry4d/Point4d.js.map +1 -1
  139. package/lib/cjs/numerics/BandedSystem.js.map +1 -1
  140. package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
  141. package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
  142. package/lib/cjs/numerics/Complex.js.map +1 -1
  143. package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
  144. package/lib/cjs/numerics/Newton.js.map +1 -1
  145. package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
  146. package/lib/cjs/numerics/PolarData.js.map +1 -1
  147. package/lib/cjs/numerics/Polynomials.js.map +1 -1
  148. package/lib/cjs/numerics/Quadrature.js.map +1 -1
  149. package/lib/cjs/numerics/Range1dArray.js.map +1 -1
  150. package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
  151. package/lib/cjs/numerics/UnionFind.js.map +1 -1
  152. package/lib/cjs/numerics/UsageSums.js.map +1 -1
  153. package/lib/cjs/polyface/AuxData.js.map +1 -1
  154. package/lib/cjs/polyface/BoxTopology.js.map +1 -1
  155. package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
  156. package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
  157. package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
  158. package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  159. package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
  160. package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  161. package/lib/cjs/polyface/Polyface.js.map +1 -1
  162. package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
  163. package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
  164. package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
  165. package/lib/cjs/polyface/PolyfaceQuery.d.ts +60 -60
  166. package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
  167. package/lib/cjs/polyface/PolyfaceQuery.js +79 -79
  168. package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
  169. package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
  170. package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  171. package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  172. package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  173. package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  174. package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  175. package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  176. package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
  177. package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
  178. package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  179. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  180. package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  181. package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  182. package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  183. package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  184. package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
  185. package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  186. package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
  187. package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
  188. package/lib/cjs/serialization/BGFBReader.js.map +1 -1
  189. package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
  190. package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  191. package/lib/cjs/serialization/DeepCompare.js.map +1 -1
  192. package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
  193. package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
  194. package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
  195. package/lib/cjs/solid/Box.js.map +1 -1
  196. package/lib/cjs/solid/Cone.js.map +1 -1
  197. package/lib/cjs/solid/LinearSweep.js.map +1 -1
  198. package/lib/cjs/solid/RotationalSweep.js.map +1 -1
  199. package/lib/cjs/solid/RuledSweep.js.map +1 -1
  200. package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
  201. package/lib/cjs/solid/Sphere.js.map +1 -1
  202. package/lib/cjs/solid/SweepContour.js.map +1 -1
  203. package/lib/cjs/solid/TorusPipe.js.map +1 -1
  204. package/lib/cjs/topology/ChainMerge.js.map +1 -1
  205. package/lib/cjs/topology/Graph.js.map +1 -1
  206. package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  207. package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
  208. package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  209. package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
  210. package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
  211. package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  212. package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  213. package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
  214. package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
  215. package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
  216. package/lib/cjs/topology/MaskManager.js.map +1 -1
  217. package/lib/cjs/topology/Merging.js.map +1 -1
  218. package/lib/cjs/topology/RegularizeFace.js.map +1 -1
  219. package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
  220. package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
  221. package/lib/cjs/topology/Triangulation.js.map +1 -1
  222. package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
  223. package/lib/esm/Constant.js.map +1 -1
  224. package/lib/esm/Geometry.js.map +1 -1
  225. package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
  226. package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
  227. package/lib/esm/bspline/BSplineCurve.js.map +1 -1
  228. package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
  229. package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
  230. package/lib/esm/bspline/BSplineSurface.js.map +1 -1
  231. package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
  232. package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
  233. package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
  234. package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
  235. package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
  236. package/lib/esm/bspline/KnotVector.js.map +1 -1
  237. package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
  238. package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
  239. package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
  240. package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
  241. package/lib/esm/clipping/ClipPlane.js.map +1 -1
  242. package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
  243. package/lib/esm/clipping/ClipUtils.js.map +1 -1
  244. package/lib/esm/clipping/ClipVector.js.map +1 -1
  245. package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
  246. package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
  247. package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
  248. package/lib/esm/core-geometry.js.map +1 -1
  249. package/lib/esm/curve/Arc3d.js.map +1 -1
  250. package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
  251. package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
  252. package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
  253. package/lib/esm/curve/CurveCollection.js.map +1 -1
  254. package/lib/esm/curve/CurveCurve.js.map +1 -1
  255. package/lib/esm/curve/CurveExtendMode.js.map +1 -1
  256. package/lib/esm/curve/CurveFactory.js.map +1 -1
  257. package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
  258. package/lib/esm/curve/CurveOps.js.map +1 -1
  259. package/lib/esm/curve/CurvePrimitive.js.map +1 -1
  260. package/lib/esm/curve/CurveProcessor.js.map +1 -1
  261. package/lib/esm/curve/CurveTypes.js.map +1 -1
  262. package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
  263. package/lib/esm/curve/GeometryQuery.js.map +1 -1
  264. package/lib/esm/curve/LineSegment3d.js.map +1 -1
  265. package/lib/esm/curve/LineString3d.js.map +1 -1
  266. package/lib/esm/curve/Loop.js.map +1 -1
  267. package/lib/esm/curve/OffsetOptions.js.map +1 -1
  268. package/lib/esm/curve/ParityRegion.js.map +1 -1
  269. package/lib/esm/curve/Path.js.map +1 -1
  270. package/lib/esm/curve/PointString3d.js.map +1 -1
  271. package/lib/esm/curve/ProxyCurve.js.map +1 -1
  272. package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
  273. package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
  274. package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
  275. package/lib/esm/curve/Query/InOutTests.js.map +1 -1
  276. package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
  277. package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
  278. package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
  279. package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
  280. package/lib/esm/curve/RegionOps.js.map +1 -1
  281. package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
  282. package/lib/esm/curve/StrokeOptions.js.map +1 -1
  283. package/lib/esm/curve/UnionRegion.js.map +1 -1
  284. package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
  285. package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
  286. package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
  287. package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
  288. package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
  289. package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
  290. package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
  291. package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
  292. package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
  293. package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
  294. package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
  295. package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
  296. package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
  297. package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
  298. package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
  299. package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
  300. package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
  301. package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
  302. package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
  303. package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
  304. package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
  305. package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
  306. package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
  307. package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
  308. package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
  309. package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
  310. package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
  311. package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
  312. package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
  313. package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
  314. package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
  315. package/lib/esm/geometry3d/Angle.js.map +1 -1
  316. package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
  317. package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
  318. package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
  319. package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
  320. package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
  321. package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
  322. package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
  323. package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
  324. package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
  325. package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
  326. package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
  327. package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
  328. package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
  329. package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
  330. package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
  331. package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
  332. package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
  333. package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
  334. package/lib/esm/geometry3d/Plane3d.js.map +1 -1
  335. package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
  336. package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
  337. package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
  338. package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
  339. package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
  340. package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
  341. package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
  342. package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
  343. package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
  344. package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
  345. package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
  346. package/lib/esm/geometry3d/Range.js.map +1 -1
  347. package/lib/esm/geometry3d/Ray2d.js.map +1 -1
  348. package/lib/esm/geometry3d/Ray3d.js.map +1 -1
  349. package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
  350. package/lib/esm/geometry3d/Segment1d.js.map +1 -1
  351. package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
  352. package/lib/esm/geometry3d/Transform.js.map +1 -1
  353. package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
  354. package/lib/esm/geometry3d/XYZProps.js.map +1 -1
  355. package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
  356. package/lib/esm/geometry4d/Map4d.js.map +1 -1
  357. package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
  358. package/lib/esm/geometry4d/MomentData.js.map +1 -1
  359. package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
  360. package/lib/esm/geometry4d/Point4d.js.map +1 -1
  361. package/lib/esm/numerics/BandedSystem.js.map +1 -1
  362. package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
  363. package/lib/esm/numerics/ClusterableArray.js.map +1 -1
  364. package/lib/esm/numerics/Complex.js.map +1 -1
  365. package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
  366. package/lib/esm/numerics/Newton.js.map +1 -1
  367. package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
  368. package/lib/esm/numerics/PolarData.js.map +1 -1
  369. package/lib/esm/numerics/Polynomials.js.map +1 -1
  370. package/lib/esm/numerics/Quadrature.js.map +1 -1
  371. package/lib/esm/numerics/Range1dArray.js.map +1 -1
  372. package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
  373. package/lib/esm/numerics/UnionFind.js.map +1 -1
  374. package/lib/esm/numerics/UsageSums.js.map +1 -1
  375. package/lib/esm/polyface/AuxData.js.map +1 -1
  376. package/lib/esm/polyface/BoxTopology.js.map +1 -1
  377. package/lib/esm/polyface/FacetFaceData.js.map +1 -1
  378. package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
  379. package/lib/esm/polyface/FacetOrientation.js.map +1 -1
  380. package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
  381. package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
  382. package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
  383. package/lib/esm/polyface/Polyface.js.map +1 -1
  384. package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
  385. package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
  386. package/lib/esm/polyface/PolyfaceData.js.map +1 -1
  387. package/lib/esm/polyface/PolyfaceQuery.d.ts +60 -60
  388. package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
  389. package/lib/esm/polyface/PolyfaceQuery.js +79 -79
  390. package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
  391. package/lib/esm/polyface/RangeLengthData.js.map +1 -1
  392. package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
  393. package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
  394. package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
  395. package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
  396. package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
  397. package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
  398. package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
  399. package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
  400. package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
  401. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
  402. package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
  403. package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
  404. package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
  405. package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
  406. package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
  407. package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
  408. package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
  409. package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
  410. package/lib/esm/serialization/BGFBReader.js.map +1 -1
  411. package/lib/esm/serialization/BGFBWriter.js.map +1 -1
  412. package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
  413. package/lib/esm/serialization/DeepCompare.js.map +1 -1
  414. package/lib/esm/serialization/GeometrySamples.js.map +1 -1
  415. package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
  416. package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
  417. package/lib/esm/solid/Box.js.map +1 -1
  418. package/lib/esm/solid/Cone.js.map +1 -1
  419. package/lib/esm/solid/LinearSweep.js.map +1 -1
  420. package/lib/esm/solid/RotationalSweep.js.map +1 -1
  421. package/lib/esm/solid/RuledSweep.js.map +1 -1
  422. package/lib/esm/solid/SolidPrimitive.js.map +1 -1
  423. package/lib/esm/solid/Sphere.js.map +1 -1
  424. package/lib/esm/solid/SweepContour.js.map +1 -1
  425. package/lib/esm/solid/TorusPipe.js.map +1 -1
  426. package/lib/esm/topology/ChainMerge.js.map +1 -1
  427. package/lib/esm/topology/Graph.js.map +1 -1
  428. package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
  429. package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
  430. package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
  431. package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
  432. package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
  433. package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
  434. package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
  435. package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
  436. package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
  437. package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
  438. package/lib/esm/topology/MaskManager.js.map +1 -1
  439. package/lib/esm/topology/Merging.js.map +1 -1
  440. package/lib/esm/topology/RegularizeFace.js.map +1 -1
  441. package/lib/esm/topology/SignedDataSummary.js.map +1 -1
  442. package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
  443. package/lib/esm/topology/Triangulation.js.map +1 -1
  444. package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
  445. 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.
@@ -513,19 +525,19 @@ export declare class PolyfaceQuery {
513
525
  */
514
526
  private static compareFacetIndexAndVertexIndices;
515
527
  /**
516
- * Collect facet duplicates.
517
- * @param polyface the polyface.
518
- * @param includeSingletons if true, non-duplicated facets are included in the output.
528
+ * Announce facet duplicates.
519
529
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
520
530
  * indices of a cluster of facets with the same vertex indices.
521
531
  */
522
- static collectDuplicateFacetIndices(polyface: Polyface, includeSingletons?: boolean): number[][];
532
+ static announceDuplicateFacetIndices(polyface: Polyface, announceCluster: (clusterFacetIndices: number[]) => void): void;
523
533
  /**
524
- * Announce facet duplicates.
534
+ * Collect facet duplicates.
535
+ * @param polyface the polyface.
536
+ * @param includeSingletons if true, non-duplicated facets are included in the output.
525
537
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
526
538
  * indices of a cluster of facets with the same vertex indices.
527
539
  */
528
- static announceDuplicateFacetIndices(polyface: Polyface, announceCluster: (clusterFacetIndices: number[]) => void): void;
540
+ static collectDuplicateFacetIndices(polyface: Polyface, includeSingletons?: boolean): number[][];
529
541
  /**
530
542
  * Return a new facet set with a subset of facets in polyface.
531
543
  * @param source the polyface.
@@ -643,16 +655,4 @@ export declare class PolyfaceQuery {
643
655
  */
644
656
  static intersectRay3d(visitor: Polyface | PolyfaceVisitor, ray: Ray3d, options?: FacetIntersectOptions): FacetLocationDetail | undefined;
645
657
  }
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
658
  //# 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,8CAA8C;WAChC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM;IAejF,8CAA8C;WAChC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM;IAejF;;;;;;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.
@@ -1328,21 +1328,6 @@ class PolyfaceQuery {
1328
1328
  }
1329
1329
  return 0;
1330
1330
  }
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
1331
  /**
1347
1332
  * Announce facet duplicates.
1348
1333
  * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
@@ -1390,6 +1375,21 @@ class PolyfaceQuery {
1390
1375
  announceCluster(clusterArray);
1391
1376
  }
1392
1377
  }
1378
+ /**
1379
+ * Collect facet duplicates.
1380
+ * @param polyface the polyface.
1381
+ * @param includeSingletons if true, non-duplicated facets are included in the output.
1382
+ * @returns an array of arrays describing facet duplication. Each array `entry` in the output contains read
1383
+ * indices of a cluster of facets with the same vertex indices.
1384
+ */
1385
+ static collectDuplicateFacetIndices(polyface, includeSingletons = false) {
1386
+ const result = [];
1387
+ this.announceDuplicateFacetIndices(polyface, (clusterFacetIndices) => {
1388
+ if (includeSingletons || clusterFacetIndices.length > 1)
1389
+ result.push(clusterFacetIndices.slice());
1390
+ });
1391
+ return result;
1392
+ }
1393
1393
  /**
1394
1394
  * Return a new facet set with a subset of facets in polyface.
1395
1395
  * @param source the polyface.