@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
|
@@ -9,29 +9,20 @@ import { BSplineCurve3d, BSplineCurve3dBase } from "../bspline/BSplineCurve";
|
|
|
9
9
|
import { Geometry } from "../Geometry";
|
|
10
10
|
import { NullGeometryHandler } from "../geometry3d/GeometryHandler";
|
|
11
11
|
import { Plane3dByOriginAndUnitNormal } from "../geometry3d/Plane3dByOriginAndUnitNormal";
|
|
12
|
-
// import { Arc3d } from "./Arc3d";
|
|
13
12
|
import { Vector2d } from "../geometry3d/Point2dVector2d";
|
|
14
|
-
// import { XYAndZ } from "../geometry3d/XYZProps";
|
|
15
13
|
import { Point3d, Vector3d } from "../geometry3d/Point3dVector3d";
|
|
16
|
-
// import { LineString3d } from "./LineString3d";
|
|
17
14
|
import { SmallSystem, TrigPolynomial } from "../numerics/Polynomials";
|
|
18
|
-
// import { Point4d } from "../geometry4d/Point4d";
|
|
19
|
-
// import { Transform } from "../geometry3d/Transform";
|
|
20
|
-
// import { Matrix3d } from "../geometry3d/Matrix3d";
|
|
21
15
|
import { Arc3d } from "./Arc3d";
|
|
22
|
-
// import { Range3d } from "../geometry3d/Range";
|
|
23
16
|
import { CurveLocationDetailArrayPair } from "./CurveCurveIntersectXY";
|
|
24
17
|
import { CurveIntervalRole, CurveLocationDetail } from "./CurveLocationDetail";
|
|
25
18
|
import { LineSegment3d } from "./LineSegment3d";
|
|
26
19
|
import { LineString3d } from "./LineString3d";
|
|
27
20
|
// cspell:word XYRR
|
|
28
21
|
/**
|
|
29
|
-
*
|
|
22
|
+
* Handler class for XYZ intersections between _geometryB and another geometry.
|
|
23
|
+
* * **NOTE:** GeometryQuery input (_geometryB) should really be AnyCurve.
|
|
30
24
|
* * Instances are initialized and called from CurveCurve.
|
|
31
|
-
* *
|
|
32
|
-
* * geometryB is saved for later reference
|
|
33
|
-
* * type-specific handler methods will "see" geometry A repeatedly.
|
|
34
|
-
* * Hence geometryA is NOT saved by the constructor.
|
|
25
|
+
* * geometryB is saved for later reference.
|
|
35
26
|
* @internal
|
|
36
27
|
*/
|
|
37
28
|
class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
@@ -39,15 +30,12 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
39
30
|
this._results = new CurveLocationDetailArrayPair();
|
|
40
31
|
}
|
|
41
32
|
/**
|
|
42
|
-
*
|
|
43
|
-
* @param _geometryA first curve for intersection. This is NOT saved.
|
|
44
|
-
* @param extendA flag to enable using extension of geometryA.
|
|
33
|
+
* @param extendA flag to enable using extension of the other geometry.
|
|
45
34
|
* @param geometryB second curve for intersection. Saved for reference by specific handler methods.
|
|
46
35
|
* @param extendB flag for extension of geometryB.
|
|
47
36
|
*/
|
|
48
|
-
constructor(
|
|
37
|
+
constructor(extendA, geometryB, extendB) {
|
|
49
38
|
super();
|
|
50
|
-
// this.geometryA = _geometryA;
|
|
51
39
|
this._extendA = extendA;
|
|
52
40
|
this._geometryB = geometryB;
|
|
53
41
|
this._extendB = extendB;
|
|
@@ -56,7 +44,6 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
56
44
|
/**
|
|
57
45
|
* * Return the results structure for the intersection calculation.
|
|
58
46
|
* @param reinitialize if true, a new results structure is created for use by later calls.
|
|
59
|
-
*
|
|
60
47
|
*/
|
|
61
48
|
grabResults(reinitialize = false) {
|
|
62
49
|
const result = this._results;
|
|
@@ -71,10 +58,11 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
71
58
|
return false;
|
|
72
59
|
return true;
|
|
73
60
|
}
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
61
|
+
/**
|
|
62
|
+
* Compute intersection of two line segments.
|
|
63
|
+
* Filter by extension rules.
|
|
64
|
+
* Reject if evaluated points do not match coordinates (e.g. close approach point).
|
|
65
|
+
* Record with fraction mapping.
|
|
78
66
|
*/
|
|
79
67
|
recordPointWithLocalFractions(localFractionA, cpA, fractionA0, fractionA1, localFractionB, // Computed intersection fraction
|
|
80
68
|
cpB, fractionB0, fractionB1, reversed) {
|
|
@@ -86,11 +74,13 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
86
74
|
const topFractionA = this._results.dataA[numPrevious - 1].fraction;
|
|
87
75
|
const topFractionB = this._results.dataB[numPrevious - 1].fraction;
|
|
88
76
|
if (reversed) {
|
|
89
|
-
if (Geometry.isAlmostEqualNumber(topFractionA, globalFractionB) &&
|
|
77
|
+
if (Geometry.isAlmostEqualNumber(topFractionA, globalFractionB) &&
|
|
78
|
+
Geometry.isAlmostEqualNumber(topFractionB, globalFractionA))
|
|
90
79
|
return;
|
|
91
80
|
}
|
|
92
81
|
else {
|
|
93
|
-
if (Geometry.isAlmostEqualNumber(topFractionA, globalFractionA) &&
|
|
82
|
+
if (Geometry.isAlmostEqualNumber(topFractionA, globalFractionA) &&
|
|
83
|
+
Geometry.isAlmostEqualNumber(topFractionB, globalFractionB))
|
|
94
84
|
return;
|
|
95
85
|
}
|
|
96
86
|
}
|
|
@@ -111,15 +101,15 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
111
101
|
this._results.dataB.push(detailB);
|
|
112
102
|
}
|
|
113
103
|
}
|
|
114
|
-
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
104
|
+
/**
|
|
105
|
+
* Compute intersection of two line segments.
|
|
106
|
+
* Filter by extension rules.
|
|
107
|
+
* Record with fraction mapping.
|
|
117
108
|
*/
|
|
118
109
|
computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed) {
|
|
119
110
|
const uv = CurveCurveIntersectXYZ._workVector2dA;
|
|
120
|
-
if (SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv)
|
|
121
|
-
|
|
122
|
-
&& this.acceptFraction(extendB0, uv.y, extendB1)) {
|
|
111
|
+
if (SmallSystem.lineSegment3dClosestApproachUnbounded(pointA0, pointA1, pointB0, pointB1, uv) &&
|
|
112
|
+
this.acceptFraction(extendA0, uv.x, extendA1) && this.acceptFraction(extendB0, uv.y, extendB1)) {
|
|
123
113
|
this.recordPointWithLocalFractions(uv.x, cpA, fractionA0, fractionA1, uv.y, cpB, fractionB0, fractionB1, reversed);
|
|
124
114
|
}
|
|
125
115
|
}
|
|
@@ -131,14 +121,16 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
131
121
|
this.computeSegmentSegment3D(cpA, extendA0, pointA0, fractionA0, pointA1, fractionA1, extendA1, cpB, extendB0, pointB0, fractionB0, pointB1, fractionB1, extendB1, reversed);
|
|
132
122
|
}
|
|
133
123
|
/**
|
|
134
|
-
* Create a plane whose normal is the "better" cross product: `vectorA.crossProduct(vectorB)` or
|
|
124
|
+
* Create a plane whose normal is the "better" cross product: `vectorA.crossProduct(vectorB)` or
|
|
125
|
+
* `vectorA.crossProduct(vectorC)`
|
|
135
126
|
* * The heuristic for "better" is:
|
|
136
|
-
* * first choice is cross product with `vectorB`, if `vectorA` and `vectorB` are sufficiently far from parallel
|
|
127
|
+
* * first choice is cross product with `vectorB`, if `vectorA` and `vectorB` are sufficiently far from parallel
|
|
128
|
+
* (or anti-parallel).
|
|
137
129
|
* * otherwise use vectorC
|
|
138
130
|
* @param origin plane origin
|
|
139
131
|
* @param vectorA vector which must be in the plane.
|
|
140
|
-
* @param cosineValue largest cosine of the angle theta between vectorA and vectorB to prefer their cross product,
|
|
141
|
-
*
|
|
132
|
+
* @param cosineValue largest cosine of the angle theta between vectorA and vectorB to prefer their cross product, e.g.
|
|
133
|
+
* passing 0.94 ~ cos(20deg) will switch to using vectorC in the cross product if theta < ~20deg or theta > ~160deg.
|
|
142
134
|
* @param vectorB first candidate for additional in-plane vector
|
|
143
135
|
* @param vectorC second candidate for additional in-plane vector
|
|
144
136
|
*/
|
|
@@ -236,7 +228,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
236
228
|
// Caller accesses data from two arcs.
|
|
237
229
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion"
|
|
238
230
|
// Solves the arc-arc equations
|
|
239
|
-
dispatchArcBsplineCurve3d(
|
|
231
|
+
dispatchArcBsplineCurve3d(_arc, _extendA, _cpB, _extendB, _reversed) {
|
|
240
232
|
/*
|
|
241
233
|
// Arc: X = C + cU + sV
|
|
242
234
|
// implicitize the arc as viewed. This "3d" matrix is homogeneous "XYW" not "xyz"
|
|
@@ -296,7 +288,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
296
288
|
}
|
|
297
289
|
}
|
|
298
290
|
}
|
|
299
|
-
|
|
291
|
+
*/
|
|
300
292
|
}
|
|
301
293
|
/*
|
|
302
294
|
// apply the transformation to bezier curves. optionally construct ranges.
|
|
@@ -307,7 +299,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
307
299
|
for (const bezier of beziers) bezier.tryMultiplyMatrix4dInPlace(this._worldToLocalPerspective);
|
|
308
300
|
}
|
|
309
301
|
}
|
|
310
|
-
|
|
302
|
+
*/
|
|
311
303
|
/*
|
|
312
304
|
private getRanges(beziers: BezierCurveBase[]): Range3d[] {
|
|
313
305
|
const ranges: Range3d[] = [];
|
|
@@ -335,23 +327,20 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
335
327
|
if (!this._xyzwA1) this._xyzwA1 = Point4d.create();
|
|
336
328
|
if (!this._xyzwPlane) this._xyzwPlane = Point4d.create();
|
|
337
329
|
if (!this._xyzwB) this._xyzwB = Point4d.create();
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
*-/
|
|
330
|
+
const roots = univariateBezierG.roots(0.0, true);
|
|
331
|
+
if (roots) {
|
|
332
|
+
for (const root of roots) {
|
|
333
|
+
const fractionB = bezier.fractionToParentFraction(root);
|
|
334
|
+
// The univariate bezier (which has been transformed by the view transform) evaluates into xyw space
|
|
335
|
+
const bcurvePoint4d = bezier.fractionToPoint4d(root);
|
|
336
|
+
const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
|
|
337
|
+
const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
|
|
338
|
+
const arcFraction = cpA.sweep.radiansToSignedPeriodicFraction(Math.atan2(s, c));
|
|
339
|
+
if (this.acceptFraction(extendA, arcFraction, extendA) && this.acceptFraction(extendB, fractionB, extendB)) {
|
|
340
|
+
this.recordPointWithLocalFractions(arcFraction, cpA, 0, 1,
|
|
341
|
+
fractionB, cpB, 0, 1, reversed);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
355
344
|
bezierA.fractionToPoint4d(0.0, this._xyzwA0);
|
|
356
345
|
let f0 = 0.0;
|
|
357
346
|
let f1 = 1.0;
|
|
@@ -379,10 +368,9 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
379
368
|
bezierAFraction = newtonSearcher.getU();
|
|
380
369
|
bezierBFraction = newtonSearcher.getV();
|
|
381
370
|
}
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
// NEEDS WORK -- just accept . . .
|
|
371
|
+
// We have a near intersection at fractions on the two beziers !!!
|
|
372
|
+
// Iterate on the curves for a true intersection ....
|
|
373
|
+
// NEEDS WORK -- just accept . . .
|
|
386
374
|
const bcurveAFraction = bezierA.fractionToParentFraction(bezierAFraction);
|
|
387
375
|
const bcurveBFraction = bezierB.fractionToParentFraction(bezierBFraction);
|
|
388
376
|
const xyzA0 = bezierA.fractionToPoint(bezierAFraction);
|
|
@@ -405,38 +393,39 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
405
393
|
}
|
|
406
394
|
}
|
|
407
395
|
}
|
|
408
|
-
|
|
396
|
+
*/
|
|
409
397
|
// Caller accesses data from two arcs.
|
|
410
398
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion"
|
|
411
399
|
// Solves the arc-arc equations
|
|
412
400
|
dispatchBSplineCurve3dBSplineCurve3d(_bcurveA, _bcurveB, _reversed) {
|
|
413
401
|
/*
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
402
|
+
const bezierSpanA = bcurveA.collectBezierSpans(true) as BezierCurve3dH[];
|
|
403
|
+
const bezierSpanB = bcurveB.collectBezierSpans(true) as BezierCurve3dH[];
|
|
404
|
+
const numA = bezierSpanA.length;
|
|
405
|
+
const numB = bezierSpanB.length;
|
|
406
|
+
this.transformBeziers(bezierSpanA);
|
|
407
|
+
this.transformBeziers(bezierSpanB);
|
|
408
|
+
const rangeA = this.getRanges(bezierSpanA);
|
|
409
|
+
const rangeB = this.getRanges(bezierSpanB);
|
|
410
|
+
const orderA = bcurveA.order;
|
|
411
|
+
const orderB = bcurveB.order;
|
|
412
|
+
const univariateCoffsA = new UnivariateBezier(orderA);
|
|
413
|
+
const univariateCoffsB = new UnivariateBezier(orderB);
|
|
414
|
+
for (let a = 0; a < numA; a++) {
|
|
415
|
+
for (let b = 0; b < numB; b++) {
|
|
416
|
+
if (rangeA[a].intersectsRangeXY(rangeB[b])) {
|
|
417
|
+
const strokeCountA = bezierSpanA[a].computeStrokeCountForOptions();
|
|
418
|
+
const strokeCountB = bezierSpanB[b].computeStrokeCountForOptions();
|
|
419
|
+
if (strokeCountA < strokeCountB)
|
|
420
|
+
this.dispatchBezierBezierStrokeFirst(bezierSpanA[a], bcurveA, strokeCountA, bezierSpanB[b], bcurveB, strokeCountB, univariateCoffsB, !_reversed);
|
|
421
|
+
else
|
|
422
|
+
this.dispatchBezierBezierStrokeFirst(bezierSpanB[b], bcurveB, strokeCountB, bezierSpanA[a], bcurveA, strokeCountA, univariateCoffsA, _reversed);
|
|
423
|
+
}
|
|
435
424
|
}
|
|
436
425
|
}
|
|
437
|
-
|
|
438
|
-
*/
|
|
426
|
+
*/
|
|
439
427
|
}
|
|
428
|
+
/*
|
|
440
429
|
/**
|
|
441
430
|
* Apply the projection transform (if any) to (xyz, w)
|
|
442
431
|
* @param xyz xyz parts of input point.
|
|
@@ -464,7 +453,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
464
453
|
npcPlane.clone(worldPlane);
|
|
465
454
|
}
|
|
466
455
|
}
|
|
467
|
-
|
|
456
|
+
*/
|
|
468
457
|
// Caller accesses data from segment and bsplineCurve
|
|
469
458
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion"
|
|
470
459
|
// Solves the arc-arc equations
|
|
@@ -489,9 +478,9 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
489
478
|
fractionB, bcurve, 0, 1, reversed);
|
|
490
479
|
}
|
|
491
480
|
}
|
|
492
|
-
|
|
481
|
+
*/
|
|
493
482
|
}
|
|
494
|
-
/**
|
|
483
|
+
/** Low level dispatch of linestring with (beziers of) a bspline curve */
|
|
495
484
|
dispatchLineStringBSplineCurve(_lsA, _extendA, _curveB, _extendB, _reversed) {
|
|
496
485
|
/*
|
|
497
486
|
const numA = lsA.numPoints();
|
|
@@ -512,9 +501,9 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
512
501
|
}
|
|
513
502
|
}
|
|
514
503
|
return undefined;
|
|
515
|
-
|
|
504
|
+
*/
|
|
516
505
|
}
|
|
517
|
-
/**
|
|
506
|
+
/** Detail computation for segment intersecting linestring. */
|
|
518
507
|
computeSegmentLineString(lsA, extendA, lsB, extendB, reversed) {
|
|
519
508
|
const pointA0 = lsA.point0Ref;
|
|
520
509
|
const pointA1 = lsA.point1Ref;
|
|
@@ -535,7 +524,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
535
524
|
}
|
|
536
525
|
return undefined;
|
|
537
526
|
}
|
|
538
|
-
/**
|
|
527
|
+
/** Detail computation for arc intersecting linestring. */
|
|
539
528
|
computeArcLineString(arcA, extendA, lsB, extendB, reversed) {
|
|
540
529
|
const pointB0 = CurveCurveIntersectXYZ._workPointBB0;
|
|
541
530
|
const pointB1 = CurveCurveIntersectXYZ._workPointBB1;
|
|
@@ -554,7 +543,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
554
543
|
}
|
|
555
544
|
return undefined;
|
|
556
545
|
}
|
|
557
|
-
/**
|
|
546
|
+
/** Double dispatch handler for strongly typed segment. */
|
|
558
547
|
handleLineSegment3d(segmentA) {
|
|
559
548
|
if (this._geometryB instanceof LineSegment3d) {
|
|
560
549
|
const segmentB = this._geometryB;
|
|
@@ -585,9 +574,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
585
574
|
const dfA = 1.0 / (numA - 1);
|
|
586
575
|
const dfB = 1.0 / (numB - 1);
|
|
587
576
|
let fA0 = 0.0;
|
|
588
|
-
let fB0;
|
|
589
|
-
let fA1;
|
|
590
|
-
let fB1;
|
|
577
|
+
let fA1, fB0, fB1;
|
|
591
578
|
const extendA = this._extendA;
|
|
592
579
|
const extendB = this._extendB;
|
|
593
580
|
lsA.pointAt(0, pointA0);
|
|
@@ -615,7 +602,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
615
602
|
}
|
|
616
603
|
return undefined;
|
|
617
604
|
}
|
|
618
|
-
/**
|
|
605
|
+
/** Double dispatch handler for strongly typed arc. */
|
|
619
606
|
handleArc3d(arc0) {
|
|
620
607
|
if (this._geometryB instanceof LineSegment3d) {
|
|
621
608
|
this.dispatchSegmentArc(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, arc0, this._extendA, this._extendA, true);
|
|
@@ -631,7 +618,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
631
618
|
}
|
|
632
619
|
return undefined;
|
|
633
620
|
}
|
|
634
|
-
/**
|
|
621
|
+
/** Double dispatch handler for strongly typed bspline curve.. */
|
|
635
622
|
handleBSplineCurve3d(curve) {
|
|
636
623
|
if (this._geometryB instanceof LineSegment3d) {
|
|
637
624
|
this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB, curve, this._extendA, true);
|
|
@@ -647,9 +634,11 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
647
634
|
}
|
|
648
635
|
return undefined;
|
|
649
636
|
}
|
|
650
|
-
/**
|
|
637
|
+
/** Double dispatch handler for strongly typed homogeneous bspline curve. */
|
|
651
638
|
handleBSplineCurve3dH(_curve) {
|
|
652
|
-
/*
|
|
639
|
+
/*
|
|
640
|
+
// NEEDS WORK -- make "dispatch" methods tolerant of both 3d and 3dH
|
|
641
|
+
// "easy" if both present BezierCurve3dH span loaders
|
|
653
642
|
if (this._geometryB instanceof LineSegment3d) {
|
|
654
643
|
this.dispatchSegmentBsplineCurve(
|
|
655
644
|
this._geometryB, this._extendB, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB,
|
|
@@ -659,7 +648,7 @@ class CurveCurveIntersectXYZ extends NullGeometryHandler {
|
|
|
659
648
|
} else if (this._geometryB instanceof Arc3d) {
|
|
660
649
|
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB, curve, this._extendA, true);
|
|
661
650
|
}
|
|
662
|
-
|
|
651
|
+
*/
|
|
663
652
|
return undefined;
|
|
664
653
|
}
|
|
665
654
|
}
|