@itwin/core-geometry 4.10.0-dev.2 → 4.10.0-dev.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -1
- 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.d.ts +21 -10
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +64 -37
- 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.d.ts +10 -12
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +16 -43
- 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 +2 -2
- 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 +33 -59
- 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 +128 -68
- 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.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
- 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 +101 -13
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +156 -57
- 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 +9 -15
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +21 -15
- 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.d.ts +6 -5
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
- 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 +2 -2
- 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.d.ts +5 -5
- package/lib/cjs/geometry4d/Map4d.js +5 -5
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
- package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js +4 -7
- 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.d.ts +37 -36
- package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/Polynomials.js +90 -105
- 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.d.ts +3 -3
- package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js +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.d.ts +21 -10
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +64 -37
- 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.d.ts +10 -12
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +16 -43
- 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 +2 -2
- 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 +33 -59
- 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 +128 -68
- 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.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +14 -11
- 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 +101 -13
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +156 -57
- 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 +9 -15
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +21 -15
- 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.d.ts +6 -5
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
- 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 +2 -2
- 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.d.ts +5 -5
- package/lib/esm/geometry4d/Map4d.js +5 -5
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
- package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js +4 -7
- 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.d.ts +37 -36
- package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
- package/lib/esm/numerics/Polynomials.js +90 -105
- 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.d.ts +3 -3
- package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js +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 +7 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolarData.js","sourceRoot":"","sources":["../../../src/numerics/PolarData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\n\r\n/** Enumeration of how constraints have been resolved\r\n * @internal\r\n */\r\nexport enum ConstraintState {\r\n unknown = 0,\r\n singlePoint = 1,\r\n impossibleValues = -1,\r\n onCurve = 2,\r\n\r\n}\r\n\r\n/**\r\n * PolarData carries (possibly incomplete) data for converting among polar and cartesian coordinates.\r\n * @internal\r\n */\r\nexport class PolarData {\r\n private static _defaultRadius = 1.0;\r\n public static get defaultRadius(): number { return PolarData._defaultRadius; }\r\n /** x coordinate, possibly unknown */\r\n public x?: number;\r\n /** y coordinate, possibly unknown */\r\n public y?: number;\r\n /** radius, possibly unknown */\r\n public r?: number;\r\n /** angle, possibly unknown */\r\n public theta?: Angle;\r\n /** point, line, or arc geometry, as determined by solveFromScalars */\r\n public geometry?: GeometryQuery;\r\n /** enumeration of resolved state validity conditions. */\r\n public state?: ConstraintState;\r\n /** Count the number of defined values among x,y,r, theta */\r\n public get numberOfConstrainedScalars(): number {\r\n let n = 0;\r\n if (this.x !== undefined) n++;\r\n if (this.y !== undefined) n++;\r\n if (this.r !== undefined) n++;\r\n if (this.theta !== undefined) n++;\r\n return n;\r\n }\r\n /** Create with any combination of known and unknown scalars. */\r\n public static createMixedScalars(state?: ConstraintState, x?: number, y?: number, r?: number, theta?: Angle): PolarData {\r\n const result = new PolarData();\r\n result.x = x;\r\n result.y = y;\r\n result.r = r;\r\n result.theta = theta !== undefined ? theta.clone() : undefined;\r\n result.state = state;\r\n return result;\r\n }\r\n\r\n /** Clone the scalar data, replace the state.\r\n * * Geometry is NOT cloned.\r\n */\r\n public cloneScalarsWithState(newState: ConstraintState): PolarData {\r\n const result = new PolarData();\r\n result.x = this.x;\r\n result.y = this.y;\r\n result.r = this.r;\r\n result.theta = this.theta !== undefined ? this.theta.clone() : undefined;\r\n result.state = newState;\r\n return result;\r\n }\r\n\r\n /** Given a possibly incomplete set of x,y,r,theta, determine the possible completions. */\r\n public static solveFromScalars(known: PolarData): PolarData[] {\r\n const result = [];\r\n // .. fill out known combinations (x,y) (x,r) etc.\r\n // .. any \"singlePoints\" gets created with no geometry, but geometry fills in at end.\r\n // .. \"free on curve\" has curve filled in, with finite curve range controlled by PolarData.defaultRadius.\r\n if (known.x !== undefined) {\r\n if (known.y !== undefined) {\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, known.y, Geometry.hypotenuseXY(known.x, known.y), Angle.createAtan2(known.y, known.x)));\r\n } else if (known.r !== undefined) {\r\n const rr = known.r * known.r;\r\n const xx = known.x * known.x;\r\n const yy = rr - xx;\r\n if (yy < 0.0) {\r\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\r\n } else {\r\n const y = Math.sqrt(yy);\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, known.r, Angle.createAtan2(y, known.x)));\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, -y, known.r, Angle.createAtan2(-y, known.x)));\r\n }\r\n } else if (known.theta !== undefined) {\r\n const r = Geometry.conditionalDivideFraction(known.x, known.theta.cos());\r\n // test 4*theta to isolate either positive or negative PI/2 case ...\r\n if (r === undefined) {\r\n // Anywhere on y axis does has x=0, this angle . . .\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYXY(0, PolarData._defaultRadius, 0, PolarData._defaultRadius);\r\n } else {\r\n const y = r * known.theta.sin();\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, r, known.theta));\r\n }\r\n } else { // only x known --- fill out a vertical line\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(known.x, PolarData._defaultRadius, 0, known.x, PolarData._defaultRadius, 0);\r\n }\r\n } else if (known.y !== undefined) { // and we already know x is undefined .....\r\n if (known.r !== undefined) {\r\n const rr = known.r * known.r;\r\n const yy = known.y * known.y;\r\n const xx = rr - yy;\r\n if (xx < 0.0) {\r\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\r\n } else {\r\n const x = Math.sqrt(xx);\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, known.r, Angle.createAtan2(known.y, x)));\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, -x, known.y, known.r, Angle.createAtan2(known.y, -x)));\r\n }\r\n } else if (known.theta !== undefined) {\r\n const r = Geometry.conditionalDivideFraction(known.y, known.theta.sin());\r\n // test 4*theta to isolate either positive or negative PI/2 case ...\r\n if (r === undefined) {\r\n // Anywhere on y axis does has x=0, this angle . . .\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(0, PolarData._defaultRadius, 0, 0, PolarData._defaultRadius, 0);\r\n } else {\r\n const x = r * known.theta.cos();\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, r, known.theta));\r\n }\r\n } else { // only x known --- fill out a horizontal line\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = LineSegment3d.createXYZXYZ(PolarData._defaultRadius, known.y, 0, PolarData._defaultRadius, known.y, 0);\r\n }\r\n } else if (known.r !== undefined) {\r\n if (known.theta !== undefined) {\r\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.r * known.theta.cos(), known.r * known.theta.sin(), known.r, known.theta));\r\n } else {\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n q.geometry = Arc3d.createXY(Point3d.create(0, 0, 0), known.r);\r\n result.push(q);\r\n }\r\n } else if (known.theta !== undefined) {\r\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\r\n const x = PolarData._defaultRadius * known.theta.cos();\r\n const y = PolarData._defaultRadius * known.theta.sin();\r\n q.geometry = LineSegment3d.createXYXY(-x, -y, x, y);\r\n result.push(q);\r\n }\r\n // ----------------------------------------------------------------------------------------\r\n // add tangible geometry to single points ...\r\n for (const r of result) {\r\n if (r.state === ConstraintState.singlePoint && r.geometry === undefined)\r\n r.geometry = CoordinateXYZ.createXYZ(r.x, r.y, 0.0);\r\n }\r\n return result;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PolarData.js","sourceRoot":"","sources":["../../../src/numerics/PolarData.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Arc3d } from \"../curve/Arc3d\";\nimport { CoordinateXYZ } from \"../curve/CoordinateXYZ\";\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\nimport { Geometry } from \"../Geometry\";\nimport { Angle } from \"../geometry3d/Angle\";\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\n\n/** Enumeration of how constraints have been resolved\n * @internal\n */\nexport enum ConstraintState {\n unknown = 0,\n singlePoint = 1,\n impossibleValues = -1,\n onCurve = 2,\n\n}\n\n/**\n * PolarData carries (possibly incomplete) data for converting among polar and cartesian coordinates.\n * @internal\n */\nexport class PolarData {\n private static _defaultRadius = 1.0;\n public static get defaultRadius(): number { return PolarData._defaultRadius; }\n /** x coordinate, possibly unknown */\n public x?: number;\n /** y coordinate, possibly unknown */\n public y?: number;\n /** radius, possibly unknown */\n public r?: number;\n /** angle, possibly unknown */\n public theta?: Angle;\n /** point, line, or arc geometry, as determined by solveFromScalars */\n public geometry?: GeometryQuery;\n /** enumeration of resolved state validity conditions. */\n public state?: ConstraintState;\n /** Count the number of defined values among x,y,r, theta */\n public get numberOfConstrainedScalars(): number {\n let n = 0;\n if (this.x !== undefined) n++;\n if (this.y !== undefined) n++;\n if (this.r !== undefined) n++;\n if (this.theta !== undefined) n++;\n return n;\n }\n /** Create with any combination of known and unknown scalars. */\n public static createMixedScalars(state?: ConstraintState, x?: number, y?: number, r?: number, theta?: Angle): PolarData {\n const result = new PolarData();\n result.x = x;\n result.y = y;\n result.r = r;\n result.theta = theta !== undefined ? theta.clone() : undefined;\n result.state = state;\n return result;\n }\n\n /** Clone the scalar data, replace the state.\n * * Geometry is NOT cloned.\n */\n public cloneScalarsWithState(newState: ConstraintState): PolarData {\n const result = new PolarData();\n result.x = this.x;\n result.y = this.y;\n result.r = this.r;\n result.theta = this.theta !== undefined ? this.theta.clone() : undefined;\n result.state = newState;\n return result;\n }\n\n /** Given a possibly incomplete set of x,y,r,theta, determine the possible completions. */\n public static solveFromScalars(known: PolarData): PolarData[] {\n const result = [];\n // .. fill out known combinations (x,y) (x,r) etc.\n // .. any \"singlePoints\" gets created with no geometry, but geometry fills in at end.\n // .. \"free on curve\" has curve filled in, with finite curve range controlled by PolarData.defaultRadius.\n if (known.x !== undefined) {\n if (known.y !== undefined) {\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, known.y, Geometry.hypotenuseXY(known.x, known.y), Angle.createAtan2(known.y, known.x)));\n } else if (known.r !== undefined) {\n const rr = known.r * known.r;\n const xx = known.x * known.x;\n const yy = rr - xx;\n if (yy < 0.0) {\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\n } else {\n const y = Math.sqrt(yy);\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, known.r, Angle.createAtan2(y, known.x)));\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, -y, known.r, Angle.createAtan2(-y, known.x)));\n }\n } else if (known.theta !== undefined) {\n const r = Geometry.conditionalDivideFraction(known.x, known.theta.cos());\n // test 4*theta to isolate either positive or negative PI/2 case ...\n if (r === undefined) {\n // Anywhere on y axis does has x=0, this angle . . .\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYXY(0, PolarData._defaultRadius, 0, PolarData._defaultRadius);\n } else {\n const y = r * known.theta.sin();\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.x, y, r, known.theta));\n }\n } else { // only x known --- fill out a vertical line\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(known.x, PolarData._defaultRadius, 0, known.x, PolarData._defaultRadius, 0);\n }\n } else if (known.y !== undefined) { // and we already know x is undefined .....\n if (known.r !== undefined) {\n const rr = known.r * known.r;\n const yy = known.y * known.y;\n const xx = rr - yy;\n if (xx < 0.0) {\n result.push(known.cloneScalarsWithState(ConstraintState.impossibleValues));\n } else {\n const x = Math.sqrt(xx);\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, known.r, Angle.createAtan2(known.y, x)));\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, -x, known.y, known.r, Angle.createAtan2(known.y, -x)));\n }\n } else if (known.theta !== undefined) {\n const r = Geometry.conditionalDivideFraction(known.y, known.theta.sin());\n // test 4*theta to isolate either positive or negative PI/2 case ...\n if (r === undefined) {\n // Anywhere on y axis does has x=0, this angle . . .\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(0, PolarData._defaultRadius, 0, 0, PolarData._defaultRadius, 0);\n } else {\n const x = r * known.theta.cos();\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, x, known.y, r, known.theta));\n }\n } else { // only x known --- fill out a horizontal line\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = LineSegment3d.createXYZXYZ(PolarData._defaultRadius, known.y, 0, PolarData._defaultRadius, known.y, 0);\n }\n } else if (known.r !== undefined) {\n if (known.theta !== undefined) {\n result.push(PolarData.createMixedScalars(ConstraintState.singlePoint, known.r * known.theta.cos(), known.r * known.theta.sin(), known.r, known.theta));\n } else {\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n q.geometry = Arc3d.createXY(Point3d.create(0, 0, 0), known.r);\n result.push(q);\n }\n } else if (known.theta !== undefined) {\n const q = known.cloneScalarsWithState(ConstraintState.onCurve);\n const x = PolarData._defaultRadius * known.theta.cos();\n const y = PolarData._defaultRadius * known.theta.sin();\n q.geometry = LineSegment3d.createXYXY(-x, -y, x, y);\n result.push(q);\n }\n // ----------------------------------------------------------------------------------------\n // add tangible geometry to single points ...\n for (const r of result) {\n if (r.state === ConstraintState.singlePoint && r.geometry === undefined)\n r.geometry = CoordinateXYZ.createXYZ(r.x, r.y, 0.0);\n }\n return result;\n }\n}\n"]}
|
|
@@ -12,7 +12,7 @@ import { Point4d } from "../geometry4d/Point4d";
|
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
14
|
export declare class Degree2PowerPolynomial {
|
|
15
|
-
/** The three coefficients for the
|
|
15
|
+
/** The three coefficients for the quadratic */
|
|
16
16
|
coffs: number[];
|
|
17
17
|
constructor(c0?: number, c1?: number, c2?: number);
|
|
18
18
|
/**
|
|
@@ -268,7 +268,7 @@ export declare class AnalyticRoots {
|
|
|
268
268
|
private static appendFullCubicSolutions;
|
|
269
269
|
/** Compute roots of cubic 'c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 */
|
|
270
270
|
static appendCubicRoots(c: Float64Array | number[], results: GrowableFloat64Array): void;
|
|
271
|
-
/** Compute roots of quartic
|
|
271
|
+
/** Compute roots of quartic `c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 + c[4] * x^4` */
|
|
272
272
|
static appendQuarticRoots(c: Float64Array | number[], results: GrowableFloat64Array): void;
|
|
273
273
|
private static appendCosSinRadians;
|
|
274
274
|
/**
|
|
@@ -306,9 +306,9 @@ export declare class PowerPolynomial {
|
|
|
306
306
|
/** Evaluate the standard basis polynomial of degree `coff.length` at `x` */
|
|
307
307
|
static evaluate(coff: Float64Array, x: number): number;
|
|
308
308
|
/**
|
|
309
|
-
*
|
|
310
|
-
* *
|
|
311
|
-
* * Returns degree of result as determined by comparing trailing coefficients to zero
|
|
309
|
+
* Accumulate `coffQ*scaleQ` into `coffP`.
|
|
310
|
+
* * The length of `coffP` must be at least length of `coffQ`.
|
|
311
|
+
* * Returns degree of result as determined by comparing trailing coefficients to zero.
|
|
312
312
|
*/
|
|
313
313
|
static accumulate(coffP: Float64Array, coffQ: Float64Array, scaleQ: number): number;
|
|
314
314
|
/** Zero all coefficients */
|
|
@@ -320,55 +320,56 @@ export declare class PowerPolynomial {
|
|
|
320
320
|
*/
|
|
321
321
|
export declare class TrigPolynomial {
|
|
322
322
|
private static readonly _smallAngle;
|
|
323
|
-
/** Standard Basis coefficients for rational
|
|
323
|
+
/** Standard Basis coefficients for the numerator of the y-coordinate y(t) = S(t)/W(t) in the rational semicircle parameterization. */
|
|
324
324
|
static readonly S: Float64Array;
|
|
325
|
-
/** Standard Basis coefficients for rational
|
|
325
|
+
/** Standard Basis coefficients for the numerator of the x-coordinate x(t) = C(t)/W(t) in the rational semicircle parameterization. */
|
|
326
326
|
static readonly C: Float64Array;
|
|
327
|
-
/** Standard Basis coefficients for rational
|
|
327
|
+
/** Standard Basis coefficients for the denominator of x(t) and y(t) in the rational semicircle parameterization. */
|
|
328
328
|
static readonly W: Float64Array;
|
|
329
|
-
/** Standard Basis coefficients for
|
|
329
|
+
/** Standard Basis coefficients for C(t) * W(t). */
|
|
330
330
|
static readonly CW: Float64Array;
|
|
331
|
-
/** Standard Basis coefficients for
|
|
331
|
+
/** Standard Basis coefficients for S(t) * W(t). */
|
|
332
332
|
static readonly SW: Float64Array;
|
|
333
|
-
/** Standard Basis coefficients for
|
|
333
|
+
/** Standard Basis coefficients for S(t) * C(t). */
|
|
334
334
|
static readonly SC: Float64Array;
|
|
335
|
-
/** Standard Basis coefficients for
|
|
335
|
+
/** Standard Basis coefficients for S(t) * S(t). */
|
|
336
336
|
static readonly SS: Float64Array;
|
|
337
|
-
/** Standard Basis coefficients for
|
|
337
|
+
/** Standard Basis coefficients for C(t) * C(t). */
|
|
338
338
|
static readonly CC: Float64Array;
|
|
339
|
-
/** Standard Basis coefficients for
|
|
339
|
+
/** Standard Basis coefficients for W(t) * W(t). */
|
|
340
340
|
static readonly WW: Float64Array;
|
|
341
|
-
/** Standard Basis coefficients for (
|
|
341
|
+
/** Standard Basis coefficients for C(t) * C(t) - S(t) * S(t). */
|
|
342
342
|
static readonly CCminusSS: Float64Array;
|
|
343
343
|
/**
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
344
|
+
* Solve a polynomial created from trigonometric condition using Trig.S, Trig.C, Trig.W.
|
|
345
|
+
* * Polynomial is of degree 4:
|
|
346
|
+
* `p(t) = coff[0] + coff[1] * t + coff[2] * t^2 + coff[3] * t^3 + coff[4] * t^4`
|
|
347
|
+
* * Solution logic includes inferring angular roots corresponding zero leading coefficients
|
|
348
|
+
* (roots at infinity).
|
|
349
|
+
* @param coff coefficients.
|
|
350
|
+
* @param nominalDegree degree of the polynomial under most complex root case. If there are
|
|
351
|
+
* any zero coefficients up to this degree, a single root "at infinity" is recorded as its
|
|
352
|
+
* corresponding angular parameter at negative pi/2.
|
|
353
|
+
* @param referenceCoefficient a number which represents the size of coefficients at various
|
|
354
|
+
* stages of computation. A small fraction of this will be used as a zero tolerance
|
|
355
|
+
* @param radians roots are placed here.
|
|
355
356
|
* @return false if equation is all zeros. This usually means any angle is a solution.
|
|
356
357
|
*/
|
|
357
358
|
static solveAngles(coff: Float64Array, nominalDegree: number, referenceCoefficient: number, radians: number[]): boolean;
|
|
358
359
|
private static readonly _coefficientRelTol;
|
|
359
360
|
/**
|
|
360
361
|
* Compute intersections of unit circle `x^2 + y^2 = 1` with general quadric
|
|
361
|
-
* `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y +
|
|
362
|
+
* `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y + a = 0`
|
|
362
363
|
* Solutions are returned as angles. Sine and Cosine of the angles are the x, y results.
|
|
363
|
-
* @param axx
|
|
364
|
-
* @param axy
|
|
365
|
-
* @param ayy
|
|
366
|
-
* @param ax
|
|
367
|
-
* @param ay
|
|
368
|
-
* @param
|
|
369
|
-
* @param radians
|
|
364
|
+
* @param axx coefficient of x^2
|
|
365
|
+
* @param axy coefficient of xy
|
|
366
|
+
* @param ayy coefficient of y^2
|
|
367
|
+
* @param ax coefficient of x
|
|
368
|
+
* @param ay coefficient of y
|
|
369
|
+
* @param a constant coefficient
|
|
370
|
+
* @param radians solution angles
|
|
370
371
|
*/
|
|
371
|
-
static solveUnitCircleImplicitQuadricIntersection(axx: number, axy: number, ayy: number, ax: number, ay: number,
|
|
372
|
+
static solveUnitCircleImplicitQuadricIntersection(axx: number, axy: number, ayy: number, ax: number, ay: number, a: number, radians: number[]): boolean;
|
|
372
373
|
/**
|
|
373
374
|
* Compute intersections of unit circle x^2 + y 2 = 1 with the ellipse
|
|
374
375
|
* (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)
|
|
@@ -384,7 +385,7 @@ export declare class TrigPolynomial {
|
|
|
384
385
|
*/
|
|
385
386
|
static solveUnitCircleEllipseIntersection(cx: number, cy: number, ux: number, uy: number, vx: number, vy: number, ellipseRadians: number[], circleRadians: number[]): boolean;
|
|
386
387
|
/**
|
|
387
|
-
* Compute intersections of unit circle `x^2 + y^2 = w^2` with the ellipse
|
|
388
|
+
* Compute intersections of unit circle `x^2 + y^2 = w^2` (in homogeneous coordinates) with the ellipse
|
|
388
389
|
* `F(t) = (cx + ux cos(t) + vx sin(t), cy + uy cos(t) + vy sin(t)) / (cw + uw cos(t) + vw sin(t))`.
|
|
389
390
|
* @param cx center x
|
|
390
391
|
* @param cy center y
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polynomials.d.ts","sourceRoot":"","sources":["../../../src/numerics/Polynomials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Polynomials.d.ts","sourceRoot":"","sources":["../../../src/numerics/Polynomials.ts"],"names":[],"mappings":"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"}
|
|
@@ -828,7 +828,7 @@ class AnalyticRoots {
|
|
|
828
828
|
// EDL April 5, 2020 replace classic GraphicsGems solver by RWDNickalls.
|
|
829
829
|
// Don't know if improveRoots is needed.
|
|
830
830
|
// Breaks in AnalyticRoots.test.ts checkQuartic suggest it indeed converts many e-16 errors to zero.
|
|
831
|
-
//
|
|
831
|
+
// e-13 cases are unaffected
|
|
832
832
|
this.improveRoots(c, 3, results, false);
|
|
833
833
|
}
|
|
834
834
|
else {
|
|
@@ -837,49 +837,46 @@ class AnalyticRoots {
|
|
|
837
837
|
// this.appendCubicRootsUnsorted(c, results);
|
|
838
838
|
results.sort();
|
|
839
839
|
}
|
|
840
|
-
/** Compute roots of quartic
|
|
840
|
+
/** Compute roots of quartic `c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 + c[4] * x^4` */
|
|
841
841
|
static appendQuarticRoots(c, results) {
|
|
842
|
-
|
|
842
|
+
// for details, see core\geometry\internaldocs\quarticRoots.md
|
|
843
|
+
const coffs = new Float64Array(4);
|
|
843
844
|
let u;
|
|
844
845
|
let v;
|
|
845
|
-
// normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0
|
|
846
846
|
const coffScale = new Float64Array(1);
|
|
847
847
|
if (!this.safeDivide(coffScale, 1.0, c[4], 0.0, 0)) {
|
|
848
848
|
this.appendCubicRoots(c, results);
|
|
849
849
|
return;
|
|
850
850
|
}
|
|
851
|
+
// normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0
|
|
851
852
|
const A = c[3] * coffScale[0];
|
|
852
853
|
const B = c[2] * coffScale[0];
|
|
853
854
|
const C = c[1] * coffScale[0];
|
|
854
855
|
const D = c[0] * coffScale[0];
|
|
855
856
|
const origin = -0.25 * A;
|
|
856
|
-
|
|
857
|
-
x^4 + px^2 + qx + r = 0 */
|
|
857
|
+
// substitute x = y - A/4 to eliminate cubic term: y^4 + py^2 + qy + r = 0
|
|
858
858
|
const sq_A = A * A;
|
|
859
|
-
const p = -
|
|
859
|
+
const p = -0.375 * sq_A + B;
|
|
860
860
|
const q = 0.125 * sq_A * A - 0.5 * A * B + C;
|
|
861
|
-
const r = -
|
|
862
|
-
const
|
|
863
|
-
if (this.isZero(r)) {
|
|
864
|
-
// no absolute term: y(y^3 + py + q) = 0
|
|
861
|
+
const r = -0.01171875 * sq_A * sq_A + 0.0625 * sq_A * B - 0.25 * A * C + D;
|
|
862
|
+
const cubicSolutions = new GrowableFloat64Array_1.GrowableFloat64Array();
|
|
863
|
+
if (this.isZero(r)) { // no absolute term: y(y^3 + py + q) = 0
|
|
865
864
|
coffs[0] = q;
|
|
866
865
|
coffs[1] = p;
|
|
867
866
|
coffs[2] = 0;
|
|
868
867
|
coffs[3] = 1;
|
|
869
868
|
this.appendCubicRoots(coffs, results);
|
|
870
|
-
results.push(0);
|
|
871
|
-
this.addConstant(origin, results);
|
|
869
|
+
results.push(0);
|
|
870
|
+
this.addConstant(origin, results); // apply origin
|
|
872
871
|
return;
|
|
873
872
|
}
|
|
874
|
-
else {
|
|
875
|
-
|
|
876
|
-
coffs[0] = 1.0 / 2 * r * p - 1.0 / 8 * q * q;
|
|
873
|
+
else { // solve the resolvent cubic
|
|
874
|
+
coffs[0] = 0.5 * r * p - 0.125 * q * q;
|
|
877
875
|
coffs[1] = -r;
|
|
878
|
-
coffs[2] = -
|
|
876
|
+
coffs[2] = -0.5 * p;
|
|
879
877
|
coffs[3] = 1;
|
|
880
|
-
this.appendCubicRoots(coffs,
|
|
881
|
-
const z = this.mostDistantFromMean(
|
|
882
|
-
// ... to build two quadric equations
|
|
878
|
+
this.appendCubicRoots(coffs, cubicSolutions);
|
|
879
|
+
const z = this.mostDistantFromMean(cubicSolutions);
|
|
883
880
|
u = z * z - r;
|
|
884
881
|
v = 2 * z - p;
|
|
885
882
|
if (this.isSmallRatio(u, r)) {
|
|
@@ -898,11 +895,9 @@ class AnalyticRoots {
|
|
|
898
895
|
v = Math.sqrt(v);
|
|
899
896
|
}
|
|
900
897
|
else {
|
|
901
|
-
for (let i = 0; i < tempStack.length; i++) {
|
|
902
|
-
results.push(tempStack.atUncheckedIndex(i));
|
|
903
|
-
}
|
|
904
898
|
return;
|
|
905
899
|
}
|
|
900
|
+
// the two quadratic equations
|
|
906
901
|
coffs[0] = z - u;
|
|
907
902
|
coffs[1] = ((q < 0) ? (-v) : (v));
|
|
908
903
|
coffs[2] = 1;
|
|
@@ -912,8 +907,7 @@ class AnalyticRoots {
|
|
|
912
907
|
coffs[2] = 1;
|
|
913
908
|
this.appendQuadraticRoots(coffs, results);
|
|
914
909
|
}
|
|
915
|
-
//
|
|
916
|
-
this.addConstant(origin, results);
|
|
910
|
+
this.addConstant(origin, results); // apply origin
|
|
917
911
|
results.sort();
|
|
918
912
|
this.improveRoots(c, 4, results, true);
|
|
919
913
|
return;
|
|
@@ -1018,19 +1012,17 @@ class PowerPolynomial {
|
|
|
1018
1012
|
return this.degreeKnownEvaluate(coff, degree, x);
|
|
1019
1013
|
}
|
|
1020
1014
|
/**
|
|
1021
|
-
*
|
|
1022
|
-
* *
|
|
1023
|
-
* * Returns degree of result as determined by comparing trailing coefficients to zero
|
|
1015
|
+
* Accumulate `coffQ*scaleQ` into `coffP`.
|
|
1016
|
+
* * The length of `coffP` must be at least length of `coffQ`.
|
|
1017
|
+
* * Returns degree of result as determined by comparing trailing coefficients to zero.
|
|
1024
1018
|
*/
|
|
1025
1019
|
static accumulate(coffP, coffQ, scaleQ) {
|
|
1026
1020
|
let degreeP = coffP.length - 1;
|
|
1027
1021
|
const degreeQ = coffQ.length - 1;
|
|
1028
|
-
for (let i = 0; i <= degreeQ; i++)
|
|
1022
|
+
for (let i = 0; i <= degreeQ; i++)
|
|
1029
1023
|
coffP[i] += scaleQ * coffQ[i];
|
|
1030
|
-
|
|
1031
|
-
while (degreeP >= 0 && coffP[degreeP] === 0.0) {
|
|
1024
|
+
while (degreeP >= 0 && coffP[degreeP] === 0.0)
|
|
1032
1025
|
degreeP--;
|
|
1033
|
-
}
|
|
1034
1026
|
return degreeP;
|
|
1035
1027
|
}
|
|
1036
1028
|
/** Zero all coefficients */
|
|
@@ -1047,17 +1039,18 @@ exports.PowerPolynomial = PowerPolynomial;
|
|
|
1047
1039
|
*/
|
|
1048
1040
|
class TrigPolynomial {
|
|
1049
1041
|
/**
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
1052
|
-
*
|
|
1053
|
-
*
|
|
1054
|
-
*
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1057
|
-
*
|
|
1058
|
-
*
|
|
1059
|
-
*
|
|
1060
|
-
*
|
|
1042
|
+
* Solve a polynomial created from trigonometric condition using Trig.S, Trig.C, Trig.W.
|
|
1043
|
+
* * Polynomial is of degree 4:
|
|
1044
|
+
* `p(t) = coff[0] + coff[1] * t + coff[2] * t^2 + coff[3] * t^3 + coff[4] * t^4`
|
|
1045
|
+
* * Solution logic includes inferring angular roots corresponding zero leading coefficients
|
|
1046
|
+
* (roots at infinity).
|
|
1047
|
+
* @param coff coefficients.
|
|
1048
|
+
* @param nominalDegree degree of the polynomial under most complex root case. If there are
|
|
1049
|
+
* any zero coefficients up to this degree, a single root "at infinity" is recorded as its
|
|
1050
|
+
* corresponding angular parameter at negative pi/2.
|
|
1051
|
+
* @param referenceCoefficient a number which represents the size of coefficients at various
|
|
1052
|
+
* stages of computation. A small fraction of this will be used as a zero tolerance
|
|
1053
|
+
* @param radians roots are placed here.
|
|
1061
1054
|
* @return false if equation is all zeros. This usually means any angle is a solution.
|
|
1062
1055
|
*/
|
|
1063
1056
|
static solveAngles(coff, nominalDegree, referenceCoefficient, radians) {
|
|
@@ -1067,31 +1060,23 @@ class TrigPolynomial {
|
|
|
1067
1060
|
const relTol = this._smallAngle;
|
|
1068
1061
|
for (let i = 0; i <= nominalDegree; i++) {
|
|
1069
1062
|
a = Math.abs(coff[i]);
|
|
1070
|
-
if (a > maxCoff)
|
|
1063
|
+
if (a > maxCoff)
|
|
1071
1064
|
maxCoff = a;
|
|
1072
|
-
}
|
|
1073
1065
|
}
|
|
1074
1066
|
const coffTol = relTol * maxCoff;
|
|
1075
1067
|
let degree = nominalDegree;
|
|
1076
|
-
while (degree > 0 && (Math.abs(coff[degree]) <= coffTol))
|
|
1068
|
+
while (degree > 0 && (Math.abs(coff[degree]) <= coffTol))
|
|
1077
1069
|
degree--;
|
|
1078
|
-
}
|
|
1079
|
-
// let status = false;
|
|
1080
1070
|
const roots = new GrowableFloat64Array_1.GrowableFloat64Array();
|
|
1081
1071
|
if (degree === -1) {
|
|
1082
|
-
//
|
|
1083
|
-
// status = false;
|
|
1072
|
+
// do nothing
|
|
1084
1073
|
}
|
|
1085
1074
|
else {
|
|
1086
|
-
// status = true;
|
|
1087
1075
|
if (degree === 0) {
|
|
1088
|
-
// p(t) is a nonzero constant
|
|
1089
|
-
// No roots, but not degenerate.
|
|
1090
|
-
// status = true;
|
|
1076
|
+
// p(t) is a nonzero constant; no roots but not degenerate.
|
|
1091
1077
|
}
|
|
1092
1078
|
else if (degree === 1) {
|
|
1093
|
-
// p(t) = coff[
|
|
1094
|
-
roots.push(-coff[0] / coff[1]);
|
|
1079
|
+
roots.push(-coff[0] / coff[1]); // p(t) = coff[0] + coff[1] * t
|
|
1095
1080
|
}
|
|
1096
1081
|
else if (degree === 2) {
|
|
1097
1082
|
AnalyticRoots.appendQuadraticRoots(coff, roots);
|
|
@@ -1103,70 +1088,67 @@ class TrigPolynomial {
|
|
|
1103
1088
|
AnalyticRoots.appendQuarticRoots(coff, roots);
|
|
1104
1089
|
}
|
|
1105
1090
|
else {
|
|
1106
|
-
// TODO:
|
|
1107
|
-
// status = false;
|
|
1091
|
+
// TODO: WORK WITH BEZIER SOLVER
|
|
1108
1092
|
}
|
|
1109
1093
|
if (roots.length > 0) {
|
|
1110
|
-
// Each solution t represents an angle with
|
|
1111
|
-
//
|
|
1112
|
-
// Division by W has no effect on Atan2 calculations, so we just compute S(t),C(t)
|
|
1094
|
+
// Each solution t represents an angle with Math.Cos(theta) = C(t)/W(t) and sin(theta) = S(t)/W(t)
|
|
1095
|
+
// Division by W has no effect on atan2 calculations, so we just compute S(t),C(t)
|
|
1113
1096
|
for (let i = 0; i < roots.length; i++) {
|
|
1114
1097
|
const ss = PowerPolynomial.evaluate(this.S, roots.atUncheckedIndex(i));
|
|
1115
1098
|
const cc = PowerPolynomial.evaluate(this.C, roots.atUncheckedIndex(i));
|
|
1116
1099
|
radians.push(Math.atan2(ss, cc));
|
|
1117
1100
|
}
|
|
1118
|
-
//
|
|
1119
|
-
//
|
|
1120
|
-
|
|
1121
|
-
if (degree < nominalDegree) {
|
|
1101
|
+
// each leading zero at the front of the coefficient array corresponds to a root at -PI/2.
|
|
1102
|
+
// only make one entry because we don't report multiplicity.
|
|
1103
|
+
if (degree < nominalDegree)
|
|
1122
1104
|
radians.push(-0.5 * Math.PI);
|
|
1123
|
-
}
|
|
1124
1105
|
}
|
|
1125
1106
|
}
|
|
1126
1107
|
return radians.length > 0;
|
|
1127
1108
|
}
|
|
1128
1109
|
/**
|
|
1129
1110
|
* Compute intersections of unit circle `x^2 + y^2 = 1` with general quadric
|
|
1130
|
-
* `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y +
|
|
1111
|
+
* `axx * x^2 + axy * x * y + ayy * y^2 + ax * x + ay * y + a = 0`
|
|
1131
1112
|
* Solutions are returned as angles. Sine and Cosine of the angles are the x, y results.
|
|
1132
|
-
* @param axx
|
|
1133
|
-
* @param axy
|
|
1134
|
-
* @param ayy
|
|
1135
|
-
* @param ax
|
|
1136
|
-
* @param ay
|
|
1137
|
-
* @param
|
|
1138
|
-
* @param radians
|
|
1113
|
+
* @param axx coefficient of x^2
|
|
1114
|
+
* @param axy coefficient of xy
|
|
1115
|
+
* @param ayy coefficient of y^2
|
|
1116
|
+
* @param ax coefficient of x
|
|
1117
|
+
* @param ay coefficient of y
|
|
1118
|
+
* @param a constant coefficient
|
|
1119
|
+
* @param radians solution angles
|
|
1139
1120
|
*/
|
|
1140
|
-
static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay,
|
|
1141
|
-
const
|
|
1142
|
-
PowerPolynomial.zero(
|
|
1121
|
+
static solveUnitCircleImplicitQuadricIntersection(axx, axy, ayy, ax, ay, a, radians) {
|
|
1122
|
+
const coffs = new Float64Array(5);
|
|
1123
|
+
PowerPolynomial.zero(coffs);
|
|
1143
1124
|
let degree;
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
PowerPolynomial.accumulate(
|
|
1147
|
-
PowerPolynomial.accumulate(
|
|
1148
|
-
PowerPolynomial.accumulate(
|
|
1149
|
-
PowerPolynomial.accumulate(
|
|
1150
|
-
PowerPolynomial.accumulate(
|
|
1125
|
+
// see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients
|
|
1126
|
+
if (Geometry_1.Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * Geometry_1.Geometry.hypotenuseXYZ(ax, ay, a)) {
|
|
1127
|
+
PowerPolynomial.accumulate(coffs, this.CW, ax);
|
|
1128
|
+
PowerPolynomial.accumulate(coffs, this.SW, ay);
|
|
1129
|
+
PowerPolynomial.accumulate(coffs, this.WW, a);
|
|
1130
|
+
PowerPolynomial.accumulate(coffs, this.SS, ayy);
|
|
1131
|
+
PowerPolynomial.accumulate(coffs, this.CC, axx);
|
|
1132
|
+
PowerPolynomial.accumulate(coffs, this.SC, axy);
|
|
1151
1133
|
degree = 4;
|
|
1152
1134
|
}
|
|
1153
1135
|
else {
|
|
1154
|
-
PowerPolynomial.accumulate(
|
|
1155
|
-
PowerPolynomial.accumulate(
|
|
1156
|
-
PowerPolynomial.accumulate(
|
|
1136
|
+
PowerPolynomial.accumulate(coffs, this.C, ax);
|
|
1137
|
+
PowerPolynomial.accumulate(coffs, this.S, ay);
|
|
1138
|
+
PowerPolynomial.accumulate(coffs, this.W, a);
|
|
1157
1139
|
degree = 2;
|
|
1158
1140
|
}
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
const b = this.solveAngles(Coffs, degree, maxCoff, radians);
|
|
1141
|
+
const maxCoff = Math.max(Math.abs(axx), Math.abs(ayy), Math.abs(axy), Math.abs(ax), Math.abs(ay), Math.abs(a));
|
|
1142
|
+
const b = this.solveAngles(coffs, degree, maxCoff, radians);
|
|
1162
1143
|
/*
|
|
1163
1144
|
for (const theta of angles) {
|
|
1164
1145
|
const c = theta.cos();
|
|
1165
1146
|
const s = theta.sin();
|
|
1166
1147
|
GeometryCoreTestIO.consoleLog({
|
|
1167
1148
|
angle: theta, co: c, si: s,
|
|
1168
|
-
f: axx * c * c + axy * c * s + ayy * s * s + ax * c + ay * s +
|
|
1169
|
-
|
|
1149
|
+
f: axx * c * c + axy * c * s + ayy * s * s + ax * c + ay * s + a,
|
|
1150
|
+
});
|
|
1151
|
+
} */
|
|
1170
1152
|
return b;
|
|
1171
1153
|
}
|
|
1172
1154
|
/**
|
|
@@ -1184,6 +1166,7 @@ class TrigPolynomial {
|
|
|
1184
1166
|
*/
|
|
1185
1167
|
static solveUnitCircleEllipseIntersection(cx, cy, ux, uy, vx, vy, ellipseRadians, circleRadians) {
|
|
1186
1168
|
circleRadians.length = 0;
|
|
1169
|
+
// see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients:
|
|
1187
1170
|
const acc = ux * ux + uy * uy;
|
|
1188
1171
|
const acs = 2.0 * (ux * vx + uy * vy);
|
|
1189
1172
|
const ass = vx * vx + vy * vy;
|
|
@@ -1201,7 +1184,7 @@ class TrigPolynomial {
|
|
|
1201
1184
|
return status;
|
|
1202
1185
|
}
|
|
1203
1186
|
/**
|
|
1204
|
-
* Compute intersections of unit circle `x^2 + y^2 = w^2` with the ellipse
|
|
1187
|
+
* Compute intersections of unit circle `x^2 + y^2 = w^2` (in homogeneous coordinates) with the ellipse
|
|
1205
1188
|
* `F(t) = (cx + ux cos(t) + vx sin(t), cy + uy cos(t) + vy sin(t)) / (cw + uw cos(t) + vw sin(t))`.
|
|
1206
1189
|
* @param cx center x
|
|
1207
1190
|
* @param cy center y
|
|
@@ -1217,13 +1200,14 @@ class TrigPolynomial {
|
|
|
1217
1200
|
*/
|
|
1218
1201
|
static solveUnitCircleHomogeneousEllipseIntersection(cx, cy, cw, ux, uy, uw, vx, vy, vw, ellipseRadians, circleRadians) {
|
|
1219
1202
|
circleRadians.length = 0;
|
|
1203
|
+
// see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients:
|
|
1220
1204
|
const acc = ux * ux + uy * uy - uw * uw;
|
|
1221
1205
|
const acs = 2.0 * (ux * vx + uy * vy - uw * vw);
|
|
1222
1206
|
const ass = vx * vx + vy * vy - vw * vw;
|
|
1223
1207
|
const ac = 2.0 * (ux * cx + uy * cy - uw * cw);
|
|
1224
|
-
const
|
|
1208
|
+
const as = 2.0 * (vx * cx + vy * cy - vw * cw);
|
|
1225
1209
|
const a = cx * cx + cy * cy - cw * cw;
|
|
1226
|
-
const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac,
|
|
1210
|
+
const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, as, a, ellipseRadians);
|
|
1227
1211
|
for (const radians of ellipseRadians) {
|
|
1228
1212
|
const cc = Math.cos(radians);
|
|
1229
1213
|
const ss = Math.sin(radians);
|
|
@@ -1237,25 +1221,26 @@ class TrigPolynomial {
|
|
|
1237
1221
|
exports.TrigPolynomial = TrigPolynomial;
|
|
1238
1222
|
// tolerance for small angle decision.
|
|
1239
1223
|
TrigPolynomial._smallAngle = 1.0e-11;
|
|
1240
|
-
|
|
1224
|
+
// see core\geometry\internaldocs\unitCircleEllipseIntersection.md for derivation of these coefficients.
|
|
1225
|
+
/** Standard Basis coefficients for the numerator of the y-coordinate y(t) = S(t)/W(t) in the rational semicircle parameterization. */
|
|
1241
1226
|
TrigPolynomial.S = Float64Array.from([0.0, 2.0, -2.0]);
|
|
1242
|
-
/** Standard Basis coefficients for rational
|
|
1227
|
+
/** Standard Basis coefficients for the numerator of the x-coordinate x(t) = C(t)/W(t) in the rational semicircle parameterization. */
|
|
1243
1228
|
TrigPolynomial.C = Float64Array.from([1.0, -2.0]);
|
|
1244
|
-
/** Standard Basis coefficients for rational
|
|
1229
|
+
/** Standard Basis coefficients for the denominator of x(t) and y(t) in the rational semicircle parameterization. */
|
|
1245
1230
|
TrigPolynomial.W = Float64Array.from([1.0, -2.0, 2.0]);
|
|
1246
|
-
/** Standard Basis coefficients for
|
|
1231
|
+
/** Standard Basis coefficients for C(t) * W(t). */
|
|
1247
1232
|
TrigPolynomial.CW = Float64Array.from([1.0, -4.0, 6.0, -4.0]);
|
|
1248
|
-
/** Standard Basis coefficients for
|
|
1233
|
+
/** Standard Basis coefficients for S(t) * W(t). */
|
|
1249
1234
|
TrigPolynomial.SW = Float64Array.from([0.0, 2.0, -6.0, 8.0, -4.0]);
|
|
1250
|
-
/** Standard Basis coefficients for
|
|
1235
|
+
/** Standard Basis coefficients for S(t) * C(t). */
|
|
1251
1236
|
TrigPolynomial.SC = Float64Array.from([0.0, 2.0, -6.0, 4.0]);
|
|
1252
|
-
/** Standard Basis coefficients for
|
|
1237
|
+
/** Standard Basis coefficients for S(t) * S(t). */
|
|
1253
1238
|
TrigPolynomial.SS = Float64Array.from([0.0, 0.0, 4.0, -8.0, 4.0]);
|
|
1254
|
-
/** Standard Basis coefficients for
|
|
1239
|
+
/** Standard Basis coefficients for C(t) * C(t). */
|
|
1255
1240
|
TrigPolynomial.CC = Float64Array.from([1.0, -4.0, 4.0]);
|
|
1256
|
-
/** Standard Basis coefficients for
|
|
1241
|
+
/** Standard Basis coefficients for W(t) * W(t). */
|
|
1257
1242
|
TrigPolynomial.WW = Float64Array.from([1.0, -4.0, 8.0, -8.0, 4.0]);
|
|
1258
|
-
/** Standard Basis coefficients for (
|
|
1243
|
+
/** Standard Basis coefficients for C(t) * C(t) - S(t) * S(t). */
|
|
1259
1244
|
TrigPolynomial.CCminusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]);
|
|
1260
1245
|
TrigPolynomial._coefficientRelTol = 1.0e-12;
|
|
1261
1246
|
/**
|