@itwin/core-geometry 4.1.0-dev.6 → 4.1.0-dev.63
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 +62 -1
- package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js +2 -0
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/core-geometry.d.ts +1 -0
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +4 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +1 -0
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +1 -0
- package/lib/cjs/curve/Arc3d.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.d.ts +36 -26
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +46 -39
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +67 -3
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +75 -7
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +6 -6
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +9 -7
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +4 -3
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +4 -3
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts +6 -4
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +4 -4
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +1 -1
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +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/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/RegionOps.d.ts +69 -47
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +70 -47
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +6 -2
- 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/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.d.ts +4 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js +5 -2
- package/lib/cjs/curve/internalContexts/MultiChainCollector.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.d.ts +56 -34
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +153 -87
- 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/geometry3d/Angle.d.ts +9 -0
- package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Angle.js +13 -0
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.d.ts +43 -48
- package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js +51 -55
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.d.ts +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js +13 -11
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.d.ts +5 -5
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +18 -0
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +27 -0
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +35 -32
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +8 -0
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +13 -0
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts +16 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js +55 -0
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +134 -94
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +297 -145
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.d.ts +7 -0
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +12 -0
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts +64 -6
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +104 -19
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts +11 -0
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +79 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts +11 -0
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +30 -0
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.d.ts +2 -1
- package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.d.ts +2 -1
- package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts +2 -1
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts +2 -2
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
- package/lib/cjs/solid/SweepContour.js +9 -0
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js +2 -0
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +1 -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 +1 -0
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +1 -0
- package/lib/esm/curve/Arc3d.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.d.ts +36 -26
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +46 -39
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +67 -3
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +74 -6
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +6 -6
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +9 -7
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +4 -3
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +4 -3
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts +6 -4
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +4 -4
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +1 -1
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +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/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/RegionOps.d.ts +69 -47
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +70 -47
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +6 -2
- 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/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.d.ts +4 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +5 -2
- package/lib/esm/curve/internalContexts/MultiChainCollector.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.d.ts +56 -34
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +153 -87
- 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/geometry3d/Angle.d.ts +9 -0
- package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
- package/lib/esm/geometry3d/Angle.js +13 -0
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.d.ts +43 -48
- package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js +51 -55
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.d.ts +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js +13 -11
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.d.ts +5 -5
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +18 -0
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +27 -0
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +36 -32
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +35 -32
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +8 -0
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +13 -0
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts +16 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js +56 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +134 -94
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +297 -145
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/Transform.d.ts +7 -0
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +12 -0
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts +64 -6
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +103 -19
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +11 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +78 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts +11 -0
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +30 -0
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/solid/LinearSweep.d.ts +2 -1
- package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.d.ts +2 -1
- package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.d.ts +2 -1
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts +2 -2
- package/lib/esm/solid/SweepContour.d.ts.map +1 -1
- package/lib/esm/solid/SweepContour.js +9 -0
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/package.json +5 -5
|
@@ -7,13 +7,14 @@ import { Polyface } from "../polyface/Polyface";
|
|
|
7
7
|
import { HalfEdge, HalfEdgeGraph, HalfEdgeMask } from "../topology/Graph";
|
|
8
8
|
import { MultiLineStringDataVariant } from "../topology/Triangulation";
|
|
9
9
|
import { AnyCurve, AnyRegion } from "./CurveChain";
|
|
10
|
-
import { BagOfCurves, ConsolidateAdjacentCurvePrimitivesOptions, CurveCollection } from "./CurveCollection";
|
|
10
|
+
import { BagOfCurves, ConsolidateAdjacentCurvePrimitivesOptions, CurveChain, CurveCollection } from "./CurveCollection";
|
|
11
11
|
import { CurvePrimitive } from "./CurvePrimitive";
|
|
12
12
|
import { JointOptions, OffsetOptions } from "./internalContexts/PolygonOffsetContext";
|
|
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
|
|
48
|
+
* * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
|
|
49
|
+
* been 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,30 @@ 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
|
-
/**
|
|
161
|
-
*
|
|
162
|
-
* *
|
|
163
|
-
* *
|
|
165
|
+
/**
|
|
166
|
+
* Construct a wire that is offset from the given polyline or polygon.
|
|
167
|
+
* * This is a simple wire offset, not an area offset.
|
|
168
|
+
* * Since z-coordinates are ignored, for best results the input points should lie in (a plane parallel to)
|
|
169
|
+
* the xy-plane.
|
|
170
|
+
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
171
|
+
* guarantee a simple area offset.
|
|
172
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
173
|
+
* * See [[JointOptions]] class doc for offset construction rules.
|
|
164
174
|
* @param points a single loop or path
|
|
165
175
|
* @param wrap true to include wraparound
|
|
166
|
-
* @param
|
|
176
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
|
|
177
|
+
* object.
|
|
167
178
|
*/
|
|
168
|
-
static constructPolygonWireXYOffset(points: Point3d[], wrap: boolean,
|
|
179
|
+
static constructPolygonWireXYOffset(points: Point3d[], wrap: boolean, offsetDistanceOrOptions: number | JointOptions): CurveChain | undefined;
|
|
169
180
|
/**
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
179
|
-
* * each line segment (except first and last) touches the arc at its midpoint.
|
|
180
|
-
* @param curves base curves.
|
|
181
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
182
|
-
*/
|
|
181
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
182
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
183
|
+
* not detect self intersection among widely separated edges.
|
|
184
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
185
|
+
* * See [[JointOptions]] class doc for offset construction rules.
|
|
186
|
+
* @param curves base curves.
|
|
187
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
188
|
+
*/
|
|
183
189
|
static constructCurveXYOffset(curves: Path | Loop, offsetDistanceOrOptions: number | JointOptions | OffsetOptions): CurveCollection | undefined;
|
|
184
190
|
/**
|
|
185
191
|
* Test if point (x,y) is IN, OUT or ON a region.
|
|
@@ -189,7 +195,8 @@ export declare class RegionOps {
|
|
|
189
195
|
* @param y y coordinate of point to test
|
|
190
196
|
*/
|
|
191
197
|
static testPointInOnOutRegionXY(curves: AnyRegion, x: number, y: number): number;
|
|
192
|
-
/**
|
|
198
|
+
/**
|
|
199
|
+
* Create curve collection of subtype determined by gaps between the input curves.
|
|
193
200
|
* * If (a) wrap is requested and (b) all curves connect head-to-tail (including wraparound), assemble as a `loop`.
|
|
194
201
|
* * If all curves connect head-to-tail except for closure, return a `Path`.
|
|
195
202
|
* * If there are internal gaps, return a `BagOfCurves`
|
|
@@ -217,7 +224,8 @@ export declare class RegionOps {
|
|
|
217
224
|
static cloneCurvesWithXYSplits(curvesToCut: AnyCurve | undefined, cutterCurves: CurveCollection): AnyCurve | undefined;
|
|
218
225
|
/**
|
|
219
226
|
* Create paths assembled from many curves.
|
|
220
|
-
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
227
|
+
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
228
|
+
* [[cloneCurvesWithXYSplits]].
|
|
221
229
|
* * Return simplest form -- single primitive, single path, or bag of curves.
|
|
222
230
|
*/
|
|
223
231
|
static splitToPathsBetweenBreaks(source: AnyCurve | undefined, makeClones: boolean): ChainTypes;
|
|
@@ -242,7 +250,8 @@ export declare class RegionOps {
|
|
|
242
250
|
*/
|
|
243
251
|
static collectChains(fragments: AnyCurve[], gapTolerance?: number): ChainTypes;
|
|
244
252
|
/**
|
|
245
|
-
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
253
|
+
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
254
|
+
* of `curvesToCut`.
|
|
246
255
|
* * Break `curvesToCut` into parts inside, outside, and coincident.
|
|
247
256
|
* @returns output object with all fragments split among `insideParts`, `outsideParts`, and `coincidentParts`
|
|
248
257
|
*/
|
|
@@ -251,7 +260,8 @@ export declare class RegionOps {
|
|
|
251
260
|
outsideParts: AnyCurve[];
|
|
252
261
|
coincidentParts: AnyCurve[];
|
|
253
262
|
};
|
|
254
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* If `data` is one of several forms of a rectangle, return its edge Transform.
|
|
255
265
|
* * Points are considered a rectangle if, within the first 4 points:
|
|
256
266
|
* * vectors from 0 to 1 and 0 to 3 are perpendicular and have a non-zero cross product
|
|
257
267
|
* * vectors from 0 to 3 and 1 to 2 are the same
|
|
@@ -262,7 +272,8 @@ export declare class RegionOps {
|
|
|
262
272
|
* * Array of Point3d[]
|
|
263
273
|
* * IndexedXYZCollection
|
|
264
274
|
* @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
|
|
275
|
+
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
276
|
+
* normal in z column. If not a rectangle, return undefined.
|
|
266
277
|
*/
|
|
267
278
|
static rectangleEdgeTransform(data: AnyCurve | Point3d[] | IndexedXYZCollection, requireClosurePoint?: boolean): Transform | undefined;
|
|
268
279
|
/**
|
|
@@ -270,9 +281,10 @@ export declare class RegionOps {
|
|
|
270
281
|
* * Contiguous `LineSegment3d` and `LineString3d` objects.
|
|
271
282
|
* * collect all points
|
|
272
283
|
* * eliminate duplicated points
|
|
273
|
-
* * eliminate points colinear with surrounding points
|
|
274
|
-
* *
|
|
284
|
+
* * eliminate points colinear with surrounding points
|
|
285
|
+
* * contiguous concentric circular or elliptic arcs
|
|
275
286
|
* * combine angular ranges
|
|
287
|
+
* * This function can be used to compress adjacent LineSegment3ds into a LineString3d
|
|
276
288
|
* @param curves Path or loop (or larger collection containing paths and loops) to be simplified
|
|
277
289
|
* @param options options for tolerance and selective simplification.
|
|
278
290
|
*/
|
|
@@ -283,24 +295,31 @@ export declare class RegionOps {
|
|
|
283
295
|
* @returns a region that captures the input pointers. This region is a:
|
|
284
296
|
* * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
|
|
285
297
|
* * `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
|
-
*
|
|
298
|
+
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
299
|
+
* clockwise.
|
|
300
|
+
* * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
|
|
301
|
+
* the above cases.
|
|
288
302
|
* @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
|
|
289
303
|
*/
|
|
290
304
|
static sortOuterAndHoleLoopsXY(loops: Array<Loop | IndexedXYZCollection>): AnyRegion;
|
|
291
305
|
/**
|
|
292
306
|
* 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
|
-
*
|
|
307
|
+
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
308
|
+
* input curves.
|
|
309
|
+
* * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
|
|
310
|
+
* regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
|
|
311
|
+
* to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
|
|
312
|
+
* SignedLoops object.
|
|
313
|
+
* @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
|
|
314
|
+
* primitives.
|
|
298
315
|
* @param tolerance optional distance tolerance for coincidence
|
|
299
316
|
* @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
|
|
317
|
+
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
318
|
+
* positive area and counterclockwise orientation.
|
|
301
319
|
* * `negativeAreaLoops` contains (probably just one) "exterior" loop which is ordered clockwise.
|
|
302
320
|
* * `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
|
|
321
|
+
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
322
|
+
* to the edge and a constituent curve in each.
|
|
304
323
|
*/
|
|
305
324
|
static constructAllXYRegionLoops(curvesAndRegions: AnyCurve | AnyCurve[], tolerance?: number): SignedLoops[];
|
|
306
325
|
/**
|
|
@@ -309,12 +328,15 @@ export declare class RegionOps {
|
|
|
309
328
|
* * Optionally recurses into hidden primitives if `smallestPossiblePrimitives` is true.
|
|
310
329
|
* @param candidates input curves
|
|
311
330
|
* @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
|
-
*
|
|
331
|
+
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
332
|
+
* false, push the [[CurveChainWithDistanceIndex]] instead.
|
|
333
|
+
* @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
|
|
334
|
+
* push the [[LineString3d]] instead.
|
|
314
335
|
*/
|
|
315
336
|
static collectCurvePrimitives(candidates: AnyCurve | AnyCurve[], collectorArray?: CurvePrimitive[], smallestPossiblePrimitives?: boolean, explodeLinestrings?: boolean): CurvePrimitive[];
|
|
316
337
|
/**
|
|
317
|
-
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
338
|
+
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
339
|
+
* instances of [[LineSegment3d]].
|
|
318
340
|
* @param candidates input curves
|
|
319
341
|
* @return copied (captured) inputs except for the linestrings, which are exploded
|
|
320
342
|
*/
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"RegionOps.d.ts","sourceRoot":"","sources":["../../../src/curve/RegionOps.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,8 @@ var RegionBinaryOpType;
|
|
|
60
60
|
* * `ParityRegion` -- a collection of loops, interpreted by parity rules.
|
|
61
61
|
* The common "One outer loop and many Inner loops" is a parity region.
|
|
62
62
|
* * `UnionRegion` -- a collection of `Loop` and `ParityRegion` objects understood as a (probably disjoint) union.
|
|
63
|
-
* * Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
|
|
63
|
+
* * **NOTE:** Most of the methods in this class ignore z-coordinates, so callers should ensure that input geometry has
|
|
64
|
+
* been rotated parallel to the xy-plane.
|
|
64
65
|
* @public
|
|
65
66
|
*/
|
|
66
67
|
class RegionOps {
|
|
@@ -79,7 +80,8 @@ class RegionOps {
|
|
|
79
80
|
}
|
|
80
81
|
return undefined;
|
|
81
82
|
}
|
|
82
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Return an area tolerance for a given xy-range and optional distance tolerance.
|
|
83
85
|
* @param range range of planar region to tolerance
|
|
84
86
|
* @param distanceTolerance optional absolute distance tolerance
|
|
85
87
|
*/
|
|
@@ -102,7 +104,8 @@ class RegionOps {
|
|
|
102
104
|
}
|
|
103
105
|
return undefined;
|
|
104
106
|
}
|
|
105
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Return MomentData with the sums of wire moments.
|
|
106
109
|
* * If `rawMomentData` is the MomentData returned by computeXYAreaMoments, convert to principal axes and moments with
|
|
107
110
|
* call `principalMomentData = MomentData.inertiaProductsToPrincipalAxes (rawMomentData.origin, rawMomentData.sums);`
|
|
108
111
|
* @param root any CurveCollection or CurvePrimitive.
|
|
@@ -115,7 +118,7 @@ class RegionOps {
|
|
|
115
118
|
return result;
|
|
116
119
|
}
|
|
117
120
|
/**
|
|
118
|
-
*
|
|
121
|
+
* Create loops in the graph.
|
|
119
122
|
* @internal
|
|
120
123
|
*/
|
|
121
124
|
static addLoopsToGraph(graph, data, announceIsolatedLoop) {
|
|
@@ -159,7 +162,8 @@ class RegionOps {
|
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
}
|
|
162
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* Add multiple loops to a graph.
|
|
163
167
|
* * Apply edgeTag and mask to each edge.
|
|
164
168
|
* @internal
|
|
165
169
|
*/
|
|
@@ -178,7 +182,6 @@ class RegionOps {
|
|
|
178
182
|
/**
|
|
179
183
|
* Given a graph just produced by booleans, convert to a polyface
|
|
180
184
|
* * "just produced" implies exterior face markup.
|
|
181
|
-
*
|
|
182
185
|
* @param graph
|
|
183
186
|
* @param triangulate
|
|
184
187
|
*/
|
|
@@ -239,7 +242,8 @@ class RegionOps {
|
|
|
239
242
|
* @param loopsB second set of loops
|
|
240
243
|
* @param operation indicates Union, Intersection, Parity, AMinusB, or BMinusA
|
|
241
244
|
* @param mergeTolerance absolute distance tolerance for merging loops
|
|
242
|
-
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
245
|
+
* @returns a region resulting from merging input loops and the boolean operation. May contain bridge edges added
|
|
246
|
+
* to connect interior loops to exterior loops.
|
|
243
247
|
*/
|
|
244
248
|
static regionBooleanXY(loopsA, loopsB, operation, mergeTolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
245
249
|
const result = UnionRegion_1.UnionRegion.create();
|
|
@@ -306,32 +310,33 @@ class RegionOps {
|
|
|
306
310
|
}
|
|
307
311
|
return RegionOps.sortOuterAndHoleLoopsXY(allLoops);
|
|
308
312
|
}
|
|
309
|
-
/**
|
|
310
|
-
*
|
|
311
|
-
* *
|
|
312
|
-
* *
|
|
313
|
+
/**
|
|
314
|
+
* Construct a wire that is offset from the given polyline or polygon.
|
|
315
|
+
* * This is a simple wire offset, not an area offset.
|
|
316
|
+
* * Since z-coordinates are ignored, for best results the input points should lie in (a plane parallel to)
|
|
317
|
+
* the xy-plane.
|
|
318
|
+
* * The construction algorithm attempts to eliminate some self-intersections within the offsets, but does not
|
|
319
|
+
* guarantee a simple area offset.
|
|
320
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
321
|
+
* * See [[JointOptions]] class doc for offset construction rules.
|
|
313
322
|
* @param points a single loop or path
|
|
314
323
|
* @param wrap true to include wraparound
|
|
315
|
-
* @param
|
|
324
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or JointOptions
|
|
325
|
+
* object.
|
|
316
326
|
*/
|
|
317
|
-
static constructPolygonWireXYOffset(points, wrap,
|
|
327
|
+
static constructPolygonWireXYOffset(points, wrap, offsetDistanceOrOptions) {
|
|
318
328
|
const context = new PolygonOffsetContext_1.PolygonWireOffsetContext();
|
|
319
|
-
return context.constructPolygonWireXYOffset(points, wrap,
|
|
329
|
+
return context.constructPolygonWireXYOffset(points, wrap, offsetDistanceOrOptions);
|
|
320
330
|
}
|
|
321
331
|
/**
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
* * have uniform turn angle less than `options.maxChamferDegrees`
|
|
331
|
-
* * each line segment (except first and last) touches the arc at its midpoint.
|
|
332
|
-
* @param curves base curves.
|
|
333
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
334
|
-
*/
|
|
332
|
+
* Construct curves that are offset from a Path or Loop as viewed in xy-plane (ignoring z).
|
|
333
|
+
* * The construction will remove "some" local effects of features smaller than the offset distance, but will
|
|
334
|
+
* not detect self intersection among widely separated edges.
|
|
335
|
+
* * If offsetDistance is given as a number, default OffsetOptions are applied.
|
|
336
|
+
* * See [[JointOptions]] class doc for offset construction rules.
|
|
337
|
+
* @param curves base curves.
|
|
338
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of curve, negative to right) or options object.
|
|
339
|
+
*/
|
|
335
340
|
static constructCurveXYOffset(curves, offsetDistanceOrOptions) {
|
|
336
341
|
return PolygonOffsetContext_1.CurveChainWireOffsetContext.constructCurveXYOffset(curves, offsetDistanceOrOptions);
|
|
337
342
|
}
|
|
@@ -345,7 +350,8 @@ class RegionOps {
|
|
|
345
350
|
static testPointInOnOutRegionXY(curves, x, y) {
|
|
346
351
|
return InOutTests_1.PointInOnOutContext.testPointInOnOutRegionXY(curves, x, y);
|
|
347
352
|
}
|
|
348
|
-
/**
|
|
353
|
+
/**
|
|
354
|
+
* Create curve collection of subtype determined by gaps between the input curves.
|
|
349
355
|
* * If (a) wrap is requested and (b) all curves connect head-to-tail (including wraparound), assemble as a `loop`.
|
|
350
356
|
* * If all curves connect head-to-tail except for closure, return a `Path`.
|
|
351
357
|
* * If there are internal gaps, return a `BagOfCurves`
|
|
@@ -382,7 +388,9 @@ class RegionOps {
|
|
|
382
388
|
* Announce Checkpoint function for use during booleans
|
|
383
389
|
* @internal
|
|
384
390
|
*/
|
|
385
|
-
static setCheckPointFunction(f) {
|
|
391
|
+
static setCheckPointFunction(f) {
|
|
392
|
+
this._graphCheckPointFunction = f;
|
|
393
|
+
}
|
|
386
394
|
/**
|
|
387
395
|
* Find all intersections among curves in `curvesToCut` and `cutterCurves` and return fragments of `curvesToCut`.
|
|
388
396
|
* * For a `Loop`, `ParityRegion`, or `UnionRegion` in `curvesToCut`:
|
|
@@ -397,7 +405,8 @@ class RegionOps {
|
|
|
397
405
|
}
|
|
398
406
|
/**
|
|
399
407
|
* Create paths assembled from many curves.
|
|
400
|
-
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
408
|
+
* * Assemble paths from consecutive curves NOT separated by either gaps or the split markup set by
|
|
409
|
+
* [[cloneCurvesWithXYSplits]].
|
|
401
410
|
* * Return simplest form -- single primitive, single path, or bag of curves.
|
|
402
411
|
*/
|
|
403
412
|
static splitToPathsBetweenBreaks(source, makeClones) {
|
|
@@ -434,7 +443,8 @@ class RegionOps {
|
|
|
434
443
|
return MultiChainCollector_1.OffsetHelpers.collectChains(fragments, gapTolerance);
|
|
435
444
|
}
|
|
436
445
|
/**
|
|
437
|
-
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
446
|
+
* Find all intersections among curves in `curvesToCut` against the boundaries of `region` and return fragments
|
|
447
|
+
* of `curvesToCut`.
|
|
438
448
|
* * Break `curvesToCut` into parts inside, outside, and coincident.
|
|
439
449
|
* @returns output object with all fragments split among `insideParts`, `outsideParts`, and `coincidentParts`
|
|
440
450
|
*/
|
|
@@ -460,7 +470,8 @@ class RegionOps {
|
|
|
460
470
|
}
|
|
461
471
|
return result;
|
|
462
472
|
}
|
|
463
|
-
/**
|
|
473
|
+
/**
|
|
474
|
+
* If `data` is one of several forms of a rectangle, return its edge Transform.
|
|
464
475
|
* * Points are considered a rectangle if, within the first 4 points:
|
|
465
476
|
* * vectors from 0 to 1 and 0 to 3 are perpendicular and have a non-zero cross product
|
|
466
477
|
* * vectors from 0 to 3 and 1 to 2 are the same
|
|
@@ -471,7 +482,8 @@ class RegionOps {
|
|
|
471
482
|
* * Array of Point3d[]
|
|
472
483
|
* * IndexedXYZCollection
|
|
473
484
|
* @param requireClosurePoint whether to require a 5th point equal to the 1st point.
|
|
474
|
-
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
485
|
+
* @returns Transform with origin at one corner, x and y columns extending along two adjacent sides, and unit
|
|
486
|
+
* normal in z column. If not a rectangle, return undefined.
|
|
475
487
|
*/
|
|
476
488
|
static rectangleEdgeTransform(data, requireClosurePoint = true) {
|
|
477
489
|
if (data instanceof LineString3d_1.LineString3d) {
|
|
@@ -531,9 +543,10 @@ class RegionOps {
|
|
|
531
543
|
* * Contiguous `LineSegment3d` and `LineString3d` objects.
|
|
532
544
|
* * collect all points
|
|
533
545
|
* * eliminate duplicated points
|
|
534
|
-
* * eliminate points colinear with surrounding points
|
|
535
|
-
* *
|
|
546
|
+
* * eliminate points colinear with surrounding points
|
|
547
|
+
* * contiguous concentric circular or elliptic arcs
|
|
536
548
|
* * combine angular ranges
|
|
549
|
+
* * This function can be used to compress adjacent LineSegment3ds into a LineString3d
|
|
537
550
|
* @param curves Path or loop (or larger collection containing paths and loops) to be simplified
|
|
538
551
|
* @param options options for tolerance and selective simplification.
|
|
539
552
|
*/
|
|
@@ -547,8 +560,10 @@ class RegionOps {
|
|
|
547
560
|
* @returns a region that captures the input pointers. This region is a:
|
|
548
561
|
* * `Loop` if there is exactly one input loop. It is oriented counterclockwise.
|
|
549
562
|
* * `ParityRegion` if input consists of exactly one outer loop with at least one hole loop.
|
|
550
|
-
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
551
|
-
*
|
|
563
|
+
* Its first child is an outer loop oriented counterclockwise; all subsequent children are holes oriented
|
|
564
|
+
* clockwise.
|
|
565
|
+
* * `UnionRegion` if any other input configuration. Its children are individually ordered/oriented as in
|
|
566
|
+
* the above cases.
|
|
552
567
|
* @see [[PolygonOps.sortOuterAndHoleLoopsXY]]
|
|
553
568
|
*/
|
|
554
569
|
static sortOuterAndHoleLoopsXY(loops) {
|
|
@@ -565,17 +580,22 @@ class RegionOps {
|
|
|
565
580
|
}
|
|
566
581
|
/**
|
|
567
582
|
* Find all areas bounded by the unstructured, possibly intersecting curves.
|
|
568
|
-
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
569
|
-
*
|
|
570
|
-
*
|
|
571
|
-
*
|
|
572
|
-
*
|
|
583
|
+
* * A common use case of this method is to assemble the bounding "exterior" loop (or loops) containing the
|
|
584
|
+
* input curves.
|
|
585
|
+
* * This method does not add bridge edges to connect outer loops to inner loops. Each disconnected loop,
|
|
586
|
+
* regardless of its containment, is returned as its own SignedLoops object. Pre-process with [[regionBooleanXY]]
|
|
587
|
+
* to add bridge edges so that [[constructAllXYRegionLoops]] will return outer and inner loops in the same
|
|
588
|
+
* SignedLoops object.
|
|
589
|
+
* @param curvesAndRegions Any collection of curves. Each Loop/ParityRegion/UnionRegion contributes its curve
|
|
590
|
+
* primitives.
|
|
573
591
|
* @param tolerance optional distance tolerance for coincidence
|
|
574
592
|
* @returns array of [[SignedLoops]], each entry of which describes the faces in a single connected component:
|
|
575
|
-
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
593
|
+
* * `positiveAreaLoops` contains "interior" loops, _including holes in ParityRegion input_. These loops have
|
|
594
|
+
* positive area and counterclockwise orientation.
|
|
576
595
|
* * `negativeAreaLoops` contains (probably just one) "exterior" loop which is ordered clockwise.
|
|
577
596
|
* * `slivers` contains sliver loops that have zero area, such as appear between coincident curves.
|
|
578
|
-
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
597
|
+
* * `edges` contains a [[LoopCurveLoopCurve]] object for each component edge, collecting both loops adjacent
|
|
598
|
+
* to the edge and a constituent curve in each.
|
|
579
599
|
*/
|
|
580
600
|
static constructAllXYRegionLoops(curvesAndRegions, tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
581
601
|
const primitives = RegionOps.collectCurvePrimitives(curvesAndRegions, undefined, true, true);
|
|
@@ -591,8 +611,10 @@ class RegionOps {
|
|
|
591
611
|
* * Optionally recurses into hidden primitives if `smallestPossiblePrimitives` is true.
|
|
592
612
|
* @param candidates input curves
|
|
593
613
|
* @param collectorArray optional pre-defined output array. If defined, it is NOT cleared: primitives are appended.
|
|
594
|
-
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
595
|
-
*
|
|
614
|
+
* @param smallestPossiblePrimitives if true, recurse into the children of a [[CurveChainWithDistanceIndex]]. If
|
|
615
|
+
* false, push the [[CurveChainWithDistanceIndex]] instead.
|
|
616
|
+
* @param explodeLinestrings if true, push a [[LineSegment3d]] for each segment of a [[LineString3d]]. If false,
|
|
617
|
+
* push the [[LineString3d]] instead.
|
|
596
618
|
*/
|
|
597
619
|
static collectCurvePrimitives(candidates, collectorArray, smallestPossiblePrimitives = false, explodeLinestrings = false) {
|
|
598
620
|
const results = collectorArray === undefined ? [] : collectorArray;
|
|
@@ -610,7 +632,8 @@ class RegionOps {
|
|
|
610
632
|
return results;
|
|
611
633
|
}
|
|
612
634
|
/**
|
|
613
|
-
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
635
|
+
* Copy primitive pointers from candidates to result array, replacing each [[LineString3d]] by newly constructed
|
|
636
|
+
* instances of [[LineSegment3d]].
|
|
614
637
|
* @param candidates input curves
|
|
615
638
|
* @return copied (captured) inputs except for the linestrings, which are exploded
|
|
616
639
|
*/
|