@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":"Range.js","sourceRoot":"","sources":["../../src/geometry3d/Range.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,0CAAmE;AAGnE,yCAAsC;AACtC,uDAAsD;AACtD,uDAAsD;AACtD,qDAAqF;AACrF,2CAAwC;AAExC,gDAAgD;AAChD,yDAAyD;AACzD;;;GAGG;AACH,MAAsB,SAAS;IAK7B,kFAAkF;IACxE,MAAM,CAAC,cAAc,CAAC,GAAW,EAAE,IAAY,IAAY,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACvH,qFAAqF;IAC9E,MAAM,CAAC,cAAc,CAAC,CAAS,IAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvG,mGAAmG;IAC5F,MAAM,CAAC,gBAAgB,CAAC,GAAY,IAAI,OAAO,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9J,iGAAiG;IAC1F,MAAM,CAAC,gBAAgB,CAAC,EAAW,IAAI,OAAO,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxH;;;;;;;;OAQG;IACI,MAAM,CAAC,4BAA4B,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa;QACjG,IAAI,KAAK,GAAG,IAAI;YACd,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI;YACd,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI;YACd,OAAO,IAAI,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,IAAI,KAAK;YAChB,OAAO,GAAG,CAAC;QACb,IAAI,IAAI,IAAI,KAAK;YACf,OAAO,GAAG,CAAC;QACb,OAAO,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,iCAAiC,CAAC,CAAS,EAAE,GAAW,EAAE,IAAY;QAClF,IAAI,IAAI,GAAG,GAAG;YACZ,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG;YACT,OAAO,GAAG,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,IAAI;YACV,OAAO,CAAC,GAAG,IAAI,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;;AAhDH,8BAiDC;AAhDC,+EAA+E;AACrD,2BAAiB,GAAW,OAAO,CAAC;AAC9D,+EAA+E;AACrD,2BAAiB,GAAW,CAAC,OAAO,CAAC;AA8CjE;;;;;;GAMG;AACH,MAAa,OAAQ,SAAQ,SAAS;IAyCpC,wDAAwD;IACxD,YAAmB,OAAe,SAAS,CAAC,iBAAiB,EAAE,OAAe,SAAS,CAAC,iBAAiB,EAAE,OAAe,SAAS,CAAC,iBAAiB,EACnJ,QAAgB,SAAS,CAAC,iBAAiB,EAAE,QAAgB,SAAS,CAAC,iBAAiB,EAAE,QAAgB,SAAS,CAAC,iBAAiB;QACrI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,yBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,yBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAvCD,+EAA+E;IACxE,OAAO;QACZ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IAED,gEAAgE;IACzD,MAAM,KAAqB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtG,8GAA8G;IACvG,MAAM,CAAC,cAAc,CAAC,GAAkB,IAAkB,OAAO,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/J,8EAA8E;IACvE,cAAc,KAAmB,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAAoB,GAAiB;QACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAM,CAAC;IACvE,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAoB,MAAmB,IAAO,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAUpI,6FAA6F;IACtF,aAAa,CAAC,KAAwB,EAAE,GAAY;QACzD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;eACtF,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,2CAA2C;IACpC,OAAO,CAAC,KAAc,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9F,+DAA+D;IACxD,MAAM,CAAC,UAAU,CAAoB,KAAc,EAAE,MAAU;QACpE,IAAI,MAAM,EAAE;YAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,MAAM,CAAC;SAAE;QACrD,OAAO,IAAI,CAAC,2BAA2B,CAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAC9E,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IACD;;;;OAIG;IACI,WAAW,CAAC,IAAmB;QACpC,IAAI,CAAC,IAAI;YACP,OAAO;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,yBAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;gBACxB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,OAAO;SACR;QACD,MAAM,GAAG,GAAG,yBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,yBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB;IACH,CAAC;IACD;;OAEG;IACI,MAAM,KAAmB,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9F,qEAAqE;IAC9D,MAAM,CAAC,QAAQ,CAAoB,IAAmB;QAC3D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAO,CAAC;QAC/B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,4EAA4E;IACpE,SAAS,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,aAAsB;QAC9G,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,aAAa,EAAE;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;mBACvB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;mBACxB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACH,CAAC;IACD,oBAAoB;IACb,KAAK,CAAC,MAAa;QACxB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAK,IAAI,CAAC,WAAmB,EAAU,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnG,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;OAEG;IACI,eAAe,CAAC,KAAa,EAAE,MAAa;QACjD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAK,IAAI,CAAC,WAAmB,EAAU,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjK,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qDAAqD;IAC9C,MAAM,CAAC,UAAU,CAAoB,MAAU;QACpD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iGAAiG;IAC1F,MAAM,CAAC,GAAG,KAAgB;QAC/B,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,KAAK;YACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,oHAAoH;IAC7G,MAAM,CAAC,MAAM,CAAC,GAAG,KAAgB;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,KAAK;YACb,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,wEAAwE;IACjE,MAAM,CAAC,qBAAqB,CAAC,IAAgC;QAClE,MAAM,SAAS,GAAG,IAAI,0CAAyB,EAAE,CAAC;QAClD,uCAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,yDAAyD;IAClD,MAAM,CAAC,iBAAiB,CAAoB,SAAoB,EAAE,GAAG,KAAgB;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAK,CAAC;QACpC,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,KAAK;YACb,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,yDAAyD;IAClD,MAAM,CAAC,sBAAsB,CAAoB,SAAoB,EAAE,MAAoC;QAChH,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAK,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qEAAqE;IAC9D,MAAM,CAAC,6BAA6B,CAAoB,SAAoB,EAAE,MAAoC;QACvH,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAK,CAAC;QACpC,MAAM,CAAC,6BAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,kEAAkE;IAC3D,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,kCAAkC;IAC3B,MAAM,CAAC,SAAS,CAAoB,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,MAAU;QACpF,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2GAA2G;IACpG,MAAM,CAAC,YAAY,CAAoB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAU;QAC9H,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACpD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iGAAiG;IAC1F,MAAM,CAAC,2BAA2B,CAAoB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAU;QAC7I,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EACpD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wHAAwH;IACjH,MAAM,CAAC,aAAa,CAAoB,KAAc,EAAE,IAAY,CAAC,EAAE,MAAU;QACtF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QACjD,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gDAAgD;IACzC,MAAM,CAAC,WAAW,CAAoB,MAAiB,EAAE,MAAU;QACxE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC;QACV,KAAK,KAAK,IAAI,MAAM;YAClB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACjE,WAAW,CAAC,MAAoC,EAAE,SAAqB;QAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,IAAI,SAAS;gBACX,KAAK,MAAM,KAAK,IAAI,MAAM;oBACxB,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;;gBAElE,KAAK,MAAM,KAAK,IAAI,MAAM;oBACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1C,4EAA4E;SAChF,IAAI,SAAS;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;gBACpC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;;YAEtJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;gBACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtI,CAAC;IAED,wEAAwE;IACjE,6BAA6B,CAAC,MAAoC,EAAE,SAAoB;QAC7F,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM;gBACxB,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;aACrE,4EAA4E;YAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;gBACpC,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjK,CAAC;IAED;OACG;IACI,oBAAoB,CAAC,SAAoB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACrD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACrD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;OACG;IACI,qBAAqB,CAAC,SAAoB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC3F,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,UAAU,CACb,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACzD,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACzD,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACzD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;OACG;IACI,2BAA2B,CAAC,SAAoB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QACtF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,YAAa,CAAC;QAC7C,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CACZ,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IACrD,6BAA6B,CAAC,UAAqB,EAAE,UAAqB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAChH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAClC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACrD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EACrD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,qHAAqH;IACrH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;eAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;eACxB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mHAAmH;IAC5G,MAAM,CAAC,MAAM,CAAC,IAAmB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;eAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;eACxB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iDAAiD;IACjD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;eAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;eAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,oEAAoE;IACpE,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,kCAAkC;IAClC,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,kCAAkC;IAClC,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,kCAAkC;IAClC,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,mCAAmC;IACnC,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,mCAAmC;IACnC,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,mCAAmC;IACnC,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAElD,uDAAuD;IAChD,OAAO,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,uDAAuD;IAChD,OAAO,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,uDAAuD;IAChD,OAAO,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,8DAA8D;IACvD,SAAS,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,+IAA+I;IACxI,QAAQ,CAAC,MAAiB,IAAc,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE7F,gJAAgJ;IACzI,uBAAuB,CAAC,QAAgB,EAAE,MAAgB,IAAa,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzI,+GAA+G;IACxG,eAAe,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAiB,EAAE,MAAgB;QAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAiB,EAAE,MAAgB;QAC9F,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,GAAW,EAAE,MAAgB;QAC/C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IACD;;OAEG;IACI,wBAAwB,CAAC,MAAiB;QAC/C,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,MAAM;YACpB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IACD;;;OAGG;IACI,YAAY,CAAC,KAAc,EAAE,MAAgB;QAClD,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YACxC,OAAO,SAAS,CAAC;QACnB,OAAO,yBAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACvH,CAAC;IAED;;;OAGG;IACI,wBAAwB,CAAC,KAAgB;QAC9C,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YACxC,OAAO,KAAK,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,KAAK;YACnB,yBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,MAAkB;QAC/B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,OAAO,MAAM,CAAC;SACf;QACD,OAAO;YACL,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,iBAAiB,CAAC,KAAa;QAC3C,IAAI,KAAK,KAAK,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IACD;;;;;;OAMG;IACI,WAAW,CAAC,YAAoB,GAAG,EAAE,eAAwB,IAAI,EAAE,aAAsB,IAAI;QAClG,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,SAAS,CAAC;QACnB,MAAM,MAAM,GAAc;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;SACtC,CAAC;QACF,IAAI,UAAU;YACZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,YAAY;YACf,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kFAAkF;IAC3E,MAAM;QACX,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,GAAG,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,0DAA0D;IAC1D,IAAW,aAAa,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,0DAA0D;IAC1D,IAAW,aAAa,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9F,0DAA0D;IACnD,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAChD,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACjB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACf,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACf,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAChB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAChB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,+EAA+E;IACxE,UAAU,CAAC,CAAS,EAAE,CAAS;QACpC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACjB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACf,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAChB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,2CAA2C;IACpC,aAAa,CAAC,KAAc,IAAa,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErG,mEAAmE;IAC5D,eAAe,CAAC,KAAc;QACnC,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACvB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACrB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eACtB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,+CAA+C;IACxC,aAAa,CAAC,KAAc;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACzB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IAClD,eAAe,CAAC,KAAc;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,yDAAyD;IAClD,iBAAiB,CAAC,KAAc;QACrC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,sGAAsG;IAC/F,eAAe,CAAC,KAAa;QAClC,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CACb,mBAAQ,CAAC,aAAa,CACpB,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7E,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7E,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAChF,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,gHAAgH;IACzG,eAAe,CAAC,KAAc;QACnC,OAAO,IAAI,CAAC,GAAG,CACb,mBAAQ,CAAC,aAAa,CACpB,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1F,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1F,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC7F,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IAED,2EAA2E;IACpE,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,iEAAiE;IAC1D,WAAW,CAAC,CAAS;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,iEAAiE;IAC1D,WAAW,CAAC,CAAS;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,iEAAiE;IAC1D,WAAW,CAAC,CAAS;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,0CAA0C;IACnC,gBAAgB,CAAC,CAAS,EAAE,SAAoB;QACrD,IAAI,SAAS,KAAK,oBAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,SAAS,KAAK,oBAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,SAAS,KAAK,oBAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,wFAAwF;IACjF,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC1D,IAAI,CAAC,mBAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,4CAA4C;IACrC,WAAW,CAAC,KAAc,EAAE,SAAqB;QACtD,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,wDAAwD;IACjD,sBAAsB,CAAC,SAAoB,EAAE,KAAc;QAChE,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,4CAA4C;IACrC,WAAW,CAAC,KAAoB;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,yCAAyC;IAClC,SAAS,CAAC,KAAc,EAAE,MAAgB;QAC/C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,2BAA2B,CAEtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7G,MAAM,CAAC,CAAC;IAEd,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,KAAc,EAAE,MAAgB;QAC3C,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;QACpC,iGAAiG;QACjG,OAAO,OAAO,CAAC,2BAA2B,CAEtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7G,MAAM,CAAC,CAAC;IACd,CAAC;IACD;;;OAGG;IACI,uBAAuB,CAAC,WAAmB;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpC,8DAA8D;YAC9D,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAC1D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,yDAAyD;IAClD,wBAAwB,CAAC,MAAkB;QAChD,OAAO,qBAAS,CAAC,qBAAqB,CAAC,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,mBAAQ,CAAC,eAAe,CACjH,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAC9B,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAC/B,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,2BAA2B,CAAC,MAAkB;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,MAAc,IAAI;QACxC,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;QACxC,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;SACrB;QACD,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;SACrB;QACD,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;SACrB;IACH,CAAC;CACF;AA7uBD,0BA6uBC;AACD;;;;;;GAMG;AACH,MAAa,OAAQ,SAAQ,SAAS;IAiBpC,wDAAwD;IACxD,YACE,MAAc,SAAS,CAAC,iBAAiB,EACzC,OAAe,SAAS,CAAC,iBAAiB;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,qEAAqE;QACvG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAnBD,kDAAkD;IAC3C,OAAO;QACZ,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAC1C,CAAC;IACD,4EAA4E;IACpE,SAAS,CAAC,GAAW,EAAE,IAAY,EAAE,gBAAyB,KAAK;QACzE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,aAAa,IAAI,GAAG,GAAG,IAAI;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IASD,6FAA6F;IACtF,aAAa,CAAC,KAAwB;QAC3C,OAAO,CAAC,mBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,mBAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;eACtG,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,wCAAwC;IACjC,OAAO,CAAC,KAAc,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF;;;;OAIG;IACI,WAAW,CAAC,IAAkB;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,KAAK,CAAC;YACV,KAAK,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACvB;SACF;aAAM,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC;IACD,qEAAqE;IAC9D,MAAM,CAAC,QAAQ,CAAoB,IAAmB;QAC3D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAO,CAAC;QAC/B,IAAI,IAAI;YACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;;;OAIG;IACI,MAAM,KAAmB,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,KAAK,EAAU,CAAC;;QAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjH;;OAEG;IACI,KAAK,CAAC,MAAa;QACxB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAK,IAAI,CAAC,WAAmB,EAAU,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,UAAU,CAAoB,KAAQ,EAAE,MAAU;QAC9D,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,UAAU,CAAoB,MAAU;QACpD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,KAAa,EAAE,MAAgB;QACpD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;YACpB,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,IAAI,CAAC,CAAS,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,gCAAgC;IACzB,MAAM,CAAC,OAAO,CAAoB,CAAS,EAAE,MAAU;QAC5D,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,EAAU,EAAE,EAAU;QAC1C,IAAI,EAAE,IAAI,EAAE,EAAE;YACZ,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;SAC/B;IACH,CAAC;IACD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;IACjD,CAAC;IACC;;;OAGG;IACI,MAAM,CAAC,QAAQ,CAAoB,EAAU,EAAE,EAAU,EAAE,MAAU;QAC1E,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,uBAAuB,CAAoB,EAAU,EAAE,EAAU,EAAE,MAAU;QACzF,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,WAAW,CAAoB,MAA+B,EAAE,MAAU;QACtF,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,MAAM;YACd,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,2CAA2C;IACpC,WAAW,CAAC,MAA+B;QAChD,IAAI,CAAC,CAAC;QACN,KAAK,CAAC,IAAI,MAAM;YACd,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,MAA+B,EAAE,UAAkB,EAAE,QAAgB;QAC5F,MAAM,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,wFAAwF;IACxF,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,iDAAiD;IACjD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,wDAAwD;IACjD,MAAM,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAErF,+GAA+G;IACxG,eAAe,CAAC,QAAgB;QACrC,OAAO,mBAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,8DAA8D;IACvD,MAAM;QACX,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,GAAG,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kDAAkD;IAClD,IAAW,kBAAkB,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAElG,4CAA4C;IACrC,SAAS,CAAC,CAAS;QACxB,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG;eACf,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,+CAA+C;IACxC,aAAa,CAAC,KAAc;QACjC,OAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;eACvB,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,yDAAyD;IAClD,eAAe,CAAC,KAAc;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACH;;;;;;OAMG;IACM,uBAAuB,CAAC,EAAU,EAAE,EAAU;QACnD,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM;YACL,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI;gBAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG;gBACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;SACjB;IACH,CAAC;IAED,gHAAgH;IACzG,eAAe,CAAC,KAAc;QACnC,OAAO,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,iHAAiH;IAC1G,WAAW,CAAC,CAAS;QAC1B,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACrC,OAAO,SAAS,CAAC,iCAAiC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,+CAA+C;IACxC,OAAO,CAAC,CAAS;QACtB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,4CAA4C;IACrC,WAAW,CAAC,KAAc;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1B;IACH,CAAC;IAED,gFAAgF;IACzE,SAAS,CAAC,CAAS;QACxB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kFAAkF;IAC3E,UAAU,CAAC,CAAS;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YAChC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IAClC,SAAS,CAAC,KAAc,EAAE,MAAgB;QAC/C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,uBAAuB,CAElC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAC/B,MAAM,CAAC,CAAC;IAEd,CAAC;IAED,kCAAkC;IAClC,yCAAyC;IAClC,KAAK,CAAC,KAAc,EAAE,MAAgB;QAC3C,iGAAiG;QACjG,OAAO,OAAO,CAAC,QAAQ,CAEnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAC/B,MAAM,CAAC,CAAC;IACd,CAAC;IACD;;;OAGG;IACI,uBAAuB,CAAC,WAAmB;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpC,8DAA8D;YAC9D,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SAC9D;IACH,CAAC;IACD;;;;;;OAMG;IACI,aAAa,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,GAAG,GAAG,KAAK,EAChB,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD;;;;;;;;;;;;;;;;;OAiBG;IACI,uBAAuB,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc,EAAE,MAAc;QACjF,sBAAsB;QACtB,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG;YACzC,OAAO,KAAK,CAAC;QACf,MAAM,SAAS,GAAG,mBAAQ,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,mBAAQ,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,oBAAoB;QACpB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;YACtD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;gBAC5B,OAAO,IAAI,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;SACd;QAED,IAAI,SAAS,GAAG,SAAS,EAAE;YACzB,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG;gBACtB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;SACzB;aAAM;YACL,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACxB,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG;gBACtB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtYD,0BAsYC;AAED;;;GAGG;AACH,MAAa,OAAQ,SAAQ,SAAS;IAoCpC,wDAAwD;IACxD,YAAmB,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB;QACzJ,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,yBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,yBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAjCD,kDAAkD;IAC3C,OAAO;QACZ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IACD,8GAA8G;IACvG,MAAM,CAAC,cAAc,CAAC,GAAiB,IAAkB,OAAO,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvI,uFAAuF;IAChF,cAAc,KAAmB,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAAoB,GAAiB;QACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAM,CAAC;IACvD,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAoB,MAAmB,IAAO,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAQpI,6FAA6F;IACtF,aAAa,CAAC,KAAc;QACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;eAC5E,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,uEAAuE;IAChE,OAAO,CAAC,KAAmB;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,2EAA2E;IACpE,MAAM,CAAC,UAAU,CAAoB,KAAmB,EAAE,MAAU;QACzE,IAAI,MAAM,EAAE;YAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,MAAM,CAAC;SAAE;QACrD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAM,CAAC;IAC3G,CAAC;IACD,+DAA+D;IACxD,WAAW,CAAC,IAAkB;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,yBAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;gBACxB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,OAAO;SACR;QACD,MAAM,GAAG,GAAG,yBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,yBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB;IACH,CAAC;IACD,gEAAgE;IACzD,MAAM,KAAqB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtG,wEAAwE;IACjE,MAAM,KAAmB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,qEAAqE;IAC9D,MAAM,CAAC,QAAQ,CAAoB,IAAmB;QAC3D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAO,CAAC;QAC/B,IAAI,IAAI;YACN,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,oEAAoE;IAC5D,SAAS,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,aAAsB;QACtF,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,aAAa,EAAE;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACH,CAAC;IACD,gEAAgE;IACzD,KAAK,CAAC,MAAa;QACxB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAK,IAAI,CAAC,WAAmB,EAAU,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,sCAAsC;IAC/B,MAAM,CAAC,UAAU,CAAoB,MAAU;QACpD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,8CAA8C;IACvC,KAAK,CAAC,CAAS,EAAE,CAAS;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,gCAAgC;IACzB,MAAM,CAAC,QAAQ,CAAoB,CAAS,EAAE,CAAS,EAAE,MAAU;QACxE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0GAA0G;IACnG,MAAM,CAAC,UAAU,CAAoB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAU;QACpG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAClC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0GAA0G;IACnG,MAAM,CAAC,YAAY,CAAoB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAU;QAC9H,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,gGAAgG;IACzF,MAAM,CAAC,yBAAyB,CAAoB,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,MAAU;QACnH,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,MAAM,CAAC,SAAS,CACd,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAClC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gDAAgD;IACzC,MAAM,CAAC,WAAW,CAAoB,MAAiB,EAAE,MAAU;QACxE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAO,CAAC;QAC3C,IAAI,KAAK,CAAC;QACV,KAAK,KAAK,IAAI,MAAM;YAClB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,mHAAmH;IACnH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;eAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,sIAAsI;IAC/H,MAAM,CAAC,MAAM,CAAC,KAAmB;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;eAC5B,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,iDAAiD;IACjD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;eAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,oEAAoE;IACpE,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,kCAAkC;IAClC,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,kCAAkC;IAClC,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,mCAAmC;IACnC,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,mCAAmC;IACnC,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAElD,2CAA2C;IACpC,OAAO,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,2CAA2C;IACpC,OAAO,KAAa,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,+IAA+I;IACxI,QAAQ,CAAC,MAAiB,IAAc,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE7F,+IAA+I;IACxI,uBAAuB,CAAC,QAAgB,EAAE,MAAgB,IAAa,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzI,6GAA6G;IACtG,eAAe,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAgB;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IACD;;;OAGG;IACI,SAAS,CAAC,SAAkB,KAAK,EAAE,IAAY,CAAC;QACrD,IAAI,MAAM;YACR,OAAO;gBACL,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzC,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1C,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3C,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1C,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;aAAC,CAAC;QAE/C,OAAO;YACL,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,yBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;SAAC,CAAC;IACjD,CAAC;IAED,uEAAuE;IAChE,MAAM;QACX,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,GAAG,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,kDAAkD;IAClD,IAAW,aAAa,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,kDAAkD;IAClD,IAAW,aAAa,KAAc,OAAO,mBAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9F,wDAAwD;IACjD,UAAU,CAAC,CAAS,EAAE,CAAS;QACpC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACjB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACf,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAChB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,2CAA2C;IACpC,aAAa,CAAC,KAAY,IAAa,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,+CAA+C;IACxC,aAAa,CAAC,KAAmB;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;eACzB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;eAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IAClD,eAAe,CAAC,KAAmB;QACxC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;eACzB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,sGAAsG;IAC/F,eAAe,CAAC,KAAY;QACjC,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,OAAO,CAAC,iBAAiB,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CACb,mBAAQ,CAAC,YAAY,CACnB,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7E,SAAS,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAChF,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAED,sGAAsG;IAC/F,eAAe,CAAC,KAAmB;QACxC,OAAO,IAAI,CAAC,GAAG,CACb,mBAAQ,CAAC,YAAY,CACnB,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC1F,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC7F,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;IAED,wDAAwD;IACjD,QAAQ,CAAC,CAAS,EAAE,CAAS;QAClC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,wDAAwD;IACjD,mBAAmB,CAAC,SAAoB,EAAE,CAAS,EAAE,CAAS;QACnE,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,4CAA4C;IACrC,WAAW,CAAC,KAAY,IAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,4CAA4C;IACrC,WAAW,CAAC,KAAmB;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,yCAAyC;IAClC,SAAS,CAAC,KAAmB,EAAE,MAAgB;QACpD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,UAAU,CAErB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACxE,MAAM,CAAC,CAAC;IAEd,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,KAAmB,EAAE,MAAgB;QAChD,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC;QACpC,iGAAiG;QACjG,OAAO,OAAO,CAAC,UAAU,CAErB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACxE,MAAM,CAAC,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,uBAAuB,CAAC,WAAmB;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpC,8DAA8D;YAC9D,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;IACD;;;;;;OAMG;IACI,aAAa,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EACtC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD;;;OAGG;IACI,YAAY,CAAC,KAAc,EAAE,MAAgB;QAClD,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;YAC1B,OAAO,SAAS,CAAC;QACnB,OAAO,yBAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;CACF;AArXD,0BAqXC","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 CartesianGeometry\r\n */\r\n\r\nimport { AxisIndex, BeJSONFunctions, Geometry } from \"../Geometry\";\r\nimport { MultiLineStringDataVariant } from \"../topology/Triangulation\";\r\nimport { GrowableXYZArray } from \"./GrowableXYZArray\";\r\nimport { Matrix3d } from \"./Matrix3d\";\r\nimport { Point2d, Vector2d } from \"./Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\nimport { PointStreamRangeCollector, VariantPointDataStream } from \"./PointStreaming\";\r\nimport { Transform } from \"./Transform\";\r\nimport { LowAndHighXY, LowAndHighXYZ, Range1dProps, Range2dProps, Range3dProps, XAndY, XYAndZ } from \"./XYZProps\";\r\n// allow _EXTREME_POSITIVE and _EXTREME_NEGATIVE\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/**\r\n * Base class for Range1d, Range2d, Range3d.\r\n * @public\r\n */\r\nexport abstract class RangeBase {\r\n /** Number considered impossibly large possibly for a coordinate in a range. */\r\n protected static readonly _EXTREME_POSITIVE: number = 1.0e200;\r\n /** Number considered to be impossibly negative for a coordinate in a range. */\r\n protected static readonly _EXTREME_NEGATIVE: number = -1.0e200;\r\n /** Return 0 if high<= low, otherwise `1/(high-low)` for use in fractionalizing */\r\n protected static npcScaleFactor(low: number, high: number): number { return (high <= low) ? 0.0 : 1.0 / (high - low); }\r\n /** Return true if x is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]' */\r\n public static isExtremeValue(x: number): boolean { return Math.abs(x) >= RangeBase._EXTREME_POSITIVE; }\r\n /** Return true if any x or y or z is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]' */\r\n public static isExtremePoint3d(xyz: Point3d) { return RangeBase.isExtremeValue(xyz.x) || RangeBase.isExtremeValue(xyz.y) || RangeBase.isExtremeValue(xyz.z); }\r\n /** Return true if either of x,y is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]' */\r\n public static isExtremePoint2d(xy: Point2d) { return RangeBase.isExtremeValue(xy.x) || RangeBase.isExtremeValue(xy.y); }\r\n /**\r\n * Return the min absolute distance from any point of `[lowA,highA]' to any point of `[lowB,highB]'.\r\n * * Both low,high pairs have order expectations: The condition `high < low` means null interval.\r\n * * If there is interval overlap, the distance is zero.\r\n * @param lowA low of interval A\r\n * @param highA high of interval A\r\n * @param lowB low of interval B\r\n * @param highB high of interval B\r\n */\r\n public static rangeToRangeAbsoluteDistance(lowA: number, highA: number, lowB: number, highB: number): number {\r\n if (highA < lowA)\r\n return RangeBase._EXTREME_POSITIVE;\r\n if (highB < lowB)\r\n return RangeBase._EXTREME_POSITIVE;\r\n if (highB < lowA)\r\n return lowA - highB;\r\n if (highB <= highA)\r\n return 0.0;\r\n if (lowB <= highA)\r\n return 0.0;\r\n return lowB - highA;\r\n }\r\n /** Given a coordinate and pair of range limits, return the smallest distance to the range.\r\n * * This is zero for any point inside the range\r\n * * This is _EXTREME_POSITIVE if the range limits are inverted\r\n * * Otherwise (i.e. x is outside a finite range) the distance to the near endpoint.\r\n */\r\n public static coordinateToRangeAbsoluteDistance(x: number, low: number, high: number): number {\r\n if (high < low)\r\n return RangeBase._EXTREME_POSITIVE;\r\n if (x < low)\r\n return low - x;\r\n if (x > high)\r\n return x - high;\r\n return 0.0;\r\n }\r\n}\r\n/**\r\n * Axis aligned range in 3D.\r\n * * member `low` contains minimum coordinate of range box\r\n * * member `high` contains maximum coordinate of range box\r\n * * The range is considered null (empty) if any low member is larger than its high counterpart.\r\n * @public\r\n */\r\nexport class Range3d extends RangeBase implements LowAndHighXYZ, BeJSONFunctions {\r\n // low and high are always non-null objects\r\n // any direction of low.q > high.q is considered a null range.\r\n // private ctor and setXYZXYZ_direct set the low and high explicitly (without further tests of low.q.<= high.q)\r\n /** low point coordinates */\r\n public low: Point3d;\r\n /** high point coordinates */\r\n public high: Point3d;\r\n /** Set this transform to values that indicate it has no geometric contents. */\r\n public setNull() {\r\n this.low.x = RangeBase._EXTREME_POSITIVE;\r\n this.low.y = RangeBase._EXTREME_POSITIVE;\r\n this.low.z = RangeBase._EXTREME_POSITIVE;\r\n this.high.x = RangeBase._EXTREME_NEGATIVE;\r\n this.high.y = RangeBase._EXTREME_NEGATIVE;\r\n this.high.z = RangeBase._EXTREME_NEGATIVE;\r\n }\r\n\r\n /** Freeze this instance (and its members) so it is read-only */\r\n public freeze(): Readonly<this> { this.low.freeze(); this.high.freeze(); return Object.freeze(this); }\r\n /** Flatten the low and high coordinates of any json object with low.x .. high.z into an array of 6 doubles */\r\n public static toFloat64Array(val: LowAndHighXYZ): Float64Array { return Float64Array.of(val.low.x, val.low.y, val.low.z, val.high.x, val.high.y, val.high.z); }\r\n /** Flatten the low and high coordinates of this into an array of 6 doubles */\r\n public toFloat64Array(): Float64Array { return Range3d.toFloat64Array(this); }\r\n /**\r\n * Construct a Range3d from an array of double-precision values\r\n * @param f64 the array, which should contain exactly 6 values in this order: lowX, lowY, lowZ, highX, highY, highZ\r\n * @return a new Range3d object\r\n */\r\n public static fromFloat64Array<T extends Range3d>(f64: Float64Array): T {\r\n if (f64.length !== 6)\r\n throw new Error(\"invalid array\");\r\n return new this(f64[0], f64[1], f64[2], f64[3], f64[4], f64[5]) as T;\r\n }\r\n /**\r\n * Construct a Range3d from an un-typed array. This mostly useful when interpreting ECSQL query results of the 'blob' type, where you know that that result is a Range3d.\r\n * @param buffer untyped array\r\n * @return a new Range3d object\r\n */\r\n public static fromArrayBuffer<T extends Range3d>(buffer: ArrayBuffer): T { return this.fromFloat64Array(new Float64Array(buffer)); }\r\n\r\n // explicit ctor - no enforcement of value relationships\r\n public constructor(lowX: number = RangeBase._EXTREME_POSITIVE, lowY: number = RangeBase._EXTREME_POSITIVE, lowZ: number = RangeBase._EXTREME_POSITIVE,\r\n highX: number = RangeBase._EXTREME_NEGATIVE, highY: number = RangeBase._EXTREME_NEGATIVE, highZ: number = RangeBase._EXTREME_NEGATIVE) {\r\n super();\r\n this.low = Point3d.create(lowX, lowY, lowZ);\r\n this.high = Point3d.create(highX, highY, highZ);\r\n }\r\n\r\n /** Returns true if this and other have equal low and high parts, or both are null ranges. */\r\n public isAlmostEqual(other: Readonly<Range3d>, tol?: number): boolean {\r\n return (this.low.isAlmostEqual(other.low, tol) && this.high.isAlmostEqual(other.high, tol))\r\n || (this.isNull && other.isNull);\r\n }\r\n /** copy low and high values from other. */\r\n public setFrom(other: Range3d) { this.low.setFrom(other.low); this.high.setFrom(other.high); }\r\n /** Return a new Range3d copied from a range or derived type */\r\n public static createFrom<T extends Range3d>(other: Range3d, result?: T): T {\r\n if (result) { result.setFrom(other); return result; }\r\n return this.createXYZXYZOrCorrectToNull<T>(other.low.x, other.low.y, other.low.z,\r\n other.high.x, other.high.y, other.high.z, result);\r\n }\r\n /** set this range (in place) from json such as\r\n * * key-value pairs: `{low:[1,2,3], high:[4,5,6]}`\r\n * * array of points: `[[1,2,3],[9,3,4],[-2,1,3] ...]`\r\n * * Lowest level points can be `[1,2,3]` or `{x:1,y:2,z:3}`\r\n */\r\n public setFromJSON(json?: Range3dProps) {\r\n if (!json)\r\n return;\r\n this.setNull();\r\n if (Array.isArray(json)) {\r\n const point = Point3d.create();\r\n for (const value of json) {\r\n point.setFromJSON(value);\r\n this.extendPoint(point);\r\n }\r\n return;\r\n }\r\n const low = Point3d.fromJSON(json.low);\r\n const high = Point3d.fromJSON(json.high);\r\n if (!RangeBase.isExtremePoint3d(low) && !RangeBase.isExtremePoint3d(high)) {\r\n this.extendPoint(low);\r\n this.extendPoint(high);\r\n }\r\n }\r\n /** Return a JSON object `{low: ... , high: ...}`\r\n * with points formatted by `Point3d.toJSON()`\r\n */\r\n public toJSON(): Range3dProps { return { low: this.low.toJSON(), high: this.high.toJSON() }; }\r\n /** Use `setFromJSON` to parse `json` into a new Range3d instance. */\r\n public static fromJSON<T extends Range3d>(json?: Range3dProps): T {\r\n const result = new this() as T;\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n // internal use only -- directly set all coordinates, test only if directed.\r\n private setDirect(xA: number, yA: number, zA: number, xB: number, yB: number, zB: number, correctToNull: boolean) {\r\n this.low.x = xA;\r\n this.low.y = yA;\r\n this.low.z = zA;\r\n\r\n this.high.x = xB;\r\n this.high.y = yB;\r\n this.high.z = zB;\r\n if (correctToNull) {\r\n if (this.low.x > this.high.x\r\n || this.low.y > this.high.y\r\n || this.low.z > this.high.z)\r\n this.setNull();\r\n }\r\n }\r\n /** Return a copy */\r\n public clone(result?: this): this {\r\n result = result ? result : new (this.constructor as any)() as this;\r\n result.setDirect(this.low.x, this.low.y, this.low.z, this.high.x, this.high.y, this.high.z, false);\r\n return result;\r\n }\r\n /** Return a copy, translated by adding `shift` components in all directions.\r\n * * The translate of a null range is also a null range.\r\n */\r\n public cloneTranslated(shift: XYAndZ, result?: this): this {\r\n result = result ? result : new (this.constructor as any)() as this;\r\n if (!this.isNull)\r\n result.setDirect(this.low.x + shift.x, this.low.y + shift.y, this.low.z + shift.z, this.high.x + shift.x, this.high.y + shift.y, this.high.z + shift.z, false);\r\n return result;\r\n }\r\n\r\n /** Return a range initialized to have no content. */\r\n public static createNull<T extends Range3d>(result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setNull();\r\n return result;\r\n }\r\n\r\n /** Extend (modify in place) so that the range is large enough to include the supplied points. */\r\n public extend(...point: Point3d[]) {\r\n let p;\r\n for (p of point)\r\n this.extendPoint(p);\r\n }\r\n /** Return a range large enough to include the supplied points. If no points are given, the range is a null range */\r\n public static create(...point: Point3d[]) {\r\n const result = Range3d.createNull();\r\n let p;\r\n for (p of point)\r\n result.extendPoint(p);\r\n return result;\r\n }\r\n /** Create a range from freely structured MultiLineStringDataVariant. */\r\n public static createFromVariantData(data: MultiLineStringDataVariant): Range3d {\r\n const collector = new PointStreamRangeCollector();\r\n VariantPointDataStream.streamXYZ(data, collector);\r\n return collector.claimResult();\r\n }\r\n /** create a Range3d enclosing the transformed points. */\r\n public static createTransformed<T extends Range3d>(transform: Transform, ...point: Point3d[]): T {\r\n const result = this.createNull<T>();\r\n let p;\r\n for (p of point)\r\n result.extendTransformedXYZ(transform, p.x, p.y, p.z);\r\n return result;\r\n }\r\n /** create a Range3d enclosing the transformed points. */\r\n public static createTransformedArray<T extends Range3d>(transform: Transform, points: Point3d[] | GrowableXYZArray): T {\r\n const result = this.createNull<T>();\r\n result.extendArray(points, transform);\r\n return result;\r\n }\r\n\r\n /** create a Range3d enclosing the points after inverse transform. */\r\n public static createInverseTransformedArray<T extends Range3d>(transform: Transform, points: Point3d[] | GrowableXYZArray): T {\r\n const result = this.createNull<T>();\r\n result.extendInverseTransformedArray(points, transform);\r\n return result;\r\n }\r\n /** Set the range to be a single point supplied as x,y,z values */\r\n public setXYZ(x: number, y: number, z: number) {\r\n this.low.x = this.high.x = x;\r\n this.low.y = this.high.y = y;\r\n this.low.z = this.high.z = z;\r\n }\r\n\r\n /** Create a single point range */\r\n public static createXYZ<T extends Range3d>(x: number, y: number, z: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(x, y, z, x, y, z, false);\r\n return result;\r\n }\r\n\r\n /** Create a box with 2 pairs of xyz candidates. Theses are compared and shuffled as needed for the box. */\r\n public static createXYZXYZ<T extends Range3d>(xA: number, yA: number, zA: number, xB: number, yB: number, zB: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB), Math.min(yA, yB), Math.min(zA, zB),\r\n Math.max(xA, xB), Math.max(yA, yB), Math.max(zA, zB), false);\r\n return result;\r\n }\r\n\r\n /** Create a box with 2 pairs of xyz candidates. If any direction has order flip, create null. */\r\n public static createXYZXYZOrCorrectToNull<T extends Range3d>(xA: number, yA: number, zA: number, xB: number, yB: number, zB: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n if (xA > xB || yA > yB || zA > zB)\r\n return this.createNull(result);\r\n result.setDirect(\r\n Math.min(xA, xB), Math.min(yA, yB), Math.min(zA, zB),\r\n Math.max(xA, xB), Math.max(yA, yB), Math.max(zA, zB), true);\r\n return result;\r\n }\r\n\r\n /** Creates a 3d range from a 2d range's low and high members, setting the corresponding z values to the value given. */\r\n public static createRange2d<T extends Range3d>(range: Range2d, z: number = 0, result?: T): T {\r\n const retVal = result ? result : new this() as T;\r\n retVal.setNull();\r\n\r\n retVal.extendXYZ(range.low.x, range.low.y, z);\r\n retVal.extendXYZ(range.high.x, range.high.y, z);\r\n return retVal;\r\n }\r\n\r\n /** Create a range around an array of points. */\r\n public static createArray<T extends Range3d>(points: Point3d[], result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setNull();\r\n let point;\r\n for (point of points)\r\n result.extendPoint(point);\r\n return result;\r\n }\r\n\r\n /** extend a range around an array of points (optionally transformed) */\r\n public extendArray(points: Point3d[] | GrowableXYZArray, transform?: Transform) {\r\n if (Array.isArray(points))\r\n if (transform)\r\n for (const point of points)\r\n this.extendTransformedXYZ(transform, point.x, point.y, point.z);\r\n else\r\n for (const point of points)\r\n this.extendXYZ(point.x, point.y, point.z);\r\n else // growable array -- this should be implemented without point extraction !!!\r\n if (transform)\r\n for (let i = 0; i < points.length; i++)\r\n this.extendTransformedXYZ(transform, points.getXAtUncheckedPointIndex(i), points.getYAtUncheckedPointIndex(i), points.getZAtUncheckedPointIndex(i));\r\n else\r\n for (let i = 0; i < points.length; i++)\r\n this.extendXYZ(points.getXAtUncheckedPointIndex(i), points.getYAtUncheckedPointIndex(i), points.getZAtUncheckedPointIndex(i));\r\n }\r\n\r\n /** extend a range around an array of points (optionally transformed) */\r\n public extendInverseTransformedArray(points: Point3d[] | GrowableXYZArray, transform: Transform) {\r\n if (Array.isArray(points))\r\n for (const point of points)\r\n this.extendInverseTransformedXYZ(transform, point.x, point.y, point.z);\r\n else // growable array -- this should be implemented without point extraction !!!\r\n for (let i = 0; i < points.length; i++)\r\n this.extendInverseTransformedXYZ(transform, points.getXAtUncheckedPointIndex(i), points.getYAtUncheckedPointIndex(i), points.getZAtUncheckedPointIndex(i));\r\n }\r\n\r\n /** multiply the point x,y,z by transform and use the coordinate to extend this range.\r\n */\r\n public extendTransformedXYZ(transform: Transform, x: number, y: number, z: number) {\r\n const origin = transform.origin;\r\n const coffs = transform.matrix.coffs;\r\n this.extendXYZ(\r\n origin.x + coffs[0] * x + coffs[1] * y + coffs[2] * z,\r\n origin.y + coffs[3] * x + coffs[4] * y + coffs[5] * z,\r\n origin.z + coffs[6] * x + coffs[7] * y + coffs[8] * z);\r\n }\r\n\r\n /** multiply the point x,y,z,w by transform and use the coordinate to extend this range.\r\n */\r\n public extendTransformedXYZW(transform: Transform, x: number, y: number, z: number, w: number) {\r\n const origin = transform.origin;\r\n const coffs = transform.matrix.coffs;\r\n this.extendXYZW(\r\n origin.x * w + coffs[0] * x + coffs[1] * y + coffs[2] * z,\r\n origin.y * w + coffs[3] * x + coffs[4] * y + coffs[5] * z,\r\n origin.z * w + coffs[6] * x + coffs[7] * y + coffs[8] * z,\r\n w);\r\n }\r\n\r\n /** multiply the point x,y,z by transform and use the coordinate to extend this range.\r\n */\r\n public extendInverseTransformedXYZ(transform: Transform, x: number, y: number, z: number): boolean {\r\n const origin = transform.origin;\r\n if (!transform.matrix.computeCachedInverse(true))\r\n return false;\r\n const coffs = transform.matrix.inverseCoffs!;\r\n const xx = x - origin.x;\r\n const yy = y - origin.y;\r\n const zz = z - origin.z;\r\n this.extendXYZ(\r\n coffs[0] * xx + coffs[1] * yy + coffs[2] * zz,\r\n coffs[3] * xx + coffs[4] * yy + coffs[5] * zz,\r\n coffs[6] * xx + coffs[7] * yy + coffs[8] * zz);\r\n return true;\r\n }\r\n\r\n /** Extend the range by the two transforms applied to xyz */\r\n public extendTransformTransformedXYZ(transformA: Transform, transformB: Transform, x: number, y: number, z: number) {\r\n const origin = transformB.origin;\r\n const coffs = transformB.matrix.coffs;\r\n this.extendTransformedXYZ(transformA,\r\n origin.x + coffs[0] * x + coffs[1] * y + coffs[2] * z,\r\n origin.y + coffs[3] * x + coffs[4] * y + coffs[5] * z,\r\n origin.z + coffs[6] * x + coffs[7] * y + coffs[8] * z);\r\n }\r\n\r\n /** Test if the box has high<low for any of x,y,z, condition. Note that a range around a single point is NOT null. */\r\n public get isNull(): boolean {\r\n return this.high.x < this.low.x\r\n || this.high.y < this.low.y\r\n || this.high.z < this.low.z;\r\n }\r\n\r\n /** Test if data has high<low for any of x,y,z, condition. Note that a range around a single point is NOT null. */\r\n public static isNull(data: LowAndHighXYZ): boolean {\r\n return data.high.x < data.low.x\r\n || data.high.y < data.low.y\r\n || data.high.z < data.low.z;\r\n }\r\n\r\n /** Test of the range contains a single point. */\r\n public get isSinglePoint(): boolean {\r\n return this.high.x === this.low.x\r\n && this.high.y === this.low.y\r\n && this.high.z === this.low.z;\r\n }\r\n\r\n /** Return the midpoint of the diagonal. No test for null range. */\r\n public get center(): Point3d { return this.low.interpolate(.5, this.high); }\r\n /** return the low x coordinate */\r\n public get xLow(): number { return this.low.x; }\r\n /** return the low y coordinate */\r\n public get yLow(): number { return this.low.y; }\r\n /** return the low z coordinate */\r\n public get zLow(): number { return this.low.z; }\r\n /** return the high x coordinate */\r\n public get xHigh(): number { return this.high.x; }\r\n /** return the high y coordinate */\r\n public get yHigh(): number { return this.high.y; }\r\n /** return the high z coordinate */\r\n public get zHigh(): number { return this.high.z; }\r\n\r\n /** Return the length of the box in the x direction */\r\n public xLength(): number { const a = this.high.x - this.low.x; return a > 0.0 ? a : 0.0; }\r\n\r\n /** Return the length of the box in the y direction */\r\n public yLength(): number { const a = this.high.y - this.low.y; return a > 0.0 ? a : 0.0; }\r\n\r\n /** Return the length of the box in the z direction */\r\n public zLength(): number { const a = this.high.z - this.low.z; return a > 0.0 ? a : 0.0; }\r\n\r\n /** Return the largest of the x,y, z lengths of the range. */\r\n public maxLength(): number { return Math.max(this.xLength(), this.yLength(), this.zLength()); }\r\n /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */\r\n public diagonal(result?: Vector3d): Vector3d { return this.low.vectorTo(this.high, result); }\r\n\r\n /** Return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */\r\n public diagonalFractionToPoint(fraction: number, result?: Point3d): Point3d { return this.low.interpolate(fraction, this.high, result); }\r\n\r\n /** Return a point given by fractional positions on the XYZ axes. This is done with no check for isNull !!! */\r\n public fractionToPoint(fractionX: number, fractionY: number, fractionZ: number, result?: Point3d): Point3d {\r\n return this.low.interpolateXYZ(fractionX, fractionY, fractionZ, this.high, result);\r\n }\r\n\r\n /** Return a point given by fractional positions on the XYZ axes.\r\n * Returns undefined if the range is null.\r\n */\r\n public localXYZToWorld(fractionX: number, fractionY: number, fractionZ: number, result?: Point3d): Point3d | undefined {\r\n if (this.isNull) return undefined;\r\n return this.low.interpolateXYZ(fractionX, fractionY, fractionZ, this.high, result);\r\n }\r\n\r\n /** Return a point given by fractional positions on the XYZ axes.\r\n * * Returns undefined if the range is null.\r\n */\r\n public localToWorld(xyz: XYAndZ, result?: Point3d): Point3d | undefined {\r\n return this.localXYZToWorld(xyz.x, xyz.y, xyz.z, result);\r\n }\r\n /** Replace fractional coordinates by world coordinates.\r\n * @returns false if null range.\r\n */\r\n public localToWorldArrayInPlace(points: Point3d[]): boolean {\r\n if (this.isNull) return false;\r\n for (const p of points)\r\n this.low.interpolateXYZ(p.x, p.y, p.z, this.high, p);\r\n return false;\r\n }\r\n /** Return fractional coordinates of point within the range.\r\n * * returns undefined if the range is null.\r\n * * returns undefined if any direction (x,y,z) has zero length\r\n */\r\n public worldToLocal(point: Point3d, result?: Point3d): Point3d | undefined {\r\n const ax = RangeBase.npcScaleFactor(this.low.x, this.high.x);\r\n const ay = RangeBase.npcScaleFactor(this.low.y, this.high.y);\r\n const az = RangeBase.npcScaleFactor(this.low.z, this.high.z);\r\n if (ax === 0.0 || ay === 0.0 || az === 0.0)\r\n return undefined;\r\n return Point3d.create((point.x - this.low.x) * ax, (point.y - this.low.y) * ay, (point.z - this.low.z) * az, result);\r\n }\r\n\r\n /** Return fractional coordinates of point within the range.\r\n * * returns undefined if the range is null.\r\n * * returns undefined if any direction (x,y,z) has zero length\r\n */\r\n public worldToLocalArrayInPlace(point: Point3d[]): boolean {\r\n const ax = RangeBase.npcScaleFactor(this.low.x, this.high.x);\r\n const ay = RangeBase.npcScaleFactor(this.low.y, this.high.y);\r\n const az = RangeBase.npcScaleFactor(this.low.z, this.high.z);\r\n if (ax === 0.0 || ay === 0.0 || az === 0.0)\r\n return false;\r\n for (const p of point)\r\n Point3d.create((p.x - this.low.x) * ax, (p.y - this.low.y) * ay, (p.z - this.low.z) * az, p);\r\n return true;\r\n }\r\n\r\n /** Return an array with the 8 corners on order wth \"x varies fastest, then y, then z\"\r\n * * points preallocated in `result` are reused if result.length >= 8.\r\n * * in reuse case, result.length is trimmed to 8\r\n */\r\n public corners(result?: Point3d[]): Point3d[] {\r\n if (result !== undefined && result.length >= 8) {\r\n result[0].set(this.low.x, this.low.y, this.low.z);\r\n result[1].set(this.high.x, this.low.y, this.low.z);\r\n result[2].set(this.low.x, this.high.y, this.low.z);\r\n result[3].set(this.high.x, this.high.y, this.low.z);\r\n result[4].set(this.low.x, this.low.y, this.high.z);\r\n result[5].set(this.high.x, this.low.y, this.high.z);\r\n result[6].set(this.low.x, this.high.y, this.high.z);\r\n result[7].set(this.high.x, this.high.y, this.high.z);\r\n result.length = 8;\r\n return result;\r\n }\r\n return [\r\n Point3d.create(this.low.x, this.low.y, this.low.z),\r\n Point3d.create(this.high.x, this.low.y, this.low.z),\r\n Point3d.create(this.low.x, this.high.y, this.low.z),\r\n Point3d.create(this.high.x, this.high.y, this.low.z),\r\n Point3d.create(this.low.x, this.low.y, this.high.z),\r\n Point3d.create(this.high.x, this.low.y, this.high.z),\r\n Point3d.create(this.low.x, this.high.y, this.high.z),\r\n Point3d.create(this.high.x, this.high.y, this.high.z)];\r\n }\r\n\r\n /** Return an array with indices of the corners of a face\r\n * * face 0 has negative x normal\r\n * * face 1 has positive x normal\r\n * * face 2 has negative y normal\r\n * * face 3 has positive y normal\r\n * * face 4 has negative z normal\r\n * * face 5 has positive z normal\r\n * * Any other value returns face 5\r\n * * faces are CCW as viewed from outside.\r\n */\r\n public static faceCornerIndices(index: number): number[] {\r\n if (index === 0)\r\n return [0, 4, 6, 2];\r\n if (index === 1)\r\n return [1, 3, 7, 5];\r\n if (index === 2)\r\n return [0, 1, 5, 4];\r\n if (index === 3)\r\n return [3, 2, 6, 7];\r\n if (index === 4)\r\n return [0, 2, 3, 1];\r\n return [4, 5, 7, 6];\r\n }\r\n /**\r\n * Return a rectangle that is the cross section as viewed from above (z direction) and at zFraction\r\n * @param zFraction plane altitude within the 0..1 z fraction range\r\n * @param upwardNormal true for CCW as viewed from above\r\n * @param addClosure true to add closure edge back to the start\r\n * @returns\r\n */\r\n public rectangleXY(zFraction: number = 0.0, upwardNormal: boolean = true, addClosure: boolean = true): Point3d[] | undefined{\r\n if (this.isNull)\r\n return undefined;\r\n const points: Point3d[] = [\r\n this.fractionToPoint(0, 0, zFraction),\r\n this.fractionToPoint(1, 0, zFraction),\r\n this.fractionToPoint(1, 1, zFraction),\r\n this.fractionToPoint(0, 1, zFraction),\r\n ];\r\n if (addClosure)\r\n points.push(points[0].clone());\r\n\r\n if (!upwardNormal)\r\n points.reverse();\r\n return points;\r\n }\r\n\r\n /** Return the largest absolute value among any coordinates in the box corners. */\r\n public maxAbs(): number {\r\n if (this.isNull)\r\n return 0.0;\r\n return Math.max(this.low.maxAbs(), this.high.maxAbs());\r\n }\r\n\r\n /** returns true if the x direction size is nearly zero */\r\n public get isAlmostZeroX(): boolean { return Geometry.isSmallMetricDistance(this.xLength()); }\r\n /** returns true if the y direction size is nearly zero */\r\n public get isAlmostZeroY(): boolean { return Geometry.isSmallMetricDistance(this.yLength()); }\r\n /** returns true if the z direction size is nearly zero */\r\n public get isAlmostZeroZ(): boolean { return Geometry.isSmallMetricDistance(this.zLength()); }\r\n\r\n /** Test if a point given as x,y,z is within the range. */\r\n public containsXYZ(x: number, y: number, z: number): boolean {\r\n return x >= this.low.x\r\n && y >= this.low.y\r\n && z >= this.low.z\r\n && x <= this.high.x\r\n && y <= this.high.y\r\n && z <= this.high.z;\r\n }\r\n\r\n /** Test if a point given as x,y is within the range. (Ignoring z of range) */\r\n public containsXY(x: number, y: number): boolean {\r\n return x >= this.low.x\r\n && y >= this.low.y\r\n && x <= this.high.x\r\n && y <= this.high.y;\r\n }\r\n /** Test if a point is within the range. */\r\n public containsPoint(point: Point3d): boolean { return this.containsXYZ(point.x, point.y, point.z); }\r\n\r\n /** Test if the x,y coordinates of a point are within the range. */\r\n public containsPointXY(point: Point3d): boolean {\r\n return point.x >= this.low.x\r\n && point.y >= this.low.y\r\n && point.x <= this.high.x\r\n && point.y <= this.high.y;\r\n }\r\n\r\n /** Test of other range is within this range */\r\n public containsRange(other: Range3d): boolean {\r\n return other.low.x >= this.low.x\r\n && other.low.y >= this.low.y\r\n && other.low.z >= this.low.z\r\n && other.high.x <= this.high.x\r\n && other.high.y <= this.high.y\r\n && other.high.z <= this.high.z;\r\n }\r\n\r\n /** Test if there is any intersection with other range */\r\n public intersectsRange(other: Range3d): boolean {\r\n return !(this.low.x > other.high.x\r\n || this.low.y > other.high.y\r\n || this.low.z > other.high.z\r\n || other.low.x > this.high.x\r\n || other.low.y > this.high.y\r\n || other.low.z > this.high.z);\r\n }\r\n\r\n /** Test if there is any intersection with other range */\r\n public intersectsRangeXY(other: Range3d): boolean {\r\n return !(this.low.x > other.high.x\r\n || this.low.y > other.high.y\r\n || other.low.x > this.high.x\r\n || other.low.y > this.high.y);\r\n }\r\n /** Return 0 if the point is within the range, otherwise the distance to the closest face or corner */\r\n public distanceToPoint(point: XYAndZ): number {\r\n if (this.isNull)\r\n return RangeBase._EXTREME_POSITIVE;\r\n return Math.min(\r\n Geometry.hypotenuseXYZ(\r\n RangeBase.coordinateToRangeAbsoluteDistance(point.x, this.low.x, this.high.x),\r\n RangeBase.coordinateToRangeAbsoluteDistance(point.y, this.low.y, this.high.y),\r\n RangeBase.coordinateToRangeAbsoluteDistance(point.z, this.low.z, this.high.z)),\r\n RangeBase._EXTREME_POSITIVE);\r\n }\r\n\r\n /** returns 0 if the ranges have any overlap, otherwise the shortest absolute distance from one to the other. */\r\n public distanceToRange(other: Range3d): number {\r\n return Math.min(\r\n Geometry.hypotenuseXYZ(\r\n RangeBase.rangeToRangeAbsoluteDistance(this.low.x, this.high.x, other.low.x, other.high.x),\r\n RangeBase.rangeToRangeAbsoluteDistance(this.low.y, this.high.y, other.low.y, other.high.y),\r\n RangeBase.rangeToRangeAbsoluteDistance(this.low.z, this.high.z, other.low.z, other.high.z)),\r\n RangeBase._EXTREME_POSITIVE);\r\n }\r\n\r\n /** Expand this range by distances a (possibly signed) in all directions */\r\n public extendXYZ(x: number, y: number, z: number): void {\r\n if (x < this.low.x) this.low.x = x;\r\n if (x > this.high.x) this.high.x = x;\r\n\r\n if (y < this.low.y) this.low.y = y;\r\n if (y > this.high.y) this.high.y = y;\r\n\r\n if (z < this.low.z) this.low.z = z;\r\n if (z > this.high.z) this.high.z = z;\r\n }\r\n\r\n /** Expand this range by distances a in only the x direction. */\r\n public extendXOnly(x: number): void {\r\n if (x < this.low.x) this.low.x = x;\r\n if (x > this.high.x) this.high.x = x;\r\n }\r\n /** Expand this range by distances a in only the x direction. */\r\n public extendYOnly(y: number): void {\r\n if (y < this.low.y) this.low.y = y;\r\n if (y > this.high.y) this.high.y = y;\r\n }\r\n /** Expand this range by distances a in only the x direction. */\r\n public extendZOnly(z: number): void {\r\n if (z < this.low.z) this.low.z = z;\r\n if (z > this.high.z) this.high.z = z;\r\n }\r\n /** Expand one component of this range */\r\n public extendSingleAxis(a: number, axisIndex: AxisIndex) {\r\n if (axisIndex === AxisIndex.X)\r\n this.extendXOnly(a);\r\n if (axisIndex === AxisIndex.Y)\r\n this.extendYOnly(a);\r\n if (axisIndex === AxisIndex.Z)\r\n this.extendZOnly(a);\r\n }\r\n /** Expand this range by distances a (weighted and possibly signed) in all directions */\r\n public extendXYZW(x: number, y: number, z: number, w: number): void {\r\n if (!Geometry.isSmallMetricDistance(w))\r\n this.extendXYZ(x / w, y / w, z / w);\r\n }\r\n /** Expand this range to include a point. */\r\n public extendPoint(point: Point3d, transform?: Transform): void {\r\n if (transform) {\r\n this.extendTransformedXYZ(transform, point.x, point.y, point.z);\r\n } else {\r\n this.extendXYZ(point.x, point.y, point.z);\r\n }\r\n }\r\n\r\n /** Expand this range to include a transformed point. */\r\n public extendTransformedPoint(transform: Transform, point: Point3d): void {\r\n this.extendTransformedXYZ(transform, point.x, point.y, point.z);\r\n }\r\n\r\n /** Expand this range to include a range. */\r\n public extendRange(other: LowAndHighXYZ): void {\r\n if (!Range3d.isNull(other)) {\r\n this.extendXYZ(other.low.x, other.low.y, other.low.z);\r\n this.extendXYZ(other.high.x, other.high.y, other.high.z);\r\n }\r\n }\r\n\r\n /** Return the intersection of ranges. */\r\n public intersect(other: Range3d, result?: Range3d): Range3d {\r\n if (!this.intersectsRange(other))\r\n return Range3d.createNull(result);\r\n return Range3d.createXYZXYZOrCorrectToNull\r\n (\r\n Math.max(this.low.x, other.low.x), Math.max(this.low.y, other.low.y), Math.max(this.low.z, other.low.z),\r\n Math.min(this.high.x, other.high.x), Math.min(this.high.y, other.high.y), Math.min(this.high.z, other.high.z),\r\n result);\r\n\r\n }\r\n\r\n /** Return the union of ranges. */\r\n public union(other: Range3d, result?: Range3d): Range3d {\r\n if (this.isNull)\r\n return other.clone(result);\r\n if (other.isNull)\r\n return this.clone(result as this);\r\n // we trust null ranges have EXTREME values, so a null in either input leads to expected results.\r\n return Range3d.createXYZXYZOrCorrectToNull\r\n (\r\n Math.min(this.low.x, other.low.x), Math.min(this.low.y, other.low.y), Math.min(this.low.z, other.low.z),\r\n Math.max(this.high.x, other.high.x), Math.max(this.high.y, other.high.y), Math.max(this.high.z, other.high.z),\r\n result);\r\n }\r\n /**\r\n * move low and high points by scaleFactor around the center point.\r\n * @param scaleFactor scale factor applied to low, high distance from center.\r\n */\r\n public scaleAboutCenterInPlace(scaleFactor: number) {\r\n if (!this.isNull) {\r\n scaleFactor = Math.abs(scaleFactor);\r\n // do the scalar stuff to avoid making a temporary object ....\r\n const xMid = 0.5 * (this.low.x + this.high.x);\r\n const yMid = 0.5 * (this.low.y + this.high.y);\r\n const zMid = 0.5 * (this.low.z + this.high.z);\r\n this.high.x = Geometry.interpolate(xMid, scaleFactor, this.high.x);\r\n this.high.y = Geometry.interpolate(yMid, scaleFactor, this.high.y);\r\n this.high.z = Geometry.interpolate(zMid, scaleFactor, this.high.z);\r\n this.low.x = Geometry.interpolate(xMid, scaleFactor, this.low.x);\r\n this.low.y = Geometry.interpolate(yMid, scaleFactor, this.low.y);\r\n this.low.z = Geometry.interpolate(zMid, scaleFactor, this.low.z);\r\n }\r\n }\r\n\r\n /**\r\n * move all limits by a fixed amount.\r\n * * positive delta expands the range size\r\n * * negative delta reduces the range size\r\n * * if any dimension reduces below zero size, the whole range becomes null\r\n * @param delta shift to apply.\r\n */\r\n public expandInPlace(delta: number): void {\r\n this.setDirect(\r\n this.low.x - delta, this.low.y - delta, this.low.z - delta,\r\n this.high.x + delta, this.high.y + delta, this.high.z + delta, true);\r\n }\r\n\r\n /** Create a local to world transform from this range. */\r\n public getLocalToWorldTransform(result?: Transform): Transform {\r\n return Transform.createOriginAndMatrix(Point3d.create(this.low.x, this.low.y, this.low.z), Matrix3d.createRowValues(\r\n this.high.x - this.low.x, 0, 0,\r\n 0, this.high.y - this.low.y, 0,\r\n 0, 0, this.high.z - this.low.z,\r\n ), result);\r\n }\r\n\r\n /**\r\n * Creates an NPC to world transformation to go from 000...111 to the globally aligned cube with diagonally opposite corners that are the\r\n * min and max of this range. The diagonal component for any degenerate direction is 1.\r\n */\r\n public getNpcToWorldRangeTransform(result?: Transform): Transform {\r\n const transform = this.getLocalToWorldTransform(result);\r\n const matrix = transform.matrix;\r\n if (matrix.coffs[0] === 0)\r\n matrix.coffs[0] = 1;\r\n if (matrix.coffs[4] === 0)\r\n matrix.coffs[4] = 1;\r\n if (matrix.coffs[8] === 0)\r\n matrix.coffs[8] = 1;\r\n return transform;\r\n }\r\n\r\n /** Ensure that the length of each dimension of this AxisAlignedBox3d is at least a minimum size. If not, expand to minimum about the center.\r\n * @param min The minimum length for each dimension.\r\n */\r\n public ensureMinLengths(min: number = .001) {\r\n let size = (min - this.xLength()) / 2.0;\r\n if (size > 0) {\r\n this.low.x -= size;\r\n this.high.x += size;\r\n }\r\n size = (min - this.yLength()) / 2.0;\r\n if (size > 0) {\r\n this.low.y -= size;\r\n this.high.y += size;\r\n }\r\n size = (min - this.zLength()) / 2.0;\r\n if (size > 0) {\r\n this.low.z -= size;\r\n this.high.z += size;\r\n }\r\n }\r\n}\r\n/**\r\n * Range on a 1d axis\r\n * * `low` and `high` members are always non-null objects\r\n * * having `low > high` indicates an empty range.\r\n * * the range contains x values for which `low <= x <= high`\r\n * @public\r\n */\r\nexport class Range1d extends RangeBase {\r\n /** low point coordinates. DO NOT MODIFY FROM OUTSIDE THIS CLASS */\r\n public low: number;\r\n /** high point coordinates. DO NOT MODIFY FROM OUTSIDE THIS CLASS */\r\n public high: number;\r\n /** reset the low and high to null range state. */\r\n public setNull() {\r\n this.low = RangeBase._EXTREME_POSITIVE;\r\n this.high = RangeBase._EXTREME_NEGATIVE;\r\n }\r\n // internal use only -- directly set all coordinates, test only if directed.\r\n private setDirect(low: number, high: number, correctToNull: boolean = false) {\r\n this.low = low;\r\n this.high = high;\r\n if (correctToNull && low > high)\r\n this.setNull();\r\n }\r\n // explicit ctor - no enforcement of value relationships\r\n private constructor(\r\n low: number = RangeBase._EXTREME_POSITIVE,\r\n high: number = RangeBase._EXTREME_NEGATIVE) {\r\n super();\r\n this.low = low; this.high = high; // duplicates set_direct, but compiler is not convinced they are set.\r\n this.setDirect(low, high);\r\n }\r\n /** Returns true if this and other have equal low and high parts, or both are null ranges. */\r\n public isAlmostEqual(other: Readonly<Range1d>): boolean {\r\n return (Geometry.isSameCoordinate(this.low, other.low) && Geometry.isSameCoordinate(this.high, other.high))\r\n || (this.isNull && other.isNull);\r\n }\r\n /** copy contents from other Range1d. */\r\n public setFrom(other: Range1d) { this.low = other.low; this.high = other.high; }\r\n /** Convert from a JSON object of one of these forms:\r\n *\r\n * * Any array of numbers: `[value,value, value]`\r\n * * An object with low and high as properties: `{low:lowValue, high: highValue}`\r\n */\r\n public setFromJSON(json: Range1dProps): void {\r\n this.setNull();\r\n if (Array.isArray(json)) {\r\n let value;\r\n for (value of json) {\r\n if (Number.isFinite(value))\r\n this.extendX(value);\r\n }\r\n } else if (json.low !== undefined && Number.isFinite(json.low) && json.high !== undefined && Number.isFinite(json.high)) {\r\n this.extendX(json.low);\r\n this.extendX(json.high);\r\n }\r\n }\r\n /** Use `setFromJSON` to parse `json` into a new Range1d instance. */\r\n public static fromJSON<T extends Range1d>(json?: Range1dProps): T {\r\n const result = new this() as T;\r\n if (json)\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n /** Convert to a JSON object of form\r\n * ```\r\n * [lowValue,highValue]\r\n * ```\r\n */\r\n public toJSON(): Range1dProps { if (this.isNull) return new Array<number>(); else return [this.low, this.high]; }\r\n\r\n /** return a new Range1d with contents of this.\r\n * @param result optional result.\r\n */\r\n public clone(result?: this): this {\r\n result = result ? result : new (this.constructor as any)() as this;\r\n result.setDirect(this.low, this.high);\r\n return result;\r\n }\r\n\r\n /** return a new Range1d with contents of this.\r\n * @param result optional result.\r\n */\r\n public static createFrom<T extends Range1d>(other: T, result?: T) {\r\n result = result ? result : new this() as T;\r\n result.setDirect(other.low, other.high);\r\n return result;\r\n }\r\n\r\n /** Create a range with no content.\r\n * @param result optional result.\r\n */\r\n public static createNull<T extends Range1d>(result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setNull();\r\n return result;\r\n }\r\n\r\n /** create a range with `delta` added to low and high\r\n * * If `this` is a null range, return a null range.\r\n */\r\n public cloneTranslated(delta: number, result?: Range1d): Range1d {\r\n result = result ? result : this.clone();\r\n if (!result.isNull) {\r\n result.low += delta;\r\n result.high += delta;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Set this range to be a single value.\r\n * @param x value to use as both low and high.\r\n */\r\n public setX(x: number) { this.low = this.high = x; }\r\n\r\n /** Create a single point box */\r\n public static createX<T extends Range1d>(x: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(x, x);\r\n return result;\r\n }\r\n\r\n /**\r\n * Set this range to (min(x0,x1), max(x0,x1))\r\n * @param x0 first value\r\n * @param x1 second value\r\n */\r\n public setXXUnordered(x0: number, x1: number) {\r\n if (x0 <= x1) {\r\n this.low = x0; this.high = x1;\r\n } else {\r\n this.low = x1; this.high = x0;\r\n }\r\n }\r\n public get isExact01(): boolean {\r\n return this.low === 0.0 && this.high === 1.0;\r\n}\r\n /** Create a box from two values. Values are reversed if needed\r\n * @param xA first value\r\n * @param xB second value\r\n */\r\n public static createXX<T extends Range1d>(xA: number, xB: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB),\r\n Math.max(xA, xB));\r\n return result;\r\n }\r\n\r\n /** Create a box from two values, but null range if the values are reversed\r\n * @param xA first value\r\n * @param xB second value\r\n */\r\n public static createXXOrCorrectToNull<T extends Range1d>(xA: number, xB: number, result?: T): T {\r\n if (xB < xA)\r\n return Range1d.createNull(result);\r\n\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB),\r\n Math.max(xA, xB));\r\n return result;\r\n }\r\n\r\n /** Create a range containing all the values in an array.\r\n * @param values array of points to be contained in the range.\r\n * @param result optional result.\r\n */\r\n public static createArray<T extends Range1d>(values: Float64Array | number[], result?: T): T {\r\n result = result ? result : new this() as T;\r\n let x;\r\n for (x of values)\r\n result.extendX(x);\r\n return result;\r\n }\r\n /** extend to include an array of values */\r\n public extendArray(values: Float64Array | number[]) {\r\n let x;\r\n for (x of values)\r\n this.extendX(x);\r\n }\r\n\r\n /** extend to include `values` at indices `beginIndex <= i < endIndex]`\r\n * @param values array of values\r\n * @param beginIndex first index to include\r\n * @param numValue number of values to access\r\n */\r\n public extendArraySubset(values: Float64Array | number[], beginIndex: number, numValue: number) {\r\n const endIndex = beginIndex + numValue;\r\n for (let i = beginIndex; i < endIndex; i++)\r\n this.extendX(values[i]);\r\n }\r\n\r\n /** Test if the box has high<low Note that a range around a single point is NOT null. */\r\n public get isNull(): boolean {\r\n return this.high < this.low;\r\n }\r\n\r\n /** Test of the range contains a single point. */\r\n public get isSinglePoint(): boolean {\r\n return this.high === this.low;\r\n }\r\n\r\n /** Return the length of the range in the x direction */\r\n public length(): number { const a = this.high - this.low; return a > 0.0 ? a : 0.0; }\r\n\r\n /** return a point given by fractional positions within the range. This is done with no check for isNull !!! */\r\n public fractionToPoint(fraction: number): number {\r\n return Geometry.interpolate(this.low, fraction, this.high);\r\n }\r\n\r\n /** Return the largest absolute value among the box limits. */\r\n public maxAbs(): number {\r\n if (this.isNull)\r\n return 0.0;\r\n return Math.max(Math.abs(this.low), Math.abs(this.high));\r\n }\r\n\r\n /** Test if the x direction size is nearly zero */\r\n public get isAlmostZeroLength(): boolean { return Geometry.isSmallMetricDistance(this.length()); }\r\n\r\n /** Test if a number is within the range. */\r\n public containsX(x: number): boolean {\r\n return x >= this.low\r\n && x <= this.high;\r\n }\r\n\r\n /** Test of other range is within this range */\r\n public containsRange(other: Range1d): boolean {\r\n return other.low >= this.low\r\n && other.high <= this.high;\r\n }\r\n\r\n /** Test if there is any intersection with other range */\r\n public intersectsRange(other: Range1d): boolean {\r\n return !(this.low > other.high || other.low > this.high);\r\n }\r\n/**\r\n * Intersect this range with a range defined by parameters x0 and x1\r\n * * For x1 > x0, that range is null, and the intersection is null.\r\n * * For x0 <= x1, the input is a non-null range.\r\n * * The intersection range replaces the contents of this.\r\n *\r\n */\r\n public intersectRangeXXInPlace(x0: number, x1: number){\r\n if (x1 < x0 || x1 < this.low || x0 > this.high) {\r\n this.setNull();\r\n } else {\r\n if (x1 < this.high)\r\n this.high = x1;\r\n if (x0 > this.low)\r\n this.low = x0;\r\n }\r\n }\r\n\r\n /** returns 0 if the ranges have any overlap, otherwise the shortest absolute distance from one to the other. */\r\n public distanceToRange(other: Range1d): number {\r\n return RangeBase.rangeToRangeAbsoluteDistance(this.low, this.high, other.low, other.high);\r\n }\r\n\r\n /** Return 0 if the point is within the range, otherwise the (unsigned) distance to the closest face or corner */\r\n public distanceToX(x: number): number {\r\n if (this.isNull)\r\n return RangeBase._EXTREME_POSITIVE;\r\n return RangeBase.coordinateToRangeAbsoluteDistance(x, this.low, this.high);\r\n }\r\n\r\n /** Expand this range by a single coordinate */\r\n public extendX(x: number): void {\r\n if (x < this.low) this.low = x;\r\n if (x > this.high) this.high = x;\r\n }\r\n\r\n /** Expand this range to include a range. */\r\n public extendRange(other: Range1d): void {\r\n if (!other.isNull) {\r\n this.extendX(other.low);\r\n this.extendX(other.high);\r\n }\r\n }\r\n\r\n /** Extend only the low limit to x. Return true if the low limit is changed. */\r\n public extendLow(x: number): boolean {\r\n if (this.isNull || x < this.low) {\r\n this.low = x;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Extend only the high limit to x. Return true if the high limit is changed. */\r\n public extendHigh(x: number): boolean {\r\n if (this.isNull || x > this.high) {\r\n this.high = x;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Return the intersection of ranges. */\r\n public intersect(other: Range1d, result?: Range1d): Range1d {\r\n if (!this.intersectsRange(other))\r\n return Range1d.createNull(result);\r\n\r\n return Range1d.createXXOrCorrectToNull\r\n (\r\n Math.max(this.low, other.low),\r\n Math.min(this.high, other.high),\r\n result);\r\n\r\n }\r\n\r\n /** Return the union of ranges. */\r\n /** Return the intersection of ranges. */\r\n public union(other: Range1d, result?: Range1d): Range1d {\r\n // we trust null ranges have EXTREME values, so a null in either input leads to expected results.\r\n return Range1d.createXX\r\n (\r\n Math.min(this.low, other.low),\r\n Math.max(this.high, other.high),\r\n result);\r\n }\r\n /**\r\n * move low and high points by scaleFactor around the center point.\r\n * @param scaleFactor scale factor applied to low, high distance from center.\r\n */\r\n public scaleAboutCenterInPlace(scaleFactor: number) {\r\n if (!this.isNull) {\r\n scaleFactor = Math.abs(scaleFactor);\r\n // do the scalar stuff to avoid making a temporary object ....\r\n const xMid = 0.5 * (this.low + this.high);\r\n this.high = Geometry.interpolate(xMid, scaleFactor, this.high);\r\n this.low = Geometry.interpolate(xMid, scaleFactor, this.low);\r\n }\r\n }\r\n /**\r\n * move all limits by a fixed amount.\r\n * * positive delta expands the range size\r\n * * negative delta reduces the range size\r\n * * if any dimension reduces below zero size, the whole range becomes null\r\n * @param delta shift to apply.\r\n */\r\n public expandInPlace(delta: number): void {\r\n this.setDirect(\r\n this.low - delta,\r\n this.high + delta, true);\r\n }\r\n /**\r\n * clip this range to a linear half space condition\r\n * * if `limitA > limitB` the limit space is empty\r\n * * make this range null\r\n * * return false;\r\n * * otherwise (i.e `limitA <= limitB`)\r\n * * solve `a + u * f = limitA' and `a + u * f = limitA`\r\n * * if unable to solve (i.e. u near zero), `a` alone determines whether to (a) leave this interval unchanged or (b) reduce to nothing.\r\n * * the `f` values are an interval in the space of this `Range1d`\r\n * * restrict the range to that interval (i.e intersect existing (low,high) with the fraction interval.\r\n * * return true if the range is non-null after the clip.\r\n * @param a constant of linear map\r\n * @param u coefficient of linear map\r\n * @param limitA crossing value, assumed in range relation with limitB\r\n * @param limitB crossing value, assumed in range relation with limitB\r\n * @param limitIsHigh true if the limit is an upper limit on mapped values.\r\n *\r\n */\r\n public clipLinearMapToInterval(a: number, u: number, limitA: number, limitB: number): boolean {\r\n // f = (limit - a) / u\r\n if (limitB < limitA || this.high < this.low)\r\n return false;\r\n const fractionA = Geometry.conditionalDivideFraction(limitA - a, u);\r\n const fractionB = Geometry.conditionalDivideFraction(limitB - a, u);\r\n // single point case\r\n if (fractionA === undefined || fractionB === undefined) {\r\n if (limitA <= a && a <= limitB)\r\n return true;\r\n this.setNull();\r\n return false;\r\n }\r\n\r\n if (fractionA < fractionB) {\r\n if (fractionA > this.low)\r\n this.low = fractionA;\r\n if (fractionB < this.high)\r\n this.high = fractionB;\r\n } else {\r\n if (fractionA < this.high)\r\n this.high = fractionA;\r\n if (fractionB > this.low)\r\n this.low = fractionB;\r\n }\r\n if (this.high < this.low) {\r\n this.setNull();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * Range box in xy plane\r\n * @public\r\n */\r\nexport class Range2d extends RangeBase implements LowAndHighXY {\r\n // low and high are always non-null objects\r\n // any direction of low.q > high.q is considered a null range.\r\n /** low point coordinates. DO NOT MODIFY FROM OUTSIDE THIS CLASS */\r\n public low: Point2d;\r\n /** low point coordinates. DO NOT MODIFY FROM OUTSIDE THIS CLASS */\r\n public high: Point2d;\r\n\r\n /** reset the low and high to null range state. */\r\n public setNull() {\r\n this.low.x = RangeBase._EXTREME_POSITIVE;\r\n this.low.y = RangeBase._EXTREME_POSITIVE;\r\n this.high.x = RangeBase._EXTREME_NEGATIVE;\r\n this.high.y = RangeBase._EXTREME_NEGATIVE;\r\n }\r\n /** Flatten the low and high coordinates of any json object with low.x .. high.y into an array of 4 doubles */\r\n public static toFloat64Array(val: LowAndHighXY): Float64Array { return Float64Array.of(val.low.x, val.low.y, val.high.x, val.high.y); }\r\n /** Flatten the low and high coordinates of this instance into an array of 4 doubles */\r\n public toFloat64Array(): Float64Array { return Range2d.toFloat64Array(this); }\r\n /**\r\n * Construct a Range2d from an array of double-precision values\r\n * @param f64 the array, which should contain exactly 4 values in this order: lowX, lowY, highX, highY\r\n * @return a new Range2d object\r\n */\r\n public static fromFloat64Array<T extends Range2d>(f64: Float64Array): T {\r\n if (f64.length !== 4)\r\n throw new Error(\"invalid array\");\r\n return new this(f64[0], f64[1], f64[2], f64[3]) as T;\r\n }\r\n /**\r\n * Construct a Range2d from an un-typed array. This mostly useful when interpreting ECSQL query results of the 'blob' type, where you know that that result is a Range3d.\r\n * @param buffer untyped array\r\n * @return a new Range2d object\r\n */\r\n public static fromArrayBuffer<T extends Range2d>(buffer: ArrayBuffer): T { return this.fromFloat64Array(new Float64Array(buffer)); }\r\n\r\n // explicit ctor - no enforcement of value relationships\r\n public constructor(lowX = Range2d._EXTREME_POSITIVE, lowY = Range2d._EXTREME_POSITIVE, highX = Range2d._EXTREME_NEGATIVE, highY = Range2d._EXTREME_NEGATIVE) {\r\n super();\r\n this.low = Point2d.create(lowX, lowY);\r\n this.high = Point2d.create(highX, highY);\r\n }\r\n /** Returns true if this and other have equal low and high parts, or both are null ranges. */\r\n public isAlmostEqual(other: Range2d): boolean {\r\n return (this.low.isAlmostEqual(other.low) && this.high.isAlmostEqual(other.high))\r\n || (this.isNull && other.isNull);\r\n }\r\n /** copy all content from any `other` that has low and high xy data. */\r\n public setFrom(other: LowAndHighXY) {\r\n this.low.set(other.low.x, other.low.y);\r\n this.high.set(other.high.x, other.high.y);\r\n }\r\n /** create a new Range2d from any `other` that has low and high xy data. */\r\n public static createFrom<T extends Range2d>(other: LowAndHighXY, result?: T): T {\r\n if (result) { result.setFrom(other); return result; }\r\n return this.createXYXYOrCorrectToNull(other.low.x, other.low.y, other.high.x, other.high.y, result) as T;\r\n }\r\n /** treat any array of numbers as numbers to be inserted !!! */\r\n public setFromJSON(json: Range2dProps): void {\r\n this.setNull();\r\n if (Array.isArray(json)) {\r\n const point = Point2d.create();\r\n for (const value of json) {\r\n point.setFromJSON(value);\r\n this.extendPoint(point);\r\n }\r\n return;\r\n }\r\n const low = Point2d.fromJSON(json.low);\r\n const high = Point2d.fromJSON(json.high);\r\n if (!RangeBase.isExtremePoint2d(low) && !RangeBase.isExtremePoint2d(high)) {\r\n this.extendPoint(low);\r\n this.extendPoint(high);\r\n }\r\n }\r\n /** Freeze this instance (and its members) so it is read-only */\r\n public freeze(): Readonly<this> { this.low.freeze(); this.high.freeze(); return Object.freeze(this); }\r\n /** return json array with two points as produced by `Point2d.toJSON` */\r\n public toJSON(): Range2dProps { return this.isNull ? [] : [this.low.toJSON(), this.high.toJSON()]; }\r\n /** Use `setFromJSON` to parse `json` into a new Range2d instance. */\r\n public static fromJSON<T extends Range2d>(json?: Range2dProps): T {\r\n const result = new this() as T;\r\n if (json)\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n // internal use only -- directly set all coordinates, without tests.\r\n private setDirect(xA: number, yA: number, xB: number, yB: number, correctToNull: boolean) {\r\n this.low.x = xA;\r\n this.low.y = yA;\r\n\r\n this.high.x = xB;\r\n this.high.y = yB;\r\n if (correctToNull) {\r\n if (this.low.x > this.high.x || this.low.y > this.high.y)\r\n this.setNull();\r\n }\r\n }\r\n /** return a clone of this range (or copy to optional result) */\r\n public clone(result?: this): this {\r\n result = result ? result : new (this.constructor as any)() as this;\r\n result.setDirect(this.low.x, this.low.y, this.high.x, this.high.y, false);\r\n return result;\r\n }\r\n /** create a range with no content. */\r\n public static createNull<T extends Range2d>(result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setNull();\r\n return result;\r\n }\r\n /** Set low and hight to a single xy value. */\r\n public setXY(x: number, y: number) {\r\n this.low.x = this.high.x = x;\r\n this.low.y = this.high.y = y;\r\n }\r\n\r\n /** Create a single point box */\r\n public static createXY<T extends Range2d>(x: number, y: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(x, y, x, y, false);\r\n return result;\r\n }\r\n\r\n /** Create a box with 2 pairs of xy candidates. Theses are compared and shuffled as needed for the box. */\r\n public static createXYXY<T extends Range2d>(xA: number, yA: number, xB: number, yB: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB), Math.min(yA, yB),\r\n Math.max(xA, xB), Math.max(yA, yB), false);\r\n return result;\r\n }\r\n /** Create a box with 3 pairs of xy candidates. Theses are compared and shuffled as needed for the box. */\r\n public static createXYXYXY<T extends Range2d>(xA: number, yA: number, xB: number, yB: number, xC: number, yC: number, result?: T): T {\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB, xC), Math.min(yA, yB, yC),\r\n Math.max(xA, xB, xC), Math.max(yA, yB, yC), false);\r\n return result;\r\n }\r\n /** Create a box with 2 pairs of xy candidates. If any direction has order flip, create null. */\r\n public static createXYXYOrCorrectToNull<T extends Range2d>(xA: number, yA: number, xB: number, yB: number, result?: T): T {\r\n if (xA > xB || yA > yB)\r\n return this.createNull(result);\r\n result = result ? result : new this() as T;\r\n result.setDirect(\r\n Math.min(xA, xB), Math.min(yA, yB),\r\n Math.max(xA, xB), Math.max(yA, yB), true);\r\n return result;\r\n }\r\n\r\n /** Create a range around an array of points. */\r\n public static createArray<T extends Range2d>(points: Point2d[], result?: T): T {\r\n result = result ? result : new this() as T;\r\n let point;\r\n for (point of points)\r\n result.extendPoint(point);\r\n return result;\r\n }\r\n\r\n /** Test if the box has high<low for any of x,y, condition. Note that a range around a single point is NOT null. */\r\n public get isNull(): boolean {\r\n return this.high.x < this.low.x\r\n || this.high.y < this.low.y;\r\n }\r\n\r\n /** Test if the box has high strictly less than low for any of x,y, condition. Note that a range around a single point is NOT null. */\r\n public static isNull(range: LowAndHighXY): boolean {\r\n return range.high.x < range.low.x\r\n || range.high.y < range.low.y;\r\n }\r\n\r\n /** Test of the range contains a single point. */\r\n public get isSinglePoint(): boolean {\r\n return this.high.x === this.low.x\r\n && this.high.y === this.low.y;\r\n }\r\n /** Return the midpoint of the diagonal. No test for null range. */\r\n public get center(): Point2d { return this.low.interpolate(.5, this.high); }\r\n /** return the low x coordinate */\r\n public get xLow(): number { return this.low.x; }\r\n /** return the low y coordinate */\r\n public get yLow(): number { return this.low.y; }\r\n /** return the high x coordinate */\r\n public get xHigh(): number { return this.high.x; }\r\n /** return the high y coordinate */\r\n public get yHigh(): number { return this.high.y; }\r\n\r\n /** Length of the box in the x direction */\r\n public xLength(): number { const a = this.high.x - this.low.x; return a > 0.0 ? a : 0.0; }\r\n\r\n /** Length of the box in the y direction */\r\n public yLength(): number { const a = this.high.y - this.low.y; return a > 0.0 ? a : 0.0; }\r\n\r\n /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */\r\n public diagonal(result?: Vector2d): Vector2d { return this.low.vectorTo(this.high, result); }\r\n\r\n /** return the diagonal vector. There is no check for isNull -- if the range isNull(), the vector will have very large negative coordinates. */\r\n public diagonalFractionToPoint(fraction: number, result?: Point2d): Point2d { return this.low.interpolate(fraction, this.high, result); }\r\n\r\n /** return a point given by fractional positions on the XY axes. This is done with no check for isNull !!! */\r\n public fractionToPoint(fractionX: number, fractionY: number, result?: Point2d): Point2d {\r\n return this.low.interpolateXY(fractionX, fractionY, this.high, result);\r\n }\r\n /** Return an array with the 4 corners.\r\n * * if asLoop is false, 4 corners are \"x varies fastest, then y\"\r\n * * if asLoop is true, 5 corners are in CCW order WITH CLOSURE\r\n */\r\n public corners3d(asLoop: boolean = false, z: number = 0): Point3d[] {\r\n if (asLoop)\r\n return [\r\n Point3d.create(this.low.x, this.low.y, z),\r\n Point3d.create(this.high.x, this.low.y, z),\r\n Point3d.create(this.high.x, this.high.y, z),\r\n Point3d.create(this.low.x, this.high.y, z),\r\n Point3d.create(this.low.x, this.low.y, z)];\r\n\r\n return [\r\n Point3d.create(this.low.x, this.low.y, z),\r\n Point3d.create(this.high.x, this.low.y, z),\r\n Point3d.create(this.low.x, this.high.y, z),\r\n Point3d.create(this.high.x, this.high.y, z)];\r\n }\r\n\r\n /** Largest absolute value among any coordinates in the box corners. */\r\n public maxAbs(): number {\r\n if (this.isNull)\r\n return 0.0;\r\n return Math.max(this.low.maxAbs(), this.high.maxAbs());\r\n }\r\n\r\n /** Test if the x direction size is nearly zero */\r\n public get isAlmostZeroX(): boolean { return Geometry.isSmallMetricDistance(this.xLength()); }\r\n /** Test if the y direction size is nearly zero */\r\n public get isAlmostZeroY(): boolean { return Geometry.isSmallMetricDistance(this.yLength()); }\r\n\r\n /** Test if a point given as x,y is within the range. */\r\n public containsXY(x: number, y: number): boolean {\r\n return x >= this.low.x\r\n && y >= this.low.y\r\n && x <= this.high.x\r\n && y <= this.high.y;\r\n }\r\n\r\n /** Test if a point is within the range. */\r\n public containsPoint(point: XAndY): boolean { return this.containsXY(point.x, point.y); }\r\n\r\n /** Test of other range is within this range */\r\n public containsRange(other: LowAndHighXY): boolean {\r\n return other.low.x >= this.low.x\r\n && other.low.y >= this.low.y\r\n && other.high.x <= this.high.x\r\n && other.high.y <= this.high.y;\r\n }\r\n\r\n /** Test if there is any intersection with other range */\r\n public intersectsRange(other: LowAndHighXY): boolean {\r\n return !(this.low.x > other.high.x\r\n || this.low.y > other.high.y\r\n || other.low.x > this.high.x\r\n || other.low.y > this.high.y);\r\n }\r\n\r\n /** Return 0 if the point is within the range, otherwise the distance to the closest face or corner */\r\n public distanceToPoint(point: XAndY): number {\r\n if (this.isNull)\r\n return Range2d._EXTREME_POSITIVE;\r\n return Math.min(\r\n Geometry.hypotenuseXY(\r\n RangeBase.coordinateToRangeAbsoluteDistance(point.x, this.low.x, this.high.x),\r\n RangeBase.coordinateToRangeAbsoluteDistance(point.y, this.low.y, this.high.y)),\r\n Range2d._EXTREME_POSITIVE);\r\n }\r\n\r\n /** Return 0 if the point is within the range, otherwise the distance to the closest face or corner */\r\n public distanceToRange(other: LowAndHighXY): number {\r\n return Math.min(\r\n Geometry.hypotenuseXY(\r\n RangeBase.rangeToRangeAbsoluteDistance(this.low.x, this.high.x, other.low.x, other.high.x),\r\n RangeBase.rangeToRangeAbsoluteDistance(this.low.y, this.high.y, other.low.y, other.high.y)),\r\n Range2d._EXTREME_POSITIVE);\r\n }\r\n\r\n /** Expand this range to include a point given by x,y */\r\n public extendXY(x: number, y: number): void {\r\n if (x < this.low.x) this.low.x = x;\r\n if (x > this.high.x) this.high.x = x;\r\n\r\n if (y < this.low.y) this.low.y = y;\r\n if (y > this.high.y) this.high.y = y;\r\n }\r\n\r\n /** Expand this range to include a point given by x,y */\r\n public extendTransformedXY(transform: Transform, x: number, y: number): void {\r\n const x1 = transform.multiplyComponentXYZ(0, x, y, 0);\r\n const y1 = transform.multiplyComponentXYZ(1, x, y, 0);\r\n this.extendXY(x1, y1);\r\n }\r\n /** Expand this range to include a point. */\r\n public extendPoint(point: XAndY): void { this.extendXY(point.x, point.y); }\r\n\r\n /** Expand this range to include a range. */\r\n public extendRange(other: LowAndHighXY): void {\r\n if (!Range2d.isNull(other)) {\r\n this.extendXY(other.low.x, other.low.y);\r\n this.extendXY(other.high.x, other.high.y);\r\n }\r\n }\r\n\r\n /** Return the intersection of ranges. */\r\n public intersect(other: LowAndHighXY, result?: Range2d): Range2d {\r\n if (!this.intersectsRange(other))\r\n return Range2d.createNull(result);\r\n return Range2d.createXYXY\r\n (\r\n Math.max(this.low.x, other.low.x), Math.max(this.low.y, other.low.y),\r\n Math.min(this.high.x, other.high.x), Math.min(this.high.y, other.high.y),\r\n result);\r\n\r\n }\r\n\r\n /** Return the union of ranges. */\r\n public union(other: LowAndHighXY, result?: Range2d): Range2d {\r\n if (this.isNull)\r\n return Range2d.createFrom(other, result);\r\n if (Range2d.isNull(other))\r\n return this.clone(result as this);\r\n // we trust null ranges have EXTREME values, so a null in either input leads to expected results.\r\n return Range2d.createXYXY\r\n (\r\n Math.min(this.low.x, other.low.x), Math.min(this.low.y, other.low.y),\r\n Math.max(this.high.x, other.high.x), Math.max(this.high.y, other.high.y),\r\n result);\r\n }\r\n\r\n /**\r\n * move low and high points by scaleFactor around the center point.\r\n * @param scaleFactor scale factor applied to low, high distance from center.\r\n */\r\n public scaleAboutCenterInPlace(scaleFactor: number) {\r\n if (!this.isNull) {\r\n scaleFactor = Math.abs(scaleFactor);\r\n // do the scalar stuff to avoid making a temporary object ....\r\n const xMid = 0.5 * (this.low.x + this.high.x);\r\n const yMid = 0.5 * (this.low.y + this.high.y);\r\n this.high.x = Geometry.interpolate(xMid, scaleFactor, this.high.x);\r\n this.high.y = Geometry.interpolate(yMid, scaleFactor, this.high.y);\r\n this.low.x = Geometry.interpolate(xMid, scaleFactor, this.low.x);\r\n this.low.y = Geometry.interpolate(yMid, scaleFactor, this.low.y);\r\n }\r\n }\r\n /**\r\n * move all limits by a fixed amount.\r\n * * positive delta expands the range size\r\n * * negative delta reduces the range size\r\n * * if any dimension reduces below zero size, the whole range becomes null\r\n * @param delta shift to apply.\r\n */\r\n public expandInPlace(delta: number): void {\r\n this.setDirect(\r\n this.low.x - delta, this.low.y - delta,\r\n this.high.x + delta, this.high.y + delta, true);\r\n }\r\n /** Return fractional coordinates of point within the range.\r\n * * returns undefined if the range is null.\r\n * * returns undefined if any direction (x,y) has zero length\r\n */\r\n public worldToLocal(point: Point2d, result?: Point2d): Point2d | undefined {\r\n const ax = RangeBase.npcScaleFactor(this.low.x, this.high.x);\r\n const ay = RangeBase.npcScaleFactor(this.low.y, this.high.y);\r\n if (ax === 0.0 || ay === 0.0)\r\n return undefined;\r\n return Point2d.create((point.x - this.low.x) * ax, (point.y - this.low.y) * ay, result);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ray3d.d.ts","sourceRoot":"","sources":["../../src/geometry3d/Ray3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Ray3d.js","sourceRoot":"","sources":["../../src/geometry3d/Ray3d.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 CartesianGeometry\r\n */\r\nimport { CurveCurveApproachType, CurveLocationDetail, CurveLocationDetailPair } from \"../curve/CurveLocationDetail\";\r\nimport { AxisOrder, BeJSONFunctions, Geometry } from \"../Geometry\";\r\nimport { SmallSystem } from \"../numerics/Polynomials\";\r\nimport { Matrix3d } from \"./Matrix3d\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"./Plane3dByOriginAndUnitNormal\";\r\nimport { Vector2d } from \"./Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"./Point3dVector3d\";\r\nimport { Range1d, Range3d } from \"./Range\";\r\nimport { Transform } from \"./Transform\";\r\nimport { XYAndZ } from \"./XYZProps\";\r\n\r\n/** A Ray3d contains\r\n * * an origin point.\r\n * * a direction vector. The vector is NOT required to be normalized.\r\n * * an optional weight (number).\r\n * @public\r\n */\r\nexport class Ray3d implements BeJSONFunctions {\r\n /** The ray origin */\r\n public origin: Point3d;\r\n /** The ray direction. This is commonly (but not always) a unit vector. */\r\n public direction: Vector3d;\r\n /** Numeric annotation. */\r\n public a?: number; // optional, e.g. weight.\r\n // constructor captures references !!!\r\n private constructor(origin: Point3d, direction: Vector3d) {\r\n this.origin = origin;\r\n this.direction = direction;\r\n this.a = undefined;\r\n }\r\n private static _create(x: number, y: number, z: number, u: number, v: number, w: number) {\r\n return new Ray3d(Point3d.create(x, y, z), Vector3d.create(u, v, w));\r\n }\r\n /** Create a ray on the x axis. */\r\n public static createXAxis(): Ray3d { return Ray3d._create(0, 0, 0, 1, 0, 0); }\r\n /** Create a ray on the y axis. */\r\n public static createYAxis(): Ray3d { return Ray3d._create(0, 0, 0, 0, 1, 0); }\r\n /** Create a ray on the z axis. */\r\n public static createZAxis(): Ray3d { return Ray3d._create(0, 0, 0, 0, 0, 1); }\r\n /** Create a ray with all zeros. */\r\n public static createZero(result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.origin.setZero();\r\n result.direction.setZero();\r\n return result;\r\n }\r\n return new Ray3d(Point3d.createZero(), Vector3d.createZero());\r\n }\r\n /** Test for nearly equal rays. */\r\n public isAlmostEqual(other: Ray3d): boolean {\r\n return this.origin.isAlmostEqual(other.origin) && this.direction.isAlmostEqual(other.direction);\r\n }\r\n /** Create a ray from origin and direction. */\r\n public static create(origin: Point3d, direction: Vector3d, result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.set(origin, direction);\r\n return result;\r\n }\r\n return new Ray3d(origin.clone(), direction.clone());\r\n }\r\n /**\r\n * Given a homogeneous point and its derivative components, construct a Ray3d with cartesian coordinates and derivatives.\r\n * @param weightedPoint `[x,y,z,w]` parts of weighted point.\r\n * @param weightedDerivative `[x,y,z,w]` derivatives\r\n * @param result\r\n */\r\n public static createWeightedDerivative(weightedPoint: Float64Array, weightedDerivative: Float64Array, result?: Ray3d): Ray3d | undefined {\r\n const w = weightedPoint[3];\r\n const dw = weightedDerivative[3];\r\n const x = weightedPoint[0];\r\n const y = weightedPoint[1];\r\n const z = weightedPoint[2];\r\n const dx = weightedDerivative[0] * w - weightedPoint[0] * dw;\r\n const dy = weightedDerivative[1] * w - weightedPoint[1] * dw;\r\n const dz = weightedDerivative[2] * w - weightedPoint[2] * dw;\r\n if (Geometry.isSmallMetricDistance(w))\r\n return undefined;\r\n const divW = 1.0 / w;\r\n const divWW = divW * divW;\r\n return Ray3d.createXYZUVW(x * divW, y * divW, z * divW, dx * divWW, dy * divWW, dz * divWW, result);\r\n }\r\n /** Create from coordinates of the origin and direction. */\r\n public static createXYZUVW(originX: number, originY: number, originZ: number, directionX: number, directionY: number, directionZ: number, result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.getOriginRef().set(originX, originY, originZ);\r\n result.getDirectionRef().set(directionX, directionY, directionZ);\r\n return result;\r\n }\r\n return new Ray3d(Point3d.create(originX, originY, originZ), Vector3d.create(directionX, directionY, directionZ));\r\n }\r\n /** Capture origin and direction in a new Ray3d. */\r\n public static createCapture(origin: Point3d, direction: Vector3d): Ray3d {\r\n return new Ray3d(origin, direction);\r\n }\r\n /** Create from (clones of) origin, direction, and numeric weight. */\r\n public static createPointVectorNumber(origin: Point3d, direction: Vector3d, a: number, result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.origin.setFrom(origin);\r\n result.direction.setFrom(direction);\r\n result.a = a;\r\n return result;\r\n }\r\n result = new Ray3d(origin.clone(), direction.clone());\r\n result.a = a;\r\n return result;\r\n }\r\n /** Create from origin and target. The direction vector is the full length (non-unit) vector from origin to target. */\r\n public static createStartEnd(origin: Point3d, target: Point3d, result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.origin.setFrom(origin);\r\n result.direction.setStartEnd(origin, target);\r\n return result;\r\n }\r\n return new Ray3d(origin, Vector3d.createStartEnd(origin, target));\r\n }\r\n /** Return a reference to the ray's origin. */\r\n public getOriginRef(): Point3d { return this.origin; }\r\n /** Return a reference to the ray's direction vector. */\r\n public getDirectionRef(): Vector3d { return this.direction; }\r\n /** copy coordinates from origin and direction. */\r\n public set(origin: Point3d, direction: Vector3d): void {\r\n this.origin.setFrom(origin);\r\n this.direction.setFrom(direction);\r\n }\r\n /** Clone the ray. */\r\n public clone(result?: Ray3d): Ray3d {\r\n if (result) {\r\n result.set(this.origin.clone(), this.direction.clone());\r\n return result;\r\n }\r\n return new Ray3d(this.origin.clone(), this.direction.clone());\r\n }\r\n /** Create a clone and return the transform of the clone. */\r\n public cloneTransformed(transform: Transform): Ray3d {\r\n return new Ray3d(transform.multiplyPoint3d(this.origin), transform.multiplyVector(this.direction));\r\n }\r\n\r\n /** Create a clone and return the inverse transform of the clone. */\r\n public cloneInverseTransformed(transform: Transform): Ray3d | undefined {\r\n const origin = transform.multiplyInversePoint3d(this.origin);\r\n const direction = transform.matrix.multiplyInverseXYZAsVector3d(this.direction.x, this.direction.y, this.direction.z);\r\n if (undefined !== origin && undefined !== direction)\r\n return new Ray3d(origin, direction);\r\n return undefined;\r\n }\r\n\r\n /** Apply a transform in place. */\r\n public transformInPlace(transform: Transform) {\r\n transform.multiplyPoint3d(this.origin, this.origin);\r\n transform.multiplyVector(this.direction, this.direction);\r\n }\r\n /** Copy data from another ray. */\r\n public setFrom(source: Ray3d): void { this.set(source.origin, source.direction); }\r\n /** * fraction 0 is the ray origin.\r\n * * fraction 1 is at the end of the direction vector when placed at the origin.\r\n * @returns Return a point at fractional position along the ray.\r\n */\r\n public fractionToPoint(fraction: number, result?: Point3d): Point3d { return this.origin.plusScaled(this.direction, fraction, result); }\r\n /** Return the dot product of the ray's direction vector with a vector from the ray origin to the space point. */\r\n public dotProductToPoint(spacePoint: Point3d): number { return this.direction.dotProductStartEnd(this.origin, spacePoint); }\r\n /**\r\n * Return the fractional coordinate (along the direction vector) of the spacePoint projected to the ray.\r\n */\r\n public pointToFraction(spacePoint: Point3d): number {\r\n return Geometry.safeDivideFraction(this.direction.dotProductStartEnd(this.origin, spacePoint), this.direction.magnitudeSquared(), 0);\r\n }\r\n /**\r\n *\r\n * Return the spacePoint projected onto the ray.\r\n */\r\n public projectPointToRay(spacePoint: Point3d): Point3d {\r\n return this.origin.plusScaled(this.direction, this.pointToFraction(spacePoint));\r\n }\r\n /** Return a transform for rigid axes\r\n * at ray origin with z in ray direction. If the direction vector is zero, axes default to identity (from createHeadsUpTriad)\r\n */\r\n public toRigidZFrame(): Transform | undefined {\r\n const axes = Matrix3d.createRigidHeadsUp(this.direction, AxisOrder.ZXY);\r\n return Transform.createOriginAndMatrix(this.origin, axes);\r\n }\r\n /**\r\n * Convert {origin:[x,y,z], direction:[u,v,w]} to a Ray3d.\r\n */\r\n public setFromJSON(json?: any) {\r\n if (!json) {\r\n this.origin.set(0, 0, 0);\r\n this.direction.set(0, 0, 1);\r\n return;\r\n }\r\n this.origin.setFromJSON(json.origin);\r\n this.direction.setFromJSON(json.direction);\r\n }\r\n /**\r\n * try to scale the direction vector to a given magnitude.\r\n * @returns Returns false if ray direction is a zero vector.\r\n */\r\n public trySetDirectionMagnitudeInPlace(magnitude: number = 1.0): boolean {\r\n if (this.direction.tryNormalizeInPlace()) {\r\n this.direction.scaleInPlace(magnitude);\r\n return true;\r\n }\r\n this.direction.setZero();\r\n this.a = 0.0;\r\n return false;\r\n }\r\n /**\r\n * * If parameter `a` is clearly nonzero and the direction vector can be normalized,\r\n * * save the parameter `a` as the optional `a` member of the ray.\r\n * * normalize the ray's direction vector\r\n * * If parameter `a` is nearly zero,\r\n * * Set the `a` member to zero\r\n * * Set the ray's direction vector to zero.\r\n * @param a area to be saved.\r\n */\r\n // input a ray and \"a\" understood as an area.\r\n // if a is clearly nonzero metric squared and the vector can be normalized, install those and return true.\r\n // otherwise set ray.z to zero and zero the vector of the ray and return false.\r\n public tryNormalizeInPlaceWithAreaWeight(a: number): boolean {\r\n const tolerance = Geometry.smallMetricDistanceSquared;\r\n this.a = a;\r\n if (Math.abs(a) > tolerance && this.direction.tryNormalizeInPlace(tolerance))\r\n return true;\r\n this.direction.setZero();\r\n this.a = 0.0;\r\n return false;\r\n }\r\n /**\r\n * Convert an Angle to a JSON object.\r\n * @return {*} [origin,normal]\r\n */\r\n public toJSON(): any { return { origin: this.origin.toJSON(), direction: this.direction.toJSON() }; }\r\n /** Create a new ray from json object. See `setFromJSON` for json structure; */\r\n public static fromJSON(json?: any) {\r\n const result = Ray3d.createXAxis();\r\n result.setFromJSON(json);\r\n return result;\r\n }\r\n /** return distance from the ray to point in space */\r\n public distance(spacePoint: Point3d): number {\r\n const uu = this.direction.magnitudeSquared();\r\n const uv = this.dotProductToPoint(spacePoint);\r\n const aa = Geometry.inverseMetricDistanceSquared(uu);\r\n if (aa)\r\n return Math.sqrt(this.origin.distanceSquared(spacePoint) - uv * uv * aa);\r\n else\r\n return Math.sqrt(this.origin.distanceSquared(spacePoint));\r\n }\r\n /**\r\n * Return the intersection of the unbounded ray with a plane.\r\n * Stores the point of intersection in the result point given as a parameter,\r\n * and returns the parameter along the ray where the intersection occurs.\r\n * Returns undefined if the ray and plane are parallel or coplanar.\r\n */\r\n public intersectionWithPlane(plane: Plane3dByOriginAndUnitNormal, result?: Point3d): number | undefined {\r\n const vectorA = Vector3d.createStartEnd(plane.getOriginRef(), this.origin);\r\n const uDotN = this.direction.dotProduct(plane.getNormalRef());\r\n const nDotN = this.direction.magnitudeSquared();\r\n const aDotN = vectorA.dotProduct(plane.getNormalRef());\r\n const division = Geometry.conditionalDivideFraction(-aDotN, uDotN);\r\n if (undefined === division)\r\n return undefined;\r\n const division1 = Geometry.conditionalDivideFraction(nDotN, uDotN);\r\n if (undefined === division1)\r\n return undefined;\r\n if (result) {\r\n this.origin.plusScaled(this.direction, division, result);\r\n }\r\n return division;\r\n }\r\n\r\n /**\r\n * * Find intersection of the ray with a Range3d.\r\n * * return the range of fractions (on the ray) which are \"inside\" the range.\r\n * * Note that a range is always returned; if there is no intersection it is indicated by the test `result.sNull`\r\n */\r\n public intersectionWithRange3d(range: Range3d, result?: Range1d): Range1d {\r\n if (range.isNull)\r\n return Range1d.createNull(result);\r\n const interval = Range1d.createXX(-Geometry.largeCoordinateResult, Geometry.largeCoordinateResult, result);\r\n if (interval.clipLinearMapToInterval(this.origin.x, this.direction.x, range.low.x, range.high.x)\r\n && interval.clipLinearMapToInterval(this.origin.y, this.direction.y, range.low.y, range.high.y)\r\n && interval.clipLinearMapToInterval(this.origin.z, this.direction.z, range.low.z, range.high.z))\r\n return interval;\r\n return interval;\r\n }\r\n\r\n /** Construct a vector from `ray.origin` to target point.\r\n * * return the part of the vector that is perpendicular to `ray.direction`.\r\n * * i.e. return the shortest vector from the ray to the point.\r\n */\r\n public perpendicularPartOfVectorToTarget(targetPoint: XYAndZ, result?: Vector3d): Vector3d {\r\n const vectorV = Vector3d.createStartEnd(this.origin, targetPoint);\r\n const uu = this.direction.magnitudeSquared();\r\n const uv = this.direction.dotProductStartEnd(this.origin, targetPoint);\r\n const fraction = Geometry.safeDivideFraction(uv, uu, 0.0);\r\n return vectorV.plusScaled(this.direction, -fraction, result);\r\n }\r\n /** Determine if two rays intersect, are fully overlapped, parallel but no coincident, or skew\r\n * * Return a CurveLocationDetailPair which\r\n * * contains fraction and point on each ray.\r\n * * has (in the CurveLocationDetailPair structure, as member approachType) annotation indicating one of these relationships\r\n * * CurveCurveApproachType.Intersection -- the rays have a simple intersection, at fractions indicated in detailA and detailB\r\n * * CurveCurveApproachType.PerpendicularChord -- there is pair of where the rays have closest approach. The rays are skew in space.\r\n * * CurveCurveApproachType.CoincidentGeometry -- the rays are the same unbounded line in space. The fractions and points are a representative single common point.\r\n * * CurveCurveApproachType.Parallel -- the rays are parallel (and not coincident). The two points are at the minimum distance\r\n */\r\n public static closestApproachRay3dRay3d(rayA: Ray3d, rayB: Ray3d): CurveLocationDetailPair {\r\n const intersectionFractions = Vector2d.create();\r\n let fractionA, fractionB;\r\n let pointA, pointB;\r\n let pairType;\r\n if (SmallSystem.ray3dXYZUVWClosestApproachUnbounded(\r\n rayA.origin.x, rayA.origin.y, rayA.origin.z, rayA.direction.x, rayA.direction.y, rayA.direction.z,\r\n rayB.origin.x, rayB.origin.y, rayB.origin.z, rayB.direction.x, rayB.direction.y, rayB.direction.z, intersectionFractions)) {\r\n fractionA = intersectionFractions.x;\r\n fractionB = intersectionFractions.y;\r\n pointA = rayA.fractionToPoint(fractionA);\r\n pointB = rayB.fractionToPoint(fractionB);\r\n pairType = pointA.isAlmostEqualMetric(pointB) ? CurveCurveApproachType.Intersection : CurveCurveApproachType.PerpendicularChord;\r\n } else {\r\n fractionB = 0.0;\r\n fractionA = rayA.pointToFraction(rayB.origin);\r\n pointA = rayA.fractionToPoint(fractionA);\r\n pointB = rayB.fractionToPoint(fractionB);\r\n pairType = pointA.isAlmostEqualMetric(pointB) ? CurveCurveApproachType.CoincidentGeometry : CurveCurveApproachType.ParallelGeometry;\r\n }\r\n const pair = CurveLocationDetailPair.createCapture(\r\n CurveLocationDetail.createRayFractionPoint(rayA, fractionA, rayA.fractionToPoint(fractionA)),\r\n CurveLocationDetail.createRayFractionPoint(rayB, fractionB, rayB.fractionToPoint(fractionB)));\r\n pair.approachType = pairType;\r\n return pair;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReusableObjectCache.d.ts","sourceRoot":"","sources":["../../src/geometry3d/ReusableObjectCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH;;;;;;GAMG;AACH,8BAAsB,mBAAmB,CAAC,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAC/C,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC;IACtC,OAAO,CAAC,cAAc,CAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS;IAMT;;;OAGG;IACI,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;IAOtC;;;;;OAKG;IACI,aAAa,IAAI,CAAC;IAUzB;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE;CAKhC;AACD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,gBAAgB,CAAC;IAC9E,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IACrD,SAAS,CAAC,cAAc,IAAI,gBAAgB;;IAE5C;;;OAGG;IACI,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;CAM/D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReusableObjectCache.js","sourceRoot":"","sources":["../../src/geometry3d/ReusableObjectCache.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,yDAAsD;AAEtD;;GAEG;AACH;;;;;;GAMG;AACH,MAAsB,mBAAmB;IAOvC;;OAEG;IACH;QACE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpB,CAAC;IACD;;;OAGG;IACI,WAAW,CAAC,IAAmB;QACpC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IACD;;;;;OAKG;IACI,aAAa;QAClB,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;OAEG;IACI,cAAc,CAAC,IAAS;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;SAC9B;IACH,CAAC;CACF;AAnDD,kDAmDC;AACD;;;;GAIG;AACH,MAAa,qBAAsB,SAAQ,mBAAqC;IACpE,aAAa,CAAC,IAAsB,IAAU,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,cAAc,KAAuB,OAAO,IAAI,mCAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,gBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC;IACjC;;;OAGG;IACI,WAAW,CAAC,MAAwB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IAEd,CAAC;CACF;AAdD,sDAcC","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 { GrowableXYZArray } from \"./GrowableXYZArray\";\r\n\r\n/** @packageDocumentation\r\n * @module ArraysAndInterfaces\r\n */\r\n/**\r\n * abstract class managing an array of objects of type T, available for reuse by trusted callers.\r\n * * Derived class must implement these methods:\r\n * * `createForCache()` -- create a new, ready-to-use object\r\n * * `clearForCache (data: T)` -- tidy up `data` so it can be reused.\r\n * @internal\r\n */\r\nexport abstract class ReusableObjectCache<T> {\r\n protected abstract clearForCache(data: T): void;\r\n protected abstract createForCache(): T;\r\n private _cachedObjects: T[];\r\n public numDrop: number;\r\n public numCreate: number;\r\n public numReuse: number;\r\n /**\r\n * create a new cache for objects of type T\r\n */\r\n protected constructor() {\r\n this._cachedObjects = [];\r\n this.numDrop = 0;\r\n this.numCreate = 0;\r\n this.numReuse = 0;\r\n }\r\n /** Present `data` for storage in the cache, and hence reuse by any subsequent `grabFromCache`\r\n * * `data` will be sent to `clearForCache`.\r\n * * caller should never refer to this instance again.\r\n */\r\n public dropToCache(data: T | undefined) {\r\n if (data) {\r\n this.numDrop++;\r\n this.clearForCache(data);\r\n this._cachedObjects.push(data);\r\n }\r\n }\r\n /**\r\n * grab an object from the cache.\r\n * * The returned object becomes property of the caller.\r\n * * That is, the cache does not remember it for any further management\r\n * @param data\r\n */\r\n public grabFromCache(): T {\r\n let data = this._cachedObjects.pop();\r\n if (data === undefined) {\r\n data = this.createForCache();\r\n this.numCreate++;\r\n } else {\r\n this.numReuse++;\r\n }\r\n return data;\r\n }\r\n /** Drop all entries of data[] to the cache.\r\n * @param data on input, the data to drop. on output, data is an empty array.\r\n */\r\n public dropAllToCache(data: T[]) {\r\n while (data.length > 0) {\r\n this.dropToCache(data.pop());\r\n }\r\n }\r\n}\r\n/**\r\n * Cache of GrowableXYZArray.\r\n * Intended for use by (for instance) clipping methods that can be structured to have disciplined reuse of a small number of arrays for a large number of steps.\r\n * @internal\r\n */\r\nexport class GrowableXYZArrayCache extends ReusableObjectCache<GrowableXYZArray> {\r\n protected clearForCache(data: GrowableXYZArray): void { data.length = 0; }\r\n protected createForCache(): GrowableXYZArray { return new GrowableXYZArray(10); }\r\n public constructor() { super(); }\r\n /**\r\n * Grab an array from the cache and immediately fill from a source\r\n * @param source\r\n */\r\n public grabAndFill(source: GrowableXYZArray): GrowableXYZArray {\r\n const dest = this.grabFromCache();\r\n dest.pushFromGrowableXYZArray(source);\r\n return dest;\r\n\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Segment1d.d.ts","sourceRoot":"","sources":["../../src/geometry3d/Segment1d.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS;IACpB,uBAAuB;IAChB,EAAE,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACd,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO;IAIP;;;;OAIG;IACI,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IACjC;;;OAGG;IACI,KAAK,CAAC,EAAE,EAAE,MAAM;IACvB;;;;;OAKG;WACW,MAAM,CAAC,EAAE,GAAE,MAAU,EAAE,EAAE,GAAE,MAAU,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS;IAMnF;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,SAAS;IAC/B;;OAEG;IACI,KAAK,IAAI,SAAS;IACzB;;OAEG;IACH,IAAW,MAAM,YAGhB;IACD;;;;OAIG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAChD;;OAEG;IACI,WAAW,IAAI,MAAM;IAC5B;;OAEG;IACI,aAAa,IAAI,MAAM;IAC9B;;;OAGG;IACI,cAAc,IAAI,IAAI;IAC7B;;;OAGG;IACI,2BAA2B,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAI1D;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAG/C;;OAEG;IACH,IAAW,SAAS,IAAI,OAAO,CAA+C;IAC9E;;OAEG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAA+C;IAEtF;;;;;;;OAOG;IACI,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAqBtE;;;;;OAKG;IACI,iBAAiB,IAAI,OAAO;CAkBpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Segment1d.js","sourceRoot":"","sources":["../../src/geometry3d/Segment1d.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 CartesianGeometry\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\n\r\n/**\r\n * * A Segment1d is an interval of an axis named x.\r\n * * The interval is defined by two values x0 and x1.\r\n * * The x0 and x1 values can be in either order.\r\n * * if `x0 < x1` fractional coordinates within the segment move from left to right.\r\n * * if `x0 > x1` fractional coordinates within the segment move from right to left.\r\n * * This differs from a Range1d in that:\r\n * * For a Range1d the reversed ordering of its limit values means \"empty interval\".\r\n * * For a Segment1d the reversed ordering is a real interval but fractional positions move backwards.\r\n * * The segment is parameterized with a fraction\r\n * * * Fraction 0 is the start (`x0`)\r\n * * * Fraction 1 is the end (`x1`)\r\n * * * The fraction equation is `x = x0 + fraction * (x1-x0)` or (equivalently) `x = (1-fraction) * x0 + fraction * x1`\r\n * @public\r\n */\r\nexport class Segment1d {\r\n /** start coordinate */\r\n public x0: number;\r\n /** end coordinate */\r\n public x1: number;\r\n private constructor(x0: number, x1: number) {\r\n this.x0 = x0;\r\n this.x1 = x1;\r\n }\r\n /**\r\n * replace both end values.\r\n * @param x0 new x0 value\r\n * @param x1 new y0 value\r\n */\r\n public set(x0: number, x1: number) { this.x0 = x0, this.x1 = x1; }\r\n /**\r\n * shift (translate) the segment along its axis by adding `dx` to both `x0` and `x1`.\r\n * @param dx value to add to both x0 and x1\r\n */\r\n public shift(dx: number) { this.x0 += dx, this.x1 += dx; }\r\n /**\r\n * create segment1d with given end values\r\n * @param x0 start value\r\n * @param x1 end value\r\n * @param result optional pre-existing result to be reinitialized.\r\n */\r\n public static create(x0: number = 0, x1: number = 1, result?: Segment1d): Segment1d {\r\n if (!result)\r\n return new Segment1d(x0, x1);\r\n result.set(x0, x1);\r\n return result;\r\n }\r\n /**\r\n * Copy both end values from other Segment1d\r\n * @param other source Segment1d\r\n */\r\n public setFrom(other: Segment1d) { this.x0 = other.x0; this.x1 = other.x1; }\r\n /**\r\n * clone this Segment1d, return as a separate object.\r\n */\r\n public clone(): Segment1d { return new Segment1d(this.x0, this.x1); }\r\n /**\r\n * Returns true if both coordinates (`x0` and `x1`) are in the 0..1 range.\r\n */\r\n public get isIn01() {\r\n return Geometry.isIn01(this.x0) && Geometry.isIn01(this.x1);\r\n\r\n }\r\n /**\r\n * Evaluate the segment at fractional position\r\n * @returns position within the segment\r\n * @param fraction fractional position within this segment\r\n */\r\n public fractionToPoint(fraction: number): number { return Geometry.interpolate(this.x0, fraction, this.x1); }\r\n /**\r\n * Return the signed start-to-end shift (aka signed distance)\r\n */\r\n public signedDelta(): number { return this.x1 - this.x0; }\r\n /**\r\n * Return the absolute start-to-end shift (aka distance)\r\n */\r\n public absoluteDelta(): number { return Math.abs(this.x1 - this.x0); }\r\n /**\r\n * * swap the x0 and x1 member values.\r\n * * This makes the fractionToPoint evaluates reverse direction.\r\n */\r\n public reverseInPlace(): void { const x = this.x0; this.x0 = this.x1; this.x1 = x; }\r\n /**\r\n * * if `x1<x0` multiplied by the scale factor is (strictly) negative, swap the x0 and x1 member values.\r\n * * This makes the fractionToPoint evaluates reverse direction.\r\n */\r\n public reverseIfNeededForDeltaSign(sign: number = 1): void {\r\n if (sign * (this.x1 - this.x0) < 0)\r\n this.reverseInPlace();\r\n }\r\n /**\r\n * Near equality test, using Geometry.isSameCoordinate for tolerances.\r\n */\r\n public isAlmostEqual(other: Segment1d): boolean {\r\n return Geometry.isSameCoordinate(this.x0, other.x0) && Geometry.isSameCoordinate(this.x1, other.x1);\r\n }\r\n /**\r\n * Return true if the segment limits are (exactly) 0 and 1\r\n */\r\n public get isExact01(): boolean { return this.x0 === 0.0 && this.x1 === 1.0; }\r\n /**\r\n * Return true if the segment limits are (exactly) 1 and 0\r\n */\r\n public get isExact01Reversed(): boolean { return this.x0 === 1.0 && this.x1 === 0.0; }\r\n\r\n /** On input, `this` is an interval of a line. On output, the interval has been clipped to positive parts of a linear function\r\n * * f0 and f1 are values at parameter values 0 and 1 (which are in general NOT x0 and x1)\r\n * * From that determine where the segment crosses function value 0.\r\n * * The segment contains some interval in the same parameter space.\r\n * * Clip the segment to the positive part of the space.\r\n * * Return true (and modify the segment) if any of the segment remains.\r\n * * Return false (but without modifying the segment) if the active part is entirely out.\r\n */\r\n public clipBy01FunctionValuesPositive(f0: number, f1: number): boolean {\r\n const df01 = f1 - f0;\r\n const fA = f0 + this.x0 * df01;\r\n const fB = f0 + this.x1 * df01;\r\n const dfAB = fB - fA;\r\n if (fA > 0) {\r\n if (fB >= 0) return true; // inside at both ends\r\n /** There is an inside to outside crossing. The division is safe ... (and value between 0 and 1) */\r\n const u = -fA / dfAB;\r\n this.x1 = this.x0 + u * (this.x1 - this.x0);\r\n return true;\r\n } else if (fA < 0) {\r\n if (fB < 0) return false; // outside at both ends.\r\n /** There is an outside to inside crossing crossing. The division is safe ... (and value between 0 and 1) */\r\n const u = -fA / dfAB;\r\n this.x0 = this.x0 + u * (this.x1 - this.x0);\r\n return true;\r\n }\r\n /** fA is on the cut. fB determines the entire segment. */\r\n return fB > 0;\r\n }\r\n /**\r\n * * On input, (f0,f1) is a (directed) segment.\r\n * * On output, it is restricted to (0,1) while maintaining direction\r\n * * If the clip leaves nothing, leave this segment alone and return false.\r\n * * If the clip leaves something, update this segment and return true.\r\n */\r\n public clampDirectedTo01(): boolean {\r\n let x0 = this.x0;\r\n let x1 = this.x1;\r\n if (x1 > x0) {\r\n if (x0 < 0) x0 = 0;\r\n if (x1 > 1) x1 = 1;\r\n if (x0 >= x1)\r\n return false;\r\n } else {\r\n if (x0 > 1) x0 = 1;\r\n if (x1 < 0) x1 = 0;\r\n if (x0 <= x1)\r\n return false;\r\n }\r\n this.set(x0, x1);\r\n return true;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SortablePolygon.d.ts","sourceRoot":"","sources":["../../src/geometry3d/SortablePolygon.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAIrC,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAsKlC;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAsB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;gBACgB,IAAI,EAAE,6BAA6B,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO;IAS7E;;;OAGG;WACW,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,6BAA6B,GAAG,OAAO;IASjG;;;OAGG;WACW,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IASrE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAyBpC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAwBjC,OAAO,CAAC,MAAM,CAAC,eAAe;WAuChB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,SAAS;WAYpD,4BAA4B,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,6BAA6B,EAAE,EAAE;IAIhG,WAAW,IAAI,oBAAoB,GAAG,SAAS;IAG/C,QAAQ,IAAI,IAAI,GAAG,SAAS;IAG5B,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAGrC,mBAAmB,IAAI,OAAO,GAAG,SAAS;CAGlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SortablePolygon.js","sourceRoot":"","sources":["../../src/geometry3d/SortablePolygon.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 CartesianGeometry\r\n */\r\nimport { AnyRegion } from \"../curve/CurveChain\";\r\nimport { CurveChain } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { ParityRegion } from \"../curve/ParityRegion\";\r\nimport { RegionOps } from \"../curve/RegionOps\";\r\nimport { UnionRegion } from \"../curve/UnionRegion\";\r\nimport { IndexedReadWriteXYZCollection, IndexedXYZCollection } from \"./IndexedXYZCollection\";\r\nimport { Point3d } from \"./Point3dVector3d\";\r\nimport { PolygonOps } from \"./PolygonOps\";\r\nimport { Range3d } from \"./Range\";\r\nimport { XAndY } from \"./XYZProps\";\r\n\r\n/** abstract base class for area-related queries of a loop.\r\n * * subclasses have particular logic for `Loop` and polygon data.\r\n * @internal\r\n */\r\nabstract class SimpleRegionCarrier {\r\n public abstract classifyPointXY(xy: XAndY): number | undefined;\r\n // Find any point on an edge.\r\n // evaluate tangent.\r\n // move to left or right according to signedArea, producing an interior point for the loop.\r\n public abstract getAnyInteriorPoint(): Point3d | undefined;\r\n /**\r\n * * grab the loop formatted as a simple polygon.\r\n * * stroke if necessary.\r\n */\r\n public abstract grabPolygon(): IndexedReadWriteXYZCollection | undefined;\r\n /**\r\n * * grab the loop formatted as a strongly typed loop object\r\n */\r\n public abstract grabLoop(): Loop | undefined;\r\n /**\r\n * (Property access) Return the signed area of the loop\r\n */\r\n public abstract get signedArea(): number;\r\n /**\r\n * If the current `signedArea` has different sign versus `targetSign`, reverse the loop in place.\r\n */\r\n public abstract reverseForAreaSign(targetSign: number): void;\r\n}\r\n/**\r\n * Implement `LoopCarrier` queries with the area as a polygon carried in an `IndexedReadWriteXYZCollection`\r\n */\r\nclass PolygonCarrier extends SimpleRegionCarrier {\r\n public data: IndexedReadWriteXYZCollection;\r\n private _signedArea: number;\r\n public get signedArea(): number { return this._signedArea; }\r\n public constructor(data: IndexedReadWriteXYZCollection) {\r\n super();\r\n this.data = data;\r\n this._signedArea = PolygonOps.areaXY(data);\r\n }\r\n /**\r\n * classify xy parts of point wrt this loop.\r\n * @param xy\r\n * @internal\r\n */\r\n public classifyPointXY(xy: XAndY): number | undefined {\r\n return PolygonOps.classifyPointInPolygonXY(xy.x, xy.y, this.data);\r\n }\r\n /** Return some point \"inside\"\r\n * NEEDS WORK: this returns a point ON --\r\n */\r\n public getAnyInteriorPoint(): Point3d | undefined {\r\n for (let childIndex = 0; childIndex < this.data.length; childIndex++) {\r\n const q = this.constructInteriorPointNearEdge(childIndex, 0.2349);\r\n if (q !== undefined)\r\n return q;\r\n }\r\n return undefined;\r\n }\r\n public grabPolygon(): IndexedReadWriteXYZCollection | undefined { return this.data; }\r\n public grabLoop(): Loop | undefined {\r\n return Loop.createPolygon(this.data);\r\n }\r\n public reverseForAreaSign(targetSign: number) {\r\n if (targetSign * this._signedArea < 0.0) {\r\n this.data.reverseInPlace();\r\n this._signedArea *= -1.0;\r\n }\r\n }\r\n public constructInteriorPointNearEdge(edgeIndex: number, fractionAlong: number): Point3d | undefined {\r\n if (edgeIndex + 1 < this.data.length) {\r\n const point0 = this.data.getPoint3dAtUncheckedPointIndex(edgeIndex);\r\n const point1 = this.data.getPoint3dAtUncheckedPointIndex(edgeIndex + 1);\r\n const vector = point0.vectorTo(point1);\r\n const point = point0.interpolate(fractionAlong, point1);\r\n vector.rotate90CCWXY(vector);\r\n if (vector.normalizeInPlace()) {\r\n if (this._signedArea < 0)\r\n vector.scaleInPlace(-1.0);\r\n const refDistance = Math.sqrt(Math.abs(this._signedArea));\r\n for (let fraction = 1.0e-5; fraction < 3; fraction *= 5.0) {\r\n const candidatePoint = point.plusScaled(vector, fraction * refDistance);\r\n if (1 === this.classifyPointXY(candidatePoint))\r\n return candidatePoint;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n/**\r\n * Implement `LoopCarrier` queries with the area as a strongly typed `Loop`\r\n */\r\nclass LoopCarrier extends SimpleRegionCarrier {\r\n public data: Loop;\r\n private _signedArea: number;\r\n public get signedArea(): number { return this._signedArea; }\r\n public constructor(data: Loop) {\r\n super();\r\n this.data = data;\r\n const areaMoments = RegionOps.computeXYAreaMoments(data);\r\n this._signedArea = areaMoments !== undefined ? areaMoments.quantitySum : 0.0;\r\n }\r\n /**\r\n * classify xy parts of point wrt this loop.\r\n * @param xy\r\n * @internal\r\n */\r\n public classifyPointXY(xy: XAndY): number | undefined {\r\n return RegionOps.testPointInOnOutRegionXY(this.data, xy.x, xy.y);\r\n }\r\n public constructInteriorPointNearChild(childIndex: number, fractionAlong: number): Point3d | undefined {\r\n if (childIndex < this.data.children.length) {\r\n const primitive = this.data.children[childIndex];\r\n const ray = primitive.fractionToPointAndUnitTangent(fractionAlong);\r\n ray.direction.rotate90CCWXY(ray.direction);\r\n if (this._signedArea < 0.0)\r\n ray.direction.scaleInPlace(-1.0);\r\n const refDistance = Math.sqrt(Math.abs(this._signedArea));\r\n for (let fraction = 1.0e-5; fraction < 3; fraction *= 5.0) {\r\n const candidatePoint = ray.fractionToPoint(fraction * refDistance);\r\n if (1 === this.classifyPointXY(candidatePoint))\r\n return candidatePoint;\r\n }\r\n }\r\n return undefined;\r\n }\r\n /** Return some point \"inside\"\r\n * NEEDS WORK: this returns a point ON --\r\n */\r\n public getAnyInteriorPoint(): Point3d | undefined {\r\n for (let childIndex = 0; childIndex < this.data.children.length; childIndex++) {\r\n const q = this.constructInteriorPointNearChild(childIndex, 0.2349);\r\n if (q !== undefined)\r\n return q;\r\n }\r\n return undefined;\r\n }\r\n public grabPolygon(): IndexedReadWriteXYZCollection | undefined {\r\n const strokes = this.data.cloneStroked();\r\n if (strokes instanceof CurveChain) {\r\n const linestring = LineString3d.create();\r\n for (const child of strokes.children) {\r\n if (child instanceof CurvePrimitive) {\r\n child.emitStrokes(linestring);\r\n }\r\n }\r\n return linestring.numPoints() > 0 ? linestring.packedPoints : undefined;\r\n }\r\n return undefined;\r\n }\r\n public grabLoop(): Loop | undefined {\r\n return this.data;\r\n }\r\n public reverseForAreaSign(targetSign: number) {\r\n if (targetSign * this._signedArea < 0.0) {\r\n this.data.reverseChildrenInPlace();\r\n this._signedArea *= -1.0;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A `SortablePolygon` carries a (single) loop with data useful for sorting for inner-outer structure.\r\n * @internal\r\n */\r\nexport class SortablePolygon {\r\n private _loopCarrier: SimpleRegionCarrier;\r\n public anyPoint?: Point3d;\r\n public sortKey: number;\r\n public range: Range3d;\r\n public parentIndex?: number;\r\n public isHole: boolean;\r\n public outputSetIndex?: number;\r\n /**\r\n *\r\n * @param loop Loop to capture.\r\n */\r\n public constructor(loop: IndexedReadWriteXYZCollection | Loop, range: Range3d) {\r\n if (loop instanceof IndexedReadWriteXYZCollection)\r\n this._loopCarrier = new PolygonCarrier(loop);\r\n else\r\n this._loopCarrier = new LoopCarrier(loop);\r\n this.range = range;\r\n this.sortKey = Math.abs(this._loopCarrier.signedArea);\r\n this.isHole = false;\r\n }\r\n /** Push loop with sort data onto the array.\r\n * * No action if no clear normal.\r\n * * return true if pushed.\r\n */\r\n public static pushPolygon(loops: SortablePolygon[], loop: IndexedReadWriteXYZCollection): boolean {\r\n const range = loop.getRange();\r\n const sortablePolygon = new SortablePolygon(loop, range);\r\n if (sortablePolygon.sortKey > 0.0) {\r\n loops.push(sortablePolygon);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Push loop with sort data onto the array.\r\n * * No action if no clear normal.\r\n * * return true if pushed.\r\n */\r\n public static pushLoop(loops: SortablePolygon[], loop: Loop): boolean {\r\n const range = loop.range();\r\n const sortablePolygon = new SortablePolygon(loop, range);\r\n if (sortablePolygon.sortKey > 0.0) {\r\n loops.push(sortablePolygon);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Push loop with sort data onto the array.\r\n * * No action if no clear normal.\r\n * * return true if pushed.\r\n */\r\n private static assignParentsAndDepth(loops: SortablePolygon[]): void {\r\n // Sort largest to smallest ...\r\n loops.sort((loopA: SortablePolygon, loopB: SortablePolygon) => (loopB.sortKey - loopA.sortKey));\r\n // starting with smallest loop, point each loop to smallest containing parent.\r\n for (let i = loops.length; i-- > 0;) {\r\n const thisLoop = loops[i];\r\n const xy = thisLoop._loopCarrier.getAnyInteriorPoint();\r\n if (xy !== undefined) {\r\n // find smallest containing parent (search forward only to hit)\r\n loops[i].parentIndex = undefined;\r\n loops[i].outputSetIndex = undefined;\r\n for (let j = i; j-- > 0;) {\r\n const otherLoop = loops[j];\r\n if (otherLoop.range.containsXY(xy.x, xy.y)) {\r\n if (1 === otherLoop._loopCarrier.classifyPointXY(xy)) {\r\n thisLoop.parentIndex = j;\r\n // The loops are searched from small area to larger. Any other containing loop is larger, so otherLoop must be the smallest.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private static assemblePolygonSet(loops: SortablePolygon[]): IndexedReadWriteXYZCollection[][] {\r\n const outputSets: IndexedReadWriteXYZCollection[][] = [];\r\n\r\n // In large-to-small order:\r\n // If a loop has no parent or has a \"hole\" as parent it is outer.\r\n // otherwise (i.e. it has a non-hole parent) it becomes a hole in the parent.\r\n for (const loopData of loops) {\r\n loopData.isHole = false;\r\n const parentIndex = loopData.parentIndex;\r\n if (parentIndex !== undefined)\r\n loopData.isHole = !loops[parentIndex].isHole;\r\n if (!loopData.isHole) {\r\n loopData._loopCarrier.reverseForAreaSign(1.0);\r\n loopData.outputSetIndex = outputSets.length;\r\n outputSets.push([]);\r\n outputSets[loopData.outputSetIndex].push(loopData._loopCarrier.grabPolygon()!);\r\n } else {\r\n loopData._loopCarrier.reverseForAreaSign(-1.0);\r\n const outputSetIndex = loops[parentIndex!].outputSetIndex!;\r\n outputSets[outputSetIndex].push(loopData._loopCarrier.grabPolygon()!);\r\n }\r\n }\r\n return outputSets;\r\n }\r\n private static assembleLoopSet(loops: SortablePolygon[]): AnyRegion[] {\r\n const outputSets: AnyRegion[] = [];\r\n const numLoops = loops.length;\r\n // In large-to-small order:\r\n // If a loop has no parent or has a \"hole\" as parent it is outer.\r\n // otherwise (i.e. it has a non-hole parent) it becomes a hole in the parent.\r\n for (let candidateIndex = 0; candidateIndex < numLoops; candidateIndex++) {\r\n const candidateData = loops[candidateIndex];\r\n const parentIndex = candidateData.parentIndex;\r\n candidateData.isHole = parentIndex !== undefined ? !loops[parentIndex].isHole : false;\r\n\r\n if (!candidateData.isHole) {\r\n candidateData._loopCarrier.reverseForAreaSign(1.0);\r\n const candidateLoop = candidateData._loopCarrier.grabLoop()!;\r\n let candidateParityRegion: ParityRegion | undefined;\r\n // find all directly contained children . . .\r\n for (let childIndex = candidateIndex + 1; childIndex < numLoops; childIndex++) {\r\n const childData = loops[childIndex];\r\n if (childData.parentIndex === candidateIndex) {\r\n if (candidateParityRegion === undefined) {\r\n candidateParityRegion = ParityRegion.create();\r\n candidateParityRegion.tryAddChild(candidateLoop);\r\n childData._loopCarrier.reverseForAreaSign(-1.0);\r\n candidateParityRegion.tryAddChild(childData._loopCarrier.grabLoop());\r\n } else {\r\n childData._loopCarrier.reverseForAreaSign(-1.0);\r\n candidateParityRegion.tryAddChild(childData._loopCarrier.grabLoop());\r\n }\r\n }\r\n }\r\n if (candidateParityRegion !== undefined)\r\n outputSets.push(candidateParityRegion);\r\n else if (candidateLoop !== undefined)\r\n outputSets.push(candidateLoop);\r\n }\r\n }\r\n return outputSets;\r\n }\r\n\r\n public static sortAsAnyRegion(loops: SortablePolygon[]): AnyRegion {\r\n this.assignParentsAndDepth(loops);\r\n const regions = this.assembleLoopSet(loops);\r\n if (regions.length === 1)\r\n return regions[0];\r\n else {\r\n const unionRegion = UnionRegion.create();\r\n for (const region of regions)\r\n unionRegion.tryAddChild(region);\r\n return unionRegion;\r\n }\r\n }\r\n public static sortAsArrayOfArrayOfPolygons(loops: SortablePolygon[]): IndexedReadWriteXYZCollection[][] {\r\n this.assignParentsAndDepth(loops);\r\n return this.assemblePolygonSet(loops);\r\n }\r\n public grabPolygon(): IndexedXYZCollection | undefined {\r\n return this._loopCarrier.grabPolygon();\r\n }\r\n public grabLoop(): Loop | undefined {\r\n return this._loopCarrier.grabLoop();\r\n }\r\n public reverseForAreaSign(targetSign: number) {\r\n this._loopCarrier.reverseForAreaSign(targetSign);\r\n }\r\n public getAnyInteriorPoint(): Point3d | undefined {\r\n return this._loopCarrier.getAnyInteriorPoint();\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/geometry3d/Transform.ts"],"names":[],"mappings":"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"}
|