@itwin/core-geometry 4.9.0-dev.2 → 4.9.0-dev.20
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 +37 -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 +128 -34
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +174 -20
- 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 +2 -3
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +2 -3
- 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/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +13 -6
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.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 +128 -34
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +172 -19
- 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 +2 -3
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +2 -3
- 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/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +13 -6
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.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
|
@@ -76,6 +76,6 @@ export declare class PolylineCompressionContext {
|
|
|
76
76
|
* @param points
|
|
77
77
|
* @param perpendicularDistance
|
|
78
78
|
*/
|
|
79
|
-
static compressColinearWrapInPlace(points: Point3d[],
|
|
79
|
+
static compressColinearWrapInPlace(points: Point3d[], duplicatePointTolerance: number, colinearPointTolerance: number): void;
|
|
80
80
|
}
|
|
81
81
|
//# sourceMappingURL=PolylineCompressionByEdgeOffset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolylineCompressionByEdgeOffset.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/PolylineCompressionByEdgeOffset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AAGtD;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,OAAO;IAKP,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,KAAK,CAAgC;IAE7C,yCAAyC;IACzC,OAAO,CAAC,iBAAiB,CAAS;IAClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;;;;;OAMG;IAGH,OAAO,CAAC,+BAA+B;IAcvC;;;;;OAKG;WACW,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IAMpG;;;;;;;;OAQG;WACW,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM;IAuBtI;;OAEG;WACW,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IA6BzF;;OAEG;WACW,kCAAkC,CAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM;IAgB7F;;OAEG;WACW,sCAAsC,CAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,EAAE,oBAAoB,SAAS;IAiCzI;;;;;OAKG;WACW,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"PolylineCompressionByEdgeOffset.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/PolylineCompressionByEdgeOffset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AAGtD;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,OAAO;IAKP,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,KAAK,CAAgC;IAE7C,yCAAyC;IACzC,OAAO,CAAC,iBAAiB,CAAS;IAClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+B;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;;;;;OAMG;IAGH,OAAO,CAAC,+BAA+B;IAcvC;;;;;OAKG;WACW,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,EAAE;IAMpG;;;;;;;;OAQG;WACW,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM;IAuBtI;;OAEG;WACW,gCAAgC,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IA6BzF;;OAEG;WACW,kCAAkC,CAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM;IAgB7F;;OAEG;WACW,sCAAsC,CAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,EAAE,oBAAoB,SAAS;IAiCzI;;;;;OAKG;WACW,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,uBAAuB,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM;CAqB7H"}
|
|
@@ -249,9 +249,9 @@ class PolylineCompressionContext {
|
|
|
249
249
|
* @param points
|
|
250
250
|
* @param perpendicularDistance
|
|
251
251
|
*/
|
|
252
|
-
static compressColinearWrapInPlace(points,
|
|
252
|
+
static compressColinearWrapInPlace(points, duplicatePointTolerance, colinearPointTolerance) {
|
|
253
253
|
const lastIndex = points.length - 1;
|
|
254
|
-
if (lastIndex >= 3 && points[0].distance(points[lastIndex]) <
|
|
254
|
+
if (lastIndex >= 3 && points[0].distance(points[lastIndex]) < duplicatePointTolerance) {
|
|
255
255
|
// indices of 3 points potentially colinear.
|
|
256
256
|
const indexA = lastIndex - 1;
|
|
257
257
|
const indexB = 0;
|
|
@@ -263,7 +263,7 @@ class PolylineCompressionContext {
|
|
|
263
263
|
const fraction = Geometry_1.Geometry.conditionalDivideFraction(uDotV, uDotU);
|
|
264
264
|
if (fraction !== undefined && fraction > 0.0 && fraction < 1.0) {
|
|
265
265
|
const h2 = vectorV.magnitudeSquared() - fraction * fraction * uDotU;
|
|
266
|
-
if (Math.sqrt(Math.abs(h2)) <
|
|
266
|
+
if (Math.sqrt(Math.abs(h2)) < colinearPointTolerance) {
|
|
267
267
|
points[0] = points[indexA];
|
|
268
268
|
points.pop();
|
|
269
269
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolylineCompressionByEdgeOffset.js","sourceRoot":"","sources":["../../../src/geometry3d/PolylineCompressionByEdgeOffset.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedReadWriteXYZCollection, IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3dArrayCarrier } from \"./Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\n\r\n// cspell:word Puecker\r\n/** context class for Puecker-Douglas polyline compression, viz https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm\r\n * @internal\r\n */\r\nexport class PolylineCompressionContext {\r\n /** Caller provides source and tolerance.\r\n * * pointer to source is retained, but contents of source are never modified.\r\n */\r\n private constructor(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, tolerance: number) {\r\n this._toleranceSquared = tolerance * tolerance;\r\n this._source = source;\r\n this._dest = dest;\r\n }\r\n private _source: IndexedXYZCollection;\r\n\r\n private _dest: IndexedReadWriteXYZCollection;\r\n\r\n /** Squared tolerance for equal point. */\r\n private _toleranceSquared: number;\r\n /** push (clone of) the point at index i from the source to the growing result.\r\n * * index is adjusted cyclically to source index range by modulo.\r\n */\r\n private acceptPointByIndex(i: number) {\r\n const point = this._source.getPoint3dAtCheckedPointIndex(this._source.cyclicIndex(i));\r\n if (point)\r\n this._dest.push(point);\r\n }\r\n /** work data used by find max deviation */\r\n private static _vector01: Vector3d = Vector3d.create();\r\n private static _vectorQ: Vector3d = Vector3d.create();\r\n /**\r\n * Return index of max magnitude of cross product of vectors (index to index+1) and (index to index+2)\r\n * * Return undefined if unable to find a nonzero cross product.\r\n * @param i0 first cross product central index.\r\n * @param i1 last cross product central index.\r\n */\r\n private indexOfMaxCrossProduct(index0: number, index1: number): number | undefined {\r\n let qMax = 0.0;\r\n let q;\r\n let indexMax: number | undefined;\r\n for (let index = index0; index <= index1; index++) {\r\n const iA = this._source.cyclicIndex(index);\r\n const iB = this._source.cyclicIndex(index + 1);\r\n const iC = this._source.cyclicIndex(index + 2);\r\n this._source.crossProductIndexIndexIndex(iA, iB, iC, PolylineCompressionContext._vectorQ);\r\n q = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n if (q > qMax) {\r\n qMax = q;\r\n indexMax = index;\r\n }\r\n }\r\n return indexMax;\r\n }\r\n\r\n /**\r\n * Return interior index where max deviation in excess of tolerance occurs.\r\n * @param i0 first index of interval\r\n * @param i1 INCLUSIVE final index\r\n */\r\n private indexOfMaxDeviation(index0: number, index1: number): number | undefined {\r\n const i0 = this._source.cyclicIndex(index0);\r\n const i1 = this._source.cyclicIndex(index1);\r\n let maxDeviation = this._toleranceSquared;\r\n let maxDeviationIndex;\r\n let numerator;\r\n let distanceSquared;\r\n let s;\r\n let i;\r\n this._source.vectorIndexIndex(i0, i1, PolylineCompressionContext._vector01)!;\r\n const denominator = PolylineCompressionContext._vector01.magnitudeSquared();\r\n for (let index = index0 + 1; index < index1; index++) {\r\n i = this._source.cyclicIndex(index);\r\n this._source.vectorIndexIndex(i0, i, PolylineCompressionContext._vectorQ);\r\n numerator = PolylineCompressionContext._vector01.dotProduct(PolylineCompressionContext._vectorQ);\r\n if (numerator <= 0) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else if (numerator > denominator) {\r\n this._source.vectorIndexIndex(i1, i, PolylineCompressionContext._vectorQ);\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else {\r\n s = numerator / denominator;\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n }\r\n if (distanceSquared > maxDeviation) {\r\n maxDeviation = distanceSquared;\r\n maxDeviationIndex = index;\r\n }\r\n }\r\n return maxDeviationIndex;\r\n }\r\n /**\r\n *\r\n * @param i0 first active point index\r\n * @param i1 last active point index (INCLUSIVE -- not \"one beyond\")\r\n * @param chordTolerance\r\n * @param result\r\n */\r\n // ASSUME index i0 is already saved.\r\n // ASSUME point i\r\n private recursiveCompressByChordErrorGo(i0: number, i1: number) {\r\n if (i1 === i0 + 1) {\r\n this.acceptPointByIndex(i1);\r\n return;\r\n }\r\n const distantPointIndex = this.indexOfMaxDeviation(i0, i1);\r\n if (distantPointIndex === undefined) {\r\n this.acceptPointByIndex(i1); // which compresses out some points.\r\n } else {\r\n this.recursiveCompressByChordErrorGo(i0, distantPointIndex);\r\n this.recursiveCompressByChordErrorGo(distantPointIndex, i1);\r\n }\r\n }\r\n // cspell:word Peucker\r\n /**\r\n * Return a point array with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * @param source input points.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressPoint3dArrayByChordError(source: Point3d[], chordTolerance: number): Point3d[] {\r\n const source1 = new Point3dArrayCarrier(source);\r\n const dest1 = new Point3dArrayCarrier([]);\r\n this.compressCollectionByChordError(source1, dest1, chordTolerance);\r\n return dest1.data;\r\n }\r\n /**\r\n * * Return a polyline with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * * Global search for vertices that are close to edges between widely separated neighbors.\r\n * * Recurses to smaller subsets.\r\n * @param source input points\r\n * @param dest output points. Must be different from source.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressCollectionByChordError(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, chordTolerance: number) {\r\n dest.clear();\r\n const n = source.length;\r\n if (n === 1) {\r\n dest.push(source.getPoint3dAtCheckedPointIndex(0)!);\r\n return;\r\n }\r\n const context = new PolylineCompressionContext(source, dest, chordTolerance);\r\n // Do compression on inclusive interval from indexA to indexB, with indices interpreted cyclically if closed\r\n let indexA = 0;\r\n let indexB = n - 1;\r\n if (n > 2 && source.distanceIndexIndex(0, n - 1)! <= chordTolerance) {\r\n // cyclic data. It is possible that the wrap point itself has to be seen as an internal point.\r\n // do the search from point index where there is a large triangle . ..\r\n const maxCrossProductIndex = context.indexOfMaxCrossProduct(0, n - 1);\r\n if (maxCrossProductIndex !== undefined) {\r\n indexA = maxCrossProductIndex + 1;\r\n indexB = indexA + n;\r\n }\r\n }\r\n context.acceptPointByIndex(indexA);\r\n context.recursiveCompressByChordErrorGo(indexA, indexB);\r\n }\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByShortEdgeLength(data: GrowableXYZArray, edgeLength: number) {\r\n const n = data.length;\r\n if (n < 2)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n // back up from final point ..\r\n let indexB = n - 1;\r\n while (indexB > 0 && data.distanceIndexIndex(indexB - 1, n - 1)! < edgeLength)\r\n indexB--;\r\n if (indexB === 0) {\r\n // Theres only one point there.\r\n data.length = 1;\r\n return;\r\n }\r\n // we want the exact bits of the final point even if others were nearby ..\r\n if (indexB < n - 1)\r\n data.moveIndexToIndex(n - 1, indexB);\r\n let candidateIndex = lastAcceptedIndex + 1;\r\n while (candidateIndex <= indexB) {\r\n const d = data.distanceIndexIndex(lastAcceptedIndex, candidateIndex)!;\r\n if (d >= edgeLength) {\r\n data.moveIndexToIndex(candidateIndex, lastAcceptedIndex + 1);\r\n lastAcceptedIndex++;\r\n }\r\n candidateIndex++;\r\n }\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceBySmallTriangleArea(data: GrowableXYZArray, triangleArea: number) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const cross = Vector3d.create();\r\n for (let i1 = 1; i1 + 1 < n; i1++) {\r\n data.crossProductIndexIndexIndex(lastAcceptedIndex, i1, i1 + 1, cross);\r\n if (0.5 * cross.magnitude() > triangleArea) {\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n }\r\n data.moveIndexToIndex(n - 1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to edge between neighbors.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByPerpendicularDistance(data: GrowableXYZArray, perpendicularDistance: number, maxExtensionFraction = 1.0001) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const vector01 = PolylineCompressionContext._vector01;\r\n const vectorQ = PolylineCompressionContext._vectorQ;\r\n let distanceSquared;\r\n const perpendicularDistanceSquared = perpendicularDistance * perpendicularDistance;\r\n let denominator;\r\n let i1 = 1;\r\n for (; i1 + 1 < n; i1++) {\r\n data.vectorIndexIndex(lastAcceptedIndex, i1 + 1, vector01);\r\n data.vectorIndexIndex(lastAcceptedIndex, i1, vectorQ);\r\n denominator = vector01.magnitudeSquared();\r\n const s = Geometry.conditionalDivideFraction(vectorQ.dotProduct(vector01), denominator);\r\n if (s !== undefined) {\r\n if (s >= 0.0 && s <= maxExtensionFraction) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n if (distanceSquared <= perpendicularDistanceSquared) {\r\n // force accept of point i1+1 .\r\n data.moveIndexToIndex(i1 + 1, ++lastAcceptedIndex);\r\n i1 = i1 + 1;\r\n continue;\r\n }\r\n }\r\n }\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n if (i1 < n)\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n /**\r\n * IF the first and last points are close AND first and last segments are colinear, remove first and last points. Prior second to last becomes replicated start and end.\r\n * * Expected to be called \"last\" after other compressions, so points \"next to\" shared first and last are good to keep.\r\n * @param points\r\n * @param perpendicularDistance\r\n */\r\n public static compressColinearWrapInPlace(points: Point3d[], tolerance: number) {\r\n const lastIndex = points.length - 1;\r\n if (lastIndex >= 3 && points[0].distance(points[lastIndex]) < tolerance) {\r\n // indices of 3 points potentially colinear.\r\n const indexA = lastIndex - 1;\r\n const indexB = 0;\r\n const indexC = 1;\r\n const vectorU = Vector3d.createStartEnd(points[indexA], points[indexC]);\r\n const vectorV = Vector3d.createStartEnd(points[indexA], points[indexB]);\r\n const uDotU = vectorU.dotProduct(vectorU);\r\n const uDotV = vectorU.dotProduct(vectorV);\r\n const fraction = Geometry.conditionalDivideFraction(uDotV, uDotU);\r\n if (fraction !== undefined && fraction > 0.0 && fraction < 1.0) {\r\n const h2 = vectorV.magnitudeSquared() - fraction * fraction * uDotU;\r\n if (Math.sqrt(Math.abs(h2)) < tolerance) {\r\n points[0] = points[indexA];\r\n points.pop();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PolylineCompressionByEdgeOffset.js","sourceRoot":"","sources":["../../../src/geometry3d/PolylineCompressionByEdgeOffset.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { IndexedReadWriteXYZCollection, IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3dArrayCarrier } from \"./Point3dArrayCarrier\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\n\r\n// cspell:word Puecker\r\n/** context class for Puecker-Douglas polyline compression, viz https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm\r\n * @internal\r\n */\r\nexport class PolylineCompressionContext {\r\n /** Caller provides source and tolerance.\r\n * * pointer to source is retained, but contents of source are never modified.\r\n */\r\n private constructor(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, tolerance: number) {\r\n this._toleranceSquared = tolerance * tolerance;\r\n this._source = source;\r\n this._dest = dest;\r\n }\r\n private _source: IndexedXYZCollection;\r\n\r\n private _dest: IndexedReadWriteXYZCollection;\r\n\r\n /** Squared tolerance for equal point. */\r\n private _toleranceSquared: number;\r\n /** push (clone of) the point at index i from the source to the growing result.\r\n * * index is adjusted cyclically to source index range by modulo.\r\n */\r\n private acceptPointByIndex(i: number) {\r\n const point = this._source.getPoint3dAtCheckedPointIndex(this._source.cyclicIndex(i));\r\n if (point)\r\n this._dest.push(point);\r\n }\r\n /** work data used by find max deviation */\r\n private static _vector01: Vector3d = Vector3d.create();\r\n private static _vectorQ: Vector3d = Vector3d.create();\r\n /**\r\n * Return index of max magnitude of cross product of vectors (index to index+1) and (index to index+2)\r\n * * Return undefined if unable to find a nonzero cross product.\r\n * @param i0 first cross product central index.\r\n * @param i1 last cross product central index.\r\n */\r\n private indexOfMaxCrossProduct(index0: number, index1: number): number | undefined {\r\n let qMax = 0.0;\r\n let q;\r\n let indexMax: number | undefined;\r\n for (let index = index0; index <= index1; index++) {\r\n const iA = this._source.cyclicIndex(index);\r\n const iB = this._source.cyclicIndex(index + 1);\r\n const iC = this._source.cyclicIndex(index + 2);\r\n this._source.crossProductIndexIndexIndex(iA, iB, iC, PolylineCompressionContext._vectorQ);\r\n q = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n if (q > qMax) {\r\n qMax = q;\r\n indexMax = index;\r\n }\r\n }\r\n return indexMax;\r\n }\r\n\r\n /**\r\n * Return interior index where max deviation in excess of tolerance occurs.\r\n * @param i0 first index of interval\r\n * @param i1 INCLUSIVE final index\r\n */\r\n private indexOfMaxDeviation(index0: number, index1: number): number | undefined {\r\n const i0 = this._source.cyclicIndex(index0);\r\n const i1 = this._source.cyclicIndex(index1);\r\n let maxDeviation = this._toleranceSquared;\r\n let maxDeviationIndex;\r\n let numerator;\r\n let distanceSquared;\r\n let s;\r\n let i;\r\n this._source.vectorIndexIndex(i0, i1, PolylineCompressionContext._vector01)!;\r\n const denominator = PolylineCompressionContext._vector01.magnitudeSquared();\r\n for (let index = index0 + 1; index < index1; index++) {\r\n i = this._source.cyclicIndex(index);\r\n this._source.vectorIndexIndex(i0, i, PolylineCompressionContext._vectorQ);\r\n numerator = PolylineCompressionContext._vector01.dotProduct(PolylineCompressionContext._vectorQ);\r\n if (numerator <= 0) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else if (numerator > denominator) {\r\n this._source.vectorIndexIndex(i1, i, PolylineCompressionContext._vectorQ);\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared();\r\n } else {\r\n s = numerator / denominator;\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n }\r\n if (distanceSquared > maxDeviation) {\r\n maxDeviation = distanceSquared;\r\n maxDeviationIndex = index;\r\n }\r\n }\r\n return maxDeviationIndex;\r\n }\r\n /**\r\n *\r\n * @param i0 first active point index\r\n * @param i1 last active point index (INCLUSIVE -- not \"one beyond\")\r\n * @param chordTolerance\r\n * @param result\r\n */\r\n // ASSUME index i0 is already saved.\r\n // ASSUME point i\r\n private recursiveCompressByChordErrorGo(i0: number, i1: number) {\r\n if (i1 === i0 + 1) {\r\n this.acceptPointByIndex(i1);\r\n return;\r\n }\r\n const distantPointIndex = this.indexOfMaxDeviation(i0, i1);\r\n if (distantPointIndex === undefined) {\r\n this.acceptPointByIndex(i1); // which compresses out some points.\r\n } else {\r\n this.recursiveCompressByChordErrorGo(i0, distantPointIndex);\r\n this.recursiveCompressByChordErrorGo(distantPointIndex, i1);\r\n }\r\n }\r\n // cspell:word Peucker\r\n /**\r\n * Return a point array with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * @param source input points.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressPoint3dArrayByChordError(source: Point3d[], chordTolerance: number): Point3d[] {\r\n const source1 = new Point3dArrayCarrier(source);\r\n const dest1 = new Point3dArrayCarrier([]);\r\n this.compressCollectionByChordError(source1, dest1, chordTolerance);\r\n return dest1.data;\r\n }\r\n /**\r\n * * Return a polyline with a subset of the input points.\r\n * * This is a global analysis (Douglas-Peucker)\r\n * * Global search for vertices that are close to edges between widely separated neighbors.\r\n * * Recurses to smaller subsets.\r\n * @param source input points\r\n * @param dest output points. Must be different from source.\r\n * @param chordTolerance Points less than this distance from a retained edge may be ignored.\r\n */\r\n public static compressCollectionByChordError(source: IndexedXYZCollection, dest: IndexedReadWriteXYZCollection, chordTolerance: number) {\r\n dest.clear();\r\n const n = source.length;\r\n if (n === 1) {\r\n dest.push(source.getPoint3dAtCheckedPointIndex(0)!);\r\n return;\r\n }\r\n const context = new PolylineCompressionContext(source, dest, chordTolerance);\r\n // Do compression on inclusive interval from indexA to indexB, with indices interpreted cyclically if closed\r\n let indexA = 0;\r\n let indexB = n - 1;\r\n if (n > 2 && source.distanceIndexIndex(0, n - 1)! <= chordTolerance) {\r\n // cyclic data. It is possible that the wrap point itself has to be seen as an internal point.\r\n // do the search from point index where there is a large triangle . ..\r\n const maxCrossProductIndex = context.indexOfMaxCrossProduct(0, n - 1);\r\n if (maxCrossProductIndex !== undefined) {\r\n indexA = maxCrossProductIndex + 1;\r\n indexB = indexA + n;\r\n }\r\n }\r\n context.acceptPointByIndex(indexA);\r\n context.recursiveCompressByChordErrorGo(indexA, indexB);\r\n }\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByShortEdgeLength(data: GrowableXYZArray, edgeLength: number) {\r\n const n = data.length;\r\n if (n < 2)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n // back up from final point ..\r\n let indexB = n - 1;\r\n while (indexB > 0 && data.distanceIndexIndex(indexB - 1, n - 1)! < edgeLength)\r\n indexB--;\r\n if (indexB === 0) {\r\n // Theres only one point there.\r\n data.length = 1;\r\n return;\r\n }\r\n // we want the exact bits of the final point even if others were nearby ..\r\n if (indexB < n - 1)\r\n data.moveIndexToIndex(n - 1, indexB);\r\n let candidateIndex = lastAcceptedIndex + 1;\r\n while (candidateIndex <= indexB) {\r\n const d = data.distanceIndexIndex(lastAcceptedIndex, candidateIndex)!;\r\n if (d >= edgeLength) {\r\n data.moveIndexToIndex(candidateIndex, lastAcceptedIndex + 1);\r\n lastAcceptedIndex++;\r\n }\r\n candidateIndex++;\r\n }\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to predecessor.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceBySmallTriangleArea(data: GrowableXYZArray, triangleArea: number) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const cross = Vector3d.create();\r\n for (let i1 = 1; i1 + 1 < n; i1++) {\r\n data.crossProductIndexIndexIndex(lastAcceptedIndex, i1, i1 + 1, cross);\r\n if (0.5 * cross.magnitude() > triangleArea) {\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n }\r\n data.moveIndexToIndex(n - 1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n\r\n /** Copy points from source to dest, omitting those too close to edge between neighbors.\r\n * * First and last points are always preserved.\r\n */\r\n public static compressInPlaceByPerpendicularDistance(data: GrowableXYZArray, perpendicularDistance: number, maxExtensionFraction = 1.0001) {\r\n const n = data.length;\r\n if (n < 3)\r\n return;\r\n let lastAcceptedIndex = 0;\r\n const vector01 = PolylineCompressionContext._vector01;\r\n const vectorQ = PolylineCompressionContext._vectorQ;\r\n let distanceSquared;\r\n const perpendicularDistanceSquared = perpendicularDistance * perpendicularDistance;\r\n let denominator;\r\n let i1 = 1;\r\n for (; i1 + 1 < n; i1++) {\r\n data.vectorIndexIndex(lastAcceptedIndex, i1 + 1, vector01);\r\n data.vectorIndexIndex(lastAcceptedIndex, i1, vectorQ);\r\n denominator = vector01.magnitudeSquared();\r\n const s = Geometry.conditionalDivideFraction(vectorQ.dotProduct(vector01), denominator);\r\n if (s !== undefined) {\r\n if (s >= 0.0 && s <= maxExtensionFraction) {\r\n distanceSquared = PolylineCompressionContext._vectorQ.magnitudeSquared() - denominator * s * s;\r\n if (distanceSquared <= perpendicularDistanceSquared) {\r\n // force accept of point i1+1 .\r\n data.moveIndexToIndex(i1 + 1, ++lastAcceptedIndex);\r\n i1 = i1 + 1;\r\n continue;\r\n }\r\n }\r\n }\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n }\r\n if (i1 < n)\r\n data.moveIndexToIndex(i1, ++lastAcceptedIndex);\r\n data.length = lastAcceptedIndex + 1;\r\n }\r\n /**\r\n * IF the first and last points are close AND first and last segments are colinear, remove first and last points. Prior second to last becomes replicated start and end.\r\n * * Expected to be called \"last\" after other compressions, so points \"next to\" shared first and last are good to keep.\r\n * @param points\r\n * @param perpendicularDistance\r\n */\r\n public static compressColinearWrapInPlace(points: Point3d[], duplicatePointTolerance: number, colinearPointTolerance: number) {\r\n const lastIndex = points.length - 1;\r\n if (lastIndex >= 3 && points[0].distance(points[lastIndex]) < duplicatePointTolerance) {\r\n // indices of 3 points potentially colinear.\r\n const indexA = lastIndex - 1;\r\n const indexB = 0;\r\n const indexC = 1;\r\n const vectorU = Vector3d.createStartEnd(points[indexA], points[indexC]);\r\n const vectorV = Vector3d.createStartEnd(points[indexA], points[indexB]);\r\n const uDotU = vectorU.dotProduct(vectorU);\r\n const uDotV = vectorU.dotProduct(vectorV);\r\n const fraction = Geometry.conditionalDivideFraction(uDotV, uDotU);\r\n if (fraction !== undefined && fraction > 0.0 && fraction < 1.0) {\r\n const h2 = vectorV.magnitudeSquared() - fraction * fraction * uDotU;\r\n if (Math.sqrt(Math.abs(h2)) < colinearPointTolerance) {\r\n points[0] = points[indexA];\r\n points.pop();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -239,7 +239,7 @@ export declare class Range3d extends RangeBase implements LowAndHighXYZ, BeJSONF
|
|
|
239
239
|
* @param zFraction plane altitude within the 0..1 z fraction range
|
|
240
240
|
* @param upwardNormal true for CCW as viewed from above
|
|
241
241
|
* @param addClosure true to add closure edge back to the start
|
|
242
|
-
* @returns
|
|
242
|
+
* @returns rectangle points
|
|
243
243
|
*/
|
|
244
244
|
rectangleXY(zFraction?: number, upwardNormal?: boolean, addClosure?: boolean): Point3d[] | undefined;
|
|
245
245
|
/** Return the largest absolute value among any coordinates in the box corners. */
|
|
@@ -436,6 +436,11 @@ export declare class Range1d extends RangeBase {
|
|
|
436
436
|
get isAlmostZeroLength(): boolean;
|
|
437
437
|
/** Test if a number is within the range. */
|
|
438
438
|
containsX(x: number): boolean;
|
|
439
|
+
/**
|
|
440
|
+
* Test if a number is in within the open range.
|
|
441
|
+
* * This method differs from `containsX` by returning false if x equals either range extreme.
|
|
442
|
+
*/
|
|
443
|
+
containsXOpen(x: number): boolean;
|
|
439
444
|
/** Test of other range is within this range */
|
|
440
445
|
containsRange(other: Range1d): boolean;
|
|
441
446
|
/** Test if there is any intersection with other range */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Range.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/geometry3d/Range.ts"],"names":[],"mappings":"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"}
|
|
@@ -572,7 +572,7 @@ class Range3d extends RangeBase {
|
|
|
572
572
|
* @param zFraction plane altitude within the 0..1 z fraction range
|
|
573
573
|
* @param upwardNormal true for CCW as viewed from above
|
|
574
574
|
* @param addClosure true to add closure edge back to the start
|
|
575
|
-
* @returns
|
|
575
|
+
* @returns rectangle points
|
|
576
576
|
*/
|
|
577
577
|
rectangleXY(zFraction = 0.0, upwardNormal = true, addClosure = true) {
|
|
578
578
|
if (this.isNull)
|
|
@@ -1078,8 +1078,14 @@ class Range1d extends RangeBase {
|
|
|
1078
1078
|
}
|
|
1079
1079
|
/** Test if a number is within the range. */
|
|
1080
1080
|
containsX(x) {
|
|
1081
|
-
return x >= this.low
|
|
1082
|
-
|
|
1081
|
+
return x >= this.low && x <= this.high;
|
|
1082
|
+
}
|
|
1083
|
+
/**
|
|
1084
|
+
* Test if a number is in within the open range.
|
|
1085
|
+
* * This method differs from `containsX` by returning false if x equals either range extreme.
|
|
1086
|
+
*/
|
|
1087
|
+
containsXOpen(x) {
|
|
1088
|
+
return x > this.low && x < this.high;
|
|
1083
1089
|
}
|
|
1084
1090
|
/** Test of other range is within this range */
|
|
1085
1091
|
containsRange(other) {
|