@itwin/core-geometry 4.9.0-dev.8 → 4.9.0
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 +41 -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
package/lib/cjs/Geometry.js
CHANGED
|
@@ -115,13 +115,13 @@ var PolygonLocation;
|
|
|
115
115
|
* @public
|
|
116
116
|
*/
|
|
117
117
|
class Geometry {
|
|
118
|
-
/** Test if absolute value of x is
|
|
118
|
+
/** Test if the absolute value of x is at least [[largeCoordinateResult]]. */
|
|
119
119
|
static isLargeCoordinateResult(x) {
|
|
120
|
-
return x
|
|
120
|
+
return x >= this.largeCoordinateResult || x <= -this.largeCoordinateResult;
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
|
-
* Test if absolute value of x is
|
|
124
|
-
* @deprecated in 4.x. Use
|
|
123
|
+
* Test if the absolute value of x is at least [[largeCoordinateResult]].
|
|
124
|
+
* @deprecated in 4.x. Use [[isLargeCoordinateResult]].
|
|
125
125
|
*/
|
|
126
126
|
static isHugeCoordinate(x) {
|
|
127
127
|
return Geometry.isLargeCoordinateResult(x);
|
|
@@ -131,47 +131,50 @@ class Geometry {
|
|
|
131
131
|
return (x & (0x01)) === 1; // bitwise operation
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
|
-
* Correct
|
|
135
|
-
*
|
|
136
|
-
*
|
|
134
|
+
* Correct a small distance.
|
|
135
|
+
* @param distance metric value to test
|
|
136
|
+
* @param replacement value to return if `distance` is too small. Default is zero.
|
|
137
|
+
* @returns `distance` if it is defined and has absolute value greater than [[smallMetricDistance]];
|
|
138
|
+
* otherwise returns `replacement`
|
|
137
139
|
*/
|
|
138
140
|
static correctSmallMetricDistance(distance, replacement = 0.0) {
|
|
139
|
-
if (distance === undefined || Math.abs(distance)
|
|
141
|
+
if (distance === undefined || Math.abs(distance) <= Geometry.smallMetricDistance) {
|
|
140
142
|
return replacement;
|
|
141
143
|
}
|
|
142
144
|
return distance;
|
|
143
145
|
}
|
|
144
146
|
/**
|
|
145
|
-
* Correct
|
|
146
|
-
* @param fraction
|
|
147
|
-
* @param replacement value to return if `fraction` is too small
|
|
148
|
-
* @returns `fraction` if
|
|
147
|
+
* Correct a small fraction.
|
|
148
|
+
* @param fraction fraction to test
|
|
149
|
+
* @param replacement value to return if `fraction` is too small. Default is zero.
|
|
150
|
+
* @returns `fraction` if it is defined and has absolute value greater than [[Geometry.smallFraction]];
|
|
151
|
+
* otherwise returns `replacement`
|
|
149
152
|
*/
|
|
150
153
|
static correctSmallFraction(fraction, replacement = 0.0) {
|
|
151
|
-
if (fraction === undefined || Math.abs(fraction)
|
|
154
|
+
if (fraction === undefined || Math.abs(fraction) <= Geometry.smallFraction) {
|
|
152
155
|
return replacement;
|
|
153
156
|
}
|
|
154
157
|
return fraction;
|
|
155
158
|
}
|
|
156
159
|
/**
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
+
* Compute the inverse of `distance`, checking for safe division.
|
|
161
|
+
* @returns `1/distance` if the absolute value of `distance` exceeds [[smallMetricDistance]];
|
|
162
|
+
* otherwise returns `undefined`.
|
|
160
163
|
*/
|
|
161
164
|
static inverseMetricDistance(distance) {
|
|
162
165
|
return (Math.abs(distance) <= Geometry.smallMetricDistance) ? undefined : 1.0 / distance;
|
|
163
166
|
}
|
|
164
167
|
/**
|
|
165
|
-
* Return the inverse of `distanceSquared
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
+
* Return the inverse of `distanceSquared`, checking for safe division.
|
|
169
|
+
* @returns `1/distanceSquared` if the absolute value of `distanceSquared` exceeds [[smallMetricDistanceSquared]];
|
|
170
|
+
* otherwise returns `undefined`.
|
|
168
171
|
*/
|
|
169
172
|
static inverseMetricDistanceSquared(distanceSquared) {
|
|
170
173
|
return (Math.abs(distanceSquared) <= Geometry.smallMetricDistanceSquared) ? undefined : 1.0 / distanceSquared;
|
|
171
174
|
}
|
|
172
175
|
/**
|
|
173
176
|
* Boolean test for metric coordinate near-equality (i.e., if `x` and `y` are almost equal) using `tolerance`.
|
|
174
|
-
* *
|
|
177
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
175
178
|
*/
|
|
176
179
|
static isSameCoordinate(x, y, tolerance = Geometry.smallMetricDistance) {
|
|
177
180
|
let d = x - y;
|
|
@@ -189,7 +192,7 @@ class Geometry {
|
|
|
189
192
|
/**
|
|
190
193
|
* Boolean test for metric coordinate pair near-equality (i.e., if `x0` and `x1` are almost equal
|
|
191
194
|
* and `y0` and `y1` are almost equal) using `tolerance`.
|
|
192
|
-
* *
|
|
195
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
193
196
|
*/
|
|
194
197
|
static isSameCoordinateXY(x0, y0, x1, y1, tolerance = Geometry.smallMetricDistance) {
|
|
195
198
|
let d = x1 - x0;
|
|
@@ -205,21 +208,21 @@ class Geometry {
|
|
|
205
208
|
/**
|
|
206
209
|
* Boolean test for squared metric coordinate near-equality (i.e., if `sqrt(x)` and `sqrt(y)` are
|
|
207
210
|
* almost equal) using `tolerance`.
|
|
208
|
-
* *
|
|
211
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
209
212
|
*/
|
|
210
213
|
static isSameCoordinateSquared(x, y, tolerance = Geometry.smallMetricDistance) {
|
|
211
214
|
return Math.abs(Math.sqrt(x) - Math.sqrt(y)) <= tolerance;
|
|
212
215
|
}
|
|
213
216
|
/**
|
|
214
217
|
* Boolean test for small `dataA.distance(dataB)` within `tolerance`.
|
|
215
|
-
* *
|
|
218
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
216
219
|
*/
|
|
217
220
|
static isSamePoint3d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
218
221
|
return dataA.distance(dataB) <= tolerance;
|
|
219
222
|
}
|
|
220
223
|
/**
|
|
221
224
|
* Boolean test for small xyz-distance within `tolerance`.
|
|
222
|
-
* *
|
|
225
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
223
226
|
* * Note that Point3d and Vector3d are both derived from XYZ, so this method tolerates mixed types.
|
|
224
227
|
*/
|
|
225
228
|
static isSameXYZ(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
@@ -227,28 +230,28 @@ class Geometry {
|
|
|
227
230
|
}
|
|
228
231
|
/**
|
|
229
232
|
* Boolean test for small xy-distance (ignoring z) within `tolerance`.
|
|
230
|
-
* *
|
|
233
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
231
234
|
*/
|
|
232
235
|
static isSamePoint3dXY(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
233
236
|
return dataA.distanceXY(dataB) <= tolerance;
|
|
234
237
|
}
|
|
235
238
|
/**
|
|
236
239
|
* Boolean test for small xyz-distance within `tolerance`.
|
|
237
|
-
* *
|
|
240
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
238
241
|
*/
|
|
239
242
|
static isSameVector3d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
240
243
|
return dataA.distance(dataB) <= tolerance;
|
|
241
244
|
}
|
|
242
245
|
/**
|
|
243
246
|
* Boolean test for small xy-distance within `tolerance`.
|
|
244
|
-
* *
|
|
247
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
245
248
|
*/
|
|
246
249
|
static isSamePoint2d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
247
250
|
return dataA.distance(dataB) <= tolerance;
|
|
248
251
|
}
|
|
249
252
|
/**
|
|
250
253
|
* Boolean test for small xy-distance within `tolerance`.
|
|
251
|
-
* *
|
|
254
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
252
255
|
*/
|
|
253
256
|
static isSameVector2d(dataA, dataB, tolerance = Geometry.smallMetricDistance) {
|
|
254
257
|
return dataA.distance(dataB) <= tolerance;
|
|
@@ -300,15 +303,19 @@ class Geometry {
|
|
|
300
303
|
return 0;
|
|
301
304
|
}
|
|
302
305
|
/**
|
|
303
|
-
* Test if `value` is
|
|
304
|
-
* * This is appropriate if `value` is
|
|
306
|
+
* Test if `value` is at most [[smallFraction]] in absolute value.
|
|
307
|
+
* * This is appropriate if `value` is known to be a fraction.
|
|
305
308
|
*/
|
|
306
309
|
static isSmallRelative(value) {
|
|
307
|
-
return Math.abs(value)
|
|
310
|
+
return Math.abs(value) <= Geometry.smallFraction;
|
|
308
311
|
}
|
|
309
|
-
/** Test if `value` is
|
|
312
|
+
/** Test if `value` is at most [[smallAngleRadians]] in absolute value. */
|
|
310
313
|
static isSmallAngleRadians(value) {
|
|
311
|
-
return Math.abs(value)
|
|
314
|
+
return Math.abs(value) <= Geometry.smallAngleRadians;
|
|
315
|
+
}
|
|
316
|
+
/** Test if `value` is at most [[smallAngleRadiansSquared]] in absolute value. */
|
|
317
|
+
static isSmallAngleRadiansSquared(value) {
|
|
318
|
+
return Math.abs(value) <= Geometry.smallAngleRadiansSquared;
|
|
312
319
|
}
|
|
313
320
|
/**
|
|
314
321
|
* Returns `true` if both values are `undefined` or if both are defined and almost equal within tolerance.
|
|
@@ -326,16 +333,25 @@ class Geometry {
|
|
|
326
333
|
return true;
|
|
327
334
|
}
|
|
328
335
|
/**
|
|
329
|
-
* Toleranced equality test
|
|
330
|
-
*
|
|
336
|
+
* Toleranced equality test.
|
|
337
|
+
* @param tolerance relative tolerance. Default value is [[smallAngleRadians]].
|
|
338
|
+
* @returns true if and only if `a` and `b` are almost equal.
|
|
331
339
|
*/
|
|
332
340
|
static isAlmostEqualNumber(a, b, tolerance = Geometry.smallAngleRadians) {
|
|
333
341
|
const sumAbs = 1.0 + Math.abs(a) + Math.abs(b);
|
|
334
342
|
return Math.abs(a - b) <= tolerance * sumAbs;
|
|
335
343
|
}
|
|
344
|
+
/**
|
|
345
|
+
* Toleranced test for equality to at least one of two numbers.
|
|
346
|
+
* @param tolerance relative tolerance. Default value is [[smallAngleRadians]].
|
|
347
|
+
* @returns true if and only if `a` and `b` are almost equal, or `a` and `c` are almost equal.
|
|
348
|
+
*/
|
|
349
|
+
static isAlmostEqualEitherNumber(a, b, c, tolerance = Geometry.smallAngleRadians) {
|
|
350
|
+
return this.isAlmostEqualNumber(a, b, tolerance) || this.isAlmostEqualNumber(a, c, tolerance);
|
|
351
|
+
}
|
|
336
352
|
/**
|
|
337
353
|
* Toleranced equality test using tolerance `tolerance * ( 1 + abs(a.x) + abs(a.y) + abs(b.x) + abs(b.y) )`.
|
|
338
|
-
* *
|
|
354
|
+
* * [[smallAngleRadians]] is used if tolerance is `undefined`.
|
|
339
355
|
*/
|
|
340
356
|
static isAlmostEqualXAndY(a, b, tolerance = Geometry.smallAngleRadians) {
|
|
341
357
|
const tol = tolerance * (1.0 + Math.abs(a.x) + Math.abs(b.x) + Math.abs(a.y) + Math.abs(b.y));
|
|
@@ -343,16 +359,16 @@ class Geometry {
|
|
|
343
359
|
}
|
|
344
360
|
/**
|
|
345
361
|
* Toleranced equality test using caller-supplied `tolerance`.
|
|
346
|
-
* *
|
|
362
|
+
* * [[smallMetricDistance]] is used if tolerance is `undefined`.
|
|
347
363
|
*/
|
|
348
364
|
static isDistanceWithinTol(distance, tolerance = Geometry.smallMetricDistance) {
|
|
349
365
|
return Math.abs(distance) <= tolerance;
|
|
350
366
|
}
|
|
351
|
-
/** Toleranced equality test using
|
|
367
|
+
/** Toleranced equality test using [[smallMetricDistance]] tolerance. */
|
|
352
368
|
static isSmallMetricDistance(distance) {
|
|
353
369
|
return Math.abs(distance) <= Geometry.smallMetricDistance;
|
|
354
370
|
}
|
|
355
|
-
/** Toleranced equality test using
|
|
371
|
+
/** Toleranced equality test using [[smallMetricDistanceSquared]] tolerance. */
|
|
356
372
|
static isSmallMetricDistanceSquared(distanceSquared) {
|
|
357
373
|
return Math.abs(distanceSquared) <= Geometry.smallMetricDistanceSquared;
|
|
358
374
|
}
|
|
@@ -755,11 +771,13 @@ class Geometry {
|
|
|
755
771
|
* Return `numerator` divided by `denominator`.
|
|
756
772
|
* @param numerator the numerator
|
|
757
773
|
* @param denominator the denominator
|
|
758
|
-
* @returns return `numerator/denominator` but if the ratio exceeds
|
|
774
|
+
* @returns return `numerator/denominator` but if the ratio exceeds [[largeFractionResult]],
|
|
759
775
|
* return `undefined`.
|
|
760
776
|
*/
|
|
761
777
|
static conditionalDivideFraction(numerator, denominator) {
|
|
762
|
-
if (
|
|
778
|
+
if (0 === denominator)
|
|
779
|
+
return undefined;
|
|
780
|
+
if (Math.abs(denominator) * Geometry.largeFractionResult >= Math.abs(numerator))
|
|
763
781
|
return numerator / denominator;
|
|
764
782
|
return undefined;
|
|
765
783
|
}
|
|
@@ -767,7 +785,7 @@ class Geometry {
|
|
|
767
785
|
* Return `numerator` divided by `denominator`.
|
|
768
786
|
* @param numerator the numerator
|
|
769
787
|
* @param denominator the denominator
|
|
770
|
-
* @returns return `numerator/denominator` but if the ratio exceeds
|
|
788
|
+
* @returns return `numerator/denominator` but if the ratio exceeds [[largeFractionResult]],
|
|
771
789
|
* return `defaultResult`.
|
|
772
790
|
*/
|
|
773
791
|
static safeDivideFraction(numerator, denominator, defaultResult) {
|
|
@@ -784,7 +802,9 @@ class Geometry {
|
|
|
784
802
|
* @returns return `numerator/denominator` but if the ratio exceeds `largestResult`, return `undefined`.
|
|
785
803
|
*/
|
|
786
804
|
static conditionalDivideCoordinate(numerator, denominator, largestResult = Geometry.largeCoordinateResult) {
|
|
787
|
-
if (
|
|
805
|
+
if (0 === denominator)
|
|
806
|
+
return undefined;
|
|
807
|
+
if (Math.abs(denominator * largestResult) >= Math.abs(numerator))
|
|
788
808
|
return numerator / denominator;
|
|
789
809
|
return undefined;
|
|
790
810
|
}
|
|
@@ -839,7 +859,7 @@ class Geometry {
|
|
|
839
859
|
}
|
|
840
860
|
/**
|
|
841
861
|
* For a line `f(x)` where `f(x0) = f0` and `f(x1) = f1`, return the `x` value at which `f(x) = fTarget`.
|
|
842
|
-
* Return `defaultResult` if `(fTarget - f0) / (f1 - f0)` exceeds
|
|
862
|
+
* Return `defaultResult` if `(fTarget - f0) / (f1 - f0)` exceeds [[largeFractionResult]].
|
|
843
863
|
*/
|
|
844
864
|
static inverseInterpolate(x0, f0, x1, f1, fTarget = 0, defaultResult) {
|
|
845
865
|
/**
|
|
@@ -854,7 +874,7 @@ class Geometry {
|
|
|
854
874
|
}
|
|
855
875
|
/**
|
|
856
876
|
* For a line `f(x)` where `f(0) = f0` and `f(1) = f1`, return the `x` value at which `f(x) = fTarget`
|
|
857
|
-
* Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds
|
|
877
|
+
* Return `undefined` if `(fTarget - f0) / (f1 - f0)` exceeds [[largeFractionResult]].
|
|
858
878
|
*/
|
|
859
879
|
static inverseInterpolate01(f0, f1, fTarget = 0) {
|
|
860
880
|
// Line equation is fTarget-f0 = (f1-f0)*x so x = (fTarget-f0)/(f1-f0)
|
|
@@ -925,12 +945,12 @@ class Geometry {
|
|
|
925
945
|
return apply01 ? x >= 0.0 && x <= 1.0 : true;
|
|
926
946
|
}
|
|
927
947
|
/**
|
|
928
|
-
* Test if `x` is in the interval [0,1] for a given
|
|
929
|
-
* * Make sure to pass a positive `tolerance` because there is no check for that in the code.
|
|
948
|
+
* Test if `x` is in the interval [0,1] for a given `tolerance`.
|
|
930
949
|
* @param x value to test.
|
|
931
|
-
* @param tolerance the
|
|
950
|
+
* @param tolerance allowable distance outside the interval within which to classify `x` as inside.
|
|
932
951
|
*/
|
|
933
952
|
static isIn01WithTolerance(x, tolerance) {
|
|
953
|
+
tolerance = Math.abs(tolerance);
|
|
934
954
|
return x + tolerance >= 0.0 && x - tolerance <= 1.0;
|
|
935
955
|
}
|
|
936
956
|
/**
|
|
@@ -1072,11 +1092,11 @@ class Geometry {
|
|
|
1072
1092
|
exports.Geometry = Geometry;
|
|
1073
1093
|
/** Tolerance for small distances in metric coordinates. */
|
|
1074
1094
|
Geometry.smallMetricDistance = 1.0e-6;
|
|
1075
|
-
/** Square of
|
|
1095
|
+
/** Square of [[smallMetricDistance]]. */
|
|
1076
1096
|
Geometry.smallMetricDistanceSquared = 1.0e-12;
|
|
1077
1097
|
/** Tolerance for small angle measured in radians. */
|
|
1078
1098
|
Geometry.smallAngleRadians = 1.0e-12;
|
|
1079
|
-
/** Square of
|
|
1099
|
+
/** Square of [[smallAngleRadians]]. */
|
|
1080
1100
|
Geometry.smallAngleRadiansSquared = 1.0e-24;
|
|
1081
1101
|
/** Tolerance for small angle measured in degrees. */
|
|
1082
1102
|
Geometry.smallAngleDegrees = 5.7e-11;
|
|
@@ -1086,7 +1106,7 @@ Geometry.smallAngleSeconds = 2e-7;
|
|
|
1086
1106
|
Geometry.smallFraction = 1.0e-10;
|
|
1087
1107
|
/** Tight tolerance near machine precision (unitless). Useful for snapping values, e.g., to 0 or 1. */
|
|
1088
1108
|
Geometry.smallFloatingPoint = 1.0e-15;
|
|
1089
|
-
/** Radians value for full circle 2PI radians minus
|
|
1109
|
+
/** Radians value for full circle 2PI radians minus [[smallAngleRadians]]. */
|
|
1090
1110
|
Geometry.fullCircleRadiansMinusSmallAngle = 2.0 * Math.PI - Geometry.smallAngleRadians;
|
|
1091
1111
|
/**
|
|
1092
1112
|
* Numeric value that may be considered large for a ratio of numbers.
|
|
@@ -1095,12 +1115,12 @@ Geometry.fullCircleRadiansMinusSmallAngle = 2.0 * Math.PI - Geometry.smallAngleR
|
|
|
1095
1115
|
Geometry.largeFractionResult = 1.0e10;
|
|
1096
1116
|
/**
|
|
1097
1117
|
* Numeric value that may considered large for numbers expected to be coordinates.
|
|
1098
|
-
* * This allows larger results than
|
|
1118
|
+
* * This allows larger results than [[largeFractionResult]].
|
|
1099
1119
|
*/
|
|
1100
1120
|
Geometry.largeCoordinateResult = 1.0e13;
|
|
1101
1121
|
/**
|
|
1102
1122
|
* Numeric value that may considered infinite for metric coordinates.
|
|
1103
|
-
* @deprecated in 4.x. Use
|
|
1123
|
+
* @deprecated in 4.x. Use [[largeCoordinateResult]].
|
|
1104
1124
|
* * This coordinate should be used only as a placeholder indicating "at infinity" -- computing actual
|
|
1105
1125
|
* points at this coordinate invites numerical problems.
|
|
1106
1126
|
*/
|