@itwin/core-geometry 4.1.0-dev.13 → 4.1.0-dev.14
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/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/bspline/KnotVector.js.map +1 -1
- package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/ChainCollectorContext.js.map +1 -1
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveChain.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +61 -41
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +69 -46
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.d.ts +7 -5
- package/lib/cjs/curve/Loop.d.ts.map +1 -1
- package/lib/cjs/curve/Loop.js +18 -6
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.d.ts +7 -7
- package/lib/cjs/curve/ParityRegion.d.ts.map +1 -1
- package/lib/cjs/curve/ParityRegion.js +19 -11
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.d.ts +6 -6
- package/lib/cjs/curve/Path.d.ts.map +1 -1
- package/lib/cjs/curve/Path.js +15 -9
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.d.ts +4 -6
- package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js +7 -7
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts +70 -43
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +71 -43
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.d.ts +6 -5
- package/lib/cjs/curve/UnionRegion.d.ts.map +1 -1
- package/lib/cjs/curve/UnionRegion.js +17 -8
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts +2 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.js +6 -2
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js +4 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +133 -93
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +296 -144
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/MomentData.js.map +1 -1
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BandedSystem.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
- package/lib/cjs/numerics/Complex.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/numerics/PolarData.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/numerics/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/cjs/numerics/UnionFind.js.map +1 -1
- package/lib/cjs/numerics/UsageSums.js.map +1 -1
- package/lib/cjs/polyface/AuxData.js.map +1 -1
- package/lib/cjs/polyface/BoxTopology.js.map +1 -1
- package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
- package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
- package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/cjs/serialization/DeepCompare.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/MaskManager.js.map +1 -1
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
- package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/ChainCollectorContext.js.map +1 -1
- package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
- package/lib/esm/curve/CurveChain.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +61 -41
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +69 -46
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/CurveExtendMode.js.map +1 -1
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.d.ts +7 -5
- package/lib/esm/curve/Loop.d.ts.map +1 -1
- package/lib/esm/curve/Loop.js +18 -6
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/ParityRegion.d.ts +7 -7
- package/lib/esm/curve/ParityRegion.d.ts.map +1 -1
- package/lib/esm/curve/ParityRegion.js +19 -11
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.d.ts +6 -6
- package/lib/esm/curve/Path.d.ts.map +1 -1
- package/lib/esm/curve/Path.js +15 -9
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.d.ts +4 -6
- package/lib/esm/curve/ProxyCurve.d.ts.map +1 -1
- package/lib/esm/curve/ProxyCurve.js +7 -7
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/Query/InOutTests.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts +70 -43
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +71 -43
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/UnionRegion.d.ts +6 -5
- package/lib/esm/curve/UnionRegion.d.ts.map +1 -1
- package/lib/esm/curve/UnionRegion.js +17 -8
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +2 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.js +6 -2
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +14 -8
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +14 -8
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js +4 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Plane3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +133 -93
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +296 -144
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/Segment1d.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/esm/geometry3d/XYZProps.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/MomentData.js.map +1 -1
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BandedSystem.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js.map +1 -1
- package/lib/esm/numerics/Complex.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/numerics/PolarData.js.map +1 -1
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/numerics/Range1dArray.js.map +1 -1
- package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/esm/numerics/UnionFind.js.map +1 -1
- package/lib/esm/numerics/UsageSums.js.map +1 -1
- package/lib/esm/polyface/AuxData.js.map +1 -1
- package/lib/esm/polyface/BoxTopology.js.map +1 -1
- package/lib/esm/polyface/FacetFaceData.js.map +1 -1
- package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/esm/polyface/FacetOrientation.js.map +1 -1
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/RangeLengthData.js.map +1 -1
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
- package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/esm/serialization/DeepCompare.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SolidPrimitive.js.map +1 -1
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.js.map +1 -1
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/MaskManager.js.map +1 -1
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/SignedDataSummary.js.map +1 -1
- package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
- package/package.json +3 -3
|
@@ -13,7 +13,8 @@ import { JointOptions, OffsetOptions } from "./internalContexts/PolygonOffsetCon
|
|
|
13
13
|
import { Loop, SignedLoops } from "./Loop";
|
|
14
14
|
import { Path } from "./Path";
|
|
15
15
|
/**
|
|
16
|
-
* Possible return types from [[splitToPathsBetweenBreaks]], [[collectInsideAndOutsideOffsets]] and
|
|
16
|
+
* Possible return types from [[splitToPathsBetweenBreaks]], [[collectInsideAndOutsideOffsets]] and
|
|
17
|
+
* [[collectChains]].
|
|
17
18
|
* @public
|
|
18
19
|
*/
|
|
19
20
|
export type ChainTypes = CurvePrimitive | Path | BagOfCurves | Loop | undefined;
|
|
@@ -44,7 +45,8 @@ export declare enum RegionBinaryOpType {
|
|
|
44
45
|
* * `ParityRegion` -- a collection of loops, interpreted by parity rules.
|
|
45
46
|
* The common "One outer loop and many Inner loops" is a parity region.
|
|
46
47
|
* * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
|
|
47
|
-
* * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has been
|
|
48
|
+
* * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has been
|
|
49
|
+
* rotated parallel to the xy-plane.
|
|
48
50
|
* @public
|
|
49
51
|
*/
|
|
50
52
|
export declare class RegionOps {
|
|
@@ -55,7 +57,8 @@ export declare class RegionOps {
|
|
|
55
57
|
* @param root any Loop, ParityRegion, or UnionRegion.
|
|
56
58
|
*/
|
|
57
59
|
static computeXYAreaMoments(root: AnyRegion): MomentData | undefined;
|
|
58
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Return an area tolerance for a given xy-range and optional distance tolerance.
|
|
59
62
|
* @param range range of planar region to tolerance
|
|
60
63
|
* @param distanceTolerance optional absolute distance tolerance
|
|
61
64
|
*/
|
|
@@ -67,18 +70,20 @@ export declare class RegionOps {
|
|
|
67
70
|
* @param root any Loop, ParityRegion, or UnionRegion.
|
|
68
71
|
*/
|
|
69
72
|
static computeXYArea(root: AnyRegion): number | undefined;
|
|
70
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Return MomentData with the sums of wire moments.
|
|
71
75
|
* * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
|
|
72
76
|
* call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
|
|
73
77
|
* @param root any CurveCollection or CurvePrimitive.
|
|
74
78
|
*/
|
|
75
79
|
static computeXYZWireMomentSums(root: AnyCurve): MomentData | undefined;
|
|
76
80
|
/**
|
|
77
|
-
*
|
|
81
|
+
* Create loops in the graph.
|
|
78
82
|
* @internal
|
|
79
83
|
*/
|
|
80
84
|
static addLoopsToGraph(graph: HalfEdgeGraph, data: MultiLineStringDataVariant, announceIsolatedLoop: (graph: HalfEdgeGraph, seed: HalfEdge) => void): void;
|
|
81
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Add multiple loops to a graph.
|
|
82
87
|
* * Apply edgeTag and mask to each edge.
|
|
83
88
|
* @internal
|
|
84
89
|
*/
|
|
@@ -86,7 +91,6 @@ export declare class RegionOps {
|
|
|
86
91
|
/**
|
|
87
92
|
* Given a graph just produced by booleans, convert to a polyface
|
|
88
93
|
* * "just produced" implies exterior face markup.
|
|
89
|
-
*
|
|
90
94
|
* @param graph
|
|
91
95
|
* @param triangulate
|
|
92
96
|
*/
|
|
@@ -129,7 +133,8 @@ export declare class RegionOps {
|
|
|
129
133
|
* @param loopsB second set of loops
|
|
130
134
|
* @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
|
|
131
135
|
* @param mergeTolerance absolute distance tolerance for merging loops
|
|
132
|
-
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
136
|
+
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
137
|
+
* to connect interior loops to exterior loops.
|
|
133
138
|
*/
|
|
134
139
|
static regionBooleanXY(loopsA: AnyRegion | AnyRegion[] | undefined, loopsB: AnyRegion | AnyRegion[] | undefined, operation: RegionBinaryOpType, mergeTolerance?: number): AnyRegion | undefined;
|
|
135
140
|
/**
|
|
@@ -157,29 +162,35 @@ export declare class RegionOps {
|
|
|
157
162
|
* @param inputB second set of loops
|
|
158
163
|
*/
|
|
159
164
|
static polygonBooleanXYToLoops(inputA: MultiLineStringDataVariant[], operation: RegionBinaryOpType, inputB: MultiLineStringDataVariant[]): AnyRegion | undefined;
|
|
160
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Construct a wire (not area!!) that is offset from given polyline or polygon.
|
|
161
167
|
* * This is a simple wire offset, not an area.
|
|
162
|
-
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
163
|
-
*
|
|
168
|
+
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
169
|
+
* guarantee a simple area offset.
|
|
170
|
+
* * The construction algorithm is subject to being changed, resulting in different (hopefully better)
|
|
171
|
+
* self-intersection behavior on the future.
|
|
164
172
|
* @param points a single loop or path
|
|
165
173
|
* @param wrap true to include wraparound
|
|
166
174
|
* @param offsetDistance distance of offset from wire. Positive is left.
|
|
167
175
|
*/
|
|
168
176
|
static constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, offsetDistance: number): CurveCollection | undefined;
|
|
169
177
|
/**
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
*
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
178
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
179
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
180
|
+
* not detect self intersection among widely separated edges.
|
|
181
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
182
|
+
* * When the offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
183
|
+
* * If the turn is larger than `options.minArcDegrees`, a circular arc is constructed.
|
|
184
|
+
* * If the turn is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
185
|
+
* single intersection point.
|
|
186
|
+
* * If the turn is larger than `options.maxChamferDegrees`, the turn is constructed as a sequence of straight
|
|
187
|
+
* lines that are:
|
|
188
|
+
* * outside the arc
|
|
189
|
+
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
190
|
+
* * each line segment (except first and last) touches the arc at its midpoint.
|
|
191
|
+
* @param curves base curves.
|
|
192
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
193
|
+
*/
|
|
183
194
|
static constructCurveXYOffset(curves: Path | Loop, offsetDistanceOrOptions: number | JointOptions | OffsetOptions): CurveCollection | undefined;
|
|
184
195
|
/**
|
|
185
196
|
* Test if point (x,y) is IN, OUT or ON a region.
|
|
@@ -189,7 +200,8 @@ export declare class RegionOps {
|
|
|
189
200
|
* @param y y coordinate of point to test
|
|
190
201
|
*/
|
|
191
202
|
static testPointInOnOutRegionXY(curves: AnyRegion, x: number, y: number): number;
|
|
192
|
-
/**
|
|
203
|
+
/**
|
|
204
|
+
* Create curve collection of subtype determined by gaps between the input curves.
|
|
193
205
|
* * If (a) wrap is requested and (b) all curves connect head-to-tail (including wraparound), assemble as a `loop`.
|
|
194
206
|
* * If all curves connect head-to-tail except for closure, return a `Path`.
|
|
195
207
|
* * If there are internal gaps, return a `BagOfCurves`
|
|
@@ -217,7 +229,8 @@ export declare class RegionOps {
|
|
|
217
229
|
static cloneCurvesWithXYSplits(curvesToCut: AnyCurve | undefined, cutterCurves: CurveCollection): AnyCurve | undefined;
|
|
218
230
|
/**
|
|
219
231
|
* Create paths assembled from many curves.
|
|
220
|
-
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
232
|
+
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
233
|
+
* [[cloneCurvesWithXYSplits]].
|
|
221
234
|
* * Return simplest form -- single primitive, single path, or bag of curves.
|
|
222
235
|
*/
|
|
223
236
|
static splitToPathsBetweenBreaks(source: AnyCurve | undefined, makeClones: boolean): ChainTypes;
|
|
@@ -242,7 +255,8 @@ export declare class RegionOps {
|
|
|
242
255
|
*/
|
|
243
256
|
static collectChains(fragments: AnyCurve[], gapTolerance?: number): ChainTypes;
|
|
244
257
|
/**
|
|
245
|
-
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
258
|
+
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
259
|
+
* of `curvesToCut`.
|
|
246
260
|
* * Break `curvesToCut` into parts inside, outside, and coincident.
|
|
247
261
|
* @returns output object with all fragments split among `insideParts`, `outsideParts`, and `coincidentParts`
|
|
248
262
|
*/
|
|
@@ -251,7 +265,8 @@ export declare class RegionOps {
|
|
|
251
265
|
outsideParts: AnyCurve[];
|
|
252
266
|
coincidentParts: AnyCurve[];
|
|
253
267
|
};
|
|
254
|
-
/**
|
|
268
|
+
/**
|
|
269
|
+
* If `data` is one of several forms of a rectangle, return its edge Transform.
|
|
255
270
|
* * Points are considered a rectangle if, within the first 4 points:
|
|
256
271
|
* * vectors from 0 to 1 and 0 to 3 are perpendicular and have a non-zero cross product
|
|
257
272
|
* * vectors from 0 to 3 and 1 to 2 are the same
|
|
@@ -262,7 +277,8 @@ export declare class RegionOps {
|
|
|
262
277
|
* * Array of Point3d[]
|
|
263
278
|
* * IndexedXYZCollection
|
|
264
279
|
* @param requireClosurePoint whether to require a 5th point equal to the 1st point.
|
|
265
|
-
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
280
|
+
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
281
|
+
* normal in z column. If not a rectangle, return undefined.
|
|
266
282
|
*/
|
|
267
283
|
static rectangleEdgeTransform(data: AnyCurve | Point3d[] | IndexedXYZCollection, requireClosurePoint?: boolean): Transform | undefined;
|
|
268
284
|
/**
|
|
@@ -270,9 +286,10 @@ export declare class RegionOps {
|
|
|
270
286
|
* * Contiguous `LineSegment3d` and `LineString3d` objects.
|
|
271
287
|
* * collect all points
|
|
272
288
|
* * eliminate duplicated points
|
|
273
|
-
* * eliminate points colinear with surrounding points
|
|
274
|
-
* *
|
|
289
|
+
* * eliminate points colinear with surrounding points
|
|
290
|
+
* * contiguous concentric circular or elliptic arcs
|
|
275
291
|
* * combine angular ranges
|
|
292
|
+
* * This function can be used to compress adjacent LineSegment3ds into a LineString3d
|
|
276
293
|
* @param curves Path or loop (or larger collection containing paths and loops) to be simplified
|
|
277
294
|
* @param options options for tolerance and selective simplification.
|
|
278
295
|
*/
|
|
@@ -283,24 +300,31 @@ export declare class RegionOps {
|
|
|
283
300
|
* @returns a region that captures the input pointers. This region is a:
|
|
284
301
|
* * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
|
|
285
302
|
* * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
|
|
286
|
-
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
287
|
-
*
|
|
303
|
+
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
304
|
+
* clockwise.
|
|
305
|
+
* * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
|
|
306
|
+
* the above cases.
|
|
288
307
|
* @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
|
|
289
308
|
*/
|
|
290
309
|
static sortOuterAndHoleLoopsXY(loops: Array<Loop | IndexedXYZCollection>): AnyRegion;
|
|
291
310
|
/**
|
|
292
311
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
293
|
-
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
294
|
-
*
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
312
|
+
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
313
|
+
* input curves.
|
|
314
|
+
* * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
|
|
315
|
+
* regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
|
|
316
|
+
* to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
|
|
317
|
+
* SignedLoops object.
|
|
318
|
+
* @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
|
|
319
|
+
* primitives.
|
|
298
320
|
* @param tolerance optional distance tolerance for coincidence
|
|
299
321
|
* @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
|
|
300
|
-
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
322
|
+
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
323
|
+
* positive area and counterclockwise orientation.
|
|
301
324
|
* * `negativeAreaLoops` contains (probably just one) "exterior" loop which is ordered clockwise.
|
|
302
325
|
* * `slivers` contains sliver loops that have zero area, such as appear between coincident curves.
|
|
303
|
-
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
326
|
+
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
327
|
+
* to the edge and a constituent curve in each.
|
|
304
328
|
*/
|
|
305
329
|
static constructAllXYRegionLoops(curvesAndRegions: AnyCurve | AnyCurve[], tolerance?: number): SignedLoops[];
|
|
306
330
|
/**
|
|
@@ -309,12 +333,15 @@ export declare class RegionOps {
|
|
|
309
333
|
* * Optionally recurses into hidden primitives if `smallestPossiblePrimitives` is true.
|
|
310
334
|
* @param candidates input curves
|
|
311
335
|
* @param collectorArray optional pre-defined output array. If defined, it is NOT cleared: primitives are appended.
|
|
312
|
-
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
313
|
-
*
|
|
336
|
+
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
337
|
+
* false, push the [[CurveChainWithDistanceIndex]] instead.
|
|
338
|
+
* @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
|
|
339
|
+
* push the [[LineString3d]] instead.
|
|
314
340
|
*/
|
|
315
341
|
static collectCurvePrimitives(candidates: AnyCurve | AnyCurve[], collectorArray?: CurvePrimitive[], smallestPossiblePrimitives?: boolean, explodeLinestrings?: boolean): CurvePrimitive[];
|
|
316
342
|
/**
|
|
317
|
-
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
343
|
+
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
344
|
+
* instances of [[LineSegment3d]].
|
|
318
345
|
* @param candidates input curves
|
|
319
346
|
* @return copied (captured) inputs except for the linestrings, which are exploded
|
|
320
347
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAyB,0BAA0B,EAAgB,MAAM,2BAA2B,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,yCAAyC,EAAc,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAExH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAA+B,YAAY,EAAE,aAAa,EAA4B,MAAM,yCAAyC,CAAC;AAE7I,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAS9B
|
|
1
|
+
{"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,8 @@ export var RegionBinaryOpType;
|
|
|
57
57
|
* * `ParityRegion` -- a collection of loops, interpreted by parity rules.
|
|
58
58
|
* The common "One outer loop and many Inner loops" is a parity region.
|
|
59
59
|
* * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
|
|
60
|
-
* * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has been
|
|
60
|
+
* * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has been
|
|
61
|
+
* rotated parallel to the xy-plane.
|
|
61
62
|
* @public
|
|
62
63
|
*/
|
|
63
64
|
export class RegionOps {
|
|
@@ -76,7 +77,8 @@ export class RegionOps {
|
|
|
76
77
|
}
|
|
77
78
|
return undefined;
|
|
78
79
|
}
|
|
79
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* Return an area tolerance for a given xy-range and optional distance tolerance.
|
|
80
82
|
* @param range range of planar region to tolerance
|
|
81
83
|
* @param distanceTolerance optional absolute distance tolerance
|
|
82
84
|
*/
|
|
@@ -99,7 +101,8 @@ export class RegionOps {
|
|
|
99
101
|
}
|
|
100
102
|
return undefined;
|
|
101
103
|
}
|
|
102
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Return MomentData with the sums of wire moments.
|
|
103
106
|
* * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
|
|
104
107
|
* call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
|
|
105
108
|
* @param root any CurveCollection or CurvePrimitive.
|
|
@@ -112,7 +115,7 @@ export class RegionOps {
|
|
|
112
115
|
return result;
|
|
113
116
|
}
|
|
114
117
|
/**
|
|
115
|
-
*
|
|
118
|
+
* Create loops in the graph.
|
|
116
119
|
* @internal
|
|
117
120
|
*/
|
|
118
121
|
static addLoopsToGraph(graph, data, announceIsolatedLoop) {
|
|
@@ -156,7 +159,8 @@ export class RegionOps {
|
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
161
|
}
|
|
159
|
-
/**
|
|
162
|
+
/**
|
|
163
|
+
* Add multiple loops to a graph.
|
|
160
164
|
* * Apply edgeTag and mask to each edge.
|
|
161
165
|
* @internal
|
|
162
166
|
*/
|
|
@@ -175,7 +179,6 @@ export class RegionOps {
|
|
|
175
179
|
/**
|
|
176
180
|
* Given a graph just produced by booleans, convert to a polyface
|
|
177
181
|
* * "just produced" implies exterior face markup.
|
|
178
|
-
*
|
|
179
182
|
* @param graph
|
|
180
183
|
* @param triangulate
|
|
181
184
|
*/
|
|
@@ -236,7 +239,8 @@ export class RegionOps {
|
|
|
236
239
|
* @param loopsB second set of loops
|
|
237
240
|
* @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
|
|
238
241
|
* @param mergeTolerance absolute distance tolerance for merging loops
|
|
239
|
-
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
242
|
+
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
243
|
+
* to connect interior loops to exterior loops.
|
|
240
244
|
*/
|
|
241
245
|
static regionBooleanXY(loopsA, loopsB, operation, mergeTolerance = Geometry.smallMetricDistance) {
|
|
242
246
|
const result = UnionRegion.create();
|
|
@@ -303,10 +307,13 @@ export class RegionOps {
|
|
|
303
307
|
}
|
|
304
308
|
return RegionOps.sortOuterAndHoleLoopsXY(allLoops);
|
|
305
309
|
}
|
|
306
|
-
/**
|
|
310
|
+
/**
|
|
311
|
+
* Construct a wire (not area!!) that is offset from given polyline or polygon.
|
|
307
312
|
* * This is a simple wire offset, not an area.
|
|
308
|
-
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
309
|
-
*
|
|
313
|
+
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
314
|
+
* guarantee a simple area offset.
|
|
315
|
+
* * The construction algorithm is subject to being changed, resulting in different (hopefully better)
|
|
316
|
+
* self-intersection behavior on the future.
|
|
310
317
|
* @param points a single loop or path
|
|
311
318
|
* @param wrap true to include wraparound
|
|
312
319
|
* @param offsetDistance distance of offset from wire. Positive is left.
|
|
@@ -316,19 +323,22 @@ export class RegionOps {
|
|
|
316
323
|
return context.constructPolygonWireXYOffset(points, wrap, offsetDistance);
|
|
317
324
|
}
|
|
318
325
|
/**
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
*
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
326
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
327
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
328
|
+
* not detect self intersection among widely separated edges.
|
|
329
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
330
|
+
* * When the offset needs to do an "outside" turn, the first applicable construction is applied:
|
|
331
|
+
* * If the turn is larger than `options.minArcDegrees`, a circular arc is constructed.
|
|
332
|
+
* * If the turn is less than or equal to `options.maxChamferTurnDegrees`, extend curves along tangent to
|
|
333
|
+
* single intersection point.
|
|
334
|
+
* * If the turn is larger than `options.maxChamferDegrees`, the turn is constructed as a sequence of straight
|
|
335
|
+
* lines that are:
|
|
336
|
+
* * outside the arc
|
|
337
|
+
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
338
|
+
* * each line segment (except first and last) touches the arc at its midpoint.
|
|
339
|
+
* @param curves base curves.
|
|
340
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
341
|
+
*/
|
|
332
342
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
333
343
|
return CurveChainWireOffsetContext.constructCurveXYOffset(curves, offsetDistanceOrOptions);
|
|
334
344
|
}
|
|
@@ -342,7 +352,8 @@ export class RegionOps {
|
|
|
342
352
|
static testPointInOnOutRegionXY(curves, x, y) {
|
|
343
353
|
return PointInOnOutContext.testPointInOnOutRegionXY(curves, x, y);
|
|
344
354
|
}
|
|
345
|
-
/**
|
|
355
|
+
/**
|
|
356
|
+
* Create curve collection of subtype determined by gaps between the input curves.
|
|
346
357
|
* * If (a) wrap is requested and (b) all curves connect head-to-tail (including wraparound), assemble as a `loop`.
|
|
347
358
|
* * If all curves connect head-to-tail except for closure, return a `Path`.
|
|
348
359
|
* * If there are internal gaps, return a `BagOfCurves`
|
|
@@ -379,7 +390,9 @@ export class RegionOps {
|
|
|
379
390
|
* Announce Checkpoint function for use during booleans
|
|
380
391
|
* @internal
|
|
381
392
|
*/
|
|
382
|
-
static setCheckPointFunction(f) {
|
|
393
|
+
static setCheckPointFunction(f) {
|
|
394
|
+
this._graphCheckPointFunction = f;
|
|
395
|
+
}
|
|
383
396
|
/**
|
|
384
397
|
* Find all intersections among curves in `curvesToCut` and `cutterCurves` and return fragments of `curvesToCut`.
|
|
385
398
|
* * For a `Loop`, `ParityRegion`, or `UnionRegion` in `curvesToCut`:
|
|
@@ -394,7 +407,8 @@ export class RegionOps {
|
|
|
394
407
|
}
|
|
395
408
|
/**
|
|
396
409
|
* Create paths assembled from many curves.
|
|
397
|
-
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
410
|
+
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
411
|
+
* [[cloneCurvesWithXYSplits]].
|
|
398
412
|
* * Return simplest form -- single primitive, single path, or bag of curves.
|
|
399
413
|
*/
|
|
400
414
|
static splitToPathsBetweenBreaks(source, makeClones) {
|
|
@@ -431,7 +445,8 @@ export class RegionOps {
|
|
|
431
445
|
return OffsetHelpers.collectChains(fragments, gapTolerance);
|
|
432
446
|
}
|
|
433
447
|
/**
|
|
434
|
-
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
448
|
+
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
449
|
+
* of `curvesToCut`.
|
|
435
450
|
* * Break `curvesToCut` into parts inside, outside, and coincident.
|
|
436
451
|
* @returns output object with all fragments split among `insideParts`, `outsideParts`, and `coincidentParts`
|
|
437
452
|
*/
|
|
@@ -457,7 +472,8 @@ export class RegionOps {
|
|
|
457
472
|
}
|
|
458
473
|
return result;
|
|
459
474
|
}
|
|
460
|
-
/**
|
|
475
|
+
/**
|
|
476
|
+
* If `data` is one of several forms of a rectangle, return its edge Transform.
|
|
461
477
|
* * Points are considered a rectangle if, within the first 4 points:
|
|
462
478
|
* * vectors from 0 to 1 and 0 to 3 are perpendicular and have a non-zero cross product
|
|
463
479
|
* * vectors from 0 to 3 and 1 to 2 are the same
|
|
@@ -468,7 +484,8 @@ export class RegionOps {
|
|
|
468
484
|
* * Array of Point3d[]
|
|
469
485
|
* * IndexedXYZCollection
|
|
470
486
|
* @param requireClosurePoint whether to require a 5th point equal to the 1st point.
|
|
471
|
-
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
487
|
+
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
488
|
+
* normal in z column. If not a rectangle, return undefined.
|
|
472
489
|
*/
|
|
473
490
|
static rectangleEdgeTransform(data, requireClosurePoint = true) {
|
|
474
491
|
if (data instanceof LineString3d) {
|
|
@@ -528,9 +545,10 @@ export class RegionOps {
|
|
|
528
545
|
* * Contiguous `LineSegment3d` and `LineString3d` objects.
|
|
529
546
|
* * collect all points
|
|
530
547
|
* * eliminate duplicated points
|
|
531
|
-
* * eliminate points colinear with surrounding points
|
|
532
|
-
* *
|
|
548
|
+
* * eliminate points colinear with surrounding points
|
|
549
|
+
* * contiguous concentric circular or elliptic arcs
|
|
533
550
|
* * combine angular ranges
|
|
551
|
+
* * This function can be used to compress adjacent LineSegment3ds into a LineString3d
|
|
534
552
|
* @param curves Path or loop (or larger collection containing paths and loops) to be simplified
|
|
535
553
|
* @param options options for tolerance and selective simplification.
|
|
536
554
|
*/
|
|
@@ -544,8 +562,10 @@ export class RegionOps {
|
|
|
544
562
|
* @returns a region that captures the input pointers. This region is a:
|
|
545
563
|
* * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
|
|
546
564
|
* * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
|
|
547
|
-
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
548
|
-
*
|
|
565
|
+
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
566
|
+
* clockwise.
|
|
567
|
+
* * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
|
|
568
|
+
* the above cases.
|
|
549
569
|
* @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
|
|
550
570
|
*/
|
|
551
571
|
static sortOuterAndHoleLoopsXY(loops) {
|
|
@@ -562,17 +582,22 @@ export class RegionOps {
|
|
|
562
582
|
}
|
|
563
583
|
/**
|
|
564
584
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
565
|
-
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
566
|
-
*
|
|
567
|
-
*
|
|
568
|
-
*
|
|
569
|
-
*
|
|
585
|
+
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
586
|
+
* input curves.
|
|
587
|
+
* * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
|
|
588
|
+
* regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
|
|
589
|
+
* to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
|
|
590
|
+
* SignedLoops object.
|
|
591
|
+
* @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
|
|
592
|
+
* primitives.
|
|
570
593
|
* @param tolerance optional distance tolerance for coincidence
|
|
571
594
|
* @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
|
|
572
|
-
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
595
|
+
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
596
|
+
* positive area and counterclockwise orientation.
|
|
573
597
|
* * `negativeAreaLoops` contains (probably just one) "exterior" loop which is ordered clockwise.
|
|
574
598
|
* * `slivers` contains sliver loops that have zero area, such as appear between coincident curves.
|
|
575
|
-
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
599
|
+
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
600
|
+
* to the edge and a constituent curve in each.
|
|
576
601
|
*/
|
|
577
602
|
static constructAllXYRegionLoops(curvesAndRegions, tolerance = Geometry.smallMetricDistance) {
|
|
578
603
|
const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
@@ -588,8 +613,10 @@ export class RegionOps {
|
|
|
588
613
|
* * Optionally recurses into hidden primitives if `smallestPossiblePrimitives` is true.
|
|
589
614
|
* @param candidates input curves
|
|
590
615
|
* @param collectorArray optional pre-defined output array. If defined, it is NOT cleared: primitives are appended.
|
|
591
|
-
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
592
|
-
*
|
|
616
|
+
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
617
|
+
* false, push the [[CurveChainWithDistanceIndex]] instead.
|
|
618
|
+
* @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
|
|
619
|
+
* push the [[LineString3d]] instead.
|
|
593
620
|
*/
|
|
594
621
|
static collectCurvePrimitives(candidates, collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
|
|
595
622
|
const results = collectorArray === undefined ? [] : collectorArray;
|
|
@@ -607,7 +634,8 @@ export class RegionOps {
|
|
|
607
634
|
return results;
|
|
608
635
|
}
|
|
609
636
|
/**
|
|
610
|
-
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
637
|
+
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
638
|
+
* instances of [[LineSegment3d]].
|
|
611
639
|
* @param candidates input curves
|
|
612
640
|
* @return copied (captured) inputs except for the linestrings, which are exploded
|
|
613
641
|
*/
|