@itwin/core-geometry 4.10.0-dev.4 → 4.10.0-dev.6
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.d.ts +2 -2
- package/lib/cjs/Geometry.js +2 -2
- 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.d.ts +7 -7
- package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js +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.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/CurveChainWithDistanceIndex.d.ts +27 -8
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +44 -25
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.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/CurveTypes.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/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +30 -56
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +127 -67
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.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/EllipticalArcApproximationContext.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.d.ts +5 -5
- package/lib/cjs/geometry3d/Angle.js +5 -5
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts +91 -7
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +141 -45
- 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.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.d.ts +7 -14
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +19 -14
- 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.d.ts +4 -2
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +4 -2
- 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/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.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/serialization/SerializationHelpers.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.d.ts +2 -2
- package/lib/esm/Geometry.js +2 -2
- 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.d.ts +7 -7
- package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js +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.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/CurveChainWithDistanceIndex.d.ts +27 -8
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +44 -25
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.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/CurveTypes.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/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts +1 -0
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +30 -56
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts +22 -7
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +127 -67
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.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/EllipticalArcApproximationContext.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.d.ts +5 -5
- package/lib/esm/geometry3d/Angle.js +5 -5
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts +91 -7
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +141 -45
- 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.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.d.ts +7 -14
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +19 -14
- 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.d.ts +4 -2
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -1
- package/lib/esm/geometry3d/Transform.js +4 -2
- 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/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.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/serialization/SerializationHelpers.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
|
@@ -19,6 +19,8 @@ import { CurveCollection } from "../CurveCollection";
|
|
|
19
19
|
import { CurveIntervalRole, CurveLocationDetail, CurveLocationDetailPair } from "../CurveLocationDetail";
|
|
20
20
|
import { LineSegment3d } from "../LineSegment3d";
|
|
21
21
|
import { LineString3d } from "../LineString3d";
|
|
22
|
+
import { Loop } from "../Loop";
|
|
23
|
+
import { Path } from "../Path";
|
|
22
24
|
// cspell:word XYRR
|
|
23
25
|
/**
|
|
24
26
|
* Handler class for XYZ intersections between _geometryB and another geometry.
|
|
@@ -34,9 +36,11 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
34
36
|
*/
|
|
35
37
|
constructor(extendA, geometryB, extendB) {
|
|
36
38
|
super();
|
|
37
|
-
this.
|
|
39
|
+
this._extendA0 = extendA;
|
|
40
|
+
this._extendA1 = extendA;
|
|
38
41
|
this._geometryB = geometryB;
|
|
39
|
-
this.
|
|
42
|
+
this._extendB0 = extendB;
|
|
43
|
+
this._extendB1 = extendB;
|
|
40
44
|
this._results = [];
|
|
41
45
|
}
|
|
42
46
|
/** Reset the geometry, leaving all other parts unchanged (and preserving accumulated intersections). */
|
|
@@ -53,10 +57,12 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
53
57
|
this._results = [];
|
|
54
58
|
return result;
|
|
55
59
|
}
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
/** Accept the fraction if it falls inside (possibly extended) fraction range. */
|
|
61
|
+
acceptFraction(extend0, fraction, extend1, fractionTol = 1.0e-12) {
|
|
62
|
+
// Note that default tol is tighter than Geometry.smallFraction. We aggressively toss intersections past endpoints.
|
|
63
|
+
if (!extend0 && fraction < -fractionTol)
|
|
58
64
|
return false;
|
|
59
|
-
if (!extend1 && fraction > 1.0)
|
|
65
|
+
if (!extend1 && fraction > 1.0 + fractionTol)
|
|
60
66
|
return false;
|
|
61
67
|
return true;
|
|
62
68
|
}
|
|
@@ -158,13 +164,13 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
158
164
|
let lineFraction;
|
|
159
165
|
let linePoint;
|
|
160
166
|
for (const c of candidates) {
|
|
161
|
-
|
|
167
|
+
const arcFraction = arc.sweep.fractionToSignedPeriodicFraction(c.fraction, extendB0);
|
|
168
|
+
if (this.acceptFraction(extendB0, arcFraction, extendB1)) {
|
|
162
169
|
lineFraction = SmallSystem.lineSegment3dClosestPointUnbounded(pointA0, pointA1, c.point);
|
|
163
170
|
if (lineFraction !== undefined) {
|
|
164
171
|
linePoint = pointA0.interpolate(lineFraction, pointA1, linePoint);
|
|
165
|
-
if (linePoint.isAlmostEqualMetric(c.point)
|
|
166
|
-
|
|
167
|
-
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, c.fraction, arc, 0, 1, reversed);
|
|
172
|
+
if (linePoint.isAlmostEqualMetric(c.point) && this.acceptFraction(extendA0, lineFraction, extendA1)) {
|
|
173
|
+
this.recordPointWithLocalFractions(lineFraction, cpA, fractionA0, fractionA1, arcFraction, arc, 0, 1, reversed);
|
|
168
174
|
}
|
|
169
175
|
}
|
|
170
176
|
}
|
|
@@ -175,17 +181,17 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
175
181
|
// Passes "other" as {center, vector0, vector90} in local xy space of cpA
|
|
176
182
|
// Solves the arc-arc equations for that local ellipse with unit circle.
|
|
177
183
|
// Solution fractions map directly to original arcs.
|
|
178
|
-
dispatchArcArcInPlane(cpA,
|
|
184
|
+
dispatchArcArcInPlane(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed) {
|
|
179
185
|
const otherVectors = cpA.otherArcAsLocalVectors(cpB);
|
|
180
186
|
if (otherVectors !== undefined) {
|
|
181
187
|
const ellipseRadians = [];
|
|
182
188
|
const circleRadians = [];
|
|
183
189
|
TrigPolynomial.solveUnitCircleHomogeneousEllipseIntersection(otherVectors.center.x, otherVectors.center.y, 1.0, otherVectors.vector0.x, otherVectors.vector0.y, 0.0, otherVectors.vector90.x, otherVectors.vector90.y, 0.0, ellipseRadians, circleRadians);
|
|
184
190
|
for (let i = 0; i < ellipseRadians.length; i++) {
|
|
185
|
-
const fractionA = cpA.sweep.
|
|
186
|
-
const fractionB = cpB.sweep.
|
|
191
|
+
const fractionA = cpA.sweep.radiansToSignedFraction(circleRadians[i], extendA0);
|
|
192
|
+
const fractionB = cpB.sweep.radiansToSignedFraction(ellipseRadians[i], extendB0);
|
|
187
193
|
// hm .. do we really need to check the fractions? We know they are internal to the beziers
|
|
188
|
-
if (this.acceptFraction(
|
|
194
|
+
if (this.acceptFraction(extendA0, fractionA, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
|
|
189
195
|
this.recordPointWithLocalFractions(fractionA, cpA, 0, 1, fractionB, cpB, 0, 1, reversed);
|
|
190
196
|
}
|
|
191
197
|
}
|
|
@@ -194,7 +200,7 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
194
200
|
// Caller accesses data from two arcs.
|
|
195
201
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion".
|
|
196
202
|
// Solves the arc-arc equations.
|
|
197
|
-
dispatchArcArc(cpA,
|
|
203
|
+
dispatchArcArc(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed) {
|
|
198
204
|
// If arcs are in different planes:
|
|
199
205
|
// 1) Intersect each plane with the other arc (quadratic)
|
|
200
206
|
// 2) accept points that appear in both intersection sets.
|
|
@@ -205,10 +211,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
205
211
|
if (planeA === undefined || planeB === undefined)
|
|
206
212
|
return;
|
|
207
213
|
if (planeA.getNormalRef().isParallelTo(planeB.getNormalRef())) {
|
|
208
|
-
if (planeA.isPointInPlane(planeB.getOriginRef()) && planeB.isPointInPlane(planeA.getOriginRef()))
|
|
209
|
-
|
|
210
|
-
this.dispatchArcArcInPlane(cpA, extendA, cpB, extendB, reversed);
|
|
211
|
-
}
|
|
214
|
+
if (planeA.isPointInPlane(planeB.getOriginRef()) && planeB.isPointInPlane(planeA.getOriginRef()))
|
|
215
|
+
this.dispatchArcArcInPlane(cpA, extendA0, extendA1, cpB, extendB0, extendB1, reversed);
|
|
212
216
|
}
|
|
213
217
|
else {
|
|
214
218
|
const arcBPoints = [];
|
|
@@ -218,9 +222,11 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
218
222
|
for (const detailB of arcBPoints) {
|
|
219
223
|
for (const detailA of arcAPoints) {
|
|
220
224
|
if (detailA.point.isAlmostEqual(detailB.point)) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
225
|
+
const arcFractionA = cpA.sweep.fractionToSignedPeriodicFraction(detailA.fraction, extendA0);
|
|
226
|
+
const arcFractionB = cpB.sweep.fractionToSignedPeriodicFraction(detailB.fraction, extendB0);
|
|
227
|
+
if (this.acceptFraction(extendA0, arcFractionA, extendA1)
|
|
228
|
+
&& this.acceptFraction(extendB0, arcFractionB, extendB1)) {
|
|
229
|
+
this.recordPointWithLocalFractions(arcFractionA, cpA, 0, 1, arcFractionB, cpB, 0, 1, reversed);
|
|
224
230
|
}
|
|
225
231
|
}
|
|
226
232
|
}
|
|
@@ -230,7 +236,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
230
236
|
// Caller accesses data from two arcs.
|
|
231
237
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion".
|
|
232
238
|
// Solves the arc-arc equations.
|
|
233
|
-
dispatchArcBsplineCurve3d(_arc,
|
|
239
|
+
dispatchArcBsplineCurve3d(_arc, _extendA0, _extendA1, _cpB, _extendB0, _extendB1, _reversed) {
|
|
240
|
+
// TODO: B-spline XYZ intersection implementation
|
|
234
241
|
/*
|
|
235
242
|
// Arc: X = C + cU + sV
|
|
236
243
|
// implicitize the arc as viewed. This "3d" matrix is homogeneous "XYW" not "xyz"
|
|
@@ -291,9 +298,9 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
291
298
|
const bcurvePoint4d = bezier.fractionToPoint4d(root);
|
|
292
299
|
const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
|
|
293
300
|
const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
|
|
294
|
-
const arcFraction = cpA.sweep.
|
|
295
|
-
if (this.acceptFraction(
|
|
296
|
-
this.acceptFraction(
|
|
301
|
+
const arcFraction = cpA.sweep.radiansToSignedFraction(Math.atan2(s, c), _extendA0);
|
|
302
|
+
if (this.acceptFraction(_extendA0, arcFraction, _extendA1) &&
|
|
303
|
+
this.acceptFraction(_extendB0, fractionB, _extendB1)) {
|
|
297
304
|
this.recordPointWithLocalFractions(
|
|
298
305
|
arcFraction, cpA, 0, 1, fractionB, cpB, 0, 1, reversed,
|
|
299
306
|
);
|
|
@@ -305,6 +312,7 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
305
312
|
}
|
|
306
313
|
*/
|
|
307
314
|
}
|
|
315
|
+
// TODO: Bezier XYZ intersection implementation
|
|
308
316
|
/*
|
|
309
317
|
// Apply the transformation to bezier curves. Optionally construct ranges.
|
|
310
318
|
private transformBeziers(beziers: BezierCurve3dH[]): void {
|
|
@@ -350,8 +358,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
350
358
|
const bcurvePoint4d = bezier.fractionToPoint4d(root);
|
|
351
359
|
const c = bcurvePoint4d.dotProductXYZW(axx, axy, axz, axw);
|
|
352
360
|
const s = bcurvePoint4d.dotProductXYZW(ayx, ayy, ayz, ayw);
|
|
353
|
-
const arcFraction = cpA.sweep.
|
|
354
|
-
if (this.acceptFraction(
|
|
361
|
+
const arcFraction = cpA.sweep.radiansToSignedFraction(Math.atan2(s, c), extendA0);
|
|
362
|
+
if (this.acceptFraction(extendA0, arcFraction, extendA1) && this.acceptFraction(extendB0, fractionB, extendB1)) {
|
|
355
363
|
this.recordPointWithLocalFractions(
|
|
356
364
|
arcFraction, cpA, 0, 1, fractionB, cpB, 0, 1, reversed,
|
|
357
365
|
);
|
|
@@ -418,6 +426,7 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
418
426
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion".
|
|
419
427
|
// Solves the arc-arc equations.
|
|
420
428
|
dispatchBSplineCurve3dBSplineCurve3d(_bcurveA, _bcurveB, _reversed) {
|
|
429
|
+
// TODO: B-spline XYZ intersection implementation
|
|
421
430
|
/*
|
|
422
431
|
const bezierSpanA = bcurveA.collectBezierSpans(true) as BezierCurve3dH[];
|
|
423
432
|
const bezierSpanB = bcurveB.collectBezierSpans(true) as BezierCurve3dH[];
|
|
@@ -481,7 +490,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
481
490
|
// Caller accesses data from segment and bsplineCurve
|
|
482
491
|
// Selects the best conditioned arc (in xy parts) as "circle after inversion"
|
|
483
492
|
// Solves the arc-arc equations
|
|
484
|
-
dispatchSegmentBsplineCurve(_cpA, _extendA0, _pointA0, _fractionA0, _pointA1, _fractionA1, _extendA1, _bcurve,
|
|
493
|
+
dispatchSegmentBsplineCurve(_cpA, _extendA0, _pointA0, _fractionA0, _pointA1, _fractionA1, _extendA1, _bcurve, _extendB0, _extendB1, _reversed) {
|
|
494
|
+
// TODO: B-spline XYZ intersection implementation
|
|
485
495
|
/*
|
|
486
496
|
const pointA0H = this.projectPoint(pointA0);
|
|
487
497
|
const pointA1H = this.projectPoint(pointA1);
|
|
@@ -498,8 +508,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
498
508
|
const curvePoint = detail.point;
|
|
499
509
|
const curvePointH = this.projectPoint(curvePoint);
|
|
500
510
|
const lineFraction = SmallSystem.lineSegment3dHXYClosestPointUnbounded(pointA0H, pointA1H, curvePointH);
|
|
501
|
-
if (lineFraction !== undefined && this.acceptFraction(
|
|
502
|
-
this.acceptFraction(
|
|
511
|
+
if (lineFraction !== undefined && this.acceptFraction(_extendA0, lineFraction, _extendA1) &&
|
|
512
|
+
this.acceptFraction(_extendB0, fractionB, _extendB1)) {
|
|
503
513
|
this.recordPointWithLocalFractions(
|
|
504
514
|
lineFraction, cpA, fractionA0, fractionA1, fractionB, bcurve, 0, 1, reversed,
|
|
505
515
|
);
|
|
@@ -508,7 +518,8 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
508
518
|
*/
|
|
509
519
|
}
|
|
510
520
|
/** Low level dispatch of linestring with (beziers of) a bspline curve */
|
|
511
|
-
dispatchLineStringBSplineCurve(_lsA,
|
|
521
|
+
dispatchLineStringBSplineCurve(_lsA, _extendA0, _extendA1, _curveB, _extendB0, _extendB1, _reversed) {
|
|
522
|
+
// TODO: B-spline XYZ intersection implementation
|
|
512
523
|
/*
|
|
513
524
|
const numA = lsA.numPoints();
|
|
514
525
|
if (numA > 1) {
|
|
@@ -523,15 +534,15 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
523
534
|
lsA.pointAt(iA, pointA1);
|
|
524
535
|
fA1 = iA * dfA;
|
|
525
536
|
this.dispatchSegmentBsplineCurve(
|
|
526
|
-
lsA, iA === 1 &&
|
|
527
|
-
curveB,
|
|
537
|
+
lsA, iA === 1 && _extendA0, pointA0, fA0, pointA1, fA1, (iA + 1) === numA && _extendA1,
|
|
538
|
+
curveB, _extendB0, _extendB1 reversed);
|
|
528
539
|
}
|
|
529
540
|
}
|
|
530
541
|
return undefined;
|
|
531
542
|
*/
|
|
532
543
|
}
|
|
533
544
|
/** Detail computation for segment intersecting linestring. */
|
|
534
|
-
computeSegmentLineString(lsA,
|
|
545
|
+
computeSegmentLineString(lsA, extendA0, extendA1, lsB, extendB0, extendB1, reversed) {
|
|
535
546
|
const pointA0 = lsA.point0Ref;
|
|
536
547
|
const pointA1 = lsA.point1Ref;
|
|
537
548
|
const pointB0 = CurveCurveIntersectXYZ._workPointBB0;
|
|
@@ -546,13 +557,13 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
546
557
|
for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
|
|
547
558
|
lsB.pointAt(ib, pointB1);
|
|
548
559
|
fB1 = ib * dfB;
|
|
549
|
-
this.dispatchSegmentSegment(lsA,
|
|
560
|
+
this.dispatchSegmentSegment(lsA, extendA0, pointA0, 0.0, pointA1, 1.0, extendA1, lsB, ib === 1 && extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB1, reversed);
|
|
550
561
|
}
|
|
551
562
|
}
|
|
552
563
|
return undefined;
|
|
553
564
|
}
|
|
554
565
|
/** Detail computation for arc intersecting linestring. */
|
|
555
|
-
computeArcLineString(arcA,
|
|
566
|
+
computeArcLineString(arcA, extendA0, extendA1, lsB, extendB0, extendB1, reversed) {
|
|
556
567
|
const pointB0 = CurveCurveIntersectXYZ._workPointBB0;
|
|
557
568
|
const pointB1 = CurveCurveIntersectXYZ._workPointBB1;
|
|
558
569
|
const numB = lsB.numPoints();
|
|
@@ -565,7 +576,7 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
565
576
|
for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
|
|
566
577
|
lsB.pointAt(ib, pointB1);
|
|
567
578
|
fB1 = ib * dfB;
|
|
568
|
-
this.dispatchSegmentArc(lsB, ib === 1 &&
|
|
579
|
+
this.dispatchSegmentArc(lsB, ib === 1 && extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && extendB1, arcA, extendA0, extendA1, !reversed);
|
|
569
580
|
}
|
|
570
581
|
}
|
|
571
582
|
return undefined;
|
|
@@ -586,8 +597,6 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
586
597
|
let fB0;
|
|
587
598
|
let fA1;
|
|
588
599
|
let fB1;
|
|
589
|
-
const extendA = this._extendA;
|
|
590
|
-
const extendB = this._extendB;
|
|
591
600
|
lsA.pointAt(0, pointA0);
|
|
592
601
|
for (let ia = 1; ia < numA; ia++, pointA0.setFrom(pointA1), fA0 = fA1) {
|
|
593
602
|
fA1 = ia * dfA;
|
|
@@ -597,23 +606,45 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
597
606
|
for (let ib = 1; ib < numB; ib++, pointB0.setFrom(pointB1), fB0 = fB1) {
|
|
598
607
|
lsB.pointAt(ib, pointB1);
|
|
599
608
|
fB1 = ib * dfB;
|
|
600
|
-
this.dispatchSegmentSegment(lsA, ia === 1 &&
|
|
609
|
+
this.dispatchSegmentSegment(lsA, ia === 1 && this._extendA0, pointA0, fA0, pointA1, fA1, (ia + 1) === numA && this._extendA1, lsB, ib === 1 && this._extendB0, pointB0, fB0, pointB1, fB1, (ib + 1) === numB && this._extendB1, reversed);
|
|
601
610
|
}
|
|
602
611
|
}
|
|
603
612
|
}
|
|
604
613
|
}
|
|
605
|
-
/**
|
|
614
|
+
/**
|
|
615
|
+
* Low level dispatch of curve collection.
|
|
616
|
+
* We take care of extend variables of geometry's children here if geometry is Path or Loop.
|
|
617
|
+
*/
|
|
606
618
|
dispatchCurveCollection(geomA, geomAHandler) {
|
|
607
619
|
const geomB = this._geometryB; // save
|
|
608
620
|
if (!geomB || !geomB.children || !(geomB instanceof CurveCollection))
|
|
609
621
|
return;
|
|
610
|
-
|
|
611
|
-
|
|
622
|
+
const children = geomB.children;
|
|
623
|
+
const extendB0 = this._extendB0; // save
|
|
624
|
+
const extendB1 = this._extendB1; // save
|
|
625
|
+
for (let i = 0; i < children.length; i++) {
|
|
626
|
+
this.resetGeometry(children[i]);
|
|
627
|
+
if (geomB instanceof Path && children.length > 1) {
|
|
628
|
+
if (i === 0)
|
|
629
|
+
this._extendB1 = false; // first child can only extend from start
|
|
630
|
+
else if (i === children.length - 1)
|
|
631
|
+
this._extendB0 = false; // last child can only extend from end
|
|
632
|
+
else
|
|
633
|
+
this._extendB0 = this._extendB1 = false; // middle children cannot extend
|
|
634
|
+
}
|
|
635
|
+
else if (geomB instanceof Loop) {
|
|
636
|
+
this._extendB0 = this._extendB1 = false; // Loops cannot extend
|
|
637
|
+
}
|
|
612
638
|
geomAHandler(geomA);
|
|
639
|
+
this._extendB0 = extendB0; // restore
|
|
640
|
+
this._extendB1 = extendB1; // restore
|
|
613
641
|
}
|
|
614
|
-
this.
|
|
642
|
+
this.resetGeometry(geomB); // restore
|
|
615
643
|
}
|
|
616
|
-
/**
|
|
644
|
+
/**
|
|
645
|
+
* Low level dispatch of CurveChainWithDistanceIndex.
|
|
646
|
+
* We take care of extend variables of geometry's children here if geometry.path is Path or Loop.
|
|
647
|
+
*/
|
|
617
648
|
dispatchCurveChainWithDistanceIndex(geomA, geomAHandler) {
|
|
618
649
|
if (!this._geometryB || !(this._geometryB instanceof CurveChainWithDistanceIndex))
|
|
619
650
|
return;
|
|
@@ -623,27 +654,51 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
623
654
|
}
|
|
624
655
|
const index0 = this._results.length;
|
|
625
656
|
const geomB = this._geometryB; // save
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
geomAHandler(geomA);
|
|
629
|
-
}
|
|
657
|
+
this.resetGeometry(geomB.path);
|
|
658
|
+
this.dispatchCurveCollection(geomA, geomAHandler);
|
|
630
659
|
this.resetGeometry(geomB); // restore
|
|
631
660
|
this._results = CurveChainWithDistanceIndex.convertChildDetailToChainDetail(this._results, index0, undefined, geomB, true);
|
|
632
661
|
}
|
|
662
|
+
/**
|
|
663
|
+
* Invoke `child.dispatchToGeometryHandler(this)` for each child in the array returned by the query `g.children`.
|
|
664
|
+
* We take care of extend variables of geometry's children here if geometry is Path or Loop.
|
|
665
|
+
*/
|
|
666
|
+
handleChildren(g) {
|
|
667
|
+
const children = g.children;
|
|
668
|
+
const extendA0 = this._extendA0; // save
|
|
669
|
+
const extendA1 = this._extendA1; // save
|
|
670
|
+
if (children)
|
|
671
|
+
for (let i = 0; i < children.length; i++) {
|
|
672
|
+
if (g instanceof Path && children.length > 1) {
|
|
673
|
+
if (i === 0)
|
|
674
|
+
this._extendA1 = false; // first child can only extend from start
|
|
675
|
+
else if (i === children.length - 1)
|
|
676
|
+
this._extendA0 = false; // last child can only extend from end
|
|
677
|
+
else
|
|
678
|
+
this._extendA0 = this._extendA1 = false; // middle children cannot extend
|
|
679
|
+
}
|
|
680
|
+
else if (g instanceof Loop) {
|
|
681
|
+
this._extendA0 = this._extendA1 = false; // Loops cannot extend
|
|
682
|
+
}
|
|
683
|
+
children[i].dispatchToGeometryHandler(this);
|
|
684
|
+
this._extendA0 = extendA0; // restore
|
|
685
|
+
this._extendA1 = extendA1; // restore
|
|
686
|
+
}
|
|
687
|
+
}
|
|
633
688
|
/** Double dispatch handler for strongly typed segment. */
|
|
634
689
|
handleLineSegment3d(segmentA) {
|
|
635
690
|
if (this._geometryB instanceof LineSegment3d) {
|
|
636
691
|
const segmentB = this._geometryB;
|
|
637
|
-
this.dispatchSegmentSegment(segmentA, this.
|
|
692
|
+
this.dispatchSegmentSegment(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, segmentB, this._extendB0, segmentB.point0Ref, 0.0, segmentB.point1Ref, 1.0, this._extendB1, false);
|
|
638
693
|
}
|
|
639
694
|
else if (this._geometryB instanceof LineString3d) {
|
|
640
|
-
this.computeSegmentLineString(segmentA, this.
|
|
695
|
+
this.computeSegmentLineString(segmentA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
641
696
|
}
|
|
642
697
|
else if (this._geometryB instanceof Arc3d) {
|
|
643
|
-
this.dispatchSegmentArc(segmentA, this.
|
|
698
|
+
this.dispatchSegmentArc(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
644
699
|
}
|
|
645
700
|
else if (this._geometryB instanceof BSplineCurve3d) {
|
|
646
|
-
this.dispatchSegmentBsplineCurve(segmentA, this.
|
|
701
|
+
this.dispatchSegmentBsplineCurve(segmentA, this._extendA0, segmentA.point0Ref, 0.0, segmentA.point1Ref, 1.0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
647
702
|
}
|
|
648
703
|
else if (this._geometryB instanceof CurveCollection) {
|
|
649
704
|
this.dispatchCurveCollection(segmentA, this.handleLineSegment3d.bind(this));
|
|
@@ -660,13 +715,13 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
660
715
|
this.computeLineStringLineString(lsA, lsB, false);
|
|
661
716
|
}
|
|
662
717
|
else if (this._geometryB instanceof LineSegment3d) {
|
|
663
|
-
this.computeSegmentLineString(this._geometryB, this.
|
|
718
|
+
this.computeSegmentLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
664
719
|
}
|
|
665
720
|
else if (this._geometryB instanceof Arc3d) {
|
|
666
|
-
this.computeArcLineString(this._geometryB, this.
|
|
721
|
+
this.computeArcLineString(this._geometryB, this._extendB0, this._extendB1, lsA, this._extendA0, this._extendA1, true);
|
|
667
722
|
}
|
|
668
723
|
else if (this._geometryB instanceof BSplineCurve3d) {
|
|
669
|
-
this.dispatchLineStringBSplineCurve(lsA, this.
|
|
724
|
+
this.dispatchLineStringBSplineCurve(lsA, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
670
725
|
}
|
|
671
726
|
else if (this._geometryB instanceof CurveCollection) {
|
|
672
727
|
this.dispatchCurveCollection(lsA, this.handleLineString3d.bind(this));
|
|
@@ -679,16 +734,16 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
679
734
|
/** Double dispatch handler for strongly typed arc. */
|
|
680
735
|
handleArc3d(arc0) {
|
|
681
736
|
if (this._geometryB instanceof LineSegment3d) {
|
|
682
|
-
this.dispatchSegmentArc(this._geometryB, this.
|
|
737
|
+
this.dispatchSegmentArc(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, arc0, this._extendA0, this._extendA1, true);
|
|
683
738
|
}
|
|
684
739
|
else if (this._geometryB instanceof LineString3d) {
|
|
685
|
-
this.computeArcLineString(arc0, this.
|
|
740
|
+
this.computeArcLineString(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
686
741
|
}
|
|
687
742
|
else if (this._geometryB instanceof Arc3d) {
|
|
688
|
-
this.dispatchArcArc(arc0, this.
|
|
743
|
+
this.dispatchArcArc(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
689
744
|
}
|
|
690
745
|
else if (this._geometryB instanceof BSplineCurve3d) {
|
|
691
|
-
this.dispatchArcBsplineCurve3d(arc0, this.
|
|
746
|
+
this.dispatchArcBsplineCurve3d(arc0, this._extendA0, this._extendA1, this._geometryB, this._extendB0, this._extendB1, false);
|
|
692
747
|
}
|
|
693
748
|
else if (this._geometryB instanceof CurveCollection) {
|
|
694
749
|
this.dispatchCurveCollection(arc0, this.handleArc3d.bind(this));
|
|
@@ -701,13 +756,13 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
701
756
|
/** Double dispatch handler for strongly typed bspline curve. */
|
|
702
757
|
handleBSplineCurve3d(curve) {
|
|
703
758
|
if (this._geometryB instanceof LineSegment3d) {
|
|
704
|
-
this.dispatchSegmentBsplineCurve(this._geometryB, this.
|
|
759
|
+
this.dispatchSegmentBsplineCurve(this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1, curve, this._extendA0, this._extendA1, true);
|
|
705
760
|
}
|
|
706
761
|
else if (this._geometryB instanceof LineString3d) {
|
|
707
|
-
this.dispatchLineStringBSplineCurve(this._geometryB, this.
|
|
762
|
+
this.dispatchLineStringBSplineCurve(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
|
|
708
763
|
}
|
|
709
764
|
else if (this._geometryB instanceof Arc3d) {
|
|
710
|
-
this.dispatchArcBsplineCurve3d(this._geometryB, this.
|
|
765
|
+
this.dispatchArcBsplineCurve3d(this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true);
|
|
711
766
|
}
|
|
712
767
|
else if (this._geometryB instanceof BSplineCurve3dBase) {
|
|
713
768
|
this.dispatchBSplineCurve3dBSplineCurve3d(curve, this._geometryB, false);
|
|
@@ -733,12 +788,17 @@ export class CurveCurveIntersectXYZ extends RecurseToCurvesGeometryHandler {
|
|
|
733
788
|
// "easy" if both present BezierCurve3dH span loaders
|
|
734
789
|
if (this._geometryB instanceof LineSegment3d) {
|
|
735
790
|
this.dispatchSegmentBsplineCurve(
|
|
736
|
-
this._geometryB, this.
|
|
737
|
-
curve, this.
|
|
791
|
+
this._geometryB, this._extendB0, this._geometryB.point0Ref, 0.0, this._geometryB.point1Ref, 1.0, this._extendB1,
|
|
792
|
+
curve, this._extendA0, this.extendA1, true,
|
|
793
|
+
);
|
|
738
794
|
} else if (this._geometryB instanceof LineString3d) {
|
|
739
|
-
this.dispatchLineStringBSplineCurve(
|
|
795
|
+
this.dispatchLineStringBSplineCurve(
|
|
796
|
+
this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true,
|
|
797
|
+
);
|
|
740
798
|
} else if (this._geometryB instanceof Arc3d) {
|
|
741
|
-
this.dispatchArcBsplineCurve3d(
|
|
799
|
+
this.dispatchArcBsplineCurve3d(
|
|
800
|
+
this._geometryB, this._extendB0, this._extendB1, curve, this._extendA0, this._extendA1, true,
|
|
801
|
+
);
|
|
742
802
|
}
|
|
743
803
|
*/
|
|
744
804
|
return undefined;
|