@itwin/core-geometry 3.0.0-dev.76 → 3.0.0-dev.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1049 -0
- package/lib/{Constant.d.ts → cjs/Constant.d.ts} +0 -0
- package/lib/cjs/Constant.d.ts.map +1 -0
- package/lib/{Constant.js → cjs/Constant.js} +0 -0
- package/lib/cjs/Constant.js.map +1 -0
- package/lib/{Geometry.d.ts → cjs/Geometry.d.ts} +0 -0
- package/lib/cjs/Geometry.d.ts.map +1 -0
- package/lib/{Geometry.js → cjs/Geometry.js} +0 -0
- package/lib/cjs/Geometry.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/AkimaCurve3d.d.ts +0 -0
- package/lib/cjs/bspline/AkimaCurve3d.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/AkimaCurve3d.js +0 -0
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSpline1dNd.d.ts +0 -0
- package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSpline1dNd.js +0 -0
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurve.d.ts +0 -0
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurve.js +0 -0
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurve3dH.d.ts +0 -0
- package/lib/cjs/bspline/BSplineCurve3dH.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurve3dH.js +0 -0
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurveOps.d.ts +0 -0
- package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineCurveOps.js +0 -0
- package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -0
- package/lib/cjs/bspline/BSplineSurface.d.ts +491 -0
- package/lib/cjs/bspline/BSplineSurface.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BSplineSurface.js +0 -0
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/Bezier1dNd.d.ts +0 -0
- package/lib/cjs/bspline/Bezier1dNd.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/Bezier1dNd.js +0 -0
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurve3d.d.ts +0 -0
- package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurve3d.js +0 -0
- package/lib/cjs/bspline/BezierCurve3d.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurve3dH.d.ts +0 -0
- package/lib/cjs/bspline/BezierCurve3dH.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurve3dH.js +0 -0
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurveBase.d.ts +0 -0
- package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/BezierCurveBase.js +0 -0
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/InterpolationCurve3d.d.ts +0 -0
- package/lib/cjs/bspline/InterpolationCurve3d.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/InterpolationCurve3d.js +0 -0
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/KnotVector.d.ts +0 -0
- package/lib/cjs/bspline/KnotVector.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/KnotVector.js +0 -0
- package/lib/cjs/bspline/KnotVector.js.map +1 -0
- package/lib/{bspline → cjs/bspline}/SurfaceLocationDetail.d.ts +0 -0
- package/lib/cjs/bspline/SurfaceLocationDetail.d.ts.map +1 -0
- package/lib/{bspline → cjs/bspline}/SurfaceLocationDetail.js +0 -0
- package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/AlternatingConvexClipTree.d.ts +0 -0
- package/lib/cjs/clipping/AlternatingConvexClipTree.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/AlternatingConvexClipTree.js +0 -0
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/BooleanClipFactory.d.ts +0 -0
- package/lib/cjs/clipping/BooleanClipFactory.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/BooleanClipFactory.js +0 -0
- package/lib/cjs/clipping/BooleanClipFactory.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/BooleanClipNode.d.ts +0 -0
- package/lib/cjs/clipping/BooleanClipNode.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/BooleanClipNode.js +0 -0
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipPlane.d.ts +0 -0
- package/lib/cjs/clipping/ClipPlane.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipPlane.js +0 -0
- package/lib/cjs/clipping/ClipPlane.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipPrimitive.d.ts +0 -0
- package/lib/cjs/clipping/ClipPrimitive.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipPrimitive.js +0 -0
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipUtils.d.ts +0 -0
- package/lib/cjs/clipping/ClipUtils.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipUtils.js +0 -0
- package/lib/cjs/clipping/ClipUtils.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipVector.d.ts +0 -0
- package/lib/cjs/clipping/ClipVector.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/ClipVector.js +0 -0
- package/lib/cjs/clipping/ClipVector.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/ConvexClipPlaneSet.d.ts +0 -0
- package/lib/cjs/clipping/ConvexClipPlaneSet.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/ConvexClipPlaneSet.js +0 -0
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/UnionOfConvexClipPlaneSets.d.ts +0 -0
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/UnionOfConvexClipPlaneSets.js +0 -0
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -0
- package/lib/{clipping → cjs/clipping}/internalContexts/LineStringOffsetClipperContext.d.ts +0 -0
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -0
- package/lib/{clipping → cjs/clipping}/internalContexts/LineStringOffsetClipperContext.js +0 -0
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -0
- package/lib/{core-geometry.d.ts → cjs/core-geometry.d.ts} +0 -0
- package/lib/cjs/core-geometry.d.ts.map +1 -0
- package/lib/{core-geometry.js → cjs/core-geometry.js} +0 -0
- package/lib/cjs/core-geometry.js.map +1 -0
- package/lib/{curve → cjs/curve}/Arc3d.d.ts +0 -0
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Arc3d.js +0 -0
- package/lib/cjs/curve/Arc3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/ChainCollectorContext.d.ts +0 -0
- package/lib/cjs/curve/ChainCollectorContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/ChainCollectorContext.js +0 -0
- package/lib/cjs/curve/ChainCollectorContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/ConstructCurveBetweenCurves.d.ts +0 -0
- package/lib/cjs/curve/ConstructCurveBetweenCurves.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/ConstructCurveBetweenCurves.js +0 -0
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -0
- package/lib/{curve → cjs/curve}/CoordinateXYZ.d.ts +0 -0
- package/lib/cjs/curve/CoordinateXYZ.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CoordinateXYZ.js +0 -0
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveChain.d.ts +0 -0
- package/lib/cjs/curve/CurveChain.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveChain.js +0 -0
- package/lib/cjs/curve/CurveChain.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveChainWithDistanceIndex.d.ts +0 -0
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveChainWithDistanceIndex.js +0 -0
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCollection.d.ts +0 -0
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCollection.js +0 -0
- package/lib/cjs/curve/CurveCollection.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurve.d.ts +0 -0
- package/lib/cjs/curve/CurveCurve.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurve.js +0 -0
- package/lib/cjs/curve/CurveCurve.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveCloseApproachXY.d.ts +0 -0
- package/lib/cjs/curve/CurveCurveCloseApproachXY.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveCloseApproachXY.js +0 -0
- package/lib/cjs/curve/CurveCurveCloseApproachXY.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveIntersectXY.d.ts +0 -0
- package/lib/cjs/curve/CurveCurveIntersectXY.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveIntersectXY.js +0 -0
- package/lib/cjs/curve/CurveCurveIntersectXY.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveIntersectXYZ.d.ts +0 -0
- package/lib/cjs/curve/CurveCurveIntersectXYZ.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveCurveIntersectXYZ.js +0 -0
- package/lib/cjs/curve/CurveCurveIntersectXYZ.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveExtendMode.d.ts +0 -0
- package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveExtendMode.js +0 -0
- package/lib/cjs/curve/CurveExtendMode.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveFactory.d.ts +0 -0
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveFactory.js +0 -0
- package/lib/cjs/curve/CurveFactory.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveLocationDetail.d.ts +0 -0
- package/lib/cjs/curve/CurveLocationDetail.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveLocationDetail.js +0 -0
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurvePrimitive.d.ts +0 -0
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurvePrimitive.js +0 -0
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveProcessor.d.ts +0 -0
- package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveProcessor.js +0 -0
- package/lib/cjs/curve/CurveProcessor.js.map +1 -0
- package/lib/{curve → cjs/curve}/CurveWireMomentsXYZ.d.ts +0 -0
- package/lib/cjs/curve/CurveWireMomentsXYZ.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/CurveWireMomentsXYZ.js +0 -0
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -0
- package/lib/{curve → cjs/curve}/GeometryQuery.d.ts +0 -0
- package/lib/cjs/curve/GeometryQuery.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/GeometryQuery.js +0 -0
- package/lib/cjs/curve/GeometryQuery.js.map +1 -0
- package/lib/{curve → cjs/curve}/LineSegment3d.d.ts +0 -0
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/LineSegment3d.js +0 -0
- package/lib/cjs/curve/LineSegment3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/LineString3d.d.ts +0 -0
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/LineString3d.js +0 -0
- package/lib/cjs/curve/LineString3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/Loop.d.ts +0 -0
- package/lib/cjs/curve/Loop.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Loop.js +0 -0
- package/lib/cjs/curve/Loop.js.map +1 -0
- package/lib/{curve → cjs/curve}/ParityRegion.d.ts +0 -0
- package/lib/cjs/curve/ParityRegion.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/ParityRegion.js +0 -0
- package/lib/cjs/curve/ParityRegion.js.map +1 -0
- package/lib/{curve → cjs/curve}/Path.d.ts +0 -0
- package/lib/cjs/curve/Path.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Path.js +0 -0
- package/lib/cjs/curve/Path.js.map +1 -0
- package/lib/{curve → cjs/curve}/PointString3d.d.ts +0 -0
- package/lib/cjs/curve/PointString3d.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/PointString3d.js +0 -0
- package/lib/cjs/curve/PointString3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/ProxyCurve.d.ts +0 -0
- package/lib/cjs/curve/ProxyCurve.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/ProxyCurve.js +0 -0
- package/lib/cjs/curve/ProxyCurve.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/ConsolidateAdjacentPrimitivesContext.d.ts +0 -0
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/ConsolidateAdjacentPrimitivesContext.js +0 -0
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/CurveSplitContext.d.ts +0 -0
- package/lib/cjs/curve/Query/CurveSplitContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/CurveSplitContext.js +0 -0
- package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/CylindricalRange.d.ts +0 -0
- package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/CylindricalRange.js +0 -0
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/InOutTests.d.ts +0 -0
- package/lib/cjs/curve/Query/InOutTests.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/InOutTests.js +0 -0
- package/lib/cjs/curve/Query/InOutTests.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/PlanarSubdivision.d.ts +0 -0
- package/lib/cjs/curve/Query/PlanarSubdivision.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/PlanarSubdivision.js +0 -0
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/StrokeCountChain.d.ts +0 -0
- package/lib/cjs/curve/Query/StrokeCountChain.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/StrokeCountChain.js +0 -0
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -0
- package/lib/{curve → cjs/curve}/Query/StrokeCountMap.d.ts +0 -0
- package/lib/cjs/curve/Query/StrokeCountMap.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/Query/StrokeCountMap.js +0 -0
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -0
- package/lib/{curve → cjs/curve}/RegionMomentsXY.d.ts +0 -0
- package/lib/cjs/curve/RegionMomentsXY.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/RegionMomentsXY.js +0 -0
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -0
- package/lib/{curve → cjs/curve}/RegionOps.d.ts +0 -0
- package/lib/cjs/curve/RegionOps.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/RegionOps.js +0 -0
- package/lib/cjs/curve/RegionOps.js.map +1 -0
- package/lib/{curve → cjs/curve}/RegionOpsClassificationSweeps.d.ts +0 -0
- package/lib/cjs/curve/RegionOpsClassificationSweeps.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/RegionOpsClassificationSweeps.js +0 -0
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -0
- package/lib/{curve → cjs/curve}/StrokeOptions.d.ts +0 -0
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/StrokeOptions.js +0 -0
- package/lib/cjs/curve/StrokeOptions.js.map +1 -0
- package/lib/{curve → cjs/curve}/UnionRegion.d.ts +0 -0
- package/lib/cjs/curve/UnionRegion.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/UnionRegion.js +0 -0
- package/lib/cjs/curve/UnionRegion.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CloneCurvesContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CloneCurvesContext.js +0 -0
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CloneWithExpandedLineStrings.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CloneWithExpandedLineStrings.js +0 -0
- package/lib/cjs/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CountLinearPartsSearchContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/CountLinearPartsSearchContext.js +0 -0
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/GapSearchContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/GapSearchContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/GapSearchContext.js +0 -0
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/MultiChainCollector.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/MultiChainCollector.js +0 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/PlaneAltitudeRangeContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/PlaneAltitudeRangeContext.js +0 -0
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/PolygonOffsetContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/PolygonOffsetContext.js +0 -0
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/SumLengthsContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/SumLengthsContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/SumLengthsContext.js +0 -0
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/TransformInPlaceContext.d.ts +0 -0
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/internalContexts/TransformInPlaceContext.js +0 -0
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/AustralianRailCorpXYEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/AustralianRailCorpXYEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/ClothoidSeries.d.ts +0 -0
- package/lib/cjs/curve/spiral/ClothoidSeries.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/ClothoidSeries.js +0 -0
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/CubicEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/CubicEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/CubicEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/CzechSpiralEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/CzechSpiralEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/DirectHalfCosineSpiralEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/DirectHalfCosineSpiralEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -0
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts +265 -0
- package/lib/cjs/curve/spiral/DirectSpiral3d.d.ts.map +1 -0
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +473 -0
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -0
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts +158 -0
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -0
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +364 -0
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/MXCubicAlongArcSpiralEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/NormalizedTransition.d.ts +0 -0
- package/lib/cjs/curve/spiral/NormalizedTransition.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/NormalizedTransition.js +0 -0
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/PolishCubicSpiralEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/PolishCubicSpiralEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/TransitionConditionalProperties.d.ts +0 -0
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/TransitionConditionalProperties.js +0 -0
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/TransitionSpiral3d.d.ts +0 -0
- package/lib/cjs/curve/spiral/TransitionSpiral3d.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/TransitionSpiral3d.js +0 -0
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/XYCurveEvaluator.d.ts +0 -0
- package/lib/cjs/curve/spiral/XYCurveEvaluator.d.ts.map +1 -0
- package/lib/{curve → cjs/curve}/spiral/XYCurveEvaluator.js +0 -0
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Angle.d.ts +0 -0
- package/lib/cjs/geometry3d/Angle.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Angle.js +0 -0
- package/lib/cjs/geometry3d/Angle.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/AngleSweep.d.ts +0 -0
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/AngleSweep.js +0 -0
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/BarycentricTriangle.d.ts +0 -0
- package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/BarycentricTriangle.js +0 -0
- package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/BilinearPatch.d.ts +0 -0
- package/lib/cjs/geometry3d/BilinearPatch.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/BilinearPatch.js +0 -0
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/CoincidentGeometryOps.d.ts +0 -0
- package/lib/cjs/geometry3d/CoincidentGeometryOps.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/CoincidentGeometryOps.js +0 -0
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Ellipsoid.d.ts +0 -0
- package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Ellipsoid.js +0 -0
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/FrameBuilder.d.ts +0 -0
- package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/FrameBuilder.js +0 -0
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/FrustumAnimation.d.ts +0 -0
- package/lib/cjs/geometry3d/FrustumAnimation.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/FrustumAnimation.js +0 -0
- package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GeometryHandler.d.ts +0 -0
- package/lib/cjs/geometry3d/GeometryHandler.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GeometryHandler.js +0 -0
- package/lib/cjs/geometry3d/GeometryHandler.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableBlockedArray.d.ts +0 -0
- package/lib/cjs/geometry3d/GrowableBlockedArray.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableBlockedArray.js +0 -0
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableFloat64Array.d.ts +0 -0
- package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableFloat64Array.js +0 -0
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableXYArray.d.ts +0 -0
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableXYArray.js +0 -0
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableXYZArray.d.ts +0 -0
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/GrowableXYZArray.js +0 -0
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedCollectionInterval.d.ts +0 -0
- package/lib/cjs/geometry3d/IndexedCollectionInterval.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedCollectionInterval.js +0 -0
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedXYCollection.d.ts +0 -0
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedXYCollection.js +0 -0
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedXYZCollection.d.ts +0 -0
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/IndexedXYZCollection.js +0 -0
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/LongitudeLatitudeAltitude.d.ts +0 -0
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/LongitudeLatitudeAltitude.js +0 -0
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Matrix3d.d.ts +0 -0
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Matrix3d.js +0 -0
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/OrderedRotationAngles.d.ts +0 -0
- package/lib/cjs/geometry3d/OrderedRotationAngles.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/OrderedRotationAngles.js +0 -0
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndUnitNormal.d.ts +0 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndUnitNormal.js +0 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndVectors.d.ts +0 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Plane3dByOriginAndVectors.js +0 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point2dArrayCarrier.d.ts +0 -0
- package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point2dArrayCarrier.js +0 -0
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point2dVector2d.d.ts +0 -0
- package/lib/cjs/geometry3d/Point2dVector2d.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point2dVector2d.js +0 -0
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point3dArrayCarrier.d.ts +0 -0
- package/lib/cjs/geometry3d/Point3dArrayCarrier.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point3dArrayCarrier.js +0 -0
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point3dVector3d.d.ts +0 -0
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Point3dVector3d.js +0 -0
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PointHelpers.d.ts +0 -0
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PointHelpers.js +0 -0
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PointStreaming.d.ts +0 -0
- package/lib/cjs/geometry3d/PointStreaming.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PointStreaming.js +0 -0
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolygonOps.d.ts +0 -0
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolygonOps.js +0 -0
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolylineCompressionByEdgeOffset.d.ts +0 -0
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolylineCompressionByEdgeOffset.js +0 -0
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolylineOps.d.ts +0 -0
- package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/PolylineOps.js +0 -0
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Range.d.ts +0 -0
- package/lib/cjs/geometry3d/Range.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Range.js +0 -0
- package/lib/cjs/geometry3d/Range.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Ray3d.d.ts +0 -0
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Ray3d.js +0 -0
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/ReusableObjectCache.d.ts +0 -0
- package/lib/cjs/geometry3d/ReusableObjectCache.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/ReusableObjectCache.js +0 -0
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Segment1d.d.ts +0 -0
- package/lib/cjs/geometry3d/Segment1d.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Segment1d.js +0 -0
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/SortablePolygon.d.ts +0 -0
- package/lib/cjs/geometry3d/SortablePolygon.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/SortablePolygon.js +0 -0
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Transform.d.ts +0 -0
- package/lib/cjs/geometry3d/Transform.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/Transform.js +0 -0
- package/lib/cjs/geometry3d/Transform.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/UVSurfaceOps.d.ts +0 -0
- package/lib/cjs/geometry3d/UVSurfaceOps.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/UVSurfaceOps.js +0 -0
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/XYZProps.d.ts +0 -0
- package/lib/cjs/geometry3d/XYZProps.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/XYZProps.js +0 -0
- package/lib/cjs/geometry3d/XYZProps.js.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/YawPitchRollAngles.d.ts +0 -0
- package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -0
- package/lib/{geometry3d → cjs/geometry3d}/YawPitchRollAngles.js +0 -0
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Map4d.d.ts +0 -0
- package/lib/cjs/geometry4d/Map4d.d.ts.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Map4d.js +0 -0
- package/lib/cjs/geometry4d/Map4d.js.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Matrix4d.d.ts +0 -0
- package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Matrix4d.js +0 -0
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/MomentData.d.ts +0 -0
- package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/MomentData.js +0 -0
- package/lib/cjs/geometry4d/MomentData.js.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/PlaneByOriginAndVectors4d.d.ts +0 -0
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/PlaneByOriginAndVectors4d.js +0 -0
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Point4d.d.ts +0 -0
- package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -0
- package/lib/{geometry4d → cjs/geometry4d}/Point4d.js +0 -0
- package/lib/cjs/geometry4d/Point4d.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/BandedSystem.d.ts +0 -0
- package/lib/cjs/numerics/BandedSystem.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/BandedSystem.js +0 -0
- package/lib/cjs/numerics/BandedSystem.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/BezierPolynomials.d.ts +0 -0
- package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/BezierPolynomials.js +0 -0
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/ClusterableArray.d.ts +0 -0
- package/lib/cjs/numerics/ClusterableArray.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/ClusterableArray.js +0 -0
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/Complex.d.ts +0 -0
- package/lib/cjs/numerics/Complex.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/Complex.js +0 -0
- package/lib/cjs/numerics/Complex.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/ConvexPolygon2d.d.ts +0 -0
- package/lib/cjs/numerics/ConvexPolygon2d.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/ConvexPolygon2d.js +0 -0
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/Newton.d.ts +0 -0
- package/lib/cjs/numerics/Newton.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/Newton.js +0 -0
- package/lib/cjs/numerics/Newton.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/PascalCoefficients.d.ts +0 -0
- package/lib/cjs/numerics/PascalCoefficients.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/PascalCoefficients.js +0 -0
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/PolarData.d.ts +0 -0
- package/lib/cjs/numerics/PolarData.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/PolarData.js +0 -0
- package/lib/cjs/numerics/PolarData.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/Polynomials.d.ts +0 -0
- package/lib/cjs/numerics/Polynomials.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/Polynomials.js +0 -0
- package/lib/cjs/numerics/Polynomials.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/Quadrature.d.ts +0 -0
- package/lib/cjs/numerics/Quadrature.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/Quadrature.js +0 -0
- package/lib/cjs/numerics/Quadrature.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/Range1dArray.d.ts +0 -0
- package/lib/cjs/numerics/Range1dArray.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/Range1dArray.js +0 -0
- package/lib/cjs/numerics/Range1dArray.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/TriDiagonalSystem.d.ts +0 -0
- package/lib/cjs/numerics/TriDiagonalSystem.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/TriDiagonalSystem.js +0 -0
- package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/UnionFind.d.ts +0 -0
- package/lib/cjs/numerics/UnionFind.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/UnionFind.js +0 -0
- package/lib/cjs/numerics/UnionFind.js.map +1 -0
- package/lib/{numerics → cjs/numerics}/UsageSums.d.ts +0 -0
- package/lib/cjs/numerics/UsageSums.d.ts.map +1 -0
- package/lib/{numerics → cjs/numerics}/UsageSums.js +0 -0
- package/lib/cjs/numerics/UsageSums.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/AuxData.d.ts +0 -0
- package/lib/cjs/polyface/AuxData.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/AuxData.js +0 -0
- package/lib/cjs/polyface/AuxData.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/BoxTopology.d.ts +0 -0
- package/lib/cjs/polyface/BoxTopology.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/BoxTopology.js +0 -0
- package/lib/cjs/polyface/BoxTopology.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/FacetFaceData.d.ts +0 -0
- package/lib/cjs/polyface/FacetFaceData.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/FacetFaceData.js +0 -0
- package/lib/cjs/polyface/FacetFaceData.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/FacetOrientation.d.ts +0 -0
- package/lib/cjs/polyface/FacetOrientation.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/FacetOrientation.js +0 -0
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/GreedyTriangulationBetweenLineStrings.d.ts +0 -0
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/GreedyTriangulationBetweenLineStrings.js +0 -0
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/IndexedEdgeMatcher.d.ts +0 -0
- package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/IndexedEdgeMatcher.js +0 -0
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/IndexedPolyfaceVisitor.d.ts +0 -0
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/IndexedPolyfaceVisitor.js +0 -0
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/Polyface.d.ts +0 -0
- package/lib/cjs/polyface/Polyface.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/Polyface.js +0 -0
- package/lib/cjs/polyface/Polyface.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceBuilder.d.ts +0 -0
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceBuilder.js +0 -0
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceClip.d.ts +0 -0
- package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceClip.js +0 -0
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -0
- package/lib/cjs/polyface/PolyfaceData.d.ts +206 -0
- package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -0
- package/lib/cjs/polyface/PolyfaceData.js +531 -0
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceQuery.d.ts +0 -0
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/PolyfaceQuery.js +0 -0
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/RangeLengthData.d.ts +0 -0
- package/lib/cjs/polyface/RangeLengthData.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/RangeLengthData.js +0 -0
- package/lib/cjs/polyface/RangeLengthData.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/TaggedNumericData.d.ts +0 -0
- package/lib/cjs/polyface/TaggedNumericData.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/TaggedNumericData.js +0 -0
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/TriangleCandidate.d.ts +0 -0
- package/lib/cjs/polyface/TriangleCandidate.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/TriangleCandidate.js +0 -0
- package/lib/cjs/polyface/TriangleCandidate.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/BuildAverageNormalsContext.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/BuildAverageNormalsContext.js +0 -0
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSet.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSet.js +0 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/GriddedRaggedRange2dSetWithOverflow.js +0 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/LinearSearchRange2dArray.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/LinearSearchRange2dArray.js +0 -0
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/Range2dSearchInterface.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/Range2dSearchInterface.js +0 -0
- package/lib/cjs/polyface/multiclip/Range2dSearchInterface.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/RangeSearch.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/RangeSearch.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/RangeSearch.js +0 -0
- package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/SweepLineStringToFacetContext.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/SweepLineStringToFacetContext.js +0 -0
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/XYPointBuckets.d.ts +0 -0
- package/lib/cjs/polyface/multiclip/XYPointBuckets.d.ts.map +1 -0
- package/lib/{polyface → cjs/polyface}/multiclip/XYPointBuckets.js +0 -0
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBAccessors.d.ts +0 -0
- package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBAccessors.js +0 -0
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBReader.d.ts +0 -0
- package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBReader.js +0 -0
- package/lib/cjs/serialization/BGFBReader.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBWriter.d.ts +0 -0
- package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/BGFBWriter.js +0 -0
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/BentleyGeometryFlatBuffer.d.ts +0 -0
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/BentleyGeometryFlatBuffer.js +0 -0
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/DeepCompare.d.ts +0 -0
- package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/DeepCompare.js +0 -0
- package/lib/cjs/serialization/DeepCompare.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/GeometrySamples.d.ts +0 -0
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/GeometrySamples.js +0 -0
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -0
- package/lib/{serialization → cjs/serialization}/IModelJsonSchema.d.ts +0 -0
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -0
- package/lib/{serialization → cjs/serialization}/IModelJsonSchema.js +0 -0
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -0
- package/lib/{solid → cjs/solid}/Box.d.ts +0 -0
- package/lib/cjs/solid/Box.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/Box.js +0 -0
- package/lib/cjs/solid/Box.js.map +1 -0
- package/lib/{solid → cjs/solid}/Cone.d.ts +0 -0
- package/lib/cjs/solid/Cone.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/Cone.js +0 -0
- package/lib/cjs/solid/Cone.js.map +1 -0
- package/lib/{solid → cjs/solid}/LinearSweep.d.ts +0 -0
- package/lib/cjs/solid/LinearSweep.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/LinearSweep.js +0 -0
- package/lib/cjs/solid/LinearSweep.js.map +1 -0
- package/lib/{solid → cjs/solid}/RotationalSweep.d.ts +0 -0
- package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/RotationalSweep.js +0 -0
- package/lib/cjs/solid/RotationalSweep.js.map +1 -0
- package/lib/{solid → cjs/solid}/RuledSweep.d.ts +0 -0
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/RuledSweep.js +0 -0
- package/lib/cjs/solid/RuledSweep.js.map +1 -0
- package/lib/{solid → cjs/solid}/SolidPrimitive.d.ts +0 -0
- package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/SolidPrimitive.js +0 -0
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -0
- package/lib/{solid → cjs/solid}/Sphere.d.ts +0 -0
- package/lib/cjs/solid/Sphere.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/Sphere.js +0 -0
- package/lib/cjs/solid/Sphere.js.map +1 -0
- package/lib/{solid → cjs/solid}/SweepContour.d.ts +0 -0
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/SweepContour.js +0 -0
- package/lib/cjs/solid/SweepContour.js.map +1 -0
- package/lib/{solid → cjs/solid}/TorusPipe.d.ts +0 -0
- package/lib/cjs/solid/TorusPipe.d.ts.map +1 -0
- package/lib/{solid → cjs/solid}/TorusPipe.js +0 -0
- package/lib/cjs/solid/TorusPipe.js.map +1 -0
- package/lib/{topology → cjs/topology}/ChainMerge.d.ts +0 -0
- package/lib/cjs/topology/ChainMerge.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/ChainMerge.js +0 -0
- package/lib/cjs/topology/ChainMerge.js.map +1 -0
- package/lib/{topology → cjs/topology}/Graph.d.ts +0 -0
- package/lib/cjs/topology/Graph.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/Graph.js +0 -0
- package/lib/cjs/topology/Graph.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphSearch.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgeGraphSearch.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphSearch.js +0 -0
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphSpineContext.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphSpineContext.js +0 -0
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphValidation.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgeGraphValidation.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeGraphValidation.js +0 -0
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeMarkSet.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgeMarkSet.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeMarkSet.js +0 -0
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeNodeXYZUV.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgeNodeXYZUV.js +0 -0
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePointInGraphSearch.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePointInGraphSearch.js +0 -0
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePositionDetail.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgePositionDetail.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePositionDetail.js +0 -0
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePriorityQueue.d.ts +0 -0
- package/lib/cjs/topology/HalfEdgePriorityQueue.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/HalfEdgePriorityQueue.js +0 -0
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -0
- package/lib/{topology → cjs/topology}/InsertAndRetriangulateContext.d.ts +0 -0
- package/lib/cjs/topology/InsertAndRetriangulateContext.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/InsertAndRetriangulateContext.js +0 -0
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -0
- package/lib/{topology → cjs/topology}/MaskManager.d.ts +0 -0
- package/lib/cjs/topology/MaskManager.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/MaskManager.js +0 -0
- package/lib/cjs/topology/MaskManager.js.map +1 -0
- package/lib/{topology → cjs/topology}/Merging.d.ts +0 -0
- package/lib/cjs/topology/Merging.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/Merging.js +0 -0
- package/lib/cjs/topology/Merging.js.map +1 -0
- package/lib/{topology → cjs/topology}/RegularizeFace.d.ts +0 -0
- package/lib/cjs/topology/RegularizeFace.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/RegularizeFace.js +0 -0
- package/lib/cjs/topology/RegularizeFace.js.map +1 -0
- package/lib/{topology → cjs/topology}/SignedDataSummary.d.ts +0 -0
- package/lib/cjs/topology/SignedDataSummary.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/SignedDataSummary.js +0 -0
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -0
- package/lib/{topology → cjs/topology}/Triangulation.d.ts +0 -0
- package/lib/cjs/topology/Triangulation.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/Triangulation.js +0 -0
- package/lib/cjs/topology/Triangulation.js.map +1 -0
- package/lib/{topology → cjs/topology}/XYParitySearchContext.d.ts +0 -0
- package/lib/cjs/topology/XYParitySearchContext.d.ts.map +1 -0
- package/lib/{topology → cjs/topology}/XYParitySearchContext.js +0 -0
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -0
- package/lib/esm/Constant.d.ts +26 -0
- package/lib/esm/Constant.d.ts.map +1 -0
- package/lib/esm/Constant.js +30 -0
- package/lib/esm/Constant.js.map +1 -0
- package/lib/esm/Geometry.d.ts +498 -0
- package/lib/esm/Geometry.d.ts.map +1 -0
- package/lib/esm/Geometry.js +776 -0
- package/lib/esm/Geometry.js.map +1 -0
- package/lib/esm/bspline/AkimaCurve3d.d.ts +97 -0
- package/lib/esm/bspline/AkimaCurve3d.d.ts.map +1 -0
- package/lib/esm/bspline/AkimaCurve3d.js +158 -0
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -0
- package/lib/esm/bspline/BSpline1dNd.d.ts +96 -0
- package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -0
- package/lib/esm/bspline/BSpline1dNd.js +191 -0
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -0
- package/lib/esm/bspline/BSplineCurve.d.ts +310 -0
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -0
- package/lib/esm/bspline/BSplineCurve.js +608 -0
- package/lib/esm/bspline/BSplineCurve.js.map +1 -0
- package/lib/esm/bspline/BSplineCurve3dH.d.ts +140 -0
- package/lib/esm/bspline/BSplineCurve3dH.d.ts.map +1 -0
- package/lib/esm/bspline/BSplineCurve3dH.js +421 -0
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -0
- package/lib/esm/bspline/BSplineCurveOps.d.ts +159 -0
- package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -0
- package/lib/esm/bspline/BSplineCurveOps.js +805 -0
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -0
- package/lib/esm/bspline/BSplineSurface.d.ts +491 -0
- package/lib/esm/bspline/BSplineSurface.d.ts.map +1 -0
- package/lib/esm/bspline/BSplineSurface.js +837 -0
- package/lib/esm/bspline/BSplineSurface.js.map +1 -0
- package/lib/esm/bspline/Bezier1dNd.d.ts +113 -0
- package/lib/esm/bspline/Bezier1dNd.d.ts.map +1 -0
- package/lib/esm/bspline/Bezier1dNd.js +341 -0
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -0
- package/lib/esm/bspline/BezierCurve3d.d.ts +76 -0
- package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -0
- package/lib/esm/bspline/BezierCurve3d.js +214 -0
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -0
- package/lib/esm/bspline/BezierCurve3dH.d.ts +107 -0
- package/lib/esm/bspline/BezierCurve3dH.d.ts.map +1 -0
- package/lib/esm/bspline/BezierCurve3dH.js +348 -0
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -0
- package/lib/esm/bspline/BezierCurveBase.d.ts +111 -0
- package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -0
- package/lib/esm/bspline/BezierCurveBase.js +196 -0
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -0
- package/lib/esm/bspline/InterpolationCurve3d.d.ts +163 -0
- package/lib/esm/bspline/InterpolationCurve3d.d.ts.map +1 -0
- package/lib/esm/bspline/InterpolationCurve3d.js +281 -0
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -0
- package/lib/esm/bspline/KnotVector.d.ts +160 -0
- package/lib/esm/bspline/KnotVector.d.ts.map +1 -0
- package/lib/esm/bspline/KnotVector.js +427 -0
- package/lib/esm/bspline/KnotVector.js.map +1 -0
- package/lib/esm/bspline/SurfaceLocationDetail.d.ts +52 -0
- package/lib/esm/bspline/SurfaceLocationDetail.d.ts.map +1 -0
- package/lib/esm/bspline/SurfaceLocationDetail.js +55 -0
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -0
- package/lib/esm/clipping/AlternatingConvexClipTree.d.ts +165 -0
- package/lib/esm/clipping/AlternatingConvexClipTree.d.ts.map +1 -0
- package/lib/esm/clipping/AlternatingConvexClipTree.js +519 -0
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -0
- package/lib/esm/clipping/BooleanClipFactory.d.ts +80 -0
- package/lib/esm/clipping/BooleanClipFactory.d.ts.map +1 -0
- package/lib/esm/clipping/BooleanClipFactory.js +198 -0
- package/lib/esm/clipping/BooleanClipFactory.js.map +1 -0
- package/lib/esm/clipping/BooleanClipNode.d.ts +103 -0
- package/lib/esm/clipping/BooleanClipNode.d.ts.map +1 -0
- package/lib/esm/clipping/BooleanClipNode.js +255 -0
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -0
- package/lib/esm/clipping/ClipPlane.d.ts +258 -0
- package/lib/esm/clipping/ClipPlane.d.ts.map +1 -0
- package/lib/esm/clipping/ClipPlane.js +505 -0
- package/lib/esm/clipping/ClipPlane.js.map +1 -0
- package/lib/esm/clipping/ClipPrimitive.d.ts +270 -0
- package/lib/esm/clipping/ClipPrimitive.d.ts.map +1 -0
- package/lib/esm/clipping/ClipPrimitive.js +620 -0
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -0
- package/lib/esm/clipping/ClipUtils.d.ts +278 -0
- package/lib/esm/clipping/ClipUtils.d.ts.map +1 -0
- package/lib/esm/clipping/ClipUtils.js +593 -0
- package/lib/esm/clipping/ClipUtils.js.map +1 -0
- package/lib/esm/clipping/ClipVector.d.ts +154 -0
- package/lib/esm/clipping/ClipVector.d.ts.map +1 -0
- package/lib/esm/clipping/ClipVector.js +388 -0
- package/lib/esm/clipping/ClipVector.js.map +1 -0
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts +250 -0
- package/lib/esm/clipping/ConvexClipPlaneSet.d.ts.map +1 -0
- package/lib/esm/clipping/ConvexClipPlaneSet.js +685 -0
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -0
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts +126 -0
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.d.ts.map +1 -0
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +325 -0
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -0
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts +42 -0
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +1 -0
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +160 -0
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -0
- package/lib/esm/core-geometry.d.ts +228 -0
- package/lib/esm/core-geometry.d.ts.map +1 -0
- package/lib/esm/core-geometry.js +247 -0
- package/lib/esm/core-geometry.js.map +1 -0
- package/lib/esm/curve/Arc3d.d.ts +477 -0
- package/lib/esm/curve/Arc3d.d.ts.map +1 -0
- package/lib/esm/curve/Arc3d.js +905 -0
- package/lib/esm/curve/Arc3d.js.map +1 -0
- package/lib/esm/curve/ChainCollectorContext.d.ts +65 -0
- package/lib/esm/curve/ChainCollectorContext.d.ts.map +1 -0
- package/lib/esm/curve/ChainCollectorContext.js +175 -0
- package/lib/esm/curve/ChainCollectorContext.js.map +1 -0
- package/lib/esm/curve/ConstructCurveBetweenCurves.d.ts +46 -0
- package/lib/esm/curve/ConstructCurveBetweenCurves.d.ts.map +1 -0
- package/lib/esm/curve/ConstructCurveBetweenCurves.js +112 -0
- package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -0
- package/lib/esm/curve/CoordinateXYZ.d.ts +54 -0
- package/lib/esm/curve/CoordinateXYZ.d.ts.map +1 -0
- package/lib/esm/curve/CoordinateXYZ.js +75 -0
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -0
- package/lib/esm/curve/CurveChain.d.ts +17 -0
- package/lib/esm/curve/CurveChain.d.ts.map +1 -0
- package/lib/esm/curve/CurveChain.js +6 -0
- package/lib/esm/curve/CurveChain.js.map +1 -0
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +234 -0
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -0
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +513 -0
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -0
- package/lib/esm/curve/CurveCollection.d.ts +204 -0
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -0
- package/lib/esm/curve/CurveCollection.js +338 -0
- package/lib/esm/curve/CurveCollection.js.map +1 -0
- package/lib/esm/curve/CurveCurve.d.ts +56 -0
- package/lib/esm/curve/CurveCurve.d.ts.map +1 -0
- package/lib/esm/curve/CurveCurve.js +96 -0
- package/lib/esm/curve/CurveCurve.js.map +1 -0
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts +158 -0
- package/lib/esm/curve/CurveCurveCloseApproachXY.d.ts.map +1 -0
- package/lib/esm/curve/CurveCurveCloseApproachXY.js +720 -0
- package/lib/esm/curve/CurveCurveCloseApproachXY.js.map +1 -0
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts +148 -0
- package/lib/esm/curve/CurveCurveIntersectXY.d.ts.map +1 -0
- package/lib/esm/curve/CurveCurveIntersectXY.js +814 -0
- package/lib/esm/curve/CurveCurveIntersectXY.js.map +1 -0
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts +101 -0
- package/lib/esm/curve/CurveCurveIntersectXYZ.d.ts.map +1 -0
- package/lib/esm/curve/CurveCurveIntersectXYZ.js +669 -0
- package/lib/esm/curve/CurveCurveIntersectXYZ.js.map +1 -0
- package/lib/esm/curve/CurveExtendMode.d.ts +50 -0
- package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -0
- package/lib/esm/curve/CurveExtendMode.js +96 -0
- package/lib/esm/curve/CurveExtendMode.js.map +1 -0
- package/lib/esm/curve/CurveFactory.d.ts +122 -0
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -0
- package/lib/esm/curve/CurveFactory.js +491 -0
- package/lib/esm/curve/CurveFactory.js.map +1 -0
- package/lib/esm/curve/CurveLocationDetail.d.ts +207 -0
- package/lib/esm/curve/CurveLocationDetail.d.ts.map +1 -0
- package/lib/esm/curve/CurveLocationDetail.js +392 -0
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -0
- package/lib/esm/curve/CurvePrimitive.d.ts +363 -0
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -0
- package/lib/esm/curve/CurvePrimitive.js +774 -0
- package/lib/esm/curve/CurvePrimitive.js.map +1 -0
- package/lib/esm/curve/CurveProcessor.d.ts +76 -0
- package/lib/esm/curve/CurveProcessor.d.ts.map +1 -0
- package/lib/esm/curve/CurveProcessor.js +122 -0
- package/lib/esm/curve/CurveProcessor.js.map +1 -0
- package/lib/esm/curve/CurveWireMomentsXYZ.d.ts +25 -0
- package/lib/esm/curve/CurveWireMomentsXYZ.d.ts.map +1 -0
- package/lib/esm/curve/CurveWireMomentsXYZ.js +65 -0
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -0
- package/lib/esm/curve/GeometryQuery.d.ts +93 -0
- package/lib/esm/curve/GeometryQuery.d.ts.map +1 -0
- package/lib/esm/curve/GeometryQuery.js +68 -0
- package/lib/esm/curve/GeometryQuery.js.map +1 -0
- package/lib/esm/curve/LineSegment3d.d.ts +176 -0
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -0
- package/lib/esm/curve/LineSegment3d.js +315 -0
- package/lib/esm/curve/LineSegment3d.js.map +1 -0
- package/lib/esm/curve/LineString3d.d.ts +419 -0
- package/lib/esm/curve/LineString3d.d.ts.map +1 -0
- package/lib/esm/curve/LineString3d.js +1280 -0
- package/lib/esm/curve/LineString3d.js.map +1 -0
- package/lib/esm/curve/Loop.d.ts +82 -0
- package/lib/esm/curve/Loop.d.ts.map +1 -0
- package/lib/esm/curve/Loop.js +93 -0
- package/lib/esm/curve/Loop.js.map +1 -0
- package/lib/esm/curve/ParityRegion.d.ts +59 -0
- package/lib/esm/curve/ParityRegion.d.ts.map +1 -0
- package/lib/esm/curve/ParityRegion.js +113 -0
- package/lib/esm/curve/ParityRegion.js.map +1 -0
- package/lib/esm/curve/Path.d.ts +47 -0
- package/lib/esm/curve/Path.d.ts.map +1 -0
- package/lib/esm/curve/Path.js +71 -0
- package/lib/esm/curve/Path.js.map +1 -0
- package/lib/esm/curve/PointString3d.d.ts +78 -0
- package/lib/esm/curve/PointString3d.d.ts.map +1 -0
- package/lib/esm/curve/PointString3d.js +174 -0
- package/lib/esm/curve/PointString3d.js.map +1 -0
- package/lib/esm/curve/ProxyCurve.d.ts +59 -0
- package/lib/esm/curve/ProxyCurve.d.ts.map +1 -0
- package/lib/esm/curve/ProxyCurve.js +78 -0
- package/lib/esm/curve/ProxyCurve.js.map +1 -0
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts +25 -0
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +1 -0
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +111 -0
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -0
- package/lib/esm/curve/Query/CurveSplitContext.d.ts +16 -0
- package/lib/esm/curve/Query/CurveSplitContext.d.ts.map +1 -0
- package/lib/esm/curve/Query/CurveSplitContext.js +107 -0
- package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -0
- package/lib/esm/curve/Query/CylindricalRange.d.ts +46 -0
- package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -0
- package/lib/esm/curve/Query/CylindricalRange.js +111 -0
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -0
- package/lib/esm/curve/Query/InOutTests.d.ts +32 -0
- package/lib/esm/curve/Query/InOutTests.d.ts.map +1 -0
- package/lib/esm/curve/Query/InOutTests.js +116 -0
- package/lib/esm/curve/Query/InOutTests.js.map +1 -0
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts +16 -0
- package/lib/esm/curve/Query/PlanarSubdivision.d.ts.map +1 -0
- package/lib/esm/curve/Query/PlanarSubdivision.js +220 -0
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -0
- package/lib/esm/curve/Query/StrokeCountChain.d.ts +186 -0
- package/lib/esm/curve/Query/StrokeCountChain.d.ts.map +1 -0
- package/lib/esm/curve/Query/StrokeCountChain.js +429 -0
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -0
- package/lib/esm/curve/Query/StrokeCountMap.d.ts +94 -0
- package/lib/esm/curve/Query/StrokeCountMap.d.ts.map +1 -0
- package/lib/esm/curve/Query/StrokeCountMap.js +138 -0
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -0
- package/lib/esm/curve/RegionMomentsXY.d.ts +61 -0
- package/lib/esm/curve/RegionMomentsXY.d.ts.map +1 -0
- package/lib/esm/curve/RegionMomentsXY.js +156 -0
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -0
- package/lib/esm/curve/RegionOps.d.ts +320 -0
- package/lib/esm/curve/RegionOps.d.ts.map +1 -0
- package/lib/esm/curve/RegionOps.js +642 -0
- package/lib/esm/curve/RegionOps.js.map +1 -0
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts +263 -0
- package/lib/esm/curve/RegionOpsClassificationSweeps.d.ts.map +1 -0
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +703 -0
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -0
- package/lib/esm/curve/StrokeOptions.d.ts +94 -0
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -0
- package/lib/esm/curve/StrokeOptions.js +149 -0
- package/lib/esm/curve/StrokeOptions.js.map +1 -0
- package/lib/esm/curve/UnionRegion.d.ts +49 -0
- package/lib/esm/curve/UnionRegion.d.ts.map +1 -0
- package/lib/esm/curve/UnionRegion.js +75 -0
- package/lib/esm/curve/UnionRegion.js.map +1 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts +23 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js +62 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts +16 -0
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js +36 -0
- package/lib/esm/curve/internalContexts/CloneWithExpandedLineStrings.js.map +1 -0
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.d.ts +18 -0
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +32 -0
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts +16 -0
- package/lib/esm/curve/internalContexts/GapSearchContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/GapSearchContext.js +34 -0
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts +114 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +403 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -0
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts +38 -0
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +88 -0
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts +117 -0
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +686 -0
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts +17 -0
- package/lib/esm/curve/internalContexts/SumLengthsContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/SumLengthsContext.js +21 -0
- package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -0
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts +19 -0
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.d.ts.map +1 -0
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +19 -0
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -0
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts +41 -0
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +124 -0
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts +66 -0
- package/lib/esm/curve/spiral/ClothoidSeries.d.ts.map +1 -0
- package/lib/esm/curve/spiral/ClothoidSeries.js +220 -0
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -0
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts +43 -0
- package/lib/esm/curve/spiral/CubicEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/CubicEvaluator.js +67 -0
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts +108 -0
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +198 -0
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts +39 -0
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +88 -0
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts +265 -0
- package/lib/esm/curve/spiral/DirectSpiral3d.d.ts.map +1 -0
- package/lib/esm/curve/spiral/DirectSpiral3d.js +469 -0
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -0
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts +158 -0
- package/lib/esm/curve/spiral/IntegratedSpiral3d.d.ts.map +1 -0
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +360 -0
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -0
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts +38 -0
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +72 -0
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts +140 -0
- package/lib/esm/curve/spiral/NormalizedTransition.d.ts.map +1 -0
- package/lib/esm/curve/spiral/NormalizedTransition.js +182 -0
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -0
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts +50 -0
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +109 -0
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -0
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts +53 -0
- package/lib/esm/curve/spiral/TransitionConditionalProperties.d.ts.map +1 -0
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js +142 -0
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -0
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts +101 -0
- package/lib/esm/curve/spiral/TransitionSpiral3d.d.ts.map +1 -0
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +106 -0
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -0
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts +80 -0
- package/lib/esm/curve/spiral/XYCurveEvaluator.d.ts.map +1 -0
- package/lib/esm/curve/spiral/XYCurveEvaluator.js +103 -0
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -0
- package/lib/esm/geometry3d/Angle.d.ts +214 -0
- package/lib/esm/geometry3d/Angle.d.ts.map +1 -0
- package/lib/esm/geometry3d/Angle.js +399 -0
- package/lib/esm/geometry3d/Angle.js.map +1 -0
- package/lib/esm/geometry3d/AngleSweep.d.ts +187 -0
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -0
- package/lib/esm/geometry3d/AngleSweep.js +325 -0
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -0
- package/lib/esm/geometry3d/BarycentricTriangle.d.ts +51 -0
- package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -0
- package/lib/esm/geometry3d/BarycentricTriangle.js +97 -0
- package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -0
- package/lib/esm/geometry3d/BilinearPatch.d.ts +107 -0
- package/lib/esm/geometry3d/BilinearPatch.d.ts.map +1 -0
- package/lib/esm/geometry3d/BilinearPatch.js +200 -0
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -0
- package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts +56 -0
- package/lib/esm/geometry3d/CoincidentGeometryOps.d.ts.map +1 -0
- package/lib/esm/geometry3d/CoincidentGeometryOps.js +196 -0
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -0
- package/lib/esm/geometry3d/Ellipsoid.d.ts +388 -0
- package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -0
- package/lib/esm/geometry3d/Ellipsoid.js +1069 -0
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -0
- package/lib/esm/geometry3d/FrameBuilder.d.ts +91 -0
- package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -0
- package/lib/esm/geometry3d/FrameBuilder.js +315 -0
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -0
- package/lib/esm/geometry3d/FrustumAnimation.d.ts +59 -0
- package/lib/esm/geometry3d/FrustumAnimation.d.ts.map +1 -0
- package/lib/esm/geometry3d/FrustumAnimation.js +119 -0
- package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -0
- package/lib/esm/geometry3d/GeometryHandler.d.ts +329 -0
- package/lib/esm/geometry3d/GeometryHandler.d.ts.map +1 -0
- package/lib/esm/geometry3d/GeometryHandler.js +169 -0
- package/lib/esm/geometry3d/GeometryHandler.js.map +1 -0
- package/lib/esm/geometry3d/GrowableBlockedArray.d.ts +71 -0
- package/lib/esm/geometry3d/GrowableBlockedArray.d.ts.map +1 -0
- package/lib/esm/geometry3d/GrowableBlockedArray.js +158 -0
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.d.ts +132 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.js +249 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -0
- package/lib/esm/geometry3d/GrowableXYArray.d.ts +204 -0
- package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -0
- package/lib/esm/geometry3d/GrowableXYArray.js +621 -0
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -0
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts +324 -0
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -0
- package/lib/esm/geometry3d/GrowableXYZArray.js +975 -0
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -0
- package/lib/esm/geometry3d/IndexedCollectionInterval.d.ts +63 -0
- package/lib/esm/geometry3d/IndexedCollectionInterval.d.ts.map +1 -0
- package/lib/esm/geometry3d/IndexedCollectionInterval.js +105 -0
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -0
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts +69 -0
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -0
- package/lib/esm/geometry3d/IndexedXYCollection.js +16 -0
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -0
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +149 -0
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -0
- package/lib/esm/geometry3d/IndexedXYZCollection.js +98 -0
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -0
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.d.ts +63 -0
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.d.ts.map +1 -0
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +119 -0
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -0
- package/lib/esm/geometry3d/Matrix3d.d.ts +885 -0
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Matrix3d.js +2269 -0
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.d.ts +61 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.d.ts.map +1 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.js +228 -0
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts +122 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +1 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +237 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts +119 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.d.ts.map +1 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +238 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -0
- package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts +74 -0
- package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -0
- package/lib/esm/geometry3d/Point2dArrayCarrier.js +111 -0
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -0
- package/lib/esm/geometry3d/Point2dVector2d.d.ts +209 -0
- package/lib/esm/geometry3d/Point2dVector2d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Point2dVector2d.js +461 -0
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -0
- package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts +142 -0
- package/lib/esm/geometry3d/Point3dArrayCarrier.d.ts.map +1 -0
- package/lib/esm/geometry3d/Point3dArrayCarrier.js +233 -0
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -0
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +699 -0
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Point3dVector3d.js +1294 -0
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -0
- package/lib/esm/geometry3d/PointHelpers.d.ts +263 -0
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -0
- package/lib/esm/geometry3d/PointHelpers.js +898 -0
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -0
- package/lib/esm/geometry3d/PointStreaming.d.ts +87 -0
- package/lib/esm/geometry3d/PointStreaming.d.ts.map +1 -0
- package/lib/esm/geometry3d/PointStreaming.js +181 -0
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -0
- package/lib/esm/geometry3d/PolygonOps.d.ts +306 -0
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -0
- package/lib/esm/geometry3d/PolygonOps.js +986 -0
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -0
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts +81 -0
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +1 -0
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +274 -0
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -0
- package/lib/esm/geometry3d/PolylineOps.d.ts +63 -0
- package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -0
- package/lib/esm/geometry3d/PolylineOps.js +172 -0
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -0
- package/lib/esm/geometry3d/Range.d.ts +599 -0
- package/lib/esm/geometry3d/Range.d.ts.map +1 -0
- package/lib/esm/geometry3d/Range.js +1424 -0
- package/lib/esm/geometry3d/Range.js.map +1 -0
- package/lib/esm/geometry3d/Ray3d.d.ts +146 -0
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Ray3d.js +325 -0
- package/lib/esm/geometry3d/Ray3d.js.map +1 -0
- package/lib/esm/geometry3d/ReusableObjectCache.d.ts +55 -0
- package/lib/esm/geometry3d/ReusableObjectCache.d.ts.map +1 -0
- package/lib/esm/geometry3d/ReusableObjectCache.js +82 -0
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -0
- package/lib/esm/geometry3d/Segment1d.d.ts +106 -0
- package/lib/esm/geometry3d/Segment1d.d.ts.map +1 -0
- package/lib/esm/geometry3d/Segment1d.js +169 -0
- package/lib/esm/geometry3d/Segment1d.js.map +1 -0
- package/lib/esm/geometry3d/SortablePolygon.d.ts +50 -0
- package/lib/esm/geometry3d/SortablePolygon.d.ts.map +1 -0
- package/lib/esm/geometry3d/SortablePolygon.js +312 -0
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -0
- package/lib/esm/geometry3d/Transform.d.ts +275 -0
- package/lib/esm/geometry3d/Transform.d.ts.map +1 -0
- package/lib/esm/geometry3d/Transform.js +570 -0
- package/lib/esm/geometry3d/Transform.js.map +1 -0
- package/lib/esm/geometry3d/UVSurfaceOps.d.ts +43 -0
- package/lib/esm/geometry3d/UVSurfaceOps.d.ts.map +1 -0
- package/lib/esm/geometry3d/UVSurfaceOps.js +98 -0
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -0
- package/lib/esm/geometry3d/XYZProps.d.ts +143 -0
- package/lib/esm/geometry3d/XYZProps.d.ts.map +1 -0
- package/lib/esm/geometry3d/XYZProps.js +6 -0
- package/lib/esm/geometry3d/XYZProps.js.map +1 -0
- package/lib/esm/geometry3d/YawPitchRollAngles.d.ts +111 -0
- package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -0
- package/lib/esm/geometry3d/YawPitchRollAngles.js +195 -0
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -0
- package/lib/esm/geometry4d/Map4d.d.ts +73 -0
- package/lib/esm/geometry4d/Map4d.d.ts.map +1 -0
- package/lib/esm/geometry4d/Map4d.js +147 -0
- package/lib/esm/geometry4d/Map4d.js.map +1 -0
- package/lib/esm/geometry4d/Matrix4d.d.ts +284 -0
- package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -0
- package/lib/esm/geometry4d/Matrix4d.js +739 -0
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -0
- package/lib/esm/geometry4d/MomentData.d.ts +180 -0
- package/lib/esm/geometry4d/MomentData.d.ts.map +1 -0
- package/lib/esm/geometry4d/MomentData.js +384 -0
- package/lib/esm/geometry4d/MomentData.js.map +1 -0
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.d.ts +43 -0
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +1 -0
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +81 -0
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -0
- package/lib/esm/geometry4d/Point4d.d.ts +257 -0
- package/lib/esm/geometry4d/Point4d.d.ts.map +1 -0
- package/lib/esm/geometry4d/Point4d.js +552 -0
- package/lib/esm/geometry4d/Point4d.js.map +1 -0
- package/lib/esm/numerics/BandedSystem.d.ts +39 -0
- package/lib/esm/numerics/BandedSystem.d.ts.map +1 -0
- package/lib/esm/numerics/BandedSystem.js +156 -0
- package/lib/esm/numerics/BandedSystem.js.map +1 -0
- package/lib/esm/numerics/BezierPolynomials.d.ts +462 -0
- package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -0
- package/lib/esm/numerics/BezierPolynomials.js +1189 -0
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -0
- package/lib/esm/numerics/ClusterableArray.d.ts +162 -0
- package/lib/esm/numerics/ClusterableArray.d.ts.map +1 -0
- package/lib/esm/numerics/ClusterableArray.js +477 -0
- package/lib/esm/numerics/ClusterableArray.js.map +1 -0
- package/lib/esm/numerics/Complex.d.ts +63 -0
- package/lib/esm/numerics/Complex.d.ts.map +1 -0
- package/lib/esm/numerics/Complex.js +116 -0
- package/lib/esm/numerics/Complex.js.map +1 -0
- package/lib/esm/numerics/ConvexPolygon2d.d.ts +86 -0
- package/lib/esm/numerics/ConvexPolygon2d.d.ts.map +1 -0
- package/lib/esm/numerics/ConvexPolygon2d.js +313 -0
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -0
- package/lib/esm/numerics/Newton.d.ts +188 -0
- package/lib/esm/numerics/Newton.d.ts.map +1 -0
- package/lib/esm/numerics/Newton.js +247 -0
- package/lib/esm/numerics/Newton.js.map +1 -0
- package/lib/esm/numerics/PascalCoefficients.d.ts +33 -0
- package/lib/esm/numerics/PascalCoefficients.d.ts.map +1 -0
- package/lib/esm/numerics/PascalCoefficients.js +91 -0
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -0
- package/lib/esm/numerics/PolarData.d.ts +42 -0
- package/lib/esm/numerics/PolarData.d.ts.map +1 -0
- package/lib/esm/numerics/PolarData.js +162 -0
- package/lib/esm/numerics/PolarData.js.map +1 -0
- package/lib/esm/numerics/Polynomials.d.ts +653 -0
- package/lib/esm/numerics/Polynomials.d.ts.map +1 -0
- package/lib/esm/numerics/Polynomials.js +1697 -0
- package/lib/esm/numerics/Polynomials.js.map +1 -0
- package/lib/esm/numerics/Quadrature.d.ts +91 -0
- package/lib/esm/numerics/Quadrature.d.ts.map +1 -0
- package/lib/esm/numerics/Quadrature.js +199 -0
- package/lib/esm/numerics/Quadrature.js.map +1 -0
- package/lib/esm/numerics/Range1dArray.d.ts +80 -0
- package/lib/esm/numerics/Range1dArray.d.ts.map +1 -0
- package/lib/esm/numerics/Range1dArray.js +358 -0
- package/lib/esm/numerics/Range1dArray.js.map +1 -0
- package/lib/esm/numerics/TriDiagonalSystem.d.ts +51 -0
- package/lib/esm/numerics/TriDiagonalSystem.d.ts.map +1 -0
- package/lib/esm/numerics/TriDiagonalSystem.js +270 -0
- package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -0
- package/lib/esm/numerics/UnionFind.d.ts +49 -0
- package/lib/esm/numerics/UnionFind.d.ts.map +1 -0
- package/lib/esm/numerics/UnionFind.js +117 -0
- package/lib/esm/numerics/UnionFind.js.map +1 -0
- package/lib/esm/numerics/UsageSums.d.ts +86 -0
- package/lib/esm/numerics/UsageSums.d.ts.map +1 -0
- package/lib/esm/numerics/UsageSums.js +128 -0
- package/lib/esm/numerics/UsageSums.js.map +1 -0
- package/lib/esm/polyface/AuxData.d.ts +112 -0
- package/lib/esm/polyface/AuxData.d.ts.map +1 -0
- package/lib/esm/polyface/AuxData.js +228 -0
- package/lib/esm/polyface/AuxData.js.map +1 -0
- package/lib/esm/polyface/BoxTopology.d.ts +38 -0
- package/lib/esm/polyface/BoxTopology.d.ts.map +1 -0
- package/lib/esm/polyface/BoxTopology.js +99 -0
- package/lib/esm/polyface/BoxTopology.js.map +1 -0
- package/lib/esm/polyface/FacetFaceData.d.ts +44 -0
- package/lib/esm/polyface/FacetFaceData.d.ts.map +1 -0
- package/lib/esm/polyface/FacetFaceData.js +142 -0
- package/lib/esm/polyface/FacetFaceData.js.map +1 -0
- package/lib/esm/polyface/FacetOrientation.d.ts +39 -0
- package/lib/esm/polyface/FacetOrientation.d.ts.map +1 -0
- package/lib/esm/polyface/FacetOrientation.js +192 -0
- package/lib/esm/polyface/FacetOrientation.js.map +1 -0
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.d.ts +61 -0
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +1 -0
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +245 -0
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -0
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +87 -0
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -0
- package/lib/esm/polyface/IndexedEdgeMatcher.js +192 -0
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -0
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +109 -0
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -0
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js +237 -0
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -0
- package/lib/esm/polyface/Polyface.d.ts +254 -0
- package/lib/esm/polyface/Polyface.d.ts.map +1 -0
- package/lib/esm/polyface/Polyface.js +501 -0
- package/lib/esm/polyface/Polyface.js.map +1 -0
- package/lib/esm/polyface/PolyfaceBuilder.d.ts +395 -0
- package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -0
- package/lib/esm/polyface/PolyfaceBuilder.js +1634 -0
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -0
- package/lib/esm/polyface/PolyfaceClip.d.ts +172 -0
- package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -0
- package/lib/esm/polyface/PolyfaceClip.js +565 -0
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -0
- package/lib/esm/polyface/PolyfaceData.d.ts +206 -0
- package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -0
- package/lib/esm/polyface/PolyfaceData.js +527 -0
- package/lib/esm/polyface/PolyfaceData.js.map +1 -0
- package/lib/esm/polyface/PolyfaceQuery.d.ts +302 -0
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -0
- package/lib/esm/polyface/PolyfaceQuery.js +947 -0
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -0
- package/lib/esm/polyface/RangeLengthData.d.ts +31 -0
- package/lib/esm/polyface/RangeLengthData.d.ts.map +1 -0
- package/lib/esm/polyface/RangeLengthData.js +39 -0
- package/lib/esm/polyface/RangeLengthData.js.map +1 -0
- package/lib/esm/polyface/TaggedNumericData.d.ts +95 -0
- package/lib/esm/polyface/TaggedNumericData.d.ts.map +1 -0
- package/lib/esm/polyface/TaggedNumericData.js +160 -0
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -0
- package/lib/esm/polyface/TriangleCandidate.d.ts +64 -0
- package/lib/esm/polyface/TriangleCandidate.d.ts.map +1 -0
- package/lib/esm/polyface/TriangleCandidate.js +116 -0
- package/lib/esm/polyface/TriangleCandidate.js.map +1 -0
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.d.ts +29 -0
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +160 -0
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts +81 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +159 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts +53 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +74 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -0
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts +44 -0
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +80 -0
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -0
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts +32 -0
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js +9 -0
- package/lib/esm/polyface/multiclip/Range2dSearchInterface.js.map +1 -0
- package/lib/esm/polyface/multiclip/RangeSearch.d.ts +27 -0
- package/lib/esm/polyface/multiclip/RangeSearch.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/RangeSearch.js +49 -0
- package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts +25 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +90 -0
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -0
- package/lib/esm/polyface/multiclip/XYPointBuckets.d.ts +73 -0
- package/lib/esm/polyface/multiclip/XYPointBuckets.d.ts.map +1 -0
- package/lib/esm/polyface/multiclip/XYPointBuckets.js +192 -0
- package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -0
- package/lib/esm/serialization/BGFBAccessors.d.ts +3426 -0
- package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -0
- package/lib/esm/serialization/BGFBAccessors.js +5543 -0
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -0
- package/lib/esm/serialization/BGFBReader.d.ts +118 -0
- package/lib/esm/serialization/BGFBReader.d.ts.map +1 -0
- package/lib/esm/serialization/BGFBReader.js +661 -0
- package/lib/esm/serialization/BGFBReader.js.map +1 -0
- package/lib/esm/serialization/BGFBWriter.d.ts +69 -0
- package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -0
- package/lib/esm/serialization/BGFBWriter.js +587 -0
- package/lib/esm/serialization/BGFBWriter.js.map +1 -0
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.d.ts +23 -0
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.d.ts.map +1 -0
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +26 -0
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js.map +1 -0
- package/lib/esm/serialization/DeepCompare.d.ts +41 -0
- package/lib/esm/serialization/DeepCompare.d.ts.map +1 -0
- package/lib/esm/serialization/DeepCompare.js +185 -0
- package/lib/esm/serialization/DeepCompare.js.map +1 -0
- package/lib/esm/serialization/GeometrySamples.d.ts +616 -0
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -0
- package/lib/esm/serialization/GeometrySamples.js +2124 -0
- package/lib/esm/serialization/GeometrySamples.js.map +1 -0
- package/lib/esm/serialization/IModelJsonSchema.d.ts +671 -0
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -0
- package/lib/esm/serialization/IModelJsonSchema.js +1523 -0
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -0
- package/lib/esm/solid/Box.d.ts +122 -0
- package/lib/esm/solid/Box.d.ts.map +1 -0
- package/lib/esm/solid/Box.js +229 -0
- package/lib/esm/solid/Box.js.map +1 -0
- package/lib/esm/solid/Cone.d.ts +119 -0
- package/lib/esm/solid/Cone.d.ts.map +1 -0
- package/lib/esm/solid/Cone.js +267 -0
- package/lib/esm/solid/Cone.js.map +1 -0
- package/lib/esm/solid/LinearSweep.d.ts +81 -0
- package/lib/esm/solid/LinearSweep.d.ts.map +1 -0
- package/lib/esm/solid/LinearSweep.js +143 -0
- package/lib/esm/solid/LinearSweep.js.map +1 -0
- package/lib/esm/solid/RotationalSweep.d.ts +71 -0
- package/lib/esm/solid/RotationalSweep.d.ts.map +1 -0
- package/lib/esm/solid/RotationalSweep.js +139 -0
- package/lib/esm/solid/RotationalSweep.js.map +1 -0
- package/lib/esm/solid/RuledSweep.d.ts +76 -0
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -0
- package/lib/esm/solid/RuledSweep.js +202 -0
- package/lib/esm/solid/RuledSweep.js.map +1 -0
- package/lib/esm/solid/SolidPrimitive.d.ts +63 -0
- package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -0
- package/lib/esm/solid/SolidPrimitive.js +23 -0
- package/lib/esm/solid/SolidPrimitive.js.map +1 -0
- package/lib/esm/solid/Sphere.d.ts +120 -0
- package/lib/esm/solid/Sphere.d.ts.map +1 -0
- package/lib/esm/solid/Sphere.js +294 -0
- package/lib/esm/solid/Sphere.js.map +1 -0
- package/lib/esm/solid/SweepContour.d.ts +82 -0
- package/lib/esm/solid/SweepContour.d.ts.map +1 -0
- package/lib/esm/solid/SweepContour.js +250 -0
- package/lib/esm/solid/SweepContour.js.map +1 -0
- package/lib/esm/solid/TorusPipe.d.ts +123 -0
- package/lib/esm/solid/TorusPipe.d.ts.map +1 -0
- package/lib/esm/solid/TorusPipe.js +296 -0
- package/lib/esm/solid/TorusPipe.js.map +1 -0
- package/lib/esm/topology/ChainMerge.d.ts +119 -0
- package/lib/esm/topology/ChainMerge.d.ts.map +1 -0
- package/lib/esm/topology/ChainMerge.js +280 -0
- package/lib/esm/topology/ChainMerge.js.map +1 -0
- package/lib/esm/topology/Graph.d.ts +591 -0
- package/lib/esm/topology/Graph.d.ts.map +1 -0
- package/lib/esm/topology/Graph.js +1156 -0
- package/lib/esm/topology/Graph.js.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphSearch.d.ts +125 -0
- package/lib/esm/topology/HalfEdgeGraphSearch.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphSearch.js +296 -0
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphSpineContext.d.ts +98 -0
- package/lib/esm/topology/HalfEdgeGraphSpineContext.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js +519 -0
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphValidation.d.ts +52 -0
- package/lib/esm/topology/HalfEdgeGraphValidation.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgeGraphValidation.js +107 -0
- package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -0
- package/lib/esm/topology/HalfEdgeMarkSet.d.ts +232 -0
- package/lib/esm/topology/HalfEdgeMarkSet.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgeMarkSet.js +369 -0
- package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -0
- package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts +51 -0
- package/lib/esm/topology/HalfEdgeNodeXYZUV.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js +93 -0
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -0
- package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts +34 -0
- package/lib/esm/topology/HalfEdgePointInGraphSearch.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js +252 -0
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -0
- package/lib/esm/topology/HalfEdgePositionDetail.d.ts +97 -0
- package/lib/esm/topology/HalfEdgePositionDetail.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgePositionDetail.js +173 -0
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -0
- package/lib/esm/topology/HalfEdgePriorityQueue.d.ts +34 -0
- package/lib/esm/topology/HalfEdgePriorityQueue.d.ts.map +1 -0
- package/lib/esm/topology/HalfEdgePriorityQueue.js +68 -0
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -0
- package/lib/esm/topology/InsertAndRetriangulateContext.d.ts +38 -0
- package/lib/esm/topology/InsertAndRetriangulateContext.d.ts.map +1 -0
- package/lib/esm/topology/InsertAndRetriangulateContext.js +239 -0
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -0
- package/lib/esm/topology/MaskManager.d.ts +33 -0
- package/lib/esm/topology/MaskManager.d.ts.map +1 -0
- package/lib/esm/topology/MaskManager.js +63 -0
- package/lib/esm/topology/MaskManager.js.map +1 -0
- package/lib/esm/topology/Merging.d.ts +90 -0
- package/lib/esm/topology/Merging.d.ts.map +1 -0
- package/lib/esm/topology/Merging.js +362 -0
- package/lib/esm/topology/Merging.js.map +1 -0
- package/lib/esm/topology/RegularizeFace.d.ts +106 -0
- package/lib/esm/topology/RegularizeFace.d.ts.map +1 -0
- package/lib/esm/topology/RegularizeFace.js +367 -0
- package/lib/esm/topology/RegularizeFace.js.map +1 -0
- package/lib/esm/topology/SignedDataSummary.d.ts +37 -0
- package/lib/esm/topology/SignedDataSummary.d.ts.map +1 -0
- package/lib/esm/topology/SignedDataSummary.js +54 -0
- package/lib/esm/topology/SignedDataSummary.js.map +1 -0
- package/lib/esm/topology/Triangulation.d.ts +230 -0
- package/lib/esm/topology/Triangulation.d.ts.map +1 -0
- package/lib/esm/topology/Triangulation.js +945 -0
- package/lib/esm/topology/Triangulation.js.map +1 -0
- package/lib/esm/topology/XYParitySearchContext.d.ts +54 -0
- package/lib/esm/topology/XYParitySearchContext.d.ts.map +1 -0
- package/lib/esm/topology/XYParitySearchContext.js +138 -0
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -0
- package/package.json +11 -8
- package/lib/Constant.d.ts.map +0 -1
- package/lib/Constant.js.map +0 -1
- package/lib/Geometry.d.ts.map +0 -1
- package/lib/Geometry.js.map +0 -1
- package/lib/bspline/AkimaCurve3d.d.ts.map +0 -1
- package/lib/bspline/AkimaCurve3d.js.map +0 -1
- package/lib/bspline/BSpline1dNd.d.ts.map +0 -1
- package/lib/bspline/BSpline1dNd.js.map +0 -1
- package/lib/bspline/BSplineCurve.d.ts.map +0 -1
- package/lib/bspline/BSplineCurve.js.map +0 -1
- package/lib/bspline/BSplineCurve3dH.d.ts.map +0 -1
- package/lib/bspline/BSplineCurve3dH.js.map +0 -1
- package/lib/bspline/BSplineCurveOps.d.ts.map +0 -1
- package/lib/bspline/BSplineCurveOps.js.map +0 -1
- package/lib/bspline/BSplineSurface.d.ts +0 -485
- package/lib/bspline/BSplineSurface.d.ts.map +0 -1
- package/lib/bspline/BSplineSurface.js.map +0 -1
- package/lib/bspline/Bezier1dNd.d.ts.map +0 -1
- package/lib/bspline/Bezier1dNd.js.map +0 -1
- package/lib/bspline/BezierCurve3d.d.ts.map +0 -1
- package/lib/bspline/BezierCurve3d.js.map +0 -1
- package/lib/bspline/BezierCurve3dH.d.ts.map +0 -1
- package/lib/bspline/BezierCurve3dH.js.map +0 -1
- package/lib/bspline/BezierCurveBase.d.ts.map +0 -1
- package/lib/bspline/BezierCurveBase.js.map +0 -1
- package/lib/bspline/InterpolationCurve3d.d.ts.map +0 -1
- package/lib/bspline/InterpolationCurve3d.js.map +0 -1
- package/lib/bspline/KnotVector.d.ts.map +0 -1
- package/lib/bspline/KnotVector.js.map +0 -1
- package/lib/bspline/SurfaceLocationDetail.d.ts.map +0 -1
- package/lib/bspline/SurfaceLocationDetail.js.map +0 -1
- package/lib/clipping/AlternatingConvexClipTree.d.ts.map +0 -1
- package/lib/clipping/AlternatingConvexClipTree.js.map +0 -1
- package/lib/clipping/BooleanClipFactory.d.ts.map +0 -1
- package/lib/clipping/BooleanClipFactory.js.map +0 -1
- package/lib/clipping/BooleanClipNode.d.ts.map +0 -1
- package/lib/clipping/BooleanClipNode.js.map +0 -1
- package/lib/clipping/ClipPlane.d.ts.map +0 -1
- package/lib/clipping/ClipPlane.js.map +0 -1
- package/lib/clipping/ClipPrimitive.d.ts.map +0 -1
- package/lib/clipping/ClipPrimitive.js.map +0 -1
- package/lib/clipping/ClipUtils.d.ts.map +0 -1
- package/lib/clipping/ClipUtils.js.map +0 -1
- package/lib/clipping/ClipVector.d.ts.map +0 -1
- package/lib/clipping/ClipVector.js.map +0 -1
- package/lib/clipping/ConvexClipPlaneSet.d.ts.map +0 -1
- package/lib/clipping/ConvexClipPlaneSet.js.map +0 -1
- package/lib/clipping/UnionOfConvexClipPlaneSets.d.ts.map +0 -1
- package/lib/clipping/UnionOfConvexClipPlaneSets.js.map +0 -1
- package/lib/clipping/internalContexts/LineStringOffsetClipperContext.d.ts.map +0 -1
- package/lib/clipping/internalContexts/LineStringOffsetClipperContext.js.map +0 -1
- package/lib/core-geometry.d.ts.map +0 -1
- package/lib/core-geometry.js.map +0 -1
- package/lib/curve/Arc3d.d.ts.map +0 -1
- package/lib/curve/Arc3d.js.map +0 -1
- package/lib/curve/ChainCollectorContext.d.ts.map +0 -1
- package/lib/curve/ChainCollectorContext.js.map +0 -1
- package/lib/curve/ConstructCurveBetweenCurves.d.ts.map +0 -1
- package/lib/curve/ConstructCurveBetweenCurves.js.map +0 -1
- package/lib/curve/CoordinateXYZ.d.ts.map +0 -1
- package/lib/curve/CoordinateXYZ.js.map +0 -1
- package/lib/curve/CurveChain.d.ts.map +0 -1
- package/lib/curve/CurveChain.js.map +0 -1
- package/lib/curve/CurveChainWithDistanceIndex.d.ts.map +0 -1
- package/lib/curve/CurveChainWithDistanceIndex.js.map +0 -1
- package/lib/curve/CurveCollection.d.ts.map +0 -1
- package/lib/curve/CurveCollection.js.map +0 -1
- package/lib/curve/CurveCurve.d.ts.map +0 -1
- package/lib/curve/CurveCurve.js.map +0 -1
- package/lib/curve/CurveCurveCloseApproachXY.d.ts.map +0 -1
- package/lib/curve/CurveCurveCloseApproachXY.js.map +0 -1
- package/lib/curve/CurveCurveIntersectXY.d.ts.map +0 -1
- package/lib/curve/CurveCurveIntersectXY.js.map +0 -1
- package/lib/curve/CurveCurveIntersectXYZ.d.ts.map +0 -1
- package/lib/curve/CurveCurveIntersectXYZ.js.map +0 -1
- package/lib/curve/CurveExtendMode.d.ts.map +0 -1
- package/lib/curve/CurveExtendMode.js.map +0 -1
- package/lib/curve/CurveFactory.d.ts.map +0 -1
- package/lib/curve/CurveFactory.js.map +0 -1
- package/lib/curve/CurveLocationDetail.d.ts.map +0 -1
- package/lib/curve/CurveLocationDetail.js.map +0 -1
- package/lib/curve/CurvePrimitive.d.ts.map +0 -1
- package/lib/curve/CurvePrimitive.js.map +0 -1
- package/lib/curve/CurveProcessor.d.ts.map +0 -1
- package/lib/curve/CurveProcessor.js.map +0 -1
- package/lib/curve/CurveWireMomentsXYZ.d.ts.map +0 -1
- package/lib/curve/CurveWireMomentsXYZ.js.map +0 -1
- package/lib/curve/GeometryQuery.d.ts.map +0 -1
- package/lib/curve/GeometryQuery.js.map +0 -1
- package/lib/curve/LineSegment3d.d.ts.map +0 -1
- package/lib/curve/LineSegment3d.js.map +0 -1
- package/lib/curve/LineString3d.d.ts.map +0 -1
- package/lib/curve/LineString3d.js.map +0 -1
- package/lib/curve/Loop.d.ts.map +0 -1
- package/lib/curve/Loop.js.map +0 -1
- package/lib/curve/ParityRegion.d.ts.map +0 -1
- package/lib/curve/ParityRegion.js.map +0 -1
- package/lib/curve/Path.d.ts.map +0 -1
- package/lib/curve/Path.js.map +0 -1
- package/lib/curve/PointString3d.d.ts.map +0 -1
- package/lib/curve/PointString3d.js.map +0 -1
- package/lib/curve/ProxyCurve.d.ts.map +0 -1
- package/lib/curve/ProxyCurve.js.map +0 -1
- package/lib/curve/Query/ConsolidateAdjacentPrimitivesContext.d.ts.map +0 -1
- package/lib/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +0 -1
- package/lib/curve/Query/CurveSplitContext.d.ts.map +0 -1
- package/lib/curve/Query/CurveSplitContext.js.map +0 -1
- package/lib/curve/Query/CylindricalRange.d.ts.map +0 -1
- package/lib/curve/Query/CylindricalRange.js.map +0 -1
- package/lib/curve/Query/InOutTests.d.ts.map +0 -1
- package/lib/curve/Query/InOutTests.js.map +0 -1
- package/lib/curve/Query/PlanarSubdivision.d.ts.map +0 -1
- package/lib/curve/Query/PlanarSubdivision.js.map +0 -1
- package/lib/curve/Query/StrokeCountChain.d.ts.map +0 -1
- package/lib/curve/Query/StrokeCountChain.js.map +0 -1
- package/lib/curve/Query/StrokeCountMap.d.ts.map +0 -1
- package/lib/curve/Query/StrokeCountMap.js.map +0 -1
- package/lib/curve/RegionMomentsXY.d.ts.map +0 -1
- package/lib/curve/RegionMomentsXY.js.map +0 -1
- package/lib/curve/RegionOps.d.ts.map +0 -1
- package/lib/curve/RegionOps.js.map +0 -1
- package/lib/curve/RegionOpsClassificationSweeps.d.ts.map +0 -1
- package/lib/curve/RegionOpsClassificationSweeps.js.map +0 -1
- package/lib/curve/StrokeOptions.d.ts.map +0 -1
- package/lib/curve/StrokeOptions.js.map +0 -1
- package/lib/curve/UnionRegion.d.ts.map +0 -1
- package/lib/curve/UnionRegion.js.map +0 -1
- package/lib/curve/internalContexts/CloneCurvesContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/CloneCurvesContext.js.map +0 -1
- package/lib/curve/internalContexts/CloneWithExpandedLineStrings.d.ts.map +0 -1
- package/lib/curve/internalContexts/CloneWithExpandedLineStrings.js.map +0 -1
- package/lib/curve/internalContexts/CountLinearPartsSearchContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/CountLinearPartsSearchContext.js.map +0 -1
- package/lib/curve/internalContexts/GapSearchContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/GapSearchContext.js.map +0 -1
- package/lib/curve/internalContexts/MultiChainCollector.d.ts.map +0 -1
- package/lib/curve/internalContexts/MultiChainCollector.js.map +0 -1
- package/lib/curve/internalContexts/PlaneAltitudeRangeContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/PlaneAltitudeRangeContext.js.map +0 -1
- package/lib/curve/internalContexts/PolygonOffsetContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/PolygonOffsetContext.js.map +0 -1
- package/lib/curve/internalContexts/SumLengthsContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/SumLengthsContext.js.map +0 -1
- package/lib/curve/internalContexts/TransformInPlaceContext.d.ts.map +0 -1
- package/lib/curve/internalContexts/TransformInPlaceContext.js.map +0 -1
- package/lib/curve/spiral/AustralianRailCorpXYEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/AustralianRailCorpXYEvaluator.js.map +0 -1
- package/lib/curve/spiral/ClothoidSeries.d.ts.map +0 -1
- package/lib/curve/spiral/ClothoidSeries.js.map +0 -1
- package/lib/curve/spiral/CubicEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/CubicEvaluator.js.map +0 -1
- package/lib/curve/spiral/CzechSpiralEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/CzechSpiralEvaluator.js.map +0 -1
- package/lib/curve/spiral/DirectHalfCosineSpiralEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +0 -1
- package/lib/curve/spiral/DirectSpiral3d.d.ts +0 -264
- package/lib/curve/spiral/DirectSpiral3d.d.ts.map +0 -1
- package/lib/curve/spiral/DirectSpiral3d.js +0 -464
- package/lib/curve/spiral/DirectSpiral3d.js.map +0 -1
- package/lib/curve/spiral/IntegratedSpiral3d.d.ts +0 -154
- package/lib/curve/spiral/IntegratedSpiral3d.d.ts.map +0 -1
- package/lib/curve/spiral/IntegratedSpiral3d.js +0 -351
- package/lib/curve/spiral/IntegratedSpiral3d.js.map +0 -1
- package/lib/curve/spiral/MXCubicAlongArcSpiralEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +0 -1
- package/lib/curve/spiral/NormalizedTransition.d.ts.map +0 -1
- package/lib/curve/spiral/NormalizedTransition.js.map +0 -1
- package/lib/curve/spiral/PolishCubicSpiralEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/PolishCubicSpiralEvaluator.js.map +0 -1
- package/lib/curve/spiral/TransitionConditionalProperties.d.ts.map +0 -1
- package/lib/curve/spiral/TransitionConditionalProperties.js.map +0 -1
- package/lib/curve/spiral/TransitionSpiral3d.d.ts.map +0 -1
- package/lib/curve/spiral/TransitionSpiral3d.js.map +0 -1
- package/lib/curve/spiral/XYCurveEvaluator.d.ts.map +0 -1
- package/lib/curve/spiral/XYCurveEvaluator.js.map +0 -1
- package/lib/geometry3d/Angle.d.ts.map +0 -1
- package/lib/geometry3d/Angle.js.map +0 -1
- package/lib/geometry3d/AngleSweep.d.ts.map +0 -1
- package/lib/geometry3d/AngleSweep.js.map +0 -1
- package/lib/geometry3d/BarycentricTriangle.d.ts.map +0 -1
- package/lib/geometry3d/BarycentricTriangle.js.map +0 -1
- package/lib/geometry3d/BilinearPatch.d.ts.map +0 -1
- package/lib/geometry3d/BilinearPatch.js.map +0 -1
- package/lib/geometry3d/CoincidentGeometryOps.d.ts.map +0 -1
- package/lib/geometry3d/CoincidentGeometryOps.js.map +0 -1
- package/lib/geometry3d/Ellipsoid.d.ts.map +0 -1
- package/lib/geometry3d/Ellipsoid.js.map +0 -1
- package/lib/geometry3d/FrameBuilder.d.ts.map +0 -1
- package/lib/geometry3d/FrameBuilder.js.map +0 -1
- package/lib/geometry3d/FrustumAnimation.d.ts.map +0 -1
- package/lib/geometry3d/FrustumAnimation.js.map +0 -1
- package/lib/geometry3d/GeometryHandler.d.ts.map +0 -1
- package/lib/geometry3d/GeometryHandler.js.map +0 -1
- package/lib/geometry3d/GrowableBlockedArray.d.ts.map +0 -1
- package/lib/geometry3d/GrowableBlockedArray.js.map +0 -1
- package/lib/geometry3d/GrowableFloat64Array.d.ts.map +0 -1
- package/lib/geometry3d/GrowableFloat64Array.js.map +0 -1
- package/lib/geometry3d/GrowableXYArray.d.ts.map +0 -1
- package/lib/geometry3d/GrowableXYArray.js.map +0 -1
- package/lib/geometry3d/GrowableXYZArray.d.ts.map +0 -1
- package/lib/geometry3d/GrowableXYZArray.js.map +0 -1
- package/lib/geometry3d/IndexedCollectionInterval.d.ts.map +0 -1
- package/lib/geometry3d/IndexedCollectionInterval.js.map +0 -1
- package/lib/geometry3d/IndexedXYCollection.d.ts.map +0 -1
- package/lib/geometry3d/IndexedXYCollection.js.map +0 -1
- package/lib/geometry3d/IndexedXYZCollection.d.ts.map +0 -1
- package/lib/geometry3d/IndexedXYZCollection.js.map +0 -1
- package/lib/geometry3d/LongitudeLatitudeAltitude.d.ts.map +0 -1
- package/lib/geometry3d/LongitudeLatitudeAltitude.js.map +0 -1
- package/lib/geometry3d/Matrix3d.d.ts.map +0 -1
- package/lib/geometry3d/Matrix3d.js.map +0 -1
- package/lib/geometry3d/OrderedRotationAngles.d.ts.map +0 -1
- package/lib/geometry3d/OrderedRotationAngles.js.map +0 -1
- package/lib/geometry3d/Plane3dByOriginAndUnitNormal.d.ts.map +0 -1
- package/lib/geometry3d/Plane3dByOriginAndUnitNormal.js.map +0 -1
- package/lib/geometry3d/Plane3dByOriginAndVectors.d.ts.map +0 -1
- package/lib/geometry3d/Plane3dByOriginAndVectors.js.map +0 -1
- package/lib/geometry3d/Point2dArrayCarrier.d.ts.map +0 -1
- package/lib/geometry3d/Point2dArrayCarrier.js.map +0 -1
- package/lib/geometry3d/Point2dVector2d.d.ts.map +0 -1
- package/lib/geometry3d/Point2dVector2d.js.map +0 -1
- package/lib/geometry3d/Point3dArrayCarrier.d.ts.map +0 -1
- package/lib/geometry3d/Point3dArrayCarrier.js.map +0 -1
- package/lib/geometry3d/Point3dVector3d.d.ts.map +0 -1
- package/lib/geometry3d/Point3dVector3d.js.map +0 -1
- package/lib/geometry3d/PointHelpers.d.ts.map +0 -1
- package/lib/geometry3d/PointHelpers.js.map +0 -1
- package/lib/geometry3d/PointStreaming.d.ts.map +0 -1
- package/lib/geometry3d/PointStreaming.js.map +0 -1
- package/lib/geometry3d/PolygonOps.d.ts.map +0 -1
- package/lib/geometry3d/PolygonOps.js.map +0 -1
- package/lib/geometry3d/PolylineCompressionByEdgeOffset.d.ts.map +0 -1
- package/lib/geometry3d/PolylineCompressionByEdgeOffset.js.map +0 -1
- package/lib/geometry3d/PolylineOps.d.ts.map +0 -1
- package/lib/geometry3d/PolylineOps.js.map +0 -1
- package/lib/geometry3d/Range.d.ts.map +0 -1
- package/lib/geometry3d/Range.js.map +0 -1
- package/lib/geometry3d/Ray3d.d.ts.map +0 -1
- package/lib/geometry3d/Ray3d.js.map +0 -1
- package/lib/geometry3d/ReusableObjectCache.d.ts.map +0 -1
- package/lib/geometry3d/ReusableObjectCache.js.map +0 -1
- package/lib/geometry3d/Segment1d.d.ts.map +0 -1
- package/lib/geometry3d/Segment1d.js.map +0 -1
- package/lib/geometry3d/SortablePolygon.d.ts.map +0 -1
- package/lib/geometry3d/SortablePolygon.js.map +0 -1
- package/lib/geometry3d/Transform.d.ts.map +0 -1
- package/lib/geometry3d/Transform.js.map +0 -1
- package/lib/geometry3d/UVSurfaceOps.d.ts.map +0 -1
- package/lib/geometry3d/UVSurfaceOps.js.map +0 -1
- package/lib/geometry3d/XYZProps.d.ts.map +0 -1
- package/lib/geometry3d/XYZProps.js.map +0 -1
- package/lib/geometry3d/YawPitchRollAngles.d.ts.map +0 -1
- package/lib/geometry3d/YawPitchRollAngles.js.map +0 -1
- package/lib/geometry4d/Map4d.d.ts.map +0 -1
- package/lib/geometry4d/Map4d.js.map +0 -1
- package/lib/geometry4d/Matrix4d.d.ts.map +0 -1
- package/lib/geometry4d/Matrix4d.js.map +0 -1
- package/lib/geometry4d/MomentData.d.ts.map +0 -1
- package/lib/geometry4d/MomentData.js.map +0 -1
- package/lib/geometry4d/PlaneByOriginAndVectors4d.d.ts.map +0 -1
- package/lib/geometry4d/PlaneByOriginAndVectors4d.js.map +0 -1
- package/lib/geometry4d/Point4d.d.ts.map +0 -1
- package/lib/geometry4d/Point4d.js.map +0 -1
- package/lib/numerics/BandedSystem.d.ts.map +0 -1
- package/lib/numerics/BandedSystem.js.map +0 -1
- package/lib/numerics/BezierPolynomials.d.ts.map +0 -1
- package/lib/numerics/BezierPolynomials.js.map +0 -1
- package/lib/numerics/ClusterableArray.d.ts.map +0 -1
- package/lib/numerics/ClusterableArray.js.map +0 -1
- package/lib/numerics/Complex.d.ts.map +0 -1
- package/lib/numerics/Complex.js.map +0 -1
- package/lib/numerics/ConvexPolygon2d.d.ts.map +0 -1
- package/lib/numerics/ConvexPolygon2d.js.map +0 -1
- package/lib/numerics/Newton.d.ts.map +0 -1
- package/lib/numerics/Newton.js.map +0 -1
- package/lib/numerics/PascalCoefficients.d.ts.map +0 -1
- package/lib/numerics/PascalCoefficients.js.map +0 -1
- package/lib/numerics/PolarData.d.ts.map +0 -1
- package/lib/numerics/PolarData.js.map +0 -1
- package/lib/numerics/Polynomials.d.ts.map +0 -1
- package/lib/numerics/Polynomials.js.map +0 -1
- package/lib/numerics/Quadrature.d.ts.map +0 -1
- package/lib/numerics/Quadrature.js.map +0 -1
- package/lib/numerics/Range1dArray.d.ts.map +0 -1
- package/lib/numerics/Range1dArray.js.map +0 -1
- package/lib/numerics/TriDiagonalSystem.d.ts.map +0 -1
- package/lib/numerics/TriDiagonalSystem.js.map +0 -1
- package/lib/numerics/UnionFind.d.ts.map +0 -1
- package/lib/numerics/UnionFind.js.map +0 -1
- package/lib/numerics/UsageSums.d.ts.map +0 -1
- package/lib/numerics/UsageSums.js.map +0 -1
- package/lib/polyface/AuxData.d.ts.map +0 -1
- package/lib/polyface/AuxData.js.map +0 -1
- package/lib/polyface/BoxTopology.d.ts.map +0 -1
- package/lib/polyface/BoxTopology.js.map +0 -1
- package/lib/polyface/FacetFaceData.d.ts.map +0 -1
- package/lib/polyface/FacetFaceData.js.map +0 -1
- package/lib/polyface/FacetOrientation.d.ts.map +0 -1
- package/lib/polyface/FacetOrientation.js.map +0 -1
- package/lib/polyface/GreedyTriangulationBetweenLineStrings.d.ts.map +0 -1
- package/lib/polyface/GreedyTriangulationBetweenLineStrings.js.map +0 -1
- package/lib/polyface/IndexedEdgeMatcher.d.ts.map +0 -1
- package/lib/polyface/IndexedEdgeMatcher.js.map +0 -1
- package/lib/polyface/IndexedPolyfaceVisitor.d.ts.map +0 -1
- package/lib/polyface/IndexedPolyfaceVisitor.js.map +0 -1
- package/lib/polyface/Polyface.d.ts.map +0 -1
- package/lib/polyface/Polyface.js.map +0 -1
- package/lib/polyface/PolyfaceBuilder.d.ts.map +0 -1
- package/lib/polyface/PolyfaceBuilder.js.map +0 -1
- package/lib/polyface/PolyfaceClip.d.ts.map +0 -1
- package/lib/polyface/PolyfaceClip.js.map +0 -1
- package/lib/polyface/PolyfaceData.d.ts +0 -170
- package/lib/polyface/PolyfaceData.d.ts.map +0 -1
- package/lib/polyface/PolyfaceData.js +0 -531
- package/lib/polyface/PolyfaceData.js.map +0 -1
- package/lib/polyface/PolyfaceQuery.d.ts.map +0 -1
- package/lib/polyface/PolyfaceQuery.js.map +0 -1
- package/lib/polyface/RangeLengthData.d.ts.map +0 -1
- package/lib/polyface/RangeLengthData.js.map +0 -1
- package/lib/polyface/TaggedNumericData.d.ts.map +0 -1
- package/lib/polyface/TaggedNumericData.js.map +0 -1
- package/lib/polyface/TriangleCandidate.d.ts.map +0 -1
- package/lib/polyface/TriangleCandidate.js.map +0 -1
- package/lib/polyface/multiclip/BuildAverageNormalsContext.d.ts.map +0 -1
- package/lib/polyface/multiclip/BuildAverageNormalsContext.js.map +0 -1
- package/lib/polyface/multiclip/GriddedRaggedRange2dSet.d.ts.map +0 -1
- package/lib/polyface/multiclip/GriddedRaggedRange2dSet.js.map +0 -1
- package/lib/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.d.ts.map +0 -1
- package/lib/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +0 -1
- package/lib/polyface/multiclip/LinearSearchRange2dArray.d.ts.map +0 -1
- package/lib/polyface/multiclip/LinearSearchRange2dArray.js.map +0 -1
- package/lib/polyface/multiclip/Range2dSearchInterface.d.ts.map +0 -1
- package/lib/polyface/multiclip/Range2dSearchInterface.js.map +0 -1
- package/lib/polyface/multiclip/RangeSearch.d.ts.map +0 -1
- package/lib/polyface/multiclip/RangeSearch.js.map +0 -1
- package/lib/polyface/multiclip/SweepLineStringToFacetContext.d.ts.map +0 -1
- package/lib/polyface/multiclip/SweepLineStringToFacetContext.js.map +0 -1
- package/lib/polyface/multiclip/XYPointBuckets.d.ts.map +0 -1
- package/lib/polyface/multiclip/XYPointBuckets.js.map +0 -1
- package/lib/serialization/BGFBAccessors.d.ts.map +0 -1
- package/lib/serialization/BGFBAccessors.js.map +0 -1
- package/lib/serialization/BGFBReader.d.ts.map +0 -1
- package/lib/serialization/BGFBReader.js.map +0 -1
- package/lib/serialization/BGFBWriter.d.ts.map +0 -1
- package/lib/serialization/BGFBWriter.js.map +0 -1
- package/lib/serialization/BentleyGeometryFlatBuffer.d.ts.map +0 -1
- package/lib/serialization/BentleyGeometryFlatBuffer.js.map +0 -1
- package/lib/serialization/DeepCompare.d.ts.map +0 -1
- package/lib/serialization/DeepCompare.js.map +0 -1
- package/lib/serialization/GeometrySamples.d.ts.map +0 -1
- package/lib/serialization/GeometrySamples.js.map +0 -1
- package/lib/serialization/IModelJsonSchema.d.ts.map +0 -1
- package/lib/serialization/IModelJsonSchema.js.map +0 -1
- package/lib/solid/Box.d.ts.map +0 -1
- package/lib/solid/Box.js.map +0 -1
- package/lib/solid/Cone.d.ts.map +0 -1
- package/lib/solid/Cone.js.map +0 -1
- package/lib/solid/LinearSweep.d.ts.map +0 -1
- package/lib/solid/LinearSweep.js.map +0 -1
- package/lib/solid/RotationalSweep.d.ts.map +0 -1
- package/lib/solid/RotationalSweep.js.map +0 -1
- package/lib/solid/RuledSweep.d.ts.map +0 -1
- package/lib/solid/RuledSweep.js.map +0 -1
- package/lib/solid/SolidPrimitive.d.ts.map +0 -1
- package/lib/solid/SolidPrimitive.js.map +0 -1
- package/lib/solid/Sphere.d.ts.map +0 -1
- package/lib/solid/Sphere.js.map +0 -1
- package/lib/solid/SweepContour.d.ts.map +0 -1
- package/lib/solid/SweepContour.js.map +0 -1
- package/lib/solid/TorusPipe.d.ts.map +0 -1
- package/lib/solid/TorusPipe.js.map +0 -1
- package/lib/topology/ChainMerge.d.ts.map +0 -1
- package/lib/topology/ChainMerge.js.map +0 -1
- package/lib/topology/Graph.d.ts.map +0 -1
- package/lib/topology/Graph.js.map +0 -1
- package/lib/topology/HalfEdgeGraphSearch.d.ts.map +0 -1
- package/lib/topology/HalfEdgeGraphSearch.js.map +0 -1
- package/lib/topology/HalfEdgeGraphSpineContext.d.ts.map +0 -1
- package/lib/topology/HalfEdgeGraphSpineContext.js.map +0 -1
- package/lib/topology/HalfEdgeGraphValidation.d.ts.map +0 -1
- package/lib/topology/HalfEdgeGraphValidation.js.map +0 -1
- package/lib/topology/HalfEdgeMarkSet.d.ts.map +0 -1
- package/lib/topology/HalfEdgeMarkSet.js.map +0 -1
- package/lib/topology/HalfEdgeNodeXYZUV.d.ts.map +0 -1
- package/lib/topology/HalfEdgeNodeXYZUV.js.map +0 -1
- package/lib/topology/HalfEdgePointInGraphSearch.d.ts.map +0 -1
- package/lib/topology/HalfEdgePointInGraphSearch.js.map +0 -1
- package/lib/topology/HalfEdgePositionDetail.d.ts.map +0 -1
- package/lib/topology/HalfEdgePositionDetail.js.map +0 -1
- package/lib/topology/HalfEdgePriorityQueue.d.ts.map +0 -1
- package/lib/topology/HalfEdgePriorityQueue.js.map +0 -1
- package/lib/topology/InsertAndRetriangulateContext.d.ts.map +0 -1
- package/lib/topology/InsertAndRetriangulateContext.js.map +0 -1
- package/lib/topology/MaskManager.d.ts.map +0 -1
- package/lib/topology/MaskManager.js.map +0 -1
- package/lib/topology/Merging.d.ts.map +0 -1
- package/lib/topology/Merging.js.map +0 -1
- package/lib/topology/RegularizeFace.d.ts.map +0 -1
- package/lib/topology/RegularizeFace.js.map +0 -1
- package/lib/topology/SignedDataSummary.d.ts.map +0 -1
- package/lib/topology/SignedDataSummary.js.map +0 -1
- package/lib/topology/Triangulation.d.ts.map +0 -1
- package/lib/topology/Triangulation.js.map +0 -1
- package/lib/topology/XYParitySearchContext.d.ts.map +0 -1
- package/lib/topology/XYParitySearchContext.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConvexPolygon2d.js","sourceRoot":"","sources":["../../src/numerics/ConvexPolygon2d.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\n\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Range1d } from \"../geometry3d/Range\";\r\n\r\n/**\r\n * Ray with xy origin and direction\r\n * @internal\r\n */\r\nexport class Ray2d {\r\n private _origin: Point2d;\r\n private _direction: Vector2d;\r\n\r\n private constructor(origin: Point2d, direction: Vector2d) {\r\n this._origin = origin;\r\n this._direction = direction;\r\n }\r\n /** Create from 2d `origin` and `target`.\r\n * * `target - origin` is the direction vector.\r\n */\r\n public static createOriginAndTarget(origin: Point2d, target: Point2d): Ray2d {\r\n return new Ray2d(origin.clone(), origin.vectorTo(target));\r\n }\r\n /** Create from (clones of) `origin` point and `direction` vector */\r\n public static createOriginAndDirection(origin: Point2d, direction: Vector2d): Ray2d {\r\n return new Ray2d(origin.clone(), direction.clone());\r\n }\r\n /** Capture `origin` and `direction` as ray member variables. */\r\n public static createOriginAndDirectionCapture(origin: Point2d, direction: Vector2d): Ray2d {\r\n return new Ray2d(origin, direction);\r\n }\r\n /** Get the (REFERENCE TO) the ray origin. */\r\n public get origin() { return this._origin; }\r\n /** Get the (REFERENCE TO) the ray direction. */\r\n public get direction() { return this._direction; }\r\n\r\n /**\r\n * Return a ray that is parallel at distance to the left, specified as fraction of the ray's direction vector.\r\n */\r\n public parallelRay(leftFraction: number): Ray2d {\r\n return new Ray2d(this._origin.addForwardLeft(0.0, leftFraction, this._direction), this._direction);\r\n }\r\n /** Return a ray with same origin, direction rotated 90 degrees counterclockwise */\r\n public ccwPerpendicularRay(): Ray2d {\r\n return new Ray2d(this._origin, this._direction.rotate90CCWXY());\r\n }\r\n\r\n /** Return a ray with same origin, direction rotated 90 degrees clockwise */\r\n public cwPerpendicularRay(): Ray2d {\r\n return new Ray2d(this._origin, this._direction.rotate90CWXY());\r\n }\r\n /** Normalize the direction vector in place. */\r\n public normalizeDirectionInPlace(defaultX: number = 1, defaultY: number = 0): boolean {\r\n if (this._direction.normalize(this._direction)) {\r\n return true;\r\n } else {\r\n this._direction.x = defaultX;\r\n this._direction.y = defaultY;\r\n // magnitude = 0.0;\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Intersect this ray (ASSUMED NORMALIZED) with unbounded line defined by points.\r\n * (The normalization assumption affects test for parallel vectors.)\r\n * Fraction and dHds passed as number[] to use by reference... Sticking to return of true and false in the case fraction is zero after\r\n * a true safe divide\r\n */\r\n public intersectUnboundedLine(linePointA: Point2d, linePointB: Point2d, fraction: number[], dHds: number[]): boolean {\r\n const lineDirection = linePointA.vectorTo(linePointB);\r\n const vector0 = linePointA.vectorTo(this._origin);\r\n const h0 = vector0.crossProduct(lineDirection);\r\n dHds[0] = this._direction.crossProduct(lineDirection);\r\n // h = h0 + s * dh\r\n const ff = Geometry.conditionalDivideFraction(-h0, dHds[0]);\r\n if (ff !== undefined) {\r\n fraction[0] = ff;\r\n return true;\r\n } else {\r\n fraction[0] = 0.0;\r\n return false;\r\n }\r\n }\r\n\r\n /** return the ray fraction where point projects to the ray */\r\n public projectionFraction(point: Point2d): number {\r\n return this._origin.vectorTo(point).fractionOfProjectionToVector(this._direction);\r\n }\r\n\r\n /** return the fraction of projection to the perpendicular ray */\r\n public perpendicularProjectionFraction(point: Point2d): number {\r\n const uv = this._direction.crossProduct(this._origin.vectorTo(point));\r\n const uu = this._direction.magnitudeSquared();\r\n // Want zero returned if failure case, not undefined\r\n return Geometry.safeDivideFraction(uv, uu, 0.0);\r\n }\r\n\r\n /** Return point from origin plus a scaled vector */\r\n public fractionToPoint(f: number): Point2d {\r\n return this._origin.plusScaled(this._direction, f);\r\n }\r\n}\r\n/**\r\n * Convex hull of points in 2d.\r\n * @internal\r\n */\r\nexport class ConvexPolygon2d {\r\n // hull points in CCW order, WITHOUT final duplicate...\r\n // REMARK: In degenerate case with 0,1,or 2 points the array is still there.\r\n private _hullPoints: Point2d[];\r\n\r\n constructor(points: Point2d[] | undefined) {\r\n this._hullPoints = [];\r\n // Deep copy of points array given\r\n if (points) {\r\n for (const point of points) {\r\n this._hullPoints.push(point);\r\n }\r\n }\r\n }\r\n\r\n /** Create the hull */\r\n public static createHull(points: Point2d[]): ConvexPolygon2d {\r\n return new ConvexPolygon2d(ConvexPolygon2d.computeConvexHull(points));\r\n }\r\n\r\n /** Create the hull. First try to use the points as given. */\r\n public static createHullIsValidCheck(points: Point2d[]) {\r\n if (ConvexPolygon2d.isValidConvexHull(points))\r\n return new ConvexPolygon2d(points);\r\n else\r\n return new ConvexPolygon2d(ConvexPolygon2d.computeConvexHull(points));\r\n }\r\n\r\n /** Return a reference of the hull points. */\r\n public get points(): Point2d[] {\r\n return this._hullPoints;\r\n }\r\n\r\n /** Test if hull points are a convex, CCW polygon */\r\n public static isValidConvexHull(points: Point2d[]) {\r\n if (points.length < 3)\r\n return false;\r\n const n = points.length;\r\n for (let i = 0; i < n; i++) {\r\n const i1 = (i + 1) % n;\r\n const i2 = (i + 2) % n;\r\n if (points[i].crossProductToPoints(points[i1], points[i2]) < 0.0)\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Return true if the convex hull (to the left of the edges) contains the test point */\r\n public containsPoint(point: Point2d): boolean {\r\n let xy0 = this._hullPoints[this._hullPoints.length - 1];\r\n // double tol = -1.0e-20; negative tol!!\r\n for (const i of this._hullPoints) {\r\n const xy1 = i;\r\n const c = xy0.crossProductToPoints(xy1, point);\r\n if (c < 0.0)\r\n return false;\r\n xy0 = i;\r\n }\r\n return true;\r\n }\r\n\r\n /** Return the largest outside. (return 0 if in or on) */\r\n public distanceOutside(xy: Point2d): number {\r\n let maxDistance = 0.0;\r\n const n = this._hullPoints.length;\r\n let xy0 = this._hullPoints[n - 1];\r\n // double tol = -1.0e-20; // negative tol!!\r\n for (let i = 0; i < n; i++) {\r\n const xy1 = this._hullPoints[i];\r\n const c = xy0.crossProductToPoints(xy1, xy);\r\n if (c < 0.0) {\r\n const ray = Ray2d.createOriginAndTarget(xy0, xy1);\r\n const s = ray.projectionFraction(xy);\r\n let d = 0.0;\r\n if (s < 0.0)\r\n d = xy0.distance(xy);\r\n else if (s > 1.0)\r\n d = xy1.distance(xy);\r\n else\r\n d = xy.distance(ray.fractionToPoint(s));\r\n\r\n if (d > maxDistance)\r\n maxDistance = d;\r\n }\r\n xy0 = this._hullPoints[i];\r\n }\r\n return maxDistance;\r\n }\r\n\r\n /** Offset the entire hull (in place) by distance.\r\n * Returns false if an undefined occurred from normalizing (could occur after changing some hull points already)\r\n */\r\n public offsetInPlace(distance: number): boolean {\r\n const n = this._hullPoints.length;\r\n if (n >= 3) {\r\n const hullPoint0 = this._hullPoints[0];\r\n let edgeA: Vector2d | undefined = this._hullPoints[n - 1].vectorTo(hullPoint0);\r\n edgeA = edgeA.normalize();\r\n if (edgeA === undefined) { return false; }\r\n\r\n let perpA = edgeA.rotate90CWXY();\r\n let edgeB: Vector2d | undefined;\r\n let perpB: Vector2d;\r\n for (let i = 0; i < n; i++) {\r\n const j = i + 1;\r\n edgeB = this._hullPoints[i].vectorTo(j < n ? this._hullPoints[j] : hullPoint0);\r\n edgeB = edgeB.normalize();\r\n if (edgeB === undefined) { return false; }\r\n\r\n perpB = edgeB.rotate90CWXY();\r\n const offsetBisector = Vector2d.createOffsetBisector(perpA, perpB, distance);\r\n if (offsetBisector === undefined) { return false; }\r\n\r\n this._hullPoints[i] = this._hullPoints[i].plus(offsetBisector);\r\n // PerpA takes up reference to perpB, as perpB will die in new iteration\r\n perpA = perpB;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Return 2 distances bounding the intersection of the ray with a convex hull.\r\n * ASSUME (for tolerance) the ray has normalized direction vector.\r\n * Both negative and positive distances along the ray are possible.\r\n * Returns range with extremities if less than 3 points, distanceA > distanceB, or if cross product < 0\r\n */\r\n public clipRay(ray: Ray2d): Range1d {\r\n let distanceA = - Number.MAX_VALUE;\r\n let distanceB = Number.MAX_VALUE;\r\n\r\n const n = this._hullPoints.length;\r\n\r\n if (n < 3)\r\n return Range1d.createNull();\r\n\r\n let xy0 = this._hullPoints[n - 1];\r\n for (const xy1 of this._hullPoints) {\r\n const distance: number[] = [];\r\n const dHds: number[] = [];\r\n if (ray.intersectUnboundedLine(xy0, xy1, distance, dHds)) {\r\n if (dHds[0] > 0.0) {\r\n if (distance[0] < distanceB)\r\n distanceB = distance[0];\r\n } else {\r\n if (distance[0] > distanceA)\r\n distanceA = distance[0];\r\n }\r\n if (distanceA > distanceB)\r\n return Range1d.createNull();\r\n } else {\r\n // ray is parallel to the edge.\r\n // Any single point out classifies it all . ..\r\n if (xy0.crossProductToPoints(xy1, ray.origin) < 0.0)\r\n return Range1d.createNull();\r\n }\r\n\r\n // xy1 is reassigned with each new loop\r\n xy0 = xy1;\r\n }\r\n const range = Range1d.createNull();\r\n range.extendX(distanceA);\r\n range.extendX(distanceB);\r\n return range;\r\n }\r\n\r\n /** Return the range of (fractional) ray positions for projections of all points from the arrays. */\r\n public rangeAlongRay(ray: Ray2d): Range1d {\r\n const range = Range1d.createNull();\r\n for (const xy1 of this._hullPoints)\r\n range.extendX(ray.projectionFraction(xy1));\r\n return range;\r\n }\r\n\r\n /** Return the range of (fractional) ray positions for projections of all points from the arrays. */\r\n public rangePerpendicularToRay(ray: Ray2d): Range1d {\r\n const range = Range1d.createNull();\r\n for (const xy1 of this._hullPoints)\r\n range.extendX(ray.perpendicularProjectionFraction(xy1));\r\n return range;\r\n }\r\n\r\n /** Computes the hull of a convex polygon from points given. Returns the hull as a new Point2d array.\r\n * Returns an empty hull if less than 3 points are given.\r\n */\r\n public static computeConvexHull(points: Point2d[]): Point2d[] | undefined {\r\n const hull: Point2d[] = [];\r\n const n = points.length;\r\n if (n < 3)\r\n return undefined;\r\n // Get deep copy\r\n const xy1: Point2d[] = points.slice(0, n);\r\n xy1.sort(Geometry.lexicalXYLessThan);\r\n hull.push(xy1[0]); // This is sure to stay\r\n hull.push(xy1[1]); // This one can be removed in loop.\r\n\r\n // First sweep creates upper hull\r\n for (let i = 2; i < n; i++) {\r\n const candidate = xy1[i];\r\n let top = hull.length - 1;\r\n while (top > 0 && hull[top - 1].crossProductToPoints(hull[top], candidate) <= 0.0) {\r\n top--;\r\n hull.pop();\r\n }\r\n hull.push(candidate);\r\n }\r\n\r\n // Second sweep creates lower hull right to left\r\n const i0 = hull.length - 1;\r\n // xy1.back () is already on stack.\r\n hull.push(xy1[n - 2]);\r\n for (let i = n - 2; i-- > 0;) {\r\n const candidate = xy1[i];\r\n let top = hull.length - 1;\r\n while (top > i0 && hull[top - 1].crossProductToPoints(hull[top], candidate) <= 0.0) {\r\n top--;\r\n hull.pop();\r\n }\r\n if (i > 0) // don't replicate start point!!!\r\n hull.push(candidate);\r\n }\r\n\r\n return hull;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Newton.d.ts","sourceRoot":"","sources":["../../src/numerics/Newton.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Newton.js","sourceRoot":"","sources":["../../src/numerics/Newton.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\n\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Plane3dByOriginAndVectors } from \"../geometry3d/Plane3dByOriginAndVectors\";\r\nimport { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { SmallSystem } from \"./Polynomials\";\r\n\r\n// cspell:word currentdFdX\r\n/** base class for Newton iterations in various dimensions.\r\n * Dimension-specific classes carry all dimension-related data and answer generalized queries\r\n * from this base class.\r\n * @internal\r\n */\r\nexport abstract class AbstractNewtonIterator {\r\n /** Compute a step. The current x and function values must be retained for use in later method calls */\r\n public abstract computeStep(): boolean;\r\n /** return the current step size, scaled for use in tolerance tests.\r\n * * This is a single number, typically the max of various per-dimension `dx / (1+x)` for the x and dx of that dimension.\r\n */\r\n public abstract currentStepSize(): number;\r\n /**\r\n * Apply the current step (in all dimensions)\r\n * @param isFinalStep true if this is a final step.\r\n */\r\n public abstract applyCurrentStep(isFinalStep: boolean): boolean;\r\n /**\r\n * @param stepSizeTarget tolerance to consider a single step converged.\r\n * This number should be \"moderately\" strict. Because 2 successive convergences are required,\r\n * it is expected that a first \"accept\" for (say) 10 to 14 digit step will be followed by another\r\n * iteration. A well behaved newton would then hypothetically double the number of digits to\r\n * 20 to 28. Since the IEEE double only carries 16 digits, this second-convergence step will\r\n * typically achieve full precision.\r\n * @param successiveConvergenceTarget number of successive convergences required for acceptance.\r\n * @param maxIterations max number of iterations. A typical newton step converges in 3 to 6 iterations.\r\n * Allow 15 to 20 to catch difficult cases.\r\n */\r\n protected constructor(\r\n stepSizeTolerance: number = 1.0e-11,\r\n successiveConvergenceTarget: number = 2,\r\n maxIterations: number = 15) {\r\n this._stepSizeTolerance = stepSizeTolerance;\r\n this._successiveConvergenceTarget = successiveConvergenceTarget;\r\n this._maxIterations = maxIterations;\r\n }\r\n /** Number of consecutive steps which passed convergence condition */\r\n protected _numAccepted: number = 0;\r\n /** Target number of successive convergences */\r\n protected _successiveConvergenceTarget: number;\r\n /** convergence target (the implementation-specific currentStepSize is compared to this) */\r\n protected _stepSizeTolerance: number;\r\n /** Max iterations allowed */\r\n protected _maxIterations: number;\r\n /** number of iterations (incremented at each step) */\r\n public numIterations: number = 0;\r\n /**\r\n * Test if a step is converged.\r\n * * Convergence is accepted with enough (_successiveConvergenceTarget) small steps (according to _stepSizeTolerance) occur in succession.\r\n * @param delta step size as reported by currentStepSize\r\n */\r\n public testConvergence(delta: number): boolean {\r\n if (Math.abs(delta) < this._stepSizeTolerance) {\r\n this._numAccepted++;\r\n return this._numAccepted >= this._successiveConvergenceTarget;\r\n }\r\n this._numAccepted = 0;\r\n return false;\r\n }\r\n /**\r\n * Run iterations, calling various methods from base and derived classes:\r\n * * computeStep -- typically evaluate derivatives and solve linear system.\r\n * * currentStepSize -- return numeric measure of the step just computed by computeStep\r\n * * testConvergence -- test if the step from currentStepSize (along with recent steps) is converged.\r\n * * applyCurrentStep -- apply the step to the independent variables\r\n */\r\n public runIterations(): boolean {\r\n this._numAccepted = 0;\r\n this.numIterations = 0;\r\n while (this.numIterations++ < this._maxIterations && this.computeStep()) {\r\n if (this.testConvergence(this.currentStepSize())\r\n && this.applyCurrentStep(true)) {\r\n return true;\r\n }\r\n this.applyCurrentStep(false);\r\n }\r\n return false;\r\n }\r\n}\r\n/** object to evaluate a newton function. The object must retain most-recent function and derivative\r\n * values for immediate query.\r\n * @internal\r\n */\r\nexport abstract class NewtonEvaluatorRtoRD {\r\n /** evaluate the function and its derivative at x. */\r\n public abstract evaluate(x: number): boolean;\r\n /** most recent function value */\r\n public currentF!: number;\r\n /** most recent evaluated derivative */\r\n public currentdFdX!: number;\r\n}\r\n/**\r\n * Newton iterator for use when both function and derivative can be evaluated.\r\n * @internal\r\n */\r\nexport class Newton1dUnbounded extends AbstractNewtonIterator {\r\n private _func: NewtonEvaluatorRtoRD;\r\n private _currentStep!: number;\r\n private _currentX!: number;\r\n private _target!: number;\r\n /**\r\n * Constructor for 1D newton iteration with approximate derivatives.\r\n * @param func function that returns both function and derivative.\r\n */\r\n public constructor(func: NewtonEvaluatorRtoRD) {\r\n super();\r\n this._func = func;\r\n this.setTarget(0);\r\n }\r\n /** Set the independent variable */\r\n public setX(x: number): boolean { this._currentX = x; return true; }\r\n /** Get the independent variable */\r\n public getX(): number { return this._currentX; }\r\n /** Set the target function value */\r\n public setTarget(y: number) { this._target = y; }\r\n /** move the current X by the just-computed step */\r\n public applyCurrentStep(): boolean { return this.setX(this._currentX - this._currentStep); }\r\n /** Compute the univariate newton step. */\r\n public computeStep(): boolean {\r\n if (this._func.evaluate(this._currentX)) {\r\n const dx = Geometry.conditionalDivideFraction(this._func.currentF - this._target, this._func.currentdFdX);\r\n if (dx !== undefined) {\r\n this._currentStep = dx;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /** Return the current step size as a relative number. */\r\n public currentStepSize(): number {\r\n return Math.abs(this._currentStep / (1.0 + Math.abs(this._currentX)));\r\n }\r\n}\r\n\r\n/** object to evaluate a newton function (without derivative). The object must retain most-recent function value.\r\n * @internal\r\n */\r\nexport abstract class NewtonEvaluatorRtoR {\r\n /** Evaluate function value into member currentF */\r\n public abstract evaluate(x: number): boolean;\r\n /** Most recent function evaluation. */\r\n public currentF!: number;\r\n}\r\n\r\n/** Newton iteration for a univariate function, using approximate derivatives.\r\n * @internal\r\n */\r\nexport class Newton1dUnboundedApproximateDerivative extends AbstractNewtonIterator {\r\n private _func: NewtonEvaluatorRtoR;\r\n private _currentStep!: number;\r\n private _currentX!: number;\r\n /** Step size for iteration.\r\n * * Initialized to 1e-8, which is appropriate for iteration in fraction space.\r\n * * Should be larger for iteration with real distance as x.\r\n */\r\n public derivativeH: number; // step size for approximate derivative\r\n\r\n /**\r\n * Constructor for 1D newton iteration with approximate derivatives.\r\n * @param func function that returns both function and derivative.\r\n */\r\n public constructor(func: NewtonEvaluatorRtoR) {\r\n super();\r\n this._func = func;\r\n this.derivativeH = 1.0e-8;\r\n }\r\n /** Set the x (independent, iterated) value */\r\n public setX(x: number): boolean { this._currentX = x; return true; }\r\n /** Get the independent variable */\r\n public getX(): number { return this._currentX; }\r\n /** move the current X by the just-computed step */\r\n public applyCurrentStep(): boolean { return this.setX(this._currentX - this._currentStep); }\r\n /** Univariate newton step computed with APPROXIMATE derivative. */\r\n public computeStep(): boolean {\r\n if (this._func.evaluate(this._currentX)) {\r\n const fA = this._func.currentF;\r\n if (this._func.evaluate(this._currentX + this.derivativeH)) {\r\n const fB = this._func.currentF;\r\n const dx = Geometry.conditionalDivideFraction(fA, (fB - fA) / this.derivativeH);\r\n if (dx !== undefined) {\r\n this._currentStep = dx;\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Return the current step size as a relative number. */\r\n public currentStepSize(): number {\r\n return Math.abs(this._currentStep / (1.0 + Math.abs(this._currentX)));\r\n }\r\n}\r\n\r\n/** object to evaluate a 2-parameter newton function (with derivatives!!).\r\n * @internal\r\n */\r\nexport abstract class NewtonEvaluatorRRtoRRD {\r\n /** Iteration controller calls this to ask for evaluation of the function and its two partial derivatives.\r\n * * The implementation returns true, it must set the currentF object.\r\n */\r\n public abstract evaluate(x: number, y: number): boolean;\r\n /** most recent function evaluation as xy parts of the plane */\r\n public currentF!: Plane3dByOriginAndVectors;\r\n /**\r\n * constructor.\r\n * * This creates a currentF object to (repeatedly) receive function and derivatives.\r\n */\r\n public constructor() {\r\n this.currentF = Plane3dByOriginAndVectors.createXYPlane();\r\n }\r\n}\r\n\r\n/**\r\n * Implement evaluation steps for newton iteration in 2 dimensions, using caller supplied NewtonEvaluatorRRtoRRD object.\r\n * @internal\r\n */\r\nexport class Newton2dUnboundedWithDerivative extends AbstractNewtonIterator {\r\n private _func: NewtonEvaluatorRRtoRRD;\r\n private _currentStep: Vector2d;\r\n private _currentUV: Point2d;\r\n\r\n public constructor(func: NewtonEvaluatorRRtoRRD) {\r\n super();\r\n this._func = func;\r\n this._currentStep = Vector2d.createZero();\r\n this._currentUV = Point2d.createZero();\r\n }\r\n /** Set the current uv coordinates for current iteration */\r\n public setUV(x: number, y: number): boolean { this._currentUV.set(x, y); return true; }\r\n /** Get the current u coordinate */\r\n public getU(): number { return this._currentUV.x; }\r\n /** Get the current v coordinate */\r\n public getV(): number { return this._currentUV.y; }\r\n /** Move the currentUV coordinate by currentStep. */\r\n public applyCurrentStep(): boolean { return this.setUV(this._currentUV.x - this._currentStep.x, this._currentUV.y - this._currentStep.y); }\r\n /** Evaluate the functions and derivatives at this._currentUV\r\n * Invert the jacobian and compute the this._currentStep.\r\n */\r\n public computeStep(): boolean {\r\n if (this._func.evaluate(this._currentUV.x, this._currentUV.y)) {\r\n const fA = this._func.currentF;\r\n if (SmallSystem.linearSystem2d(\r\n fA.vectorU.x, fA.vectorV.x,\r\n fA.vectorU.y, fA.vectorV.y,\r\n fA.origin.x, fA.origin.y, this._currentStep))\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Return the largest relative step of the x,y, components of the current step.\r\n */\r\n public currentStepSize(): number {\r\n return Geometry.maxAbsXY(\r\n this._currentStep.x / (1.0 + Math.abs(this._currentUV.x)),\r\n this._currentStep.y / (1.0 + Math.abs(this._currentUV.y)));\r\n }\r\n}\r\n/**\r\n * SimpleNewton has static methods for newton methods with evaluated functions presented as immediate arguments (not function object)\r\n * @internal\r\n */\r\nexport class SimpleNewton {\r\n /** Run a one-dimensional newton iteration with separate functions for function and derivative.\r\n * * completion is at 2 (TWO) successive passes at (absoluteTolerance + relTol * abs (x)), where relTol is chosen internally.\r\n * * absoluteTolerance is usually aggressively tight -- should come into play only for x near zero.\r\n * * The relTol is fluffy (for instance around 1e-11) but in properly converging cases the extra pass after first success\r\n * normally moves to full machine precision.\r\n * * This is an open-loop newton -- it just runs, and returns undefined if anything bad happens.\r\n */\r\n public static runNewton1D(x: number, func: (x: number) => number | undefined, derivative: (x: number) => number | undefined, absoluteTolerance: number = 1.0e-15): number | undefined {\r\n let numConverged = 0;\r\n let tolerance: number;\r\n const relTol = 1.0e-11;\r\n for (let iteration = 0; iteration < 20; iteration++) {\r\n const f = func(x);\r\n const df = derivative(x);\r\n if (f !== undefined && df !== undefined) {\r\n const dx = Geometry.conditionalDivideCoordinate(f, df);\r\n if (dx === undefined)\r\n return undefined;\r\n x -= dx;\r\n tolerance = absoluteTolerance + Math.abs(x) * relTol;\r\n if (Math.abs(dx) < tolerance) {\r\n numConverged++;\r\n if (dx === 0.0 || numConverged > 1) // bypass convergence count on true 0 dx !\r\n return x;\r\n } else {\r\n numConverged = 0;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PascalCoefficients.d.ts","sourceRoot":"","sources":["../../src/numerics/PascalCoefficients.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C;;;;;OAKG;WACW,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IA0B/C;;;;;;;OAOG;WACW,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAqBjG;;;;;;;OAOG;WACW,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;CAYvG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PascalCoefficients.js","sourceRoot":"","sources":["../../src/numerics/PascalCoefficients.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\n/**\r\n * PascalCoeffients class has static methods which return rows of the PascalTriangle.\r\n * @internal\r\n */\r\nexport class PascalCoefficients {\r\n private static _allRows: Float64Array[] = [];\r\n /**\r\n * * return a row of the pascal table.\r\n * * The contents must not be altered by the user !!!\r\n * * Hypothetically the request row can be any integer.\r\n * * BUT in practice, values 60 create integer entries that are too big for IEEE double.\r\n */\r\n public static getRow(row: number): Float64Array {\r\n const allRows = PascalCoefficients._allRows;\r\n if (allRows.length === 0) {\r\n // seed the table . . .\r\n allRows.push(new Float64Array([1]));\r\n allRows.push(new Float64Array([1, 1]));\r\n allRows.push(new Float64Array([1, 2, 1]));\r\n allRows.push(new Float64Array([1, 3, 3, 1]));\r\n allRows.push(new Float64Array([1, 4, 6, 4, 1]));\r\n allRows.push(new Float64Array([1, 5, 10, 10, 5, 1]));\r\n allRows.push(new Float64Array([1, 6, 15, 20, 15, 6, 1]));\r\n allRows.push(new Float64Array([1, 7, 21, 35, 35, 21, 7, 1]));\r\n }\r\n\r\n while (allRows.length <= row) {\r\n const k = allRows.length;\r\n const oldRow = allRows[k - 1];\r\n const newRow = new Float64Array(k + 1);\r\n newRow[0] = 1.0;\r\n for (let i = 1; i < k; i++)\r\n newRow[i] = oldRow[i - 1] + oldRow[i];\r\n newRow[k] = 1.0;\r\n allRows.push(newRow);\r\n }\r\n return allRows[row];\r\n }\r\n /** Return an array with Bezier weighted pascal coefficients\r\n * @param row row index in the pascal triangle. (`row+1` entries)\r\n * @param u parameter value\r\n * @param result optional destination array.\r\n * @note if the destination array is undefined or too small, a new Float64Array is allocated.\r\n * @note if the destination array is larger than needed, its leading `row+1` values are filled,\r\n * and the array is returned.\r\n */\r\n public static getBezierBasisValues(order: number, u: number, result?: Float64Array): Float64Array {\r\n const row = order - 1;\r\n const pascalRow = PascalCoefficients.getRow(row);\r\n if (result === undefined || result.length < order)\r\n result = new Float64Array(order);\r\n for (let i = 0; i < order; i++)\r\n result[i] = pascalRow[i];\r\n // multiply by increasing powers of u ...\r\n let p = u;\r\n for (let i = 1; i < order; i++ , p *= u) {\r\n result[i] *= p;\r\n }\r\n // multiply by powers of (1-u), working from right\r\n const v = 1.0 - u;\r\n p = v;\r\n for (let i = order - 2; i >= 0; i-- , p *= v) {\r\n result[i] *= p;\r\n }\r\n return result;\r\n }\r\n\r\n /** Return an array with derivatives of Bezier weighted pascal coefficients\r\n * @param row row index in the pascal triangle. (`row+1` entries)\r\n * @param u parameter value\r\n * @param result optional destination array.\r\n * @note if the destination array is undefined or too small, a new Float64Array is allocated.\r\n * @note if the destination array is larger than needed, its leading `row+1` values are filled,\r\n * and the array is returned.\r\n */\r\n public static getBezierBasisDerivatives(order: number, u: number, result?: Float64Array): Float64Array {\r\n result = this.getBezierBasisValues(order - 1, u, result);\r\n // derivative is df/du = (order-1 ) * sum ( q[i+1] - q[i]) summed on 0 <= i < order - 1.\\\r\n // evaluate lower order basis, overwrite in place from right to left\r\n const f = order - 1;\r\n result[order - 1] = f * result[order - 2];\r\n for (let k = order - 2; k > 0; k--) {\r\n result[k] = f * (result[k - 1] - result[k]);\r\n }\r\n result[0] = - f * result[0];\r\n return result;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PolarData.d.ts","sourceRoot":"","sources":["../../src/numerics/PolarData.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAG5C;;GAEG;AACH,oBAAY,eAAe;IACzB,OAAO,IAAI;IACX,WAAW,IAAI;IACf,gBAAgB,KAAK;IACrB,OAAO,IAAI;CAEZ;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAO;IACpC,WAAkB,aAAa,IAAI,MAAM,CAAqC;IAC9E,qCAAqC;IAC9B,CAAC,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IAC9B,CAAC,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IACxB,CAAC,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACrB,uEAAuE;IAChE,QAAQ,CAAC,EAAE,aAAa,CAAC;IAChC,yDAAyD;IAClD,KAAK,CAAC,EAAE,eAAe,CAAC;IAC/B,4DAA4D;IAC5D,IAAW,0BAA0B,IAAI,MAAM,CAO9C;IACD,gEAAgE;WAClD,kBAAkB,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS;IAUvH;;OAEG;IACI,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS;IAUlE,0FAA0F;WAC5E,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;CAoF9D"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Polynomials.d.ts","sourceRoot":"","sources":["../../src/numerics/Polynomials.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMhD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,6CAA6C;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEX,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU;IAI1D;;;;OAIG;WACW,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAsBnF,oCAAoC;IAC7B,WAAW,CAAC,CAAC,EAAE,MAAM;IAI5B,2DAA2D;IACpD,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,IAAI;IAKtE,+CAA+C;IACxC,SAAS,IAAI,MAAM,EAAE,GAAG,SAAS;IAYxC,mCAAmC;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACI,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5C,2FAA2F;IACpF,yBAAyB,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAQrF,yEAAyE;WAC3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,MAAU,GAAG,sBAAsB;CAOnG;AACD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,0DAA0D;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEX,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU;IAG1E,oCAAoC;IAC7B,WAAW,CAAC,CAAC,EAAE,MAAM;IAI5B,yCAAyC;IAClC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,IAAI;IAMtE;;;OAGG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACI,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAG5C,kFAAkF;WACpE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,MAAY,GAAG,sBAAsB;CAOpH;AACD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,0DAA0D;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEX,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU;IAG1F,oCAAoC;IAC7B,WAAW,CAAC,CAAC,EAAE,MAAM;IAI5B;;;OAGG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACI,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI5C,gGAAgG;WAClF,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,MAAU,GAAG,sBAAsB;CASjI;AACD;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,8BAA8B;IACvB,WAAW,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAC3C,WAAW,EAAE,MAAM,CAAC;gBAEf,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKpD,yGAAyG;IAClG,OAAO;IAGd,yFAAyF;IAClF,qBAAqB,IAAI,MAAM;IAOtC;;OAEG;IACI,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAS3E,iDAAiD;IAC1C,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAG1D,gEAAgE;IACzD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAW9E,wFAAwF;IACjF,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAS1E,uFAAuF;IAChF,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAUjH,gGAAgG;IACzF,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQpG;;;;;;;OAOG;IACI,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;CAiD5H;AACD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,wBAAwB;IACjB,MAAM,EAAE,MAAM,CAAC;gBACV,CAAC,EAAE,MAAM;IAErB,0DAA0D;IACnD,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIxE,wEAAwE;IACjE,4BAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1F;;;;;OAKG;IACI,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;IAsB5G,4DAA4D;WAC9C,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAiE3L;;;;;;;OAOG;WACW,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,SAAS,GAAG,MAAM;IAyD7M;;;OAGG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAO5F;;;;OAIG;WACW,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IASvF;;;OAGG;IACI,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;CA6BlH;AACD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IACpD,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,MAAM;IAGrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAG3B,yDAAyD;WAC3C,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAOrC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IASjC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC,OAAO,CAAC,MAAM,CAAC,YAAY;IAoC3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B;;;;;OAKG;WACW,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAGnF;;;OAGG;WACW,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM;IAgBjF;;;;OAIG;WACW,oBAAoB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB;IA0B3F,oCAAoC;IACpC,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;;;OAIG;IAEH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkHvC,wEAAwE;WAC1D,gBAAgB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB;IAcxF,uFAAuF;WACzE,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB;IA6F1F,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACW,yCAAyC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAChG,SAAS,EAAE,4BAA4B,EAAE,SAAS,EAAE,4BAA4B,EAAE,aAAa,EAAE,4BAA4B,EAC7H,MAAM,GAAE,MAAgB,GAAG,MAAM;CA2CpC;AACD;;;GAGG;AAEH,qBAAa,eAAe;IAE1B,kGAAkG;WACpF,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IASxF,4EAA4E;WAC9D,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI7D;;;;OAIG;WACW,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAa1F,4BAA4B;WACd,IAAI,CAAC,IAAI,EAAE,YAAY;CAKtC;AACD;;;GAGG;AACH,qBAAa,cAAc;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAEtD,+DAA+D;IAC/D,gBAAuB,CAAC,eAAuC;IAC/D,iEAAiE;IACjE,gBAAuB,CAAC,eAAkC;IAC1D,4DAA4D;IAC5D,gBAAuB,CAAC,eAAuC;IAC/D,8DAA8D;IAC9D,gBAAuB,EAAE,eAA6C;IACtE,4DAA4D;IAC5D,gBAAuB,EAAE,eAAkD;IAC3E,4DAA4D;IAC5D,gBAAuB,EAAE,eAA4C;IACrE,uDAAuD;IACvD,gBAAuB,EAAE,eAAiD;IAC1E,yDAAyD;IACzD,gBAAuB,EAAE,eAAuC;IAChE,+CAA+C;IAC/C,gBAAuB,EAAE,eAAkD;IAC3E,sEAAsE;IACtE,gBAAuB,SAAS,eAAkD;IAElF;;;;;;;;;;;;;;;OAeG;WACW,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAC/F,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IA6D7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IACrD;;;;;;;;;;;;OAYG;WACW,0CAA0C,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAC5F,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAwCjE;;;;;;;;;;;;OAYG;WACW,kCAAkC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAC7F,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO;IAkBrF;;;;;;;;;;;;;;;OAeG;WACW,6CAA6C,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAC5F,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAClC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAClC,cAAc,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO;CAkB9D;AACD;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;;;;;OAQG;WACW,8CAA8C,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAC7G,MAAM,EAAE,QAAQ,GAAG,OAAO;IAsB5B;;;;;;OAMG;WACW,8CAA8C,CAC1D,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAChD,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAChD,MAAM,EAAE,QAAQ,GAAG,OAAO;IAkB5B;;;;;;;;OAQG;WACW,8CAA8C,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAC7G,MAAM,EAAE,QAAQ,GAAG,OAAO;IAuB5B;;;;;;;;OAQG;WACW,+CAA+C,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;IA6B9J;;;;;OAKG;WACW,qCAAqC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAmBxH;;;;;OAKG;WACW,oCAAoC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAWzH;;;;;OAKG;WACW,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAa7H;;;;;;;;OAQG;WACW,qCAAqC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EACpG,MAAM,EAAE,QAAQ,GAAG,OAAO;IAQ5B;;;;OAIG;WACW,mCAAmC,CAC/C,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EACtE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EACtE,MAAM,EAAE,QAAQ,GAAG,OAAO;IAa5B;;;;;;;;;;;OAWG;WACW,cAAc,CAC1B,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,sBAAsB;IAC9C,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB;IAC/C,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa;IACrC,MAAM,EAAE,QAAQ,GAAG,OAAO;IAa5B;;;;;;;;;;;;;;;;;;OAkBG;WACW,cAAc,CAC1B,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,sBAAsB;IAC7D,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,uBAAuB;IAC9D,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,uBAAuB;IAC9D,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa;IACjD,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAc1C;;;;;OAKG;WACW,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAShH;;;;OAIG;WACW,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAC5E,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS;CAmBzE;AACD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,2BAA2B;IACpB,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACb,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACb,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACd,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;gBACgB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM7D;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAG7C;OACG;WACW,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAG5G;;;;;;;;OAQG;WACW,SAAS,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS;CAI7H;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,2BAA2B;IACpB,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IAClB,UAAU,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;gBACgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK9D,2BAA2B;IACpB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKtD,0DAA0D;IACnD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAG7C,uEAAuE;IAChE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAIvC,2GAA2G;IACpG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAc5F,2GAA2G;IACpG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAGjE;;;;OAIG;IACI,sBAAsB,IAAI,MAAM;CAGxC;AACD;;;;GAIG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACK,CAAC,EAAE,MAAM,CAAC;IACjB;;MAEE;IACI,EAAE,EAAE,MAAM,CAAC;IAClB;;OAEG;IACI,EAAE,EAAE,MAAM,CAAC;IAClB,qDAAqD;gBAClC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAKpD;;;;OAIG;IACI,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS;IAW/D;;;;OAIG;IACI,aAAa,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IAGvC;;OAEG;IACK,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAMtF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Polynomials.js","sourceRoot":"","sources":["../../src/numerics/Polynomials.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\n\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\n// import { Angle, AngleSweep, Geometry } from \"../Geometry\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { AngleSweep } from \"../geometry3d/AngleSweep\";\r\nimport { GrowableFloat64Array, OptionalGrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { LongitudeLatitudeNumber } from \"../geometry3d/LongitudeLatitudeAltitude\";\r\nimport { Point2d, Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d, Vector3d, XYZ } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { XAndY } from \"../geometry3d/XYZProps\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\n\r\n// import { Arc3d } from \"../curve/Arc3d\";\r\n// cspell:word Cardano\r\n// cspell:word CCminusSS\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/**\r\n * degree 2 (quadratic) polynomial in for y = c0 + c1*x + c2*x^2\r\n * @internal\r\n */\r\nexport class Degree2PowerPolynomial {\r\n /** The three coefficients for the quartic */\r\n public coffs: number[];\r\n\r\n constructor(c0: number = 0, c1: number = 0, c2: number = 0) {\r\n this.coffs = [c0, c1, c2];\r\n }\r\n\r\n /**\r\n * * Return 2 duplicate roots in double root case.\r\n * * The solutions are always in algebraic order.\r\n * @returns 0, 1, or 2 solutions of the usual quadratic (a*x*x + b * x + c = 0)\r\n */\r\n public static solveQuadratic(a: number, b: number, c: number): number[] | undefined {\r\n const b1 = Geometry.conditionalDivideFraction(b, a);\r\n const c1 = Geometry.conditionalDivideFraction(c, a);\r\n if (b1 !== undefined && c1 !== undefined) {\r\n // now solving xx + b1*x + c1 = 0 -- i.e. implied \"a\" coefficient is 1 . .\r\n const q = b1 * b1 - 4 * c1;\r\n if (q > 0) {\r\n const e = Math.sqrt(q);\r\n // e is positive, so this sorts algebraically\r\n return [0.5 * (-b1 - e), 0.5 * (-b1 + e)];\r\n }\r\n if (q < 0)\r\n return undefined;\r\n const root = -0.5 * b1;\r\n return [root, root];\r\n }\r\n // \"divide by a\" failed. solve bx + c = 0\r\n const x = Geometry.conditionalDivideFraction(-c, b);\r\n if (x !== undefined)\r\n return [x];\r\n return undefined;\r\n }\r\n /** Add `a` to the constant term. */\r\n public addConstant(a: number) {\r\n this.coffs[0] += a;\r\n }\r\n\r\n /** Add `s * (a + b*x)^2` to the quadratic coefficients */\r\n public addSquaredLinearTerm(a: number, b: number, s: number = 1): void {\r\n this.coffs[0] += s * (a * a);\r\n this.coffs[1] += s * (2.0 * a * b);\r\n this.coffs[2] += s * (b * b);\r\n }\r\n /** Return the real roots of this polynomial */\r\n public realRoots(): number[] | undefined {\r\n const ss = Degree2PowerPolynomial.solveQuadratic(this.coffs[2], this.coffs[1], this.coffs[0]);\r\n if (ss && ss.length > 1) {\r\n if (ss[0] > ss[1]) {\r\n const temp = ss[0];\r\n ss[0] = ss[1];\r\n ss[1] = temp;\r\n }\r\n }\r\n return ss;\r\n }\r\n\r\n /** Evaluate the quadratic at x. */\r\n public evaluate(x: number): number {\r\n return this.coffs[0] + x * (this.coffs[1] + x * this.coffs[2]);\r\n }\r\n\r\n /**\r\n * Evaluate the bezier function at a parameter value. (i.e. sum the basis functions times coefficients)\r\n * @param u parameter for evaluation\r\n */\r\n public evaluateDerivative(x: number): number {\r\n return this.coffs[1] + 2 * x * this.coffs[2];\r\n }\r\n\r\n /** Factor the polynomial in to the form `y0 + c * (x-x0)^2)`, i.e. complete the square. */\r\n public tryGetVertexFactorization(): { x0: number, y0: number, c: number } | undefined {\r\n const x = Geometry.conditionalDivideFraction(-this.coffs[1], 2.0 * this.coffs[2]);\r\n if (x !== undefined) {\r\n const y = this.evaluate(x);\r\n return { c: this.coffs[2], x0: x, y0: y };\r\n }\r\n return undefined;\r\n }\r\n /** Construct a quadratic from input form `c2 * (x-root0) * (x-root1)` */\r\n public static fromRootsAndC2(root0: number, root1: number, c2: number = 1): Degree2PowerPolynomial {\r\n return new Degree2PowerPolynomial(\r\n c2 * root0 * root1,\r\n - c2 * (root0 + root1),\r\n c2);\r\n }\r\n\r\n}\r\n/**\r\n * degree 3 (cubic) polynomial in for y = c0 + c1*x + c2*x^2 + c3*x^3\r\n * @internal\r\n */\r\nexport class Degree3PowerPolynomial {\r\n /** polynomial coefficients, index corresponds to power */\r\n public coffs: number[];\r\n\r\n constructor(c0: number = 0, c1: number = 0, c2: number = 0, c3: number = 1) {\r\n this.coffs = [c0, c1, c2, c3];\r\n }\r\n /** Add `a` to the constant term. */\r\n public addConstant(a: number) {\r\n this.coffs[0] += a;\r\n }\r\n\r\n /** Add `s * (a + b*x)^2` to the cubic */\r\n public addSquaredLinearTerm(a: number, b: number, s: number = 1): void {\r\n this.coffs[0] += s * (a * a);\r\n this.coffs[1] += s * (2.0 * a * b);\r\n this.coffs[2] += s * (b * b);\r\n }\r\n\r\n /**\r\n * Evaluate the polynomial at x\r\n * @param u parameter for evaluation\r\n */\r\n public evaluate(x: number): number {\r\n return this.coffs[0] + x * (this.coffs[1] + x * (this.coffs[2] + x * this.coffs[3]));\r\n }\r\n\r\n /**\r\n * Evaluate the polynomial derivative\r\n * @param u parameter for evaluation\r\n */\r\n public evaluateDerivative(x: number): number {\r\n return this.coffs[1] + x * (2.0 * this.coffs[2] + x * 3.0 * this.coffs[3]);\r\n }\r\n /** Construct a cubic from the form `c3 * (x-root0) * (x - root1) * (x- root2)` */\r\n public static fromRootsAndC3(root0: number, root1: number, root2: number, c3: number = 1.0): Degree3PowerPolynomial {\r\n return new Degree3PowerPolynomial(\r\n -c3 * root0 * root1 * root2,\r\n c3 * (root0 * root1 + root1 * root2 + root0 * root2),\r\n - c3 * (root0 + root1 + root2),\r\n c3);\r\n }\r\n}\r\n/**\r\n * degree 4 (quartic) polynomial in for y = c0 + c1*x + c2*x^2 + c4*x^4\r\n * @internal\r\n */\r\nexport class Degree4PowerPolynomial {\r\n /** polynomial coefficients, index corresponds to power */\r\n public coffs: number[];\r\n\r\n constructor(c0: number = 0, c1: number = 0, c2: number = 0, c3: number = 0, c4: number = 0) {\r\n this.coffs = [c0, c1, c2, c3, c4];\r\n }\r\n /** Add `a` to the constant term. */\r\n public addConstant(a: number) {\r\n this.coffs[0] += a;\r\n }\r\n\r\n /**\r\n * Evaluate the polynomial\r\n * @param x x coordinate for evaluation\r\n */\r\n public evaluate(x: number): number {\r\n return this.coffs[0] + x * (this.coffs[1] + x * (this.coffs[2] + x * (this.coffs[3] + x * this.coffs[4])));\r\n }\r\n\r\n /**\r\n * Evaluate the derivative\r\n * @param x x coordinate for evaluation\r\n */\r\n public evaluateDerivative(x: number): number {\r\n return (this.coffs[1] + x * (2.0 * this.coffs[2] + x * (3.0 * this.coffs[3] + x * 4.0 * this.coffs[4])));\r\n }\r\n\r\n /** Construct a quartic from the form `c3 * (x-root0) * (x - root1) * (x- root2) * (x-root3)` */\r\n public static fromRootsAndC4(root0: number, root1: number, root2: number, root3: number, c4: number = 1): Degree4PowerPolynomial {\r\n return new Degree4PowerPolynomial(\r\n c4 * (root0 * root1 * root2 * root3),\r\n -c4 * (root0 * root1 * root2 + root0 * root1 * root3 + root0 * root2 * root3 + root1 * root2 * root3),\r\n c4 * (root0 * root1 + root0 * root2 + root0 * root3 + root1 * root2 + root1 * root3 + root2 * root3),\r\n -c4 * (root0 + root1 + root2 + root3),\r\n c4);\r\n }\r\n\r\n}\r\n/**\r\n * polynomial services for an implicit torus with\r\n * * z axis is \"through the donut hole\"\r\n * * `majorRadius` is the radius of the circle \"around the z axis\"\r\n * * `minorRadius` is the radius of circles around the major circle\r\n * * for simple xyz the implicit form is\r\n * * `(x^2+y^2+z^2+(R^2-r^2))^2 = 4 R^2(x^2+y^2)`\r\n * * In weighted form\r\n * * `(x^2+y^2+z^2+(R^2-r^2)w^2)^2 = 4 R^2 w^2 (x^2+y^2)`\r\n * @internal\r\n */\r\nexport class TorusImplicit {\r\n /** major (xy plane) radius */\r\n public majorRadius: number;\r\n /** hoop (perpendicular to major circle) radius */\r\n public minorRadius: number;\r\n\r\n constructor(majorRadius: number, minorRadius: number) {\r\n this.majorRadius = majorRadius;\r\n this.minorRadius = minorRadius;\r\n }\r\n\r\n /** Return sum of (absolute) major and minor radii, which is (half) the box size in x and y directions */\r\n public boxSize() {\r\n return (Math.abs(this.majorRadius) + Math.abs(this.minorRadius));\r\n }\r\n /** Return scale factor appropriate to control the magnitude of the implicit function. */\r\n public implicitFunctionScale(): number {\r\n const a = this.boxSize();\r\n if (a === 0.0)\r\n return 1.0;\r\n return 1.0 / (a * a * a * a);\r\n }\r\n\r\n /**\r\n * At space point (x,y,z) evaluate the implicit form of the torus (See `ImplicitTorus`)\r\n */\r\n public evaluateImplicitFunctionXYZ(x: number, y: number, z: number): number {\r\n const rho2 = x * x + y * y;\r\n const z2 = z * z;\r\n const R2 = this.majorRadius * this.majorRadius;\r\n const r2 = this.minorRadius * this.minorRadius;\r\n const f = rho2 + z2 + (R2 - r2);\r\n const g = 4.0 * R2 * rho2;\r\n return (f * f - g) * this.implicitFunctionScale();\r\n }\r\n /** Evaluate the implicit function at a point. */\r\n public evaluateImplicitFunctionPoint(xyz: Point3d): number {\r\n return this.evaluateImplicitFunctionXYZ(xyz.x, xyz.y, xyz.z);\r\n }\r\n /** Evaluate the implicit function at homogeneous coordinates */\r\n public evaluateImplicitFunctionXYZW(x: number, y: number, z: number, w: number) {\r\n const rho2 = x * x + y * y;\r\n const z2 = z * z;\r\n const w2 = w * w;\r\n const R2 = this.majorRadius * this.majorRadius;\r\n const r2 = this.minorRadius * this.minorRadius;\r\n const f = rho2 + z2 + w2 * (R2 - r2);\r\n const g = w2 * 4.0 * R2 * rho2;\r\n return (f * f - g) * this.implicitFunctionScale();\r\n }\r\n\r\n /** Evaluate the surface point at angles (in radians) on the major and minor circles. */\r\n public evaluateThetaPhi(thetaRadians: number, phiRadians: number): Point3d {\r\n const c = Math.cos(thetaRadians);\r\n const s = Math.sin(thetaRadians);\r\n // theta=0 point\r\n const x0 = this.majorRadius + this.minorRadius * Math.cos(phiRadians);\r\n const z0 = this.minorRadius * Math.sin(phiRadians);\r\n return Point3d.create(c * x0, s * x0, z0);\r\n }\r\n\r\n /** Evaluate partial derivatives at angles (int radians) on major and minor circles. */\r\n public evaluateDerivativesThetaPhi(thetaRadians: number, phiRadians: number, dxdTheta: Vector3d, dxdPhi: Vector3d) {\r\n const cTheta = Math.cos(thetaRadians);\r\n const sTheta = Math.sin(thetaRadians);\r\n const bx = this.minorRadius * Math.cos(phiRadians);\r\n const bz = this.minorRadius * Math.sin(phiRadians);\r\n const x0 = this.majorRadius + bx;\r\n Vector3d.create(-x0 * sTheta, x0 * cTheta, 0.0, dxdTheta);\r\n Vector3d.create(-cTheta * bz, -sTheta * bz, bx, dxdPhi);\r\n }\r\n\r\n /** Evaluate space point at major and minor angles (in radians) and distance from major hoop. */\r\n public evaluateThetaPhiDistance(thetaRadians: number, phiRadians: number, distance: number): Point3d {\r\n const c = Math.cos(thetaRadians);\r\n const s = Math.sin(thetaRadians);\r\n // theta=0 point\r\n const x0 = this.majorRadius + distance * Math.cos(phiRadians);\r\n const z0 = distance * Math.sin(phiRadians);\r\n return Point3d.create(c * x0, s * x0, z0);\r\n }\r\n /** Given an xyz coordinate in the local system of the toroid, compute the torus parametrization\r\n * * theta = angular coordinate in xy plane\r\n * * phi = angular coordinate in minor circle.\r\n * * distance = distance from major circle\r\n * * rho = distance from origin to xy part of the input.\r\n * @param xyz space point in local coordinates.\r\n * @return object with properties theta, phi, distance, rho\r\n */\r\n public xyzToThetaPhiDistance(xyz: Point3d): { theta: number, phi: number, distance: number, rho: number, safePhi: boolean } {\r\n const rho = xyz.magnitudeXY();\r\n const majorRadiusFactor = Geometry.conditionalDivideFraction(this.majorRadius, rho);\r\n let safeMajor;\r\n let majorCirclePoint;\r\n if (majorRadiusFactor) {\r\n safeMajor = true;\r\n majorCirclePoint = Point3d.create(majorRadiusFactor * xyz.x, majorRadiusFactor * xyz.y, 0.0);\r\n } else {\r\n safeMajor = false;\r\n majorCirclePoint = Point3d.create(xyz.x, xyz.y, 0.0);\r\n }\r\n const theta = safeMajor ? Math.atan2(xyz.y, xyz.x) : 0.0;\r\n const vectorFromMajorCircle = Vector3d.createStartEnd(majorCirclePoint, xyz);\r\n const distance = vectorFromMajorCircle.magnitude();\r\n const dRho = rho - this.majorRadius;\r\n let safePhi;\r\n let phi;\r\n if (xyz.z === 0.0 && dRho === 0.0) {\r\n phi = 0.0;\r\n safePhi = false;\r\n } else {\r\n phi = Math.atan2(xyz.z, dRho);\r\n safePhi = true;\r\n }\r\n return { theta, phi, distance, rho, safePhi: safeMajor && safePhi };\r\n }\r\n /*\r\n public minorCircle(theta: Angle): Arc3d {\r\n const c = Math.cos(theta.radians);\r\n const s = Math.sin(theta.radians);\r\n return Arc3d.create(\r\n Point3d.create(c * this.majorRadius, s * this.majorRadius, 0.0),\r\n Vector3d.create(c * this.minorRadius, s * this.minorRadius, 0.0),\r\n Vector3d.create(0.0, 0.0, this.minorRadius),\r\n AngleSweep.create360()) as Arc3d;\r\n }\r\n\r\n public majorCircle(phi: Angle): Arc3d {\r\n const c = Math.cos(phi.radians);\r\n const s = Math.sin(phi.radians);\r\n const a = this.majorRadius + c * this.minorRadius;\r\n return Arc3d.create(\r\n Point3d.create(0.0, 0.0, this.minorRadius * s),\r\n Vector3d.create(a, 0.0, 0.0),\r\n Vector3d.create(0.0, a, 0.0),\r\n AngleSweep.create360()) as Arc3d;\r\n }\r\n */\r\n}\r\n/**\r\n * evaluation methods for an implicit sphere\r\n * * xyz function `x*x + y*y + z*z - r*r = 0`.\r\n * * xyzw function `x*x + y*y + z*z - r*r*w*w = 0`.\r\n * @internal\r\n */\r\nexport class SphereImplicit {\r\n /** Radius of sphere. */\r\n public radius: number;\r\n constructor(r: number) { this.radius = r; }\r\n\r\n /** Evaluate the implicit function at coordinates x,y,z */\r\n public evaluateImplicitFunction(x: number, y: number, z: number): number {\r\n return x * x + y * y + z * z - this.radius * this.radius;\r\n }\r\n\r\n /** Evaluate the implicit function at homogeneous coordinates x,y,z,w */\r\n public evaluateImplicitFunctionXYZW(wx: number, wy: number, wz: number, w: number): number {\r\n return (wx * wx + wy * wy + wz * wz) - this.radius * this.radius * w * w;\r\n }\r\n\r\n /** Given an xyz coordinate in the local system of the toroid, compute the sphere parametrization\r\n * * theta = angular coordinate in xy plane\r\n * * phi = rotation from xy plane towards z axis.\r\n * @param xyz space point in local coordinates.\r\n * @return object with properties thetaRadians, phi, r\r\n */\r\n public xyzToThetaPhiR(xyz: Point3d): { thetaRadians: number, phiRadians: number, r: number, valid: boolean } {\r\n const rhoSquared = xyz.x * xyz.x + xyz.y * xyz.y;\r\n const rho = Math.sqrt(rhoSquared);\r\n const r = Math.sqrt(rhoSquared + xyz.z * xyz.z);\r\n let theta;\r\n let phi;\r\n let valid;\r\n if (r === 0.0) {\r\n theta = phi = 0.0;\r\n valid = false;\r\n } else {\r\n phi = Math.atan2(xyz.z, rho); // At least one of these is nonzero\r\n if (rhoSquared !== 0.0) {\r\n theta = Math.atan2(xyz.y, xyz.x);\r\n valid = true;\r\n } else {\r\n theta = 0.0;\r\n valid = false;\r\n }\r\n }\r\n return { thetaRadians: (theta), phiRadians: (phi), r, valid };\r\n }\r\n /** Return the range of a uv-aligned patch of the sphere. */\r\n public static patchRangeStartEndRadians(center: Point3d, radius: number, theta0Radians: number, theta1Radians: number, phi0Radians: number, phi1Radians: number, result?: Range3d): Range3d {\r\n const thetaSweep = AngleSweep.createStartEndRadians(theta0Radians, theta1Radians);\r\n const phiSweep = AngleSweep.createStartEndRadians(phi0Radians, phi1Radians);\r\n const range = Range3d.createNull(result);\r\n const xyz = Point3d.create();\r\n if (thetaSweep.isFullCircle && phiSweep.isFullLatitudeSweep) {\r\n // full sphere, no trimming -- build directly\r\n range.extendPoint(center);\r\n range.expandInPlace(Math.abs(radius));\r\n } else {\r\n const sphere = new SphereImplicit(radius);\r\n // construct range for ORIGIN CENTERED sphere ...\r\n const pi = Math.PI;\r\n const piOver2 = 0.5 * Math.PI;\r\n let phi, theta;\r\n // 6 candidate interior extreme points on equator and 0, 90 degree meridians\r\n for (const thetaPhi of [\r\n [0.0, 0.0],\r\n [pi, 0.0],\r\n [piOver2, 0.0],\r\n [-piOver2, 0.0],\r\n [theta0Radians, piOver2],\r\n [theta0Radians, -piOver2]]) {\r\n theta = thetaPhi[0];\r\n phi = thetaPhi[1];\r\n if (thetaSweep.isRadiansInSweep(theta) && phiSweep.isRadiansInSweep(phi))\r\n range.extendPoint(sphere.evaluateThetaPhi(theta, phi, xyz));\r\n }\r\n\r\n // 4 boundary curves, each with 3 components ...\r\n // BUT: phi should not extend beyond poles. Hence z extremes on constant theta curve will never be different from z of constant phi curve or of poles as tested above.\r\n const axisRange = Range1d.createNull();\r\n const cosPhi0 = Math.cos(phi0Radians);\r\n const cosPhi1 = Math.cos(phi1Radians);\r\n const sinPhi0 = Math.sin(phi0Radians);\r\n const sinPhi1 = Math.sin(phi1Radians);\r\n const trigForm = new SineCosinePolynomial(0, 0, 0);\r\n // constant phi curves at phi0 and phi1\r\n for (const cosPhi of [cosPhi0, cosPhi1]) {\r\n trigForm.set(0, cosPhi * radius, 0);\r\n trigForm.rangeInSweep(thetaSweep, axisRange);\r\n range.extendXOnly(axisRange.low); range.extendXOnly(axisRange.high);\r\n trigForm.set(0, 0, cosPhi * radius);\r\n trigForm.rangeInSweep(thetaSweep, axisRange);\r\n range.extendYOnly(axisRange.low); range.extendYOnly(axisRange.high);\r\n }\r\n range.extendZOnly(sinPhi0 * radius);\r\n range.extendZOnly(sinPhi1 * radius);\r\n\r\n // constant theta curves as theta0 and theta1:\r\n for (const thetaRadians of [theta0Radians, theta1Radians]) {\r\n const cosThetaR = Math.cos(thetaRadians) * radius;\r\n const sinThetaR = Math.sin(thetaRadians) * radius;\r\n trigForm.set(0, cosThetaR, 0);\r\n trigForm.rangeInSweep(phiSweep, axisRange);\r\n range.extendXOnly(axisRange.low); range.extendXOnly(axisRange.high);\r\n\r\n trigForm.set(0, sinThetaR, 0);\r\n trigForm.rangeInSweep(phiSweep, axisRange);\r\n range.extendYOnly(axisRange.low); range.extendYOnly(axisRange.high);\r\n }\r\n range.cloneTranslated(center, range);\r\n }\r\n return range;\r\n }\r\n /** Compute intersections with a ray.\r\n * * Return the number of intersections\r\n * * Fill any combinations of arrays of\r\n * * rayFractions = fractions along the ray\r\n * * xyz = xyz intersection coordinates points in space\r\n * * thetaPhiRadians = sphere longitude and latitude in radians.\r\n * * For each optional array, caller must of course initialize an array (usually empty)\r\n */\r\n public static intersectSphereRay(center: Point3d, radius: number, ray: Ray3d, rayFractions: number[] | undefined, xyz: Point3d[] | undefined, thetaPhiRadians: LongitudeLatitudeNumber[] | undefined): number {\r\n const vx = ray.origin.x - center.x;\r\n const vy = ray.origin.y - center.y;\r\n const vz = ray.origin.z - center.z;\r\n const ux = ray.direction.x;\r\n const uy = ray.direction.y;\r\n const uz = ray.direction.z;\r\n const a0 = Geometry.hypotenuseSquaredXYZ(vx, vy, vz) - radius * radius;\r\n const a1 = 2.0 * Geometry.dotProductXYZXYZ(ux, uy, uz, vx, vy, vz);\r\n const a2 = Geometry.hypotenuseSquaredXYZ(ux, uy, uz);\r\n const parameters = Degree2PowerPolynomial.solveQuadratic(a2, a1, a0);\r\n if (rayFractions !== undefined)\r\n rayFractions.length = 0;\r\n if (xyz !== undefined)\r\n xyz.length = 0;\r\n if (thetaPhiRadians !== undefined)\r\n thetaPhiRadians.length = 0;\r\n\r\n if (parameters === undefined) {\r\n return 0;\r\n }\r\n const sphere = new SphereImplicit(radius);\r\n if (rayFractions !== undefined)\r\n for (const f of parameters) rayFractions.push(f);\r\n if (xyz !== undefined || thetaPhiRadians !== undefined) {\r\n for (const f of parameters) {\r\n const point = ray.fractionToPoint(f);\r\n if (xyz !== undefined)\r\n xyz.push(point);\r\n if (thetaPhiRadians !== undefined) {\r\n const data = sphere.xyzToThetaPhiR(point);\r\n thetaPhiRadians.push(LongitudeLatitudeNumber.createRadians(data.thetaRadians, data.phiRadians));\r\n }\r\n }\r\n }\r\n return parameters.length;\r\n }\r\n\r\n // public intersectRay(ray: Ray3d, maxHit: number): {rayFractions: number, points: Point3d} {\r\n // const q = new Degree2PowerPolynomial();\r\n // // Ray is (origin.x + s * direction.x, etc)\r\n // // squared distance from origin is (origin.x + s*direction.x)^2 + etc\r\n // // sphere radius in local system is 1.\r\n // q.addSquaredLinearTerm(ray.origin.x, ray.direction.x);\r\n // q.addSquaredLinearTerm(ray.origin.y, ray.direction.y);\r\n // q.addSquaredLinearTerm(ray.origin.z, ray.direction.z);\r\n // q.addConstant(-this.radius * this.radius);\r\n // let ss = [];\r\n // let n = q.realRoots(ss);\r\n // if (n > maxHit)\r\n // n = maxHit;\r\n // let rayFractions;\r\n // let points;\r\n // for (let i = 0; i < n; i++) {\r\n // rayFractions[i] = ss[i];\r\n // points[i] = Point3d. // What is the equivalent of FromSumOf in TS?\r\n // }\r\n /** Compute the point on a sphere at angular coordinates.\r\n * @param thetaRadians latitude angle\r\n * @param phiRadians longitude angle\r\n */\r\n public evaluateThetaPhi(thetaRadians: number, phiRadians: number, result?: Point3d): Point3d {\r\n const rc = this.radius * Math.cos(thetaRadians);\r\n const rs = this.radius * Math.sin(thetaRadians);\r\n const cosPhi = Math.cos(phiRadians);\r\n const sinPhi = Math.sin(phiRadians);\r\n return Point3d.create(rc * cosPhi, rs * cosPhi, this.radius * sinPhi, result);\r\n }\r\n /**\r\n * * convert radians to xyz on unit sphere\r\n * * Note that there is no radius used -- implicitly radius is 1\r\n * * Evaluation is always to a preallocated xyz.\r\n */\r\n public static radiansToUnitSphereXYZ(thetaRadians: number, phiRadians: number, xyz: XYZ) {\r\n const cosTheta = Math.cos(thetaRadians);\r\n const sinTheta = Math.sin(thetaRadians);\r\n const cosPhi = Math.cos(phiRadians);\r\n const sinPhi = Math.sin(phiRadians);\r\n xyz.x = cosTheta * cosPhi;\r\n xyz.y = sinTheta * cosPhi;\r\n xyz.z = sinPhi;\r\n }\r\n /** Compute the derivatives with respect to spherical angles.\r\n * @param thetaRadians latitude angle\r\n * @param phiRadians longitude angle\r\n */\r\n public evaluateDerivativesThetaPhi(thetaRadians: number, phiRadians: number, dxdTheta: Vector3d, dxdPhi: Vector3d) {\r\n const rc = this.radius * Math.cos(thetaRadians);\r\n const rs = this.radius * Math.sin(thetaRadians);\r\n const cosPhi = Math.cos(phiRadians);\r\n const sinPhi = Math.sin(phiRadians);\r\n Vector3d.create(-rs * cosPhi, rc * cosPhi, 0.0, dxdTheta);\r\n Vector3d.create(-rc * sinPhi, -rs * sinPhi, this.radius * cosPhi, dxdPhi);\r\n }\r\n /*\r\n public meridianCircle(theta: number): Arc3d {\r\n const rc = this.radius * Math.cos(theta);\r\n const rs = this.radius * Math.sin(theta);\r\n return Arc3d.create(\r\n Point3d.create(0.0, 0.0, 0.0),\r\n Vector3d.create(rc, rs, 0),\r\n Vector3d.create(0, 0, this.radius),\r\n AngleSweep.create360()) as Arc3d;\r\n }\r\n\r\n public parallelCircle(phi: number): Arc3d {\r\n const cr = this.radius * Math.cos(phi);\r\n const sr = this.radius * Math.sin(phi);\r\n return Arc3d.create(\r\n Point3d.create(0, 0, sr),\r\n Vector3d.create(cr, 0, 0),\r\n Vector3d.create(0, cr, 0),\r\n AngleSweep.create360()) as Arc3d;\r\n }\r\n */\r\n}\r\n/** AnalyticRoots has static methods for solving quadratic, cubic, and quartic equations.\r\n * @internal\r\n *\r\n */\r\nexport class AnalyticRoots {\r\n private static readonly _EQN_EPS = 1.0e-9;\r\n private static readonly _safeDivideFactor = 1.0e-14;\r\n /** Absolute zero test with a tolerance that has worked well for the analytic root use case . . . */\r\n private static isZero(x: number): boolean {\r\n return Math.abs(x) < this._EQN_EPS;\r\n }\r\n /** Without actually doing a division, test if (x/y) is small.\r\n * @param x numerator\r\n * @param y denominator\r\n * @param absTol absolute tolerance\r\n * @param relTol relative tolerance\r\n */\r\n private static isSmallRatio(x: number, y: number, absTol: number = 1.0e-9, relTol: number = 8.0e-16) {\r\n return Math.abs(x) <= absTol || Math.abs(x) < relTol * Math.abs(y);\r\n }\r\n /** Return the (real, signed) principal cube root of x */\r\n public static cbrt(x: number): number {\r\n return ((x) > 0.0\r\n ? Math.pow((x), 1.0 / 3.0)\r\n : ((x) < 0.0\r\n ? -Math.pow(-(x), 1.0 / 3.0)\r\n : 0.0));\r\n }\r\n /**\r\n * Try to divide `numerator/denominator` and place the result (or defaultValue) in `values[offset]`\r\n * @param values array of values. `values[offset]` will be replaced.\r\n * @param numerator numerator for division.\r\n * @param denominator denominator for division.\r\n * @param defaultValue value to save if denominator is too small to divide.\r\n * @param offset index of value to replace.\r\n */\r\n private static safeDivide(values: Float64Array, numerator: number, denominator: number, defaultValue: number = 0.0, offset: number): boolean {\r\n if (Math.abs(denominator) > (this._safeDivideFactor * Math.abs(numerator))) {\r\n values[offset] = numerator / denominator;\r\n return true;\r\n }\r\n values[offset] = defaultValue;\r\n return false;\r\n }\r\n // Used in NewtonMethod for testing if a root has been adjusted past its bounding region\r\n private static checkRootProximity(roots: GrowableFloat64Array, i: number): boolean {\r\n if (i === 0) { // Case 1: Beginning Root (check root following it)\r\n return roots.atUncheckedIndex(i) < roots.atUncheckedIndex(i + 1);\r\n } else if (i > 0 && i + 1 < roots.length) { // Case 2: Middle Root (check roots before and after)\r\n return (roots.atUncheckedIndex(i) > roots.atUncheckedIndex(i - 1)) && (roots.atUncheckedIndex(i) < roots.atUncheckedIndex(i + 1));\r\n } else { // Case 3: End root (check preceding root)\r\n return (roots.atUncheckedIndex(i) > roots.atUncheckedIndex(i - 1));\r\n }\r\n }\r\n private static newtonMethodAdjustment(coffs: Float64Array | number[], root: number, degree: number): number | undefined {\r\n let p = coffs[degree];\r\n let q = 0.0;\r\n for (let i = degree - 1; i >= 0; i--) {\r\n q = p + root * q;\r\n p = coffs[i] + root * p;\r\n }\r\n if (Math.abs(q) >= 1.0e-14 * (1.0 + Math.abs(root))) {\r\n return p / q;\r\n }\r\n return undefined;\r\n }\r\n private static improveRoots(coffs: Float64Array | number[], degree: number, roots: GrowableFloat64Array, restrictOrderChanges: boolean) {\r\n const relTol = 1.0e-10;\r\n\r\n // Loop through each root\r\n for (let i = 0; i < roots.length; i++) {\r\n let dx = this.newtonMethodAdjustment(coffs, roots.atUncheckedIndex(i), degree);\r\n if (dx === undefined || dx === 0.0) continue; // skip if newton step had divide by zero.\r\n const originalValue = roots.atUncheckedIndex(i);\r\n let counter = 0;\r\n let convergenceCounter = 0;\r\n\r\n // Loop through applying changes to found root until dx is diminished or counter is hit\r\n while (dx !== undefined && dx !== 0.0 && (counter < 12)) {\r\n // consider it converged if two successive iterations satisfy the (not too demanding) tolerance.\r\n if (Math.abs(dx) < relTol * (1.0 + Math.abs(roots.atUncheckedIndex(i)))) {\r\n if (++convergenceCounter > 1)\r\n break;\r\n } else {\r\n convergenceCounter = 0;\r\n }\r\n\r\n const rootDX = roots.atUncheckedIndex(i) - dx;\r\n roots.reassign(i, rootDX);\r\n\r\n // If root is thrown past one of its neighboring roots, unstable condition is assumed.. revert\r\n // to originally found root\r\n if (restrictOrderChanges && !this.checkRootProximity(roots, i)) {\r\n roots.reassign(i, originalValue);\r\n break;\r\n }\r\n\r\n dx = this.newtonMethodAdjustment(coffs, roots.atUncheckedIndex(i), degree);\r\n counter++;\r\n }\r\n }\r\n }\r\n /**\r\n * Append (if defined) value to results.\r\n * @param value optional value to append\r\n * @param results growing array\r\n */\r\n private static appendSolution(value: number | undefined, results: GrowableFloat64Array) {\r\n if (value !== undefined) {\r\n results.push(value);\r\n }\r\n }\r\n /**\r\n * Append 2 solutions -- note that both are required args, no option of omitting as in single solution case\r\n * @param value1\r\n * @param value2\r\n * @param results\r\n */\r\n private static append2Solutions(valueA: number, valueB: number, results: GrowableFloat64Array) {\r\n results.push(valueA);\r\n results.push(valueB);\r\n }\r\n\r\n /**\r\n * If `co/c1` is a safe division, append it to the values array.\r\n * @param c0 numerator\r\n * @param c1 denominator\r\n * @param values array to expand\r\n */\r\n public static appendLinearRoot(c0: number, c1: number, values: GrowableFloat64Array) {\r\n AnalyticRoots.appendSolution(Geometry.conditionalDivideFraction(-c0, c1), values);\r\n }\r\n /**\r\n * * Compute the mean of all the entries in `data`\r\n * * Return the data value that is farthest away\r\n */\r\n public static mostDistantFromMean(data: GrowableFloat64Array | undefined): number {\r\n if (!data || data.length === 0) return 0;\r\n let a = 0.0; // to become the sum and finally the average.\r\n for (let i = 0; i < data.length; i++) a += data.atUncheckedIndex(i);\r\n a /= data.length;\r\n let dMax = 0.0;\r\n let result = data.atUncheckedIndex(0);\r\n for (let i = 0; i < data.length; i++) {\r\n const d = Math.abs(data.atUncheckedIndex(i) - a);\r\n if (d > dMax) {\r\n dMax = d;\r\n result = data.atUncheckedIndex(i);\r\n }\r\n }\r\n return result;\r\n }\r\n /**\r\n * Append 0, 1, or 2 solutions of a quadratic to the values array.\r\n * @param c array of coefficients for quadratic `c[0] + c[1] * x + c[2] * x*x`\r\n * @param values array to be expanded.\r\n */\r\n public static appendQuadraticRoots(c: Float64Array | number[], values: GrowableFloat64Array) {\r\n // Normal form: x^2 + 2px + q = 0\r\n\r\n const divFactor = Geometry.conditionalDivideFraction(1.0, c[2]);\r\n if (!divFactor) {\r\n this.appendLinearRoot(c[0], c[1], values);\r\n return;\r\n }\r\n\r\n const p = 0.5 * c[1] * divFactor;\r\n const q = c[0] * divFactor;\r\n\r\n const D = p * p - q;\r\n\r\n if (this.isZero(D)) {\r\n this.appendSolution(-p, values);\r\n return;\r\n } else if (D < 0) {\r\n return;\r\n } else if (D > 0) {\r\n const sqrt_D = Math.sqrt(D);\r\n this.append2Solutions(sqrt_D - p, - sqrt_D - p, values);\r\n return;\r\n }\r\n return;\r\n }\r\n /** Add `a` to the constant term. */\r\n private static addConstant(value: number, data: GrowableFloat64Array) {\r\n for (let i = 0; i < data.length; i++) data.reassign(i, data.atUncheckedIndex(i) + value);\r\n }\r\n\r\n private static signedCubeRoot(y: number): number {\r\n if (y >= 0.0)\r\n return Math.pow(y, 1.0 / 3.0);\r\n return -Math.pow(-y, 1.0 / 3.0);\r\n }\r\n /**\r\n * RWD Nickalls Cubic solution\r\n * The Mathematical Gazette (1993) (vol 77) pp 354-359\r\n * * ASSUME a is nonzero.\r\n */\r\n // Solve full cubic ASSUMING a3 is nonzero.\r\n private static appendFullCubicSolutions(a: number, b: number, c: number, d: number, result: GrowableFloat64Array) {\r\n const q = b * b - 3.0 * a * c;\r\n const aa = a * a;\r\n const delta2 = q / (9.0 * aa);\r\n const xN = - b / (3.0 * a);\r\n const yN = d + xN * (c + xN * (b + xN * a));\r\n const yN2 = yN * yN;\r\n const h2 = 4.0 * a * a * delta2 * delta2 * delta2;\r\n const discriminant = yN2 - h2;\r\n if (discriminant > 0) {\r\n // 1 real root\r\n const r = Math.sqrt(discriminant);\r\n const f = 0.5 / a;\r\n result.push(xN + this.signedCubeRoot(f * (-yN + r)) + this.signedCubeRoot(f * (-yN - r)));\r\n } else if (discriminant < 0) {\r\n // 3 real roots\r\n let h = Math.sqrt(h2);\r\n // I don't see comment in Nickalls about sign of h -- but this sign change is needed ...\r\n if (a < 0)\r\n h = -h;\r\n // sign of h?\r\n const thetaRadians = Math.acos(-yN / h) / 3.0;\r\n const g = 2.0 * Math.sqrt(delta2);\r\n const shift = 2.0 * Math.PI / 3.0;\r\n result.push(xN + g * Math.cos(thetaRadians));\r\n result.push(xN + g * Math.cos(thetaRadians + shift));\r\n result.push(xN + g * Math.cos(thetaRadians - shift));\r\n } else {\r\n // NOTE: The double-root case is not toleranced.\r\n // double root + single root\r\n const delta = this.signedCubeRoot(0.5 * yN / a);\r\n const minMaxRoot = xN + delta;\r\n result.push(xN - 2 * delta);\r\n result.push(minMaxRoot);\r\n result.push(minMaxRoot);\r\n }\r\n }\r\n\r\n /* return roots of a cubic c0 + c1 *x + c2 * x^2 + c2 * x3.\r\n * In the usual case where c0 is non-zero, there are either 1 or 3 roots.\r\n * But if c0 is zero the (0, 1, or 2) roots of the lower order equation\r\n */\r\n /*\r\n private static _appendCubicRootsUnsorted(c: Float64Array | number[], results: GrowableFloat64Array) {\r\n let sq_A: number;\r\n let p: number;\r\n let q: number;\r\n\r\n // normal form: x^3 + Ax^2 + Bx + C = 0\r\n\r\n const scaleFactor = Geometry.conditionalDivideFraction(1.0, c[3]);\r\n if (!scaleFactor) {\r\n this.appendQuadraticRoots(c, results);\r\n return;\r\n }\r\n // It is a real cubic. There MUST be at least one real solution . . .\r\n const A: number = c[2] * scaleFactor;\r\n const B: number = c[1] * scaleFactor;\r\n const C: number = c[0] * scaleFactor;\r\n\r\n // substitute x = y - A/3 to eliminate quadric term:\r\n // f = y^3 +3py + 2q = 0\r\n // f' = 3y^2 + p\r\n // local min/max at Y = +-sqrt (-p)\r\n // f(+Y) = -p sqrt(-p) + 3p sqrt (-p) + 2q = 2 p sqrt (-p) + 2q\r\n sq_A = A * A;\r\n p = (3.0 * B - sq_A) / 9.0;\r\n q = 1.0 / 2 * (2.0 / 27 * A * sq_A - 1.0 / 3 * A * B + C);\r\n\r\n // Use Cardano formula\r\n const cb_p: number = p * p * p;\r\n const D: number = q * q + cb_p;\r\n const origin = A / (-3.0);\r\n if (D >= 0.0 && this.isZero(D)) {\r\n if (this.isZero(q)) {\r\n // One triple solution\r\n results.push(origin);\r\n results.push(origin);\r\n results.push(origin);\r\n return;\r\n } else {\r\n // One single and one double solution\r\n const u = this.cbrt(-q);\r\n if (u < 0) {\r\n results.push(origin + 2 * u);\r\n results.push(origin - u);\r\n results.push(origin - u);\r\n return;\r\n } else {\r\n results.push(origin - u);\r\n results.push(origin - u);\r\n results.push(origin + 2 * u);\r\n return;\r\n }\r\n }\r\n } else if (D <= 0) { // three real solutions\r\n const phi = 1.0 / 3 * Math.acos(-q / Math.sqrt(-cb_p));\r\n const t = 2 * Math.sqrt(-p);\r\n results.push(origin + t * Math.cos(phi));\r\n results.push(origin - t * Math.cos(phi + Math.PI / 3));\r\n results.push(origin - t * Math.cos(phi - Math.PI / 3));\r\n this.improveRoots(c, 3, results, false);\r\n\r\n return;\r\n } else { // One real solution\r\n const sqrt_D = Math.sqrt(D);\r\n const u = this.cbrt(sqrt_D - q);\r\n const v = -(this.cbrt(sqrt_D + q));\r\n results.push(origin + u + v);\r\n this.improveRoots(c, 3, results, false);\r\n return;\r\n }\r\n }\r\n */\r\n /** Compute roots of cubic 'c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 */\r\n public static appendCubicRoots(c: Float64Array | number[], results: GrowableFloat64Array) {\r\n if (Geometry.conditionalDivideCoordinate(1.0, c[3]) !== undefined) {\r\n this.appendFullCubicSolutions(c[3], c[2], c[1], c[0], results);\r\n // EDL April 5, 2020 replace classic GraphicsGems solver by RWDNickalls.\r\n // Don't know if improveRoots is needed.\r\n // Breaks in AnalyticRoots.test.ts checkQuartic suggest it indeed converts many e-16 errors to zero.\r\n // e-13 cases are unaffected\r\n this.improveRoots(c, 3, results, false);\r\n } else {\r\n this.appendQuadraticRoots(c, results);\r\n }\r\n // this.appendCubicRootsUnsorted(c, results);\r\n results.sort();\r\n }\r\n /** Compute roots of quartic 'c[0] + c[1] * x + c[2] * x^2 + c[3] * x^3 + c[4] * x^4 */\r\n public static appendQuarticRoots(c: Float64Array | number[], results: GrowableFloat64Array) {\r\n const coffs = new Float64Array(4); // at various times .. coefficients of quadratic an cubic intermediates.\r\n let u: number;\r\n let v: number;\r\n\r\n // normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0\r\n\r\n const coffScale = new Float64Array(1);\r\n if (!this.safeDivide(coffScale, 1.0, c[4], 0.0, 0)) {\r\n this.appendCubicRoots(c, results);\r\n return;\r\n }\r\n const A: number = c[3] * coffScale[0];\r\n const B: number = c[2] * coffScale[0];\r\n const C: number = c[1] * coffScale[0];\r\n const D: number = c[0] * coffScale[0];\r\n const origin = -0.25 * A;\r\n /* substitute x = y - A/4 to eliminate cubic term:\r\n x^4 + px^2 + qx + r = 0 */\r\n const sq_A: number = A * A;\r\n const p: number = -3.0 / 8 * sq_A + B;\r\n const q: number = 0.125 * sq_A * A - 0.5 * A * B + C;\r\n const r: number = -3.0 / 256 * sq_A * sq_A + 1.0 / 16 * sq_A * B - 1.0 / 4 * A * C + D;\r\n\r\n const tempStack = new GrowableFloat64Array();\r\n\r\n if (this.isZero(r)) {\r\n\r\n // no absolute term: y(y^3 + py + q) = 0\r\n coffs[0] = q;\r\n coffs[1] = p;\r\n coffs[2] = 0;\r\n coffs[3] = 1;\r\n this.appendCubicRoots(coffs, results);\r\n results.push(0); // APPLY ORIGIN ....\r\n this.addConstant(origin, results);\r\n return;\r\n } else {\r\n\r\n // Solve the resolvent cubic\r\n coffs[0] = 1.0 / 2 * r * p - 1.0 / 8 * q * q;\r\n coffs[1] = - r;\r\n coffs[2] = - 1.0 / 2 * p;\r\n coffs[3] = 1;\r\n\r\n this.appendCubicRoots(coffs, tempStack);\r\n const z = this.mostDistantFromMean(tempStack);\r\n\r\n // ... to build two quadric equations\r\n u = z * z - r;\r\n v = 2 * z - p;\r\n\r\n if (this.isSmallRatio(u, r)) {\r\n u = 0;\r\n } else if (u > 0) {\r\n u = Math.sqrt(u);\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.isSmallRatio(v, p)) {\r\n v = 0;\r\n } else if (v > 0) {\r\n v = Math.sqrt(v);\r\n } else {\r\n for (let i = 0; i < tempStack.length; i++) {\r\n results.push(tempStack.atUncheckedIndex(i));\r\n }\r\n return;\r\n }\r\n\r\n coffs[0] = z - u;\r\n coffs[1] = ((q < 0) ? (-v) : (v));\r\n coffs[2] = 1;\r\n\r\n this.appendQuadraticRoots(coffs, results);\r\n\r\n coffs[0] = z + u;\r\n coffs[1] = ((q < 0) ? (v) : (-v));\r\n coffs[2] = 1;\r\n\r\n this.appendQuadraticRoots(coffs, results);\r\n }\r\n\r\n // substitute\r\n this.addConstant(origin, results);\r\n\r\n results.sort();\r\n this.improveRoots(c, 4, results, true);\r\n\r\n return;\r\n }\r\n\r\n private static appendCosSinRadians(c: number, s: number, cosValues: OptionalGrowableFloat64Array, sinValues: OptionalGrowableFloat64Array,\r\n radiansValues: OptionalGrowableFloat64Array) {\r\n if (cosValues) cosValues.push(c);\r\n if (sinValues) sinValues.push(s);\r\n if (radiansValues) radiansValues.push(Math.atan2(s, c));\r\n }\r\n\r\n /**\r\n * * Solve the simultaneous equations in variables`c` and`s`:\r\n * * A line: `alpha + beta*c + gamma*s = 0`\r\n * * The unit circle 'c*c + s*s = 1`\r\n * * Solution values are returned as 0, 1, or 2(c, s) pairs\r\n * * Return value indicates one of these solution states:\r\n * * -2 -- all coefficients identically 0. The entire c, s plane-- and therefore the entire unit circle-- is a solution.\r\n * * -1 -- beta, gamma are zero, alpha is not.There is no line defined.There are no solutions.\r\n * * 0 -- the line is well defined, but passes completely outside the unit circle.\r\n * * In this case, (c1, s1) is the circle point closest to the line and(c2, s2) is the line point closest to the circle.\r\n * * 1 -- the line is tangent to the unit circle.\r\n * * Tangency is determined by tolerances, which calls a \"close approach\" point a tangency.\r\n * * (c1, s1) is the closest circle point\r\n * * (c2, s2) is the line point.\r\n * * 2 -- two simple intersections.\r\n * @param alpha constant coefficient on line\r\n * @param beta x cosine coefficient on line\r\n * @param gamma y sine coefficient on line\r\n * @param relTol relative tolerance for tangencies\r\n * @param cosValues (caller allocated) array to receive solution `c` values\r\n * @param sinValues (caller allocated) array to receive solution `s` values\r\n * @param radiansValues (caller allocated) array to receive solution radians values.\r\n */\r\n public static appendImplicitLineUnitCircleIntersections(alpha: number, beta: number, gamma: number,\r\n cosValues: OptionalGrowableFloat64Array, sinValues: OptionalGrowableFloat64Array, radiansValues: OptionalGrowableFloat64Array,\r\n relTol: number = 1.0e-14): number {\r\n\r\n let twoTol: number;\r\n const delta2 = beta * beta + gamma * gamma;\r\n const alpha2 = alpha * alpha;\r\n let solutionType = 0;\r\n\r\n if (relTol < 0.0) {\r\n twoTol = 0.0;\r\n } else {\r\n twoTol = 2.0 * relTol;\r\n }\r\n\r\n if (delta2 <= 0.0) {\r\n solutionType = (alpha === 0) ? -2 : -1;\r\n } else {\r\n const lambda = - alpha / delta2;\r\n const a2 = alpha2 / delta2;\r\n const D2 = 1.0 - a2;\r\n if (D2 < -twoTol) {\r\n const delta = Math.sqrt(delta2);\r\n const iota = (alpha < 0) ? (1.0 / delta) : (-1.0 / delta);\r\n this.appendCosSinRadians(lambda * beta, lambda * gamma, cosValues, sinValues, radiansValues);\r\n this.appendCosSinRadians(beta * iota, gamma * iota, cosValues, sinValues, radiansValues);\r\n solutionType = 0;\r\n } else if (D2 < twoTol) {\r\n const delta = Math.sqrt(delta2);\r\n const iota = (alpha < 0) ? (1.0 / delta) : (- 1.0 / delta);\r\n this.appendCosSinRadians(lambda * beta, lambda * gamma, cosValues, sinValues, radiansValues);\r\n this.appendCosSinRadians(beta * iota, gamma * iota, cosValues, sinValues, radiansValues);\r\n solutionType = 1;\r\n } else {\r\n const mu = Math.sqrt(D2 / delta2);\r\n /* c0,s0 = closest approach of line to origin */\r\n const c0 = lambda * beta;\r\n const s0 = lambda * gamma;\r\n this.appendCosSinRadians(c0 - mu * gamma, s0 + mu * beta, cosValues, sinValues, radiansValues);\r\n this.appendCosSinRadians(c0 + mu * gamma, s0 - mu * beta, cosValues, sinValues, radiansValues);\r\n solutionType = 2;\r\n }\r\n }\r\n return solutionType;\r\n }\r\n}\r\n/**\r\n * manipulations of polynomials with where `coff[i]` multiplies x^i\r\n * @internal\r\n */\r\n\r\nexport class PowerPolynomial {\r\n\r\n /** Evaluate a standard basis polynomial at `x`, with `degree` possibly less than `coff.length` */\r\n public static degreeKnownEvaluate(coff: Float64Array, degree: number, x: number): number {\r\n if (degree < 0) {\r\n return 0.0;\r\n }\r\n let p = coff[degree];\r\n for (let i = degree - 1; i >= 0; i--)\r\n p = x * p + coff[i];\r\n return p;\r\n }\r\n /** Evaluate the standard basis polynomial of degree `coff.length` at `x` */\r\n public static evaluate(coff: Float64Array, x: number): number {\r\n const degree = coff.length - 1;\r\n return this.degreeKnownEvaluate(coff, degree, x);\r\n }\r\n /**\r\n * * Accumulate Q*scale into P.Both are treated as full degree.\r\n * * (Expect Address exceptions if P is smaller than Q)\r\n * * Returns degree of result as determined by comparing trailing coefficients to zero\r\n */\r\n public static accumulate(coffP: Float64Array, coffQ: Float64Array, scaleQ: number): number {\r\n let degreeP = coffP.length - 1;\r\n const degreeQ = coffQ.length - 1;\r\n\r\n for (let i = 0; i <= degreeQ; i++) {\r\n coffP[i] += scaleQ * coffQ[i];\r\n }\r\n\r\n while (degreeP >= 0 && coffP[degreeP] === 0.0) {\r\n degreeP--;\r\n }\r\n return degreeP;\r\n }\r\n /** Zero all coefficients */\r\n public static zero(coff: Float64Array) {\r\n for (let i = 0; i < coff.length; i++) {\r\n coff[i] = 0.0;\r\n }\r\n }\r\n}\r\n/**\r\n * manipulation of polynomials with powers of sine and cosine\r\n * @internal\r\n */\r\nexport class TrigPolynomial {\r\n // tolerance for small angle decision.\r\n private static readonly _smallAngle: number = 1.0e-11;\r\n\r\n /** Standard Basis coefficients for rational sine numerator. */\r\n public static readonly S = Float64Array.from([0.0, 2.0, -2.0]);\r\n /** Standard Basis coefficients for rational cosine numerator. */\r\n public static readonly C = Float64Array.from([1.0, -2.0]);\r\n /** Standard Basis coefficients for rational denominator. */\r\n public static readonly W = Float64Array.from([1.0, -2.0, 2.0]);\r\n /** Standard Basis coefficients for cosine*weight numerator */\r\n public static readonly CW = Float64Array.from([1.0, -4.0, 6.0, -4.0]);\r\n /** Standard Basis coefficients for sine*weight numerator */\r\n public static readonly SW = Float64Array.from([0.0, 2.0, -6.0, 8.0, -4.0]);\r\n /** Standard Basis coefficients for sine*cosine numerator */\r\n public static readonly SC = Float64Array.from([0.0, 2.0, -6.0, 4.0]);\r\n /** Standard Basis coefficients for sine^2 numerator */\r\n public static readonly SS = Float64Array.from([0.0, 0.0, 4.0, -8.0, 4.0]);\r\n /** Standard Basis coefficients for cosine^2 numerator */\r\n public static readonly CC = Float64Array.from([1.0, -4.0, 4.0]);\r\n /** Standard Basis coefficients for weight^2 */\r\n public static readonly WW = Float64Array.from([1.0, -4.0, 8.0, -8.0, 4.0]);\r\n /** Standard Basis coefficients for (Math.Cos^2 - sine^2) numerator */\r\n public static readonly CCminusSS = Float64Array.from([1.0, -4.0, 0.0, 8.0, -4.0]);\r\n\r\n /**\r\n * Solve a polynomial created from trigonometric condition using\r\n * Trig.S, Trig.C, Trig.W. Solution logic includes inferring angular roots\r\n * corresponding zero leading coefficients (roots at infinity)\r\n * @param coff Coefficients\r\n * @param nominalDegree degree of the polynomial under most complex\r\n * root case. If there are any zero coefficients up to this degree, a single root\r\n * \"at infinity\" is recorded as its corresponding angular parameter at negative pi/2\r\n * @param referenceCoefficient A number which represents the size of coefficients\r\n * at various stages of computation. A small fraction of this will be used as a zero\r\n * tolerance\r\n * @param angles Roots are placed here. Assumed preallocated with adequate size.\r\n * @param numRoots Number of roots . Zero roots is possible. (Passed as array of size\r\n * one to pass-by-reference)\r\n * Returns false if equation is all zeros. This usually means any angle is a solution.\r\n */\r\n public static solveAngles(coff: Float64Array, nominalDegree: number, referenceCoefficient: number,\r\n radians: number[]): boolean {\r\n let maxCoff = Math.abs(referenceCoefficient);\r\n let a;\r\n radians.length = 0;\r\n const relTol = this._smallAngle;\r\n\r\n for (let i = 0; i <= nominalDegree; i++) {\r\n a = Math.abs(coff[i]);\r\n if (a > maxCoff) {\r\n maxCoff = a;\r\n }\r\n }\r\n const coffTol = relTol * maxCoff;\r\n let degree = nominalDegree;\r\n while (degree > 0 && (Math.abs(coff[degree]) <= coffTol)) {\r\n degree--;\r\n }\r\n // let status = false;\r\n const roots = new GrowableFloat64Array();\r\n if (degree === -1) {\r\n // Umm. Dunno. Nothing there.\r\n // status = false;\r\n } else {\r\n // status = true;\r\n if (degree === 0) {\r\n // p(t) is a nonzero constant\r\n // No roots, but not degenerate.\r\n // status = true;\r\n } else if (degree === 1) {\r\n // p(t) = coff[1] * t + coff[0]...\r\n roots.push(- coff[0] / coff[1]);\r\n } else if (degree === 2) {\r\n AnalyticRoots.appendQuadraticRoots(coff, roots);\r\n } else if (degree === 3) {\r\n AnalyticRoots.appendCubicRoots(coff, roots);\r\n } else if (degree === 4) {\r\n AnalyticRoots.appendQuarticRoots(coff, roots);\r\n } else {\r\n // TODO: WILL WORK WITH BEZIER SOLVER\r\n // status = false;\r\n }\r\n if (roots.length > 0) {\r\n // Each solution t represents an angle with\r\n // Math.Cos(theta)=C(t)/W(t), ,sin(theta)=S(t)/W(t)\r\n // Division by W has no effect on Atan2 calculations, so we just compute S(t),C(t)\r\n for (let i = 0; i < roots.length; i++) {\r\n const ss = PowerPolynomial.evaluate(this.S, roots.atUncheckedIndex(i));\r\n const cc = PowerPolynomial.evaluate(this.C, roots.atUncheckedIndex(i));\r\n radians.push(Math.atan2(ss, cc));\r\n }\r\n\r\n // Each leading zero at the front of the coefficients corresponds to a root at -PI/2.\r\n // Only make one entry....\r\n // for (int i = degree; i < nominalDegree; i++)\r\n if (degree < nominalDegree) {\r\n radians.push(-0.5 * Math.PI);\r\n }\r\n }\r\n }\r\n return radians.length > 0;\r\n }\r\n private static readonly _coefficientRelTol = 1.0e-12;\r\n /**\r\n * Compute intersections of unit circle `x ^ 2 + y 2 = 1` with general quadric\r\n * `axx * x ^ 2 + axy * x * y + ayy * y ^ 2 + ax * x + ay * y + a1 = 0`\r\n * Solutions are returned as angles.Sine and Cosine of the angles are the x, y results.\r\n * @param axx Coefficient of x ^ 2\r\n * @param axy Coefficient of xy\r\n * @param ayy Coefficient of y ^ 2\r\n * @param ax Coefficient of x\r\n * @param ay Coefficient of y\r\n * @param a1 Constant coefficient\r\n * @param angles solution angles\r\n * @param numAngle number of solution angles(Passed as array to make changes to reference)\r\n */\r\n public static solveUnitCircleImplicitQuadricIntersection(axx: number, axy: number, ayy: number,\r\n ax: number, ay: number, a1: number, radians: number[]): boolean {\r\n const Coffs = new Float64Array(5);\r\n PowerPolynomial.zero(Coffs);\r\n let degree;\r\n if (Geometry.hypotenuseXYZ(axx, axy, ayy) > TrigPolynomial._coefficientRelTol * Geometry.hypotenuseXYZ(ax, ay, a1)) {\r\n PowerPolynomial.accumulate(Coffs, this.CW, ax);\r\n PowerPolynomial.accumulate(Coffs, this.SW, ay);\r\n PowerPolynomial.accumulate(Coffs, this.WW, a1);\r\n PowerPolynomial.accumulate(Coffs, this.SS, ayy);\r\n PowerPolynomial.accumulate(Coffs, this.CC, axx);\r\n PowerPolynomial.accumulate(Coffs, this.SC, axy);\r\n degree = 4;\r\n } else {\r\n PowerPolynomial.accumulate(Coffs, this.C, ax);\r\n PowerPolynomial.accumulate(Coffs, this.S, ay);\r\n PowerPolynomial.accumulate(Coffs, this.W, a1);\r\n degree = 2;\r\n }\r\n\r\n let maxCoff = 0.0;\r\n maxCoff = Math.max(maxCoff,\r\n Math.abs(axx),\r\n Math.abs(ayy),\r\n Math.abs(axy),\r\n Math.abs(ax),\r\n Math.abs(ay),\r\n Math.abs(a1));\r\n\r\n const b = this.solveAngles(Coffs, degree, maxCoff, radians);\r\n /*\r\n for (const theta of angles) {\r\n const c = theta.cos();\r\n const s = theta.sin();\r\n console.log({\r\n angle: theta, co: c, si: s,\r\n f: axx * c * c + axy * c * s + ayy * s * s + ax * c + ay * s + a1});\r\n } */\r\n\r\n return b;\r\n }\r\n /**\r\n * Compute intersections of unit circle x^2 + y 2 = 1 with the ellipse\r\n * (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)\r\n * Solutions are returned as angles in the ellipse space.\r\n * @param cx center x\r\n * @param cy center y\r\n * @param ux 0 degree vector x\r\n * @param uy 0 degree vector y\r\n * @param vx 90 degree vector x\r\n * @param vy 90 degree vector y\r\n * @param ellipseRadians solution angles in ellipse parameter space\r\n * @param circleRadians solution angles in circle parameter space\r\n */\r\n public static solveUnitCircleEllipseIntersection(cx: number, cy: number, ux: number, uy: number,\r\n vx: number, vy: number, ellipseRadians: number[], circleRadians: number[]): boolean {\r\n circleRadians.length = 0;\r\n const acc = ux * ux + uy * uy;\r\n const acs = 2.0 * (ux * vx + uy * vy);\r\n const ass = vx * vx + vy * vy;\r\n const ac = 2.0 * (ux * cx + uy * cy);\r\n const asi = 2.0 * (vx * cx + vy * cy);\r\n const a = cx * cx + cy * cy - 1.0;\r\n const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, asi, a, ellipseRadians);\r\n for (const radians of ellipseRadians) {\r\n const cc = Math.cos(radians);\r\n const ss = Math.sin(radians);\r\n const x = cx + ux * cc + vx * ss;\r\n const y = cy + uy * cc + vy * ss;\r\n circleRadians.push(Math.atan2(y, x));\r\n }\r\n return status;\r\n }\r\n /**\r\n * Compute intersections of unit circle x^2 + y 2 = w^2 with the ellipse\r\n * (x,y) = (cx + ux Math.Cos + vx sin, cy + uy Math.Cos + vy sin)/ (cw + uw Math.Cos + vw * Math.Sin)\r\n * Solutions are returned as angles in the ellipse space.\r\n * @param cx center x\r\n * @param cy center y\r\n * @param cw center w\r\n * @param ux 0 degree vector x\r\n * @param uy 0 degree vector y\r\n * @param uw 0 degree vector w\r\n * @param vx 90 degree vector x\r\n * @param vy 90 degree vector y\r\n * @param vw 90 degree vector w\r\n * @param ellipseRadians solution angles in ellipse parameter space\r\n * @param circleRadians solution angles in circle parameter space\r\n */\r\n public static solveUnitCircleHomogeneousEllipseIntersection(cx: number, cy: number, cw: number,\r\n ux: number, uy: number, uw: number,\r\n vx: number, vy: number, vw: number,\r\n ellipseRadians: number[], circleRadians: number[]): boolean {\r\n circleRadians.length = 0;\r\n const acc = ux * ux + uy * uy - uw * uw;\r\n const acs = 2.0 * (ux * vx + uy * vy - uw * vw);\r\n const ass = vx * vx + vy * vy - vw * vw;\r\n const ac = 2.0 * (ux * cx + uy * cy - uw * cw);\r\n const asi = 2.0 * (vx * cx + vy * cy - vw * cw);\r\n const a = cx * cx + cy * cy - cw * cw;\r\n const status = this.solveUnitCircleImplicitQuadricIntersection(acc, acs, ass, ac, asi, a, ellipseRadians);\r\n for (const radians of ellipseRadians) {\r\n const cc = Math.cos(radians);\r\n const ss = Math.sin(radians);\r\n const x = cx + ux * cc + vx * ss;\r\n const y = cy + uy * cc + vy * ss;\r\n circleRadians.push(Math.atan2(y, x));\r\n }\r\n return status;\r\n }\r\n}\r\n/**\r\n * static methods for commonly appearing sets of equations in 2 or 3 variables\r\n * @public\r\n */\r\nexport class SmallSystem {\r\n /**\r\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection.\r\n * Return the fractional (not xy) coordinates in result.x, result.y\r\n * @param a0 start point of line a\r\n * @param a1 end point of line a\r\n * @param b0 start point of line b\r\n * @param b1 end point of line b\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static lineSegment2dXYTransverseIntersectionUnbounded(a0: Point2d, a1: Point2d, b0: Point2d, b1: Point2d,\r\n result: Vector2d): boolean {\r\n const ux = a1.x - a0.x;\r\n const uy = a1.y - a0.y;\r\n\r\n const vx = b1.x - b0.x;\r\n const vy = b1.y - b0.y;\r\n\r\n const cx = b0.x - a0.x;\r\n const cy = b0.y - a0.y;\r\n\r\n const uv = Geometry.crossProductXYXY(ux, uy, vx, vy);\r\n const cv = Geometry.crossProductXYXY(cx, cy, vx, vy);\r\n const cu = Geometry.crossProductXYXY(ux, uy, cx, cy);\r\n const s = Geometry.conditionalDivideFraction(cv, uv);\r\n const t = Geometry.conditionalDivideFraction(cu, uv);\r\n if (s !== undefined && t !== undefined) {\r\n result.set(s, -t);\r\n return true;\r\n }\r\n result.set(0, 0);\r\n return false;\r\n }\r\n /**\r\n * * (ax0,ay0) to (ax0+ux,ay0+uy) are line A.\r\n * * (bx0,by0) to (bx0+vx,by0+vy) are lineB.\r\n * * Return true if the lines have a simple intersection.\r\n * * Return the fractional (not xy) coordinates in result.x, result.y\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static lineSegmentXYUVTransverseIntersectionUnbounded(\r\n ax0: number, ay0: number, ux: number, uy: number,\r\n bx0: number, by0: number, vx: number, vy: number,\r\n result: Vector2d): boolean {\r\n\r\n const cx = bx0 - ax0;\r\n const cy = by0 - ay0;\r\n\r\n const uv = Geometry.crossProductXYXY(ux, uy, vx, vy);\r\n const cv = Geometry.crossProductXYXY(cx, cy, vx, vy);\r\n const cu = Geometry.crossProductXYXY(ux, uy, cx, cy);\r\n const s = Geometry.conditionalDivideFraction(cv, uv);\r\n const t = Geometry.conditionalDivideFraction(cu, uv);\r\n if (s !== undefined && t !== undefined) {\r\n result.set(s, -t);\r\n return true;\r\n }\r\n result.set(0, 0);\r\n return false;\r\n }\r\n\r\n /**\r\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts\r\n * Return the fractional (not xy) coordinates in result.x, result.y\r\n * @param a0 start point of line a\r\n * @param a1 end point of line a\r\n * @param b0 start point of line b\r\n * @param b1 end point of line b\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static lineSegment3dXYTransverseIntersectionUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d,\r\n result: Vector2d): boolean {\r\n const ux = a1.x - a0.x;\r\n const uy = a1.y - a0.y;\r\n\r\n const vx = b1.x - b0.x;\r\n const vy = b1.y - b0.y;\r\n\r\n const cx = b0.x - a0.x;\r\n const cy = b0.y - a0.y;\r\n\r\n const uv = Geometry.crossProductXYXY(ux, uy, vx, vy);\r\n const cv = Geometry.crossProductXYXY(cx, cy, vx, vy);\r\n const cu = Geometry.crossProductXYXY(ux, uy, cx, cy);\r\n const s = Geometry.conditionalDivideFraction(cv, uv);\r\n const t = Geometry.conditionalDivideFraction(cu, uv);\r\n if (s !== undefined && t !== undefined) {\r\n result.set(s, -t);\r\n return true;\r\n }\r\n result.set(0, 0);\r\n return false;\r\n }\r\n\r\n /**\r\n * Return true if lines (a0,a1) to (b0, b1) have a simple intersection using only xy parts of WEIGHTED 4D Points\r\n * Return the fractional (not xy) coordinates in result.x, result.y\r\n * @param hA0 homogeneous start point of line a\r\n * @param hA1 homogeneous end point of line a\r\n * @param hB0 homogeneous start point of line b\r\n * @param hB1 homogeneous end point of line b\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static lineSegment3dHXYTransverseIntersectionUnbounded(hA0: Point4d, hA1: Point4d, hB0: Point4d, hB1: Point4d, result?: Vector2d): Vector2d | undefined {\r\n // Considering only x,y,w parts....\r\n // Point Q along B is (in full homogeneous) `(1-lambda) B0 + lambda 1`\r\n // PointQ is colinear with A0,A1 when the determinant det (A0,A1,Q) is zero. (Each column takes xyw parts)\r\n const alpha0 = Geometry.tripleProduct(\r\n hA0.x, hA1.x, hB0.x,\r\n hA0.y, hA1.y, hB0.y,\r\n hA0.w, hA1.w, hB0.w);\r\n const alpha1 = Geometry.tripleProduct(\r\n hA0.x, hA1.x, hB1.x,\r\n hA0.y, hA1.y, hB1.y,\r\n hA0.w, hA1.w, hB1.w);\r\n const fractionB = Geometry.conditionalDivideFraction(-alpha0, alpha1 - alpha0);\r\n if (fractionB !== undefined) {\r\n const beta0 = Geometry.tripleProduct(\r\n hB0.x, hB1.x, hA0.x,\r\n hB0.y, hB1.y, hA0.y,\r\n hB0.w, hB1.w, hA0.w);\r\n const beta1 = Geometry.tripleProduct(\r\n hB0.x, hB1.x, hA1.x,\r\n hB0.y, hB1.y, hA1.y,\r\n hB0.w, hB1.w, hA1.w);\r\n const fractionA = Geometry.conditionalDivideFraction(-beta0, beta1 - beta0);\r\n if (fractionA !== undefined)\r\n return Vector2d.create(fractionA, fractionB, result);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Return the line fraction at which the (homogeneous) line is closest to a space point as viewed in xy only.\r\n * @param hA0 homogeneous start point of line a\r\n * @param hA1 homogeneous end point of line a\r\n * @param spacePoint homogeneous point in space\r\n */\r\n public static lineSegment3dHXYClosestPointUnbounded(hA0: Point4d, hA1: Point4d, spacePoint: Point4d): number | undefined {\r\n // Considering only x,y,w parts....\r\n // weighted difference of (A1 w0 - A0 w1) is (cartesian) tangent vector along the line as viewed.\r\n // The perpendicular (pure vector) W = (-y,x) flip is the direction of projection\r\n // Point Q along A is (in full homogeneous) `(1-lambda) A0 + lambda 1 A1`\r\n // PointQ is colinear with spacePoint and and W when the xyw homogeneous determinant | Q W spacePoint | is zero.\r\n const tx = hA1.x * hA0.w - hA0.x * hA1.w;\r\n const ty = hA1.y * hA0.w - hA0.y * hA1.w;\r\n const det0 = Geometry.tripleProduct(\r\n hA0.x, -ty, spacePoint.x,\r\n hA0.y, tx, spacePoint.y,\r\n hA0.w, 0, spacePoint.w);\r\n const det1 = Geometry.tripleProduct(\r\n hA1.x, -ty, spacePoint.x,\r\n hA1.y, tx, spacePoint.y,\r\n hA1.w, 0, spacePoint.w);\r\n return Geometry.conditionalDivideFraction(-det0, det1 - det0);\r\n }\r\n\r\n /**\r\n * Return the line fraction at which the line is closest to a space point as viewed in xy only.\r\n * @param pointA0 start point\r\n * @param pointA1 end point\r\n * @param spacePoint homogeneous point in space\r\n */\r\n public static lineSegment3dXYClosestPointUnbounded(pointA0: XAndY, pointA1: XAndY, spacePoint: XAndY): number | undefined {\r\n // Considering only x,y parts....\r\n const ux = pointA1.x - pointA0.x;\r\n const uy = pointA1.y - pointA0.y;\r\n const uu = ux * ux + uy * uy;\r\n const vx = spacePoint.x - pointA0.x;\r\n const vy = spacePoint.y - pointA0.y;\r\n const uv = ux * vx + uy * vy;\r\n return Geometry.conditionalDivideFraction(uv, uu);\r\n }\r\n\r\n /**\r\n * Return the line fraction at which the line is closest to a space point\r\n * @param pointA0 start point\r\n * @param pointA1 end point\r\n * @param spacePoint homogeneous point in space\r\n */\r\n public static lineSegment3dClosestPointUnbounded(pointA0: Point3d, pointA1: Point3d, spacePoint: Point3d): number | undefined {\r\n // Considering only x,y parts....\r\n const ux = pointA1.x - pointA0.x;\r\n const uy = pointA1.y - pointA0.y;\r\n const uz = pointA1.z - pointA0.z;\r\n const uu = ux * ux + uy * uy + uz * uz;\r\n const vx = spacePoint.x - pointA0.x;\r\n const vy = spacePoint.y - pointA0.y;\r\n const vz = spacePoint.z - pointA0.z;\r\n const uv = ux * vx + uy * vy + uz * vz;\r\n return Geometry.conditionalDivideFraction(uv, uu);\r\n }\r\n\r\n /**\r\n * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d\r\n * Return the fractional (not xy) coordinates in result.x, result.y\r\n * @param a0 start point of line a\r\n * @param a1 end point of line a\r\n * @param b0 start point of line b\r\n * @param b1 end point of line b\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static lineSegment3dClosestApproachUnbounded(a0: Point3d, a1: Point3d, b0: Point3d, b1: Point3d,\r\n result: Vector2d): boolean {\r\n return this.ray3dXYZUVWClosestApproachUnbounded(\r\n a0.x, a0.y, a0.z,\r\n a1.x - a0.x, a1.y - a0.y, a1.z - a0.z,\r\n b0.x, b0.y, b0.z,\r\n b1.x - b0.x, b1.y - b0.y, b1.z - b0.z,\r\n result);\r\n }\r\n /**\r\n * Return true if lines (a0,a1) to (b0, b1) have closest approach (go by each other) in 3d\r\n * Return the fractional (not xy) coordinates as x and y parts of a Point2d.\r\n * @param result point to receive fractional coordinates of intersection. result.x is fraction on line a. result.y is fraction on line b.\r\n */\r\n public static ray3dXYZUVWClosestApproachUnbounded(\r\n ax: number, ay: number, az: number, au: number, av: number, aw: number,\r\n bx: number, by: number, bz: number, bu: number, bv: number, bw: number,\r\n result: Vector2d): boolean {\r\n\r\n const cx = bx - ax;\r\n const cy = by - ay;\r\n const cz = bz - az;\r\n\r\n const uu = Geometry.hypotenuseSquaredXYZ(au, av, aw);\r\n const vv = Geometry.hypotenuseSquaredXYZ(bu, bv, bw);\r\n const uv = Geometry.dotProductXYZXYZ(au, av, aw, bu, bv, bw);\r\n const cu = Geometry.dotProductXYZXYZ(cx, cy, cz, au, av, aw);\r\n const cv = Geometry.dotProductXYZXYZ(cx, cy, cz, bu, bv, bw);\r\n return SmallSystem.linearSystem2d(uu, -uv, uv, -vv, cu, cv, result);\r\n }\r\n /**\r\n * Solve the pair of linear equations\r\n * * `ux * x + vx + y = cx`\r\n * * `uy * x + vy * y = cy`\r\n * @param ux xx coefficient\r\n * @param vx xy coefficient\r\n * @param uy yx coefficient\r\n * @param vy yy coefficient\r\n * @param cx x right hand side\r\n * @param cy y right hand side\r\n * @param result (x,y) solution. (MUST be preallocated by caller)\r\n */\r\n public static linearSystem2d(\r\n ux: number, vx: number, // first row of matrix\r\n uy: number, vy: number, // second row of matrix\r\n cx: number, cy: number, // right side\r\n result: Vector2d): boolean {\r\n const uv = Geometry.crossProductXYXY(ux, uy, vx, vy);\r\n const cv = Geometry.crossProductXYXY(cx, cy, vx, vy);\r\n const cu = Geometry.crossProductXYXY(ux, uy, cx, cy);\r\n const s = Geometry.conditionalDivideFraction(cv, uv);\r\n const t = Geometry.conditionalDivideFraction(cu, uv);\r\n if (s !== undefined && t !== undefined) {\r\n result.set(s, t);\r\n return true;\r\n }\r\n result.set(0, 0);\r\n return false;\r\n }\r\n /**\r\n * Solve a linear system\r\n * * x equation: `ux *u * vx * v + wx * w = cx`\r\n * * y equation: `uy *u * vy * v + wy * w = cy`\r\n * * z equation: `uz *u * vz * v + wz * w = cz`\r\n * @param axx row 0, column 0 coefficient\r\n * @param axy row 0, column 1 coefficient\r\n * @param axz row 0, column 1 coefficient\r\n * @param ayx row 1, column 0 coefficient\r\n * @param ayy row 1, column 1 coefficient\r\n * @param ayz row 1, column 2 coefficient\r\n * @param azx row 2, column 0 coefficient\r\n * @param azy row 2, column 1 coefficient\r\n * @param azz row 2, column 2 coefficient\r\n * @param cx right hand side row 0 coefficient\r\n * @param cy right hand side row 1 coefficient\r\n * @param cz right hand side row 2 coefficient\r\n * @param result optional result.\r\n */\r\n public static linearSystem3d(\r\n axx: number, axy: number, axz: number, // first row of matrix\r\n ayx: number, ayy: number, ayz: number, // second row of matrix\r\n azx: number, azy: number, azz: number, // second row of matrix\r\n cx: number, cy: number, cz: number, // right side\r\n result?: Vector3d): Vector3d | undefined {\r\n // determinants of various combinations of columns ...\r\n const detXYZ = Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, axz, ayz, azz);\r\n const detCYZ = Geometry.tripleProduct(cx, cy, cz, axy, ayy, azy, axz, ayz, azz);\r\n const detXCZ = Geometry.tripleProduct(axx, ayx, azx, cx, cy, cz, axz, ayz, azz);\r\n const detXYC = Geometry.tripleProduct(axx, ayx, azx, axy, ayy, azy, cx, cy, cz);\r\n const s = Geometry.conditionalDivideFraction(detCYZ, detXYZ);\r\n const t = Geometry.conditionalDivideFraction(detXCZ, detXYZ);\r\n const u = Geometry.conditionalDivideFraction(detXYC, detXYZ);\r\n if (s !== undefined && t !== undefined && u !== undefined) {\r\n return Vector3d.create(s, t, u, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * * in rowB, replace `rowB[j] += a * rowB[pivot] * rowA[j] / rowA[pivot]` for `j>pivot`\r\n * @param rowA row that does not change\r\n * @param pivotIndex index of pivot (divisor) in rowA.\r\n * @param rowB row where elimination occurs.\r\n */\r\n public static eliminateFromPivot(rowA: Float64Array, pivotIndex: number, rowB: Float64Array, a: number): boolean {\r\n const n = rowA.length;\r\n let q = Geometry.conditionalDivideFraction(rowB[pivotIndex], rowA[pivotIndex]);\r\n if (q === undefined) return false;\r\n q *= a;\r\n for (let j = pivotIndex + 1; j < n; j++)\r\n rowB[j] += q * rowA[j];\r\n return true;\r\n }\r\n /**\r\n * Solve a pair of bilinear equations\r\n * * First equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`\r\n * * Second equation: `a0 + b0 * u + c0 * v + d0 * u * v = 0`\r\n */\r\n public static solveBilinearPair(a0: number, b0: number, c0: number, d0: number,\r\n a1: number, b1: number, c1: number, d1: number): Point2d[] | undefined {\r\n // constant linear, and quadratic coefficients for c0 + c1 * u + c2 * u*u = 0\r\n const e0 = Geometry.crossProductXYXY(a0, a1, c0, c1);\r\n const e1 = Geometry.crossProductXYXY(b0, b1, c0, c1) + Geometry.crossProductXYXY(a0, a1, d0, d1);\r\n const e2 = Geometry.crossProductXYXY(b0, b1, d0, d1);\r\n const uRoots = Degree2PowerPolynomial.solveQuadratic(e2, e1, e0);\r\n if (uRoots === undefined)\r\n return undefined;\r\n const uv = [];\r\n for (const u of uRoots) {\r\n const v0 = Geometry.conditionalDivideFraction(-(a0 + b0 * u), c0 + d0 * u);\r\n const v1 = Geometry.conditionalDivideFraction(-(a1 + b1 * u), c1 + d1 * u);\r\n if (v0 !== undefined)\r\n uv.push(Point2d.create(u, v0));\r\n else if (v1 !== undefined)\r\n uv.push(Point2d.create(u, v1));\r\n }\r\n return uv;\r\n }\r\n}\r\n/**\r\n * * bilinear expression\r\n * * `f(u,v) = a + b * u * c * v + d * u * v`\r\n * @internal\r\n */\r\nexport class BilinearPolynomial {\r\n /** constant coefficient */\r\n public a: number;\r\n /** u coefficient */\r\n public b: number;\r\n /** v coefficient */\r\n public c: number;\r\n /** uv coefficient */\r\n public d: number;\r\n /**\r\n *\r\n * @param a constant coefficient\r\n * @param b `u` coefficient\r\n * @param c `v` coefficient\r\n * @param d `u*v` coefficient\r\n */\r\n public constructor(a: number, b: number, c: number, d: number) {\r\n this.a = a;\r\n this.b = b;\r\n this.c = c;\r\n this.d = d;\r\n }\r\n /**\r\n * Evaluate the bilinear expression at u,v\r\n */\r\n public evaluate(u: number, v: number): number {\r\n return this.a + this.b * u + v * (this.c + this.d * u);\r\n }\r\n /** Create a bilinear polynomial z=f(u,v) given z values at 00, 10, 01, 11.\r\n */\r\n public static createUnitSquareValues(f00: number, f10: number, f01: number, f11: number): BilinearPolynomial {\r\n return new BilinearPolynomial(f00, f10, f10, f11 - f10 - f01);\r\n }\r\n /**\r\n * Solve the simultaneous equations\r\n * * `p(u,v) = pValue`\r\n * * `q(u,v) = qValue`\r\n * @param p\r\n * @param pValue\r\n * @param q\r\n * @param qValue\r\n */\r\n public static solvePair(p: BilinearPolynomial, pValue: number, q: BilinearPolynomial, qValue: number): Point2d[] | undefined {\r\n return SmallSystem.solveBilinearPair(p.a - pValue, p.b, p.c, p.d,\r\n q.a - qValue, q.b, q.c, q.d);\r\n }\r\n}\r\n\r\n/**\r\n * * trigonometric expresses `f(theta) = a + cosineCoff * cos(theta) + sineCoff * sin(theta)`\r\n * @internal\r\n */\r\nexport class SineCosinePolynomial {\r\n /** constant coefficient */\r\n public a: number;\r\n /** cosine coefficient */\r\n public cosineCoff: number;\r\n /** sine coefficient */\r\n public sineCoff: number;\r\n /**\r\n *\r\n * @param a constant coefficient\r\n * @param cosineCoff `cos(theta)` coefficient\r\n * @param sinCoff `sin(theta)` coefficient\r\n */\r\n public constructor(a: number, cosCoff: number, sinCoff: number) {\r\n this.a = a;\r\n this.cosineCoff = cosCoff;\r\n this.sineCoff = sinCoff;\r\n }\r\n /** set all coefficients */\r\n public set(a: number, cosCoff: number, sinCoff: number) {\r\n this.a = a;\r\n this.cosineCoff = cosCoff;\r\n this.sineCoff = sinCoff;\r\n }\r\n /** Return the function value at given angle in radians */\r\n public evaluateRadians(theta: number): number {\r\n return this.a + this.cosineCoff * Math.cos(theta) + this.sineCoff * Math.sin(theta);\r\n }\r\n /** Return the range of function values over the entire angle range. */\r\n public range(result?: Range1d): Range1d {\r\n const q = Geometry.hypotenuseXY(this.cosineCoff, this.sineCoff);\r\n return Range1d.createXX(this.a - q, this.a + q, result);\r\n }\r\n /** Return the min and max values of the function over theta range from radians0 to radians1 inclusive. */\r\n public rangeInStartEndRadians(radians0: number, radians1: number, result?: Range1d): Range1d {\r\n if (Angle.isFullCircleRadians(radians1 - radians0))\r\n return this.range(result);\r\n result = Range1d.createXX(this.evaluateRadians(radians0), this.evaluateRadians(radians1), result);\r\n // angles of min and max ...\r\n // angles for min and max of the sine wave . ..\r\n const alphaA = Math.atan2(this.sineCoff, this.cosineCoff);\r\n const alphaB = alphaA + Math.PI;\r\n if (AngleSweep.isRadiansInStartEnd(alphaA, radians0, radians1))\r\n result.extendX(this.evaluateRadians(alphaA));\r\n if (AngleSweep.isRadiansInStartEnd(alphaB, radians0, radians1))\r\n result.extendX(this.evaluateRadians(alphaB));\r\n return result;\r\n }\r\n /** Return the min and max values of the function over theta range from radians0 to radians1 inclusive. */\r\n public rangeInSweep(sweep: AngleSweep, result?: Range1d): Range1d {\r\n return this.rangeInStartEndRadians(sweep.startRadians, sweep.endRadians, result);\r\n }\r\n /**\r\n * Return a representative angle (in radians) for min and max values.\r\n * * The radians value is atan2(sineCoff, cosineCoff)\r\n * * Hence the candidates for min and max of the function are at this value and this value plus PI\r\n */\r\n public referenceMinMaxRadians(): number {\r\n return Math.atan2(this.sineCoff, this.cosineCoff);\r\n }\r\n}\r\n/**\r\n * Support for an implicit linear equation (half space)\r\n * f(x,y) = a0 + x * ax + y * ay\r\n * @internal\r\n */\r\nexport class ImplicitLineXY {\r\n /**\r\n * constant coefficient\r\n */\r\n public a: number;\r\n /**\r\n * x coefficient\r\n */\r\n public ax: number;\r\n /**\r\n * y coefficient\r\n */\r\n public ay: number;\r\n /** construct the ImplicitLineXY from coefficients */\r\n public constructor(a: number, ax: number, ay: number) {\r\n this.a = a;\r\n this.ax = ax;\r\n this.ay = ay;\r\n }\r\n /** Compute 2 points of a line segment with\r\n * * the segment is on the zero-line of this ImplicitLineXY\r\n * * the start and endpoints are distance `b` from the projection of the origin onto the ImplicitLineXY\r\n * @returns undefined if ax,ay are both zero. Otherwise the two points of the segment.\r\n */\r\n public convertToSegmentPoints(b: number): Point3d[] | undefined{\r\n const q = Math.sqrt (this.ax * this.ax + this.ay * this.ay);\r\n const alpha = Geometry.conditionalDivideCoordinate(1.0, q, 1.0e10);\r\n if (alpha === undefined)\r\n return undefined;\r\n const ux = alpha * this.ax;\r\n const uy = alpha * this.ay;\r\n const px = -alpha * ux;\r\n const py = -alpha * uy;\r\n return [Point3d.create(px - b * uy, py + b * ux), Point3d.create(px + b * uy, py - b * ux)];\r\n }\r\n /**\r\n * Evaluate the half-space function at an xy point\r\n * @param xy xy values for evaluation\r\n * @returns evaluation.\r\n */\r\n public evaluatePoint(xy: XAndY): number {\r\n return this.a + xy.x * this.ax + xy.y * this.ay;\r\n }\r\n /**\r\n * add scale * (a,ax,ay) to the respective coefficients.\r\n */\r\n public addScaledCoefficientsInPlace(a: number, ax: number, ay: number, scale: number) {\r\n this.a += scale * a;\r\n this.ax += scale * ax;\r\n this.ay += scale * ay;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Quadrature.d.ts","sourceRoot":"","sources":["../../src/numerics/Quadrature.ts"],"names":[],"mappings":"AAOA;;GAEG;AAEH;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,sDAAsD;IACtD,gBAAuB,iBAAiB,eAA2B;IACnE,qDAAqD;IACrD,gBAAuB,iBAAiB,eAA2B;IAEnE,sDAAsD;IACtD,gBAAuB,iBAAiB,eAA+D;IACvG,qDAAqD;IACrD,gBAAuB,iBAAiB,eAAgC;IAExE,sDAAsD;IACtD,gBAAuB,iBAAiB,eAAmE;IAC3G,qDAAqD;IACrD,gBAAuB,iBAAiB,eAAkF;IAE1H,sDAAsD;IACtD,gBAAuB,iBAAiB,eAAwG;IAChJ,qDAAqD;IACrD,gBAAuB,iBAAiB,eAAwG;IAEhJ,sDAAsD;IACtD,gBAAuB,iBAAiB,eAA6G;IACrJ,qDAAqD;IACrD,gBAAuB,iBAAiB,eAA+H;IAEvK;;;;;;;;;;;;;OAaG;WACW,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAS7I,wEAAwE;WAC1D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAIvG,wEAAwE;WAC1D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAUvG,0EAA0E;WAC5D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAevG,yEAAyE;WAC3D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAkBvG,yEAAyE;WAC3D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM;IAgBvG,2DAA2D;WAC7C,IAAI,CAChB,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM;IAKnC;;;;;;;OAOG;WACW,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU;CAgB1H;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,+BAA+B;IACxB,MAAM,EAAE,YAAY,CAAC;IAC5B,8BAA8B;IACvB,MAAM,EAAE,YAAY,CAAC;IAC5B,yEAAyE;IAClE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,KAAK,MAAM,CAAC;IAChG,kFAAkF;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAG/C;;;OAGG;gBACgB,cAAc,EAAE,MAAM;CAgB1C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Quadrature.js","sourceRoot":"","sources":["../../src/numerics/Quadrature.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\n\r\nimport { Geometry } from \"../Geometry\";\r\n\r\n/** @packageDocumentation\r\n * @module Numerics\r\n */\r\n\r\n/** Support class for quadrature -- approximate integrals by summing weighted function values.\r\n * These are filled with x and weight for quadrature between xA and xB\r\n *\r\n * Since quadrature is done in side tight loops, these methods are structured for minimum object\r\n * allocation.\r\n * For methods names setupGauss<N> (where N is a smallish integer), the CALLER creates arrays xMapped and wMapped\r\n * The method installs particular x and weight values.\r\n * @internal\r\n */\r\nexport class Quadrature {\r\n /** x value for 1 point gauss rule in 0..1 interval */\r\n public static readonly gaussX1Interval01 = new Float64Array([0.5]);\r\n /** weight for 1 point gauss rule in 0..1 interval */\r\n public static readonly gaussW1Interval01 = new Float64Array([1.0]);\r\n\r\n /** x value for 2 point gauss rule in 0..1 interval */\r\n public static readonly gaussX2Interval01 = new Float64Array([0.21132486540518708, 0.7886751345948129]);\r\n /** weight for 2 point gauss rule in 0..1 interval */\r\n public static readonly gaussW2Interval01 = new Float64Array([0.5, 0.5]);\r\n\r\n /** x value for 3 point gauss rule in 0..1 interval */\r\n public static readonly gaussX3Interval01 = new Float64Array([0.1127016653792583, 0.5, 0.8872983346207417]);\r\n /** weight for 3 point gauss rule in 0..1 interval */\r\n public static readonly gaussW3Interval01 = new Float64Array([0.2777777777777778, 0.4444444444444444, 0.2777777777777778]);\r\n\r\n /** x value for 4 point gauss rule in 0..1 interval */\r\n public static readonly gaussX4Interval01 = new Float64Array([0.06943184420297371, 0.33000947820757187, 0.6699905217924281, 0.9305681557970262]);\r\n /** weight for 4 point gauss rule in 0..1 interval */\r\n public static readonly gaussW4Interval01 = new Float64Array([0.17392742256872692, 0.3260725774312731, 0.3260725774312731, 0.17392742256872692]);\r\n\r\n /** x value for 5 point gauss rule in 0..1 interval */\r\n public static readonly gaussX5Interval01 = new Float64Array([0.04691007703066802, 0.23076534494715845, 0.5, 0.7692346550528415, 0.9530899229693319]);\r\n /** weight for 5 point gauss rule in 0..1 interval */\r\n public static readonly gaussW5Interval01 = new Float64Array([0.11846344252809454, 0.23931433524968324, 0.28444444444444444, 0.23931433524968324, 0.11846344252809454]);\r\n\r\n /**\r\n * Given points and weights in a reference interval (usually 0 to 1):\r\n *\r\n * * map each xRef[i] to xA + h * xRef[i];\r\n * * scale each weight wRef[i] to h * wRef[i]\r\n * * all arrays are assumed to have xRef.length entries.\r\n * * the return value is xRef.length\r\n * @param xA beginning of target interval\r\n * @param h length of target interval\r\n * @param xRef x coordinates in reference interval\r\n * @param wRef weights for integration in the reference interval\r\n * @param xMapped x coordinates to evaluate integrands\r\n * @param wMapped weights for evaluated integrands\r\n */\r\n public static mapWeights(xA: number, h: number, xRef: Float64Array, wRef: Float64Array, xMapped: Float64Array, wMapped: Float64Array): number {\r\n const n = xRef.length;\r\n for (let i = 0; i < n; i++) {\r\n xMapped[i] = xA + h * xRef[i];\r\n wMapped[i] = h * wRef[i];\r\n }\r\n return n;\r\n }\r\n\r\n /** Install 1 (ONE) x and weight values for quadrature from xA to xB. */\r\n public static setupGauss1(xA: number, xB: number, xMapped: Float64Array, wMapped: Float64Array): number {\r\n return Quadrature.mapWeights(xA, xB - xA, Quadrature.gaussX1Interval01, Quadrature.gaussW1Interval01, xMapped, wMapped);\r\n }\r\n\r\n /** Install 2 (TWO) x and weight values for quadrature from xA to xB. */\r\n public static setupGauss2(xA: number, xB: number, xMapped: Float64Array, wMapped: Float64Array): number {\r\n return Quadrature.mapWeights(xA, xB - xA, Quadrature.gaussX2Interval01, Quadrature.gaussW2Interval01, xMapped, wMapped);\r\n /* // exact formulas for interval xA..xB:\r\n const x0 = 0.5 * (xA + xB);\r\n const h = 0.5 * (xB - xA);\r\n const dx = h / Math.sqrt(3);\r\n xMapped[0] = x0 - dx; xMapped[1] = x0 + dx;\r\n wMapped[0] = wMapped[1] = h;\r\n */\r\n }\r\n /** Install 3 (THREE) x and weight values for quadrature from xA to xB. */\r\n public static setupGauss3(xA: number, xB: number, xMapped: Float64Array, wMapped: Float64Array): number {\r\n return Quadrature.mapWeights(xA, xB - xA, Quadrature.gaussX3Interval01, Quadrature.gaussW3Interval01, xMapped, wMapped);\r\n /* // exact formulas for interval xA..xB:\r\n const x0 = 0.5 * (xA + xB);\r\n const h = 0.5 * (xB - xA);\r\n const a = Math.sqrt(0.6);\r\n const b = h * 5.0 / 9.0;\r\n const dx = a * h;\r\n xMapped[0] = x0 - dx; xMapped[1] = x0; xMapped[2] = x0 + dx;\r\n wMapped[0] = wMapped[2] = b;\r\n wMapped[1] = h * 8.0 / 9.0;\r\n return 3;\r\n */\r\n }\r\n\r\n /** Install 5 (FIVE) x and weight values for quadrature from xA to xB. */\r\n public static setupGauss5(xA: number, xB: number, xMapped: Float64Array, wMapped: Float64Array): number {\r\n return Quadrature.mapWeights(xA, xB - xA, Quadrature.gaussX5Interval01, Quadrature.gaussW5Interval01, xMapped, wMapped);\r\n /* // exact formulas for interval xA..xB:\r\n const x0 = 0.5 * (xA + xB);\r\n const h = 0.5 * (xB - xA);\r\n const q = 2.0 * Math.sqrt(10.0 / 7.0);\r\n const b = 13.0 * Math.sqrt(70.0);\r\n const a1 = h * Math.sqrt(5.0 - q) / 3.0;\r\n const a2 = h * Math.sqrt(5.0 + q) / 3.0;\r\n const w1 = h * (322.0 + b) / 900.0;\r\n const w2 = h * (322.0 - b) / 900;\r\n const w0 = h * 128.0 / 225.0;\r\n xMapped[0] = x0 - a2; xMapped[1] = x0 - a1; xMapped[2] = x0; xMapped[3] = x0 + a1; xMapped[4] = x0 + a2;\r\n wMapped[0] = w2; wMapped[1] = w1; wMapped[2] = w0; wMapped[3] = w1; wMapped[4] = w2;\r\n return 5;\r\n */\r\n }\r\n\r\n /** Install 4 (FOUR) x and weight values for quadrature from xA to xB. */\r\n public static setupGauss4(xA: number, xB: number, xMapped: Float64Array, wMapped: Float64Array): number {\r\n return Quadrature.mapWeights(xA, xB - xA, Quadrature.gaussX4Interval01, Quadrature.gaussW4Interval01, xMapped, wMapped);\r\n /* // exact formulas for interval xA..xB:\r\nconst x0 = 0.5 * (xA + xB);\r\nconst h = 0.5 * (xB - xA);\r\nconst q = 2.0 * Math.sqrt(6.0 / 5.0);\r\nconst r = Math.sqrt(30.0);\r\nconst a1 = h * Math.sqrt((3 - q) / 7.0);\r\nconst w1 = h * (18.0 + r) / 36.0;\r\nconst a2 = h * Math.sqrt((3 + q) / 7.0);\r\nconst w2 = h * (18.0 - r) / 36.0;\r\nxMapped[0] = x0 - a2; xMapped[1] = x0 - a1; xMapped[2] = x0 + a1; xMapped[3] = x0 + a2;\r\nwMapped[0] = w2; wMapped[1] = w1; wMapped[2] = w1; wMapped[3] = w2;\r\nreturn 4;\r\n*/\r\n }\r\n /** Sum function values with given weights and x values. */\r\n public static sum1(\r\n xx: Float64Array,\r\n ww: Float64Array,\r\n n: number,\r\n f: (x: number) => number): number {\r\n let sum = 0;\r\n for (let i = 0; i < n; i++)sum += ww[i] * f(xx[i]);\r\n return sum;\r\n }\r\n /**\r\n * Do a Guass quadrature integral for a (number)=>number function over an interval, with caller specified sub-interval count and\r\n * @param x0 start of overall interval\r\n * @param x1 end of overall interval\r\n * @param f function to evaluate\r\n * @param numInterval number of internal intervals\r\n * @param numGauss number of gauss points. must be supported by GaussMapper, i.e. 1,2,3,4,5\r\n */\r\n public static doGaussIntegral(x0: number, x1: number, f: (x: number) => number, numInterval: number, numGauss: number = 5) {\r\n const mapper = new GaussMapper(numGauss);\r\n if (numInterval < 1)\r\n numInterval = 1;\r\n const df = 1.0 / numInterval;\r\n let sum = 0;\r\n for (let i = 1; i <= numInterval; i++) {\r\n const xA = Geometry.interpolate(x0, (i - 1) * df, x1);\r\n const xB = i === numInterval ? x1 : Geometry.interpolate(x0, (i) * df, x1);\r\n const n = mapper.mapXAndW(xA, xB);\r\n for (let k = 0; k < n; k++) {\r\n sum += mapper.gaussW[k] * f(mapper.gaussX[k]);\r\n }\r\n }\r\n return sum;\r\n }\r\n}\r\n\r\n/**\r\n * This class carries public members as needed for users to have gauss points that are used\r\n * in the callers loops.\r\n * @internal\r\n */\r\nexport class GaussMapper {\r\n /** x values for integration */\r\n public gaussX: Float64Array;\r\n /** weights for integration */\r\n public gaussW: Float64Array;\r\n /** function to be called (at each interval) to map integration values */\r\n public mapXAndWFunction: (xA: number, xB: number, xx: Float64Array, ww: Float64Array) => number;\r\n /** Execute the mapXAndWFunction to set up arrays for integration from xA to xB */\r\n public mapXAndW(xA: number, xB: number): number {\r\n return this.mapXAndWFunction(xA, xB, this.gaussX, this.gaussW);\r\n }\r\n /** setup gauss arrays.\r\n * * Number of gauss points must be 1 to 5 (inclusive)\r\n * @param numGauss requested number of gauss points.\r\n */\r\n public constructor(numGaussPoints: number) {\r\n const maxGauss = 7; // (As of Nov 2 2018, 7 is a fluffy over-allocation-- the quadrature class only handles up to 5.)\r\n this.gaussX = new Float64Array(maxGauss);\r\n this.gaussW = new Float64Array(maxGauss);\r\n // This sets the number of gauss points. This integrates exactly for polynomials of (degree 2*numGauss - 1).\r\n if (numGaussPoints > 5 || numGaussPoints < 1)\r\n numGaussPoints = 5;\r\n switch (numGaussPoints) {\r\n case 1: this.mapXAndWFunction = Quadrature.setupGauss1; break;\r\n case 2: this.mapXAndWFunction = Quadrature.setupGauss2; break;\r\n case 3: this.mapXAndWFunction = Quadrature.setupGauss3; break;\r\n case 4: this.mapXAndWFunction = Quadrature.setupGauss4; break;\r\n default: this.mapXAndWFunction = Quadrature.setupGauss5; break;\r\n }\r\n\r\n }\r\n}\r\n// someday .... http://www.holoborodko.com/pavel/numerical-methods/numerical-integration/overlapped-newton-cotes-quadratures/\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Range1dArray.d.ts","sourceRoot":"","sources":["../../src/numerics/Range1dArray.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA2BxC,8FAA8F;WAChF,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAW7E;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAW1C,8DAA8D;WAChD,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAyB5E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAWnC,uDAAuD;WACzC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IA0CxE,wDAAwD;WAC1C,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAezE,gHAAgH;WAClG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;IAIlC,wJAAwJ;WAC1I,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAAE,OAAe;IA+BxF,gEAAgE;WAClD,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAAE,OAAe;IAqCzF;;OAEG;WACW,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAGhE;;OAEG;WACW,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IASjE;OACG;WACW,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAS3E;;;;OAIG;WACW,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,GAAE,OAAe,EAAE,QAAQ,GAAE,OAAe,EAAE,KAAK,GAAE,OAAc,GAAG,oBAAoB;IAetK;;;;;;;;;OASG;WACW,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAChK,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAC9D,kBAAkB,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,MAAM,EAAE,GAAG,oBAAoB,GAAG,MAAM,EAAE;IAiBnH,qGAAqG;WACvF,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;IAK1D,oCAAoC;WACtB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM;IAQjD;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO;CAezE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAM3E"}
|