@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":"PolyfaceQuery.js","sourceRoot":"","sources":["../../src/polyface/PolyfaceQuery.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 Polyface\r\n */\r\n\r\n// import { Point2d } from \"./Geometry2d\";\r\n/* eslint-disable @typescript-eslint/naming-convention, no-empty */\r\nimport { BagOfCurves, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurveLocationDetail } from \"../curve/CurveLocationDetail\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Loop } from \"../curve/Loop\";\r\nimport { StrokeOptions } from \"../curve/StrokeOptions\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"../geometry3d/Plane3dByOriginAndUnitNormal\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { MomentData } from \"../geometry4d/MomentData\";\r\nimport { UnionFindContext } from \"../numerics/UnionFind\";\r\nimport { ChainMergeContext } from \"../topology/ChainMerge\";\r\nimport { FacetOrientationFixup } from \"./FacetOrientation\";\r\nimport { IndexedEdgeMatcher, SortableEdge, SortableEdgeCluster } from \"./IndexedEdgeMatcher\";\r\nimport { IndexedPolyfaceSubsetVisitor } from \"./IndexedPolyfaceVisitor\";\r\nimport { BuildAverageNormalsContext } from \"./multiclip/BuildAverageNormalsContext\";\r\nimport { SweepLineStringToFacetContext } from \"./multiclip/SweepLineStringToFacetContext\";\r\nimport { XYPointBuckets } from \"./multiclip/XYPointBuckets\";\r\nimport { IndexedPolyface, Polyface, PolyfaceVisitor } from \"./Polyface\";\r\nimport { PolyfaceBuilder } from \"./PolyfaceBuilder\";\r\nimport { RangeLengthData } from \"./RangeLengthData\";\r\n\r\n/**\r\n * Structure to return multiple results from volume between facets and plane\r\n * @public\r\n */\r\nexport interface FacetProjectedVolumeSums {\r\n /** Summed (signed) volume */\r\n volume: number;\r\n /** summed area moments for positive contributions */\r\n positiveProjectedFacetAreaMoments?: MomentData;\r\n /** summed area moments for negative contributions */\r\n negativeProjectedFacetAreaMoments?: MomentData;\r\n}\r\n/**\r\n * Enumeration of cases for retaining facets among duplicates\r\n * @public\r\n */\r\nexport enum DuplicateFacetClusterSelector {\r\n /** retain none of the duplicates */\r\n SelectNone = 0,\r\n /** retain any one member among duplicates */\r\n SelectAny = 1,\r\n /** retain all members among duplicates */\r\n SelectAll = 2,\r\n /** retain one from any cluster with an odd number of faces */\r\n SelectOneByParity = 3,\r\n}\r\n/** PolyfaceQuery is a static class whose methods implement queries on a polyface or polyface visitor provided as a parameter to each method.\r\n * @public\r\n */\r\nexport class PolyfaceQuery {\r\n /** copy the points from a visitor into a Linestring3d in a Loop object */\r\n public static visitorToLoop(visitor: PolyfaceVisitor) {\r\n const ls = LineString3d.createPoints(visitor.point.getPoint3dArray());\r\n return Loop.create(ls);\r\n }\r\n /** Create a linestring loop for each facet of the polyface. */\r\n public static indexedPolyfaceToLoops(polyface: Polyface): BagOfCurves {\r\n const result = BagOfCurves.create();\r\n const visitor = polyface.createVisitor(1);\r\n while (visitor.moveToNextFacet()) {\r\n const loop = PolyfaceQuery.visitorToLoop(visitor);\r\n result.tryAddChild(loop);\r\n }\r\n return result;\r\n }\r\n /** Return the sum of all facets areas. */\r\n public static sumFacetAreas(source: Polyface | PolyfaceVisitor | undefined): number {\r\n let s = 0;\r\n if (source !== undefined) {\r\n if (source instanceof Polyface)\r\n return PolyfaceQuery.sumFacetAreas(source.createVisitor(1));\r\n\r\n source.reset();\r\n while (source.moveToNextFacet()) {\r\n s += PolygonOps.areaNormal(source.point.getPoint3dArray()).magnitude();\r\n }\r\n }\r\n return s;\r\n }\r\n /** sum volumes of tetrahedra from origin to all facets.\r\n * * if origin is omitted, the first point encountered (by the visitor) is used as origin.\r\n * * If the mesh is closed, this sum is the volume.\r\n * * If the mesh is not closed, this sum is the volume of a mesh with various additional facets\r\n * from the origin to facets.\r\n */\r\n public static sumTetrahedralVolumes(source: Polyface | PolyfaceVisitor, origin?: Point3d): number {\r\n let s = 0;\r\n if (source instanceof Polyface)\r\n return PolyfaceQuery.sumTetrahedralVolumes(source.createVisitor(0), origin);\r\n let myOrigin = origin;\r\n const facetOrigin = Point3d.create();\r\n const targetA = Point3d.create();\r\n const targetB = Point3d.create();\r\n source.reset();\r\n while (source.moveToNextFacet()) {\r\n if (myOrigin === undefined)\r\n myOrigin = source.point.getPoint3dAtUncheckedPointIndex(0);\r\n source.point.getPoint3dAtUncheckedPointIndex(0, facetOrigin);\r\n for (let i = 1; i + 1 < source.point.length; i++) {\r\n source.point.getPoint3dAtUncheckedPointIndex(i, targetA);\r\n source.point.getPoint3dAtUncheckedPointIndex(i + 1, targetB);\r\n s += myOrigin.tripleProductToPoints(facetOrigin, targetA, targetB);\r\n }\r\n }\r\n return s / 6.0;\r\n }\r\n /** sum (signed) volumes between facets and a plane.\r\n * Return a structure with multiple sums:\r\n * * volume = the sum of (signed) volumes between facets and the plane.\r\n * * positiveAreaMomentData, negativeProjectedFacetAreaMoments = moment data with centroid, area, and second moments with respect to the centroid.\r\n *\r\n */\r\n public static sumVolumeBetweenFacetsAndPlane(source: Polyface | PolyfaceVisitor, plane: Plane3dByOriginAndUnitNormal): FacetProjectedVolumeSums {\r\n if (source instanceof Polyface)\r\n return PolyfaceQuery.sumVolumeBetweenFacetsAndPlane(source.createVisitor(0), plane);\r\n const facetOrigin = Point3d.create();\r\n const targetA = Point3d.create();\r\n const targetB = Point3d.create();\r\n const triangleNormal = Vector3d.create();\r\n const planeNormal = plane.getNormalRef();\r\n let h0, hA, hB;\r\n let signedVolumeSum = 0.0;\r\n let signedTriangleArea;\r\n let singleFacetArea;\r\n const positiveAreaMomentSums = MomentData.create(undefined, true);\r\n const negativeAreaMomentSums = MomentData.create(undefined, true);\r\n const singleFacetProducts = Matrix4d.createZero();\r\n const projectToPlane = plane.getProjectionToPlane();\r\n\r\n source.reset();\r\n // For each facet ..\r\n // Form triangles from facet origin to each far edge.\r\n // Sum signed area and volume contributions\r\n // each \"projectedArea\" contribution is twice the area of a triangle.\r\n // each volume contribution is 3 times the actual volume -- (1/3) of the altitude sums was the centroid altitude.\r\n while (source.moveToNextFacet()) {\r\n source.point.getPoint3dAtUncheckedPointIndex(0, facetOrigin);\r\n h0 = plane.altitude(facetOrigin);\r\n singleFacetArea = 0;\r\n // within a single facets, the singleFacetArea sum is accumulated with signs of individual triangles.\r\n // For a non-convex facet, this can be a mixture of positive and negative areas.\r\n // The absoluteProjectedAreaSum contribution is forced positive after the sum for the facet.\r\n for (let i = 1; i + 1 < source.point.length; i++) {\r\n source.point.getPoint3dAtUncheckedPointIndex(i, targetA);\r\n source.point.getPoint3dAtUncheckedPointIndex(i + 1, targetB);\r\n facetOrigin.crossProductToPoints(targetA, targetB, triangleNormal);\r\n hA = plane.altitude(targetA);\r\n hB = plane.altitude(targetB);\r\n signedTriangleArea = planeNormal.dotProduct(triangleNormal);\r\n singleFacetArea += signedTriangleArea;\r\n signedVolumeSum += signedTriangleArea * (h0 + hA + hB);\r\n }\r\n\r\n singleFacetProducts.setZero();\r\n source.point.multiplyTransformInPlace(projectToPlane);\r\n PolygonOps.addSecondMomentAreaProducts(source.point, facetOrigin, singleFacetProducts);\r\n\r\n if (singleFacetArea > 0) {\r\n positiveAreaMomentSums.accumulateProductsFromOrigin(facetOrigin, singleFacetProducts, 1.0);\r\n } else {\r\n negativeAreaMomentSums.accumulateProductsFromOrigin(facetOrigin, singleFacetProducts, 1.0);\r\n\r\n }\r\n }\r\n positiveAreaMomentSums.shiftOriginAndSumsToCentroidOfSums();\r\n negativeAreaMomentSums.shiftOriginAndSumsToCentroidOfSums();\r\n const positiveAreaMoments = MomentData.inertiaProductsToPrincipalAxes(positiveAreaMomentSums.origin, positiveAreaMomentSums.sums);\r\n const negativeAreaMoments = MomentData.inertiaProductsToPrincipalAxes(negativeAreaMomentSums.origin, negativeAreaMomentSums.sums);\r\n\r\n return {\r\n volume: signedVolumeSum / 6.0,\r\n positiveProjectedFacetAreaMoments: positiveAreaMoments,\r\n negativeProjectedFacetAreaMoments: negativeAreaMoments,\r\n };\r\n }\r\n\r\n /** Return the inertia products [xx,xy,xz,xw, yw, etc] integrated over all all facets, as viewed from origin. */\r\n public static sumFacetSecondAreaMomentProducts(source: Polyface | PolyfaceVisitor, origin: Point3d): Matrix4d {\r\n if (source instanceof Polyface)\r\n return PolyfaceQuery.sumFacetSecondAreaMomentProducts(source.createVisitor(0), origin);\r\n const products = Matrix4d.createZero();\r\n source.reset();\r\n while (source.moveToNextFacet()) {\r\n PolygonOps.addSecondMomentAreaProducts(source.point, origin, products);\r\n }\r\n return products;\r\n }\r\n /** Return the inertia products [xx,xy,xz,xw, yw, etc] integrated over all tetrahedral volumes from origin */\r\n public static sumFacetSecondVolumeMomentProducts(source: Polyface | PolyfaceVisitor, origin: Point3d): Matrix4d {\r\n if (source instanceof Polyface)\r\n return PolyfaceQuery.sumFacetSecondVolumeMomentProducts(source.createVisitor(0), origin);\r\n const products = Matrix4d.createZero();\r\n source.reset();\r\n while (source.moveToNextFacet()) {\r\n PolygonOps.addSecondMomentVolumeProducts(source.point, origin, products);\r\n }\r\n return products;\r\n }\r\n\r\n /** Compute area moments for the mesh. In the returned MomentData:\r\n * * origin is the centroid.\r\n * * localToWorldMap has the origin and principal directions\r\n * * radiiOfGyration radii for rotation around the x,y,z axes.\r\n */\r\n public static computePrincipalAreaMoments(source: Polyface): MomentData | undefined {\r\n const origin = source.data.getPoint(0);\r\n if (!origin) return undefined;\r\n const inertiaProducts = PolyfaceQuery.sumFacetSecondAreaMomentProducts(source, origin);\r\n return MomentData.inertiaProductsToPrincipalAxes(origin, inertiaProducts);\r\n }\r\n /** Compute area moments for the mesh. In the returned MomentData:\r\n * * origin is the centroid.\r\n * * localToWorldMap has the origin and principal directions\r\n * * radiiOfGyration radii for rotation around the x,y,z axes.\r\n * * The result is only valid if the mesh is closed.\r\n * * There is no test for closure. Use `PolyfaceQuery.isPolyfaceClosedByEdgePairing(polyface)` to test for closure.\r\n */\r\n public static computePrincipalVolumeMoments(source: Polyface): MomentData | undefined {\r\n const origin = source.data.getPoint(0);\r\n if (!origin) return undefined;\r\n const inertiaProducts = PolyfaceQuery.sumFacetSecondVolumeMomentProducts(source, origin);\r\n return MomentData.inertiaProductsToPrincipalAxes(origin, inertiaProducts);\r\n }\r\n\r\n /**\r\n * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.\r\n */\r\n public static isPolyfaceClosedByEdgePairing(source: Polyface): boolean {\r\n return this.isPolyfaceManifold(source, false);\r\n }\r\n /** Test edges pairing in `source` mesh.\r\n * * for `allowSimpleBoundaries === false` true return means this is a closed 2-manifold surface\r\n * * for `allowSimpleBoundaries === true` true means this is a 2-manifold surface which may have boundary, but is still properly matched internally.\r\n * * Any edge with 3 ore more incident facets triggers `false` return.\r\n * * Any edge with 2 incident facets in the same direction triggers a `false` return.\r\n */\r\n public static isPolyfaceManifold(source: Polyface, allowSimpleBoundaries: boolean = false): boolean {\r\n const edges = new IndexedEdgeMatcher();\r\n const visitor = source.createVisitor(1);\r\n visitor.reset();\r\n while (visitor.moveToNextFacet()) {\r\n const numEdges = visitor.pointCount - 1;\r\n for (let i = 0; i < numEdges; i++) {\r\n edges.addEdge(visitor.clientPointIndex(i), visitor.clientPointIndex(i + 1), visitor.currentReadIndex());\r\n }\r\n }\r\n const badClusters: SortableEdgeCluster[] = [];\r\n edges.sortAndCollectClusters(undefined, allowSimpleBoundaries ? undefined : badClusters, undefined, badClusters);\r\n return badClusters.length === 0;\r\n }\r\n\r\n /**\r\n * Test if the facets in `source` occur in perfectly mated pairs, as is required for a closed manifold volume.\r\n * If not, extract the boundary edges as lines.\r\n * @param source\r\n */\r\n public static boundaryEdges(source: Polyface | PolyfaceVisitor | undefined, includeDanglers: boolean = true, includeMismatch: boolean = true, includeNull: boolean = true): CurveCollection | undefined {\r\n if (source === undefined)\r\n return undefined;\r\n const edges = new IndexedEdgeMatcher();\r\n const visitor = source instanceof Polyface ? source.createVisitor(1) : source;\r\n visitor.reset();\r\n while (visitor.moveToNextFacet()) {\r\n const numEdges = visitor.pointCount - 1;\r\n for (let i = 0; i < numEdges; i++) {\r\n edges.addEdge(visitor.clientPointIndex(i), visitor.clientPointIndex(i + 1), visitor.currentReadIndex());\r\n }\r\n }\r\n const bad1: SortableEdgeCluster[] = [];\r\n const bad2: SortableEdgeCluster[] = [];\r\n const bad0: SortableEdgeCluster[] = [];\r\n edges.sortAndCollectClusters(undefined, bad1, bad0, bad2);\r\n const badList = [];\r\n if (includeDanglers && bad1.length > 0)\r\n badList.push(bad1);\r\n if (includeMismatch && bad2.length > 0)\r\n badList.push(bad2);\r\n if (includeNull && bad0.length > 0)\r\n badList.push(bad0);\r\n if (badList.length === 0)\r\n return undefined;\r\n const sourcePolyface = visitor.clientPolyface()!;\r\n const result = new BagOfCurves();\r\n for (const list of badList) {\r\n for (const e of list) {\r\n const e1 = e instanceof SortableEdge ? e : e[0];\r\n const indexA = e1.vertexIndexA;\r\n const indexB = e1.vertexIndexB;\r\n const pointA = sourcePolyface.data.getPoint(indexA);\r\n const pointB = sourcePolyface.data.getPoint(indexB);\r\n if (pointA && pointB)\r\n result.tryAddChild(LineSegment3d.create(pointA, pointB));\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /** Find segments (within the linestring) which project to facets.\r\n * * Announce each pair of linestring segment and on-facet segment through a callback.\r\n * * Facets are ASSUMED to be convex and planar.\r\n */\r\n public static announceSweepLinestringToConvexPolyfaceXY(linestringPoints: GrowableXYZArray, polyface: Polyface,\r\n announce: AnnounceDrapePanel): any {\r\n const context = SweepLineStringToFacetContext.create(linestringPoints);\r\n if (context) {\r\n const visitor = polyface.createVisitor(0);\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n context.projectToPolygon(visitor.point, announce, polyface, visitor.currentReadIndex());\r\n }\r\n }\r\n }\r\n\r\n /** Execute context.projectToPolygon until its work estimates accumulate to workLimit */\r\n private static async continueAnnouunceSweepLinestringToConvexPolyfaceXY(\r\n context: SweepLineStringToFacetContext, visitor: PolyfaceVisitor, announce: AnnounceDrapePanel): Promise<number> {\r\n let workCount = 0;\r\n while ((workCount < this.asyncWorkLimit) && visitor.moveToNextFacet()) {\r\n workCount += context.projectToPolygon(visitor.point, announce, visitor.clientPolyface()!, visitor.currentReadIndex());\r\n }\r\n return workCount;\r\n }\r\n // amount of computation to do per step of async methods.\r\n private static _asyncWorkLimit = 1.e06;\r\n /** Set the limit on work during an async time blocks, and return the old value.\r\n * * This should be a large number -- default is 1.0e6\r\n * @internal\r\n */\r\n public static setAsyncWorkLimit(value: number): number { const a = this._asyncWorkLimit; this._asyncWorkLimit = value; return a; }\r\n /** Query the current limit on work during an async time block.\r\n * @internal\r\n */\r\n public static get asyncWorkLimit(): number { return this._asyncWorkLimit; }\r\n /** Number of \"await\" steps executed in recent async calls.\r\n * @internal\r\n */\r\n public static awaitBlockCount = 0;\r\n\r\n /** Find segments (within the linestring) which project to facets.\r\n * * Announce each pair of linestring segment and on-facet segment through a callback.\r\n * * Facets are ASSUMED to be convex and planar.\r\n * * REMARK: Although this is public, the usual use is via slightly higher level public methods, viz:\r\n * * asyncSweepLinestringToFacetsXYReturnChains\r\n * @internal\r\n */\r\n public static async asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints: GrowableXYZArray, polyface: Polyface,\r\n announce: AnnounceDrapePanel): Promise<number> {\r\n const context = SweepLineStringToFacetContext.create(linestringPoints);\r\n this.awaitBlockCount = 0;\r\n let workTotal = 0;\r\n if (context) {\r\n const visitor = polyface.createVisitor(0);\r\n let workCount;\r\n while (0 < (workCount = await Promise.resolve(PolyfaceQuery.continueAnnouunceSweepLinestringToConvexPolyfaceXY(context, visitor, announce)))) {\r\n workTotal += workCount;\r\n this.awaitBlockCount++;\r\n // console.log({ myWorkCount: workCount, myBlockCount: this.awaitBlockCount });\r\n }\r\n }\r\n // eslint-disable-next-line no-console\r\n // console.log({ myWorkTotal: workTotal, myBlockCount: this.awaitBlockCount });\r\n return workTotal;\r\n }\r\n\r\n /** Search the facets for facet subsets that are connected with at least vertex contact.\r\n * * Return array of arrays of facet indices.\r\n */\r\n public static partitionFacetIndicesByVertexConnectedComponent(polyface: Polyface | PolyfaceVisitor): number[][] {\r\n if (polyface instanceof Polyface) {\r\n return this.partitionFacetIndicesByVertexConnectedComponent(polyface.createVisitor(0));\r\n }\r\n // The polyface is really a visitor !!!\r\n const context = new UnionFindContext(this.visitorClientPointCount(polyface));\r\n for (polyface.reset(); polyface.moveToNextFacet();) {\r\n const firstVertexIndexOnThisFacet = polyface.pointIndex[0];\r\n for (const vertexIndex of polyface.pointIndex)\r\n context.mergeSubsets(firstVertexIndexOnThisFacet, vertexIndex);\r\n }\r\n const roots = context.collectRootIndices();\r\n const facetsInComponent: number[][] = [];\r\n const numRoots = roots.length;\r\n for (let i = 0; i < numRoots; i++) {\r\n facetsInComponent.push([]);\r\n }\r\n for (polyface.reset(); polyface.moveToNextFacet();) {\r\n const firstVertexIndexOnThisFacet = polyface.pointIndex[0];\r\n const rootVertexForThisFacet = context.findRoot(firstVertexIndexOnThisFacet);\r\n for (let rootIndex = 0; rootIndex < numRoots; rootIndex++) {\r\n if (roots[rootIndex] === rootVertexForThisFacet) {\r\n facetsInComponent[rootIndex].push(polyface.currentReadIndex());\r\n break;\r\n }\r\n }\r\n }\r\n return facetsInComponent;\r\n }\r\n /**\r\n * * Examine the normal orientation for each faces.\r\n * * Separate to 3 partitions:\r\n * * facets with normal in the positive direction of the vectorToEye (partition 0)\r\n * * facets with normal in the negative direction of the vectorToEye (partition 1)\r\n * * facets nearly perpendicular to the view vector (partition 2)\r\n * * Return array of arrays of facet indices.\r\n */\r\n public static partitionFacetIndicesByVisibilityVector(polyface: Polyface | PolyfaceVisitor, vectorToEye: Vector3d, sideAngleTolerance: Angle): number[][] {\r\n if (polyface instanceof Polyface) {\r\n return this.partitionFacetIndicesByVisibilityVector(polyface.createVisitor(0), vectorToEye, sideAngleTolerance);\r\n }\r\n const facetsInComponent: number[][] = [];\r\n for (let i = 0; i < 3; i++) {\r\n facetsInComponent.push([]);\r\n }\r\n const forwardComponent = facetsInComponent[0];\r\n const rearComponent = facetsInComponent[1];\r\n const sideComponent = facetsInComponent[2];\r\n const radiansTol = Math.max(sideAngleTolerance.radians, 1.0e-8);\r\n for (polyface.reset(); polyface.moveToNextFacet();) {\r\n const areaNormal = PolygonOps.areaNormalGo(polyface.point);\r\n const index = polyface.currentReadIndex();\r\n if (areaNormal) {\r\n const angle = areaNormal.angleFromPerpendicular(vectorToEye);\r\n if (Math.abs(angle.radians) < radiansTol) {\r\n sideComponent.push(index);\r\n } else if (areaNormal.dotProduct(vectorToEye) < 0) {\r\n rearComponent.push(index);\r\n } else {\r\n forwardComponent.push(index);\r\n }\r\n }\r\n }\r\n return facetsInComponent;\r\n }\r\n\r\n /**\r\n * Return the boundary of facets that are facing the eye.\r\n * @param polyface\r\n * @param visibilitySubset selector among the visible facet sets extracted by partitionFacetIndicesByVisibilityVector\r\n * * 0 ==> forward facing\r\n * * 1 ==> rear facing\r\n * * 2 ==> side facing\r\n * @param vectorToEye\r\n * @param sideAngleTolerance\r\n */\r\n public static boundaryOfVisibleSubset(polyface: IndexedPolyface, visibilitySelect: 0 | 1 | 2, vectorToEye: Vector3d, sideAngleTolerance: Angle = Angle.createDegrees(1.0e-3)): CurveCollection | undefined {\r\n const partitionedIndices = this.partitionFacetIndicesByVisibilityVector(polyface, vectorToEye, sideAngleTolerance);\r\n if (partitionedIndices[visibilitySelect].length === 0)\r\n return undefined;\r\n const visitor = IndexedPolyfaceSubsetVisitor.createSubsetVisitor(polyface, partitionedIndices[visibilitySelect], 1);\r\n return this.boundaryEdges(visitor, true, false, false);\r\n }\r\n\r\n /** Clone the facets in each partition to a separate polyface.\r\n *\r\n */\r\n public static clonePartitions(polyface: Polyface | PolyfaceVisitor, partitions: number[][]): Polyface[] {\r\n if (polyface instanceof Polyface) {\r\n return this.clonePartitions(polyface.createVisitor(0), partitions);\r\n }\r\n polyface.setNumWrap(0);\r\n const polyfaces: Polyface[] = [];\r\n const options = StrokeOptions.createForFacets();\r\n options.needNormals = polyface.normal !== undefined;\r\n options.needParams = polyface.param !== undefined;\r\n options.needColors = polyface.color !== undefined;\r\n options.needTwoSided = polyface.twoSided;\r\n for (const partition of partitions) {\r\n const builder = PolyfaceBuilder.create(options);\r\n polyface.reset();\r\n for (const facetIndex of partition) {\r\n polyface.moveToReadIndex(facetIndex);\r\n builder.addFacetFromVisitor(polyface);\r\n }\r\n polyfaces.push(builder.claimPolyface(true));\r\n }\r\n return polyfaces;\r\n }\r\n\r\n /** Clone facets that pass an filter function\r\n */\r\n public static cloneFiltered(source: Polyface | PolyfaceVisitor, filter: (visitor: PolyfaceVisitor) => boolean): Polyface{\r\n if (source instanceof Polyface) {\r\n return this.cloneFiltered(source.createVisitor(0), filter);\r\n }\r\n source.setNumWrap(0);\r\n const options = StrokeOptions.createForFacets();\r\n options.needNormals = source.normal !== undefined;\r\n options.needParams = source.param !== undefined;\r\n options.needColors = source.color !== undefined;\r\n options.needTwoSided = source.twoSided;\r\n const builder = PolyfaceBuilder.create(options);\r\n source.reset();\r\n for (; source.moveToNextFacet();){\r\n if (filter (source))\r\n builder.addFacetFromVisitor(source);\r\n }\r\n return builder.claimPolyface(true);\r\n }\r\n /** If the visitor's client is a polyface, simply return its point array length.\r\n * If not a polyface, visit all facets to find the largest index.\r\n */\r\n private static visitorClientPointCount(visitor: PolyfaceVisitor): number {\r\n const polyface = visitor.clientPolyface();\r\n if (polyface !== undefined)\r\n return polyface.data.point.length;\r\n visitor.reset();\r\n let maxIndex = -1;\r\n while (visitor.moveToNextFacet()) {\r\n for (const pointIndex of visitor.pointIndex)\r\n if (pointIndex > maxIndex)\r\n maxIndex = pointIndex;\r\n }\r\n return maxIndex + 1;\r\n }\r\n\r\n /** Search the facets for facet subsets that are connected with at least edge contact.\r\n * * Return array of arrays of facet indices.\r\n */\r\n public static partitionFacetIndicesByEdgeConnectedComponent(polyface: Polyface | PolyfaceVisitor): number[][] {\r\n if (polyface instanceof Polyface) {\r\n return this.partitionFacetIndicesByEdgeConnectedComponent(polyface.createVisitor(0));\r\n }\r\n polyface.setNumWrap(1);\r\n const matcher = new IndexedEdgeMatcher();\r\n polyface.reset();\r\n let numFacets = 0;\r\n while (polyface.moveToNextFacet()) {\r\n const numEdges = polyface.pointCount - 1;\r\n numFacets++;\r\n for (let i = 0; i < numEdges; i++) {\r\n matcher.addEdge(polyface.clientPointIndex(i), polyface.clientPointIndex(i + 1), polyface.currentReadIndex());\r\n }\r\n }\r\n const allEdges: SortableEdgeCluster[] = [];\r\n matcher.sortAndCollectClusters(allEdges, allEdges, allEdges, allEdges);\r\n const context = new UnionFindContext(numFacets);\r\n for (const cluster of allEdges) {\r\n if (cluster instanceof SortableEdge) {\r\n // this edge does not connect anywhere. Ignore it!!\r\n } else {\r\n const edge0 = cluster[0];\r\n for (let i = 1; i < cluster.length; i++)\r\n context.mergeSubsets(edge0.facetIndex, cluster[i].facetIndex);\r\n }\r\n }\r\n\r\n const roots = context.collectRootIndices();\r\n const facetsInComponent: number[][] = [];\r\n const numRoots = roots.length;\r\n for (let i = 0; i < numRoots; i++) {\r\n facetsInComponent.push([]);\r\n }\r\n\r\n for (let facetIndex = 0; facetIndex < numFacets; facetIndex++) {\r\n const rootOfFacet = context.findRoot(facetIndex);\r\n for (let rootIndex = 0; rootIndex < numRoots; rootIndex++) {\r\n if (roots[rootIndex] === rootOfFacet) {\r\n facetsInComponent[rootIndex].push(facetIndex);\r\n break;\r\n }\r\n }\r\n }\r\n return facetsInComponent;\r\n }\r\n /** Find segments (within the linestring) which project to facets.\r\n * * Assemble each segment pair as a facet in a new polyface\r\n * * Facets are ASSUMED to be convex and planar.\r\n */\r\n public static sweepLinestringToFacetsXYreturnSweptFacets(linestringPoints: GrowableXYZArray, polyface: Polyface): Polyface {\r\n const builder = PolyfaceBuilder.create();\r\n this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface,\r\n (_linestring: GrowableXYZArray, _segmentIndex: number,\r\n _polyface: Polyface, _facetIndex: number, points: Point3d[]) => {\r\n if (points.length === 4)\r\n builder.addQuadFacet(points);\r\n else if (points.length === 3)\r\n builder.addTriangleFacet(points);\r\n\r\n });\r\n return builder.claimPolyface(true);\r\n }\r\n /** Find segments (within the linestring) which project to facets.\r\n * * Return collected line segments\r\n */\r\n public static sweepLinestringToFacetsXYReturnLines(linestringPoints: GrowableXYZArray, polyface: Polyface): LineSegment3d[] {\r\n const drapeGeometry: LineSegment3d[] = [];\r\n this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface,\r\n (_linestring: GrowableXYZArray, _segmentIndex: number,\r\n _polyface: Polyface, _facetIndex: number, points: Point3d[], indexA: number, indexB: number) => {\r\n drapeGeometry.push(LineSegment3d.create(points[indexA], points[indexB]));\r\n });\r\n return drapeGeometry;\r\n }\r\n\r\n /** Find segments (within the linestring) which project to facets.\r\n * * Return chains.\r\n */\r\n public static sweepLinestringToFacetsXYReturnChains(linestringPoints: GrowableXYZArray, polyface: Polyface): LineString3d[] {\r\n const chainContext = ChainMergeContext.create();\r\n\r\n this.announceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface,\r\n (_linestring: GrowableXYZArray, _segmentIndex: number,\r\n _polyface: Polyface, _facetIndex: number, points: Point3d[], indexA: number, indexB: number) => {\r\n chainContext.addSegment(points[indexA], points[indexB]);\r\n });\r\n chainContext.clusterAndMergeVerticesXYZ();\r\n return chainContext.collectMaximalChains();\r\n }\r\n /** Find segments (within the linestring) which project to facets.\r\n * * This is done as a sequence of \"await\" steps.\r\n * * Each \"await\" step deals with approximately PolyfaceQuery.asyncWorkLimit pairings of (linestring edge) with (facet edge)\r\n * * PolyfaceQuery.setAsyncWorkLimit () to change work blocks from default\r\n * * Return chains.\r\n */\r\n public static async asyncSweepLinestringToFacetsXYReturnChains(linestringPoints: GrowableXYZArray, polyface: Polyface): Promise<LineString3d[]> {\r\n const chainContext = ChainMergeContext.create();\r\n\r\n await Promise.resolve(this.asyncAnnounceSweepLinestringToConvexPolyfaceXY(linestringPoints, polyface,\r\n (_linestring: GrowableXYZArray, _segmentIndex: number,\r\n _polyface: Polyface, _facetIndex: number, points: Point3d[], indexA: number, indexB: number) => {\r\n chainContext.addSegment(points[indexA], points[indexB]);\r\n }));\r\n chainContext.clusterAndMergeVerticesXYZ();\r\n const chains = chainContext.collectMaximalChains();\r\n return chains;\r\n }\r\n\r\n /**\r\n * * Examine ranges of facets.\r\n * * Return statistical summary of x,y,z ranges.\r\n */\r\n public static collectRangeLengthData(polyface: Polyface | PolyfaceVisitor): RangeLengthData {\r\n if (polyface instanceof Polyface) {\r\n return this.collectRangeLengthData(polyface.createVisitor(0));\r\n }\r\n const rangeData = new RangeLengthData();\r\n // polyface is a visitor ...\r\n for (polyface.reset(); polyface.moveToNextFacet();)\r\n rangeData.accumulateGrowableXYZArrayRange(polyface.point);\r\n return rangeData;\r\n }\r\n\r\n /** Clone the facets, inserting vertices (within edges) where points not part of each facet's vertex indices impinge within edges.\r\n *\r\n */\r\n public static cloneWithTVertexFixup(polyface: Polyface): IndexedPolyface {\r\n const oldFacetVisitor = polyface.createVisitor(1); // This is to visit the existing facets.\r\n const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.\r\n const rangeSearcher = XYPointBuckets.create(polyface.data.point, 30)!;\r\n const builder = PolyfaceBuilder.create();\r\n const edgeRange = Range3d.createNull();\r\n const point0 = Point3d.create();\r\n const point1 = Point3d.create();\r\n const spacePoint = Point3d.create();\r\n const segment = LineSegment3d.create(point0, point1);\r\n\r\n for (oldFacetVisitor.reset(); oldFacetVisitor.moveToNextFacet();) {\r\n newFacetVisitor.clearArrays();\r\n for (let i = 0; i + 1 < oldFacetVisitor.point.length; i++) {\r\n // each base vertex is part of the result ...\r\n oldFacetVisitor.point.getPoint3dAtUncheckedPointIndex(i, point0);\r\n oldFacetVisitor.point.getPoint3dAtUncheckedPointIndex(i + 1, point1);\r\n newFacetVisitor.pushDataFrom(oldFacetVisitor, i);\r\n edgeRange.setNull();\r\n LineSegment3d.create(point0, point1, segment);\r\n let detailArray: CurveLocationDetail[] | undefined;\r\n edgeRange.extend(point0);\r\n edgeRange.extend(point1);\r\n rangeSearcher.announcePointsInRange(edgeRange, (index: number, _x: number, _y: number, _z: number) => {\r\n // x,y,z has x,y within the range of the search ... test for exact on (in full 3d!)\r\n polyface.data.point.getPoint3dAtUncheckedPointIndex(index, spacePoint);\r\n const detail = segment.closestPoint(spacePoint, false);\r\n if (undefined !== detail) {\r\n if (detail.fraction >= 0.0 && detail.fraction < 1.0 && !detail.point.isAlmostEqual(point0) && !detail.point.isAlmostEqual(point1)\r\n && spacePoint.isAlmostEqual(detail.point)) {\r\n if (detailArray === undefined)\r\n detailArray = [];\r\n detail.a = index;\r\n detailArray.push(detail);\r\n }\r\n }\r\n return true;\r\n });\r\n if (detailArray !== undefined) {\r\n detailArray.sort((a: CurveLocationDetail, b: CurveLocationDetail) => (a.fraction - b.fraction));\r\n for (const d of detailArray) {\r\n newFacetVisitor.pushInterpolatedDataFrom(oldFacetVisitor, i, d.fraction, i + 1);\r\n }\r\n }\r\n }\r\n builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color);\r\n }\r\n\r\n return builder.claimPolyface();\r\n }\r\n /**\r\n * * Each array input structure is: [facetIndex, vertexIndex0, vertexIndex1, ....]\r\n * * Vertex indices assumed reversed so it\r\n * * vertexIndex0 is the lowest index on the facet\r\n * * vertexIndex1 is the lowest neighbor of vertex0\r\n * * first different entry among vertex indices determines lexical result.\r\n * * Hence facets with duplicate indices (whether forward or reversed) are considered equal.\r\n * @param arrayA\r\n * @param arrayB\r\n */\r\n private static compareFacetIndexAndVertexIndices(arrayA: number[], arrayB: number[]): number {\r\n if (arrayA.length !== arrayB.length)\r\n return arrayA.length - arrayB.length;\r\n for (let i = 1; i < arrayA.length; i++) {\r\n if (arrayA[i] !== arrayB[i]) {\r\n return arrayA[i] - arrayB[i];\r\n }\r\n }\r\n return 0;\r\n }\r\n /**\r\n * * Return an array of arrays describing facet duplication.\r\n * @param includeSingletons if true, non-duplicated facets are included in the output.\r\n * * Each array `entry` in the output contains read indices of a cluster of facets with the same vertex indices.\r\n */\r\n public static collectDuplicateFacetIndices(polyface: Polyface, includeSingletons: boolean = false): number[][] {\r\n const result: number[][] = [];\r\n this.announceDuplicateFacetIndices(polyface,\r\n (clusterFacetIndices: number[]) => {\r\n if (includeSingletons || clusterFacetIndices.length > 1)\r\n result.push(clusterFacetIndices.slice());\r\n });\r\n return result;\r\n }\r\n /**\r\n * * Return an array of arrays describing facet duplication.\r\n * @param includeSingletons if true, non-duplicated facets are included in the output.\r\n * * Each array `entry` in the output contains read indices of a cluster of facets with the same vertex indices.\r\n */\r\n public static announceDuplicateFacetIndices(polyface: Polyface, announceCluster: (clusterFacetIndices: number[]) => void) {\r\n const visitor = polyface.createVisitor(0); // This is to visit the existing facets.\r\n const facetIndexAndVertexIndices: number[][] = [];\r\n for (visitor.reset(); visitor.moveToNextFacet();) {\r\n const facetIndex = visitor.currentReadIndex();\r\n const entry = [facetIndex];\r\n const pointIndex = visitor.pointIndex;\r\n const numPointsThisFacet = pointIndex.length;\r\n let lowIndex = 0;\r\n // find the lowest point index ...\r\n for (let i = 1; i < visitor.pointIndex.length; i++) {\r\n if (pointIndex[i] < pointIndex[lowIndex])\r\n lowIndex = i;\r\n }\r\n // find its lowest neighbor -- assemble sort array in that direction\r\n if (pointIndex[(lowIndex + 1) % numPointsThisFacet] < pointIndex[(lowIndex + numPointsThisFacet - 1) % numPointsThisFacet]) {\r\n for (let i = 0; i < numPointsThisFacet; i++) {\r\n entry.push(pointIndex[(lowIndex + i) % numPointsThisFacet]);\r\n }\r\n } else {\r\n for (let i = 0; i < numPointsThisFacet; i++) {\r\n entry.push(pointIndex[(lowIndex + numPointsThisFacet - i) % numPointsThisFacet]);\r\n }\r\n }\r\n facetIndexAndVertexIndices.push(entry);\r\n }\r\n facetIndexAndVertexIndices.sort(this.compareFacetIndexAndVertexIndices);\r\n let i0, i1;\r\n const n = facetIndexAndVertexIndices.length;\r\n const clusterArray = [];\r\n for (i0 = 0; i0 < n; i0 = i1) {\r\n i1 = i0 + 1;\r\n clusterArray.length = 0;\r\n clusterArray.push(facetIndexAndVertexIndices[i0][0]);\r\n while (i1 < n && 0 === this.compareFacetIndexAndVertexIndices(facetIndexAndVertexIndices[i0], facetIndexAndVertexIndices[i1])) {\r\n clusterArray.push(facetIndexAndVertexIndices[i1][0]);\r\n i1++;\r\n }\r\n announceCluster(clusterArray);\r\n }\r\n }\r\n /** Return a new facet set with a subset of facets in source\r\n * @param includeSingletons true to copy facets that only appear once\r\n * @param clusterSelector indicates whether duplicate clusters are to have 0, 1, or all facets included\r\n */\r\n public static cloneByFacetDuplication(source: Polyface, includeSingletons: boolean, clusterSelector: DuplicateFacetClusterSelector): Polyface {\r\n const builder = PolyfaceBuilder.create();\r\n const visitor = source.createVisitor(0);\r\n this.announceDuplicateFacetIndices(source,\r\n (clusterFacetIndices: number[]) => {\r\n let numToSelect = 0;\r\n if (clusterFacetIndices.length === 1) {\r\n if (includeSingletons)\r\n numToSelect = 1;\r\n } else if (clusterFacetIndices.length > 1) {\r\n if (clusterSelector === DuplicateFacetClusterSelector.SelectAny)\r\n numToSelect = 1;\r\n else if (clusterSelector === DuplicateFacetClusterSelector.SelectAll)\r\n numToSelect = clusterFacetIndices.length;\r\n else if (clusterSelector === DuplicateFacetClusterSelector.SelectOneByParity)\r\n numToSelect = (clusterFacetIndices.length & 0x01) === 0x01 ? 1 : 0;\r\n }\r\n for (let i = 0; i < numToSelect; i++) {\r\n visitor.moveToReadIndex(clusterFacetIndices[i]);\r\n builder.addFacetFromVisitor(visitor);\r\n }\r\n });\r\n return builder.claimPolyface();\r\n }\r\n /** Clone the facets, inserting removing points that are simply within colinear edges.\r\n *\r\n */\r\n public static cloneWithColinearEdgeFixup(polyface: Polyface): Polyface {\r\n const oldFacetVisitor = polyface.createVisitor(2); // This is to visit the existing facets.\r\n const newFacetVisitor = polyface.createVisitor(0); // This is to build the new facets.\r\n const builder = PolyfaceBuilder.create();\r\n const vector01 = Vector3d.create();\r\n const vector12 = Vector3d.create();\r\n const numPoint = polyface.data.point.length;\r\n const pointState = new Int32Array(numPoint);\r\n // FIRST PASS -- in each sector of each facet, determine if the sector has colinear incoming and outgoing vectors.\r\n // Mark each point as\r\n // 0 unvisited\r\n // -1 incident to a non-colinear sector\r\n // n incident to n colinear sectors\r\n for (oldFacetVisitor.reset(); oldFacetVisitor.moveToNextFacet();) {\r\n for (let i = 0; i + 2 < oldFacetVisitor.point.length; i++) {\r\n // each base vertex is part of the result ...\r\n oldFacetVisitor.point.vectorIndexIndex(i, i + 1, vector01);\r\n oldFacetVisitor.point.vectorIndexIndex(i + 1, i + 2, vector12);\r\n const pointIndex = oldFacetVisitor.clientPointIndex(i + 1);\r\n if (pointState[pointIndex] >= 0) {\r\n const theta = vector01.angleTo(vector12);\r\n if (theta.isAlmostZero) {\r\n pointState[pointIndex]++;\r\n } else {\r\n pointState[pointIndex] = -1;\r\n }\r\n }\r\n }\r\n }\r\n // SECOND PASS -- make copies, omitting references to points at colinear sectors\r\n for (oldFacetVisitor.reset(); oldFacetVisitor.moveToNextFacet();) {\r\n newFacetVisitor.clearArrays();\r\n for (let i = 0; i + 2 < oldFacetVisitor.point.length; i++) {\r\n const pointIndex = oldFacetVisitor.clientPointIndex(i);\r\n if (pointState[pointIndex] < 0) {\r\n newFacetVisitor.pushDataFrom(oldFacetVisitor, i);\r\n }\r\n }\r\n if (newFacetVisitor.point.length > 2)\r\n builder.addFacetFromGrowableArrays(newFacetVisitor.point, newFacetVisitor.normal, newFacetVisitor.param, newFacetVisitor.color);\r\n }\r\n return builder.claimPolyface();\r\n }\r\n\r\n /**\r\n * Set the edge visibility for specified edges in the polyface.\r\n * @param polyface mesh to be edited\r\n * @param clusters array of edge references\r\n * @param value visibility value (true or false)\r\n */\r\n private static setEdgeVisibility(polyface: IndexedPolyface, clusters: SortableEdgeCluster[], value: boolean) {\r\n for (const cluster of clusters) {\r\n if (cluster instanceof SortableEdge) {\r\n this.setSingleEdgeVisibility(polyface, cluster.facetIndex, cluster.vertexIndexA, value);\r\n } else if (Array.isArray(cluster)) {\r\n for (const e1 of cluster)\r\n this.setSingleEdgeVisibility(polyface, e1.facetIndex, e1.vertexIndexA, value);\r\n }\r\n }\r\n }\r\n /**\r\n * Set the visibility of a particular edge of a particular facet.\r\n * @param polyface containing polyface\r\n * @param facetIndex facet index\r\n * @param vertexIndex vertex index (in vertex array)\r\n * @param value visibility value.\r\n */\r\n public static setSingleEdgeVisibility(polyface: IndexedPolyface, facetIndex: number, vertexIndex: number, value: boolean) {\r\n const data = polyface.data;\r\n const index0 = polyface.facetIndex0(facetIndex);\r\n const index1 = polyface.facetIndex1(facetIndex);\r\n for (let i = index0; i < index1; i++)\r\n if (data.pointIndex[i] === vertexIndex)\r\n data.edgeVisible[i] = value;\r\n }\r\n /** Load all half edges from a mesh to an IndexedEdgeMatcher */\r\n public static createIndexedEdges(visitor: PolyfaceVisitor): IndexedEdgeMatcher {\r\n const edges = new IndexedEdgeMatcher();\r\n visitor.reset();\r\n while (visitor.moveToNextFacet()) {\r\n const numEdges = visitor.pointCount - 1;\r\n for (let i = 0; i < numEdges; i++) {\r\n edges.addEdge(visitor.clientPointIndex(i), visitor.clientPointIndex(i + 1), visitor.currentReadIndex());\r\n }\r\n }\r\n return edges;\r\n }\r\n /**\r\n * * Find mated pairs among facet edges.\r\n * * Mated pairs have the same vertex indices appearing in opposite order.\r\n * * Mark all non-mated pairs invisible.\r\n * * At mated pairs\r\n * * if angle across the edge is larger than `sharpEdgeAngle`, mark visible\r\n * * otherwise mark invisible.\r\n * @param mesh mesh to be marked\r\n */\r\n public static markPairedEdgesInvisible(mesh: IndexedPolyface, sharpEdgeAngle?: Angle) {\r\n const visitor = mesh.createVisitor(1);\r\n const edges = this.createIndexedEdges(visitor);\r\n\r\n const pairedEdges: SortableEdgeCluster[] = [];\r\n const boundaryEdges: SortableEdgeCluster[] = [];\r\n edges.sortAndCollectClusters(pairedEdges, boundaryEdges, boundaryEdges, boundaryEdges);\r\n this.markAllEdgeVisibility(mesh, false);\r\n this.setEdgeVisibility(mesh, boundaryEdges, true);\r\n if (sharpEdgeAngle !== undefined) {\r\n const normal0 = Vector3d.create();\r\n const normal1 = Vector3d.create();\r\n for (const pair of pairedEdges) {\r\n if (Array.isArray(pair) && pair.length === 2) {\r\n const e0 = pair[0];\r\n const e1 = pair[1];\r\n if (undefined !== PolyfaceQuery.computeFacetUnitNormal(visitor, e0.facetIndex, normal0)\r\n && undefined !== PolyfaceQuery.computeFacetUnitNormal(visitor, e1.facetIndex, normal1)) {\r\n const edgeAngle = normal0.smallerUnorientedAngleTo(normal1);\r\n if (edgeAngle.radians > sharpEdgeAngle.radians) {\r\n this.setSingleEdgeVisibility(mesh, e0.facetIndex, e0.vertexIndexA, true);\r\n this.setSingleEdgeVisibility(mesh, e1.facetIndex, e1.vertexIndexA, true);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /** Try to compute a unit normal for a facet accessible through a visitor.\r\n * * Unit normal is computed by `PolygonOps.unitNormal` with the points around the facet.\r\n */\r\n public static computeFacetUnitNormal(visitor: PolyfaceVisitor, facetIndex: number, result?: Vector3d): Vector3d | undefined {\r\n if (!result)\r\n result = Vector3d.create();\r\n if (visitor.moveToReadIndex(facetIndex)) {\r\n if (PolygonOps.unitNormal(visitor.point, result))\r\n return result;\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * * Mark all edge visibilities in the IndexedPolyface\r\n * @param mesh mesh to be marked\r\n * @param value true for visible, false for hidden\r\n */\r\n\r\n public static markAllEdgeVisibility(mesh: IndexedPolyface, value: boolean) {\r\n const data = mesh.data;\r\n for (let i = 0; i < data.edgeVisible.length; i++)\r\n data.edgeVisible[i] = value;\r\n }\r\n /**\r\n * * Examine adjacent facet orientations throughout the mesh\r\n * * If possible, reverse a subset to achieve proper pairing.\r\n * @param mesh\r\n */\r\n public static reorientVertexOrderAroundFacetsForConsistentOrientation(mesh: IndexedPolyface): boolean {\r\n return FacetOrientationFixup.doFixup(mesh);\r\n }\r\n\r\n /**\r\n * Set up indexed normals with one normal in the plane of each facet of the mesh.\r\n * @param polyface\r\n */\r\n public static buildPerFaceNormals(polyface: IndexedPolyface) {\r\n BuildAverageNormalsContext.buildPerFaceNormals(polyface);\r\n }\r\n\r\n /**\r\n * * At each vertex of the mesh\r\n * * Find clusters of almost parallel normals\r\n * * Compute simple average of those normals\r\n * * Index to the averages\r\n * * For typical meshes, this correctly clusters adjacent normals.\r\n * * One cam imagine a vertex with multiple \"smooth cone-like\" sets of incident facets such that averaging occurs among two nonadjacent cones. But this does not seem to be a problem in practice.\r\n * @param polyface polyface to update.\r\n * @param toleranceAngle averaging is done between normals up to this angle.\r\n */\r\n public static buildAverageNormals(polyface: IndexedPolyface, toleranceAngle: Angle = Angle.createDegrees(31.0)) {\r\n BuildAverageNormalsContext.buildFastAverageNormals(polyface, toleranceAngle);\r\n }\r\n\r\n}\r\n\r\n/** Announce the points on a drape panel.\r\n * * The first two points in the array are always along the draped line segment.\r\n * * The last two are always on the facet.\r\n * * If there are 4 points, those two pairs are distinct, i.e. both segment points are to the same side of the facet.\r\n * * If there are 3 points, those two pairs share an on-facet point.\r\n * * The panel is ordered so the outward normal is to the right of the draped segment.\r\n * @param indexAOnFacet index (in points) of the point that is the first facet point for moving forward along the linestring\r\n * @param indexBOnFacet index (in points) of the point that is the second facet point for moving forward along the linestring\r\n * @public\r\n */\r\nexport type AnnounceDrapePanel = (linestring: GrowableXYZArray, segmentIndex: number,\r\n polyface: Polyface, facetIndex: number, points: Point3d[], indexAOnFacet: number, indexBOnFacet: number) => any;\r\n\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RangeLengthData.d.ts","sourceRoot":"","sources":["../../src/polyface/RangeLengthData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,qBAAa,eAAe;IAC1B,kEAAkE;IAC3D,KAAK,EAAE,OAAO,CAAC;IACtB,MAAM;IACC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;;IAQxB,OAAO,CAAC,UAAU,CAAU;IAC5B,2EAA2E;IACpE,+BAA+B,CAAC,MAAM,EAAE,gBAAgB;CAOhE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RangeLengthData.js","sourceRoot":"","sources":["../../src/polyface/RangeLengthData.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+CAA8C;AAC9C,qDAAkD;AAElD;;;;;;;;;;;GAWG;AACH,MAAa,eAAe;IAO1B;QACE,IAAI,CAAC,KAAK,GAAG,eAAO,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,eAAO,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IACpE,+BAA+B,CAAC,MAAwB;QAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AAvBD,0CAuBC","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { UsageSums } from \"../numerics/UsageSums\";\r\n\r\n/**\r\n * Accumulated data for x,y,z length statistics in ranges.\r\n * * Usage pattern:\r\n * * create a enw RangeLengthData:\r\n * * `myData = new RangeLengthData ();`\r\n * * announce ranges to be accumulated:\r\n * * (many times) `myData.accumulateRowableXYZArrayRange (points);\r\n * * access data in public members:\r\n * * `myData.range` -- the composite range.\r\n * * `myData.xLength`, `myData.yLength`, `myData.zLength` -- mean, minMax, count, and standardDeviation of range lengths in x,y,z directions.\r\n * @public\r\n */\r\nexport class RangeLengthData {\r\n /** Overall range of all data observed by `accumulate` methods. */\r\n public range: Range3d;\r\n /** */\r\n public xSums: UsageSums;\r\n public ySums: UsageSums;\r\n public zSums: UsageSums;\r\n public constructor() {\r\n this.range = Range3d.createNull();\r\n this.xSums = new UsageSums();\r\n this.ySums = new UsageSums();\r\n this.zSums = new UsageSums();\r\n this._workRange = Range3d.createNull();\r\n }\r\n private _workRange: Range3d;\r\n /** Extend the range and length sums by the range of points in an array. */\r\n public accumulateGrowableXYZArrayRange(points: GrowableXYZArray) {\r\n points.setRange(this._workRange);\r\n this.range.extendRange(this._workRange);\r\n this.xSums.accumulate(this._workRange.xLength());\r\n this.ySums.accumulate(this._workRange.yLength());\r\n this.zSums.accumulate(this._workRange.zLength());\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedNumericData.d.ts","sourceRoot":"","sources":["../../src/polyface/TaggedNumericData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH;;;GAGG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;;MAGE;IACJ,KAAa,oBAAoB;QAC7B,oDAAoD;QACpD,kBAAkB,QAAQ;KAC3B;IACD;;;OAGG;IACL,KAAY,iBAAiB;QACzB,mBAAmB,IAAI;QACvB,YAAY,IAAI;QAChB,IAAI,IAAI;QACR,QAAQ,IAAI;KACb;IACD;;;OAGG;IACL,KAAa,sBAAsB;QAC/B,4DAA4D;QAC5D,UAAU,OAAO;QACjB,4FAA4F;QAC5F,iBAAiB,OAAO;QACxB,kHAAkH;QAClH,2BAA2B,OAAO;KACnC;CACF;AACD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,6FAA6F;IACtF,IAAI,EAAE,MAAM,CAAC;IACpB,+FAA+F;IACxF,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,GAAE,MAAU,EAAE,IAAI,GAAE,MAAU,EACnD,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE;IAO7C,qDAAqD;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oDAAoD;IAC7C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;;SAIK;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAK7C;;;;OAIG;IACK,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOtD;;;;;;OAMG;IACI,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAUpG;;;;;;OAMG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAU9G;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAKjE,0CAA0C;IACnC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;WAWzC,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO;IAOnH,4BAA4B;IACnB,KAAK,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;CAS5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedNumericData.js","sourceRoot":"","sources":["../../src/polyface/TaggedNumericData.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/** @packageDocumentation\r\n * @module Polyface\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\n\r\n/**\r\n * `TaggedNumericConstants` defines enums with constant values for use in tags of [[TaggedNumericData]]\r\n * @public\r\n */\r\nexport namespace TaggedNumericConstants {\r\n /** Reserved values for the \"tagA\" member of [[TaggedNumericData]]\r\n * @public\r\n *\r\n */\r\nexport enum TaggedNumericTagType {\r\n /** `tagA` value identifying a subdivision surface*/\r\n SubdivisionSurface = -1000\r\n }\r\n /**\r\n * `tagB` values for supported types of subdivision surfaces\r\n * @public\r\n */\r\nexport enum SubdivisionMethod {\r\n ChooseBasedOnFacets = 0,\r\n CatmullClark = 1,\r\n Loop = 2,\r\n DooSabin = 3\r\n }\r\n /**\r\n * numeric values for subdivision control. These are entered in the intData array as first of a pair.\r\n * @public\r\n */\r\nexport enum SubdivisionControlCode {\r\n /** pair (FixedDepth, d) indicates subdivision to depth d */\r\n FixedDepth = -100,\r\n /** pair (FixedDepth, index) indicates absolute tolerance with value in doubleData[index] */\r\n AbsoluteTolerance = -101,\r\n /** pair (FixedDepth, index) indicates tolerance as a fraction of base mesh range is found in doubleData[index] */\r\n FractionOfRangeBoxTolerance = -102\r\n }\r\n}\r\n/**\r\n * Structure with 2 integer tags and optional arrays of integers, doubles, points, vectors, and geometry.\r\n * * In typescript/javascript, all integer numbers that can be non-integer. Please do not insert non-integers in the integer array.\r\n * @public\r\n */\r\nexport class TaggedNumericData {\r\n /** Application specific primary tag. See reserved values in [[TaggedNumericConstants]] */\r\n public tagA: number;\r\n /** Application specific secondary tag. See reserved values in [[TaggedNumericConstants]] */\r\n public tagB: number;\r\n\r\n public constructor(tagA: number = 0, tagB: number = 0,\r\n intData?: number[], doubleData?: number[]\r\n ) {\r\n this.tagA = tagA;\r\n this.tagB = tagB;\r\n if (intData) this.intData = intData;\r\n if (doubleData) this.doubleData = doubleData;\r\n }\r\n/** Integer data with application-specific meaning */\r\n public intData?: number[];\r\n/** Double data with application-specific meaning */\r\npublic doubleData?: number[];\r\n\r\n/**\r\n * push a pair of int values on the intData array.\r\n * @param intA\r\n * @param intB\r\n */\r\n public pushIntPair(intA: number, intB: number) {\r\n if (!this.intData) this.intData = [];\r\n this.intData.push(intA);\r\n this.intData.push(intB);\r\n }\r\n /**\r\n * push a pair of int values on the intData array.\r\n * @param intA int to push on the intData array, followed by index of valueB in the doubleData array.\r\n * @param valueB value to push on the doubleData array.\r\n */\r\n public pushIndexedDouble(intA: number, valueB: number) {\r\n if (!this.intData) this.intData = [];\r\n if (!this.doubleData) this.doubleData = [];\r\n this.intData.push(intA);\r\n this.intData.push(this.doubleData.length);\r\n this.doubleData.push(valueB);\r\n }\r\n /**\r\n * Search pairs in the intData array for a pair (targetTag, value). Return the value, possibly restricted to (minValue,maxValue)\r\n * @param targetTag\r\n * @param minValue\r\n * @param maxValue\r\n * @param defaultValue\r\n */\r\n public tagToInt(targetTag: number, minValue: number, maxValue: number, defaultValue: number): number {\r\n if (this.intData) {\r\n for (let i = 0; i + 1 < this.intData.length; i += 2){\r\n if (this.intData[i] === targetTag)\r\n return Math.min(Math.max(this.intData[i + 1], minValue), maxValue);\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n /**\r\n * Search pairs in the intData array for a pair (targetTag, index). Return getDoubleData[index] value, possibly restricted to (minValue,maxValue)\r\n * @param targetTag\r\n * @param minValue\r\n * @param maxValue\r\n * @param defaultValue\r\n */\r\n public tagToIndexedDouble(targetTag: number, minValue: number, maxValue: number, defaultValue: number): number {\r\n if (this.intData) {\r\n for (let i = 0; i + 1 < this.intData.length; i += 2){\r\n if (this.intData[i] === targetTag) {\r\n return Geometry.clamp(this.getDoubleData (this.intData[i + 1], defaultValue), minValue, maxValue);\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n /**\r\n * get doubleData[index], or indicated default if the index is out of range\r\n * @param index\r\n * @param defaultValue\r\n */\r\n public getDoubleData(index: number, defaultValue: number): number{\r\n if (this.doubleData && 0 <= index && index < this.doubleData.length)\r\n return this.doubleData[index];\r\n return defaultValue;\r\n }\r\n /** Apply isAlmostEqual to all members. */\r\n public isAlmostEqual(other: TaggedNumericData): boolean{\r\n if (other === undefined)\r\n return false;\r\n if (this.tagA !== other.tagA)\r\n return false;\r\n if (this.tagB !== other.tagB)\r\n return false;\r\n return Geometry.exactEqualNumberArrays(this.intData, other.intData)\r\n && Geometry.almostEqualArrays<number>(this.doubleData, other.doubleData, Geometry.isAlmostEqualNumber);\r\n }\r\n\r\n public static areAlmostEqual(dataA: TaggedNumericData | undefined, dataB: TaggedNumericData | undefined): boolean{\r\n if (dataA === undefined && dataB === undefined)\r\n return true;\r\n if (dataA !== undefined && dataB !== undefined)\r\n return dataA.isAlmostEqual(dataB);\r\n return false;\r\n }\r\n/** Return a deep clone. */\r\n public clone(result?: TaggedNumericData): TaggedNumericData {\r\n if (!result)\r\n result = new TaggedNumericData(this.tagA, this.tagB);\r\n if (this.intData)\r\n result.intData = this.intData.slice();\r\n if (this.doubleData)\r\n result.doubleData = this.doubleData.slice();\r\n return result;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TriangleCandidate.d.ts","sourceRoot":"","sources":["../../src/polyface/TriangleCandidate.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAG1E;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAU;IACnB,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO;IAMP;;;OAGG;IACa,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB;IAQpE;;;OAGG;WACW,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;IAiB1O,2CAA2C;IAC3C,IAAW,OAAO,IAAI,OAAO,CAA0B;IACvD;;;;;OAKG;IACI,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM;IAKnC;;;OAGG;IACI,iBAAiB;IAIxB;;;OAGG;IACa,KAAK,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;IAKpE;;;;;;;;OAQG;WACW,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,iBAAiB;IAU/I;;;;OAIG;WACW,6BAA6B,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB;CAIlG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TriangleCandidate.js","sourceRoot":"","sources":["../../src/polyface/TriangleCandidate.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/** @packageDocumentation\r\n * @module Polyface\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { BarycentricTriangle } from \"../geometry3d/BarycentricTriangle\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\n\r\n/**\r\n * `TriangleCandidate` is a `BarycentricTriangle` with additional application-specific label data:\r\n * * `quality` = numeric indicator of quality (e.g. aspect ratio of this triangle or a combination with other triangles)\r\n * * `isValid` = boolean flag.\r\n * * `id` = application specific identifier\r\n * @internal\r\n */\r\nexport class TriangleCandidate extends BarycentricTriangle {\r\n private _quality: number;\r\n private _isValid: boolean;\r\n public id: number;\r\n private constructor(point0: Point3d, point1: Point3d, point2: Point3d, id: number, quality: number, isValid: boolean) {\r\n super(point0, point1, point2);\r\n this._isValid = isValid;\r\n this._quality = quality;\r\n this.id = id;\r\n }\r\n /**\r\n * Copy all coordinate and label data from `other` to this.\r\n * @param other source triangle\r\n */\r\n public override setFrom(other: TriangleCandidate): TriangleCandidate {\r\n super.setFrom(other);\r\n this._isValid = other._isValid;\r\n this._quality = other._quality;\r\n this.id = other.id;\r\n return this;\r\n }\r\n\r\n /** Create (always) a TriangleCandidate.\r\n * * Access points from multiple `IndexedXYZCollection`\r\n * * mark invalid if any indices are invalid.\r\n */\r\n public static createFromIndexedXYZ(source0: IndexedXYZCollection, index0: number, source1: IndexedXYZCollection, index1: number, source2: IndexedXYZCollection, index2: number, id: number, result?: TriangleCandidate): TriangleCandidate {\r\n if (!result)\r\n result = new TriangleCandidate(Point3d.create(), Point3d.create(), Point3d.create(), id, 0.0, false);\r\n result.id = id;\r\n let numValid = 0;\r\n if (undefined !== source0.getPoint3dAtCheckedPointIndex(index0, result.points[0]))\r\n numValid++;\r\n if (undefined !== source1.getPoint3dAtCheckedPointIndex(index1, result.points[1]))\r\n numValid++;\r\n if (undefined !== source2.getPoint3dAtCheckedPointIndex(index2, result.points[2]))\r\n numValid++;\r\n if (numValid === 3)\r\n result.updateAspectRatio();\r\n else\r\n result.markInvalid();\r\n return result;\r\n }\r\n /** (property) return the validity flag. */\r\n public get isValid(): boolean { return this._isValid; }\r\n /**\r\n * * Mark this triangle invalid.\r\n * * optionally set aspect ratio.\r\n * * points are not changed\r\n * @param aspectRatio\r\n */\r\n public markInvalid(quality?: number) {\r\n this._isValid = false;\r\n if (quality !== undefined)\r\n this._quality = quality;\r\n }\r\n /**\r\n * * Recompute the aspect ratio.\r\n * * Mark invalid if aspect ratio is 0 or negative.\r\n */\r\n public updateAspectRatio() {\r\n this._quality = super.aspectRatio;\r\n this._isValid = this._quality > 0.0;\r\n }\r\n /**\r\n * Clone all coordinate and label data.\r\n * @param result optional preallocated `TriangleCandidate`\r\n */\r\n public override clone(result?: TriangleCandidate): TriangleCandidate {\r\n if (result)\r\n return result.setFrom(this);\r\n return new TriangleCandidate(this.points[0].clone(), this.points[1].clone(), this.points[2].clone(), this.id, this._quality, this._isValid);\r\n }\r\n /**\r\n * Return a `TriangleCandidate` with\r\n * * coordinate data and labels from `candidateA`\r\n * * LOWER quality of the two candidates.\r\n * * quality reduced by 1 if triangles have opposing normals (negative dot product of the two normals)\r\n * @param candidateA candidate known to be valid\r\n * @param candidateB candidate that may by valid\r\n * @param result copy of candidate A, but if candidateB is valid the result aspect ratio is reduced (a) to the minimum of the two ratios and then (b) reduced by 1 if orientations clash.\r\n */\r\n public static copyWithLowerQuality(candidateA: TriangleCandidate, candidateB: TriangleCandidate, result?: TriangleCandidate): TriangleCandidate {\r\n result = candidateA.clone(result);\r\n if (candidateB.isValid) {\r\n const dot = candidateA.dotProductOfCrossProductsFromOrigin(candidateB);\r\n result._quality = Geometry.minXY(candidateA.aspectRatio, candidateB.aspectRatio);\r\n if (dot < 0.0)\r\n result._quality -= 1.0;\r\n }\r\n return result;\r\n }\r\n /**\r\n * choose better aspect ratio of triangle, other.\r\n * @param triangle known valid triangle, to be updated\r\n * @param other candidate replacement\r\n */\r\n public static updateIfOtherHasHigherQuality(triangle: TriangleCandidate, other: TriangleCandidate) {\r\n if (other.isValid && other._quality > triangle._quality)\r\n triangle.setFrom(other);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuildAverageNormalsContext.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/BuildAverageNormalsContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AA8C/C;;;;GAIG;AAEH,qBAAa,0BAA0B;IACrC;;;;;;;;;OASG;WACW,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK;IA6EtF;;;OAGG;WACW,mBAAmB,CAAC,QAAQ,EAAE,eAAe;CAmB5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuildAverageNormalsContext.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/BuildAverageNormalsContext.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/** @packageDocumentation\r\n * @module Polyface\r\n */\r\n\r\nimport { Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../../geometry3d/PolygonOps\";\r\nimport { IndexedPolyface } from \"../Polyface\";\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { GrowableXYZArray } from \"../../geometry3d/GrowableXYZArray\";\r\nimport { Angle } from \"../../geometry3d/Angle\";\r\n\r\n/**\r\n * Normal vector with area (or other numeric) and source index\r\n * @internal\r\n */\r\nclass IndexedAreaAndNormal {\r\n public constructor(index: number, area: number, normal: Vector3d) {\r\n this.index = index;\r\n this.area = area;\r\n this.normal = normal;\r\n }\r\n public index: number;\r\n public area: number;\r\n public normal: Vector3d;\r\n\r\n public addWeightedNormal(weight: number, normal: Vector3d) {\r\n this.area += weight;\r\n this.normal.addScaledInPlace(normal, weight);\r\n }\r\n public divideNormalByArea() {\r\n this.normal.scaleInPlace(1.0 / this.area);\r\n }\r\n}\r\n\r\n/**\r\n * index data for a single sector of some facet.\r\n * @internal\r\n */\r\nclass SectorData {\r\n private constructor(facetData: IndexedAreaAndNormal, sectorIndex: number, vertexIndex: number) {\r\n this.facetData = facetData;\r\n this.sectorClusterData = undefined;\r\n this.sectorIndex = sectorIndex;\r\n this.vertexIndex = vertexIndex;\r\n }\r\n public facetData: IndexedAreaAndNormal;\r\n public sectorIndex: number;\r\n public vertexIndex: number;\r\n public sectorClusterData: IndexedAreaAndNormal | undefined;\r\n public static cbSectorSort(left: SectorData, right: SectorData): number { return left.sectorIndex - right.sectorIndex; }\r\n public static cbVertexSort(left: SectorData, right: SectorData): number { return left.vertexIndex - right.vertexIndex; }\r\n public static pushToArray(data: SectorData[], facetData: IndexedAreaAndNormal, sectorIndex: number, vertexIndex: number) {\r\n data.push(new SectorData(facetData, sectorIndex, vertexIndex));\r\n }\r\n}\r\n/**\r\n * Helper context for normal averaging.\r\n * All methods are static.\r\n * @internal\r\n */\r\n\r\nexport class BuildAverageNormalsContext {\r\n /**\r\n * * At each vertex of the mesh\r\n * * Find clusters of almost parallel normals\r\n * * Compute simple average of those normals\r\n * * Index to the averages\r\n * * For typical meshes, this correctly clusters adjacent normals.\r\n * * One cam imagine a vertex with multiple \"smooth cone-like\" sets of incident facets such that averaging occurs among two nonadjacent cones. But this does not seem to be a problem in practice.\r\n * @param polyface polyface to update.\r\n * @param toleranceAngle averaging is done between normals up to this angle.\r\n */\r\n public static buildFastAverageNormals(polyface: IndexedPolyface, toleranceAngle: Angle) {\r\n // We ASSUME that the visitor order matches index order in polyface.data .....\r\n const visitor = polyface.createVisitor(0);\r\n const defaultNormal = Vector3d.create(0, 0, 1);\r\n const smallArea = Geometry.smallMetricDistanceSquared; // I DO NOT LIKE THIS TOLERANCE\r\n const sectors: SectorData[] = [];\r\n let facetIndex = 0;\r\n let sectorIndex = 0;\r\n // create one IndexedAreaNormal structure for each facet.\r\n // At each sector of each face, notate (a) IndexedAreaNormal of the facet, (b) the sector index, (c) the point index.\r\n\r\n while (visitor.moveToNextFacet()) {\r\n const facetNormal = PolygonOps.areaNormalGo(visitor.point)!;\r\n let area = facetNormal.magnitude();\r\n if (area < smallArea) {\r\n facetNormal.setFromVector3d(defaultNormal);\r\n area = 0.0;\r\n } else {\r\n facetNormal.scaleInPlace(1.0 / area);\r\n }\r\n const facetData = new IndexedAreaAndNormal(facetIndex++, area, facetNormal);\r\n for (let i = 0; i < visitor.pointCount; i++) {\r\n SectorData.pushToArray(sectors, facetData, sectorIndex++, visitor.clientPointIndex(i));\r\n }\r\n }\r\n // Sort by the vertex index so all the sectors around each vertex are clustered . .\r\n sectors.sort(SectorData.cbVertexSort);\r\n\r\n // Walk the sectors around each vertex . ..\r\n // For each unassigned sector\r\n // walk to further sectors of the same vertex with near-parallel normals, accumulating average normal.\r\n // notate all sectors in the cluster with the averaged-normal structure.\r\n const clusters: IndexedAreaAndNormal[] = [];\r\n let toleranceRadians = toleranceAngle.radians;\r\n if (toleranceRadians < 0.0001)\r\n toleranceRadians = 0.0001;\r\n\r\n let clusterIndex = 0;\r\n for (let baseSectorIndex = 0; baseSectorIndex < sectors.length; baseSectorIndex++) {\r\n const baseData = sectors[baseSectorIndex];\r\n const vertexIndex = baseData.vertexIndex;\r\n const baseFacetData = baseData.facetData;\r\n if (baseData.sectorClusterData === undefined) {\r\n const clusterNormal = new IndexedAreaAndNormal(clusterIndex++, 0.0, Vector3d.createZero());\r\n clusters.push(clusterNormal);\r\n // Accumulate with equal weights . . .\r\n clusterNormal.addWeightedNormal(1.0, baseData.facetData.normal.clone());\r\n for (let candidateSectorIndex = baseSectorIndex;\r\n candidateSectorIndex < sectors.length;\r\n candidateSectorIndex++) {\r\n const candidateSector = sectors[candidateSectorIndex];\r\n if (candidateSector.vertexIndex !== vertexIndex)\r\n break;\r\n if (candidateSector.facetData.normal.angleTo(baseFacetData.normal).radians > toleranceRadians)\r\n continue;\r\n if (candidateSector.sectorClusterData === undefined) {\r\n clusterNormal.addWeightedNormal(1.0, candidateSector.facetData.normal);\r\n candidateSector.sectorClusterData = clusterNormal;\r\n }\r\n }\r\n }\r\n }\r\n // Resort by original sector index.\r\n sectors.sort(SectorData.cbSectorSort);\r\n // normalize the sums and emplace in the facets . . .\r\n polyface.data.normalIndex = [];\r\n polyface.data.normal = new GrowableXYZArray(sectors.length);\r\n for (const cluster of clusters) {\r\n cluster.divideNormalByArea();\r\n cluster.index = polyface.data.normal.length;\r\n polyface.data.normal.push(cluster.normal);\r\n }\r\n // emplace the indices\r\n for (const sector of sectors) {\r\n polyface.data.normalIndex.push(sector.sectorClusterData!.index);\r\n }\r\n }\r\n /**\r\n * Set up indexed normals with one normal in the plane of each facet of the mesh.\r\n * @param polyface mesh to modify\r\n */\r\n public static buildPerFaceNormals(polyface: IndexedPolyface) {\r\n const visitor = polyface.createVisitor(0);\r\n const facetNormal = Vector3d.create(0, 0, 1);\r\n const defaultNormal = Vector3d.create(0, 0, 1);\r\n // polyface.data.clearNormals();\r\n const newNormals = new GrowableXYZArray(polyface.faceCount);\r\n const newIndices: number[] = [];\r\n while (visitor.moveToNextFacet()) {\r\n const thisNormalIndex = newNormals.length;\r\n if (PolygonOps.unitNormal(visitor.point, facetNormal))\r\n newNormals.push(facetNormal);\r\n else\r\n newNormals.push(defaultNormal);\r\n for (let i = 0; i < visitor.pointCount; i++)\r\n newIndices.push(thisNormalIndex);\r\n }\r\n polyface.data.normalIndex = newIndices;\r\n polyface.data.normal = newNormals;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSet.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/GriddedRaggedRange2dSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,oBAAY,gCAAgC,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC1F;;;;;;;;GAQG;AACH,qBAAa,uBAAuB,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAoD;IAC1E,OAAO;IAaP;;;;;OAKG;WACW,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,SAAS;IAKnH,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAQhB;;;;;OAKG;IACI,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO;IAoBnE;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAMnC;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAQ5F;;;;;;;OAOG;IACI,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAa7F,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI;CAQhH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSet.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/GriddedRaggedRange2dSet.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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Range2d, Range3d } from \"../../geometry3d/Range\";\r\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\r\nimport { LinearSearchRange2dArray } from \"./LinearSearchRange2dArray\";\r\n\r\nexport type OptionalLinearSearchRange2dArray<T> = LinearSearchRange2dArray<T> | undefined;\r\n/**\r\n * A GriddedRaggedRange2dSet is\r\n * * A doubly dimensioned array of LinearSearchRange2dArray\r\n * * Each entry represents a block in a uniform grid within the master range of the GriddedRaggedRange2dSet.\r\n * * Member ranges are noted in the grid block containing the range's lower left corner.\r\n * * Member ranges larger than twice the grid size are rejected by the insert method.\r\n * * Hence a search involving a point in grid block (i,j) must examine ranges in grid blocks left and below, i.e. (i-1,j-1), (i-1,j), (i,j-1)\r\n * @internal\r\n */\r\nexport class GriddedRaggedRange2dSet<T> {\r\n private _range: Range2d;\r\n private _numXEdge: number;\r\n private _numYEdge: number;\r\n /** Each grid block is a simple linear search set\r\n *\r\n */\r\n private _rangesInBlock: Array<Array<OptionalLinearSearchRange2dArray<T>>>;\r\n private constructor(range: Range2d, numXEdge: number, numYEdge: number) {\r\n this._range = range;\r\n this._numXEdge = numXEdge;\r\n this._numYEdge = numYEdge;\r\n this._rangesInBlock = [];\r\n for (let j = 0; j < this._numYEdge; j++) {\r\n const thisRow: Array<OptionalLinearSearchRange2dArray<T>> = [];\r\n for (let i = 0; i < this._numXEdge; i++) {\r\n thisRow.push(undefined);\r\n }\r\n this._rangesInBlock.push(thisRow);\r\n }\r\n }\r\n /**\r\n * Create an (empty) set of ranges.\r\n * @param range\r\n * @param numXEdge\r\n * @param numYEdge\r\n */\r\n public static create<T>(range: Range2d, numXEdge: number, numYEdge: number): GriddedRaggedRange2dSet<T> | undefined {\r\n if (numXEdge < 1 || numYEdge < 1 || range.isNull || range.isSinglePoint)\r\n return undefined;\r\n return new GriddedRaggedRange2dSet(range.clone(), numXEdge, numYEdge);\r\n }\r\n private xIndex(x: number): number {\r\n const fraction = (x - this._range.low.x) / (this._range.high.x - this._range.low.x);\r\n return Math.floor(fraction * this._numXEdge);\r\n }\r\n private yIndex(y: number): number {\r\n const fraction = (y - this._range.low.y) / (this._range.high.y - this._range.low.y);\r\n return Math.floor(fraction * this._numXEdge);\r\n }\r\n private getBlock(i: number, j: number): LinearSearchRange2dArray<T> | undefined {\r\n if (i >= 0 && i < this._numXEdge && j >= 0 && j < this._numYEdge) {\r\n if (!this._rangesInBlock[j][i])\r\n this._rangesInBlock[j][i] = new LinearSearchRange2dArray();\r\n return this._rangesInBlock[j][i];\r\n }\r\n return undefined;\r\n }\r\n /** If possible, insert a range into the set.\r\n * * Decline to insert (and return false) if\r\n * * range is null\r\n * * range is not completely contained in the overall range of this set.\r\n * * range x or y extent is larger than 2 grid blocks.\r\n */\r\n public conditionalInsert(range: Range2d | Range3d, tag: T): boolean {\r\n if (range.isNull)\r\n return false;\r\n if (!this._range.containsRange(range))\r\n return false;\r\n const xIndex0 = this.xIndex(range.low.x);\r\n const xIndex1 = this.xIndex(range.high.x);\r\n const yIndex0 = this.yIndex(range.low.y);\r\n const yIndex1 = this.yIndex(range.high.y);\r\n if (!(xIndex0 === xIndex1 || xIndex0 + 1 === xIndex1))\r\n return false;\r\n if (!(yIndex0 === yIndex1 || yIndex0 + 1 === yIndex1))\r\n return false;\r\n const rangesInBlock = this.getBlock(xIndex0, yIndex0);\r\n if (rangesInBlock) {\r\n rangesInBlock.addRange(range, tag);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * * Search a single block\r\n * * Pass each range and tag to handler\r\n * * and return false if bad cell or if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n private searchXYInIndexedBlock(i: number, j: number, x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n const rangesInBlock = this.getBlock(i, j);\r\n if (!rangesInBlock)\r\n return true;\r\n return rangesInBlock.searchXY(x, y, handler);\r\n }\r\n /**\r\n * * Search a single block\r\n * * Pass each range and tag to handler\r\n * * and return false if bad cell or if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n private searchRange2dInIndexedBlock(i: number, j: number, testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n const rangesInBlock = this.getBlock(i, j);\r\n if (!rangesInBlock)\r\n return true;\r\n return rangesInBlock.searchRange2d(testRange, handler);\r\n }\r\n /**\r\n * * Search for ranges containing testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchXY(x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n const i = this.xIndex(x);\r\n const j = this.yIndex(y);\r\n return this.searchXYInIndexedBlock(i, j, x, y, handler)\r\n && this.searchXYInIndexedBlock(i - 1, j, x, y, handler)\r\n && this.searchXYInIndexedBlock(i, j - 1, x, y, handler)\r\n && this.searchXYInIndexedBlock(i - 1, j - 1, x, y, handler);\r\n }\r\n /**\r\n * * Search for ranges overlapping testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchRange2d(testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n const xIndex0 = this.xIndex(testRange.low.x) - 1;\r\n const xIndex1 = this.xIndex(testRange.high.x);\r\n const yIndex0 = this.yIndex(testRange.low.y) - 1;\r\n const yIndex1 = this.yIndex(testRange.high.y);\r\n for (let i = xIndex0; i <= xIndex1; i++) {\r\n for (let j = yIndex0; j <= yIndex1; j++) {\r\n if (!this.searchRange2dInIndexedBlock(i, j, testRange, handler))\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n public visitChildren(initialDepth: number, handler: (depth: number, child: LinearSearchRange2dArray<T>) => void) {\r\n for (const row of this._rangesInBlock) {\r\n for (const block of row) {\r\n if (block)\r\n handler(initialDepth, block);\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSetWithOverflow.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;;;;;GAOG;AACH,qBAAa,mCAAmC,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO;IAIP;;;;;OAKG;WACW,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mCAAmC,CAAC,CAAC,CAAC,GAAG,SAAS;IAM/H;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAG5F;;;;;;;OAOG;IACI,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAGpG;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IAMhD,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI;CAIhH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GriddedRaggedRange2dSetWithOverflow.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,uEAAoE;AACpE,yEAAsE;AAEtE;;;;;;;GAOG;AACH,MAAa,mCAAmC;IAG9C,YAAoB,OAAmC,EAAE,WAAwC;QAC/F,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,MAAM,CAAI,KAAc,EAAE,QAAgB,EAAE,QAAgB;QACxE,MAAM,KAAK,GAAG,iDAAuB,CAAC,MAAM,CAAI,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnF,IAAI,KAAK;YACP,OAAO,IAAI,mCAAmC,CAAI,KAAK,EAAE,IAAI,mDAAwB,EAAK,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;IACD;;;;;OAKG;IACI,QAAQ,CAAC,KAAwB,EAAE,GAAM;QAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC1C;IACH,CAAC;IACM,aAAa,CAAC,YAAoB,EAAE,OAAoE;QAC7G,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;CACF;AAzDD,kFAyDC","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Range2d, Range3d } from \"../../geometry3d/Range\";\r\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\r\nimport { GriddedRaggedRange2dSet } from \"./GriddedRaggedRange2dSet\";\r\nimport { LinearSearchRange2dArray } from \"./LinearSearchRange2dArray\";\r\n\r\n/**\r\n * Use GriddedRaggedRange2dSetWithOverflow for searching among many ranges for which\r\n * * Most ranges are of somewhat consistent size.\r\n * * A modest number of oversizes.\r\n * * Maintain the smallish ones in a GriddedRaggedRange2dSet.\r\n * * Maintain the overflows in a LinearSearchRange2dArray\r\n * @internal\r\n */\r\nexport class GriddedRaggedRange2dSetWithOverflow<T> {\r\n private _gridSet: GriddedRaggedRange2dSet<T>;\r\n private _overflowSet: LinearSearchRange2dArray<T>;\r\n private constructor(gridSet: GriddedRaggedRange2dSet<T>, overflowSet: LinearSearchRange2dArray<T>) {\r\n this._gridSet = gridSet;\r\n this._overflowSet = overflowSet;\r\n }\r\n /**\r\n * Create an (empty) set of ranges.\r\n * @param range\r\n * @param numXEdge\r\n * @param numYEdge\r\n */\r\n public static create<T>(range: Range2d, numXEdge: number, numYEdge: number): GriddedRaggedRange2dSetWithOverflow<T> | undefined {\r\n const grids = GriddedRaggedRange2dSet.create<T>(range.clone(), numXEdge, numYEdge);\r\n if (grids)\r\n return new GriddedRaggedRange2dSetWithOverflow<T>(grids, new LinearSearchRange2dArray<T>());\r\n return undefined;\r\n }\r\n /**\r\n * * Search for ranges containing testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchXY(x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n return this._gridSet.searchXY(x, y, handler) && this._overflowSet.searchXY(x, y, handler);\r\n }\r\n /**\r\n * * Search for ranges overlapping testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchRange2d(testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n return this._gridSet.searchRange2d(testRange, handler) && this._overflowSet.searchRange2d(testRange, handler);\r\n }\r\n /** If possible, insert a range into the set.\r\n * * Decline to insert (and return false) if\r\n * * range is null\r\n * * range is not completely contained in the overall range of this set.\r\n * * range x or y extent is larger than 2 grid blocks.\r\n */\r\n public addRange(range: Range2d | Range3d, tag: T): void {\r\n if (!range.isNull) {\r\n if (!this._gridSet.conditionalInsert(range, tag))\r\n this._overflowSet.addRange(range, tag);\r\n }\r\n }\r\n public visitChildren(initialDepth: number, handler: (depth: number, child: LinearSearchRange2dArray<T>) => void) {\r\n handler(initialDepth, this._overflowSet);\r\n this._gridSet.visitChildren(initialDepth + 1, handler);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearSearchRange2dArray.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/LinearSearchRange2dArray.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;GAOG;AACH,qBAAa,wBAAwB,CAAC,CAAC,CAAE,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAU;;IAOjC,OAAO,CAAC,eAAe;IAGvB,qDAAqD;IAC9C,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAI5C,qCAAqC;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAS3C;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;IAW5F;;;;;;;OAOG;IACI,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO;CAUrG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LinearSearchRange2dArray.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/LinearSearchRange2dArray.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kDAAiD;AAIjD;;;;;;;GAOG;AACH,MAAa,wBAAwB;IAInC;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,eAAO,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IACD,+BAA+B;IACvB,eAAe;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,qDAAqD;IAC9C,UAAU,CAAC,MAAgB;QAChC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAO,CAAC,UAAU,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,qCAAqC;IAC9B,QAAQ,CAAC,KAAmB,EAAE,GAAM;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,eAAO,CAAC,UAAU,EAAE,CAAC;QACpC,OAAe,CAAC,GAAG,GAAG,GAAG,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD;;;;;;;OAOG;IACI,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,OAA4C;QAChF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,+CAA+C;QAC/C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;YACxC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;SAClB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;;;;OAOG;IACI,aAAa,CAAC,SAAuB,EAAE,OAA4C;QACxF,IAAI,IAAI,CAAC,QAAQ;YACf,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;YACxC,IAAI,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAG,SAAiB,CAAC,GAAG,CAAC;oBAC7C,OAAO,KAAK,CAAC;SAClB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjED,4DAiEC","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Range2d } from \"../../geometry3d/Range\";\r\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\r\nimport { Range2dSearchInterface } from \"./Range2dSearchInterface\";\r\n\r\n/**\r\n * * Array of Range2d\r\n * * user data tag attached to each range via cast as (any).userTag.\r\n * * Search operations are simple linear.\r\n * * This class can be used directly for \"smallish\" range sets, or as the leaf level of hierarchical structures for larger range sets.\r\n * *\r\n * @internal\r\n */\r\nexport class LinearSearchRange2dArray<T> implements Range2dSearchInterface<T> {\r\n private _rangeArray: Range2d[];\r\n private _isDirty: boolean;\r\n private _compositeRange: Range2d;\r\n public constructor() {\r\n this._rangeArray = [];\r\n this._isDirty = false;\r\n this._compositeRange = Range2d.createNull();\r\n }\r\n // TODO: build search structure\r\n private updateForSearch() {\r\n this._isDirty = false;\r\n }\r\n /** Return the overall range of all member ranges. */\r\n public totalRange(result?: Range2d): Range2d {\r\n result = result ? result : Range2d.createNull();\r\n return this._compositeRange.clone(result);\r\n }\r\n /** Add a range to the search set. */\r\n public addRange(range: LowAndHighXY, tag: T) {\r\n this._isDirty = true;\r\n const myRange = Range2d.createNull();\r\n (myRange as any).tag = tag;\r\n myRange.extendXY(range.low.x, range.low.y);\r\n myRange.extendXY(range.high.x, range.high.y);\r\n this._compositeRange.extendRange(myRange);\r\n this._rangeArray.push(myRange);\r\n }\r\n /**\r\n * * Search for ranges containing testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchXY(x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n if (this._isDirty)\r\n this.updateForSearch();\r\n // NEEDS WORK: Linear search here -- do better!\r\n for (const candidate of this._rangeArray) {\r\n if (candidate.containsXY(x, y))\r\n if (!handler(candidate, (candidate as any).tag))\r\n return false;\r\n }\r\n return true;\r\n }\r\n /**\r\n * * Search for ranges overlapping testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits.\r\n * @return false if search terminated by handler. Return true if no handler returned false.\r\n */\r\n public searchRange2d(testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean {\r\n if (this._isDirty)\r\n this.updateForSearch();\r\n for (const candidate of this._rangeArray) {\r\n if (candidate.intersectsRange(testRange))\r\n if (!handler(candidate, (candidate as any).tag))\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Range2dSearchInterface.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/Range2dSearchInterface.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC;IACtF;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC;IAC9F,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;CAC7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Range2dSearchInterface.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/Range2dSearchInterface.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Range2d } from \"../../geometry3d/Range\";\r\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\r\n\r\n/**\r\n * Interface for classes that can search with range optimizations.\r\n * @public\r\n */\r\nexport interface Range2dSearchInterface<T> {\r\n /**\r\n * * Search for ranges containing testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits. \"true\" means continue the search.\r\n * @returns false if any handler call returned false. Otherwise return true.\r\n */\r\n searchXY(x: number, y: number, handler: (range: Range2d, tag: T) => boolean): boolean;\r\n /**\r\n * * Search for ranges overlapping testRange\r\n * * Pass each range and tag to handler\r\n * * terminate search if handler returns false.\r\n * @param testRange search range.\r\n * @param handler function to receive range and tag hits. \"true\" means continue the search.\r\n * @returns false if any handler call returned false. Otherwise return true.\r\n */\r\n searchRange2d(testRange: LowAndHighXY, handler: (range: Range2d, tag: T) => boolean): boolean;\r\n /** Add a range to the search set. */\r\n addRange(range: LowAndHighXY, tag: T): void;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSearch.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/RangeSearch.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,sEAAsE;AACtE,qBAAa,WAAW;IACtB,gBAAuB,eAAe,MAAM;IAC5C,sFAAsF;IACtF,gBAAuB,yBAAyB,KAAK;IACrD,oGAAoG;IACpG,gBAAuB,kCAAkC,KAAO;IAChE,gGAAgG;WAClF,kCAAkC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,GAAE,MAA8C,EAAE,2BAA2B,GAAE,MAAuD,GAAG,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS;IAUtR;;;;;;;;OAQG;WACW,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,GAAE,MAA8C,EAAE,2BAA2B,GAAE,MAAuD,GAAG,MAAM;CAS7O"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSearch.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/RangeSearch.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,6CAA0C;AAC1C,kDAAiD;AAGjD,+FAA4F;AAC5F,yEAAsE;AAGtE,sEAAsE;AACtE,MAAa,WAAW;IAMtB,gGAAgG;IACzF,MAAM,CAAC,kCAAkC,CAAI,eAAgC,EAAE,qBAA6B,WAAW,CAAC,yBAAyB,EAAE,8BAAsC,WAAW,CAAC,kCAAkC;QAC5O,gDAAgD;QAChD,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,eAAe;YAC3D,OAAO,IAAI,mDAAwB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,CAAC,CAAC;QACvJ,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,CAAC,CAAC;QACvJ,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;YAChC,OAAO,IAAI,mDAAwB,EAAE,CAAC;QACxC,OAAO,yEAAmC,CAAC,MAAM,CAAI,eAAO,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxH,CAAC;IACD;;;;;;;;OAQG;IACI,MAAM,CAAC,sBAAsB,CAAC,WAAmB,EAAE,IAAe,EAAE,qBAA6B,WAAW,CAAC,yBAAyB,EAAE,8BAAsC,WAAW,CAAC,kCAAkC;QACjO,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,MAAM,yBAAyB,GAAG,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,2BAA2B,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1H,MAAM,cAAc,GAAG,mBAAQ,CAAC,yBAAyB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;QAClG,IAAI,cAAc,KAAK,SAAS;YAC9B,OAAO,CAAC,CAAC;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;;AAlCH,kCAmCC;AAlCwB,2BAAe,GAAG,EAAE,CAAC;AAC5C,sFAAsF;AAC/D,qCAAyB,GAAG,CAAC,CAAC;AACrD,oGAAoG;AAC7E,8CAAkC,GAAG,GAAG,CAAC","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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Range2d } from \"../../geometry3d/Range\";\r\nimport { UsageSums } from \"../../numerics/UsageSums\";\r\nimport { RangeLengthData } from \"../RangeLengthData\";\r\nimport { GriddedRaggedRange2dSetWithOverflow } from \"./GriddedRaggedRange2dSetWithOverflow\";\r\nimport { LinearSearchRange2dArray } from \"./LinearSearchRange2dArray\";\r\nimport { Range2dSearchInterface } from \"./Range2dSearchInterface\";\r\n\r\n/** Class with static members to work with various range searchers. */\r\nexport class RangeSearch {\r\n public static readonly smallCountLimit = 40;\r\n /** Target size for grid block size divided by representative per-entry range size. */\r\n public static readonly defaultRangesPerBlockEdge = 4;\r\n /** the \"representative range size\"is the mean range size plus this number of standard deviations */\r\n public static readonly defaultStandardDeviationAdjustment = 1.0;\r\n /** Based on range count and distribution, return an object which can answer 2d range queries */\r\n public static create2dSearcherForRangeLengthData<T>(rangeLengthData: RangeLengthData, rangesPerBlockEdge: number = RangeSearch.defaultRangesPerBlockEdge, standardDeviationAdjustment: number = RangeSearch.defaultStandardDeviationAdjustment): Range2dSearchInterface<T> | undefined {\r\n // for smallish sets, just linear search . . ..\r\n if (rangeLengthData.xSums.count < RangeSearch.smallCountLimit)\r\n return new LinearSearchRange2dArray();\r\n const numXBlock = this.estimateGridBlockCount(rangeLengthData.range.xLength(), rangeLengthData.xSums, rangesPerBlockEdge, standardDeviationAdjustment);\r\n const numYBlock = this.estimateGridBlockCount(rangeLengthData.range.yLength(), rangeLengthData.ySums, rangesPerBlockEdge, standardDeviationAdjustment);\r\n if (numXBlock < 2 && numYBlock < 2)\r\n return new LinearSearchRange2dArray();\r\n return GriddedRaggedRange2dSetWithOverflow.create<T>(Range2d.createFrom(rangeLengthData.range), numXBlock, numYBlock);\r\n }\r\n /** Return the number of grid bocks (in one direction) for\r\n * * The total range length in this direction\r\n * * individual ranges whose count, mean and standard deviation are available in the sums.\r\n * @param totalRange the total range being searched (in this direction)\r\n * @param sums source for mean, count, and standard deviation of individual ranges\r\n * @param rangesPerBlockEdge target ratio of edge length in search blocks divided by representative length of individual range edges\r\n * @param standardDeviationAdjustment the number of standard deviations above the mean to be applied to convert mean to representative length. Typically 0 to 1.\r\n * @returns number of blocks in grid.\r\n */\r\n public static estimateGridBlockCount(totalLength: number, sums: UsageSums, rangesPerBlockEdge: number = RangeSearch.defaultRangesPerBlockEdge, standardDeviationAdjustment: number = RangeSearch.defaultStandardDeviationAdjustment): number {\r\n if (sums.count < 1)\r\n return 1;\r\n const representativeRangeLength = rangesPerBlockEdge * (sums.mean + standardDeviationAdjustment * sums.standardDeviation);\r\n const gridEdgeLength = Geometry.conditionalDivideFraction(totalLength, representativeRangeLength);\r\n if (gridEdgeLength === undefined)\r\n return 1;\r\n return Math.ceil(gridEdgeLength);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SweepLineStringToFacetContext.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/SweepLineStringToFacetContext.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,6BAA6B;IACxC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO;WAMO,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,6BAA6B,GAAG,SAAS;IAQtF,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,aAAa,CAAoB;IAEzC;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAoDhI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SweepLineStringToFacetContext.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/SweepLineStringToFacetContext.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/** @packageDocumentation\r\n * @module Polyface\r\n */\r\n\r\nimport { Transform } from \"../../geometry3d/Transform\";\r\nimport { GrowableXYZArray } from \"../../geometry3d/GrowableXYZArray\";\r\nimport { Point3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { Segment1d } from \"../../geometry3d/Segment1d\";\r\nimport { AnnounceDrapePanel } from \"../PolyfaceQuery\";\r\nimport { Range3d } from \"../../geometry3d/Range\";\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Polyface } from \"../Polyface\";\r\n\r\nexport class SweepLineStringToFacetContext {\r\n private _spacePoints: GrowableXYZArray;\r\n private _spacePointsRange: Range3d;\r\n private _numSpacePoints: number;\r\n private constructor(spacePoints: GrowableXYZArray) {\r\n this._spacePoints = spacePoints;\r\n this._spacePointsRange = new Range3d();\r\n spacePoints.setRange(this._spacePointsRange);\r\n this._numSpacePoints = this._spacePoints.length;\r\n }\r\n public static create(xyz: GrowableXYZArray): SweepLineStringToFacetContext | undefined {\r\n if (xyz.length > 1) {\r\n return new SweepLineStringToFacetContext(xyz.clone());\r\n }\r\n return undefined;\r\n }\r\n\r\n // temporaries reused over multiple calls to process a single facet . ..\r\n private _segmentPoint0 = Point3d.create();\r\n private _segmentPoint1 = Point3d.create();\r\n private _localSegmentPoint0 = Point3d.create();\r\n private _localSegmentPoint1 = Point3d.create();\r\n private _clipFractions = Segment1d.create(0, 1);\r\n private _localFrame = Transform.createIdentity();\r\n private _polygonRange = Range3d.create();\r\n\r\n /** process a single polygon.\r\n * @returns number crudely indicating how much work was done.\r\n */\r\n public projectToPolygon(polygon: GrowableXYZArray, announce: AnnounceDrapePanel, polyface: Polyface, readIndex: number): number {\r\n polygon.setRange(this._polygonRange);\r\n let workCounter = 0;\r\n if (!this._polygonRange.intersectsRangeXY(this._spacePointsRange))\r\n return workCounter;\r\n // numTest++;\r\n // For each triangle within the facet ...\r\n // remark: this loop only runs once in triangle mesh, twice in quads ...\r\n for (let k1 = 1; k1 + 1 < polygon.length; k1++) {\r\n workCounter++;\r\n const frame = polygon.fillLocalXYTriangleFrame(0, k1, k1 + 1, this._localFrame);\r\n if (frame) {\r\n // For each stroke of the linestring ...\r\n for (let i1 = 1; i1 < this._numSpacePoints; i1++) {\r\n workCounter++;\r\n this._spacePoints.getPoint3dAtCheckedPointIndex(i1 - 1, this._segmentPoint0);\r\n this._spacePoints.getPoint3dAtCheckedPointIndex(i1, this._segmentPoint1);\r\n frame.multiplyInversePoint3d(this._segmentPoint0, this._localSegmentPoint0);\r\n frame.multiplyInversePoint3d(this._segmentPoint1, this._localSegmentPoint1);\r\n this._clipFractions.set(0, 1);\r\n /** (x,y,1-x-y) are barycentric coordinates in the triangle !!! */\r\n if (this._clipFractions.clipBy01FunctionValuesPositive(this._localSegmentPoint0.x, this._localSegmentPoint1.x)\r\n && this._clipFractions.clipBy01FunctionValuesPositive(this._localSegmentPoint0.y, this._localSegmentPoint1.y)\r\n && this._clipFractions.clipBy01FunctionValuesPositive(\r\n 1 - this._localSegmentPoint0.x - this._localSegmentPoint0.y,\r\n 1 - this._localSegmentPoint1.x - this._localSegmentPoint1.y)) {\r\n /* project the local segment point to the plane. */\r\n workCounter++;\r\n const localClippedPointA = this._localSegmentPoint0.interpolate(this._clipFractions.x0, this._localSegmentPoint1);\r\n const localClippedPointB = this._localSegmentPoint0.interpolate(this._clipFractions.x1, this._localSegmentPoint1);\r\n const worldClippedPointA = this._localFrame.multiplyPoint3d(localClippedPointA)!;\r\n const worldClippedPointB = this._localFrame.multiplyPoint3d(localClippedPointB)!;\r\n const planePointA = this._localFrame.multiplyXYZ(localClippedPointA.x, localClippedPointA.y, 0.0)!;\r\n const planePointB = this._localFrame.multiplyXYZ(localClippedPointB.x, localClippedPointB.y, 0.0)!;\r\n const splitParameter = Geometry.inverseInterpolate01(this._localSegmentPoint0.z, this._localSegmentPoint1.z);\r\n // emit 1 or 2 panels, oriented so panel normal is always to the left of the line.\r\n if (splitParameter !== undefined && splitParameter > this._clipFractions.x0 && splitParameter < this._clipFractions.x1) {\r\n workCounter++;\r\n const piercePointX = this._segmentPoint0.interpolate(splitParameter, this._segmentPoint1);\r\n const piercePointY = piercePointX.clone(); // so points are distinct for the two triangle announcements.\r\n announce(this._spacePoints, i1 - 1, polyface, readIndex, [worldClippedPointA, piercePointX, planePointA], 2, 1);\r\n announce(this._spacePoints, i1 - 1, polyface, readIndex, [worldClippedPointB, piercePointY, planePointB], 1, 2);\r\n } else if (this._localSegmentPoint0.z > 0) { // segment is entirely above\r\n announce(this._spacePoints, i1 - 1, polyface, readIndex, [worldClippedPointA, worldClippedPointB, planePointB, planePointA], 3, 2);\r\n } else // segment is entirely under\r\n announce(this._spacePoints, i1 - 1, polyface, readIndex, [worldClippedPointB, worldClippedPointA, planePointA, planePointB], 2, 3);\r\n }\r\n }\r\n }\r\n }\r\n return workCounter;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"XYPointBuckets.d.ts","sourceRoot":"","sources":["../../../src/polyface/multiclip/XYPointBuckets.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qFAAqF;AACrF,oBAAY,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;AAC/C;;;GAGG;AACH,qBAAa,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,KAAK,CAAiC;IAE9C,SAAS,aAAa,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAahE,+CAA+C;IAC/C,IAAW,QAAQ,IAAI,MAAM,CAA2B;IACxD,+CAA+C;IAC/C,IAAW,QAAQ,IAAI,MAAM,CAA2B;IAExD,4DAA4D;IACrD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAShC,4DAA4D;IACrD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAShC;;;;;OAKG;WACW,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAoB/I;;;;;OAKG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAWjD;;;;OAIG;IACI,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAM1D;;;;OAIG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAYvE,6DAA6D;IACtD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAW7D;AACD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAsB;IACtC,gEAAgE;IAChE,IAAW,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC,CAA0B;IACrE,OAAO;IAIP,sEAAsE;WACxD,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAiB3G;;;OAGG;IACI,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO;CAwB7H"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"XYPointBuckets.js","sourceRoot":"","sources":["../../../src/polyface/multiclip/XYPointBuckets.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/** @packageDocumentation\r\n * @module RangeSearch\r\n */\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { IndexedXYZCollection } from \"../../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { Range2d, Range3d } from \"../../geometry3d/Range\";\r\nimport { LowAndHighXY } from \"../../geometry3d/XYZProps\";\r\n\r\n/** Type for a value which may be either (a) undefined or (b) an array of type []. */\r\nexport type OptionalArray<T> = T[] | undefined;\r\n/**\r\n * Arrays of type T values distributed by xy position when entered.\r\n * @internal\r\n */\r\nexport class XYIndexGrid<T> {\r\n private _range: Range2d;\r\n private _numXEdge: number;\r\n private _numYEdge: number;\r\n\r\n private _data: Array<Array<OptionalArray<T>>>; // _indices[j][i][k] = index k value in row j block i\r\n\r\n protected constructor(range: Range2d, numX: number, numY: number) {\r\n this._range = range;\r\n this._numXEdge = Math.max(numX, 1);\r\n this._numYEdge = Math.max(numY, 1);\r\n this._data = [];\r\n for (let j = 0; j < numY; j++) {\r\n const thisRow: Array<OptionalArray<T>> = [];\r\n for (let i = 0; i < numX; i++) {\r\n thisRow.push(undefined);\r\n }\r\n this._data.push(thisRow);\r\n }\r\n }\r\n /** Return the number of x edges in the grid */\r\n public get numXEdge(): number { return this._numXEdge; }\r\n /** Return the number of y edges in the grid */\r\n public get numYEdge(): number { return this._numYEdge; }\r\n\r\n /** Return the `i` index of cells containing x coordinate */\r\n public xIndex(x: number): number {\r\n const fraction = (x - this._range.low.x) / (this._range.high.x - this._range.low.x);\r\n const q = Math.floor(fraction * this._numXEdge);\r\n if (q < 0)\r\n return 0;\r\n if (q > this._numXEdge - 1)\r\n return this._numXEdge - 1;\r\n return q;\r\n }\r\n /** Return the `j` index of cells containing x coordinate */\r\n public yIndex(y: number): number {\r\n const fraction = (y - this._range.low.y) / (this._range.high.y - this._range.low.y);\r\n const q = Math.floor(fraction * this._numYEdge);\r\n if (q < 0)\r\n return 0;\r\n if (q > this._numYEdge - 1)\r\n return this._numYEdge - 1;\r\n return q;\r\n }\r\n /**\r\n * Construct an array with cells mapped to a range, with counts determined by estimated total count and target number of entries per cell.\r\n * @param range\r\n * @param totalEntries\r\n * @param targetEntriesPerCell\r\n */\r\n public static createWithEstimatedCounts<T>(range: LowAndHighXY, totalEntries: number, targetEntriesPerCell: number): XYIndexGrid<T> | undefined {\r\n if (range.low.x >= range.high.x || range.low.y >= range.high.y)\r\n return undefined;\r\n const range2d = Range2d.createXYXY(range.low.x, range.low.y, range.high.x, range.high.y);\r\n\r\n const dx = range2d.xLength();\r\n const dy = range2d.yLength();\r\n // numX / numY = dX / dY (numX,numY will be integers . . .)\r\n // numX = dX * numY / dY\r\n let numX: number;\r\n let numY: number;\r\n if (dy > dx) {\r\n numY = Math.ceil(Math.sqrt(dy * totalEntries / (targetEntriesPerCell * dx)));\r\n numX = Math.ceil(totalEntries / numY);\r\n } else {\r\n numX = Math.ceil(Math.sqrt(dx * totalEntries / (targetEntriesPerCell * dy)));\r\n numY = Math.ceil(totalEntries / (numX * targetEntriesPerCell));\r\n }\r\n return new XYIndexGrid(range2d, numX, numY);\r\n }\r\n /**\r\n * Add (save) a new data value to the grid cell containing x,y\r\n * @param x\r\n * @param y\r\n * @param value\r\n */\r\n public addDataAtXY(x: number, y: number, value: T) {\r\n const i = this.xIndex(x);\r\n const j = this.yIndex(y);\r\n let dataJI = this._data[j][i];\r\n if (!dataJI) {\r\n dataJI = [];\r\n this._data[j][i] = dataJI;\r\n }\r\n dataJI.push(value);\r\n return;\r\n }\r\n /**\r\n * Get the (reference to the possibly null array of) data values for the cell indicated by xy.\r\n * @param x\r\n * @param y\r\n */\r\n public getDataAtXY(x: number, y: number): OptionalArray<T> {\r\n const i = this.xIndex(x);\r\n const j = this.yIndex(y);\r\n return this._data[j][i];\r\n }\r\n\r\n /**\r\n * Get the (reference to the possibly null array of) data values for the cell indicated by indices in the x and y direction\r\n * @param xIndex\r\n * @param yIndex\r\n */\r\n public getDataAtIndex(xIndex: number, yIndex: number): OptionalArray<T> {\r\n if (xIndex < 0)\r\n return undefined;\r\n if (xIndex >= this._numXEdge)\r\n return undefined;\r\n if (yIndex < 0)\r\n return undefined;\r\n if (yIndex >= this._numYEdge)\r\n return undefined;\r\n\r\n return this._data[yIndex][xIndex];\r\n }\r\n /** Return true if (xIndex, yIndex) is a valid cell index. */\r\n public isValidIndex(xIndex: number, yIndex: number): boolean {\r\n if (xIndex < 0)\r\n return false;\r\n if (xIndex >= this._numXEdge)\r\n return false;\r\n if (yIndex < 0)\r\n return false;\r\n if (yIndex >= this._numYEdge)\r\n return false;\r\n return true;\r\n }\r\n}\r\n/** Manage buckets of points for fast search.\r\n * @internal\r\n */\r\nexport class XYPointBuckets {\r\n private _points: IndexedXYZCollection;\r\n private _buckets: XYIndexGrid<number>;\r\n /** Return the underlying grid with indices recorded by block */\r\n public get indexGrid(): XYIndexGrid<number> { return this._buckets; }\r\n private constructor(points: IndexedXYZCollection, buckets: XYIndexGrid<number>) {\r\n this._points = points;\r\n this._buckets = buckets;\r\n }\r\n /** Create an XYIndex grid with all indices of all `points` entered */\r\n public static create(points: IndexedXYZCollection, targetPointsPerCell: number): XYPointBuckets | undefined {\r\n const n = points.length;\r\n if (points.length < 1)\r\n return undefined;\r\n const range = points.getRange();\r\n range.expandInPlace(Geometry.smallMetricDistance * 1000.0);\r\n const buckets = XYIndexGrid.createWithEstimatedCounts<number>(range, points.length, targetPointsPerCell);\r\n if (buckets === undefined)\r\n return undefined;\r\n const result = new XYPointBuckets(points, buckets);\r\n const point = Point3d.create();\r\n for (let i = 0; i < n; i++) {\r\n points.getPoint3dAtUncheckedPointIndex(i, point);\r\n buckets.addDataAtXY(point.x, point.y, i);\r\n }\r\n return result;\r\n }\r\n /** call the `announce` function with the index and coordinates of all points in given range.\r\n * * continue the search if `announce` returns true.\r\n * * terminate the search if `announce` returns false;\r\n */\r\n public announcePointsInRange(range: Range2d | Range3d, announce: (index: number, x: number, y: number, z: number) => boolean) {\r\n const i0 = this._buckets.xIndex(range.low.x);\r\n const i1 = this._buckets.xIndex(range.high.x);\r\n const j0 = this._buckets.yIndex(range.low.y);\r\n const j1 = this._buckets.yIndex(range.high.y);\r\n const n = this._points.length;\r\n for (let i = i0; i <= i1; i++) {\r\n for (let j = j0; j <= j1; j++) {\r\n const candidates = this._buckets.getDataAtIndex(i, j);\r\n if (candidates !== undefined) {\r\n for (const k of candidates) {\r\n if (k < n) {\r\n const x = this._points.getXAtUncheckedPointIndex(k);\r\n const y = this._points.getYAtUncheckedPointIndex(k);\r\n const z = this._points.getZAtUncheckedPointIndex(k);\r\n if (range.containsXY(x, y))\r\n if (!announce(k, x, y, z))\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|