@itwin/core-geometry 5.1.0-dev.9 → 5.2.0-dev.2
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.
- package/CHANGELOG.md +63 -1
- package/lib/cjs/Geometry.d.ts +18 -10
- package/lib/cjs/Geometry.d.ts.map +1 -1
- package/lib/cjs/Geometry.js +13 -3
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.d.ts +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +7 -1
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.d.ts +4 -3
- package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js +4 -5
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.d.ts +7 -5
- package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js +9 -5
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js +5 -3
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts +1 -2
- package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js +13 -25
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +1 -2
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/core-geometry.d.ts +2 -0
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +2 -0
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +54 -32
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +56 -37
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +40 -1
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +90 -0
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +3 -2
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +6 -5
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +27 -25
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +30 -25
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +9 -2
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +11 -0
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveTypes.d.ts +1 -1
- package/lib/cjs/curve/CurveTypes.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +2 -0
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +4 -0
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +7 -0
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +15 -3
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +37 -8
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts +34 -8
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js +129 -33
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.d.ts +4 -3
- package/lib/cjs/curve/Query/StrokeCountChain.d.ts.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.js +20 -9
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.d.ts +2 -1
- package/lib/cjs/curve/RegionMomentsXY.d.ts.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.js +26 -41
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts +74 -39
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +146 -46
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts +36 -27
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js +161 -55
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts +1 -1
- package/lib/cjs/curve/StrokeOptions.js +1 -1
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +2 -2
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +6 -6
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +0 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
- package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
- package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js +34 -0
- package/lib/cjs/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
- package/lib/cjs/geometry3d/AngleSweep.d.ts +25 -18
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +32 -18
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts +8 -7
- package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js +19 -25
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +8 -3
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js +21 -3
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +11 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js +21 -3
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.d.ts +2 -0
- package/lib/cjs/geometry3d/Plane3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.js +6 -1
- package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +18 -10
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js +0 -2
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +4 -4
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +4 -5
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts +7 -7
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +66 -26
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts +49 -2
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +38 -2
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts +5 -4
- package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js +5 -4
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +18 -10
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +32 -10
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.js +0 -1
- package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.d.ts +7 -9
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js +23 -45
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.d.ts +39 -29
- package/lib/cjs/geometry3d/ReusableObjectCache.d.ts.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js +49 -35
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.d.ts +1 -4
- package/lib/cjs/geometry3d/SortablePolygon.d.ts.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js +48 -43
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.d.ts +21 -2
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +32 -13
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.d.ts +8 -5
- package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js +27 -16
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.d.ts +2 -0
- package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js +11 -0
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/SmallSystem.d.ts +77 -36
- package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -1
- package/lib/cjs/numerics/SmallSystem.js +129 -73
- package/lib/cjs/numerics/SmallSystem.js.map +1 -1
- package/lib/cjs/polyface/FacetOrientation.d.ts +1 -1
- package/lib/cjs/polyface/FacetOrientation.js +1 -1
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +55 -40
- package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js +83 -75
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +47 -38
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +26 -19
- package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceWalker.js +51 -32
- package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -1
- package/lib/cjs/polyface/Polyface.d.ts +19 -5
- package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
- package/lib/cjs/polyface/Polyface.js +18 -2
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +6 -6
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.d.ts +19 -18
- package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js +39 -42
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.d.ts +1 -1
- package/lib/cjs/polyface/PolyfaceData.js +1 -1
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts +119 -78
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +315 -231
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +3 -3
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js +2 -3
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +2 -4
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +3 -3
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.d.ts +3 -3
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js +5 -5
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/solid/Box.d.ts.map +1 -1
- package/lib/cjs/solid/Box.js +7 -0
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.d.ts.map +1 -1
- package/lib/cjs/solid/Cone.js +6 -0
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.d.ts +2 -3
- package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
- package/lib/cjs/solid/LinearSweep.js +11 -7
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.d.ts +2 -2
- package/lib/cjs/solid/RotationalSweep.js +2 -2
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RuledSweep.js +5 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/Sphere.d.ts.map +1 -1
- package/lib/cjs/solid/Sphere.js +6 -3
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts +1 -1
- package/lib/cjs/solid/SweepContour.js +1 -1
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
- package/lib/cjs/solid/TorusPipe.js +4 -0
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.d.ts +1 -1
- package/lib/cjs/topology/ChainMerge.js +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.d.ts +64 -14
- package/lib/cjs/topology/Graph.d.ts.map +1 -1
- package/lib/cjs/topology/Graph.js +149 -32
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts +3 -2
- package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js +3 -2
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/Merging.d.ts +0 -1
- package/lib/cjs/topology/Merging.d.ts.map +1 -1
- package/lib/cjs/topology/Merging.js +49 -46
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.d.ts.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js +2 -1
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/Triangulation.d.ts +9 -14
- package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
- package/lib/cjs/topology/Triangulation.js +29 -22
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/esm/Geometry.d.ts +18 -10
- package/lib/esm/Geometry.d.ts.map +1 -1
- package/lib/esm/Geometry.js +13 -3
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.d.ts +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +1 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +7 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.d.ts +4 -3
- package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js +4 -5
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.d.ts +7 -5
- package/lib/esm/clipping/ClipPlane.d.ts.map +1 -1
- package/lib/esm/clipping/ClipPlane.js +9 -5
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.d.ts.map +1 -1
- package/lib/esm/clipping/ClipUtils.js +5 -3
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +1 -2
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js +13 -25
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +1 -2
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +1 -2
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +2 -0
- package/lib/esm/core-geometry.d.ts.map +1 -1
- package/lib/esm/core-geometry.js +2 -0
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +54 -32
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +56 -37
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +40 -1
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +90 -0
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +3 -2
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +6 -5
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +27 -25
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +30 -25
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +9 -2
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +11 -0
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveTypes.d.ts +1 -1
- package/lib/esm/curve/CurveTypes.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +2 -0
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +4 -0
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +7 -0
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +15 -3
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +37 -8
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts +34 -8
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js +131 -35
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.d.ts +4 -3
- package/lib/esm/curve/Query/StrokeCountChain.d.ts.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.js +20 -9
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.d.ts +2 -1
- package/lib/esm/curve/RegionMomentsXY.d.ts.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.js +26 -41
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts +74 -39
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +146 -46
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +36 -27
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +161 -56
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts +1 -1
- package/lib/esm/curve/StrokeOptions.js +1 -1
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/internalContexts/AnnounceTangentStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +2 -2
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +6 -6
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +0 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +58 -32
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +0 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts +14 -0
- package/lib/esm/curve/internalContexts/TransferWithSplitArcs.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js +30 -0
- package/lib/esm/curve/internalContexts/TransferWithSplitArcs.js.map +1 -0
- package/lib/esm/geometry3d/AngleSweep.d.ts +25 -18
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +32 -18
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +8 -7
- package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.js +19 -25
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.d.ts +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts +8 -3
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js +21 -3
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +11 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js +21 -3
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/Plane3d.d.ts +2 -0
- package/lib/esm/geometry3d/Plane3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3d.js +6 -1
- package/lib/esm/geometry3d/Plane3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +2 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +6 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +8 -2
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +18 -10
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js +0 -2
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +4 -4
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +4 -5
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts +7 -7
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +66 -26
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts +49 -2
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +38 -2
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +13 -6
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +16 -9
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts +5 -4
- package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js +5 -4
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +18 -10
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +32 -10
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray2d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray2d.js +0 -1
- package/lib/esm/geometry3d/Ray2d.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.d.ts +7 -9
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js +23 -45
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.d.ts +39 -29
- package/lib/esm/geometry3d/ReusableObjectCache.d.ts.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js +47 -33
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.d.ts +1 -4
- package/lib/esm/geometry3d/SortablePolygon.d.ts.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js +48 -43
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.d.ts +21 -2
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +32 -13
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.d.ts +8 -5
- package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Point4d.js +27 -16
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.d.ts +2 -0
- package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js +11 -0
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/SmallSystem.d.ts +77 -36
- package/lib/esm/numerics/SmallSystem.d.ts.map +1 -1
- package/lib/esm/numerics/SmallSystem.js +129 -73
- package/lib/esm/numerics/SmallSystem.js.map +1 -1
- package/lib/esm/polyface/FacetOrientation.d.ts +1 -1
- package/lib/esm/polyface/FacetOrientation.js +1 -1
- package/lib/esm/polyface/FacetOrientation.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +55 -40
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js +83 -75
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +15 -14
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js +47 -38
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +26 -19
- package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceWalker.js +51 -32
- package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -1
- package/lib/esm/polyface/Polyface.d.ts +19 -5
- package/lib/esm/polyface/Polyface.d.ts.map +1 -1
- package/lib/esm/polyface/Polyface.js +18 -2
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.d.ts +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +6 -6
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.d.ts +19 -18
- package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js +39 -42
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceData.d.ts +1 -1
- package/lib/esm/polyface/PolyfaceData.js +1 -1
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts +119 -78
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +316 -232
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts +3 -3
- package/lib/esm/polyface/RangeTree/RangeTreeNode.d.ts.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js +3 -3
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +7 -6
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +8 -9
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBReader.js +2 -3
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +2 -4
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +3 -3
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.d.ts +3 -3
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js +5 -5
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/solid/Box.d.ts.map +1 -1
- package/lib/esm/solid/Box.js +7 -0
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.d.ts.map +1 -1
- package/lib/esm/solid/Cone.js +6 -0
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.d.ts +2 -3
- package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
- package/lib/esm/solid/LinearSweep.js +11 -7
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.d.ts +2 -2
- package/lib/esm/solid/RotationalSweep.js +2 -2
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.d.ts +1 -1
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
- package/lib/esm/solid/RuledSweep.js +5 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/Sphere.d.ts.map +1 -1
- package/lib/esm/solid/Sphere.js +6 -3
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts +1 -1
- package/lib/esm/solid/SweepContour.js +1 -1
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
- package/lib/esm/solid/TorusPipe.js +4 -0
- package/lib/esm/solid/TorusPipe.js.map +1 -1
- package/lib/esm/topology/ChainMerge.d.ts +1 -1
- package/lib/esm/topology/ChainMerge.js +1 -1
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/Graph.d.ts +64 -14
- package/lib/esm/topology/Graph.d.ts.map +1 -1
- package/lib/esm/topology/Graph.js +149 -32
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +3 -2
- package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js +3 -2
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/Merging.d.ts +0 -1
- package/lib/esm/topology/Merging.d.ts.map +1 -1
- package/lib/esm/topology/Merging.js +49 -46
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.d.ts.map +1 -1
- package/lib/esm/topology/RegularizeFace.js +2 -1
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/Triangulation.d.ts +9 -14
- package/lib/esm/topology/Triangulation.d.ts.map +1 -1
- package/lib/esm/topology/Triangulation.js +29 -22
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/package.json +7 -6
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.GraphComponentArray = exports.GraphComponent = exports.RegionBooleanContext = exports.RegionGroup = exports.RegionGroupOpType = exports.RegionOpsFaceToFaceSearch = void 0;
|
|
7
|
+
exports.GraphComponentArray = exports.GraphComponent = exports.RegionBooleanContext = exports.RegionGroup = exports.RegionGroupMember = exports.RegionGroupOpType = exports.RegionOpsFaceToFaceSearch = void 0;
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module Curve
|
|
10
10
|
*/
|
|
@@ -21,6 +21,7 @@ const CurveCurve_1 = require("./CurveCurve");
|
|
|
21
21
|
const CurveLocationDetail_1 = require("./CurveLocationDetail");
|
|
22
22
|
const GeometryQuery_1 = require("./GeometryQuery");
|
|
23
23
|
const PlaneAltitudeRangeContext_1 = require("./internalContexts/PlaneAltitudeRangeContext");
|
|
24
|
+
const TransferWithSplitArcs_1 = require("./internalContexts/TransferWithSplitArcs");
|
|
24
25
|
const LineSegment3d_1 = require("./LineSegment3d");
|
|
25
26
|
const Loop_1 = require("./Loop");
|
|
26
27
|
const ParityRegion_1 = require("./ParityRegion");
|
|
@@ -43,14 +44,22 @@ const UnionRegion_1 = require("./UnionRegion");
|
|
|
43
44
|
* @internal
|
|
44
45
|
*/
|
|
45
46
|
class RegionOpsFaceToFaceSearchCallbacks {
|
|
46
|
-
/** Announce a representative node on the outer face of a component */
|
|
47
|
-
startComponent(_node) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
/** Announce face
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
/** Announce a representative node on the outer face of a component. */
|
|
48
|
+
startComponent(_node) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
/** Announce return to outer face. */
|
|
52
|
+
finishComponent(_node) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
/** Announce face entry. */
|
|
56
|
+
enterFace(_facePathStack, _newFaceNode) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
/** Announce face exit. */
|
|
60
|
+
leaveFace(_facePathStack, _newFaceNode) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
54
63
|
}
|
|
55
64
|
/**
|
|
56
65
|
* Implementation of `RegionOpsFaceToFaceSearchCallbacks` for binary boolean sweep with polygonal regions.
|
|
@@ -113,14 +122,14 @@ class RegionOpsBinaryBooleanSweepCallbacks extends RegionOpsFaceToFaceSearchCall
|
|
|
113
122
|
*/
|
|
114
123
|
class RegionOpsFaceToFaceSearch {
|
|
115
124
|
/**
|
|
116
|
-
*
|
|
125
|
+
* Run a DFS with face-to-face step announcements.
|
|
117
126
|
* * false return from any function terminates search immediately.
|
|
118
127
|
* * all reachable nodes assumed to have both visit masks clear.
|
|
119
128
|
* @param graph containing graph.
|
|
120
129
|
* @param seed first node to visit.
|
|
121
130
|
* @param faceHasBeenVisited mask marking faces that have been seen.
|
|
122
131
|
* @param nodeHasBeenVisited mask marking node-to-node step around face.
|
|
123
|
-
*
|
|
132
|
+
* @param callbacks callbacks.
|
|
124
133
|
*/
|
|
125
134
|
static faceToFaceSearchFromOuterLoop(_graph, seed, faceHasBeenVisited, nodeHasBeenVisited, callbacks) {
|
|
126
135
|
if (seed.isMaskSet(faceHasBeenVisited))
|
|
@@ -134,10 +143,10 @@ class RegionOpsFaceToFaceSearch {
|
|
|
134
143
|
let entryNode = faceWalker;
|
|
135
144
|
let mate = faceWalker.edgeMate;
|
|
136
145
|
if (!mate.isMaskSet(faceHasBeenVisited)) {
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
//
|
|
146
|
+
// The faceWalker seed is always on the base of the stack.
|
|
147
|
+
// The stack then contains even-odd pairs of (entryNode, faceNode).
|
|
148
|
+
// entryNode is the node where a face was entered.
|
|
149
|
+
// faceNode is another node around that face.
|
|
141
150
|
facePathStack.push(faceWalker);
|
|
142
151
|
facePathStack.push(mate);
|
|
143
152
|
let faceNode = mate.faceSuccessor;
|
|
@@ -168,13 +177,13 @@ class RegionOpsFaceToFaceSearch {
|
|
|
168
177
|
entryNode = facePathStack[facePathStack.length - 1];
|
|
169
178
|
}
|
|
170
179
|
if (faceNode.isMaskSet(nodeHasBeenVisited)) {
|
|
171
|
-
// this is disaster
|
|
180
|
+
// this is disaster
|
|
172
181
|
return;
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
184
|
}
|
|
176
185
|
}
|
|
177
|
-
// continue at outermost level
|
|
186
|
+
// continue at outermost level
|
|
178
187
|
faceWalker = faceWalker.faceSuccessor;
|
|
179
188
|
} while (faceWalker !== seed);
|
|
180
189
|
callbacks.finishComponent(seed);
|
|
@@ -305,8 +314,11 @@ class RegionGroupMember {
|
|
|
305
314
|
this.parentGroup = parentGroup;
|
|
306
315
|
this.sweepState = 0;
|
|
307
316
|
}
|
|
308
|
-
clearState() {
|
|
317
|
+
clearState() {
|
|
318
|
+
this.sweepState = 0;
|
|
319
|
+
}
|
|
309
320
|
}
|
|
321
|
+
exports.RegionGroupMember = RegionGroupMember;
|
|
310
322
|
/**
|
|
311
323
|
* A `RegionGroup` is
|
|
312
324
|
* * An array of `RegionGroupMembers`, carrying the regions of the Ai or Bi part of the boolean expression.
|
|
@@ -344,8 +356,7 @@ class RegionGroup {
|
|
|
344
356
|
}
|
|
345
357
|
return range;
|
|
346
358
|
}
|
|
347
|
-
/** Ask if the current _numIn count qualifies as an "in" for this operation type.
|
|
348
|
-
*/
|
|
359
|
+
/** Ask if the current _numIn count qualifies as an "in" for this operation type. */
|
|
349
360
|
getInOut() {
|
|
350
361
|
// UNION is true if one or more members are IN
|
|
351
362
|
if (this.groupOpType === RegionGroupOpType.Union)
|
|
@@ -361,8 +372,9 @@ class RegionGroup {
|
|
|
361
372
|
// push new members into the group.
|
|
362
373
|
addMember(data, allowLineSegment = false) {
|
|
363
374
|
if (data instanceof Loop_1.Loop || data instanceof ParityRegion_1.ParityRegion) {
|
|
364
|
-
|
|
375
|
+
let cleanerData = data.clone();
|
|
365
376
|
RegionOps_1.RegionOps.consolidateAdjacentPrimitives(cleanerData);
|
|
377
|
+
cleanerData = TransferWithSplitArcs_1.TransferWithSplitArcs.clone(cleanerData);
|
|
366
378
|
this.members.push(new RegionGroupMember(cleanerData, this));
|
|
367
379
|
}
|
|
368
380
|
else if (data instanceof UnionRegion_1.UnionRegion) {
|
|
@@ -393,28 +405,29 @@ exports.RegionGroup = RegionGroup;
|
|
|
393
405
|
/**
|
|
394
406
|
* A `RegionBooleanContext` carries structure and operations for binary operations between two sets of regions.
|
|
395
407
|
* * In the binary operation OP (union, intersection, parity, difference), the left and right operands
|
|
396
|
-
*
|
|
408
|
+
* are each a composite union, difference, or parity among multiple inputs, i.e.,
|
|
397
409
|
* * (operationA among Ai) OP (operationB among Bi)
|
|
398
410
|
* * where the Ai are one set of regions, being combined by operationA
|
|
399
|
-
* * and the Bi are the another set of regions, being combined by operationB
|
|
400
|
-
* * Each group of Ai and Bi is a `RegionGroup
|
|
411
|
+
* * and the Bi are the another set of regions, being combined by operationB.
|
|
412
|
+
* * Each group of Ai and Bi is a `RegionGroup`.
|
|
401
413
|
* * This is an extremely delicate structure.
|
|
402
414
|
* * Members are public because of the unique variety of queries, but should only be used for queries.
|
|
403
415
|
* * The graph and curves in the booleans are connected by an extended pointer chain:
|
|
404
|
-
* * (HalfEdge in Graph).edgeTag points to a CurveLocationDetail
|
|
405
|
-
* * (CurveLocationDetail).curve points to a curve
|
|
406
|
-
* * (Curve).parent points to RegionGroupMember
|
|
407
|
-
* * (RegionGroupMember) points to RegionGroup
|
|
408
|
-
* * (RegionGroup) points to RegionBooleanBinaryContext
|
|
409
|
-
* * So
|
|
410
|
-
* * the chain leads to a parity count in the RegionGroupMember
|
|
411
|
-
* * that can change the number of members active in the RegionGroup
|
|
416
|
+
* * (HalfEdge in Graph).edgeTag points to a CurveLocationDetail.
|
|
417
|
+
* * (CurveLocationDetail).curve points to a curve.
|
|
418
|
+
* * (Curve).parent points to RegionGroupMember.
|
|
419
|
+
* * (RegionGroupMember) points to RegionGroup.
|
|
420
|
+
* * (RegionGroup) points to RegionBooleanBinaryContext.
|
|
421
|
+
* * So when a graph sweep crosses an edge
|
|
422
|
+
* * the chain leads to a parity count in the RegionGroupMember.
|
|
423
|
+
* * that can change the number of members active in the RegionGroup.
|
|
412
424
|
* * which can change the state of the context.
|
|
413
425
|
* @internal
|
|
414
426
|
*/
|
|
415
427
|
class RegionBooleanContext {
|
|
416
428
|
groupA;
|
|
417
429
|
groupB;
|
|
430
|
+
/** bridge edges */
|
|
418
431
|
extraGeometry;
|
|
419
432
|
graph;
|
|
420
433
|
faceAreaFunction;
|
|
@@ -423,7 +436,7 @@ class RegionBooleanContext {
|
|
|
423
436
|
this.groupA = new RegionGroup(this, groupTypeA);
|
|
424
437
|
this.groupB = new RegionGroup(this, groupTypeB);
|
|
425
438
|
this.extraGeometry = new RegionGroup(this, RegionGroupOpType.NonBounding);
|
|
426
|
-
this.binaryOp = RegionOps_1.RegionBinaryOpType.Union; //
|
|
439
|
+
this.binaryOp = RegionOps_1.RegionBinaryOpType.Union; // revised in runClassificationSweep
|
|
427
440
|
}
|
|
428
441
|
/**
|
|
429
442
|
* Create a context with both A and B groups empty.
|
|
@@ -437,8 +450,6 @@ class RegionBooleanContext {
|
|
|
437
450
|
addMembers(dataA, dataB) {
|
|
438
451
|
this.groupA.addMember(dataA);
|
|
439
452
|
this.groupB.addMember(dataB);
|
|
440
|
-
// const doConnectives = 1;
|
|
441
|
-
// if (doConnectives !== 0)
|
|
442
453
|
this.addConnectives();
|
|
443
454
|
}
|
|
444
455
|
_workSegment;
|
|
@@ -482,18 +493,106 @@ class RegionBooleanContext {
|
|
|
482
493
|
}
|
|
483
494
|
const ray = Ray3d_1.Ray3d.createZero();
|
|
484
495
|
for (const p of maxPoints) {
|
|
485
|
-
// Make a line from
|
|
486
|
-
//
|
|
487
|
-
//
|
|
488
|
-
// If p came from some inner loop this will
|
|
489
|
-
//
|
|
490
|
-
//
|
|
496
|
+
// Make a line from
|
|
497
|
+
// 1) exactly the max point of the loops to
|
|
498
|
+
// 2) a point clearly outside the big range
|
|
499
|
+
// If p came from some inner loop this will
|
|
500
|
+
// 1) create a bridge from the inner loop through any containing loops (always)
|
|
501
|
+
// 2) avoid crossing any containing loop at a vertex. (with high probability, but not absolutely always)
|
|
491
502
|
const bridgeLength = margin + Ray3d_1.Ray3d.create(p, RegionBooleanContext._bridgeDirection, ray).intersectionWithRange3d(rangeAB).high;
|
|
492
503
|
const outside = Point3dVector3d_1.Point3d.createAdd2Scaled(p, 1.0, RegionBooleanContext._bridgeDirection, bridgeLength);
|
|
493
504
|
const bridgeLine = LineSegment3d_1.LineSegment3d.createXYXY(p.x, p.y, outside.x, outside.y);
|
|
494
505
|
this.extraGeometry.addMember(bridgeLine, true);
|
|
495
506
|
}
|
|
496
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* Simplify the graph by removing bridge edges that do not serve to connect inner and outer loops, i.e.:
|
|
510
|
+
* * the bridge edge is dangling
|
|
511
|
+
* * the bridge edge is adjacent to multiple faces
|
|
512
|
+
* * the bridge edge is adjacent to a negative area face
|
|
513
|
+
* @returns the number of extraneous bridge edges removed from the graph.
|
|
514
|
+
*/
|
|
515
|
+
removeExtraneousBridgeEdges() {
|
|
516
|
+
const toHeal = [];
|
|
517
|
+
const interiorBridges = [];
|
|
518
|
+
// lambda test for boundary edge. Relies only on face loop orientation. Doesn't use HalfEdgeMasks!
|
|
519
|
+
const isExteriorEdge = (node) => {
|
|
520
|
+
if (this.faceAreaFunction(node) < 0.0)
|
|
521
|
+
return true;
|
|
522
|
+
if (!node.findAroundFace(node.edgeMate))
|
|
523
|
+
return this.faceAreaFunction(node.edgeMate) < 0.0;
|
|
524
|
+
return false;
|
|
525
|
+
};
|
|
526
|
+
// isolate dangling bridges, bridges separating different faces, and "exterior" bridges in the negative area face
|
|
527
|
+
this.graph.announceEdges((_graph, node) => {
|
|
528
|
+
if (node.edgeTag !== undefined) {
|
|
529
|
+
if (node.edgeTag instanceof CurveLocationDetail_1.CurveLocationDetail) {
|
|
530
|
+
if (node.edgeTag.curve) {
|
|
531
|
+
if (node.edgeTag.curve.parent instanceof RegionGroupMember) {
|
|
532
|
+
if (node.edgeTag.curve.parent.parentGroup === this.extraGeometry) {
|
|
533
|
+
if (node.isDangling || node.edgeMate.isDangling || !node.findAroundFace(node.edgeMate) || this.faceAreaFunction(node) < 0.0) {
|
|
534
|
+
toHeal.push(node.vertexSuccessor);
|
|
535
|
+
toHeal.push(node.edgeMate.vertexSuccessor);
|
|
536
|
+
node.isolateEdge();
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
interiorBridges.push(node);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
return true;
|
|
547
|
+
});
|
|
548
|
+
// At this point, all bridges that were exterior are isolated, but this may have caused formerly
|
|
549
|
+
// interior bridges to become exterior. Now we successively isolate exterior bridges until none remain.
|
|
550
|
+
let numIsolatedThisPass;
|
|
551
|
+
do {
|
|
552
|
+
numIsolatedThisPass = 0;
|
|
553
|
+
for (const node of interiorBridges) {
|
|
554
|
+
if (!node.isIsolatedEdge && isExteriorEdge(node)) {
|
|
555
|
+
toHeal.push(node.vertexSuccessor);
|
|
556
|
+
toHeal.push(node.edgeMate.vertexSuccessor);
|
|
557
|
+
node.isolateEdge();
|
|
558
|
+
numIsolatedThisPass++;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
} while (numIsolatedThisPass > 0);
|
|
562
|
+
// lambda to extend the detail interval on a side of a healed edge
|
|
563
|
+
const mergeDetails = (he, newFraction, newPoint) => {
|
|
564
|
+
if (he && he.edgeTag instanceof CurveLocationDetail_1.CurveLocationDetail && he.sortData !== undefined && newFraction !== undefined && newPoint) {
|
|
565
|
+
if (he.sortData > 0)
|
|
566
|
+
he.edgeTag.captureFraction1Point1(newFraction, newPoint);
|
|
567
|
+
else
|
|
568
|
+
he.edgeTag.captureFractionPoint(newFraction, newPoint);
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
// At this point all removable bridges are isolated. Clean up their original vertex loops, if possible.
|
|
572
|
+
for (const doomedA of toHeal) {
|
|
573
|
+
const doomedB = doomedA.vertexSuccessor;
|
|
574
|
+
if ( // are the geometries mergeable?
|
|
575
|
+
doomedA !== doomedB &&
|
|
576
|
+
doomedA.edgeTag instanceof CurveLocationDetail_1.CurveLocationDetail && doomedA.sortData !== undefined &&
|
|
577
|
+
doomedB.edgeTag instanceof CurveLocationDetail_1.CurveLocationDetail && doomedB.sortData !== undefined &&
|
|
578
|
+
doomedA.edgeTag.curve === doomedB.edgeTag.curve &&
|
|
579
|
+
doomedA.edgeTag.hasFraction1 && doomedB.edgeTag.hasFraction1 &&
|
|
580
|
+
doomedA.sortData * doomedB.sortData < 0 &&
|
|
581
|
+
((doomedA.sortData > 0 && Geometry_1.Geometry.isSmallRelative(doomedA.edgeTag.fraction - doomedB.edgeTag.fraction1)) ||
|
|
582
|
+
(doomedA.sortData < 0 && Geometry_1.Geometry.isSmallRelative(doomedA.edgeTag.fraction1 - doomedB.edgeTag.fraction)))) {
|
|
583
|
+
const survivorA = Graph_1.HalfEdge.healEdge(doomedA, false);
|
|
584
|
+
if (survivorA) {
|
|
585
|
+
const endFractionA = (doomedA.sortData > 0) ? doomedA.edgeTag.fraction1 : doomedA.edgeTag.fraction;
|
|
586
|
+
const endPointA = (doomedA.sortData > 0) ? doomedA.edgeTag.point1 : doomedA.edgeTag.point;
|
|
587
|
+
mergeDetails(survivorA, endFractionA, endPointA);
|
|
588
|
+
const endFractionB = (doomedB.sortData > 0) ? doomedB.edgeTag.fraction1 : doomedB.edgeTag.fraction;
|
|
589
|
+
const endPointB = (doomedB.sortData > 0) ? doomedB.edgeTag.point1 : doomedB.edgeTag.point;
|
|
590
|
+
mergeDetails(survivorA.edgeMate, endFractionB, endPointB);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
return this.graph.deleteIsolatedEdges();
|
|
595
|
+
}
|
|
497
596
|
/**
|
|
498
597
|
* Markup and assembly steps for geometry in the RegionGroups.
|
|
499
598
|
* * Annotate connection from group to curves.
|
|
@@ -504,7 +603,7 @@ class RegionBooleanContext {
|
|
|
504
603
|
*/
|
|
505
604
|
annotateAndMergeCurvesInGraph(mergeTolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
506
605
|
const allPrimitives = [];
|
|
507
|
-
// ASSUME loops have fine-grained types
|
|
606
|
+
// ASSUME loops have fine-grained types (no linestrings)
|
|
508
607
|
for (const group of [this.groupA, this.groupB, this.extraGeometry]) {
|
|
509
608
|
for (const member of group.members) {
|
|
510
609
|
let k = allPrimitives.length;
|
|
@@ -515,11 +614,11 @@ class RegionBooleanContext {
|
|
|
515
614
|
}
|
|
516
615
|
}
|
|
517
616
|
}
|
|
518
|
-
// const range = RegionOps.curveArrayRange(allPrimitives);
|
|
519
617
|
const intersections = CurveCurve_1.CurveCurve.allIntersectionsAmongPrimitivesXY(allPrimitives, mergeTolerance);
|
|
520
618
|
const graph = PlanarSubdivision_1.PlanarSubdivision.assembleHalfEdgeGraph(allPrimitives, intersections, mergeTolerance);
|
|
521
619
|
this.graph = graph;
|
|
522
620
|
this.faceAreaFunction = faceAreaFromCurvedEdgeData;
|
|
621
|
+
this.removeExtraneousBridgeEdges();
|
|
523
622
|
}
|
|
524
623
|
_announceFaceFunction;
|
|
525
624
|
/**
|
|
@@ -534,9 +633,8 @@ class RegionBooleanContext {
|
|
|
534
633
|
this._announceFaceFunction = announceFaceFunction;
|
|
535
634
|
this.binaryOp = binaryOp;
|
|
536
635
|
this.graph.clearMask(Graph_1.HalfEdgeMask.EXTERIOR);
|
|
537
|
-
for (const group of [this.groupA, this.groupB])
|
|
636
|
+
for (const group of [this.groupA, this.groupB])
|
|
538
637
|
group.clearState();
|
|
539
|
-
}
|
|
540
638
|
const faceHasBeenVisitedMask = this.graph.grabMask();
|
|
541
639
|
const nodeHasBeenVisitedMask = this.graph.grabMask();
|
|
542
640
|
const componentArray = GraphComponentArray.create(this.graph);
|
|
@@ -617,18 +715,19 @@ class RegionBooleanContext {
|
|
|
617
715
|
return undefined;
|
|
618
716
|
}
|
|
619
717
|
// obligations to act as sweep callback ...
|
|
620
|
-
/** Announce a representative node on the outer face of a component */
|
|
718
|
+
/** Announce a representative node on the outer face of a component. */
|
|
621
719
|
startComponent(outerFaceNode) {
|
|
622
720
|
outerFaceNode.setMaskAroundFace(Graph_1.HalfEdgeMask.EXTERIOR);
|
|
623
721
|
if (this._announceFaceFunction)
|
|
624
722
|
this._announceFaceFunction(this.graph, outerFaceNode, -1, faceAreaFromCurvedEdgeData(outerFaceNode));
|
|
625
723
|
return true;
|
|
626
724
|
}
|
|
627
|
-
/** Announce return to outer face */
|
|
725
|
+
/** Announce return to outer face. */
|
|
628
726
|
finishComponent(_node) {
|
|
629
727
|
return true;
|
|
630
728
|
}
|
|
631
|
-
/**
|
|
729
|
+
/**
|
|
730
|
+
* Announce entry to a graph face.
|
|
632
731
|
* * Both both sides of a graph edge are from the same RegionGroupMember.
|
|
633
732
|
* * Hence "crossing that edge" changes the parity count for the RegionGroupMember that owns that edge by 1.
|
|
634
733
|
* * The parity count for other RegionGroupMembers are never affected by this crossing.
|
|
@@ -650,8 +749,9 @@ class RegionBooleanContext {
|
|
|
650
749
|
}
|
|
651
750
|
}
|
|
652
751
|
exports.RegionBooleanContext = RegionBooleanContext;
|
|
653
|
-
/**
|
|
654
|
-
*
|
|
752
|
+
/**
|
|
753
|
+
* Return xy area between (part of) a curve and the x axis through a reference point.
|
|
754
|
+
* If detail is undefined or does not have both start and end fractions, just do trapezoid area.
|
|
655
755
|
*/
|
|
656
756
|
function areaUnderPartialCurveXY(detail, xyStart, xyEnd, referencePoint) {
|
|
657
757
|
// area between trapezoid and axis
|
|
@@ -665,15 +765,21 @@ function areaUnderPartialCurveXY(detail, xyStart, xyEnd, referencePoint) {
|
|
|
665
765
|
let areaToChord = 0.0;
|
|
666
766
|
if (detail && detail.curve && detail.hasFraction1) {
|
|
667
767
|
if (detail.curve instanceof LineSegment3d_1.LineSegment3d) {
|
|
668
|
-
//
|
|
768
|
+
// nothing to do for a line segment
|
|
669
769
|
}
|
|
670
770
|
else if (detail.curve instanceof Arc3d_1.Arc3d) {
|
|
671
771
|
areaToChord = detail.curve.areaToChordXY(detail.fraction, detail.fraction1);
|
|
672
772
|
}
|
|
773
|
+
else {
|
|
774
|
+
const partial = detail.curve.clonePartialCurve(detail.fraction, detail.fraction1);
|
|
775
|
+
areaToChord = partial ?
|
|
776
|
+
RegionOps_1.RegionOps.computeXYArea(Loop_1.Loop.create(partial, LineSegment3d_1.LineSegment3d.create(detail.point1, detail.point))) ?? 0
|
|
777
|
+
: 0;
|
|
778
|
+
}
|
|
673
779
|
}
|
|
674
780
|
return trapezoidArea + areaToChord;
|
|
675
781
|
}
|
|
676
|
-
/** Compute face area for a face whose edges are decorated with CurveLocationDetail for their (partial) curves */
|
|
782
|
+
/** Compute face area for a face whose edges are decorated with CurveLocationDetail for their (partial) curves. */
|
|
677
783
|
function faceAreaFromCurvedEdgeData(faceSeed) {
|
|
678
784
|
let area = 0.0;
|
|
679
785
|
let edge = faceSeed;
|
|
@@ -696,8 +802,7 @@ class GraphComponent {
|
|
|
696
802
|
this.faceAreas = [];
|
|
697
803
|
}
|
|
698
804
|
/**
|
|
699
|
-
*
|
|
700
|
-
*
|
|
805
|
+
* Visit all vertices and edges in the component to build face area array and composite range.
|
|
701
806
|
* @param extendRangeForEdge optional function to compute edge range. If undefined, linear edge is assumed.
|
|
702
807
|
* @param faceAreaFunction optional function to compute face area. If undefined, linear edges are assumed.
|
|
703
808
|
*/
|
|
@@ -722,7 +827,8 @@ class GraphComponent {
|
|
|
722
827
|
}
|
|
723
828
|
}
|
|
724
829
|
exports.GraphComponent = GraphComponent;
|
|
725
|
-
/**
|
|
830
|
+
/**
|
|
831
|
+
* Build and hold an array of component data for a HalfEdgeGraph.
|
|
726
832
|
* @internal
|
|
727
833
|
*/
|
|
728
834
|
class GraphComponentArray {
|