@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":"KnotVector.js","sourceRoot":"","sources":["../../src/bspline/KnotVector.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 Bspline\r\n */\r\n\r\n// import { Point2d } from \"../Geometry2d\";\r\n/* eslint-disable @typescript-eslint/naming-convention, no-empty, no-console*/\r\nimport { Geometry } from \"../Geometry\";\r\nimport { NumberArray } from \"../geometry3d/PointHelpers\";\r\n\r\n/**\r\n * Enumeration of the possible ways of converting a \"periodic\" knot vector to an open knot vector.\r\n * None (0) ==> no wrap possible\r\n * OpenByAddingControlPoints (1) ==> wrapped by adding poles\r\n * OpenByRemovingKnots (2) ==> wrapped by deleting extreme knots.\r\n * @public\r\n */\r\nexport enum BSplineWrapMode {\r\n /** No conversion to periodic */\r\n None = 0,\r\n /** Convert to periodic by removing control points. This is typical for closed bcurve constructed by control points with maximum continuity.\r\n * * Knots stay the same in open and periodic form.\r\n * * Periodic form omits {degree} control points.\r\n */\r\n OpenByAddingControlPoints = 1,\r\n /** Convert to periodic by adding special knots. This is typical of closed bcurve constructed as exact circular or elliptic arc\r\n * * 2 knots on each end are omitted in open form\r\n * * poles stay the same.\r\n */\r\n OpenByRemovingKnots = 2,\r\n}\r\n/**\r\n * Array of non-decreasing numbers acting as a knot array for bsplines.\r\n *\r\n * * Essential identity: numKnots = numPoles + order = numPoles + degree - 1\r\n * * Various bspline libraries have confusion over how many \"end knots\" are needed. \"Many\" libraries (including MicroStation)\r\n * incorrectly demand \"order\" knots at each end for clamping. But only \"order - 1\" are really needed.\r\n * * This class uses the \"order-1\" convention.\r\n * * This class provides queries to convert among spanIndex and knotIndex\r\n * * A span is a single interval of the knots.\r\n * * The left knot of span {k} is knot {k+degree-1}\r\n * * This class provides queries to convert among spanFraction, fraction of knot range, and knot\r\n * * core computations (evaluateBasisFunctions) have leftKnotIndex and global knot value as inputs. Caller's need to\r\n * know their primary values (global knot, spanFraction).\r\n * @public\r\n */\r\nexport class KnotVector {\r\n /** The simple array of knot values. */\r\n public knots: Float64Array;\r\n /** Return the degree of basis functions defined in these knots. */\r\n public degree: number;\r\n private _knot0: number;\r\n private _knot1: number;\r\n\r\n private _wrapMode?: BSplineWrapMode;\r\n /** tolerance for considering two knots to be the same. */\r\n public static readonly knotTolerance = 1.0e-9;\r\n /** Return the leftmost knot value (of the active interval, ignoring unclamped leading knots)*/\r\n public get leftKnot() { return this._knot0; }\r\n /** Return the rightmost knot value (of the active interval, ignoring unclamped leading knots)*/\r\n public get rightKnot() { return this._knot1; }\r\n /** Return the index of the leftmost knot of the active interval */\r\n public get leftKnotIndex() { return this.degree - 1; }\r\n /** Return the index of the rightmost knot of the active interval */\r\n public get rightKnotIndex() { return this.knots.length - this.degree; }\r\n /** Whether the bspline was created by adding poles into \"closed\" structure. This is used by serialize/deserialize to mark knotVector's that were converted from periodic style. */\r\n public get wrappable() { return this._wrapMode === undefined ? BSplineWrapMode.None : this._wrapMode; }\r\n public set wrappable(value: BSplineWrapMode) { this._wrapMode = value; }\r\n /** Return the number of bezier spans. Not that this includes zero-length spans if there are repeated knots. */\r\n public get numSpans() { return this.rightKnotIndex - this.leftKnotIndex; }\r\n /**\r\n *\r\n * * If knots is a number array or Float64Array, the those values become the local knot array.\r\n * * If knots is a simple number, the local knot array is allocated to that size but left as zeros.\r\n * @param knots\r\n * @param degree\r\n */\r\n private constructor(knots: number[] | Float64Array | number, degree: number, wrapMode?: BSplineWrapMode) {\r\n this.degree = degree;\r\n this._wrapMode = wrapMode;\r\n // default values to satisfy compiler -- real values hapn setupFixedValues or final else defers to user\r\n this._knot0 = 0.0;\r\n this._knot1 = 1.0;\r\n // satisfy the initialize checker ..\r\n if (Array.isArray(knots)) { // remark: This ctor is private. The callers (as of April 2019) do not use this path.\r\n this.knots = new Float64Array(knots.length);\r\n this.setKnots(knots);\r\n this.setupFixedValues();\r\n } else if (knots instanceof Float64Array) {\r\n this.knots = knots.slice();\r\n this.setupFixedValues();\r\n } else { // caller is responsible for filling array separately ...\r\n this.knots = new Float64Array(knots);\r\n }\r\n }\r\n /** copy degree and knots to a new KnotVector. */\r\n public clone(): KnotVector { return new KnotVector(this.knots, this.degree, this.wrappable); }\r\n private setupFixedValues() {\r\n // These should be read-only . ..\r\n this._knot0 = this.knots[this.degree - 1];\r\n this._knot1 = this.knots[this.knots.length - this.degree];\r\n }\r\n /** Return the total knot distance from beginning to end. */\r\n public get knotLength01(): number { return this._knot1 - this._knot0; }\r\n /**\r\n * Returns true if all numeric values have wraparound conditions for \"closed\" knotVector with specified wrap mode\r\n * @param mode optional test mode. If undefined, use the this.wrappable.\r\n */\r\n public testClosable(mode?: BSplineWrapMode): boolean {\r\n if (mode === undefined)\r\n mode = this.wrappable;\r\n const leftKnotIndex = this.leftKnotIndex;\r\n const rightKnotIndex = this.rightKnotIndex;\r\n const period = this.rightKnot - this.leftKnot;\r\n const degree = this.degree;\r\n const indexDelta = rightKnotIndex - leftKnotIndex;\r\n // maximum continuity mode . . .\r\n if (mode === BSplineWrapMode.OpenByAddingControlPoints) {\r\n for (let k0 = leftKnotIndex - degree + 1; k0 < leftKnotIndex + degree - 1; k0++) {\r\n const k1 = k0 + indexDelta;\r\n if (!Geometry.isSameCoordinate(this.knots[k0] + period, this.knots[k1]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n // arc mode ...\r\n if (mode === BSplineWrapMode.OpenByRemovingKnots) {\r\n // we expect {degree} replicated knots at each end . . .\r\n const numRepeated = degree - 1;\r\n const leftKnot = this.knots[leftKnotIndex];\r\n const rightKnot = this.knots[rightKnotIndex];\r\n for (let i = 0; i < numRepeated; i++) {\r\n if (!Geometry.isSameCoordinate(leftKnot, this.knots[leftKnotIndex - i - 1]))\r\n return false;\r\n if (!Geometry.isSameCoordinate(rightKnot, this.knots[rightKnotIndex + i + 1]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n /** Test matching degree and knot values */\r\n public isAlmostEqual(other: KnotVector): boolean {\r\n if (this.degree !== other.degree) return false;\r\n return NumberArray.isAlmostEqual(this.knots, other.knots, KnotVector.knotTolerance);\r\n }\r\n /** install knot values from an array, optionally ignoring first and last.\r\n */\r\n public setKnots(knots: number[] | Float64Array, skipFirstAndLast?: boolean) {\r\n const numAllocate = skipFirstAndLast ? knots.length - 2 : knots.length;\r\n if (numAllocate !== this.knots.length)\r\n this.knots = new Float64Array(numAllocate);\r\n if (skipFirstAndLast) {\r\n for (let i = 1; i + 1 < knots.length; i++)\r\n this.knots[i - 1] = knots[i];\r\n\r\n } else {\r\n for (let i = 0; i < knots.length; i++)\r\n this.knots[i] = knots[i];\r\n }\r\n this.setupFixedValues();\r\n }\r\n /**\r\n * Create knot vector with {degree-1} replicated knots at start and end, and uniform knots between.\r\n * @param numPoles Number of poles\r\n * @param degree degree of polynomial\r\n * @param a0 left knot value for active interval\r\n * @param a1 right knot value for active interval\r\n */\r\n public static createUniformClamped(numPoles: number, degree: number, a0: number, a1: number): KnotVector {\r\n const knots = new KnotVector(numPoles + degree - 1, degree);\r\n let k = 0;\r\n for (let m = 0; m < degree; m++)knots.knots[k++] = a0;\r\n const du = 1.0 / (numPoles - degree);\r\n for (let i = 1; i + degree < numPoles; i++)\r\n knots.knots[k++] = a0 + i * du * (a1 - a0);\r\n for (let m = 0; m < degree; m++)knots.knots[k++] = a1;\r\n knots.setupFixedValues();\r\n return knots;\r\n }\r\n /**\r\n * Create knot vector with {degree-1} replicated knots at start and end, and uniform knots between.\r\n * @param numInterval number of intervals in knot space. (NOT POLE COUNT)\r\n * @param degree degree of polynomial\r\n * @param a0 left knot value for active interval\r\n * @param a1 right knot value for active interval\r\n */\r\n public static createUniformWrapped(numInterval: number, degree: number, a0: number, a1: number): KnotVector {\r\n const knots = new KnotVector(numInterval + 2 * degree - 1, degree);\r\n const du = 1.0 / numInterval;\r\n for (let i = 1 - degree, k = 0; i < numInterval + degree; i++, k++) {\r\n knots.knots[k] = Geometry.interpolate(a0, i * du, a1);\r\n }\r\n knots.setupFixedValues();\r\n return knots;\r\n }\r\n\r\n /**\r\n * Create knot vector with given knot values and degree.\r\n * @param knotArray knot values\r\n * @param degree degree of polynomial\r\n * @param skipFirstAndLast true to skip class overclamped end knots.\r\n */\r\n public static create(knotArray: number[] | Float64Array, degree: number, skipFirstAndLast?: boolean): KnotVector {\r\n const numAllocate = skipFirstAndLast ? knotArray.length - 2 : knotArray.length;\r\n const knots = new KnotVector(numAllocate, degree);\r\n knots.setKnots(knotArray, skipFirstAndLast);\r\n return knots;\r\n }\r\n\r\n /**\r\n * Return the average of degree consecutive knots beginning at spanIndex.\r\n */\r\n public grevilleKnot(spanIndex: number): number {\r\n if (spanIndex < 0) return this.leftKnot;\r\n if (spanIndex > this.rightKnotIndex) return this.rightKnot;\r\n let sum = 0.0;\r\n for (let i = spanIndex; i < spanIndex + this.degree; i++)\r\n sum += this.knots[i];\r\n return sum / this.degree;\r\n }\r\n /** Return an array sized for a set of the basis function values. */\r\n public createBasisArray(): Float64Array { return new Float64Array(this.degree + 1); }\r\n /** Convert localFraction within the interval following an indexed knot to a knot value. */\r\n public baseKnotFractionToKnot(knotIndex0: number, localFraction: number): number {\r\n const knot0 = this.knots[knotIndex0];\r\n return knot0 + localFraction * (this.knots[knotIndex0 + 1] - knot0);\r\n }\r\n /** Convert localFraction within an indexed bezier span to a knot value. */\r\n public spanFractionToKnot(spanIndex: number, localFraction: number): number {\r\n const k = this.spanIndexToLeftKnotIndex(spanIndex);\r\n return this.knots[k] + localFraction * (this.knots[k + 1] - this.knots[k]);\r\n }\r\n /** Convert localFraction within an indexed bezier span to fraction of active knot range. */\r\n public spanFractionToFraction(spanIndex: number, localFraction: number): number {\r\n const knot = this.spanFractionToKnot(spanIndex, localFraction);\r\n return (knot - this.leftKnot) / (this.rightKnot - this.leftKnot);\r\n }\r\n /** Return fraction of active knot range to knot value. */\r\n public fractionToKnot(fraction: number): number {\r\n return Geometry.interpolate(this.knots[this.degree - 1], fraction, this.knots[this.knots.length - this.degree]);\r\n }\r\n /**\r\n * Evaluate basis functions f[] at knot value u.\r\n *\r\n * @param u knot value for evaluation\r\n * @param f array of basis values. ASSUMED PROPER LENGTH\r\n */\r\n public evaluateBasisFunctions(knotIndex0: number, u: number, f: Float64Array) {\r\n f[0] = 1.0;\r\n if (this.degree < 1) return;\r\n // direct compute for linear part ...\r\n const u0 = this.knots[knotIndex0];\r\n const u1 = this.knots[knotIndex0 + 1];\r\n f[1] = (u - u0) / (u1 - u0);\r\n f[0] = 1.0 - f[1];\r\n if (this.degree < 2) return;\r\n\r\n for (let depth = 1; depth < this.degree; depth++) {\r\n let kLeft = knotIndex0 - depth;\r\n let kRight = kLeft + depth + 1;\r\n let gCarry = 0.0;\r\n for (let step = 0; step <= depth; step++) {\r\n const tLeft = this.knots[kLeft++];\r\n const tRight = this.knots[kRight++];\r\n const fraction = (u - tLeft) / (tRight - tLeft);\r\n const g1 = f[step] * fraction;\r\n const g0 = f[step] * (1.0 - fraction);\r\n f[step] = gCarry + g0;\r\n gCarry = g1;\r\n }\r\n f[depth + 1] = gCarry;\r\n }\r\n }\r\n\r\n /**\r\n * Evaluate basis fucntions f[] at knot value u.\r\n *\r\n * @param u knot value for evaluation\r\n * @param f array of basis values. ASSUMED PROPER LENGTH\r\n */\r\n public evaluateBasisFunctions1(knotIndex0: number, u: number, f: Float64Array, df: Float64Array, ddf?: Float64Array) {\r\n f[0] = 1.0; df[0] = 0.0;\r\n if (this.degree < 1) return;\r\n // direct compute for linear part ...\r\n const u0 = this.knots[knotIndex0];\r\n const u1 = this.knots[knotIndex0 + 1];\r\n // ah = 1/(u1-u0) is the derivative of fraction0\r\n // (-ah) is the derivative of fraction1.\r\n let ah = 1.0 / (u1 - u0);\r\n f[1] = (u - u0) * ah;\r\n f[0] = 1.0 - f[1];\r\n df[0] = -ah; df[1] = ah;\r\n if (ddf) { // first derivative started constant, second derivative started zero.\r\n ddf[0] = 0.0; ddf[1] = 0.0;\r\n }\r\n if (this.degree < 2) return;\r\n for (let depth = 1; depth < this.degree; depth++) {\r\n let kLeft = knotIndex0 - depth;\r\n let kRight = kLeft + depth + 1;\r\n let gCarry = 0.0;\r\n let dgCarry = 0.0;\r\n let ddgCarry = 0.0;\r\n // f, df, ddf, are each row vectors with product of `step` linear terms.\r\n // f is multiplied on the right by matrix V. Each row has 2 nonzero entries (which sum to 1) (0,0,1-fraction, fraction,0,0,0)\r\n // Each row of the derivative dV is two entries (0,0, -1/h, 1/h,0,0,0)\r\n // Hence fnew = f * V\r\n // dfnew = df * V + f * dV\r\n // ddfnew = ddf * V + df*dV + df * dV + f * ddV\r\n // but ddV is zero so\r\n // ddfnew = ddf * V + 2 * df * dV\r\n for (let step = 0; step <= depth; step++) {\r\n const tLeft = this.knots[kLeft++];\r\n const tRight = this.knots[kRight++];\r\n ah = 1.0 / (tRight - tLeft);\r\n const fraction = (u - tLeft) * ah;\r\n const fraction1 = 1.0 - fraction;\r\n const g1 = f[step] * fraction;\r\n const g0 = f[step] * fraction1;\r\n const dg1 = df[step] * fraction + f[step] * ah;\r\n const dg0 = df[step] * fraction1 - f[step] * ah;\r\n const dfSave = 2.0 * df[step] * ah;\r\n f[step] = gCarry + g0;\r\n df[step] = dgCarry + dg0;\r\n gCarry = g1;\r\n dgCarry = dg1;\r\n if (ddf) { // do the backward reference to df before rewriting df !!!\r\n const ddg1 = ddf[step] * fraction + dfSave;\r\n const ddg0 = ddf[step] * fraction1 - dfSave;\r\n ddf[step] = ddgCarry + ddg0;\r\n ddgCarry = ddg1;\r\n }\r\n }\r\n f[depth + 1] = gCarry;\r\n df[depth + 1] = dgCarry;\r\n if (ddf)\r\n ddf[depth + 1] = ddgCarry;\r\n }\r\n }\r\n /** Return the (highest) index of the knot less than or equal to u */\r\n public knotToLeftKnotIndex(u: number): number {\r\n // Anything to left is in the first span . .\r\n const firstLeftKnot = this.degree - 1;\r\n if (u < this.knots[firstLeftKnot + 1]) return firstLeftKnot;\r\n // Anything to right is in the last span ...\r\n const lastLeftKnot = this.knots.length - this.degree - 1;\r\n if (u >= this.knots.length - this.degree) return this.knots[lastLeftKnot];\r\n // ugh ... linear search ...\r\n for (let i = firstLeftKnot + 1; i < lastLeftKnot; i++)\r\n if (u < this.knots[i + 1]) return i; // testing against right side skips over multiple knot cases???\r\n return lastLeftKnot;\r\n }\r\n /**\r\n * Given a span index, return the index of the knot at its left.\r\n * @param spanIndex index of span\r\n */\r\n public spanIndexToLeftKnotIndex(spanIndex: number): number {\r\n const d = this.degree;\r\n if (spanIndex <= 0.0) return d - 1;\r\n return Math.min(spanIndex + d - 1, this.knots.length - d);\r\n }\r\n /** Return the knot interval length of indexed bezier span. */\r\n public spanIndexToSpanLength(spanIndex: number): number {\r\n const k = this.spanIndexToLeftKnotIndex(spanIndex);\r\n return this.knots[k + 1] - this.knots[k];\r\n }\r\n /**\r\n * Given a span index, test if it is within range and has nonzero length.\r\n * * note that a false return does not imply there are no more spans. This may be a double knot (zero length span) followed by more real spans\r\n * @param spanIndex index of span to test.\r\n */\r\n public isIndexOfRealSpan(spanIndex: number): boolean {\r\n if (spanIndex >= 0 && spanIndex < this.knots.length - this.degree)\r\n return !Geometry.isSmallMetricDistance(this.spanIndexToSpanLength(spanIndex));\r\n return false;\r\n }\r\n /** Reflect all knots so `leftKnot` and `rightKnot` are maintained but interval lengths reverse. */\r\n public reflectKnots() {\r\n const a = this.leftKnot;\r\n const b = this.rightKnot;\r\n const numKnots = this.knots.length;\r\n for (let i = 0; i < numKnots; i++)\r\n this.knots[i] = a + (b - this.knots[i]);\r\n this.knots.reverse();\r\n }\r\n /**\r\n * return a simple array form of the knots. optionally replicate the first and last\r\n * in classic over-clamped manner\r\n */\r\n public copyKnots(includeExtraEndKnot: boolean): number[] {\r\n const wrap = this.wrappable === BSplineWrapMode.OpenByAddingControlPoints && this.testClosable();\r\n const leftIndex = this.leftKnotIndex;\r\n const rightIndex = this.rightKnotIndex;\r\n const a0 = this.leftKnot;\r\n const a1 = this.rightKnot;\r\n const delta = a1 - a0;\r\n const degree = this.degree;\r\n const values: number[] = [];\r\n if (includeExtraEndKnot) {\r\n if (wrap) {\r\n values.push(this.knots[rightIndex - degree] - delta);\r\n } else {\r\n values.push(this.knots[0]);\r\n }\r\n }\r\n for (const u of this.knots) values.push(u);\r\n if (includeExtraEndKnot) {\r\n if (wrap) {\r\n values.push(this.knots[leftIndex + degree] + delta);\r\n } else\r\n values.push(values[values.length - 1]);\r\n }\r\n return values;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SurfaceLocationDetail.d.ts","sourceRoot":"","sources":["../../src/bspline/SurfaceLocationDetail.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,kCAAkC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IAC3B,oCAAoC;IAC7B,EAAE,EAAE,OAAO,CAAC;IACnB,+BAA+B;IACxB,KAAK,EAAE,OAAO,CAAC;IACtB,2DAA2D;IACpD,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;gBACd,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO;IAMrE;;;;;OAKG;WACW,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB;IAOxH;;;;;OAKG;WACW,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB;CAQzI;AACD;;;GAGG;AACH,qBAAa,6BAA6B;IACxC,qCAAqC;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACxC,uCAAuC;IAChC,aAAa,EAAE,uBAAuB,CAAC;IAC9C,+BAA+B;gBACZ,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,uBAAuB;CAI5F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SurfaceLocationDetail.js","sourceRoot":"","sources":["../../src/bspline/SurfaceLocationDetail.ts"],"names":[],"mappings":";;;AASA,mEAAwD;AACxD,mEAAwD;AAExD;;;;;GAKG;AACH,MAAa,uBAAuB;IASlC,iCAAiC;IACjC,YAAmB,OAAmB,EAAE,EAAY,EAAE,KAAe;QACnE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAO,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAO,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IACf,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,oBAAoB,CAAC,OAA8B,EAAE,EAAW,EAAE,KAAc;QAC5F,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,EAAE;YACJ,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,2BAA2B,CAAC,OAA8B,EAAE,CAAS,EAAE,CAAS,EAAE,KAAc;QAC5G,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF;AA3CD,0DA2CC;AACD;;;GAGG;AACH,MAAa,6BAA6B;IAKxC,+BAA+B;IAC/B,YAAmB,WAAgC,EAAE,aAAsC;QACzF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AAVD,sEAUC","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 Curve\r\n */\r\nimport { CurveLocationDetail } from \"../curve/CurveLocationDetail\";\r\nimport { UVSurface } from \"../geometry3d/GeometryHandler\";\r\nimport { Point2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\n\r\n/**\r\n * CurveLocationDetail carries point and paramter data about a point evaluated on a curve.\r\n * * These are returned by a variety of queries.\r\n * * Particular contents can vary among the queries.\r\n * @public\r\n */\r\nexport class UVSurfaceLocationDetail {\r\n /** The surface being evaluated */\r\n public surface?: UVSurface;\r\n /** uv coordinates in the surface */\r\n public uv: Point2d;\r\n /** The point on the surface */\r\n public point: Point3d;\r\n /** A context-specific numeric value. (E.g. a distance) */\r\n public a: number;\r\n /** Construct with empty data. */\r\n public constructor(surface?: UVSurface, uv?: Point2d, point?: Point3d) {\r\n this.surface = surface;\r\n this.point = point ? point : Point3d.createZero();\r\n this.uv = uv ? uv : Point2d.createZero();\r\n this.a = 0.0;\r\n }\r\n /**\r\n * Create a new detail structure.\r\n * @param surface\r\n * @param uv coordinates to copy (not capture) into the `detail.uv`\r\n * @param point coordinates to copy (not capture) into the `detail.point`\r\n */\r\n public static createSurfaceUVPoint(surface: UVSurface | undefined, uv: Point2d, point: Point3d): UVSurfaceLocationDetail {\r\n const detail = new UVSurfaceLocationDetail(surface);\r\n if (uv)\r\n detail.uv.setFrom(uv);\r\n detail.point.setFromPoint3d(point);\r\n return detail;\r\n }\r\n /**\r\n * Create a new detail structure.\r\n * @param surface\r\n * @param uv coordinates to copy (not capture) into the `detail.uv`\r\n * @param point coordinates to copy (not capture) into the `detail.point`\r\n */\r\n public static createSurfaceUVNumbersPoint(surface: UVSurface | undefined, u: number, v: number, point: Point3d): UVSurfaceLocationDetail {\r\n const detail = new UVSurfaceLocationDetail(surface);\r\n detail.uv.x = u;\r\n detail.uv.y = v;\r\n detail.point.setFromPoint3d(point);\r\n return detail;\r\n }\r\n\r\n}\r\n/**\r\n * Carrier for both curve and surface data, e.g. from intersection calculations.\r\n * @public\r\n */\r\nexport class CurveAndSurfaceLocationDetail {\r\n /** detailed location on the curve */\r\n public curveDetail: CurveLocationDetail;\r\n /** detailed location on the surface */\r\n public surfaceDetail: UVSurfaceLocationDetail;\r\n /** CAPTURE both details . . */\r\n public constructor(curveDetail: CurveLocationDetail, surfaceDetail: UVSurfaceLocationDetail) {\r\n this.curveDetail = curveDetail;\r\n this.surfaceDetail = surfaceDetail;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AlternatingConvexClipTree.d.ts","sourceRoot":"","sources":["../../src/clipping/AlternatingConvexClipTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AlternatingConvexClipTree.js","sourceRoot":"","sources":["../../src/clipping/AlternatingConvexClipTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { BSplineCurve3d } from \"../bspline/BSplineCurve\";\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurveLocationDetail, CurveLocationDetailPair } from \"../curve/CurveLocationDetail\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { LineString3d } from \"../curve/LineString3d\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range1d } from \"../geometry3d/Range\";\r\nimport { Range1dArray } from \"../numerics/Range1dArray\";\r\nimport { ClipPlane } from \"./ClipPlane\";\r\nimport { ClipUtilities, PolygonClipper } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet } from \"./ConvexClipPlaneSet\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Point3dArray } from \"../geometry3d/PointHelpers\";\r\n\r\n/**\r\n * An AlternatingConvexClipTreeNode is a node in a tree structure in which\r\n * <ul>\r\n * <li>Each node contains a ConvexClipPlaneSet\r\n * <li>Each node contains an array of children which are also AlternatingConvexClipTreeNode.\r\n * <li>The rule for an in/out decision is that a point is IN the subtree under a node if\r\n * <ul>\r\n * <li>It is IN the node's ConvexClipPlaneSet.\r\n * <li>It is NOT IN any of the children.\r\n * </ul>\r\n * <li>Applying \"NOT IN any of the children\" locally to children at each level means that the ConvexClipPlaneSet\r\n * at adjacent levels flip between being positive areas and holes.\r\n * <li>Use an AlternatingConvexClipTreeNodeBuilder to construct the tree from a polygon.\r\n * <li>It is possible for the root clip plane set to be empty. An empty clip plane set returns \"true\"\r\n * for all point tests, so the meaning is just that holes are to be subtracted from the rest\r\n * of space.\r\n * <li>Although the interpretation of in/out alternates with tree levels, the ConvexClipPlaneSets\r\n * at each level are all \"enclosing\" planes in the usual way.\r\n * </ul>\r\n */\r\nexport class AlternatingCCTreeNode implements PolygonClipper {\r\n public points: Point3d[] = [];\r\n public planes: ConvexClipPlaneSet = ConvexClipPlaneSet.createEmpty();\r\n public children: AlternatingCCTreeNode[] = [];\r\n public startIdx: number = -1; // Start index into the master array (not the local points array)\r\n public numPoints: number = -1; // Number of points used in the master array\r\n\r\n private constructor() { }\r\n\r\n /** Initialize this node with index data referencing the parent polygon. */\r\n public static createWithIndices(index0: number, numPoints: number, result?: AlternatingCCTreeNode): AlternatingCCTreeNode {\r\n result = result ? result : new AlternatingCCTreeNode();\r\n result.startIdx = index0;\r\n result.numPoints = numPoints;\r\n result.children.length = 0;\r\n return result;\r\n }\r\n\r\n /**\r\n * <ul>\r\n * <li>Build the tree for a polygon.\r\n * <li>Caller creates the root node with empty constructor AlternatingConvexClipTreeNode.\r\n * </ul>\r\n */\r\n public static createTreeForPolygon(points: Point3d[], result?: AlternatingCCTreeNode): AlternatingCCTreeNode {\r\n result = result ? result : new AlternatingCCTreeNode();\r\n result.empty();\r\n const builder = AlternatingCCTreeBuilder.createPointsRef(points);\r\n builder.buildHullTree(result); // <-- Currently ALWAYS returns true\r\n return result;\r\n }\r\n\r\n /**\r\n * Build the outer convex hull will inlets as first level children\r\n */\r\n public static createHullAndInletsForPolygon(points: Point3d[], result?: AlternatingCCTreeNode): AlternatingCCTreeNode {\r\n result = result ? result : new AlternatingCCTreeNode();\r\n result.empty();\r\n const builder = AlternatingCCTreeBuilder.createPointsRef(points);\r\n builder.buildHullAndInletsForPolygon(result); // <-- Currently ALWAYS returns true\r\n return result;\r\n }\r\n private extractLoopsGo(loops: Point3d[][]) {\r\n loops.push(Point3dArray.clonePoint3dArray(this.points));\r\n for (const c of this.children)\r\n c.extractLoopsGo(loops);\r\n }\r\n/**\r\n * Return an array with all the loops in the tree.\r\n * This looses the alternating structure of the tree, but the collection still matches well-formed polygons by parity rules.\r\n */\r\n public extractLoops(): Point3d[][]{\r\n const loops: Point3d[][] = [];\r\n this.extractLoopsGo(loops);\r\n return loops;\r\n }\r\n /** Resets this AlternatingConvexClipTreeNode to a newly-created state */\r\n public empty() {\r\n this.points.length = 0;\r\n this.planes.planes.length = 0;\r\n this.children.length = 0;\r\n this.startIdx = -1;\r\n this.numPoints = -1;\r\n }\r\n\r\n /** Creates a deep copy of this node (expensive - copies Geometry, and is recursive for children array). */\r\n public clone(result?: AlternatingCCTreeNode): AlternatingCCTreeNode {\r\n result = result ? result : new AlternatingCCTreeNode();\r\n for (const point of this.points)\r\n result.points.push(point.clone());\r\n result.planes = ConvexClipPlaneSet.createEmpty();\r\n for (const plane of this.planes.planes)\r\n result.planes.planes.push(plane.clone());\r\n for (const node of this.children)\r\n result.children.push(node.clone());\r\n result.startIdx = this.startIdx;\r\n result.numPoints = this.numPoints;\r\n return result;\r\n }\r\n\r\n /** Add a new child that has an empty plane set and given indices. */\r\n public addEmptyChild(index0: number, numPoints: number) {\r\n const newNode = AlternatingCCTreeNode.createWithIndices(index0, numPoints);\r\n this.children.push(newNode);\r\n }\r\n\r\n /** Add a plane to the ConvexClipPlaneSet */\r\n public addPlane(plane: ClipPlane) {\r\n this.planes.addPlaneToConvexSet(plane);\r\n }\r\n\r\n /** Search with alternating in and out semantics. */\r\n public isPointOnOrInside(point: Point3d): boolean {\r\n const inRoot = this.planes.isPointOnOrInside(point, 0.0);\r\n if (!inRoot)\r\n return false;\r\n\r\n for (const child of this.children) {\r\n if (child.isPointOnOrInside(point))\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Add an AlternatingConvexClipTreeNode as a child of this one -- i.e. a hole.\r\n * * The child pointer is pushed directly to the tree -- not cloned.\r\n */\r\n public captureConvexClipPlaneSetAsVoid(child: AlternatingCCTreeNode) {\r\n this.children.push(child);\r\n }\r\n\r\n /** Append start-end positions for curve intervals classified as inside or outside. */\r\n public appendCurvePrimitiveClipIntervals(curve: CurvePrimitive, insideIntervals: CurveLocationDetailPair[], outsideIntervals: CurveLocationDetailPair[]) {\r\n const clipper = new AlternatingCCTreeNodeCurveClipper();\r\n clipper.appendSingleClipPrimitive(this, curve, insideIntervals, outsideIntervals);\r\n }\r\n\r\n /** Append start-end positions for curve intervals classified as inside or outside. */\r\n public appendCurveCollectionClipIntervals(curves: CurveCollection, insideIntervals: CurveLocationDetailPair[], outsideIntervals: CurveLocationDetailPair[]) {\r\n const clipper = new AlternatingCCTreeNodeCurveClipper();\r\n clipper.appendCurveCollectionClip(this, curves, insideIntervals, outsideIntervals);\r\n }\r\n /**\r\n *\r\n * @param xyz input polygon. This is not changed.\r\n * @param insideFragments Array to receive \"inside\" fragments. Each fragment is a GrowableXYZArray grabbed from the cache. This is NOT cleared.\r\n * @param outsideFragments Array to receive \"outside\" fragments. Each fragment is a GrowableXYZArray grabbed from the cache. This is NOT cleared.\r\n * @param arrayCache cache for reusable GrowableXYZArray.\r\n */\r\n public appendPolygonClip(\r\n xyz: GrowableXYZArray,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache): void {\r\n // At first level ..\r\n // newInside is subject to re-clip by children.\r\n // outside is definitively outside\r\n const oldOutsideCount = outsideFragments.length;\r\n const newInside = this.planes.clipInsidePushOutside(xyz, outsideFragments, arrayCache);\r\n if (newInside === undefined) {\r\n ClipUtilities.restoreSingletonInPlaceOfMultipleShards (outsideFragments, oldOutsideCount, xyz, arrayCache);\r\n } else {\r\n let carryForwardA = [newInside];\r\n let carryForwardB: GrowableXYZArray[] = [];\r\n let tempAB;\r\n let shard;\r\n for (const c of this.children) {\r\n carryForwardB.length = 0;\r\n while (undefined !== (shard = carryForwardA.pop())) {\r\n // Anything inside this child is truly outside ...\r\n c.appendPolygonClip(shard, outsideFragments, carryForwardB, arrayCache);\r\n arrayCache.dropToCache(shard);\r\n }\r\n tempAB = carryForwardB;\r\n carryForwardB = carryForwardA; // and that is empty\r\n carryForwardA = tempAB;\r\n }\r\n while (undefined !== (shard = carryForwardA.pop())) {\r\n insideFragments.push(shard);\r\n }\r\n }\r\n }\r\n /**\r\n *\r\n */\r\n public depth(): number {\r\n const myDepth = 1;\r\n let maxChildDepth = 0;\r\n for (const c of this.children) {\r\n maxChildDepth = Math.max(maxChildDepth, c.depth());\r\n }\r\n return myDepth + maxChildDepth;\r\n }\r\n}\r\n/**\r\n * Context structure for building an AlternatingConvexClipTreeNode from a polygon.\r\n * <ul>\r\n * <li> The polygon is copied to the local m_points structure.\r\n * <li> During construction, m_stack contains indices of a sequence of points with uniform concavity.\r\n * </ul>\r\n */\r\nexport class AlternatingCCTreeBuilder {\r\n private _points: Point3d[] = [];\r\n private _stack: number[] = [];\r\n\r\n private constructor() { }\r\n\r\n public static createPointsRef(points: Point3d[], result?: AlternatingCCTreeBuilder): AlternatingCCTreeBuilder {\r\n result = result ? result : new AlternatingCCTreeBuilder();\r\n result._points = points;\r\n if (PolygonOps.areaXY(points) < 0.0)\r\n result._points.reverse();\r\n if (result._points[result._points.length - 1].isAlmostEqualMetric(result._points[0]))\r\n result._points.pop();\r\n return result;\r\n }\r\n\r\n public get period(): number { return this._points.length; }\r\n\r\n public indexAfter(i: number) { return (i + 1) % this._points.length; }\r\n public indexBefore(i: number) { return (i + this._points.length - 1) % this._points.length; }\r\n\r\n public pushIndex(primaryPointIndex: number) {\r\n this._stack.push(primaryPointIndex);\r\n }\r\n\r\n private static cross(pointA: Point3d, pointB: Point3d, pointC: Point3d): number {\r\n return pointA.crossProductToPointsXY(pointB, pointC);\r\n }\r\n /*\r\n public isInsideTurn(pointA: Point3d, pointB: Point3d, pointC: Point3d, sign: number) {\r\n return sign * AlternatingCCTreeBuilder.cross(pointA, pointB, pointC) > 0;\r\n }\r\n */\r\n public cyclicStackPoint(cyclicIndex: number): Point3d { // SIGNED index -- but negatives must be in first 10 periods?\r\n let stackIndex: number;\r\n const stack = this._stack;\r\n if (cyclicIndex > 0)\r\n stackIndex = cyclicIndex;\r\n else\r\n stackIndex = cyclicIndex + 10 * stack.length;\r\n stackIndex = stackIndex % stack.length;\r\n return this._points[stack[stackIndex]];\r\n }\r\n\r\n public signFromStackTip(pointIndex: number, sign: number) {\r\n const pointA = this.cyclicStackPoint(-2);\r\n const pointB = this.cyclicStackPoint(-1);\r\n const pointC = this._points[pointIndex];\r\n return sign * AlternatingCCTreeBuilder.cross(pointA, pointB, pointC) >= 0.0 ? 1 : -1;\r\n }\r\n\r\n /*\r\n * Test of xyz is in the convex region bounded by stack points:\r\n * <ul>\r\n * <li>polygon[i0]..polygon[i1]\r\n * <li>polygon[j0]..polygon[j1]\r\n * <li>polygon[i0]..polygon[i1]\r\n * </ul>\r\n * with \"inside\" controlled by sign multiplier.\r\n public isConvexContinuation(point: Point3d, i0: number, i1: number, j0: number, j1: number, sign: number): boolean {\r\n const points = this.points;\r\n const stack = this.stack;\r\n return this.isInsideTurn(points[stack[i0]], points[stack[i1]], point, sign)\r\n && this.isInsideTurn(points[stack[i0]], points[stack[j0]], point, sign)\r\n && this.isInsideTurn(points[stack[j1]], points[stack[i1]], point, sign);\r\n }\r\n */\r\n\r\n public get indexOfMaxX() {\r\n let k = 0;\r\n const points = this._points;\r\n const nPoints = this._points.length;\r\n for (let i = 1; i < nPoints; i++) {\r\n if (points[i].x > points[k].x)\r\n k = i;\r\n }\r\n return k;\r\n }\r\n\r\n /** Pop from the stack until the sign condition is satisfied */\r\n public extendHullChain(k: number, sign: number, pushAfterPops: boolean) {\r\n while (this._stack.length > 1 && this.signFromStackTip(k, sign) < 0.0)\r\n this._stack.pop();\r\n if (pushAfterPops)\r\n this.pushIndex(k);\r\n }\r\n\r\n public collectHullChain(kStart: number, numK: number, sign: number) {\r\n this._stack.length = 0;\r\n if (numK > 2) {\r\n let k = kStart;\r\n for (let i = 0; i < numK; i++) {\r\n this.extendHullChain(k, sign, true);\r\n k = this.indexAfter(k);\r\n }\r\n }\r\n }\r\n\r\n public collectHullPointsInArray(points: Point3d[], kStart: number, numK: number, _sign: number) {\r\n points.length = 0;\r\n if (numK > 2) {\r\n let k = kStart;\r\n for (let i = 0; i < numK; i++) {\r\n points.push(this._points[k]);\r\n k = this.indexAfter(k);\r\n }\r\n }\r\n }\r\n\r\n private buildHullTreeGo(root: AlternatingCCTreeNode, isPositiveArea: boolean, recurseToChildren: boolean = true): boolean {\r\n this.collectHullChain(root.startIdx, root.numPoints, isPositiveArea ? 1.0 : -1.0);\r\n root.points.length = 0;\r\n const stack = this._stack;\r\n const points = this._points;\r\n const stackLen = stack.length;\r\n\r\n for (let i = 0; i < stackLen; i++) {\r\n const k0 = stack[i];\r\n root.points.push(points[k0]);\r\n if (i + 1 < stackLen) {\r\n let k1 = stack[i + 1];\r\n if (k1 === this.indexAfter(k0)) {\r\n // two original points in sequence -- need a clip plane right here!!!\r\n const plane = ClipPlane.createEdgeAndUpVector(points[k0], points[k1], Vector3d.create(0, 0, 1), Angle.createRadians(0));\r\n if (plane !== undefined) {\r\n if (isPositiveArea)\r\n plane.negateInPlace();\r\n root.addPlane(plane);\r\n }\r\n } else {\r\n if (k1 < k0)\r\n k1 += this.period;\r\n root.addEmptyChild(k0, k1 - k0 + 1);\r\n }\r\n }\r\n }\r\n if (recurseToChildren){\r\n for (const child of root.children)\r\n this.buildHullTreeGo(child, !isPositiveArea);\r\n } else {\r\n for (const child of root.children)\r\n this.collectHullPointsInArray(child.points, child.startIdx, child.numPoints, isPositiveArea ? -1.0 : 1.0);\r\n\r\n }\r\n\r\n return true; // Are there failure modes? What happens with crossing data?..\r\n }\r\n\r\n /**\r\n * <ul>\r\n * <li> Input a ClipTreeRoot that has start and count data\r\n * <li> Build the hull for that data range\r\n * <li> Store the hull points in the root\r\n * <li> Add children with start and count data\r\n * <li> Recursively move to children\r\n * </ul>\r\n */\r\n public buildHullAndInletsForPolygon(root: AlternatingCCTreeNode): boolean {\r\n AlternatingCCTreeNode.createWithIndices(this.indexOfMaxX, this.period + 1, root);\r\n return this.buildHullTreeGo(root, true, false);\r\n }\r\n /**\r\n * <ul>\r\n * <li> Input a ClipTreeRoot that has start and count data\r\n * <li> Build the hull for that data range\r\n * <li> Store the hull points in the root\r\n * <li> Add children with start and count data\r\n * <li> Recursively move to children\r\n * </ul>\r\n */\r\n public buildHullTree(root: AlternatingCCTreeNode): boolean {\r\n AlternatingCCTreeNode.createWithIndices(this.indexOfMaxX, this.period + 1, root);\r\n return this.buildHullTreeGo(root, true);\r\n }\r\n\r\n}\r\n\r\nexport class AlternatingCCTreeNodeCurveClipper {\r\n private _curve: CurvePrimitive | undefined;\r\n private _intervalStack: Range1d[][];\r\n private _stackDepth: number;\r\n\r\n public constructor() {\r\n this._stackDepth = 0;\r\n this._intervalStack = [];\r\n }\r\n\r\n private setCurveRef(curve: CurvePrimitive) { this._curve = curve; }\r\n\r\n private popSegmentFrame() {\r\n if (this._stackDepth > 0) {\r\n this._topOfStack.length = 0; // formality.\r\n this._stackDepth -= 1;\r\n }\r\n }\r\n\r\n private clearSegmentStack() {\r\n while (this._stackDepth > 0)\r\n this.popSegmentFrame(); // and that will reduce stack depth\r\n }\r\n\r\n private pushEmptySegmentFrame() {\r\n this._stackDepth += 1;\r\n while (this._intervalStack.length < this._stackDepth)\r\n this._intervalStack.push([]);\r\n this._topOfStack.length = 0;\r\n }\r\n\r\n private get _topOfStack(): Range1d[] { return this._intervalStack[this._stackDepth - 1]; }\r\n // set the top of the stack (as defined by stackDepth -- not array length)\r\n private set _topOfStack(value: Range1d[]) {\r\n const n = this._stackDepth;\r\n if (n > 0)\r\n this._intervalStack[n - 1] = value;\r\n }\r\n\r\n /** Access entry [topOfStack() - numSkip] */\r\n private stackEntry(numSkip: number): Range1d[] {\r\n if (numSkip <= this._stackDepth)\r\n return this._intervalStack[this._stackDepth - 1 - numSkip];\r\n else\r\n return [];\r\n }\r\n\r\n private isTopOfStackEmpty(): boolean {\r\n return this._topOfStack.length === 0;\r\n }\r\n\r\n // Is re-used by method calls\r\n private static _fractionIntervals: number[] = [];\r\n\r\n private appendSingleClipToStack(planes: ConvexClipPlaneSet, insideSegments: Range1d[]): boolean {\r\n const fractionIntervals = AlternatingCCTreeNodeCurveClipper._fractionIntervals;\r\n\r\n if (this._curve instanceof LineSegment3d) {\r\n const segment = this._curve;\r\n let f0: number;\r\n let f1: number;\r\n if (segment.announceClipIntervals(planes, (a0: number, a1: number, _cp: CurvePrimitive) => { f0 = a0; f1 = a1; })) {\r\n insideSegments.push(Range1d.createXX(f0!, f1!));\r\n }\r\n return true;\r\n\r\n } else if (this._curve instanceof Arc3d) {\r\n const arc = this._curve;\r\n fractionIntervals.length = 0;\r\n arc.announceClipIntervals(planes, (a0: number, a1: number, _cp: CurvePrimitive) => {\r\n fractionIntervals.push(a0); fractionIntervals.push(a1);\r\n });\r\n for (let i = 0; i < fractionIntervals.length; i += 2)\r\n insideSegments.push(Range1d.createXX(fractionIntervals[i], fractionIntervals[i + 1]));\r\n return true;\r\n\r\n } else if (this._curve instanceof LineString3d && (this._curve).points.length > 1) {\r\n const linestring = this._curve;\r\n let f0: number;\r\n let f1: number;\r\n const nPoints = linestring.points.length;\r\n const df = 1.0 / (nPoints - 1);\r\n for (let i = 0; i < nPoints - 1; i++) {\r\n const segment = LineSegment3d.create(linestring.points[i], linestring.points[i + 1]);\r\n if (segment.announceClipIntervals(planes, (a0: number, a1: number, _cp: CurvePrimitive) => { f0 = a0; f1 = a1; })) {\r\n insideSegments.push(Range1d.createXX((i + f0!) * df, (i + f1!) * df));\r\n }\r\n }\r\n return true;\r\n\r\n } else if (this._curve instanceof BSplineCurve3d) {\r\n const bcurve = this._curve;\r\n fractionIntervals.length = 0;\r\n bcurve.announceClipIntervals(planes, (a0: number, a1: number, _cp: CurvePrimitive) => {\r\n fractionIntervals.push(a0); fractionIntervals.push(a1);\r\n });\r\n for (let i = 0; i < fractionIntervals.length; i += 2)\r\n insideSegments.push(Range1d.createXX(fractionIntervals[i], fractionIntervals[i + 1]));\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Run one level of recursion. On return, the stack is one level deeper than at entry and the new top of the stack has clip for this node\r\n * (expensive -- must clone items of arrays during \"swaps\")\r\n */\r\n private recurse(node: AlternatingCCTreeNode) {\r\n this.pushEmptySegmentFrame();\r\n this.appendSingleClipToStack(node.planes, this._topOfStack);\r\n Range1dArray.sort(this._topOfStack);\r\n if (this.isTopOfStackEmpty())\r\n return;\r\n\r\n for (const child of node.children) {\r\n this.recurse(child);\r\n if (!this.isTopOfStackEmpty()) {\r\n const ranges = Range1dArray.differenceSorted(this.stackEntry(1), this.stackEntry(0));\r\n this.popSegmentFrame();\r\n this._topOfStack = ranges;\r\n } else {\r\n this.popSegmentFrame();\r\n }\r\n if (this.isTopOfStackEmpty())\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Modifies the insideIntervals array given in place.\r\n * Note: curve given is passed by reference and stored.\r\n */\r\n public appendSingleClipPrimitive(root: AlternatingCCTreeNode, curve: CurvePrimitive,\r\n insideIntervals: CurveLocationDetailPair[], _outsideIntervals: CurveLocationDetailPair[]) {\r\n this.setCurveRef(curve);\r\n this.clearSegmentStack();\r\n this.recurse(root);\r\n if (this._stackDepth !== 1)\r\n return;\r\n\r\n const intervals = this._topOfStack;\r\n for (const interval of intervals) {\r\n const f0 = interval.low;\r\n const f1 = interval.high;\r\n const xyz0 = curve.fractionToPoint(f0);\r\n const xyz1 = curve.fractionToPoint(f1);\r\n insideIntervals.push(CurveLocationDetailPair.createCapture(\r\n CurveLocationDetail.createCurveFractionPoint(curve, f0, xyz0),\r\n CurveLocationDetail.createCurveFractionPoint(curve, f1, xyz1),\r\n ));\r\n }\r\n this.popSegmentFrame();\r\n }\r\n\r\n /**\r\n * Modifies the insideIntervals array given in place.\r\n * Note: curve given is passed by reference and stored.\r\n */\r\n public appendCurveCollectionClip(root: AlternatingCCTreeNode, curve: CurveCollection,\r\n insideIntervals: CurveLocationDetailPair[], outsideIntervals: CurveLocationDetailPair[]) {\r\n for (const cp of curve.children!) {\r\n if (cp instanceof CurvePrimitive)\r\n this.appendSingleClipPrimitive(root, cp, insideIntervals, outsideIntervals);\r\n else if (cp instanceof CurveCollection)\r\n this.appendCurveCollectionClip(root, cp, insideIntervals, outsideIntervals);\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BooleanClipFactory.d.ts","sourceRoot":"","sources":["../../src/clipping/BooleanClipFactory.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AAIrD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;OAMG;WACW,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAK7F;;;;;;OAMG;WACW,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAKpG;;;;;;OAMG;WACW,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAK9F;;;;;;;OAOG;WACW,uBAAuB,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO;IAItH;;;;OAIG;WACW,wBAAwB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO;IAIxE;;;;;;OAMG;WACW,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,SAAS;IAoBrE;;;;;;;;;;;;OAYG;WACW,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IA0DlE,0DAA0D;WAC5C,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CAQ9D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BooleanClipFactory.js","sourceRoot":"","sources":["../../src/clipping/BooleanClipFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\nimport { BooleanClipNodeIntersection, BooleanClipNodeParity, BooleanClipNodeUnion } from \"./BooleanClipNode\";\r\nimport { ClipPlane } from \"./ClipPlane\";\r\nimport { Clipper, ClipUtilities } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet } from \"./ConvexClipPlaneSet\";\r\nimport { UnionOfConvexClipPlaneSets } from \"./UnionOfConvexClipPlaneSets\";\r\n\r\n/** A BooleanClipFactory is a factory to create objects that implement interior nodes of a tree of boolean clip operations.\r\n * * These methods create specific clip tree types:\r\n * * Union\r\n * * Intersection\r\n * * Parity\r\n * * Difference\r\n * * Each construction has a `keepInside` flag that optionally negates the initial result of the parity, intersection, parity, or difference:\r\n * * if `keepInside === true`, accept the \"inside\" of the initial result\r\n * * if `keepInside === false`, accept the \"outside\" of the initial result\r\n * * These methods create various other specialized clippers\r\n * *\r\n * @public\r\n */\r\nexport class BooleanClipFactory {\r\n /**\r\n * Create a boolean clipper which performs a union over its children\r\n * * if `keepInside === true`, accept the \"inside\" of the union result\r\n * * if `keepInside === false`, accept the \"outside\" of the union result\r\n * @param clippers clip objects to capture\r\n * @param keepInside flag to select results inside or outside the clippers.\r\n */\r\n public static createCaptureUnion(clippers: Clipper | Clipper[], keepInside: boolean): Clipper {\r\n const result = new BooleanClipNodeUnion(keepInside);\r\n result.captureChild(clippers);\r\n return result;\r\n }\r\n /**\r\n * Create a boolean clipper which performs an intersection over its children\r\n * * if `keepInside === true`, accept the \"inside\" of the intersection result\r\n * * if `keepInside === false`, accept the \"outside\" of the intersection result\r\n * @param clippers clip objects to capture\r\n * @param keepInside flag to select results inside or outside the clippers.\r\n */\r\n public static createCaptureIntersection(clippers: Clipper | Clipper[], keepInside: boolean): Clipper {\r\n const result = new BooleanClipNodeIntersection(keepInside);\r\n result.captureChild(clippers);\r\n return result;\r\n }\r\n /**\r\n * Create a boolean clipper which performs a parity over its children\r\n * * if `keepInside === true`, accept the \"inside\" of the parity result\r\n * * if `keepInside === false`, accept the \"outside\" of the parity result\r\n * @param clippers clip objects to capture\r\n * @param keepInside flag to select results inside or outside the clippers.\r\n */\r\n public static createCaptureParity(clippers: Clipper | Clipper[], keepInside: boolean): Clipper {\r\n const result = new BooleanClipNodeParity(keepInside);\r\n result.captureChild(clippers);\r\n return result;\r\n }\r\n /**\r\n * Create a boolean clipper which performs a difference operation for points \"inside `primaryClipper`\" and \"outside `excludedClipper`\"\r\n * * if `keepInside === true`, accept the \"inside\" of the difference\r\n * * if `keepInside === false`, accept the \"outside\" of the difference\r\n * @param primaryClipper any clip object whose output is treated as positive\r\n * @param excludeClip any clipper whose output is treated as negative.\r\n * @param keepInside flag to select results inside or outside the initial `primary minus excludeClipper` clippers.\r\n */\r\n public static createCaptureDifference(primaryClipper: Clipper, excludedClipper: Clipper, keepInside: boolean): Clipper {\r\n const mask = this.createCaptureUnion(excludedClipper, false);\r\n return this.createCaptureIntersection([primaryClipper, mask], keepInside);\r\n }\r\n /**\r\n * Create a boolean clipper which performs the reverse of that of `primaryClipper`\r\n * @param primaryClipper clip objects to capture\r\n * @param keepInside flag to select results inside or outside the clippers.\r\n */\r\n public static createCaptureClipOutside(primaryClipper: Clipper): Clipper {\r\n return this.createCaptureUnion([primaryClipper], false);\r\n }\r\n\r\n /**\r\n * convert `source` to an array of clipper objects.\r\n * * ANY TYPE OF Clipper is accepted.\r\n * * REMARK: This is normally called only from the primary public method `parseToClipper`.\r\n * @param source\r\n * @param internal\r\n */\r\n public static parseToClipperArray(source: any): Clipper[] | undefined {\r\n if (Array.isArray(source)) {\r\n const clippers = [];\r\n for (const c of source) {\r\n const c1 = this.parseToClipper(c);\r\n if (!c1)\r\n return undefined;\r\n clippers.push(c1);\r\n }\r\n if (clippers.length === 0)\r\n return undefined;\r\n return clippers;\r\n } else {\r\n // accept singleton to singleton array\r\n const c = this.parseToClipper(source);\r\n if (c)\r\n return [c];\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * look for content that represents a clipper.\r\n * * Possible outputs are\r\n * * `ClipPlane`\r\n * * `ConvexClipPlaneSet`\r\n * * `UnionOfConvexClipPlaneSets`\r\n * * One of the `ClipBoolean` derived classes\r\n * * `ClipBooleanXOR`\r\n * * `ClipBooleanOR`\r\n * * `ClipBooleanAND`\r\n * @param source json object\r\n * @public\r\n */\r\n public static parseToClipper(source?: object): Clipper | undefined {\r\n if (!source)\r\n return undefined;\r\n\r\n if (source.hasOwnProperty(\"normal\") && source.hasOwnProperty(\"dist\")) {\r\n return ClipPlane.fromJSON(source);\r\n } else if (Array.isArray(source)) {\r\n const clippers: Clipper[] = [];\r\n let numPlanes = 0;\r\n let numConvexSets = 0;\r\n for (const c of source) {\r\n const c1 = this.parseToClipper(c);\r\n if (!c1)\r\n return undefined;\r\n clippers.push(c1);\r\n if (c1 instanceof ClipPlane)\r\n numPlanes++;\r\n else if (c1 instanceof ConvexClipPlaneSet)\r\n numConvexSets++;\r\n else\r\n return undefined;\r\n }\r\n if (clippers.length === 0)\r\n return undefined;\r\n if (numPlanes === source.length) {\r\n // array of planes is a convex clip plane set.\r\n return ConvexClipPlaneSet.createPlanes(clippers as ClipPlane[]);\r\n } else if (numConvexSets === source.length) {\r\n return UnionOfConvexClipPlaneSets.createConvexSets(clippers as ConvexClipPlaneSet[]);\r\n }\r\n // array of mixed types should not occur. fall out to undefined.\r\n } else if (source.hasOwnProperty(\"OR\")) {\r\n const clippers = this.parseToClipperArray((source as any).OR);\r\n if (clippers)\r\n return this.createCaptureUnion(clippers, true);\r\n } else if (source.hasOwnProperty(\"NOR\")) {\r\n const clippers = this.parseToClipperArray((source as any).NOR);\r\n if (clippers)\r\n return this.createCaptureUnion(clippers, false);\r\n } else if (source.hasOwnProperty(\"AND\")) {\r\n const clippers = this.parseToClipperArray((source as any).AND);\r\n if (clippers)\r\n return this.createCaptureIntersection(clippers, true);\r\n } else if (source.hasOwnProperty(\"NAND\")) {\r\n const clippers = this.parseToClipperArray((source as any).NAND);\r\n if (clippers)\r\n return this.createCaptureIntersection(clippers, true);\r\n } else if (source.hasOwnProperty(\"XOR\")) {\r\n const clippers = this.parseToClipperArray((source as any).XOR);\r\n if (clippers)\r\n return this.createCaptureParity(clippers, true);\r\n } else if (source.hasOwnProperty(\"NXOR\")) {\r\n const clippers = this.parseToClipperArray((source as any).NXOR);\r\n if (clippers)\r\n return this.createCaptureParity(clippers, true);\r\n }\r\n return undefined;\r\n }\r\n /** Choose a `toJSON` method appropriate to the clipper */\r\n public static anyClipperToJSON(clipper: any): any | undefined {\r\n if (ClipUtilities.isClipper(clipper)) {\r\n if (clipper.toJSON)\r\n return clipper.toJSON();\r\n }\r\n return undefined;\r\n\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BooleanClipNode.d.ts","sourceRoot":"","sources":["../../src/clipping/BooleanClipNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BooleanClipNode.js","sourceRoot":"","sources":["../../src/clipping/BooleanClipNode.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumber, AnnounceNumberNumberCurvePrimitive, CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range1d } from \"../geometry3d/Range\";\r\nimport { Range1dArray } from \"../numerics/Range1dArray\";\r\nimport { Clipper } from \"./ClipUtils\";\r\n\r\n/** BooleanClipNode is an abstract base class for boolean actions by an array of clippers.\r\n * * Derived class must implement\r\n * * The single point test `isPointOnOrInsideChildren`\r\n * * Boolean operation on 1d intervals `combineIntervals`\r\n * * The `keepInside` flag controls an additional optional flip of the boolean result.\r\n * * if `keepInside === true`, accept the \"inside\" of the clip clippers\r\n * * if `keepInside === false`, accept the \"outside\" of the child clippers.\r\n * * Hence the combinations of derived classes for (OR, AND, XOR) and keepInside are\r\n * * (OR, true) = simple union (OR), i.e. \"in\" one or more clips\r\n * * (OR, false) = complement of union (NOR), i.e. \"outside\" all clips\r\n * * (AND, true) = simple intersection (AND), i.e. \"in\" all clips\r\n * * (AND, false) = complement of intersection (NAND), i.e. \"outside\" one or more clips\r\n * * (XOR,true) = simple parity, i.e. \"in\" an odd number of clips\r\n * * (XOR,false) = complement of parity ), i.e. \"in\" an even number of clips\r\n * @internal\r\n */\r\nexport abstract class BooleanClipNode implements Clipper {\r\n protected _clippers: Clipper[];\r\n protected _intervalsA: Range1d[];\r\n protected _intervalsB: Range1d[];\r\n protected _keepInside: boolean;\r\n\r\n public constructor(keepInside: boolean) {\r\n this._keepInside = keepInside;\r\n this._clippers = [];\r\n this._intervalsA = [];\r\n this._intervalsB = [];\r\n }\r\n protected abstract isPointOnOrInsideChildren(point: Point3d): boolean;\r\n protected abstract combineIntervals(operandA: Range1d[], operandB: Range1d[]): Range1d[];\r\n public abstract get operationName(): string;\r\n public toJSON(): any {\r\n const data = [];\r\n for (const c of this._clippers) {\r\n const c1 = c as any;\r\n if (c1.toJSON)\r\n data.push(c1.toJSON());\r\n }\r\n // return this.formatJSON(data);\r\n const s = this.operationName;\r\n const json: { [opType: string]: any[] } = {};\r\n json[s] = data;\r\n return json;\r\n\r\n }\r\n /** Capture a (reference to a) child node or nodes */\r\n public captureChild(child: Clipper | Clipper[]) {\r\n if (Array.isArray(child)) {\r\n for (const c of child) this.captureChild(c);\r\n } else {\r\n this._clippers.push(child);\r\n }\r\n }\r\n /** toggle the \"keepInside\" behavior. Return the prior value. */\r\n public toggleResult(): boolean {\r\n return this.selectResult(!this._keepInside);\r\n }\r\n /** Set the \"keepInside\" behavior */\r\n public selectResult(keepInside: boolean): boolean {\r\n const s = this._keepInside;\r\n this._keepInside = keepInside;\r\n return s;\r\n }\r\n\r\n /**\r\n * * Conditionally (if a1 > a0 strictly) call announce (a0, a1).\r\n * * Return 0 if not called, 1 if called.\r\n */\r\n protected testedAnnounceNN(a0: number, a1: number, announce?: AnnounceNumberNumber): number {\r\n if (a0 < a1) {\r\n if (announce)\r\n announce(a0, a1);\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n /**\r\n * * Conditionally (if a1 > a0 strictly) call announce (a0, a1, cp).\r\n * * Return 0 if not called, 1 if called.\r\n */\r\n protected testedAnnounceNNC(a0: number, a1: number, cp: CurvePrimitive, announce?: AnnounceNumberNumberCurvePrimitive): number {\r\n if (a0 < a1) {\r\n if (announce)\r\n announce(a0, a1, cp);\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n /** Swap the _intervalsA and _intervalsB */\r\n protected swapAB(): void {\r\n const q = this._intervalsA;\r\n this._intervalsA = this._intervalsB;\r\n this._intervalsB = q;\r\n }\r\n /**\r\n * * announce all \"outside intervals\" --not masked by intervals\r\n * * return true if any intervals announced.\r\n */\r\n protected announcePartsNN(keepInside: boolean, intervals: Range1d[], f0: number, f1: number, announce?: AnnounceNumberNumber): boolean {\r\n let numAnnounce = 0;\r\n if (!keepInside) {\r\n let lowFraction = f0;\r\n for (const interval of intervals) {\r\n numAnnounce += this.testedAnnounceNN(lowFraction, interval.low, announce);\r\n lowFraction = interval.high;\r\n }\r\n numAnnounce += this.testedAnnounceNN(lowFraction, f1, announce);\r\n } else {\r\n for (const interval of intervals) {\r\n // use f0..f1 ?\r\n numAnnounce += this.testedAnnounceNN(interval.low, interval.high, announce);\r\n }\r\n }\r\n return numAnnounce > 0;\r\n }\r\n /**\r\n * * announce all \"outside intervals\" --not masked by intervals\r\n * * return true if any intervals announced.\r\n */\r\n protected announcePartsNNC(keepInside: boolean, intervals: Range1d[], f0: number, f1: number, cp: CurvePrimitive, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n let numAnnounce = 0;\r\n if (!keepInside) {\r\n let lowFraction = f0;\r\n for (const interval of intervals) {\r\n numAnnounce += this.testedAnnounceNNC(lowFraction, interval.low, cp, announce);\r\n lowFraction = interval.high;\r\n }\r\n numAnnounce += this.testedAnnounceNNC(lowFraction, f1, cp, announce);\r\n } else {\r\n for (const interval of intervals) {\r\n // use f0..f1 ?\r\n numAnnounce += this.testedAnnounceNNC(interval.low, interval.high, cp, announce);\r\n }\r\n }\r\n return numAnnounce > 0;\r\n\r\n }\r\n /** Invoke callback to test if a point is \"in\" this clipper */\r\n public isPointOnOrInside(point: Point3d): boolean {\r\n const q = this.isPointOnOrInsideChildren(point);\r\n return this._keepInside ? q : !q;\r\n\r\n }\r\n\r\n /** Announce \"in\" portions of a line segment. See `Clipper.announceClippedSegmentIntervals` */\r\n public announceClippedSegmentIntervals(f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: AnnounceNumberNumber): boolean {\r\n this._intervalsA.length = 0;\r\n const announceIntervalB = (a0: number, a1: number) => {\r\n this._intervalsB.push(Range1d.createXX(a0, a1));\r\n };\r\n // Strategy:\r\n // _intervalsA is the accumulated UNION of from clippers\r\n // _intervalsB is the current clipper.\r\n // announceIntervalB appends single new interval to _intervalB\r\n // at end, output gaps in _intervalsA\r\n //\r\n let i = 0;\r\n for (const c of this._clippers) {\r\n this._intervalsB.length = 0;\r\n c.announceClippedSegmentIntervals(f0, f1, pointA, pointB, announceIntervalB);\r\n Range1dArray.simplifySortUnion(this._intervalsB);\r\n if (i === 0) {\r\n this.swapAB();\r\n } else {\r\n this._intervalsA = this.combineIntervals(this._intervalsA, this._intervalsB);\r\n }\r\n i++;\r\n }\r\n return this.announcePartsNN(this._keepInside, this._intervalsA, f0, f1, announce);\r\n }\r\n /** Announce \"in\" portions of a line segment. See `Clipper.announceClippedSegmentIntervals` */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n this._intervalsA.length = 0;\r\n const announceIntervalB = (a0: number, a1: number) => {\r\n this._intervalsB.push(Range1d.createXX(a0, a1));\r\n };\r\n let i = 0;\r\n for (const c of this._clippers) {\r\n this._intervalsB.length = 0;\r\n c.announceClippedArcIntervals(arc, announceIntervalB);\r\n Range1dArray.simplifySortUnion(this._intervalsB);\r\n if (i === 0) {\r\n this.swapAB();\r\n } else {\r\n this._intervalsA = this.combineIntervals(this._intervalsA, this._intervalsB);\r\n }\r\n i++;\r\n }\r\n return this.announcePartsNNC(this._keepInside, this._intervalsA, 0, 1, arc, announce);\r\n }\r\n\r\n}\r\n/**\r\n * Implement BooleanClipNode virtual methods for intersection (boolean OR) among children\r\n * @internal\r\n */\r\nexport class BooleanClipNodeUnion extends BooleanClipNode {\r\n public get operationName(): string { return this._keepInside ? \"OR\" : \"NOR\"; }\r\n public constructor(keepInside: boolean) {\r\n super(keepInside);\r\n }\r\n /** return true if inside any child clipper */\r\n public isPointOnOrInsideChildren(point: Point3d): boolean {\r\n for (const clipper of this._clippers) {\r\n if (clipper.isPointOnOrInside(point))\r\n return true;\r\n }\r\n return false;\r\n }\r\n public combineIntervals(operandA: Range1d[], operandB: Range1d[]): Range1d[] {\r\n return Range1dArray.unionSorted(operandA, operandB);\r\n }\r\n}\r\n\r\n/**\r\n * Implement BooleanClipNode virtual methods for intersection (boolean OR) among children\r\n * @internal\r\n */\r\nexport class BooleanClipNodeParity extends BooleanClipNode {\r\n public get operationName(): string { return this._keepInside ? \"XOR\" : \"NXOR\"; }\r\n public constructor(keepInside: boolean) {\r\n super(keepInside);\r\n }\r\n /** return true if inside an odd number of clippers child clipper */\r\n public isPointOnOrInsideChildren(point: Point3d): boolean {\r\n let q = false;\r\n for (const clipper of this._clippers) {\r\n if (clipper.isPointOnOrInside(point))\r\n q = !q;\r\n }\r\n return q;\r\n }\r\n public combineIntervals(operandA: Range1d[], operandB: Range1d[]): Range1d[] {\r\n return Range1dArray.paritySorted(operandA, operandB);\r\n }\r\n}\r\n/**\r\n * Implement BooleanClipNode virtual methods for intersection (boolean OR) among children\r\n * @internal\r\n */\r\nexport class BooleanClipNodeIntersection extends BooleanClipNode {\r\n public get operationName(): string { return this._keepInside ? \"AND\" : \"NAND\"; }\r\n public constructor(keepInside: boolean) {\r\n super(keepInside);\r\n }\r\n /** return false if outside of any child clipper */\r\n public isPointOnOrInsideChildren(point: Point3d): boolean {\r\n for (const clipper of this._clippers) {\r\n if (!clipper.isPointOnOrInside(point))\r\n return false;\r\n }\r\n return true;\r\n }\r\n public combineIntervals(operandA: Range1d[], operandB: Range1d[]): Range1d[] {\r\n return Range1dArray.intersectSorted(operandA, operandB);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPlane.d.ts","sourceRoot":"","sources":["../../src/clipping/ClipPlane.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPlane.js","sourceRoot":"","sources":["../../src/clipping/ClipPlane.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumberCurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { AxisOrder, Geometry, PlaneAltitudeEvaluator } from \"../Geometry\";\r\nimport { Angle } from \"../geometry3d/Angle\";\r\nimport { XYZProps } from \"../geometry3d/XYZProps\";\r\nimport { GrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { Matrix3d } from \"../geometry3d/Matrix3d\";\r\nimport { Plane3dByOriginAndUnitNormal } from \"../geometry3d/Plane3dByOriginAndUnitNormal\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { IndexedXYZCollectionPolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { Point4d } from \"../geometry4d/Point4d\";\r\nimport { AnalyticRoots } from \"../numerics/Polynomials\";\r\nimport { Clipper, ClipUtilities, PolygonClipper } from \"./ClipUtils\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\n\r\n/** Wire format describing a [[ClipPlane]].\r\n * If either [[normal]] or [[dist]] are omitted, defaults to a normal of [[Vector3d.unitZ]] and a distance of zero.\r\n * @public\r\n */\r\nexport interface ClipPlaneProps {\r\n /** The plane's inward normal. */\r\n normal?: XYZProps;\r\n /** The plane's distance from the origin. */\r\n dist?: number;\r\n /** Defaults to `false`. */\r\n invisible?: boolean;\r\n /** Defaults to `false`. */\r\n interior?: boolean;\r\n}\r\n\r\n/** A ClipPlane is a single plane represented as\r\n * * An inward unit normal (u,v,w)\r\n * * A signedDistance\r\n *\r\n * Hence\r\n * * The halfspace function evaluation for \"point\" [x,y,z,] is: ([x,y,z] DOT (u,v,w)l - signedDistance)\r\n * * POSITIVE values of the halfspace function are \"inside\"\r\n * * ZERO value of the halfspace function is \"on\"\r\n * * NEGATIVE value of the halfspace function is \"outside\"\r\n * * A representative point on the plane is (signedDistance*u, signedDistance * v, signedDistance *w)\r\n * * Given a point and inward normal, the signedDistance is (point DOT normal)\r\n * @public\r\n */\r\nexport class ClipPlane implements Clipper, PlaneAltitudeEvaluator, PolygonClipper {\r\n private _inwardNormal: Vector3d;\r\n /** Construct a parallel plane through the origin.\r\n * * Move it to the actual position.\r\n * * _distanceFromOrigin is the distance it moved, with the (inward) normal direction as positive\r\n */\r\n private _distanceFromOrigin: number;\r\n private _invisible: boolean;\r\n private _interior: boolean;\r\n\r\n private constructor(normal: Vector3d, distance: number, invisible: boolean, interior: boolean) {\r\n this._invisible = invisible;\r\n this._interior = interior;\r\n this._inwardNormal = normal;\r\n this._distanceFromOrigin = distance;\r\n }\r\n /*\r\n private safeSetXYZDistance(nx: number, ny: number, nz: number, d: number) {\r\n this._inwardNormal.set(nx, ny, nz);\r\n this._distanceFromOrigin = d;\r\n }\r\n */\r\n /**\r\n * Return true if all members are almostEqual to corresponding members of other.\r\n * @param other clip plane to compare\r\n */\r\n public isAlmostEqual(other: ClipPlane): boolean {\r\n return Geometry.isSameCoordinate(this._distanceFromOrigin, other._distanceFromOrigin)\r\n && this._inwardNormal.isAlmostEqual(other._inwardNormal)\r\n && this._interior === other._interior\r\n && this._invisible === other._invisible;\r\n }\r\n /** return a cloned plane */\r\n public clone(): ClipPlane {\r\n const result = new ClipPlane(this._inwardNormal.clone(), this._distanceFromOrigin, this._invisible, this._interior);\r\n return result;\r\n }\r\n /** return Return a cloned plane with coordinate data negated. */\r\n public cloneNegated(): ClipPlane {\r\n const plane = new ClipPlane(this._inwardNormal.clone(), this._distanceFromOrigin, this._invisible, this._interior);\r\n plane.negateInPlace();\r\n return plane;\r\n }\r\n /** Create a ClipPlane from Plane3dByOriginAndUnitNormal. */\r\n public static createPlane(plane: Plane3dByOriginAndUnitNormal, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): ClipPlane {\r\n const distance = plane.getNormalRef().dotProduct(plane.getOriginRef());\r\n if (result) {\r\n result._invisible = invisible;\r\n result._interior = interior;\r\n result._inwardNormal = plane.getNormalRef().clone();\r\n result._distanceFromOrigin = distance;\r\n return result;\r\n }\r\n return new ClipPlane(plane.getNormalRef().clone(), distance, invisible, interior);\r\n }\r\n /**\r\n * * Create a ClipPlane with direct normal and signedDistance.\r\n * * The vector is normalized for storage.\r\n */\r\n public static createNormalAndDistance(normal: Vector3d, distance: number, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): ClipPlane | undefined {\r\n const normalized = normal.normalize();\r\n if (normalized) {\r\n if (result) {\r\n result._invisible = invisible;\r\n result._interior = interior;\r\n result._inwardNormal = normalized;\r\n result._distanceFromOrigin = distance;\r\n }\r\n return new ClipPlane(normalized, distance, invisible, interior);\r\n }\r\n return undefined;\r\n }\r\n /** Create a ClipPlane\r\n * * \"normal\" is the inward normal of the plane. (It is internally normalized)\r\n * * \"point\" is any point of the plane.\r\n * * The stored distance for the plane is the dot product of the point with the normal (i.e. treat the point's xyz as a vector from the origin.)\r\n */\r\n public static createNormalAndPoint(normal: Vector3d, point: Point3d, invisible: boolean = false, interior: boolean = false, result?: ClipPlane): ClipPlane | undefined {\r\n const normalized = normal.normalize();\r\n if (normalized) {\r\n const distance = normalized.dotProduct(point);\r\n if (result) {\r\n result._invisible = invisible;\r\n result._interior = interior;\r\n result._inwardNormal = normalized;\r\n result._distanceFromOrigin = distance;\r\n }\r\n return new ClipPlane(normalized, distance, invisible, interior);\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Create a ClipPlane\r\n * * \"normal\" (normalX, normalY, nz) is the inward normal of the plane.\r\n * * The given (normalX,normalY,normalZ)\r\n * * \"point\" is any point of the plane.\r\n * * The stored distance for the plane is the dot product of the point with the normal (i.e. treat the point's xyz as a vector from the origin.)\r\n */\r\n public static createNormalAndPointXYZXYZ(normalX: number, normalY: number, normalZ: number,\r\n originX: number, originY: number, originZ: number,\r\n invisible: boolean = false, interior: boolean = false, result?: ClipPlane): ClipPlane | undefined {\r\n const q = Geometry.hypotenuseXYZ(normalX, normalY, normalZ);\r\n const r = Geometry.conditionalDivideFraction(1, q);\r\n if (r !== undefined) {\r\n if (result) {\r\n result._inwardNormal.set(normalX * r, normalY * r, normalZ * r);\r\n result._distanceFromOrigin = result._inwardNormal.dotProductXYZ(originX, originY, originZ);\r\n result._invisible = invisible;\r\n result._interior = interior;\r\n return result;\r\n }\r\n const normal = Vector3d.create(normalX * r, normalY * r, normalZ * r);\r\n return new ClipPlane(normal, normal.dotProductXYZ(originX, originY, originZ), invisible, interior);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * return a json object of the form\r\n * `{\"normal\":[u,v,w],\"dist\":signedDistanceValue,\"interior\":true,\"invisible\":true}`\r\n */\r\n public toJSON(): ClipPlaneProps {\r\n const props: ClipPlaneProps = {\r\n normal: this.inwardNormalRef.toJSON(),\r\n dist: this.distance,\r\n };\r\n\r\n if (this.interior)\r\n props.interior = true;\r\n\r\n if (this.invisible)\r\n props.invisible = true;\r\n\r\n return props;\r\n }\r\n\r\n /** parse json object to ClipPlane instance */\r\n public static fromJSON(json: ClipPlaneProps, result?: ClipPlane): ClipPlane | undefined {\r\n if (json && json.normal && undefined !== json.dist && Number.isFinite(json.dist))\r\n return ClipPlane.createNormalAndDistance(Vector3d.fromJSON(json.normal), json.dist, !!json.invisible, !!json.interior);\r\n\r\n return ClipPlane.createNormalAndDistance(Vector3d.unitZ(), 0, false, false, result);\r\n }\r\n\r\n /** Set both the invisible and interior flags. */\r\n public setFlags(invisible: boolean, interior: boolean) {\r\n this._invisible = invisible;\r\n this._interior = interior;\r\n }\r\n\r\n /**\r\n * Return the stored distanceFromOrigin property.\r\n */\r\n public get distance() { return this._distanceFromOrigin; }\r\n /**\r\n * Return the stored inward normal property.\r\n */\r\n public get inwardNormalRef(): Vector3d { return this._inwardNormal; }\r\n /**\r\n * Return the \"interior\" property bit\r\n */\r\n public get interior() { return this._interior; }\r\n /**\r\n * Return the \"invisible\" property bit.\r\n */\r\n public get invisible() { return this._invisible; }\r\n\r\n /**\r\n * Create a plane defined by two points, an up vector, and a tilt angle relative to the up vector.\r\n * @param point0 start point of the edge\r\n * @param point1 end point of the edge\r\n * @param upVector vector perpendicular to the plane\r\n * @param tiltAngle angle to tilt the plane around the edge in the direction of the up vector.\r\n * @param result optional preallocated plane\r\n */\r\n public static createEdgeAndUpVector(point0: Point3d, point1: Point3d, upVector: Vector3d, tiltAngle?: Angle, result?: ClipPlane): ClipPlane | undefined {\r\n const edgeVector = Vector3d.createFrom(point1.minus(point0));\r\n let normal = (upVector.crossProduct(edgeVector)).normalize();\r\n\r\n if (normal) {\r\n if (tiltAngle !== undefined && !tiltAngle.isAlmostZero) {\r\n const tiltNormal = Vector3d.createRotateVectorAroundVector(normal, edgeVector, tiltAngle);\r\n if (tiltNormal) {\r\n normal = tiltNormal.clone();\r\n }\r\n }\r\n normal.negate(normal);\r\n return ClipPlane.createNormalAndPoint(normal, point0, false, false, result);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Create a plane perpendicular to the edge between the xy parts of point0 and point1\r\n */\r\n public static createEdgeXY(point0: Point3d, point1: Point3d, result?: ClipPlane): ClipPlane | undefined {\r\n const normal = Vector3d.create(point0.y - point1.y, point1.x - point0.x);\r\n if (normal.normalizeInPlace())\r\n return ClipPlane.createNormalAndPoint(normal, point0, false, false, result);\r\n return undefined;\r\n }\r\n /**\r\n * Return the Plane3d form of the plane.\r\n * * The plane origin is the point `distance * inwardNormal`\r\n * * The plane normal is the inward normal of the ClipPlane.\r\n */\r\n public getPlane3d(): Plane3dByOriginAndUnitNormal {\r\n const d = this._distanceFromOrigin;\r\n // Normal should be normalized, will not return undefined\r\n return Plane3dByOriginAndUnitNormal.create(Point3d.create(this._inwardNormal.x * d, this._inwardNormal.y * d, this._inwardNormal.z * d), this._inwardNormal)!;\r\n }\r\n\r\n /**\r\n * Return the Point4d d form of the plane.\r\n * * The homogeneous xyz are the inward normal xyz.\r\n * * The homogeneous weight is the negated ClipPlane distance.\r\n */\r\n public getPlane4d(): Point4d {\r\n return Point4d.create(this._inwardNormal.x, this._inwardNormal.y, this._inwardNormal.z, - this._distanceFromOrigin);\r\n }\r\n /**\r\n * Set the plane from DPoint4d style plane.\r\n * * The saved plane has its direction normalized.\r\n * * This preserves the plane itself as a zero set but make plane evaluations act as true distances (even if the plane coefficients are scaled otherwise)\r\n * @param plane\r\n */\r\n public setPlane4d(plane: Point4d) {\r\n const a = Math.sqrt(plane.x * plane.x + plane.y * plane.y + plane.z * plane.z);\r\n const r = a === 0.0 ? 1.0 : 1.0 / a;\r\n this._inwardNormal.x = r * plane.x;\r\n this._inwardNormal.y = r * plane.y;\r\n this._inwardNormal.z = r * plane.z;\r\n this._distanceFromOrigin = -r * plane.w;\r\n }\r\n\r\n /**\r\n * Evaluate the altitude in weighted space, i.e. (dot product with inward normal) minus distance, with point.w scale applied to distance)\r\n * @param point space point to test\r\n */\r\n public weightedAltitude(point: Point4d): number {\r\n return point.x * this._inwardNormal.x + point.y * this._inwardNormal.y + point.z * this._inwardNormal.z - point.w * this._distanceFromOrigin;\r\n }\r\n\r\n /**\r\n * Evaluate the distance from the plane to a point in space, i.e. (dot product with inward normal) minus distance\r\n * @param point space point to test\r\n */\r\n public altitude(point: Point3d): number {\r\n return point.x * this._inwardNormal.x + point.y * this._inwardNormal.y + point.z * this._inwardNormal.z - this._distanceFromOrigin;\r\n }\r\n\r\n /**\r\n * Evaluate the distance from the plane to a point in space with point given as x,y,z, i.e. (dot product with inward normal) minus distance\r\n * @param point space point to test\r\n */\r\n public altitudeXYZ(x: number, y: number, z: number): number {\r\n return x * this._inwardNormal.x + y * this._inwardNormal.y + z * this._inwardNormal.z - this._distanceFromOrigin;\r\n }\r\n\r\n /** Return the dot product of the plane normal with the vector (NOT using the plane's distanceFromOrigin).\r\n */\r\n public velocity(vector: Vector3d): number {\r\n return vector.x * this._inwardNormal.x + vector.y * this._inwardNormal.y + vector.z * this._inwardNormal.z;\r\n }\r\n\r\n /** Return the dot product of the plane normal with the x,yz, vector components (NOT using the plane's distanceFromOrigin).\r\n */\r\n public velocityXYZ(x: number, y: number, z: number): number {\r\n return x * this._inwardNormal.x + y * this._inwardNormal.y + z * this._inwardNormal.z;\r\n }\r\n\r\n /** Return the dot product of the plane normal with the point (treating the point xyz as a vector, and NOT using the plane's distanceFromOrigin).\r\n */\r\n public dotProductPlaneNormalPoint(point: Point3d): number {\r\n return point.x * this._inwardNormal.x + point.y * this._inwardNormal.y + point.z * this._inwardNormal.z;\r\n }\r\n /**\r\n * Return true if spacePoint is inside or on the plane, with tolerance applied to \"on\".\r\n * @param spacePoint point to test.\r\n * @param tolerance tolerance for considering \"near plane\" to be \"on plane\"\r\n */\r\n public isPointOnOrInside(spacePoint: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n let value = this.altitude(spacePoint);\r\n if (tolerance) { value += tolerance; }\r\n return value >= 0.0;\r\n }\r\n\r\n /**\r\n * Return true if spacePoint is strictly inside the halfspace, with tolerance applied to \"on\".\r\n * @param spacePoint point to test.\r\n * @param tolerance tolerance for considering \"near plane\" to be \"on plane\"\r\n */\r\n public isPointInside(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n let value = this.altitude(point);\r\n if (tolerance) { value -= tolerance; }\r\n return value > 0.0;\r\n }\r\n\r\n /**\r\n * Return true if spacePoint is strictly on the plane, within tolerance\r\n * @param spacePoint point to test.\r\n * @param tolerance tolerance for considering \"near plane\" to be \"on plane\"\r\n */\r\n public isPointOn(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n return Math.abs(this.altitude(point)) <= tolerance;\r\n }\r\n /**\r\n * Compute intersections of an (UNBOUNDED) arc with the plane. Append them (as radians) to a growing array.\r\n * @param arc arc to test. The angle limits of the arc are NOT considered.\r\n * @param intersectionRadians array to receive results\r\n */\r\n public appendIntersectionRadians(arc: Arc3d, intersectionRadians: GrowableFloat64Array) {\r\n const arcVectors = arc.toVectors();\r\n const alpha = this.altitude(arc.center);\r\n const beta = this.velocity(arcVectors.vector0);\r\n const gamma = this.velocity(arcVectors.vector90);\r\n AnalyticRoots.appendImplicitLineUnitCircleIntersections(alpha, beta, gamma, undefined, undefined, intersectionRadians);\r\n }\r\n\r\n private static _clipArcFractionArray = new GrowableFloat64Array();\r\n /** Announce fractional intervals of arc clip.\r\n * * Each call to `announce(fraction0, fraction1, arc)` announces one interval that is inside the clip plane.\r\n */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n const breaks = ClipPlane._clipArcFractionArray;\r\n breaks.clear();\r\n this.appendIntersectionRadians(arc, breaks);\r\n arc.sweep.radiansArrayToPositivePeriodicFractions(breaks);\r\n return ClipUtilities.selectIntervals01(arc, breaks, this, announce);\r\n }\r\n /**\r\n * * Compute intersection of (unbounded) segment with the plane.\r\n * * If the ends are on the same side of the plane, return undefined.\r\n * * If the intersection is an endpoint or interior to the segment return the fraction.\r\n * * If both ends are on, return undefined.\r\n */\r\n public getBoundedSegmentSimpleIntersection(pointA: Point3d, pointB: Point3d): number | undefined {\r\n const h0 = this.altitude(pointA);\r\n const h1 = this.altitude(pointB);\r\n if (h0 * h1 > 0.0)\r\n return undefined;\r\n if (h0 === 0.0 && h1 === 0.0) {\r\n return undefined;\r\n }\r\n return - h0 / (h1 - h0);\r\n }\r\n\r\n /** Apply transform to the origin. Apply inverse transpose of the matrix part to th normal vector. */\r\n public transformInPlace(transform: Transform): boolean {\r\n const plane: Plane3dByOriginAndUnitNormal = this.getPlane3d();\r\n const matrix: Matrix3d = transform.matrix;\r\n const newPoint = transform.multiplyPoint3d(plane.getOriginRef());\r\n // Normal transforms as the inverse transpose of the matrix part\r\n // BTW: If the matrix is orthogonal, this is a long way to multiply by the matrix part (mumble grumble)\r\n const newNormal = matrix.multiplyInverseTranspose(plane.getNormalRef());\r\n if (!newNormal)\r\n return false;\r\n\r\n plane.set(newPoint, newNormal);\r\n const normalized = (plane.getNormalRef()).normalize();\r\n if (!normalized)\r\n return false;\r\n this._inwardNormal = normalized;\r\n this._distanceFromOrigin = this._inwardNormal.dotProduct(plane.getOriginRef());\r\n return true;\r\n }\r\n /** Set the invisible flag. Interpretation of this is up to the use code algorithms. */\r\n public setInvisible(invisible: boolean) {\r\n this._invisible = invisible;\r\n }\r\n\r\n /** reverse the sign of all coefficients, so outside and inside reverse */\r\n public negateInPlace() {\r\n this._inwardNormal = this._inwardNormal.negate();\r\n this._distanceFromOrigin = - this._distanceFromOrigin;\r\n }\r\n /**\r\n * Move the plane INWARD by given distance\r\n * @param offset distance of shift inwards\r\n */\r\n public offsetDistance(offset: number) {\r\n this._distanceFromOrigin += offset;\r\n }\r\n\r\n /**\r\n * Clip a polygon to the inside or outside of the plane.\r\n * * Results with 2 or fewer points are ignored.\r\n * * Other than ensuring capacity in the arrays, there are no object allocations during execution of this function.\r\n * @param xyz input points.\r\n * @param work work buffer\r\n * @param tolerance tolerance for \"on plane\" decision.\r\n */\r\n public clipConvexPolygonInPlace(xyz: GrowableXYZArray, work: GrowableXYZArray, inside: boolean = true, tolerance: number = Geometry.smallMetricDistance) {\r\n return IndexedXYZCollectionPolygonOps.clipConvexPolygonInPlace(this, xyz, work, inside, tolerance);\r\n }\r\n\r\n /**\r\n * Multiply the ClipPlane's DPoint4d by matrix.\r\n * @param matrix matrix to apply.\r\n * @param invert if true, use in verse of the matrix.\r\n * @param transpose if true, use the transpose of the matrix (or inverse, per invert parameter)\r\n * * Note that if matrixA is applied to all of space, the matrix to send to this method to get a corresponding effect on the plane is the inverse transpose of matrixA\r\n * * Callers that will apply the same matrix to many planes should pre-invert the matrix for efficiency.\r\n * * Both params default to true to get the full effect of transforming space.\r\n * @param matrix matrix to apply\r\n * @return false if unable to invert\r\n */\r\n public multiplyPlaneByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean {\r\n const plane: Point4d = this.getPlane4d();\r\n if (invert) {\r\n const inverse = matrix.createInverse();\r\n if (inverse)\r\n return this.multiplyPlaneByMatrix4d(inverse, false, transpose);\r\n return false;\r\n }\r\n if (transpose)\r\n matrix.multiplyTransposePoint4d(plane, plane);\r\n else\r\n matrix.multiplyPoint4d(plane, plane);\r\n this.setPlane4d(plane);\r\n return true;\r\n }\r\n\r\n /** announce the interval (if any) where a line is within the clip plane half space. */\r\n public announceClippedSegmentIntervals(f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: (fraction0: number, fraction1: number) => void): boolean {\r\n if (f1 < f0)\r\n return false;\r\n const h0 = - this.altitude(pointA);\r\n const h1 = - this.altitude(pointB);\r\n const delta = h1 - h0;\r\n const f = Geometry.conditionalDivideFraction(-h0, delta);\r\n if (f === undefined) { // The segment is parallel to the plane.\r\n if (h0 <= 0.0) { if (announce) announce(f0, f1); return true; }\r\n return false;\r\n }\r\n if (delta > 0) { // segment aims OUT\r\n if (f < f1) f1 = f;\r\n } else {\r\n // segment aims IN\r\n if (f > f0)\r\n f0 = f;\r\n }\r\n if (f1 < f0)\r\n return false;\r\n if (announce) announce(f0, f1);\r\n return true;\r\n }\r\n /**\r\n * Return a coordinate frame with\r\n * * origin at closest point to global origin\r\n * * z axis points in\r\n * x and y are \"in plane\"\r\n */\r\n public getFrame(): Transform {\r\n const d = this._distanceFromOrigin;\r\n const origin = Point3d.create(this._inwardNormal.x * d, this._inwardNormal.y * d, this._inwardNormal.z * d);\r\n const matrix = Matrix3d.createRigidHeadsUp(this._inwardNormal, AxisOrder.ZXY);\r\n return Transform.createOriginAndMatrix(origin, matrix);\r\n }\r\n /**\r\n * Return the intersection of the plane with a range cube.\r\n * @param range\r\n * @param xyzOut intersection polygon. This is convex.\r\n */\r\n public intersectRange(range: Range3d, addClosurePoint: boolean = false): GrowableXYZArray | undefined {\r\n if (range.isNull)\r\n return undefined;\r\n const corners = range.corners();\r\n const frameOnPlane = this.getFrame();\r\n frameOnPlane.multiplyInversePoint3dArrayInPlace(corners);\r\n const localRange = Range3d.createArray(corners);\r\n if (localRange.low.z * localRange.high.z > 0.0)\r\n return undefined;\r\n // oversized polygon on local z= 0\r\n const xyzOut = new GrowableXYZArray();\r\n xyzOut.pushXYZ(localRange.low.x, localRange.low.y, 0);\r\n xyzOut.pushXYZ(localRange.high.x, localRange.low.y, 0);\r\n xyzOut.pushXYZ(localRange.high.x, localRange.high.y, 0);\r\n xyzOut.pushXYZ(localRange.low.x, localRange.high.y, 0);\r\n xyzOut.multiplyTransformInPlace(frameOnPlane);\r\n IndexedXYZCollectionPolygonOps.intersectRangeConvexPolygonInPlace(range, xyzOut);\r\n if (xyzOut.length === 0)\r\n return undefined;\r\n if (addClosurePoint)\r\n xyzOut.pushWrap(1);\r\n return xyzOut;\r\n }\r\n /** Implement appendPolygonClip, as defined in interface PolygonClipper. /**\r\n *\r\n * @param xyz input polygon. This is not changed.\r\n * @param insideFragments Array to receive \"inside\" fragments. Each fragment is a GrowableXYZArray grabbed from the cache. This is NOT cleared.\r\n * @param outsideFragments Array to receive \"outside\" fragments. Each fragment is a GrowableXYZArray grabbed from the cache. This is NOT cleared.\r\n * @param arrayCache cache for reusable GrowableXYZArray.\r\n */\r\n public appendPolygonClip(\r\n xyz: GrowableXYZArray,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache): void {\r\n const perpendicularRange = Range1d.createNull();\r\n const newInside = arrayCache.grabFromCache();\r\n const newOutside = arrayCache.grabFromCache();\r\n IndexedXYZCollectionPolygonOps.splitConvexPolygonInsideOutsidePlane(this, xyz, newInside, newOutside, perpendicularRange);\r\n ClipUtilities.captureOrDrop(newInside, 3, insideFragments, arrayCache);\r\n ClipUtilities.captureOrDrop(newOutside, 3, outsideFragments, arrayCache);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPrimitive.d.ts","sourceRoot":"","sources":["../../src/clipping/ClipPrimitive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPrimitive.js","sourceRoot":"","sources":["../../src/clipping/ClipPrimitive.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module CartesianGeometry\r\n */\r\n\r\nimport { Geometry } from \"../Geometry\";\r\nimport { Vector2d } from \"../geometry3d/Point2dVector2d\";\r\nimport { Point3d, Vector3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { PolygonOps } from \"../geometry3d/PolygonOps\";\r\nimport { TransformProps, XYZProps } from \"../geometry3d/XYZProps\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { HalfEdge, HalfEdgeGraph, HalfEdgeMask } from \"../topology/Graph\";\r\nimport { Triangulator } from \"../topology/Triangulation\";\r\nimport { ClipPlane } from \"./ClipPlane\";\r\nimport { ClipPlaneContainment } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet } from \"./ConvexClipPlaneSet\";\r\nimport { UnionOfConvexClipPlaneSets, UnionOfConvexClipPlaneSetsProps } from \"./UnionOfConvexClipPlaneSets\";\r\nimport { AlternatingCCTreeNode } from \"./AlternatingConvexClipTree\";\r\nimport { Point3dArray } from \"../geometry3d/PointHelpers\";\r\nimport { PolylineOps } from \"../geometry3d/PolylineOps\";\r\n\r\n/**\r\n * Bit mask type for referencing subsets of 6 planes of range box.\r\n * @public\r\n */\r\nexport enum ClipMaskXYZRangePlanes {\r\n /** no planes */\r\n None = 0x00,\r\n /** low x plane */\r\n XLow = 0x01,\r\n /** high x plane */\r\n XHigh = 0x02,\r\n /** low y plane */\r\n YLow = 0x04,\r\n /** high y plane */\r\n YHigh = 0x08,\r\n /** low z plane */\r\n ZLow = 0x10,\r\n /** high z plane */\r\n ZHigh = 0x20,\r\n /** all x and y planes, neither z plane */\r\n XAndY = 0x0f,\r\n /** all 6 planes */\r\n All = 0x3f,\r\n}\r\n\r\n/** Wire format describing a [[ClipPrimitive]] defined by a set of clip planes.\r\n * @public\r\n */\r\nexport interface ClipPrimitivePlanesProps {\r\n planes?: {\r\n /** The set of clip planes. */\r\n clips?: UnionOfConvexClipPlaneSetsProps;\r\n /** `true` if the primitive is a hole. */\r\n invisible?: boolean;\r\n };\r\n}\r\n\r\n/** Wire format describing a [[ClipShape]].\r\n * @public\r\n */\r\nexport interface ClipPrimitiveShapeProps {\r\n /** The clip polygon. */\r\n shape?: {\r\n /** The points describing the polygon. */\r\n points?: XYZProps[];\r\n /** Transform applied to the polygon. */\r\n trans?: TransformProps;\r\n /** Lower bound on Z. */\r\n zlow?: number;\r\n /** Upper bound on Z. */\r\n zhigh?: number;\r\n /** `true` if this shape is a mask. */\r\n mask?: boolean;\r\n /** `true` if this shape is invisible. */\r\n invisible?: boolean;\r\n };\r\n}\r\n\r\n/** Wire format describing a [[ClipPrimitive]].\r\n * @public\r\n */\r\nexport type ClipPrimitiveProps = ClipPrimitivePlanesProps | ClipPrimitiveShapeProps;\r\n\r\n/**\r\n * * ClipPrimitive is a base class for clipping implementations that use\r\n * * A UnionOfConvexClipPlaneSets designated \"clipPlanes\"\r\n * * an \"invisible\" flag\r\n * * When constructed directly, objects of type ClipPrimitive (directly, not through a derived class) will have just planes\r\n * * Derived classes (e.g. ClipShape) carry additional data such as a swept shape.\r\n * * ClipPrimitive can be constructed with no planes.\r\n * * Derived class is responsible for filling the plane sets.\r\n * * At discretion of derived classes, plane construction can be done at construction time or \"on demand when\" queries call `ensurePlaneSets ()`\r\n * * ClipPrimitive can be constructed directly with planes (and no derived class).\r\n * * That the prevailing use is via a ClipShape derived class.\r\n * * The ClipShape has an \"isMask\" property\r\n * * isMask === false means the plane sets should cover the inside of its polygon\r\n * * isMask === true means the plane sets should cover the outside of its polygon.\r\n * * Note that the ClipShape's `isMask` property and the ClipPrimitive's `isInvisible` property are distinct controls.\r\n * * In normal usage, callers get \"outside\" clip behavior using ONLY the ClipShape isMask property.\r\n * * The ClipShape happens to pass the _invisible bit down to ClipPlane's that it creates.\r\n * * At that level, it controls whether the cut edges are produce on the plane\r\n * * This seems like an confused overloading of the meaning.\r\n * @public\r\n */\r\nexport class ClipPrimitive {\r\n /** The (union of) convex regions. */\r\n protected _clipPlanes?: UnionOfConvexClipPlaneSets;\r\n /** If true, pointInside inverts the sense of the pointInside for the _clipPlanes */\r\n protected _invisible: boolean;\r\n /** Get a reference to the `UnionOfConvexClipPlaneSets`.\r\n * * It triggers construction of the sets by `this.ensurePlaneSets()`.\r\n * * Derived class typically caches the set on the first such call.\r\n */\r\n public fetchClipPlanesRef(): UnionOfConvexClipPlaneSets | undefined { this.ensurePlaneSets(); return this._clipPlanes; }\r\n /** Ask if this primitive is a hole. */\r\n public get invisible(): boolean { return this._invisible; }\r\n\r\n protected constructor(planeSet?: UnionOfConvexClipPlaneSets | undefined, isInvisible: boolean = false) {\r\n this._clipPlanes = planeSet;\r\n this._invisible = isInvisible;\r\n }\r\n /**\r\n * Create a ClipPrimitive, capturing the supplied plane set as the clip planes.\r\n * @param planes clipper\r\n * @param isInvisible true to invert sense of the test\r\n */\r\n public static createCapture(planes: UnionOfConvexClipPlaneSets | ConvexClipPlaneSet | undefined, isInvisible: boolean = false): ClipPrimitive {\r\n let planeData;\r\n if (planes instanceof UnionOfConvexClipPlaneSets)\r\n planeData = planes;\r\n if (planes instanceof ConvexClipPlaneSet)\r\n planeData = UnionOfConvexClipPlaneSets.createConvexSets([planes]);\r\n\r\n return new ClipPrimitive(planeData, isInvisible);\r\n }\r\n /** Emit json form of the clip planes */\r\n public toJSON(): ClipPrimitiveProps {\r\n const planes: ClipPrimitivePlanesProps[\"planes\"] = {};\r\n if (this._clipPlanes)\r\n planes.clips = this._clipPlanes.toJSON();\r\n\r\n if (this._invisible)\r\n planes.invisible = true;\r\n\r\n return { planes };\r\n }\r\n\r\n /**\r\n * Returns true if the planes are present.\r\n * * This can be false (for instance) if a ClipShape is holding a polygon but has not yet been asked to construct the planes.\r\n */\r\n public arePlanesDefined(): boolean {\r\n return this._clipPlanes !== undefined;\r\n }\r\n /** Return a deep clone */\r\n public clone(): ClipPrimitive {\r\n const newPlanes = this._clipPlanes ? this._clipPlanes.clone() : undefined;\r\n const result = new ClipPrimitive(newPlanes, this._invisible);\r\n return result;\r\n }\r\n\r\n /**\r\n * * trigger (if needed) computation of plane sets (if applicable) in the derived class.\r\n * * Base class is no op.\r\n * * In derived class, on first call create planes sets from defining data (e.g. swept shape).\r\n * * In derived class, if planes are present leave them alone.\r\n */\r\n public ensurePlaneSets() { }\r\n /** Return true if the point lies inside/on this polygon (or not inside/on if this polygon is a mask). Otherwise, return false.\r\n * * Note that a derived class may choose to (a) implement its own test using its defining data, or (b) accept this implementation using planes that it inserted in the base class.\r\n */\r\n public pointInside(point: Point3d, onTolerance: number = Geometry.smallMetricDistanceSquared): boolean {\r\n this.ensurePlaneSets();\r\n let inside = true;\r\n if (this._clipPlanes)\r\n inside = this._clipPlanes.isPointOnOrInside(point, onTolerance);\r\n return inside;\r\n }\r\n\r\n /**\r\n * Multiply all ClipPlanes DPoint4d by matrix.\r\n * @param matrix matrix to apply.\r\n * @param invert if true, use in verse of the matrix.\r\n * @param transpose if true, use the transpose of the matrix (or inverse, per invert parameter)\r\n * * Note that if matrixA is applied to all of space, the matrix to send to this method to get a corresponding effect on the plane is the inverse transpose of matrixA\r\n * * Callers that will apply the same matrix to many planes should pre-invert the matrix for efficiency.\r\n * * Both params default to true to get the full effect of transforming space.\r\n * @param matrix matrix to apply\r\n */\r\n public multiplyPlanesByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean {\r\n if (invert) { // form inverse once here, reuse for all planes\r\n const inverse = matrix.createInverse();\r\n if (!inverse)\r\n return false;\r\n return this.multiplyPlanesByMatrix4d(inverse, false, transpose);\r\n }\r\n\r\n if (this._clipPlanes)\r\n this._clipPlanes.multiplyPlanesByMatrix4d(matrix);\r\n return true;\r\n }\r\n\r\n /** Apply a transform to the clipper (e.g. transform all planes) */\r\n public transformInPlace(transform: Transform): boolean {\r\n if (this._clipPlanes)\r\n this._clipPlanes.transformInPlace(transform);\r\n\r\n return true;\r\n }\r\n\r\n /** Sets both the clip plane set and the mask set visibility */\r\n public setInvisible(invisible: boolean) {\r\n this._invisible = invisible;\r\n }\r\n\r\n /**\r\n * Return true if any plane of the primary clipPlanes has (a) non-zero z component in its normal vector and (b) finite distance from origin.\r\n */\r\n public containsZClip(): boolean {\r\n if (this.fetchClipPlanesRef() !== undefined)\r\n for (const convexSet of this._clipPlanes!.convexSets)\r\n for (const plane of convexSet.planes)\r\n if (Math.abs(plane.inwardNormalRef.z) > 1.0e-6 && Math.abs(plane.distance) !== Number.MAX_VALUE)\r\n return true;\r\n return false;\r\n }\r\n\r\n /**\r\n * Quick test of whether the given points fall completely inside or outside.\r\n * @param points points to test\r\n * @param ignoreInvisibleSetting if true, do the test with the clip planes and return that, ignoring the invisible setting.\r\n */\r\n public classifyPointContainment(points: Point3d[], ignoreInvisibleSetting: boolean): ClipPlaneContainment {\r\n this.ensurePlaneSets();\r\n const planes = this._clipPlanes;\r\n let inside = ClipPlaneContainment.StronglyInside;\r\n if (planes)\r\n inside = planes.classifyPointContainment(points, false);\r\n if (this._invisible && !ignoreInvisibleSetting)\r\n switch (inside) {\r\n case ClipPlaneContainment.StronglyInside:\r\n return ClipPlaneContainment.StronglyOutside;\r\n case ClipPlaneContainment.StronglyOutside:\r\n return ClipPlaneContainment.StronglyInside;\r\n case ClipPlaneContainment.Ambiguous:\r\n return ClipPlaneContainment.Ambiguous;\r\n }\r\n return inside;\r\n }\r\n /** Promote json object form to class instance\r\n * * First try to convert to a ClipShape\r\n * * then try as a standalone instance of the base class ClipPrimitive.\r\n */\r\n public static fromJSON(json: ClipPrimitiveProps | undefined): ClipPrimitive | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const shape = ClipShape.fromClipShapeJSON(json as ClipPrimitiveShapeProps);\r\n if (shape)\r\n return shape;\r\n\r\n return ClipPrimitive.fromJSONClipPrimitive(json as ClipPrimitivePlanesProps);\r\n }\r\n /** Specific converter producing the base class ClipPrimitive. */\r\n public static fromJSONClipPrimitive(json: ClipPrimitivePlanesProps | undefined): ClipPrimitive | undefined {\r\n const planes = json?.planes;\r\n if (!planes)\r\n return undefined;\r\n\r\n const clipPlanes = planes.clips ? UnionOfConvexClipPlaneSets.fromJSON(planes.clips) : undefined;\r\n const invisible = undefined !== planes.invisible ? planes.invisible : false;\r\n return new ClipPrimitive(clipPlanes, invisible);\r\n }\r\n}\r\n\r\n/** Internal helper class holding XYZ components that serves as a representation of polygon edges defined by clip planes */\r\nclass PolyEdge {\r\n public pointA: Point3d;\r\n public pointB: Point3d;\r\n public normal: Vector3d;\r\n\r\n public constructor(origin: Point3d, next: Point3d, normal: Vector3d, z: number) {\r\n this.pointA = Point3d.create(origin.x, origin.y, z);\r\n this.pointB = Point3d.create(next.x, next.y, z);\r\n this.normal = normal;\r\n }\r\n // Assume both normals are unit length.\r\n // old logic: use difference of (previously computed) normals as perpendicular to bisector.\r\n public static makeUnitPerpendicularToBisector(edgeA: PolyEdge, edgeB: PolyEdge, reverse: boolean): Vector3d | undefined {\r\n let candidate = edgeB.normal.minus(edgeA.normal);\r\n if (candidate.normalize(candidate) === undefined) {\r\n candidate = Vector3d.createStartEnd(edgeA.pointA, edgeB.pointB);\r\n if (candidate.normalize(candidate) === undefined)\r\n return undefined;\r\n }\r\n if (reverse)\r\n candidate.scale(-1.0, candidate);\r\n return candidate;\r\n }\r\n}\r\n/**\r\n * A clipping volume defined by a shape (an array of 3d points using only x and y dimensions).\r\n * May be given either a ClipPlaneSet to store directly, or an array of polygon points as well as other parameters\r\n * for parsing ClipPlanes from the shape later.\r\n * @public\r\n */\r\nexport class ClipShape extends ClipPrimitive {\r\n /** Points of the polygon, in the xy plane of the local coordinate system. */\r\n protected _polygon: Point3d[];\r\n /** optional low z (in local coordinates) */\r\n protected _zLow?: number;\r\n /** optional high z (in local coordinates) */\r\n protected _zHigh?: number;\r\n /** true if this is considered a hole (keep geometry outside of the polygon.) */\r\n protected _isMask: boolean;\r\n /** transform from local to world */\r\n protected _transformFromClip?: Transform;\r\n /** Transform from world to local */\r\n protected _transformToClip?: Transform;\r\n protected constructor(polygon: Point3d[] = [], zLow?: number, zHigh?: number, transform?: Transform, isMask: boolean = false, invisible: boolean = false) {\r\n super(undefined, invisible); // ClipPlaneSets will be set up later after storing points\r\n this._isMask = false;\r\n this._polygon = polygon;\r\n this.initSecondaryProps(isMask, zLow, zHigh, transform);\r\n }\r\n /** Returns true if this ClipShape is marked as invisible. */\r\n public override get invisible(): boolean { return this._invisible; }\r\n /** Return this transformFromClip, which may be undefined. */\r\n public get transformFromClip(): Transform | undefined { return this._transformFromClip; }\r\n /** Return this transformToClip, which may be undefined. */\r\n public get transformToClip(): Transform | undefined { return this._transformToClip; }\r\n /** Returns true if this ClipShape's transforms are currently set. */\r\n public get transformValid(): boolean { return this.transformFromClip !== undefined; }\r\n /** Returns true if this ClipShape's lower z boundary is set. */\r\n public get zLowValid(): boolean { return this._zLow !== undefined; }\r\n /** Returns true if this ClipShape's upper z boundary is set. */\r\n public get zHighValid(): boolean { return this._zHigh !== undefined; }\r\n /** Return true if this ClipShape has a local to world transform */\r\n public get transformIsValid(): boolean { return this._transformFromClip !== undefined; }\r\n /** Return this zLow, which may be undefined. */\r\n public get zLow(): number | undefined { return this._zLow; }\r\n /** Return this zHigh, which may be undefined. */\r\n public get zHigh(): number | undefined { return this._zHigh; }\r\n /** Returns a reference to this ClipShape's polygon array. */\r\n public get polygon(): Point3d[] { return this._polygon; }\r\n /** Returns true if this ClipShape is a masking set. */\r\n public get isMask(): boolean { return this._isMask; }\r\n /** Sets the polygon points array of this ClipShape to the array given (by reference). */\r\n public setPolygon(polygon: Point3d[]) {\r\n // Add closure point\r\n if (!polygon[0].isAlmostEqual(polygon[polygon.length - 1]))\r\n polygon.push(polygon[0].clone());\r\n this._polygon = polygon;\r\n }\r\n /**\r\n * * If the ClipShape's associated `UnionOfConvexClipPlaneSets` is defined, do nothing.\r\n * * If the ClipShape's associated `UnionOfConvexClipPlaneSets` is undefined, generate it from the `ClipShape` and transform.\r\n */\r\n public override ensurePlaneSets() {\r\n if (this._clipPlanes !== undefined)\r\n return;\r\n this._clipPlanes = UnionOfConvexClipPlaneSets.createEmpty();\r\n this.parseClipPlanes(this._clipPlanes);\r\n if (this._transformFromClip)\r\n this._clipPlanes.transformInPlace(this._transformFromClip);\r\n }\r\n /**\r\n * Initialize the members of the ClipShape class that may at times be undefined.\r\n * zLow and zHigh default to Number.MAX_VALUE, and the transform defaults to an identity transform\r\n */\r\n public initSecondaryProps(isMask: boolean, zLow?: number, zHigh?: number, transform?: Transform) {\r\n this._isMask = isMask;\r\n this._zLow = zLow;\r\n this._zHigh = zHigh;\r\n\r\n if (transform !== undefined) {\r\n this._transformFromClip = transform;\r\n this._transformToClip = transform.inverse(); // could be undefined\r\n } else {\r\n this._transformFromClip = Transform.createIdentity();\r\n this._transformToClip = Transform.createIdentity();\r\n }\r\n }\r\n\r\n /** emit json object form */\r\n public override toJSON(): ClipPrimitiveShapeProps {\r\n const shape: ClipPrimitiveShapeProps[\"shape\"] = {\r\n points: this._polygon.map((pt) => pt.toJSON()),\r\n };\r\n\r\n if (this.invisible)\r\n shape.invisible = true;\r\n\r\n if (this._transformFromClip && !this._transformFromClip.isIdentity)\r\n shape.trans = this._transformFromClip.toJSON();\r\n\r\n if (this.isMask)\r\n shape.mask = true;\r\n\r\n if (typeof (this.zLow) !== \"undefined\" && this.zLow !== -Number.MAX_VALUE)\r\n shape.zlow = this.zLow;\r\n\r\n if (typeof (this.zHigh) !== \"undefined\" && this.zHigh !== Number.MAX_VALUE)\r\n shape.zhigh = this.zHigh;\r\n\r\n return { shape };\r\n }\r\n\r\n /** parse `json` to a clip shape. */\r\n public static fromClipShapeJSON(json: ClipPrimitiveShapeProps | undefined, result?: ClipShape): ClipShape | undefined {\r\n const shape = json?.shape;\r\n if (!shape)\r\n return undefined;\r\n\r\n const points: Point3d[] = shape.points ? shape.points.map((pt) => Point3d.fromJSON(pt)) : [];\r\n const trans = shape.trans ? Transform.fromJSON(shape.trans) : undefined;\r\n const zLow = typeof shape.zlow === \"number\" ? shape.zlow : undefined;\r\n const zHigh = typeof shape.zhigh === \"number\" ? shape.zhigh : undefined;\r\n const isMask = typeof shape.mask === \"boolean\" && shape.mask;\r\n const invisible = typeof shape.invisible === \"boolean\" && shape.invisible;\r\n\r\n return ClipShape.createShape(points, zLow, zHigh, trans, isMask, invisible, result);\r\n }\r\n\r\n /** Returns a new ClipShape that is a deep copy of the ClipShape given */\r\n public static createFrom(other: ClipShape, result?: ClipShape): ClipShape {\r\n const retVal = ClipShape.createEmpty(false, false, undefined, result);\r\n retVal._invisible = other._invisible;\r\n for (const point of other._polygon) {\r\n retVal._polygon.push(point.clone());\r\n }\r\n retVal._isMask = other._isMask;\r\n retVal._zLow = other._zLow;\r\n retVal._zHigh = other._zHigh;\r\n retVal._transformToClip = other._transformToClip ? other._transformToClip.clone() : undefined;\r\n retVal._transformFromClip = other._transformFromClip ? other._transformFromClip.clone() : undefined;\r\n return retVal;\r\n }\r\n /** Create a new ClipShape from an array of points that make up a 2d shape (stores a deep copy of these points). */\r\n public static createShape(polygon: Point3d[] = [], zLow?: number, zHigh?: number, transform?: Transform, isMask: boolean = false, invisible: boolean = false, result?: ClipShape): ClipShape | undefined {\r\n if (polygon.length < 3)\r\n return undefined;\r\n const pPoints = polygon.slice(0);\r\n // Add closure point.\r\n if (pPoints[0].isAlmostEqual(pPoints[pPoints.length - 1]))\r\n pPoints[0].clone(pPoints[pPoints.length - 1]);\r\n else\r\n pPoints.push(pPoints[0].clone());\r\n if (result) {\r\n result._clipPlanes = undefined; // Start as undefined\r\n result._invisible = invisible;\r\n result._polygon = pPoints;\r\n result.initSecondaryProps(isMask, zLow, zHigh, transform);\r\n return result;\r\n } else {\r\n return new ClipShape(pPoints, zLow, zHigh, transform, isMask, invisible);\r\n }\r\n }\r\n /**\r\n * Create a ClipShape that exists as a 3 dimensional box of the range given. Optionally choose to\r\n * also store this shape's zLow and zHigh members from the range through the use of a RangePlaneBitMask.\r\n */\r\n public static createBlock(extremities: Range3d, clipMask: ClipMaskXYZRangePlanes, isMask: boolean = false, invisible: boolean = false, transform?: Transform, result?: ClipShape): ClipShape {\r\n const low = extremities.low;\r\n const high = extremities.high;\r\n const blockPoints: Point3d[] = [];\r\n for (let i = 0; i < 5; i++)\r\n blockPoints.push(Point3d.create());\r\n blockPoints[0].x = blockPoints[3].x = blockPoints[4].x = low.x;\r\n blockPoints[1].x = blockPoints[2].x = high.x;\r\n blockPoints[0].y = blockPoints[1].y = blockPoints[4].y = low.y;\r\n blockPoints[2].y = blockPoints[3].y = high.y;\r\n return ClipShape.createShape(blockPoints, (ClipMaskXYZRangePlanes.None !== (clipMask & ClipMaskXYZRangePlanes.ZLow)) ? low.z : undefined, ClipMaskXYZRangePlanes.None !== (clipMask & ClipMaskXYZRangePlanes.ZHigh) ? high.z : undefined, transform, isMask, invisible, result)!;\r\n }\r\n /** Creates a new ClipShape with undefined members and a polygon points array of zero length. */\r\n public static createEmpty(isMask = false, invisible: boolean = false, transform?: Transform, result?: ClipShape): ClipShape {\r\n if (result) {\r\n result._clipPlanes = undefined;\r\n result._invisible = invisible;\r\n result._polygon.length = 0;\r\n result.initSecondaryProps(isMask, undefined, undefined, transform);\r\n return result;\r\n }\r\n return new ClipShape([], undefined, undefined, transform, isMask, invisible);\r\n }\r\n /** Checks to ensure that the member polygon has an area, and that the polygon is closed. */\r\n public get isValidPolygon(): boolean {\r\n if (this._polygon.length < 3)\r\n return false;\r\n if (!this._polygon[0].isExactEqual(this._polygon[this._polygon.length - 1]))\r\n return false;\r\n return true;\r\n }\r\n /** Returns a deep copy of this instance of ClipShape, storing in an optional result */\r\n public override clone(result?: ClipShape): ClipShape {\r\n return ClipShape.createFrom(this, result);\r\n }\r\n /** Given the current polygon data, parses clip planes that together form an object, storing the result in the set given, either clipplanes or maskplanes. */\r\n private parseClipPlanes(set: UnionOfConvexClipPlaneSets) {\r\n const points = this._polygon;\r\n if (points.length === 3 && !this._isMask && points[0].isExactEqual(points[points.length - 1])) {\r\n this.parseLinearPlanes(set, this._polygon[0], this._polygon[1]);\r\n return true;\r\n }\r\n\r\n if (!this.isMask){\r\n const direction = PolygonOps.testXYPolygonTurningDirections(this.polygon);\r\n if (direction !== 0){\r\n this.parseConvexPolygonPlanes(set, this._polygon, direction, false);\r\n return true;\r\n }\r\n }\r\n\r\n // REMARK: Pass all polygons to non-convex case. It will funnel\r\n // to concave case as appropriate.\r\n this.parsePolygonPlanes(set, this._polygon, this.isMask);\r\n return true;\r\n }\r\n /** Given a start and end point, populate the given UnionOfConvexClipPlaneSets with ConvexClipPlaneSets defining the bounded region of linear planes. Returns true if successful. */\r\n private parseLinearPlanes(set: UnionOfConvexClipPlaneSets, start: Point3d, end: Point3d, cameraFocalLength?: number): boolean {\r\n // Handles the degenerate case of 2 distinct points (used by select by line).\r\n const normal = start.vectorTo(end);\r\n if (normal.magnitude() === 0.0)\r\n return false;\r\n normal.normalize(normal);\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n if (cameraFocalLength === undefined) {\r\n const perpendicular = Vector2d.create(-normal.y, normal.x);\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(Vector3d.create(normal.x, normal.y), Point3d.createFrom(start), this._invisible)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(Vector3d.create(-normal.x, -normal.y), Point3d.createFrom(end), this._invisible)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(Vector3d.create(perpendicular.x, perpendicular.y), Point3d.createFrom(start), this._invisible)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(Vector3d.create(-perpendicular.x, -perpendicular.y), Point3d.createFrom(start), this._invisible)!);\r\n } else {\r\n const start3d = Point3d.create(start.x, start.y, -cameraFocalLength);\r\n const end3d = Point3d.create(end.x, end.y, -cameraFocalLength);\r\n const vecEnd3d = Vector3d.createFrom(end3d);\r\n const perpendicular = vecEnd3d.crossProduct(Vector3d.createFrom(start3d)).normalize();\r\n let endNormal = Vector3d.createFrom(start3d).crossProduct(perpendicular!).normalize();\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(perpendicular!, 0.0, this._invisible)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(endNormal!, 0.0, this._invisible)!);\r\n perpendicular!.negate();\r\n endNormal = vecEnd3d.crossProduct(perpendicular!).normalize();\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(perpendicular!, 0.0, this._invisible)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(endNormal!, 0.0, this._invisible)!);\r\n }\r\n convexSet.addZClipPlanes(this._invisible, this._zLow, this._zHigh);\r\n set.addConvexSet(convexSet);\r\n return true;\r\n }\r\n\r\n /** Given a convex polygon defined as an array of points, populate the given UnionOfConvexClipPlaneSets with ConvexClipPlaneSets defining the bounded region. Returns true if successful. */\r\n private parseConvexPolygonPlanes(set: UnionOfConvexClipPlaneSets, polygon: Point3d[], direction: number, buildExteriorClipper: boolean, cameraFocalLength?: number): boolean {\r\n const samePointTolerance = 1.0e-8; // This could possibly be replaced with more widely used constants\r\n const edges: PolyEdge[] = [];\r\n // const reverse = (direction < 0) !== this._isMask;\r\n const reverse = direction < 0;\r\n for (let i = 0; i < polygon.length - 1; i++) {\r\n const z = (cameraFocalLength === undefined) ? 0.0 : -cameraFocalLength;\r\n const dir = Vector3d.createStartEnd(polygon[i], polygon[i + 1]);\r\n const magnitude = dir.magnitude();\r\n dir.normalize(dir);\r\n if (magnitude > samePointTolerance) {\r\n const normal = Vector3d.create(reverse ? dir.y : -dir.y, reverse ? -dir.x : dir.x);\r\n edges.push(new PolyEdge(polygon[i], polygon[i + 1], normal, z));\r\n }\r\n }\r\n if (edges.length < 3) {\r\n return false;\r\n }\r\n if (buildExteriorClipper) {\r\n const last = edges.length - 1;\r\n for (let i = 0; i <= last; i++) {\r\n const edge = edges[i];\r\n const prevEdge = edges[i ? (i - 1) : last];\r\n const nextEdge = edges[(i === last) ? 0 : (i + 1)];\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n const previousPerpendicular = PolyEdge.makeUnitPerpendicularToBisector(prevEdge, edge, !reverse);\r\n const nextPerpendicular = PolyEdge.makeUnitPerpendicularToBisector(edge, nextEdge, reverse);\r\n // Create three-sided fans from each edge. Note we could define the correct region\r\n // with only two planes for edge, but cannot then designate the \"interior\" status of the edges accurately.\r\n\r\n if (previousPerpendicular)\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(previousPerpendicular, edge.pointA, this._invisible, true)!);\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(edge.normal, edge.pointB, this._invisible, false)!);\r\n if (nextPerpendicular)\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(nextPerpendicular, nextEdge.pointA, this._invisible, true)!);\r\n set.addConvexSet(convexSet);\r\n set.addOutsideZClipSets(this._invisible, this._zLow, this._zHigh);\r\n }\r\n } else {\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n if (cameraFocalLength === undefined) {\r\n for (const edge of edges)\r\n convexSet.planes.push(ClipPlane.createNormalAndPoint(Vector3d.create(edge.normal.x, edge.normal.y), edge.pointA)!);\r\n } else {\r\n if (reverse)\r\n for (const edge of edges)\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(Vector3d.createFrom(edge.pointA).crossProduct(Vector3d.createFrom(edge.pointB)).normalize()!, 0.0)!);\r\n else\r\n for (const edge of edges)\r\n convexSet.planes.push(ClipPlane.createNormalAndDistance(Vector3d.createFrom(edge.pointB).crossProduct(Vector3d.createFrom(edge.pointA)).normalize()!, 0.0)!);\r\n }\r\n convexSet.addZClipPlanes(this._invisible, this._zLow, this._zHigh);\r\n set.addConvexSet(convexSet);\r\n }\r\n return true;\r\n }\r\n /** Given a (possibly non-convex) polygon defined as an array of points, populate the given UnionOfConvexClipPlaneSets with multiple ConvexClipPlaneSets defining the bounded region. Returns true if successful. */\r\n private parsePolygonPlanes(set: UnionOfConvexClipPlaneSets, polygon: Point3d[], isMask: boolean, cameraFocalLength?: number): boolean {\r\n const cleanPolygon = PolylineOps.compressDanglers(polygon, true);\r\n const announceFace = (_graph: HalfEdgeGraph, edge: HalfEdge): boolean => {\r\n if (!edge.isMaskSet(HalfEdgeMask.EXTERIOR)) {\r\n const convexFacetPoints = edge.collectAroundFace((node: HalfEdge): any => {\r\n if (!node.isMaskSet(HalfEdgeMask.EXTERIOR))\r\n return Point3d.create(node.x, node.y, 0);\r\n });\r\n // parseConvexPolygonPlanes expects a closed loop (pushing the reference doesn't matter)\r\n convexFacetPoints.push(convexFacetPoints[0].clone());\r\n const direction = PolygonOps.testXYPolygonTurningDirections(convexFacetPoints); // ###TODO: Can we expect a direction coming out of graph facet?\r\n this.parseConvexPolygonPlanes(set, convexFacetPoints, direction, false, cameraFocalLength);\r\n }\r\n return true;\r\n };\r\n if (isMask) {\r\n const polygonA = Point3dArray.clonePoint3dArray ( cleanPolygon);\r\n const hullAndInlets = AlternatingCCTreeNode.createHullAndInletsForPolygon(polygonA);\r\n const allLoops = hullAndInlets.extractLoops();\r\n if (allLoops.length === 0)\r\n return false;\r\n const hull = allLoops[0];\r\n const direction1 = PolygonOps.testXYPolygonTurningDirections(hull); // ###TODO: Can we expect a direction coming out of graph facet?\r\n this.parseConvexPolygonPlanes(set, hull, -direction1, true, cameraFocalLength);\r\n for (let i = 1; i < allLoops.length; i++) {\r\n const triangulatedPolygon = Triangulator.createTriangulatedGraphFromSingleLoop(allLoops[i]);\r\n if (triangulatedPolygon) {\r\n Triangulator.flipTriangles(triangulatedPolygon);\r\n triangulatedPolygon.announceFaceLoops(announceFace);\r\n }\r\n }\r\n return true;\r\n } else {\r\n const triangulatedPolygon = Triangulator.createTriangulatedGraphFromSingleLoop(cleanPolygon);\r\n if (triangulatedPolygon === undefined)\r\n return false;\r\n Triangulator.flipTriangles(triangulatedPolygon);\r\n triangulatedPolygon.announceFaceLoops(announceFace);\r\n }\r\n return true;\r\n }\r\n /**\r\n * Multiply all ClipPlanes DPoint4d by matrix.\r\n * @param matrix matrix to apply.\r\n * @param invert if true, use in verse of the matrix.\r\n * @param transpose if true, use the transpose of the matrix (or inverse, per invert parameter)\r\n * * Note that if matrixA is applied to all of space, the matrix to send to this method to get a corresponding effect on the plane is the inverse transpose of matrixA\r\n * * Callers that will apply the same matrix to many planes should pre-invert the matrix for efficiency.\r\n * * Both params default to true to get the full effect of transforming space.\r\n * @param matrix matrix to apply\r\n */\r\n public override multiplyPlanesByMatrix4d(matrix: Matrix4d, invert: boolean = true, transpose: boolean = true): boolean {\r\n this.ensurePlaneSets();\r\n return super.multiplyPlanesByMatrix4d(matrix, invert, transpose);\r\n }\r\n /** Apply `transform` to the local to world (`transformFromClip`) transform.\r\n * * The world to local transform (`transformToClip` is recomputed from the (changed) `transformToClip`\r\n * * the transform is passed to the base class to be applied to clip plane form of the clipper.\r\n */\r\n public override transformInPlace(transform: Transform): boolean {\r\n if (transform.isIdentity)\r\n return true;\r\n super.transformInPlace(transform);\r\n if (this._transformFromClip)\r\n transform.multiplyTransformTransform(this._transformFromClip, this._transformFromClip);\r\n else\r\n this._transformFromClip = transform.clone();\r\n this._transformToClip = this._transformFromClip.inverse(); // could be undefined\r\n return true;\r\n }\r\n /** Return true if\r\n * * at least one point is defined\r\n * * The local to world transform (transformFromClip) either\r\n * * is undefined\r\n * * has no xy parts in its column Z (local frame Z is parallel to global Z)\r\n */\r\n public get isXYPolygon(): boolean {\r\n if (this._polygon.length === 0) // Note: This is a lenient check, as points array could also contain less than 3 points (not a polygon)\r\n return false;\r\n if (this._transformFromClip === undefined)\r\n return true;\r\n const zVector = this._transformFromClip.matrix.columnZ();\r\n return zVector.magnitudeXY() < 1.0e-8;\r\n }\r\n /** Transform the input point in place using this instance's `transformToClip` member */\r\n public performTransformToClip(point: Point3d): void {\r\n if (this._transformToClip !== undefined)\r\n this._transformToClip.multiplyPoint3d(point, point);\r\n }\r\n /** Transform the input point in place using this instance's `transformFromClip` member */\r\n public performTransformFromClip(point: Point3d): void {\r\n if (this._transformFromClip !== undefined)\r\n this._transformFromClip.multiplyPoint3d(point, point);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClipUtils.d.ts","sourceRoot":"","sources":["../../src/clipping/ClipUtils.ts"],"names":[],"mappings":"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"}
|