@itwin/core-geometry 4.1.0-dev.77 → 4.1.0-dev.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/bspline/KnotVector.js.map +1 -1
- package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +2 -2
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +4 -3
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveChain.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.d.ts +6 -2
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurve.js +13 -9
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts +74 -68
- package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js +100 -108
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.d.ts +46 -48
- package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXY.js +72 -61
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts +32 -38
- package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js +86 -97
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurveOps.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/cjs/curve/GeometryQuery.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/OffsetOptions.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/Query/InOutTests.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.d.ts +98 -92
- package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GeometryHandler.js +247 -124
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3d.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/cjs/geometry3d/XYZProps.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/MomentData.js.map +1 -1
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BandedSystem.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
- package/lib/cjs/numerics/Complex.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/numerics/PolarData.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/numerics/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/cjs/numerics/UnionFind.js.map +1 -1
- package/lib/cjs/numerics/UsageSums.js.map +1 -1
- package/lib/cjs/polyface/AuxData.js.map +1 -1
- package/lib/cjs/polyface/BoxTopology.js.map +1 -1
- package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
- package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
- package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/cjs/serialization/DeepCompare.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/MaskManager.js.map +1 -1
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
- package/lib/cjs/topology/SpaceTriangulation.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +2 -2
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +4 -3
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
- package/lib/esm/curve/CurveChain.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.d.ts +6 -2
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurve.js +13 -9
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +74 -68
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveCloseApproachXY.js +100 -108
- package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts +46 -48
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXY.js +72 -61
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts +32 -38
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/esm/curve/CurveCurveIntersectXYZ.js +86 -97
- package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/CurveExtendMode.js.map +1 -1
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurveOps.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/esm/curve/GeometryQuery.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/OffsetOptions.js.map +1 -1
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/Query/InOutTests.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.d.ts +98 -92
- package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -1
- package/lib/esm/geometry3d/GeometryHandler.js +247 -124
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Plane3d.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray2d.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/Segment1d.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/esm/geometry3d/XYZProps.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/MomentData.js.map +1 -1
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BandedSystem.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js.map +1 -1
- package/lib/esm/numerics/Complex.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/numerics/PolarData.js.map +1 -1
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/numerics/Range1dArray.js.map +1 -1
- package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/esm/numerics/UnionFind.js.map +1 -1
- package/lib/esm/numerics/UsageSums.js.map +1 -1
- package/lib/esm/polyface/AuxData.js.map +1 -1
- package/lib/esm/polyface/BoxTopology.js.map +1 -1
- package/lib/esm/polyface/FacetFaceData.js.map +1 -1
- package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/esm/polyface/FacetOrientation.js.map +1 -1
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/RangeLengthData.js.map +1 -1
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
- package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -1
- package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -1
- package/lib/esm/serialization/DeepCompare.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SolidPrimitive.js.map +1 -1
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.js.map +1 -1
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/MaskManager.js.map +1 -1
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/SignedDataSummary.js.map +1 -1
- package/lib/esm/topology/SpaceTriangulation.js.map +1 -1
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
- package/package.json +3 -3
|
@@ -24,7 +24,7 @@ const LineSegment3d_1 = require("./LineSegment3d");
|
|
|
24
24
|
const LineString3d_1 = require("./LineString3d");
|
|
25
25
|
// cspell:word XYRR
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Private class for refining bezier-bezier intersections.
|
|
28
28
|
* * The inputs are assumed pre-transformed so that the target condition is to match x and y coordinates.
|
|
29
29
|
* @internal
|
|
30
30
|
*/
|
|
@@ -57,11 +57,10 @@ class CurveLocationDetailArrayPair {
|
|
|
57
57
|
}
|
|
58
58
|
exports.CurveLocationDetailArrayPair = CurveLocationDetailArrayPair;
|
|
59
59
|
/**
|
|
60
|
+
* Handler class for XY intersections between _geometryB and another geometry.
|
|
61
|
+
* * **NOTE:** GeometryQuery input (_geometryB) should really be AnyCurve.
|
|
60
62
|
* * Instances are initialized and called from CurveCurve.
|
|
61
|
-
* *
|
|
62
|
-
* * geometryB is saved for later reference
|
|
63
|
-
* * type-specific handler methods will "see" geometry A repeatedly.
|
|
64
|
-
* * Hence geometryA is NOT saved by the constructor.
|
|
63
|
+
* * geometryB is saved for later reference.
|
|
65
64
|
* @internal
|
|
66
65
|
*/
|
|
67
66
|
class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
@@ -70,15 +69,13 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
70
69
|
}
|
|
71
70
|
/**
|
|
72
71
|
* @param worldToLocal optional transform (possibly perspective) to project to xy plane for intersection.
|
|
73
|
-
* @param
|
|
74
|
-
* @param extendA flag to enable using extension of geometryA.
|
|
72
|
+
* @param extendA flag to enable using extension of the other geometry.
|
|
75
73
|
* @param geometryB second curve for intersection. Saved for reference by specific handler methods.
|
|
76
74
|
* @param extendB flag for extension of geometryB.
|
|
77
75
|
* @param tolerance optional distance tolerance for coincidence
|
|
78
76
|
*/
|
|
79
|
-
constructor(worldToLocal,
|
|
77
|
+
constructor(worldToLocal, extendA, geometryB, extendB, tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
80
78
|
super();
|
|
81
|
-
// this.geometryA = _geometryA;
|
|
82
79
|
this._extendA = extendA;
|
|
83
80
|
this._geometryB = geometryB;
|
|
84
81
|
this._extendB = extendB;
|
|
@@ -93,7 +90,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
93
90
|
this.reinitialize();
|
|
94
91
|
}
|
|
95
92
|
/** Reset the geometry and flags, leaving all other parts unchanged (and preserving accumulated intersections) */
|
|
96
|
-
resetGeometry(
|
|
93
|
+
resetGeometry(extendA, geometryB, extendB) {
|
|
97
94
|
this._extendA = extendA;
|
|
98
95
|
this._geometryB = geometryB;
|
|
99
96
|
this._extendB = extendB;
|
|
@@ -105,7 +102,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
105
102
|
return false;
|
|
106
103
|
return true;
|
|
107
104
|
}
|
|
108
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* Test the fraction by strict parameter, but allow toleranced distance test at ends.
|
|
109
107
|
* @param tolerance optional distance tolerance to check proximity to start/end point
|
|
110
108
|
*/
|
|
111
109
|
acceptFractionOnLine(extend0, fraction, extend1, pointA, pointB, tolerance = Geometry_1.Geometry.smallMetricDistance) {
|
|
@@ -119,7 +117,6 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
119
117
|
/**
|
|
120
118
|
* * Return the results structure for the intersection calculation, structured as an array of CurveLocationDetailPair
|
|
121
119
|
* @param reinitialize if true, a new results structure is created for use by later calls.
|
|
122
|
-
*
|
|
123
120
|
*/
|
|
124
121
|
grabPairedResults(reinitialize = false) {
|
|
125
122
|
const result = this._results;
|
|
@@ -130,15 +127,17 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
130
127
|
sameCurveAndFraction(cp, fraction, detail) {
|
|
131
128
|
return cp === detail.curve && Geometry_1.Geometry.isAlmostEqualNumber(fraction, detail.fraction);
|
|
132
129
|
}
|
|
133
|
-
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
130
|
+
/**
|
|
131
|
+
* Compute intersection of two line segments.
|
|
132
|
+
* Filter by extension rules.
|
|
133
|
+
* Record with fraction mapping.
|
|
136
134
|
*/
|
|
137
135
|
recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, // Computed intersection fraction
|
|
138
136
|
cpB, fractionB0, fractionB1, reversed, intervalDetails) {
|
|
139
137
|
let globalFractionA, globalFractionB;
|
|
140
138
|
let globalFractionA1, globalFractionB1;
|
|
141
|
-
const isInterval = intervalDetails !== undefined &&
|
|
139
|
+
const isInterval = intervalDetails !== undefined &&
|
|
140
|
+
intervalDetails.detailA.hasFraction1 && intervalDetails.detailB.hasFraction1;
|
|
142
141
|
if (isInterval) {
|
|
143
142
|
globalFractionA = Geometry_1.Geometry.interpolate(fractionA0, intervalDetails.detailA.fraction, fractionA1);
|
|
144
143
|
globalFractionB = Geometry_1.Geometry.interpolate(fractionB0, intervalDetails.detailB.fraction, fractionB1);
|
|
@@ -155,11 +154,13 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
155
154
|
const oldDetailA = this._results[numPrevious - 1].detailA;
|
|
156
155
|
const oldDetailB = this._results[numPrevious - 1].detailB;
|
|
157
156
|
if (reversed) {
|
|
158
|
-
if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
|
|
157
|
+
if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailB) &&
|
|
158
|
+
this.sameCurveAndFraction(cpB, globalFractionB, oldDetailA))
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
161
161
|
else {
|
|
162
|
-
if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
|
|
162
|
+
if (this.sameCurveAndFraction(cpA, globalFractionA, oldDetailA) &&
|
|
163
|
+
this.sameCurveAndFraction(cpB, globalFractionB, oldDetailB))
|
|
163
164
|
return;
|
|
164
165
|
}
|
|
165
166
|
}
|
|
@@ -181,9 +182,9 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
181
182
|
}
|
|
182
183
|
}
|
|
183
184
|
/**
|
|
184
|
-
*
|
|
185
|
-
* @param cpA first curve primitive
|
|
186
|
-
* @param cpB second curve primitive
|
|
185
|
+
* Emit recordPoint for multiple pairs (on full curve!)
|
|
186
|
+
* @param cpA first curve primitive (possibly different from curve in detailA, but fraction compatible)
|
|
187
|
+
* @param cpB second curve primitive (possibly different from curve in detailA, but fraction compatible)
|
|
187
188
|
* @param pairs array of pairs
|
|
188
189
|
* @param reversed true to have order reversed in final structures.
|
|
189
190
|
*/
|
|
@@ -194,15 +195,16 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
194
195
|
}
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
|
-
/**
|
|
198
|
-
*
|
|
199
|
-
*
|
|
198
|
+
/**
|
|
199
|
+
* Compute intersection of two line segments.
|
|
200
|
+
* Filter by extension rules.
|
|
201
|
+
* Record with fraction mapping.
|
|
200
202
|
*/
|
|
201
203
|
computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
|
|
202
204
|
const uv = CurveCurveIntersectXY._workVector2dA;
|
|
203
205
|
// Problem: Normal practice is to do the (quick, simple) transverse intersection first
|
|
204
|
-
// But the transverse intersector notion of coincidence is based on the determinant ratios, which are hard
|
|
205
|
-
//
|
|
206
|
+
// But the transverse intersector notion of coincidence is based on the determinant ratios, which are hard
|
|
207
|
+
// to relate to physical tolerance.
|
|
206
208
|
// So do the overlap first. This should do a quick exit in non-coincident case.
|
|
207
209
|
const overlap = this._coincidentGeometryContext.coincidentSegmentRangeXY(pointA0, pointA1, pointB0, pointB1);
|
|
208
210
|
if (overlap) {
|
|
@@ -236,8 +238,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
236
238
|
}
|
|
237
239
|
}
|
|
238
240
|
// Caller accesses data from a line segment and passes to here.
|
|
239
|
-
// (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
|
|
240
|
-
// allow all combinations to be passed in)
|
|
241
|
+
// (The line segment in question might be (a) a full line segment or (b) a fragment within a linestring.
|
|
242
|
+
// The fraction and extend parameters allow all combinations to be passed in)
|
|
241
243
|
// This method applies transform.
|
|
242
244
|
dispatchSegmentSegment(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
|
|
243
245
|
if (this._worldToLocalAffine) {
|
|
@@ -279,7 +281,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
279
281
|
const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
|
|
280
282
|
const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
|
|
281
283
|
const lineFraction = Polynomials_1.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, arcPoint);
|
|
282
|
-
if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
284
|
+
if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
285
|
+
this.acceptFraction(extendB0, arcFraction, extendB1)) {
|
|
283
286
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
|
|
284
287
|
}
|
|
285
288
|
}
|
|
@@ -305,7 +308,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
305
308
|
const arcPoint = data.center.plus2Scaled(data.vector0, cosines.atUncheckedIndex(i), data.vector90, sines.atUncheckedIndex(i));
|
|
306
309
|
const arcFraction = data.sweep.radiansToSignedPeriodicFraction(radians.atUncheckedIndex(i));
|
|
307
310
|
const lineFraction = Polynomials_1.SmallSystem.lineSegment3dXYClosestPointUnbounded(pointA0Local, pointA1Local, arcPoint);
|
|
308
|
-
if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol)
|
|
311
|
+
if (lineFraction !== undefined && this.acceptFraction(extendA0, lineFraction, extendA1, lineFractionTol)
|
|
312
|
+
&& this.acceptFraction(extendB0, arcFraction, extendB1, arcFractionTol)) {
|
|
309
313
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
|
|
310
314
|
}
|
|
311
315
|
}
|
|
@@ -371,10 +375,13 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
371
375
|
this.dispatchArcArcThisOrder(cpB, matrixB, extendB, cpA, matrixA, extendA, !reversed);
|
|
372
376
|
// overlap handling .. perspective is not handled . . .
|
|
373
377
|
if (!this._coincidentGeometryContext) {
|
|
378
|
+
// do nothing
|
|
374
379
|
}
|
|
375
380
|
else if (this._worldToLocalPerspective) {
|
|
381
|
+
// do nothing
|
|
376
382
|
}
|
|
377
383
|
else if (this._worldToLocalAffine) {
|
|
384
|
+
// do nothing
|
|
378
385
|
}
|
|
379
386
|
else {
|
|
380
387
|
const pairs = this._coincidentGeometryContext.coincidentArcIntersectionXY(cpA, cpB, true);
|
|
@@ -445,7 +452,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
445
452
|
const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
|
|
446
453
|
const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
|
|
447
454
|
const arcFraction = cpA.sweep.radiansToSignedPeriodicFraction(Math.atan2(s, c));
|
|
448
|
-
if (this.acceptFraction(extendA, arcFraction, extendA) &&
|
|
455
|
+
if (this.acceptFraction(extendA, arcFraction, extendA) &&
|
|
456
|
+
this.acceptFraction(extendB, fractionB, extendB)) {
|
|
449
457
|
this.recordPointWithLocalFractions(arcFraction, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
|
|
450
458
|
}
|
|
451
459
|
}
|
|
@@ -454,9 +462,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
454
462
|
}
|
|
455
463
|
}
|
|
456
464
|
}
|
|
457
|
-
/**
|
|
458
|
-
*
|
|
459
|
-
*/
|
|
465
|
+
/** Apply the transformation to bezier curves. optionally construct ranges. */
|
|
460
466
|
transformBeziers(beziers) {
|
|
461
467
|
if (this._worldToLocalAffine) {
|
|
462
468
|
for (const bezier of beziers)
|
|
@@ -486,21 +492,20 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
486
492
|
if (!this._xyzwB)
|
|
487
493
|
this._xyzwB = Point4d_1.Point4d.create();
|
|
488
494
|
/*
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
}
|
|
495
|
+
const roots = univariateBezierG.roots(0.0, true);
|
|
496
|
+
if (roots) {
|
|
497
|
+
for (const root of roots) {
|
|
498
|
+
const fractionB = bezier.fractionToParentFraction(root);
|
|
499
|
+
// The univariate bezier (which has been transformed by the view transform) evaluates into xyw space
|
|
500
|
+
const bcurvePoint4d = bezier.fractionToPoint4d(root);
|
|
501
|
+
const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
|
|
502
|
+
const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
|
|
503
|
+
const arcFraction = cpA.sweep.radiansToSignedPeriodicFraction(Math.atan2(s, c));
|
|
504
|
+
if (this.acceptFraction(extendA, arcFraction, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
|
|
505
|
+
this.recordPointWithLocalFractions(arcFraction, cpA, 0, 1,
|
|
506
|
+
fractionB, cpB, 0, 1, reversed);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
504
509
|
*/
|
|
505
510
|
bezierA.fractionToPoint4d(0.0, this._xyzwA0);
|
|
506
511
|
let f0 = 0.0;
|
|
@@ -545,7 +550,8 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
545
550
|
errors++;
|
|
546
551
|
if (errors > 0 && !xyzA1.isAlmostEqual(xyzB1))
|
|
547
552
|
errors++;
|
|
548
|
-
if (this.acceptFraction(false, bcurveAFraction, false) &&
|
|
553
|
+
if (this.acceptFraction(false, bcurveAFraction, false) &&
|
|
554
|
+
this.acceptFraction(false, bcurveBFraction, false)) {
|
|
549
555
|
this.recordPointWithLocalFractions(bcurveAFraction, bcurveA, 0, 1, bcurveBFraction, bcurveB, 0, 1, reversed);
|
|
550
556
|
}
|
|
551
557
|
}
|
|
@@ -584,7 +590,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
584
590
|
/**
|
|
585
591
|
* Apply the projection transform (if any) to (xyz, w)
|
|
586
592
|
* @param xyz xyz parts of input point.
|
|
587
|
-
* @param w
|
|
593
|
+
* @param w weight to use for homogeneous effects
|
|
588
594
|
*/
|
|
589
595
|
projectPoint(xyz, w = 1.0) {
|
|
590
596
|
if (this._worldToLocalPerspective)
|
|
@@ -620,19 +626,22 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
620
626
|
// NOW .. we have a plane in world space. Intersect it with the bspline:
|
|
621
627
|
const intersections = [];
|
|
622
628
|
bcurve.appendPlaneIntersectionPoints(planeCoffs, intersections);
|
|
623
|
-
// intersections has WORLD points with bspline fractions.
|
|
629
|
+
// intersections has WORLD points with bspline fractions.
|
|
630
|
+
// (the bspline fractions are all good 0..1 fractions within the spline).
|
|
624
631
|
// accept those that are within the segment range.
|
|
625
632
|
for (const detail of intersections) {
|
|
626
633
|
const fractionB = detail.fraction;
|
|
627
634
|
const curvePoint = detail.point;
|
|
628
635
|
const curvePointH = this.projectPoint(curvePoint);
|
|
629
636
|
const lineFraction = Polynomials_1.SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
|
|
630
|
-
if (lineFraction !== undefined &&
|
|
637
|
+
if (lineFraction !== undefined &&
|
|
638
|
+
this.acceptFraction(extendA0, lineFraction, extendA1) &&
|
|
639
|
+
this.acceptFraction(extendB, fractionB, extendB)) {
|
|
631
640
|
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed);
|
|
632
641
|
}
|
|
633
642
|
}
|
|
634
643
|
}
|
|
635
|
-
/**
|
|
644
|
+
/** Low level dispatch of linestring with (beziers of) a bspline curve. */
|
|
636
645
|
dispatchLineStringBSplineCurve(lsA, extendA, curveB, extendB, reversed) {
|
|
637
646
|
const numA = lsA.numPoints();
|
|
638
647
|
if (numA > 1) {
|
|
@@ -672,7 +681,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
672
681
|
}
|
|
673
682
|
return undefined;
|
|
674
683
|
}
|
|
675
|
-
/** Detail computation for
|
|
684
|
+
/** Detail computation for arc intersecting linestring. */
|
|
676
685
|
computeArcLineString(arcA, extendA, lsB, extendB, reversed) {
|
|
677
686
|
const pointB0 = CurveCurveIntersectXY._workPointBB0;
|
|
678
687
|
const pointB1 = CurveCurveIntersectXY._workPointBB1;
|
|
@@ -697,7 +706,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
697
706
|
transform.multiplyPoint3d(pointB0, this._workPointB0);
|
|
698
707
|
transform.multiplyPoint3d(pointB1, this._workPointB1);
|
|
699
708
|
}
|
|
700
|
-
/**
|
|
709
|
+
/** Double dispatch handler for strongly typed segment. */
|
|
701
710
|
handleLineSegment3d(segmentA) {
|
|
702
711
|
if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
|
|
703
712
|
const segmentB = this._geometryB;
|
|
@@ -713,7 +722,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
713
722
|
this.dispatchSegmentBsplineCurve(segmentA, this._extendA, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA, this._geometryB, this._extendB, false);
|
|
714
723
|
}
|
|
715
724
|
}
|
|
716
|
-
/**
|
|
725
|
+
/** Double dispatch handler for strongly typed linestring. */
|
|
717
726
|
handleLineString3d(lsA) {
|
|
718
727
|
if (this._geometryB instanceof LineString3d_1.LineString3d) {
|
|
719
728
|
const lsB = this._geometryB;
|
|
@@ -758,7 +767,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
758
767
|
}
|
|
759
768
|
return undefined;
|
|
760
769
|
}
|
|
761
|
-
/**
|
|
770
|
+
/** Double dispatch handler for strongly typed arc. */
|
|
762
771
|
handleArc3d(arc0) {
|
|
763
772
|
if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
|
|
764
773
|
this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
|
|
@@ -774,7 +783,7 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
774
783
|
}
|
|
775
784
|
return undefined;
|
|
776
785
|
}
|
|
777
|
-
/**
|
|
786
|
+
/** Double dispatch handler for strongly typed bspline curve. */
|
|
778
787
|
handleBSplineCurve3d(curve) {
|
|
779
788
|
if (this._geometryB instanceof LineSegment3d_1.LineSegment3d) {
|
|
780
789
|
this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
|
|
@@ -790,9 +799,11 @@ class CurveCurveIntersectXY extends GeometryHandler_1.NullGeometryHandler {
|
|
|
790
799
|
}
|
|
791
800
|
return undefined;
|
|
792
801
|
}
|
|
793
|
-
/**
|
|
802
|
+
/** Double dispatch handler for strongly typed homogeneous bspline curve .. */
|
|
794
803
|
handleBSplineCurve3dH(_curve) {
|
|
795
|
-
/*
|
|
804
|
+
/*
|
|
805
|
+
// NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH .
|
|
806
|
+
// "easy" if both present BezierCurve3dH span loaders
|
|
796
807
|
if (this._geometryB instanceof LineSegment3d) {
|
|
797
808
|
this.dispatchSegmentBsplineCurve(
|
|
798
809
|
this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
|