@itwin/core-geometry 4.9.0-dev.9 → 4.10.0-dev.1
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 +26 -1
- package/lib/cjs/Geometry.d.ts +57 -46
- package/lib/cjs/Geometry.d.ts.map +1 -1
- package/lib/cjs/Geometry.js +73 -53
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +141 -38
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +219 -31
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +11 -6
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +12 -10
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +2 -1
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +2 -1
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts +11 -9
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js +11 -9
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +4 -3
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +4 -3
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts +19 -1
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +39 -0
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurveOps.d.ts +4 -4
- package/lib/cjs/curve/CurveOps.d.ts.map +1 -1
- package/lib/cjs/curve/CurveOps.js +6 -6
- package/lib/cjs/curve/CurveOps.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +1 -1
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts +7 -5
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +8 -6
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.d.ts.map +1 -1
- package/lib/cjs/curve/Loop.js +6 -6
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/OffsetOptions.d.ts +1 -1
- package/lib/cjs/curve/OffsetOptions.js +1 -1
- package/lib/cjs/curve/OffsetOptions.js.map +1 -1
- package/lib/cjs/curve/Path.d.ts.map +1 -1
- package/lib/cjs/curve/Path.js +5 -6
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/RegionOps.d.ts +4 -3
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -1
- package/lib/cjs/curve/RegionOps.js +4 -3
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +1000 -0
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts +11 -8
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js +7 -4
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.d.ts +18 -5
- package/lib/cjs/geometry3d/Angle.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Angle.js +23 -7
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts +14 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +47 -12
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.d.ts +2 -1
- package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js +12 -10
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js +1 -7
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +6 -4
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +6 -4
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +5 -5
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +5 -5
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts +6 -5
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +11 -10
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts +4 -4
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +7 -11
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/Range.d.ts +6 -1
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Range.js +9 -3
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.d.ts +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 +1 -1
- package/lib/cjs/geometry3d/Transform.js +1 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/numerics/Newton.d.ts +3 -3
- package/lib/cjs/numerics/Newton.d.ts.map +1 -1
- package/lib/cjs/numerics/Newton.js +14 -16
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.d.ts +2 -2
- package/lib/cjs/numerics/Polynomials.js +2 -2
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts +7 -4
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +11 -6
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.d.ts +13 -10
- package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js +17 -14
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts +11 -14
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +59 -52
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +2 -2
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
- package/lib/cjs/solid/SweepContour.js +0 -4
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/topology/Graph.d.ts +1 -1
- package/lib/cjs/topology/Graph.js +2 -2
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +168 -127
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.d.ts +35 -35
- package/lib/cjs/topology/HalfEdgePositionDetail.d.ts.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js +63 -41
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts +64 -12
- package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js +174 -75
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/Merging.d.ts +2 -2
- package/lib/cjs/topology/Merging.js +2 -2
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/Triangulation.d.ts +16 -10
- package/lib/cjs/topology/Triangulation.d.ts.map +1 -1
- package/lib/cjs/topology/Triangulation.js +23 -30
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/esm/Geometry.d.ts +57 -46
- package/lib/esm/Geometry.d.ts.map +1 -1
- package/lib/esm/Geometry.js +73 -53
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +141 -38
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +217 -30
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +11 -6
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +12 -10
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +2 -1
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +2 -1
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts +11 -9
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js +11 -9
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +4 -3
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +4 -3
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts +19 -1
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +39 -0
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurveOps.d.ts +4 -4
- package/lib/esm/curve/CurveOps.d.ts.map +1 -1
- package/lib/esm/curve/CurveOps.js +6 -6
- package/lib/esm/curve/CurveOps.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +1 -1
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts +7 -5
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +8 -6
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.d.ts.map +1 -1
- package/lib/esm/curve/Loop.js +6 -6
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/OffsetOptions.d.ts +1 -1
- package/lib/esm/curve/OffsetOptions.js +1 -1
- package/lib/esm/curve/OffsetOptions.js.map +1 -1
- package/lib/esm/curve/Path.d.ts.map +1 -1
- package/lib/esm/curve/Path.js +5 -6
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +3 -4
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/RegionOps.d.ts +4 -3
- package/lib/esm/curve/RegionOps.d.ts.map +1 -1
- package/lib/esm/curve/RegionOps.js +4 -3
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts +23 -7
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +43 -35
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +22 -8
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +127 -52
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +211 -0
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +995 -0
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +11 -8
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +7 -4
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/esm/geometry3d/Angle.d.ts +18 -5
- package/lib/esm/geometry3d/Angle.d.ts.map +1 -1
- package/lib/esm/geometry3d/Angle.js +23 -7
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts +14 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +47 -12
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.d.ts +2 -1
- package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js +12 -10
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js +1 -7
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +6 -4
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +6 -4
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +5 -5
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +5 -5
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts +6 -5
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +11 -10
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts +4 -4
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +7 -11
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +3 -3
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/Range.d.ts +6 -1
- package/lib/esm/geometry3d/Range.d.ts.map +1 -1
- package/lib/esm/geometry3d/Range.js +9 -3
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.d.ts +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 +1 -1
- package/lib/esm/geometry3d/Transform.js +1 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/numerics/Newton.d.ts +3 -3
- package/lib/esm/numerics/Newton.d.ts.map +1 -1
- package/lib/esm/numerics/Newton.js +14 -16
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/Polynomials.d.ts +2 -2
- package/lib/esm/numerics/Polynomials.js +2 -2
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.d.ts +7 -4
- package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +11 -6
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.d.ts +13 -10
- package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js +17 -14
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts +11 -14
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +59 -52
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +2 -2
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts.map +1 -1
- package/lib/esm/solid/SweepContour.js +0 -4
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/topology/Graph.d.ts +1 -1
- package/lib/esm/topology/Graph.js +2 -2
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts +57 -15
- package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js +168 -127
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.d.ts +35 -35
- package/lib/esm/topology/HalfEdgePositionDetail.d.ts.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.js +63 -41
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.d.ts +64 -12
- package/lib/esm/topology/InsertAndRetriangulateContext.d.ts.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js +173 -74
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/Merging.d.ts +2 -2
- package/lib/esm/topology/Merging.js +2 -2
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/Triangulation.d.ts +16 -10
- package/lib/esm/topology/Triangulation.d.ts.map +1 -1
- package/lib/esm/topology/Triangulation.js +24 -31
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { AngleSweep } from "../../geometry3d/AngleSweep";
|
|
2
|
+
import { Range1d } from "../../geometry3d/Range";
|
|
3
|
+
import { Transform } from "../../geometry3d/Transform";
|
|
4
|
+
import { Arc3d, EllipticalArcApproximationOptions } from "../Arc3d";
|
|
5
|
+
import { CurveChain } from "../CurveCollection";
|
|
6
|
+
import { CurveLocationDetailPair } from "../CurveLocationDetail";
|
|
7
|
+
/**
|
|
8
|
+
* Structured data carrier used by the elliptical arc sampler.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare class QuadrantFractions {
|
|
12
|
+
private _quadrant;
|
|
13
|
+
private _fractions;
|
|
14
|
+
private _interpolateStartTangent;
|
|
15
|
+
private _interpolateEndTangent;
|
|
16
|
+
private _averageAdded;
|
|
17
|
+
private constructor();
|
|
18
|
+
/** Constructor, captures the array. */
|
|
19
|
+
static create(quadrant: 1 | 2 | 3 | 4, fractions?: number[], interpolateStartTangent?: boolean, interpolateEndTangent?: boolean): QuadrantFractions;
|
|
20
|
+
/**
|
|
21
|
+
* Quadrant of the full ellipse containing the samples.
|
|
22
|
+
* * Quadrants are labeled proceeding in counterclockwise angular sweeps of length pi/2 starting at vector0.
|
|
23
|
+
* * For example, Quadrant 1 starts at vector0 and ends at vector90, and Quadrant 4 ends at vector0.
|
|
24
|
+
* * For purposes of angle classification, quadrants are half-open intervals, closed at their start angle,
|
|
25
|
+
* as determined by the ellipse's sweep direction.
|
|
26
|
+
*/
|
|
27
|
+
get quadrant(): 1 | 2 | 3 | 4;
|
|
28
|
+
/** Sample locations in this quadrant of the elliptical arc, as fractions of its sweep. */
|
|
29
|
+
get fractions(): number[];
|
|
30
|
+
set fractions(f: number[]);
|
|
31
|
+
/**
|
|
32
|
+
* Whether to interpolate the elliptical arc tangent at the first fraction.
|
|
33
|
+
* * If true (default), the first approximating arc is computed from the first two fractions and approximates the
|
|
34
|
+
* elliptical arc between the first and second fractions, interpolating both point and tangent at the first fraction,
|
|
35
|
+
* and point at the second fraction.
|
|
36
|
+
* * If false, the first approximating arc is computed from the first three fractions and approximates the
|
|
37
|
+
* elliptical arc between the second and third fractions, where it interpolates position only.
|
|
38
|
+
*/
|
|
39
|
+
get interpolateStartTangent(): boolean;
|
|
40
|
+
set interpolateStartTangent(interpolate: boolean);
|
|
41
|
+
/**
|
|
42
|
+
* Whether to interpolate the elliptical arc tangent at the last fraction.
|
|
43
|
+
* * If true (default), the last approximating arc is computed from the last two fractions and approximates the
|
|
44
|
+
* elliptical arc between the penultimate and last fractions, interpolating point at the penultimate fraction, and
|
|
45
|
+
* both point and tangent at the last fraction.
|
|
46
|
+
* * If false, the last approximating arc is computed from the last three fractions and approximates the
|
|
47
|
+
* elliptical arc between the penultimate and last fractions, where it interpolates position only.
|
|
48
|
+
*/
|
|
49
|
+
get interpolateEndTangent(): boolean;
|
|
50
|
+
set interpolateEndTangent(interpolate: boolean);
|
|
51
|
+
/**
|
|
52
|
+
* Whether the average of the first and last fractions was added to satisfy a minimum fractions array length of three.
|
|
53
|
+
* * There are always at least two fractions per quadrant, but three are needed to interpolate both end tangents
|
|
54
|
+
* with circular arcs.
|
|
55
|
+
* * This flag is set if a given sample method/arc yielded only two fractions, so their average was inserted in the
|
|
56
|
+
* fractions array to meet this minimum three-sample requirement.
|
|
57
|
+
*/
|
|
58
|
+
get averageAdded(): boolean;
|
|
59
|
+
set averageAdded(added: boolean);
|
|
60
|
+
/**
|
|
61
|
+
* Compute quadrant data for the given angles.
|
|
62
|
+
* @param radians0 first radian angle
|
|
63
|
+
* @param radians1 second radian angle
|
|
64
|
+
* @return quadrant number and start/end radian angles for the quadrant that contains both input angles, or
|
|
65
|
+
* undefined if no such quadrant.
|
|
66
|
+
* * The returned sweep is always counterclockwise: angle0 < angle1.
|
|
67
|
+
*/
|
|
68
|
+
static getQuadrantRadians(radians0: number, radians1: number): {
|
|
69
|
+
quadrant: 1 | 2 | 3 | 4;
|
|
70
|
+
angle0: number;
|
|
71
|
+
angle1: number;
|
|
72
|
+
} | undefined;
|
|
73
|
+
/** Compute the fractional range of Quadrant 1 for the given sweep. */
|
|
74
|
+
static getQ1FractionalRange(sweep: AngleSweep): Range1d;
|
|
75
|
+
/** Reverse the fractions array and flags. */
|
|
76
|
+
reverse(): void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Base class specifying callbacks for processing samples of an elliptical arc.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
declare class QuadrantFractionsProcessor {
|
|
83
|
+
/**
|
|
84
|
+
* Announce the beginning of processing for quadrant `q`.
|
|
85
|
+
* @param _reversed whether `q.reverse()` was invoked before this call for symmetry reasons. If so, arcs will be
|
|
86
|
+
* announced in the opposite order and with the opposite orientation.
|
|
87
|
+
* @return whether to process `q`
|
|
88
|
+
*/
|
|
89
|
+
announceQuadrantBegin(_q: QuadrantFractions, _reversed: boolean): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Retrieve the fraction preceding the input fraction in process order.
|
|
92
|
+
* * This optional callback facilitates processors like [[AdaptiveSubdivisionQ1ErrorProcessor]] whose implementation
|
|
93
|
+
* of [[announceArc]] depends upon the result of the previous invocation of [[announceArc]].
|
|
94
|
+
* @param f0 fraction to look up
|
|
95
|
+
* @return fraction preceding f0 in process order, or undefined if no such fraction
|
|
96
|
+
*/
|
|
97
|
+
getPreviousFraction?(f0: number): number | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Announce a circular arc approximating the elliptical arc E between the given fractions.
|
|
100
|
+
* * The given fractions are different. If `announceQuadrantBegin` was invoked with `reversed === false` then
|
|
101
|
+
* `fPrev < f0 < f1`; otherwise, `fPrev > f0 > f1`.
|
|
102
|
+
* @param _arc circular arc that interpolates E at f0 and f1. Processor can capture `arc`; it is unused afterwards.
|
|
103
|
+
* @param _fPrev fractional parameter of E used to define the 3-point parent circle through the points at `fPrev`,
|
|
104
|
+
* `f0`, and `f1` from which `arc` was constructed. If undefined, `arc` was generated from the circle defined by
|
|
105
|
+
* the points at `f0` and `f1` and one of their tangents.
|
|
106
|
+
* @param _f0 fractional parameter of E at which point `arc` starts
|
|
107
|
+
* @param _f1 fractional parameter of E at which point `arc` ends
|
|
108
|
+
*/
|
|
109
|
+
announceArc(_arc: Arc3d, _fPrev: number | undefined, _f0: number, _f1: number): void;
|
|
110
|
+
/**
|
|
111
|
+
* Announce the end of processing for quadrant `q`.
|
|
112
|
+
* @param _reversed whether `q.reverse()` was invoked before processing (see [[announceQuadrantBegin]]). If so,
|
|
113
|
+
* after this call `q.reverse()` is invoked again.
|
|
114
|
+
*/
|
|
115
|
+
announceQuadrantEnd(_q: QuadrantFractions, _reversed: boolean): void;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Context for sampling a non-circular Arc3d and for constructing an approximation to it based on interpolation
|
|
119
|
+
* of the samples.
|
|
120
|
+
* * [[EllipticalArcApproximationContext.constructCircularArcChainApproximation]] constructs a `CurveChain`
|
|
121
|
+
* approximation consisting of circular arcs.
|
|
122
|
+
* * Various sample methods are supported, cf. [[EllipticalArcApproximationOptions]].
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
export declare class EllipticalArcApproximationContext {
|
|
126
|
+
private _ellipticalArc;
|
|
127
|
+
private _localToWorld;
|
|
128
|
+
private _isValidEllipticalArc;
|
|
129
|
+
private static workPt0;
|
|
130
|
+
private static workPt1;
|
|
131
|
+
private static workPt2;
|
|
132
|
+
private static workRay;
|
|
133
|
+
/** Constructor, captures input */
|
|
134
|
+
private constructor();
|
|
135
|
+
/** Constructor, clones input. */
|
|
136
|
+
static create(ellipticalArc: Arc3d): EllipticalArcApproximationContext;
|
|
137
|
+
/**
|
|
138
|
+
* The arc to be sampled.
|
|
139
|
+
* * Its axes are forced to be perpendicular.
|
|
140
|
+
* * It is stored in world coordinates.
|
|
141
|
+
*/
|
|
142
|
+
get ellipticalArc(): Arc3d;
|
|
143
|
+
/**
|
|
144
|
+
* The rigid transformation that maps `ellipticalArc` from local coordinates to world coordinates.
|
|
145
|
+
* * In local coordinates, the arc center lies at the origin and its (perpendicular) axes of symmetry lie along
|
|
146
|
+
* the positive x- and y-axes.
|
|
147
|
+
*/
|
|
148
|
+
get localToWorld(): Transform;
|
|
149
|
+
/**
|
|
150
|
+
* Whether the elliptical arc is amenable to sampling.
|
|
151
|
+
* * The arc is valid if it is non-circular, has nonzero sweep, and has positive radii (nonsingular matrix).
|
|
152
|
+
*/
|
|
153
|
+
get isValidEllipticalArc(): boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Create a clone of the context's arc in local coordinates.
|
|
156
|
+
* @param fullSweep Optionally set full sweep on the returned local arc. Start angle is preserved.
|
|
157
|
+
* @returns local arc, or undefined if the arc is invalid
|
|
158
|
+
*/
|
|
159
|
+
cloneLocalArc(fullSweep?: boolean): Arc3d | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* Process structured sample data for the given elliptical arc.
|
|
162
|
+
* * Circular arcs are announced to the processor for each sample interval in each quadrant.
|
|
163
|
+
* * Each quadrant is processed separately to allow the elliptical arc's axis points and tangents to be interpolated.
|
|
164
|
+
* * A 2-point plus tangent construction is used to create the first and last circular arc in each quadrant.
|
|
165
|
+
* * Symmetry of the announced circular arcs matching that of a multi-quadrant spanning elliptical arc is ensured by
|
|
166
|
+
* processing the samples consistently, starting along the elliptical arc's major axis in each quadrant.
|
|
167
|
+
* @param ellipticalArc source arc to approximate
|
|
168
|
+
* @param quadrants structured samples, may be temporarily reversed for symmetry
|
|
169
|
+
* @param processor callbacks for handling the constructed arcs
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
static processQuadrantFractions(ellipticalArc: Arc3d, quadrants: QuadrantFractions[], processor: QuadrantFractionsProcessor): void;
|
|
173
|
+
/**
|
|
174
|
+
* Compute the maximum error of the circular arc chain approximation determined by the given samples.
|
|
175
|
+
* * This is measured by the longest perpendicular between the elliptical arc and its approximation.
|
|
176
|
+
* @param samples structured sample data from the instance's elliptical arc.
|
|
177
|
+
* @return details of the perpendicular measuring the max approximation error, or undefined if no such perpendicular.
|
|
178
|
+
* For each of `detailA` and `detailB`:
|
|
179
|
+
* * `point` is the end of the perpendicular on each curve
|
|
180
|
+
* * `fraction` is the curve parameter of the point
|
|
181
|
+
* * `a` is the distance between the points.
|
|
182
|
+
* @internal
|
|
183
|
+
*/
|
|
184
|
+
computeApproximationError(samples: QuadrantFractions[]): CurveLocationDetailPair | undefined;
|
|
185
|
+
/**
|
|
186
|
+
* Compute samples for the elliptical arc as fraction parameters.
|
|
187
|
+
* * This method houses the sampling framework for all sampling methods, which are customized via implementations
|
|
188
|
+
* of the [[EllipticalArcSampler]] interface.
|
|
189
|
+
* * Note that the returned samples are fractions in the parameterization of the context's arc (whose axes have been
|
|
190
|
+
* forced to be perpendicular), not the input arc passed into the context's constructor.
|
|
191
|
+
* @param options options that determine how the elliptical arc is sampled.
|
|
192
|
+
* @param structuredOutput flag indicating output format as follows:
|
|
193
|
+
* * If false (default), return all fractions in one sorted (increasing), deduplicated array (a full ellipse includes
|
|
194
|
+
* both 0 and 1).
|
|
195
|
+
* * If true, fractions are assembled by quadrants:
|
|
196
|
+
* * Each [[QuadrantFractions]] object holds at least three sorted (increasing), deduplicated fractions in a
|
|
197
|
+
* specified quadrant of the arc.
|
|
198
|
+
* * If only two fractions would be computed for a given `QuadrantFractions`, their midpoint is inserted to enable
|
|
199
|
+
* tangent interpolation at both ends. Such a quadrant `q` is marked with `q.averageAdded = true`.
|
|
200
|
+
* * The `QuadrantFractions` objects themselves are sorted by increasing order of the fractions they contain.
|
|
201
|
+
* * If the arc sweep spans adjacent quadrants, the fraction bordering the quadrants appears in both `QuadrantFractions`.
|
|
202
|
+
* * If the arc starts and ends in the same quadrant, two `QuadrantFractions` objects can be returned.
|
|
203
|
+
* * This means there are between 1 and 5 objects in the `QuadrantFractions` array.
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
computeSampleFractions(options: EllipticalArcApproximationOptions, structuredOutput?: boolean): QuadrantFractions[] | number[];
|
|
207
|
+
/** Construct a circular arc chain approximation to the elliptical arc. */
|
|
208
|
+
constructCircularArcChainApproximation(options?: EllipticalArcApproximationOptions): CurveChain | undefined;
|
|
209
|
+
}
|
|
210
|
+
export {};
|
|
211
|
+
//# sourceMappingURL=EllipticalArcApproximationContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EllipticalArcApproximationContext.d.ts","sourceRoot":"","sources":["../../../../src/curve/internalContexts/EllipticalArcApproximationContext.ts"],"names":[],"mappings":"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"}
|