@itwin/core-geometry 5.0.0-dev.6 → 5.0.0-dev.61
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 +39 -1
- package/lib/cjs/Constant.js +17 -17
- package/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/Geometry.js +35 -35
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/AkimaCurve3d.js +3 -1
- package/lib/cjs/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +18 -0
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +6 -2
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve3dH.js +1 -0
- package/lib/cjs/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurveOps.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurveOps.js +18 -21
- package/lib/cjs/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/cjs/bspline/BSplineSurface.js +22 -2
- package/lib/cjs/bspline/BSplineSurface.js.map +1 -1
- package/lib/cjs/bspline/Bezier1dNd.js +6 -0
- package/lib/cjs/bspline/Bezier1dNd.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js +2 -0
- package/lib/cjs/bspline/BezierCurve3d.js.map +1 -1
- package/lib/cjs/bspline/BezierCurve3dH.js +2 -0
- package/lib/cjs/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurveBase.js +21 -2
- package/lib/cjs/bspline/BezierCurveBase.js.map +1 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js +12 -1
- package/lib/cjs/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/cjs/bspline/KnotVector.d.ts +8 -6
- package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
- package/lib/cjs/bspline/KnotVector.js +21 -8
- package/lib/cjs/bspline/KnotVector.js.map +1 -1
- package/lib/cjs/bspline/SurfaceLocationDetail.js +12 -0
- package/lib/cjs/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/cjs/clipping/AlternatingConvexClipTree.js +14 -13
- package/lib/cjs/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/cjs/clipping/BooleanClipNode.js +4 -0
- package/lib/cjs/clipping/BooleanClipNode.js.map +1 -1
- package/lib/cjs/clipping/ClipPlane.js +10 -1
- package/lib/cjs/clipping/ClipPlane.js.map +1 -1
- package/lib/cjs/clipping/ClipPrimitive.js +19 -0
- package/lib/cjs/clipping/ClipPrimitive.js.map +1 -1
- package/lib/cjs/clipping/ClipUtils.js +5 -1
- package/lib/cjs/clipping/ClipUtils.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.js +11 -8
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/clipping/ConvexClipPlaneSet.js +5 -3
- package/lib/cjs/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js +2 -1
- package/lib/cjs/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
- package/lib/cjs/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/cjs/core-geometry.d.ts +1 -0
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +1 -0
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +15 -3
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +47 -20
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js +3 -0
- package/lib/cjs/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/cjs/curve/CoordinateXYZ.js +3 -2
- package/lib/cjs/curve/CoordinateXYZ.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +0 -2
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +25 -10
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +10 -0
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +35 -9
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +87 -53
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +213 -135
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurveLocationDetail.js +44 -0
- package/lib/cjs/curve/CurveLocationDetail.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +7 -10
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +27 -12
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js +2 -0
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/CurveWireMomentsXYZ.js +2 -0
- package/lib/cjs/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +6 -2
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.js +27 -7
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.js +12 -4
- package/lib/cjs/curve/Loop.js.map +1 -1
- package/lib/cjs/curve/OffsetOptions.js +25 -21
- package/lib/cjs/curve/OffsetOptions.js.map +1 -1
- package/lib/cjs/curve/ParityRegion.js +4 -2
- package/lib/cjs/curve/ParityRegion.js.map +1 -1
- package/lib/cjs/curve/Path.js +2 -2
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.js +3 -2
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/ProxyCurve.js +1 -0
- package/lib/cjs/curve/ProxyCurve.js.map +1 -1
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
- package/lib/cjs/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/cjs/curve/Query/CurveSplitContext.js +3 -0
- package/lib/cjs/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js +6 -2
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/Query/PlanarSubdivision.js +4 -6
- package/lib/cjs/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountChain.js +12 -0
- package/lib/cjs/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/cjs/curve/Query/StrokeCountMap.js +14 -0
- package/lib/cjs/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/cjs/curve/RegionMomentsXY.js +4 -5
- package/lib/cjs/curve/RegionMomentsXY.js.map +1 -1
- package/lib/cjs/curve/RegionOps.js +9 -10
- package/lib/cjs/curve/RegionOps.js.map +1 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js +24 -1
- package/lib/cjs/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts +4 -4
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +23 -6
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/UnionRegion.js +4 -2
- package/lib/cjs/curve/UnionRegion.js.map +1 -1
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
- package/lib/cjs/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.js +6 -0
- package/lib/cjs/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js +2 -0
- package/lib/cjs/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
- package/lib/cjs/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
- package/lib/cjs/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveLengthContext.js +6 -0
- package/lib/cjs/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
- package/lib/cjs/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/GapSearchContext.js +1 -0
- package/lib/cjs/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js +12 -0
- package/lib/cjs/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
- package/lib/cjs/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
- package/lib/cjs/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +22 -4
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js +1 -0
- package/lib/cjs/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js +3 -0
- package/lib/cjs/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
- package/lib/cjs/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/ClothoidSeries.js +4 -0
- package/lib/cjs/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/cjs/curve/spiral/CubicEvaluator.js +2 -0
- package/lib/cjs/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js +4 -0
- package/lib/cjs/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
- package/lib/cjs/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/DirectSpiral3d.js +12 -2
- package/lib/cjs/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js +24 -4
- package/lib/cjs/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
- package/lib/cjs/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/NormalizedTransition.js +5 -0
- package/lib/cjs/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
- package/lib/cjs/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js +10 -0
- package/lib/cjs/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js +10 -0
- package/lib/cjs/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js +6 -0
- package/lib/cjs/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/cjs/geometry3d/Angle.js +18 -16
- package/lib/cjs/geometry3d/Angle.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +3 -1
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.js +25 -0
- package/lib/cjs/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js +8 -0
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js +5 -0
- package/lib/cjs/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js +48 -0
- package/lib/cjs/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js +12 -4
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/FrustumAnimation.js +7 -0
- package/lib/cjs/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableBlockedArray.js +12 -0
- package/lib/cjs/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js +3 -0
- package/lib/cjs/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts +0 -5
- package/lib/cjs/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYArray.js +16 -7
- package/lib/cjs/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts +32 -10
- package/lib/cjs/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableXYZArray.js +70 -16
- package/lib/cjs/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js +6 -0
- package/lib/cjs/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js +1 -0
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts +13 -2
- package/lib/cjs/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYZCollection.js +26 -11
- package/lib/cjs/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js +3 -0
- package/lib/cjs/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +3 -4
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +34 -12
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/OrderedRotationAngles.js +10 -2
- package/lib/cjs/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js +7 -0
- package/lib/cjs/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -0
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dVector2d.js +4 -0
- package/lib/cjs/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js +3 -1
- package/lib/cjs/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -6
- package/lib/cjs/geometry3d/Point3dVector3d.js +12 -6
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +5 -5
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PointStreaming.js +12 -4
- package/lib/cjs/geometry3d/PointStreaming.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts +2 -2
- package/lib/cjs/geometry3d/PolygonOps.js +62 -25
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
- package/lib/cjs/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.d.ts +9 -5
- package/lib/cjs/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolylineOps.js +12 -5
- package/lib/cjs/geometry3d/PolylineOps.js.map +1 -1
- package/lib/cjs/geometry3d/Range.js +21 -4
- package/lib/cjs/geometry3d/Range.js.map +1 -1
- package/lib/cjs/geometry3d/Ray2d.js +2 -0
- package/lib/cjs/geometry3d/Ray2d.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js +12 -0
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/ReusableObjectCache.js +4 -0
- package/lib/cjs/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/cjs/geometry3d/Segment1d.js +4 -0
- package/lib/cjs/geometry3d/Segment1d.js.map +1 -1
- package/lib/cjs/geometry3d/SortablePolygon.js +11 -0
- package/lib/cjs/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/cjs/geometry3d/Transform.js +3 -0
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js +6 -0
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.js +2 -0
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js +1 -0
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/MomentData.d.ts +72 -73
- package/lib/cjs/geometry4d/MomentData.d.ts.map +1 -1
- package/lib/cjs/geometry4d/MomentData.js +90 -66
- package/lib/cjs/geometry4d/MomentData.js.map +1 -1
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
- package/lib/cjs/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js +2 -0
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js +8 -0
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/ClusterableArray.js +29 -13
- package/lib/cjs/numerics/ClusterableArray.js.map +1 -1
- package/lib/cjs/numerics/Complex.js +2 -0
- package/lib/cjs/numerics/Complex.js.map +1 -1
- package/lib/cjs/numerics/ConvexPolygon2d.js +3 -0
- package/lib/cjs/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/cjs/numerics/Newton.js +59 -4
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js +1 -1
- package/lib/cjs/numerics/PascalCoefficients.js.map +1 -1
- package/lib/cjs/numerics/PolarData.js +13 -1
- package/lib/cjs/numerics/PolarData.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.js +64 -26
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Quadrature.js +26 -20
- package/lib/cjs/numerics/Quadrature.js.map +1 -1
- package/lib/cjs/numerics/TriDiagonalSystem.js +11 -0
- package/lib/cjs/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/cjs/numerics/UnionFind.js +1 -0
- package/lib/cjs/numerics/UnionFind.js.map +1 -1
- package/lib/cjs/numerics/UsageSums.js +10 -0
- package/lib/cjs/numerics/UsageSums.js.map +1 -1
- package/lib/cjs/polyface/AuxData.js +16 -0
- package/lib/cjs/polyface/AuxData.js.map +1 -1
- package/lib/cjs/polyface/BoxTopology.js +67 -67
- package/lib/cjs/polyface/BoxTopology.js.map +1 -1
- package/lib/cjs/polyface/FacetFaceData.d.ts +1 -1
- package/lib/cjs/polyface/FacetFaceData.js +3 -1
- package/lib/cjs/polyface/FacetFaceData.js.map +1 -1
- package/lib/cjs/polyface/FacetLocationDetail.js +30 -0
- package/lib/cjs/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/cjs/polyface/FacetOrientation.js +12 -1
- package/lib/cjs/polyface/FacetOrientation.js.map +1 -1
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
- package/lib/cjs/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts +33 -23
- package/lib/cjs/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedEdgeMatcher.js +63 -33
- package/lib/cjs/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts +3 -2
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +11 -2
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts +233 -0
- package/lib/cjs/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
- package/lib/cjs/polyface/IndexedPolyfaceWalker.js +353 -0
- package/lib/cjs/polyface/IndexedPolyfaceWalker.js.map +1 -0
- package/lib/cjs/polyface/Polyface.d.ts +35 -10
- package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
- package/lib/cjs/polyface/Polyface.js +73 -12
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts +14 -27
- package/lib/cjs/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +47 -79
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js +8 -0
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.d.ts +28 -0
- package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.js +87 -5
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +47 -7
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/RangeLengthData.js +7 -0
- package/lib/cjs/polyface/RangeLengthData.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
- package/lib/cjs/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/MinimumValueTester.js +5 -2
- package/lib/cjs/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
- package/lib/cjs/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
- package/lib/cjs/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js +5 -0
- package/lib/cjs/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
- package/lib/cjs/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
- package/lib/cjs/polyface/TaggedNumericData.js +8 -0
- package/lib/cjs/polyface/TaggedNumericData.js.map +1 -1
- package/lib/cjs/polyface/TriangleCandidate.js +3 -0
- package/lib/cjs/polyface/TriangleCandidate.js.map +1 -1
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
- package/lib/cjs/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
- package/lib/cjs/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +32 -0
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/RangeSearch.js +5 -5
- package/lib/cjs/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
- package/lib/cjs/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js +6 -0
- package/lib/cjs/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/cjs/serialization/BGFBAccessors.js +82 -164
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js +22 -22
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +1 -0
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/DeepCompare.js +17 -17
- package/lib/cjs/serialization/DeepCompare.js.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.d.ts +5 -5
- package/lib/cjs/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/cjs/serialization/GeometrySamples.js +113 -112
- package/lib/cjs/serialization/GeometrySamples.js.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.d.ts +1 -2
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/solid/Box.js +7 -2
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.js +6 -2
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.js +4 -2
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js +5 -2
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts +26 -23
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RuledSweep.js +32 -24
- package/lib/cjs/solid/RuledSweep.js.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.d.ts +12 -11
- package/lib/cjs/solid/SolidPrimitive.d.ts.map +1 -1
- package/lib/cjs/solid/SolidPrimitive.js +11 -6
- package/lib/cjs/solid/SolidPrimitive.js.map +1 -1
- package/lib/cjs/solid/Sphere.js +4 -2
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts +24 -15
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
- package/lib/cjs/solid/SweepContour.js +33 -15
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.js +7 -2
- package/lib/cjs/solid/TorusPipe.js.map +1 -1
- package/lib/cjs/topology/ChainMerge.js +16 -4
- package/lib/cjs/topology/ChainMerge.js.map +1 -1
- package/lib/cjs/topology/Graph.js +41 -6
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
- package/lib/cjs/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSearch.js +2 -0
- package/lib/cjs/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js +9 -2
- package/lib/cjs/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeGraphValidation.js +7 -9
- package/lib/cjs/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeMarkSet.js +5 -0
- package/lib/cjs/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js +6 -0
- package/lib/cjs/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js +1 -0
- package/lib/cjs/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePositionDetail.js +16 -0
- package/lib/cjs/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/cjs/topology/HalfEdgePriorityQueue.js +2 -0
- package/lib/cjs/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js +4 -0
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/MaskManager.js +3 -0
- package/lib/cjs/topology/MaskManager.js.map +1 -1
- package/lib/cjs/topology/Merging.js +11 -6
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/cjs/topology/RegularizeFace.js +22 -0
- package/lib/cjs/topology/RegularizeFace.js.map +1 -1
- package/lib/cjs/topology/SignedDataSummary.js +22 -0
- package/lib/cjs/topology/SignedDataSummary.js.map +1 -1
- package/lib/cjs/topology/Triangulation.js +21 -11
- package/lib/cjs/topology/Triangulation.js.map +1 -1
- package/lib/cjs/topology/XYParitySearchContext.js +13 -0
- package/lib/cjs/topology/XYParitySearchContext.js.map +1 -1
- package/lib/esm/Constant.js +17 -17
- package/lib/esm/Constant.js.map +1 -1
- package/lib/esm/Geometry.js +35 -35
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/AkimaCurve3d.js +3 -1
- package/lib/esm/bspline/AkimaCurve3d.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +18 -0
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +6 -2
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve3dH.js +1 -0
- package/lib/esm/bspline/BSplineCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurveOps.js +18 -21
- package/lib/esm/bspline/BSplineCurveOps.js.map +1 -1
- package/lib/esm/bspline/BSplineSurface.js +22 -2
- package/lib/esm/bspline/BSplineSurface.js.map +1 -1
- package/lib/esm/bspline/Bezier1dNd.js +6 -0
- package/lib/esm/bspline/Bezier1dNd.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js +2 -0
- package/lib/esm/bspline/BezierCurve3d.js.map +1 -1
- package/lib/esm/bspline/BezierCurve3dH.js +2 -0
- package/lib/esm/bspline/BezierCurve3dH.js.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurveBase.js +21 -2
- package/lib/esm/bspline/BezierCurveBase.js.map +1 -1
- package/lib/esm/bspline/InterpolationCurve3d.js +12 -1
- package/lib/esm/bspline/InterpolationCurve3d.js.map +1 -1
- package/lib/esm/bspline/KnotVector.d.ts +8 -6
- package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
- package/lib/esm/bspline/KnotVector.js +21 -8
- package/lib/esm/bspline/KnotVector.js.map +1 -1
- package/lib/esm/bspline/SurfaceLocationDetail.js +12 -0
- package/lib/esm/bspline/SurfaceLocationDetail.js.map +1 -1
- package/lib/esm/clipping/AlternatingConvexClipTree.js +14 -13
- package/lib/esm/clipping/AlternatingConvexClipTree.js.map +1 -1
- package/lib/esm/clipping/BooleanClipNode.js +4 -0
- package/lib/esm/clipping/BooleanClipNode.js.map +1 -1
- package/lib/esm/clipping/ClipPlane.js +10 -1
- package/lib/esm/clipping/ClipPlane.js.map +1 -1
- package/lib/esm/clipping/ClipPrimitive.js +19 -0
- package/lib/esm/clipping/ClipPrimitive.js.map +1 -1
- package/lib/esm/clipping/ClipUtils.js +5 -1
- package/lib/esm/clipping/ClipUtils.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js +11 -8
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/clipping/ConvexClipPlaneSet.js +5 -3
- package/lib/esm/clipping/ConvexClipPlaneSet.js.map +1 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js +2 -1
- package/lib/esm/clipping/UnionOfConvexClipPlaneSets.js.map +1 -1
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js +3 -0
- package/lib/esm/clipping/internalContexts/LineStringOffsetClipperContext.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +1 -0
- package/lib/esm/core-geometry.d.ts.map +1 -1
- package/lib/esm/core-geometry.js +1 -0
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +15 -3
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +47 -20
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/ConstructCurveBetweenCurves.js +3 -0
- package/lib/esm/curve/ConstructCurveBetweenCurves.js.map +1 -1
- package/lib/esm/curve/CoordinateXYZ.js +3 -2
- package/lib/esm/curve/CoordinateXYZ.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +0 -2
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +25 -10
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +10 -0
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +35 -9
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +87 -53
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +213 -135
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurveLocationDetail.js +44 -0
- package/lib/esm/curve/CurveLocationDetail.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +7 -10
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +27 -12
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.js +2 -0
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/CurveWireMomentsXYZ.js +2 -0
- package/lib/esm/curve/CurveWireMomentsXYZ.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +6 -2
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.js +27 -7
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.js +12 -4
- package/lib/esm/curve/Loop.js.map +1 -1
- package/lib/esm/curve/OffsetOptions.js +25 -21
- package/lib/esm/curve/OffsetOptions.js.map +1 -1
- package/lib/esm/curve/ParityRegion.js +4 -2
- package/lib/esm/curve/ParityRegion.js.map +1 -1
- package/lib/esm/curve/Path.js +2 -2
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.js +3 -2
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/ProxyCurve.js +1 -0
- package/lib/esm/curve/ProxyCurve.js.map +1 -1
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js +1 -0
- package/lib/esm/curve/Query/ConsolidateAdjacentPrimitivesContext.js.map +1 -1
- package/lib/esm/curve/Query/CurveSplitContext.js +3 -0
- package/lib/esm/curve/Query/CurveSplitContext.js.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js +6 -2
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/Query/PlanarSubdivision.js +4 -6
- package/lib/esm/curve/Query/PlanarSubdivision.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountChain.js +12 -0
- package/lib/esm/curve/Query/StrokeCountChain.js.map +1 -1
- package/lib/esm/curve/Query/StrokeCountMap.js +14 -0
- package/lib/esm/curve/Query/StrokeCountMap.js.map +1 -1
- package/lib/esm/curve/RegionMomentsXY.js +4 -5
- package/lib/esm/curve/RegionMomentsXY.js.map +1 -1
- package/lib/esm/curve/RegionOps.js +9 -10
- package/lib/esm/curve/RegionOps.js.map +1 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js +24 -1
- package/lib/esm/curve/RegionOpsClassificationSweeps.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts +4 -4
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +23 -6
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/UnionRegion.js +4 -2
- package/lib/esm/curve/UnionRegion.js.map +1 -1
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js +13 -7
- package/lib/esm/curve/internalContexts/AppendPlaneIntersectionStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/ChainCollectorContext.js +6 -0
- package/lib/esm/curve/internalContexts/ChainCollectorContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js +2 -0
- package/lib/esm/curve/internalContexts/CloneCurvesContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js +13 -5
- package/lib/esm/curve/internalContexts/ClosestPointStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js +3 -0
- package/lib/esm/curve/internalContexts/CountLinearPartsSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +18 -5
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +26 -13
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +11 -5
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveLengthContext.js +6 -0
- package/lib/esm/curve/internalContexts/CurveLengthContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js +8 -6
- package/lib/esm/curve/internalContexts/CurveOffsetXYHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +38 -5
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/GapSearchContext.js +1 -0
- package/lib/esm/curve/internalContexts/GapSearchContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/MultiChainCollector.js +12 -0
- package/lib/esm/curve/internalContexts/MultiChainCollector.js.map +1 -1
- package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js +1 -0
- package/lib/esm/curve/internalContexts/NewtonRtoRStrokeHandler.js.map +1 -1
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js +7 -0
- package/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +22 -4
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/SumLengthsContext.js +1 -0
- package/lib/esm/curve/internalContexts/SumLengthsContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js +3 -0
- package/lib/esm/curve/internalContexts/TransformInPlaceContext.js.map +1 -1
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js +2 -0
- package/lib/esm/curve/spiral/AustralianRailCorpXYEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/ClothoidSeries.js +4 -0
- package/lib/esm/curve/spiral/ClothoidSeries.js.map +1 -1
- package/lib/esm/curve/spiral/CubicEvaluator.js +2 -0
- package/lib/esm/curve/spiral/CubicEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js +4 -0
- package/lib/esm/curve/spiral/CzechSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js +5 -0
- package/lib/esm/curve/spiral/DirectHalfCosineSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/DirectSpiral3d.js +12 -2
- package/lib/esm/curve/spiral/DirectSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js +24 -4
- package/lib/esm/curve/spiral/IntegratedSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js +2 -0
- package/lib/esm/curve/spiral/MXCubicAlongArcSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/NormalizedTransition.js +5 -0
- package/lib/esm/curve/spiral/NormalizedTransition.js.map +1 -1
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js +2 -0
- package/lib/esm/curve/spiral/PolishCubicSpiralEvaluator.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js +10 -0
- package/lib/esm/curve/spiral/TransitionConditionalProperties.js.map +1 -1
- package/lib/esm/curve/spiral/TransitionSpiral3d.js +10 -0
- package/lib/esm/curve/spiral/TransitionSpiral3d.js.map +1 -1
- package/lib/esm/curve/spiral/XYCurveEvaluator.js +6 -0
- package/lib/esm/curve/spiral/XYCurveEvaluator.js.map +1 -1
- package/lib/esm/geometry3d/Angle.js +18 -16
- package/lib/esm/geometry3d/Angle.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +3 -1
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.js +25 -0
- package/lib/esm/geometry3d/BarycentricTriangle.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js +8 -0
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/CoincidentGeometryOps.js +5 -0
- package/lib/esm/geometry3d/CoincidentGeometryOps.js.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js +48 -0
- package/lib/esm/geometry3d/Ellipsoid.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js +12 -4
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/FrustumAnimation.js +7 -0
- package/lib/esm/geometry3d/FrustumAnimation.js.map +1 -1
- package/lib/esm/geometry3d/GrowableBlockedArray.js +12 -0
- package/lib/esm/geometry3d/GrowableBlockedArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js +3 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.d.ts +0 -5
- package/lib/esm/geometry3d/GrowableXYArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYArray.js +16 -7
- package/lib/esm/geometry3d/GrowableXYArray.js.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts +32 -10
- package/lib/esm/geometry3d/GrowableXYZArray.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableXYZArray.js +70 -16
- package/lib/esm/geometry3d/GrowableXYZArray.js.map +1 -1
- package/lib/esm/geometry3d/IndexedCollectionInterval.js +6 -0
- package/lib/esm/geometry3d/IndexedCollectionInterval.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js +1 -0
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts +13 -2
- package/lib/esm/geometry3d/IndexedXYZCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYZCollection.js +26 -11
- package/lib/esm/geometry3d/IndexedXYZCollection.js.map +1 -1
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js +3 -0
- package/lib/esm/geometry3d/LongitudeLatitudeAltitude.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +3 -4
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +34 -12
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/OrderedRotationAngles.js +10 -2
- package/lib/esm/geometry3d/OrderedRotationAngles.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js +2 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndUnitNormal.js.map +1 -1
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js +7 -0
- package/lib/esm/geometry3d/Plane3dByOriginAndVectors.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js +2 -0
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point2dVector2d.js +4 -0
- package/lib/esm/geometry3d/Point2dVector2d.js.map +1 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js +3 -1
- package/lib/esm/geometry3d/Point3dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -6
- package/lib/esm/geometry3d/Point3dVector3d.js +12 -6
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +5 -5
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PointStreaming.js +12 -4
- package/lib/esm/geometry3d/PointStreaming.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts +2 -2
- package/lib/esm/geometry3d/PolygonOps.js +62 -25
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js +7 -3
- package/lib/esm/geometry3d/PolylineCompressionByEdgeOffset.js.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.d.ts +9 -5
- package/lib/esm/geometry3d/PolylineOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolylineOps.js +12 -5
- package/lib/esm/geometry3d/PolylineOps.js.map +1 -1
- package/lib/esm/geometry3d/Range.js +21 -4
- package/lib/esm/geometry3d/Range.js.map +1 -1
- package/lib/esm/geometry3d/Ray2d.js +2 -0
- package/lib/esm/geometry3d/Ray2d.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js +12 -0
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/ReusableObjectCache.js +4 -0
- package/lib/esm/geometry3d/ReusableObjectCache.js.map +1 -1
- package/lib/esm/geometry3d/Segment1d.js +4 -0
- package/lib/esm/geometry3d/Segment1d.js.map +1 -1
- package/lib/esm/geometry3d/SortablePolygon.js +11 -0
- package/lib/esm/geometry3d/SortablePolygon.js.map +1 -1
- package/lib/esm/geometry3d/Transform.js +3 -0
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js +6 -0
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.js +2 -0
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js +1 -0
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/MomentData.d.ts +72 -73
- package/lib/esm/geometry4d/MomentData.d.ts.map +1 -1
- package/lib/esm/geometry4d/MomentData.js +90 -66
- package/lib/esm/geometry4d/MomentData.js.map +1 -1
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js +6 -0
- package/lib/esm/geometry4d/PlaneByOriginAndVectors4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.js +2 -0
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js +8 -0
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/ClusterableArray.js +29 -13
- package/lib/esm/numerics/ClusterableArray.js.map +1 -1
- package/lib/esm/numerics/Complex.js +2 -0
- package/lib/esm/numerics/Complex.js.map +1 -1
- package/lib/esm/numerics/ConvexPolygon2d.js +3 -0
- package/lib/esm/numerics/ConvexPolygon2d.js.map +1 -1
- package/lib/esm/numerics/Newton.js +59 -4
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/PascalCoefficients.js +1 -1
- package/lib/esm/numerics/PascalCoefficients.js.map +1 -1
- package/lib/esm/numerics/PolarData.js +13 -1
- package/lib/esm/numerics/PolarData.js.map +1 -1
- package/lib/esm/numerics/Polynomials.js +64 -26
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/Quadrature.js +26 -20
- package/lib/esm/numerics/Quadrature.js.map +1 -1
- package/lib/esm/numerics/TriDiagonalSystem.js +11 -0
- package/lib/esm/numerics/TriDiagonalSystem.js.map +1 -1
- package/lib/esm/numerics/UnionFind.js +1 -0
- package/lib/esm/numerics/UnionFind.js.map +1 -1
- package/lib/esm/numerics/UsageSums.js +10 -0
- package/lib/esm/numerics/UsageSums.js.map +1 -1
- package/lib/esm/polyface/AuxData.js +16 -0
- package/lib/esm/polyface/AuxData.js.map +1 -1
- package/lib/esm/polyface/BoxTopology.js +67 -67
- package/lib/esm/polyface/BoxTopology.js.map +1 -1
- package/lib/esm/polyface/FacetFaceData.d.ts +1 -1
- package/lib/esm/polyface/FacetFaceData.js +3 -1
- package/lib/esm/polyface/FacetFaceData.js.map +1 -1
- package/lib/esm/polyface/FacetLocationDetail.js +30 -0
- package/lib/esm/polyface/FacetLocationDetail.js.map +1 -1
- package/lib/esm/polyface/FacetOrientation.js +12 -1
- package/lib/esm/polyface/FacetOrientation.js.map +1 -1
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js +18 -2
- package/lib/esm/polyface/GreedyTriangulationBetweenLineStrings.js.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts +33 -23
- package/lib/esm/polyface/IndexedEdgeMatcher.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedEdgeMatcher.js +63 -33
- package/lib/esm/polyface/IndexedEdgeMatcher.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts +3 -2
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js +11 -2
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts +233 -0
- package/lib/esm/polyface/IndexedPolyfaceWalker.d.ts.map +1 -0
- package/lib/esm/polyface/IndexedPolyfaceWalker.js +349 -0
- package/lib/esm/polyface/IndexedPolyfaceWalker.js.map +1 -0
- package/lib/esm/polyface/Polyface.d.ts +35 -10
- package/lib/esm/polyface/Polyface.d.ts.map +1 -1
- package/lib/esm/polyface/Polyface.js +73 -12
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.d.ts +14 -27
- package/lib/esm/polyface/PolyfaceBuilder.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +48 -80
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js +8 -0
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceData.d.ts +28 -0
- package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceData.js +87 -5
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +47 -7
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/RangeLengthData.js +7 -0
- package/lib/esm/polyface/RangeLengthData.js.map +1 -1
- package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js +12 -0
- package/lib/esm/polyface/RangeTree/LineString3dRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/MinimumValueTester.js +5 -2
- package/lib/esm/polyface/RangeTree/MinimumValueTester.js.map +1 -1
- package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js +12 -0
- package/lib/esm/polyface/RangeTree/Point3dArrayRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js +14 -0
- package/lib/esm/polyface/RangeTree/PolyfaceRangeTreeContext.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js +5 -0
- package/lib/esm/polyface/RangeTree/RangeTreeNode.js.map +1 -1
- package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js +43 -0
- package/lib/esm/polyface/RangeTree/RangeTreeSearchHandlers.js.map +1 -1
- package/lib/esm/polyface/TaggedNumericData.js +8 -0
- package/lib/esm/polyface/TaggedNumericData.js.map +1 -1
- package/lib/esm/polyface/TriangleCandidate.js +3 -0
- package/lib/esm/polyface/TriangleCandidate.js.map +1 -1
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js +7 -0
- package/lib/esm/polyface/multiclip/BuildAverageNormalsContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js +6 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js +3 -0
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js +3 -0
- package/lib/esm/polyface/multiclip/LinearSearchRange2dArray.js.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js +32 -0
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/RangeSearch.js +5 -5
- package/lib/esm/polyface/multiclip/RangeSearch.js.map +1 -1
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js +21 -8
- package/lib/esm/polyface/multiclip/SweepLineStringToFacetContext.js.map +1 -1
- package/lib/esm/polyface/multiclip/XYPointBuckets.js +6 -0
- package/lib/esm/polyface/multiclip/XYPointBuckets.js.map +1 -1
- package/lib/esm/serialization/BGFBAccessors.js +82 -164
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.js +22 -22
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +1 -0
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/DeepCompare.js +17 -17
- package/lib/esm/serialization/DeepCompare.js.map +1 -1
- package/lib/esm/serialization/GeometrySamples.d.ts +5 -5
- package/lib/esm/serialization/GeometrySamples.d.ts.map +1 -1
- package/lib/esm/serialization/GeometrySamples.js +113 -112
- package/lib/esm/serialization/GeometrySamples.js.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.d.ts +1 -2
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/solid/Box.js +7 -2
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.js +6 -2
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.js +4 -2
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.js +5 -2
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.d.ts +26 -23
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
- package/lib/esm/solid/RuledSweep.js +32 -24
- package/lib/esm/solid/RuledSweep.js.map +1 -1
- package/lib/esm/solid/SolidPrimitive.d.ts +12 -11
- package/lib/esm/solid/SolidPrimitive.d.ts.map +1 -1
- package/lib/esm/solid/SolidPrimitive.js +11 -6
- package/lib/esm/solid/SolidPrimitive.js.map +1 -1
- package/lib/esm/solid/Sphere.js +4 -2
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts +24 -15
- package/lib/esm/solid/SweepContour.d.ts.map +1 -1
- package/lib/esm/solid/SweepContour.js +33 -15
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.js +7 -2
- package/lib/esm/solid/TorusPipe.js.map +1 -1
- package/lib/esm/topology/ChainMerge.js +16 -4
- package/lib/esm/topology/ChainMerge.js.map +1 -1
- package/lib/esm/topology/Graph.js +41 -6
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.d.ts +1 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js +5 -1
- package/lib/esm/topology/HalfEdgeGraphFromIndexedLoopsContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSearch.js +2 -0
- package/lib/esm/topology/HalfEdgeGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js +9 -2
- package/lib/esm/topology/HalfEdgeGraphSpineContext.js.map +1 -1
- package/lib/esm/topology/HalfEdgeGraphValidation.js +7 -9
- package/lib/esm/topology/HalfEdgeGraphValidation.js.map +1 -1
- package/lib/esm/topology/HalfEdgeMarkSet.js +5 -0
- package/lib/esm/topology/HalfEdgeMarkSet.js.map +1 -1
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js +6 -0
- package/lib/esm/topology/HalfEdgeNodeXYZUV.js.map +1 -1
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js +1 -0
- package/lib/esm/topology/HalfEdgePointInGraphSearch.js.map +1 -1
- package/lib/esm/topology/HalfEdgePositionDetail.js +16 -0
- package/lib/esm/topology/HalfEdgePositionDetail.js.map +1 -1
- package/lib/esm/topology/HalfEdgePriorityQueue.js +2 -0
- package/lib/esm/topology/HalfEdgePriorityQueue.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js +4 -0
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/MaskManager.js +3 -0
- package/lib/esm/topology/MaskManager.js.map +1 -1
- package/lib/esm/topology/Merging.js +11 -6
- package/lib/esm/topology/Merging.js.map +1 -1
- package/lib/esm/topology/RegularizeFace.js +22 -0
- package/lib/esm/topology/RegularizeFace.js.map +1 -1
- package/lib/esm/topology/SignedDataSummary.js +22 -0
- package/lib/esm/topology/SignedDataSummary.js.map +1 -1
- package/lib/esm/topology/Triangulation.js +21 -11
- package/lib/esm/topology/Triangulation.js.map +1 -1
- package/lib/esm/topology/XYParitySearchContext.js +13 -0
- package/lib/esm/topology/XYParitySearchContext.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionOfConvexClipPlaneSets.js","sourceRoot":"","sources":["../../../src/clipping/UnionOfConvexClipPlaneSets.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 CartesianGeometry\r\n */\r\n\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumberCurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { Clipper, ClipPlaneContainment, ClipUtilities, PolygonClipper } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet, ConvexClipPlaneSetProps } from \"./ConvexClipPlaneSet\";\r\n\r\n/**\r\n * Wire format describing a [[UnionOfConvexClipPlaneSets]].\r\n * @public\r\n */\r\nexport type UnionOfConvexClipPlaneSetsProps = ConvexClipPlaneSetProps[];\r\n\r\n/**\r\n * A collection of ConvexClipPlaneSets.\r\n * * A point is \"in\" the clip plane set if it is \"in\" one or more of the ConvexClipPlaneSet\r\n * * Hence the boolean logic is that the ClipPlaneSet is a UNION of its constituents.\r\n * @public\r\n */\r\nexport class UnionOfConvexClipPlaneSets implements Clipper, PolygonClipper {\r\n private _convexSets: ConvexClipPlaneSet[];\r\n /** (property accessor) Return the (reference to the) array of `ConvexClipPlaneSet` */\r\n public get convexSets(): ConvexClipPlaneSet[] {\r\n return this._convexSets;\r\n }\r\n private constructor() {\r\n this._convexSets = [];\r\n }\r\n /** Return an array with the `toJSON` form of each `ConvexClipPlaneSet` */\r\n public toJSON(): UnionOfConvexClipPlaneSetsProps {\r\n const val: ConvexClipPlaneSetProps[] = [];\r\n for (const convex of this._convexSets)\r\n val.push(convex.toJSON());\r\n return val;\r\n }\r\n /** Convert json `UnionOfConvexClipPlaneSets`, using `setFromJSON`. */\r\n public static fromJSON(\r\n json: UnionOfConvexClipPlaneSetsProps | undefined, result?: UnionOfConvexClipPlaneSets,\r\n ): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n result._convexSets.length = 0;\r\n if (!Array.isArray(json))\r\n return result;\r\n\r\n for (const thisJson of json)\r\n result._convexSets.push(ConvexClipPlaneSet.fromJSON(thisJson));\r\n return result;\r\n }\r\n /** Create a `UnionOfConvexClipPlaneSets` with no members. */\r\n public static createEmpty(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets {\r\n if (result) {\r\n result._convexSets.length = 0;\r\n return result;\r\n }\r\n return new UnionOfConvexClipPlaneSets();\r\n }\r\n /**\r\n * Return true if all member convex sets are almostEqual to corresponding members of other. This includes\r\n * identical order in array.\r\n * @param other clip plane to compare.\r\n */\r\n public isAlmostEqual(other: UnionOfConvexClipPlaneSets): boolean {\r\n if (this._convexSets.length !== other._convexSets.length)\r\n return false;\r\n for (let i = 0; i < this._convexSets.length; i++)\r\n if (!this._convexSets[i].isAlmostEqual(other._convexSets[i]))\r\n return false;\r\n return true;\r\n }\r\n /** Create a `UnionOfConvexClipPlaneSets` with given `ConvexClipPlaneSet` members. */\r\n public static createConvexSets(\r\n convexSets: ConvexClipPlaneSet[], result?: UnionOfConvexClipPlaneSets,\r\n ): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n for (const set of convexSets)\r\n result._convexSets.push(set);\r\n return result;\r\n }\r\n /** Return a deep copy. */\r\n public clone(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n result._convexSets.length = 0;\r\n for (const convexSet of this._convexSets)\r\n result._convexSets.push(convexSet.clone());\r\n return result;\r\n }\r\n /**\r\n * Append `toAdd` to the array of `ConvexClipPlaneSet`.\r\n * * undefined toAdd is ignored.\r\n */\r\n public addConvexSet(toAdd: ConvexClipPlaneSet | undefined) {\r\n if (toAdd)\r\n this._convexSets.push(toAdd);\r\n }\r\n /**\r\n * Test if there is any intersection with a ray defined by origin and direction.\r\n * * Optionally record the range (null or otherwise) in caller-allocated result.\r\n * * If the ray is unbounded inside the clip, result can contain positive or negative\r\n * \"Geometry.largeCoordinateResult\" values.\r\n * * If no result is provide, there are no object allocations.\r\n * @param maximalRange optional Range1d to receive parameters along the ray.\r\n */\r\n public hasIntersectionWithRay(ray: Ray3d, maximalRange?: Range1d): boolean {\r\n if (maximalRange === undefined) {\r\n // if complete result is not requested, return after any hit.\r\n for (const planeSet of this._convexSets) {\r\n if (planeSet.hasIntersectionWithRay(ray))\r\n return true;\r\n }\r\n return false;\r\n }\r\n maximalRange.setNull();\r\n const rangeA = Range1d.createNull();\r\n for (const planeSet of this._convexSets) {\r\n if (planeSet.hasIntersectionWithRay(ray, rangeA))\r\n maximalRange.extendRange(rangeA);\r\n }\r\n return !maximalRange.isNull;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isPointInside (point, tolerance)`.\r\n */\r\n public isPointInside(point: Point3d): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isPointInside(point)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isPointOnOrInside (point, tolerance)`.\r\n */\r\n public isPointOnOrInside(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isPointOnOrInside(point, tolerance))\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isSphereOnOrInside (point, tolerance)`.\r\n */\r\n public isSphereInside(point: Point3d, radius: number) {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isSphereInside(point, radius))\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Test if any part of a line segment is within the volume. */\r\n public isAnyPointInOrOnFromSegment(segment: LineSegment3d): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.announceClippedSegmentIntervals(0.0, 1.0, segment.point0Ref, segment.point1Ref))\r\n return true;\r\n }\r\n return false;\r\n }\r\n // Intervals must be Segment1d array, as there may be multiple intervals along segment that pass through set regions,\r\n // and so splitting the intervals into segments aids in better organization\r\n /** Returns the fractions of the segment that pass through the set region, as 1 dimensional pieces. */\r\n public appendIntervalsFromSegment(segment: LineSegment3d, intervals: Segment1d[]) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.announceClippedSegmentIntervals(0.0, 1.0, segment.point0Ref, segment.point1Ref,\r\n (fraction0: number, fraction1: number) =>\r\n intervals.push(Segment1d.create(fraction0, fraction1)));\r\n }\r\n }\r\n /** Apply `transform` to all the ConvexClipPlaneSet's. */\r\n public transformInPlace(transform: Transform) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.transformInPlace(transform);\r\n }\r\n }\r\n /** Returns 1, 2, or 3 based on whether point is strongly inside, ambiguous, or strongly outside respectively. */\r\n public classifyPointContainment(points: Point3d[], onIsOutside: boolean): number {\r\n for (const convexSet of this._convexSets) {\r\n const thisStatus = convexSet.classifyPointContainment(points, onIsOutside);\r\n if (thisStatus !== ClipPlaneContainment.StronglyOutside)\r\n return thisStatus;\r\n }\r\n return ClipPlaneContainment.StronglyOutside;\r\n }\r\n /**\r\n * Clip a polygon using this ClipPlaneSet, returning new polygon boundaries. Note that each polygon may lie\r\n * next to the previous, or be disconnected.\r\n */\r\n public polygonClip(input: GrowableXYZArray | Point3d[], output: GrowableXYZArray[]) {\r\n output.length = 0;\r\n if (Array.isArray(input))\r\n input = GrowableXYZArray.create(input);\r\n const work = new GrowableXYZArray();\r\n for (const convexSet of this._convexSets) {\r\n const convexSetOutput = new GrowableXYZArray();\r\n convexSet.polygonClip(input, convexSetOutput, work);\r\n if (convexSetOutput.length !== 0)\r\n output.push(convexSetOutput);\r\n }\r\n }\r\n /**\r\n * Announce clipSegment() for each convexSet in this ClipPlaneSet.\r\n * * all clipPlaneSets are inspected.\r\n * * announced intervals are for each individual clipPlaneSet -- adjacent intervals are not consolidated.\r\n * @param f0 active interval start.\r\n * @param f1 active interval end.\r\n * @param pointA line segment start.\r\n * @param pointB line segment end.\r\n * @param announce function to announce interval.\r\n * @returns Return true if any announcements are made.\r\n */\r\n public announceClippedSegmentIntervals(\r\n f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: (fraction0: number, fraction1: number) => void,\r\n ): boolean {\r\n let numAnnounce = 0;\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.announceClippedSegmentIntervals(f0, f1, pointA, pointB, announce))\r\n numAnnounce++;\r\n }\r\n return numAnnounce > 0;\r\n }\r\n private static _clipArcFractionArray = new GrowableFloat64Array();\r\n /**\r\n * Find parts of an arc that are inside any member clipper.\r\n * Announce each with `announce(startFraction, endFraction, this)`\r\n */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n const breaks = UnionOfConvexClipPlaneSets._clipArcFractionArray;\r\n breaks.clear();\r\n for (const convexSet of this._convexSets) {\r\n for (const clipPlane of convexSet.planes) {\r\n clipPlane.appendIntersectionRadians(arc, breaks);\r\n }\r\n }\r\n arc.sweep.radiansArrayToPositivePeriodicFractions(breaks);\r\n return ClipUtilities.selectIntervals01(arc, breaks, this, announce);\r\n }\r\n /**\r\n * Collect the output from computePlanePlanePlaneIntersections in all the contained convex sets.\r\n * @param transform (optional) transform to apply to the points.\r\n * @param points (optional) array to which computed points are to be added.\r\n * @param range (optional) range to be extended by the computed points.\r\n * @param transform (optional) transform to apply to the accepted points.\r\n * @param testContainment if true, test each point to see if it is within the convex set (send false if confident\r\n * that the convex set is rectilinear set such as a slab. Send true if chiseled corners are possible).\r\n * @returns number of points.\r\n */\r\n public computePlanePlanePlaneIntersectionsInAllConvexSets(\r\n points: Point3d[] | undefined, rangeToExtend: Range3d | undefined, transform?: Transform, testContainment: boolean = true,\r\n ): number {\r\n let n = 0;\r\n for (const convexSet of this._convexSets) {\r\n n += convexSet.computePlanePlanePlaneIntersections(points, rangeToExtend, transform, testContainment);\r\n }\r\n return 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\r\n * 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 // (no inversion -- no failures possible)\r\n for (const convexSet of this._convexSets) {\r\n convexSet.multiplyPlanesByMatrix4d(matrix, false, transpose);\r\n }\r\n return true;\r\n }\r\n /** Recursively call `setInvisible` on all member convex sets. */\r\n public setInvisible(invisible: boolean) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.setInvisible(invisible);\r\n }\r\n }\r\n /** add convex sets that accept points below `zLow` and above `zHigh` */\r\n public addOutsideZClipSets(invisible: boolean, zLow?: number, zHigh?: number) {\r\n if (zLow) {\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n convexSet.addZClipPlanes(invisible, zLow);\r\n this._convexSets.push(convexSet);\r\n }\r\n if (zHigh) {\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n convexSet.addZClipPlanes(invisible, undefined, zHigh);\r\n this._convexSets.push(convexSet);\r\n }\r\n }\r\n /** Move convex sets from source.*/\r\n public takeConvexSets(source: UnionOfConvexClipPlaneSets) {\r\n let convexSet;\r\n while ((undefined !== (convexSet = source._convexSets.pop()))) {\r\n this._convexSets.push(convexSet);\r\n }\r\n }\r\n /**\r\n * Implement appendPolygonClip, as defined in interface PolygonClipper.\r\n * @param xyz convex polygon. This is not changed.\r\n * @param insideFragments Array to receive \"inside\" fragments. Each fragment is a GrowableXYZArray grabbed from\r\n * the cache. This is NOT cleared.\r\n * @param outsideFragments Array to receive \"outside\" fragments. Each fragment is a GrowableXYZArray grabbed from\r\n * the cache. This is NOT cleared.\r\n * @param arrayCache cache for reusable GrowableXYZArray.\r\n */\r\n public appendPolygonClip(\r\n xyz: IndexedXYZCollection,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache,\r\n ): void {\r\n const oldOutsideCount = outsideFragments.length;\r\n const oldInsideCount = insideFragments.length;\r\n let carryForwardA = [arrayCache.grabAndFill(xyz)];\r\n let carryForwardB: GrowableXYZArray[] = [];\r\n let tempAB;\r\n let shard;\r\n // At each convex set, carryForwardA is all the fragments that have been outside all previous convex sets.\r\n // Clip each such fragment to the current set, sending the outside parts to carryForwardB, which will got to the next clipper\r\n // The final surviving carryForward really is out.\r\n for (const c of this._convexSets) {\r\n while (undefined !== (shard = carryForwardA.pop())) {\r\n c.appendPolygonClip(shard, insideFragments, 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 outsideFragments.push(shard);\r\n }\r\n if (outsideFragments.length === oldOutsideCount)\r\n ClipUtilities.restoreSingletonInPlaceOfMultipleShards(insideFragments, oldInsideCount, xyz, arrayCache);\r\n else if (insideFragments.length === oldInsideCount)\r\n ClipUtilities.restoreSingletonInPlaceOfMultipleShards(outsideFragments, oldOutsideCount, xyz, arrayCache);\r\n }\r\n}\r\n\r\n/* FUNCTIONS SKIPPED DUE TO BSPLINES, VU, OR NON-USAGE IN NATIVE CODE----------------------------------------------------------------\r\n\r\nInvolves vu: skipping for now...\r\n public fromSweptPolygon(points: Point3d[], directions: Vector3d[]): ClipPlaneSet;\r\n public parseConcavePolygonPlanes(...)\r\n\r\nUses bsplines... skipping for now:\r\n public appendIntervalsClipPlaneSetFromCurve();\r\n\r\nUses bsplines... skipping for now:\r\n public isAnyPointInOrOnFrom();\r\n\r\nSkipped fromSweptPolygon(...), which is overloaded function from first, due to presence of vu\r\n public fromSweptPolygon(points: Point3d[], directions: Vector3d[], shapes: Point3d[])\r\n*/\r\n"]}
|
|
1
|
+
{"version":3,"file":"UnionOfConvexClipPlaneSets.js","sourceRoot":"","sources":["../../../src/clipping/UnionOfConvexClipPlaneSets.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 CartesianGeometry\r\n */\r\n\r\nimport { Arc3d } from \"../curve/Arc3d\";\r\nimport { AnnounceNumberNumberCurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { LineSegment3d } from \"../curve/LineSegment3d\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GrowableFloat64Array } from \"../geometry3d/GrowableFloat64Array\";\r\nimport { GrowableXYZArray } from \"../geometry3d/GrowableXYZArray\";\r\nimport { IndexedXYZCollection } from \"../geometry3d/IndexedXYZCollection\";\r\nimport { Point3d } from \"../geometry3d/Point3dVector3d\";\r\nimport { Range1d, Range3d } from \"../geometry3d/Range\";\r\nimport { Ray3d } from \"../geometry3d/Ray3d\";\r\nimport { GrowableXYZArrayCache } from \"../geometry3d/ReusableObjectCache\";\r\nimport { Segment1d } from \"../geometry3d/Segment1d\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { Matrix4d } from \"../geometry4d/Matrix4d\";\r\nimport { Clipper, ClipPlaneContainment, ClipUtilities, PolygonClipper } from \"./ClipUtils\";\r\nimport { ConvexClipPlaneSet, ConvexClipPlaneSetProps } from \"./ConvexClipPlaneSet\";\r\n\r\n/**\r\n * Wire format describing a [[UnionOfConvexClipPlaneSets]].\r\n * @public\r\n */\r\nexport type UnionOfConvexClipPlaneSetsProps = ConvexClipPlaneSetProps[];\r\n\r\n/**\r\n * A collection of ConvexClipPlaneSets.\r\n * * A point is \"in\" the clip plane set if it is \"in\" one or more of the ConvexClipPlaneSet\r\n * * Hence the boolean logic is that the ClipPlaneSet is a UNION of its constituents.\r\n * @public\r\n */\r\nexport class UnionOfConvexClipPlaneSets implements Clipper, PolygonClipper {\r\n private _convexSets: ConvexClipPlaneSet[];\r\n /** (property accessor) Return the (reference to the) array of `ConvexClipPlaneSet` */\r\n public get convexSets(): ConvexClipPlaneSet[] {\r\n return this._convexSets;\r\n }\r\n private constructor() {\r\n this._convexSets = [];\r\n }\r\n /** Return an array with the `toJSON` form of each `ConvexClipPlaneSet` */\r\n public toJSON(): UnionOfConvexClipPlaneSetsProps {\r\n const val: ConvexClipPlaneSetProps[] = [];\r\n for (const convex of this._convexSets)\r\n val.push(convex.toJSON());\r\n return val;\r\n }\r\n /** Convert json `UnionOfConvexClipPlaneSets`, using `setFromJSON`. */\r\n public static fromJSON(\r\n json: UnionOfConvexClipPlaneSetsProps | undefined, result?: UnionOfConvexClipPlaneSets,\r\n ): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n result._convexSets.length = 0;\r\n if (!Array.isArray(json))\r\n return result;\r\n\r\n for (const thisJson of json)\r\n result._convexSets.push(ConvexClipPlaneSet.fromJSON(thisJson));\r\n return result;\r\n }\r\n /** Create a `UnionOfConvexClipPlaneSets` with no members. */\r\n public static createEmpty(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets {\r\n if (result) {\r\n result._convexSets.length = 0;\r\n return result;\r\n }\r\n return new UnionOfConvexClipPlaneSets();\r\n }\r\n /**\r\n * Return true if all member convex sets are almostEqual to corresponding members of other. This includes\r\n * identical order in array.\r\n * @param other clip plane to compare.\r\n */\r\n public isAlmostEqual(other: UnionOfConvexClipPlaneSets): boolean {\r\n if (this._convexSets.length !== other._convexSets.length)\r\n return false;\r\n for (let i = 0; i < this._convexSets.length; i++)\r\n if (!this._convexSets[i].isAlmostEqual(other._convexSets[i]))\r\n return false;\r\n return true;\r\n }\r\n /** Create a `UnionOfConvexClipPlaneSets` with given `ConvexClipPlaneSet` members. */\r\n public static createConvexSets(\r\n convexSets: ConvexClipPlaneSet[], result?: UnionOfConvexClipPlaneSets,\r\n ): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n for (const set of convexSets)\r\n result._convexSets.push(set);\r\n return result;\r\n }\r\n /** Return a deep copy. */\r\n public clone(result?: UnionOfConvexClipPlaneSets): UnionOfConvexClipPlaneSets {\r\n result = result ? result : new UnionOfConvexClipPlaneSets();\r\n result._convexSets.length = 0;\r\n for (const convexSet of this._convexSets)\r\n result._convexSets.push(convexSet.clone());\r\n return result;\r\n }\r\n /**\r\n * Append `toAdd` to the array of `ConvexClipPlaneSet`.\r\n * * undefined toAdd is ignored.\r\n */\r\n public addConvexSet(toAdd: ConvexClipPlaneSet | undefined) {\r\n if (toAdd)\r\n this._convexSets.push(toAdd);\r\n }\r\n /**\r\n * Test if there is any intersection with a ray defined by origin and direction.\r\n * * Optionally record the range (null or otherwise) in caller-allocated result.\r\n * * If the ray is unbounded inside the clip, result can contain positive or negative\r\n * \"Geometry.largeCoordinateResult\" values.\r\n * * If no result is provide, there are no object allocations.\r\n * @param maximalRange optional Range1d to receive parameters along the ray.\r\n */\r\n public hasIntersectionWithRay(ray: Ray3d, maximalRange?: Range1d): boolean {\r\n if (maximalRange === undefined) {\r\n // if complete result is not requested, return after any hit.\r\n for (const planeSet of this._convexSets) {\r\n if (planeSet.hasIntersectionWithRay(ray))\r\n return true;\r\n }\r\n return false;\r\n }\r\n maximalRange.setNull();\r\n const rangeA = Range1d.createNull();\r\n for (const planeSet of this._convexSets) {\r\n if (planeSet.hasIntersectionWithRay(ray, rangeA))\r\n maximalRange.extendRange(rangeA);\r\n }\r\n return !maximalRange.isNull;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isPointInside (point, tolerance)`.\r\n */\r\n public isPointInside(point: Point3d): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isPointInside(point)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isPointOnOrInside (point, tolerance)`.\r\n */\r\n public isPointOnOrInside(point: Point3d, tolerance: number = Geometry.smallMetricDistance): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isPointOnOrInside(point, tolerance))\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Return true if true is returned for any contained convex set returns true for\r\n * `convexSet.isSphereOnOrInside (point, tolerance)`.\r\n */\r\n public isSphereInside(point: Point3d, radius: number) {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.isSphereInside(point, radius))\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** Test if any part of a line segment is within the volume. */\r\n public isAnyPointInOrOnFromSegment(segment: LineSegment3d): boolean {\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.announceClippedSegmentIntervals(0.0, 1.0, segment.point0Ref, segment.point1Ref))\r\n return true;\r\n }\r\n return false;\r\n }\r\n // Intervals must be Segment1d array, as there may be multiple intervals along segment that pass through set regions,\r\n // and so splitting the intervals into segments aids in better organization\r\n /** Returns the fractions of the segment that pass through the set region, as 1 dimensional pieces. */\r\n public appendIntervalsFromSegment(segment: LineSegment3d, intervals: Segment1d[]) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.announceClippedSegmentIntervals(0.0, 1.0, segment.point0Ref, segment.point1Ref,\r\n (fraction0: number, fraction1: number) =>\r\n intervals.push(Segment1d.create(fraction0, fraction1)));\r\n }\r\n }\r\n /** Apply `transform` to all the ConvexClipPlaneSet's. */\r\n public transformInPlace(transform: Transform) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.transformInPlace(transform);\r\n }\r\n }\r\n /** Returns 1, 2, or 3 based on whether point is strongly inside, ambiguous, or strongly outside respectively. */\r\n public classifyPointContainment(points: Point3d[], onIsOutside: boolean): number {\r\n for (const convexSet of this._convexSets) {\r\n const thisStatus = convexSet.classifyPointContainment(points, onIsOutside);\r\n if (thisStatus !== ClipPlaneContainment.StronglyOutside)\r\n return thisStatus;\r\n }\r\n return ClipPlaneContainment.StronglyOutside;\r\n }\r\n /**\r\n * Clip a polygon using this ClipPlaneSet, returning new polygon boundaries. Note that each polygon may lie\r\n * next to the previous, or be disconnected.\r\n */\r\n public polygonClip(input: GrowableXYZArray | Point3d[], output: GrowableXYZArray[]) {\r\n output.length = 0;\r\n if (Array.isArray(input))\r\n input = GrowableXYZArray.create(input);\r\n const work = new GrowableXYZArray();\r\n for (const convexSet of this._convexSets) {\r\n const convexSetOutput = new GrowableXYZArray();\r\n convexSet.polygonClip(input, convexSetOutput, work);\r\n if (convexSetOutput.length !== 0)\r\n output.push(convexSetOutput);\r\n }\r\n }\r\n /**\r\n * Announce clipSegment() for each convexSet in this ClipPlaneSet.\r\n * * all clipPlaneSets are inspected.\r\n * * announced intervals are for each individual clipPlaneSet -- adjacent intervals are not consolidated.\r\n * @param f0 active interval start.\r\n * @param f1 active interval end.\r\n * @param pointA line segment start.\r\n * @param pointB line segment end.\r\n * @param announce function to announce interval.\r\n * @returns Return true if any announcements are made.\r\n */\r\n public announceClippedSegmentIntervals(\r\n f0: number, f1: number, pointA: Point3d, pointB: Point3d, announce?: (fraction0: number, fraction1: number) => void,\r\n ): boolean {\r\n let numAnnounce = 0;\r\n for (const convexSet of this._convexSets) {\r\n if (convexSet.announceClippedSegmentIntervals(f0, f1, pointA, pointB, announce))\r\n numAnnounce++;\r\n }\r\n return numAnnounce > 0;\r\n }\r\n private static _clipArcFractionArray = new GrowableFloat64Array();\r\n /**\r\n * Find parts of an arc that are inside any member clipper.\r\n * Announce each with `announce(startFraction, endFraction, this)`\r\n */\r\n public announceClippedArcIntervals(arc: Arc3d, announce?: AnnounceNumberNumberCurvePrimitive): boolean {\r\n const breaks = UnionOfConvexClipPlaneSets._clipArcFractionArray;\r\n breaks.clear();\r\n for (const convexSet of this._convexSets) {\r\n for (const clipPlane of convexSet.planes) {\r\n clipPlane.appendIntersectionRadians(arc, breaks);\r\n }\r\n }\r\n arc.sweep.radiansArrayToPositivePeriodicFractions(breaks);\r\n return ClipUtilities.selectIntervals01(arc, breaks, this, announce);\r\n }\r\n /**\r\n * Collect the output from computePlanePlanePlaneIntersections in all the contained convex sets.\r\n * @param transform (optional) transform to apply to the points.\r\n * @param points (optional) array to which computed points are to be added.\r\n * @param range (optional) range to be extended by the computed points.\r\n * @param transform (optional) transform to apply to the accepted points.\r\n * @param testContainment if true, test each point to see if it is within the convex set (send false if confident\r\n * that the convex set is rectilinear set such as a slab. Send true if chiseled corners are possible).\r\n * @returns number of points.\r\n */\r\n public computePlanePlanePlaneIntersectionsInAllConvexSets(\r\n points: Point3d[] | undefined, rangeToExtend: Range3d | undefined, transform?: Transform, testContainment: boolean = true,\r\n ): number {\r\n let n = 0;\r\n for (const convexSet of this._convexSets) {\r\n n += convexSet.computePlanePlanePlaneIntersections(points, rangeToExtend, transform, testContainment);\r\n }\r\n return 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\r\n * 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 // (no inversion -- no failures possible)\r\n for (const convexSet of this._convexSets) {\r\n convexSet.multiplyPlanesByMatrix4d(matrix, false, transpose);\r\n }\r\n return true;\r\n }\r\n /** Recursively call `setInvisible` on all member convex sets. */\r\n public setInvisible(invisible: boolean) {\r\n for (const convexSet of this._convexSets) {\r\n convexSet.setInvisible(invisible);\r\n }\r\n }\r\n /** add convex sets that accept points below `zLow` and above `zHigh` */\r\n public addOutsideZClipSets(invisible: boolean, zLow?: number, zHigh?: number) {\r\n if (zLow) {\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n convexSet.addZClipPlanes(invisible, zLow);\r\n this._convexSets.push(convexSet);\r\n }\r\n if (zHigh) {\r\n const convexSet = ConvexClipPlaneSet.createEmpty();\r\n convexSet.addZClipPlanes(invisible, undefined, zHigh);\r\n this._convexSets.push(convexSet);\r\n }\r\n }\r\n /** Move convex sets from source.*/\r\n public takeConvexSets(source: UnionOfConvexClipPlaneSets) {\r\n let convexSet;\r\n while ((undefined !== (convexSet = source._convexSets.pop()))) {\r\n this._convexSets.push(convexSet);\r\n }\r\n }\r\n /**\r\n * Implement appendPolygonClip, as defined in interface PolygonClipper.\r\n * @param xyz convex polygon. This is not changed.\r\n * @param insideFragments Array to receive \"inside\" fragments. Each fragment is a GrowableXYZArray grabbed from\r\n * the cache. This is NOT cleared.\r\n * @param outsideFragments Array to receive \"outside\" fragments. Each fragment is a GrowableXYZArray grabbed from\r\n * the cache. This is NOT cleared.\r\n * @param arrayCache cache for reusable GrowableXYZArray.\r\n */\r\n public appendPolygonClip(\r\n xyz: IndexedXYZCollection,\r\n insideFragments: GrowableXYZArray[],\r\n outsideFragments: GrowableXYZArray[],\r\n arrayCache: GrowableXYZArrayCache,\r\n ): void {\r\n const oldOutsideCount = outsideFragments.length;\r\n const oldInsideCount = insideFragments.length;\r\n let carryForwardA = [arrayCache.grabAndFill(xyz)];\r\n let carryForwardB: GrowableXYZArray[] = [];\r\n let tempAB;\r\n let shard;\r\n // At each convex set, carryForwardA is all the fragments that have been outside all previous convex sets.\r\n // Clip each such fragment to the current set, sending the outside parts to carryForwardB, which will got to the next clipper\r\n // The final surviving carryForward really is out.\r\n for (const c of this._convexSets) {\r\n while (undefined !== (shard = carryForwardA.pop())) {\r\n c.appendPolygonClip(shard, insideFragments, 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 outsideFragments.push(shard);\r\n }\r\n if (outsideFragments.length === oldOutsideCount)\r\n ClipUtilities.restoreSingletonInPlaceOfMultipleShards(insideFragments, oldInsideCount, xyz, arrayCache);\r\n else if (insideFragments.length === oldInsideCount)\r\n ClipUtilities.restoreSingletonInPlaceOfMultipleShards(outsideFragments, oldOutsideCount, xyz, arrayCache);\r\n }\r\n}\r\n\r\n/* FUNCTIONS SKIPPED DUE TO BSPLINES, VU, OR NON-USAGE IN NATIVE CODE----------------------------------------------------------------\r\n\r\nInvolves vu: skipping for now...\r\n public fromSweptPolygon(points: Point3d[], directions: Vector3d[]): ClipPlaneSet;\r\n public parseConcavePolygonPlanes(...)\r\n\r\nUses bsplines... skipping for now:\r\n public appendIntervalsClipPlaneSetFromCurve();\r\n\r\nUses bsplines... skipping for now:\r\n public isAnyPointInOrOnFrom();\r\n\r\nSkipped fromSweptPolygon(...), which is overloaded function from first, due to presence of vu\r\n public fromSweptPolygon(points: Point3d[], directions: Vector3d[], shapes: Point3d[])\r\n*/\r\n"]}
|
|
@@ -14,6 +14,9 @@ const ClipPlane_1 = require("../ClipPlane");
|
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
16
|
class LineStringOffsetClipperContext {
|
|
17
|
+
_positiveOffsetLeft;
|
|
18
|
+
_positiveOffsetRight;
|
|
19
|
+
_turnDegrees;
|
|
17
20
|
constructor(positiveOffsetLeft, positiveOffsetRight) {
|
|
18
21
|
this._positiveOffsetLeft = positiveOffsetLeft;
|
|
19
22
|
this._positiveOffsetRight = positiveOffsetRight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineStringOffsetClipperContext.js","sourceRoot":"","sources":["../../../../src/clipping/internalContexts/LineStringOffsetClipperContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Point3d, Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { UnionOfConvexClipPlaneSets } from \"../UnionOfConvexClipPlaneSets\";\r\nimport { ConvexClipPlaneSet } from \"../ConvexClipPlaneSet\";\r\nimport { ClipPlane } from \"../ClipPlane\";\r\nimport { IndexedXYZCollection } from \"../../geometry3d/IndexedXYZCollection\";\r\n/**\r\n * Class for building clip sets for offset regions.\r\n * @internal\r\n */\r\nexport class LineStringOffsetClipperContext {\r\n private _positiveOffsetLeft: number;\r\n private _positiveOffsetRight: number;\r\n private _turnDegrees: number;\r\n private constructor(positiveOffsetLeft: number, positiveOffsetRight: number) {\r\n this._positiveOffsetLeft = positiveOffsetLeft;\r\n this._positiveOffsetRight = positiveOffsetRight;\r\n this._turnDegrees = 60.0;\r\n }\r\n /**\r\n * Create a unit vector from point i to point i+1.\r\n * If closed, do point indexing with\r\n * * index less than 0 get final segment\r\n * * index at or beyond points.length-1 wraps to first segment\r\n * @param points\r\n * @param index0\r\n * @param closed indicates that first and last points are identical and need wrap logic.\r\n */\r\n public static createUnit(\r\n points: IndexedXYZCollection, index0: number, closed: boolean, xyOnly: boolean = true,\r\n ): Vector3d | undefined {\r\n // pick two indices of active points, allowing for wrap if needed:\r\n // normally use index0 and index0 + 1\r\n // but apply wrap if appropriate, and shift ahead of needed.\r\n let k0 = index0;\r\n let k1 = index0 + 1;\r\n const last = points.length - 1;\r\n if (closed) {\r\n if (index0 < 0) {\r\n k0 = last - 1; k1 = last;\r\n } else if (index0 >= last) {\r\n k0 = 0; k1 = 1;\r\n }\r\n } else {\r\n if (index0 === 0) {\r\n k0 = 0; k1 = 1;\r\n } else if (k1 > last) {\r\n k0 = last - 1;\r\n k1 = last;\r\n }\r\n }\r\n const result = points.vectorIndexIndex(k0, k1);\r\n if (result) {\r\n if (xyOnly)\r\n result.z = 0.0;\r\n return result.normalize(result);\r\n }\r\n return undefined;\r\n }\r\n private static createDirectedPlane(\r\n basePoint: Point3d, vector: Vector3d, shift: number, normalScale: number, interior: boolean = false,\r\n ): ClipPlane | undefined {\r\n return ClipPlane.createNormalAndPointXYZXYZ(\r\n vector.x * normalScale, vector.y * normalScale, vector.z * normalScale,\r\n basePoint.x + shift * vector.x, basePoint.y + shift * vector.y, basePoint.z + shift * vector.z,\r\n interior, interior,\r\n );\r\n }\r\n /**\r\n * Create (if needed) the chamfer cutback plane for a turn.\r\n * @param clipSet set to receive the plane\r\n * @param point central point\r\n * @param unitA incoming vector\r\n * @param unitB outgoing vector\r\n */\r\n private createChamferCut(clipSet: ConvexClipPlaneSet, point: Point3d, unitA: Vector3d, unitB: Vector3d) {\r\n const degreesA = unitA.angleToXY(unitB).degrees;\r\n if (Math.abs(degreesA) > this._turnDegrees) {\r\n const perpAB = unitA.interpolate(0.5, unitB);\r\n perpAB.rotate90CCWXY(perpAB);\r\n perpAB.normalizeInPlace();\r\n if (degreesA > 0)\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(point, perpAB, -this._positiveOffsetRight, 1.0, false),\r\n );\r\n else\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(point, perpAB, this._positiveOffsetLeft, -1.0, false),\r\n );\r\n }\r\n }\r\n private createOffsetFromSegment(\r\n pointA: Point3d,\r\n pointB: Point3d,\r\n unitA: Vector3d | undefined,\r\n unitB: Vector3d | undefined,\r\n unitC: Vector3d | undefined,\r\n ): ConvexClipPlaneSet | undefined {\r\n if (unitB === undefined)\r\n return undefined;\r\n if (unitA === undefined)\r\n unitA = unitB;\r\n if (unitC === undefined)\r\n unitC = unitB;\r\n const unitAB = unitA.interpolate(0.5, unitB);\r\n unitAB.normalizeInPlace();\r\n const perpB = unitB.rotate90CCWXY();\r\n const unitBC = unitB.interpolate(0.5, unitC);\r\n unitBC.normalizeInPlace();\r\n const clipSet = ConvexClipPlaneSet.createEmpty();\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, perpB, this._positiveOffsetLeft, -1.0, false),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, perpB, -this._positiveOffsetRight, 1.0, false),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, unitAB, 0, 1.0, true),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointB, unitBC, 0, -1.0, true),\r\n );\r\n this.createChamferCut(clipSet, pointA, unitA, unitB);\r\n this.createChamferCut(clipSet, pointB, unitB, unitC);\r\n /*\r\n const degreesA = unitA.angleToXY(unitB).degrees;\r\n if (Math.abs(degreesA) > this._turnDegrees) {\r\n const perpAB = unitA.interpolate(0.5, unitB);\r\n perpAB.rotate90CCWXY(perpAB);\r\n perpAB.normalizeInPlace();\r\n if (degreesA > 0)\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointA, perpAB, -this._positiveOffsetRight, 1.0));\r\n else\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointA, perpAB, -this._positiveOffsetLeft, -1.0));\r\n }\r\n const degreesB = unitB.angleToXY(unitC).degrees;\r\n if (Math.abs(degreesB) > this._turnDegrees) {\r\n const perpBC = unitB.interpolate(0.5, unitC);\r\n perpBC.rotate90CCWXY(perpBC);\r\n perpBC.normalizeInPlace();\r\n if (degreesB > 0)\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointB, perpBC, -this._positiveOffsetRight, 1.0));\r\n else\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointB, perpBC, -this._positiveOffsetLeft, -1.0));\r\n }\r\n */\r\n return clipSet;\r\n }\r\n /**\r\n * @param points\r\n * @param positiveOffsetLeft offset to left. 0 is clip on the path.\r\n * @param positiveOffsetRight offset to the right. 0 is clip on the path.\r\n * @param z0 z for lower clipping plane. If undefined, unbounded in positive z\r\n * @param z1 z for upper clipping plane. If undefined, unbounded in negative z.\r\n */\r\n public static createClipBetweenOffsets(\r\n points: IndexedXYZCollection,\r\n positiveOffsetLeft: number,\r\n positiveOffsetRight: number,\r\n z0: number | undefined,\r\n z1: number | undefined,\r\n ): UnionOfConvexClipPlaneSets {\r\n const context = new LineStringOffsetClipperContext(positiveOffsetLeft, positiveOffsetRight);\r\n const result = UnionOfConvexClipPlaneSets.createEmpty();\r\n if (points.length > 1) {\r\n const closed = Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, points.length - 1)!);\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const unitVectorA = this.createUnit(points, i - 1, closed);\r\n const unitVectorB = this.createUnit(points, i, closed);\r\n const unitVectorC = this.createUnit(points, i + 1, closed);\r\n const clipSet = context.createOffsetFromSegment(points.getPoint3dAtUncheckedPointIndex(i),\r\n points.getPoint3dAtUncheckedPointIndex(i + 1), unitVectorA, unitVectorB, unitVectorC);\r\n clipSet?.addZClipPlanes(false, z0, z1);\r\n if (clipSet)\r\n result.addConvexSet(clipSet);\r\n }\r\n } else {\r\n // make a singleton clipper with the z values.\r\n const clipSet = ConvexClipPlaneSet.createEmpty();\r\n clipSet?.addZClipPlanes(false, z0, z1);\r\n if (clipSet.planes.length > 0)\r\n result.addConvexSet(clipSet);\r\n }\r\n return result;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"LineStringOffsetClipperContext.js","sourceRoot":"","sources":["../../../../src/clipping/internalContexts/LineStringOffsetClipperContext.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Geometry } from \"../../Geometry\";\r\nimport { Point3d, Vector3d } from \"../../geometry3d/Point3dVector3d\";\r\nimport { UnionOfConvexClipPlaneSets } from \"../UnionOfConvexClipPlaneSets\";\r\nimport { ConvexClipPlaneSet } from \"../ConvexClipPlaneSet\";\r\nimport { ClipPlane } from \"../ClipPlane\";\r\nimport { IndexedXYZCollection } from \"../../geometry3d/IndexedXYZCollection\";\r\n/**\r\n * Class for building clip sets for offset regions.\r\n * @internal\r\n */\r\nexport class LineStringOffsetClipperContext {\r\n private _positiveOffsetLeft: number;\r\n private _positiveOffsetRight: number;\r\n private _turnDegrees: number;\r\n private constructor(positiveOffsetLeft: number, positiveOffsetRight: number) {\r\n this._positiveOffsetLeft = positiveOffsetLeft;\r\n this._positiveOffsetRight = positiveOffsetRight;\r\n this._turnDegrees = 60.0;\r\n }\r\n /**\r\n * Create a unit vector from point i to point i+1.\r\n * If closed, do point indexing with\r\n * * index less than 0 get final segment\r\n * * index at or beyond points.length-1 wraps to first segment\r\n * @param points\r\n * @param index0\r\n * @param closed indicates that first and last points are identical and need wrap logic.\r\n */\r\n public static createUnit(\r\n points: IndexedXYZCollection, index0: number, closed: boolean, xyOnly: boolean = true,\r\n ): Vector3d | undefined {\r\n // pick two indices of active points, allowing for wrap if needed:\r\n // normally use index0 and index0 + 1\r\n // but apply wrap if appropriate, and shift ahead of needed.\r\n let k0 = index0;\r\n let k1 = index0 + 1;\r\n const last = points.length - 1;\r\n if (closed) {\r\n if (index0 < 0) {\r\n k0 = last - 1; k1 = last;\r\n } else if (index0 >= last) {\r\n k0 = 0; k1 = 1;\r\n }\r\n } else {\r\n if (index0 === 0) {\r\n k0 = 0; k1 = 1;\r\n } else if (k1 > last) {\r\n k0 = last - 1;\r\n k1 = last;\r\n }\r\n }\r\n const result = points.vectorIndexIndex(k0, k1);\r\n if (result) {\r\n if (xyOnly)\r\n result.z = 0.0;\r\n return result.normalize(result);\r\n }\r\n return undefined;\r\n }\r\n private static createDirectedPlane(\r\n basePoint: Point3d, vector: Vector3d, shift: number, normalScale: number, interior: boolean = false,\r\n ): ClipPlane | undefined {\r\n return ClipPlane.createNormalAndPointXYZXYZ(\r\n vector.x * normalScale, vector.y * normalScale, vector.z * normalScale,\r\n basePoint.x + shift * vector.x, basePoint.y + shift * vector.y, basePoint.z + shift * vector.z,\r\n interior, interior,\r\n );\r\n }\r\n /**\r\n * Create (if needed) the chamfer cutback plane for a turn.\r\n * @param clipSet set to receive the plane\r\n * @param point central point\r\n * @param unitA incoming vector\r\n * @param unitB outgoing vector\r\n */\r\n private createChamferCut(clipSet: ConvexClipPlaneSet, point: Point3d, unitA: Vector3d, unitB: Vector3d) {\r\n const degreesA = unitA.angleToXY(unitB).degrees;\r\n if (Math.abs(degreesA) > this._turnDegrees) {\r\n const perpAB = unitA.interpolate(0.5, unitB);\r\n perpAB.rotate90CCWXY(perpAB);\r\n perpAB.normalizeInPlace();\r\n if (degreesA > 0)\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(point, perpAB, -this._positiveOffsetRight, 1.0, false),\r\n );\r\n else\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(point, perpAB, this._positiveOffsetLeft, -1.0, false),\r\n );\r\n }\r\n }\r\n private createOffsetFromSegment(\r\n pointA: Point3d,\r\n pointB: Point3d,\r\n unitA: Vector3d | undefined,\r\n unitB: Vector3d | undefined,\r\n unitC: Vector3d | undefined,\r\n ): ConvexClipPlaneSet | undefined {\r\n if (unitB === undefined)\r\n return undefined;\r\n if (unitA === undefined)\r\n unitA = unitB;\r\n if (unitC === undefined)\r\n unitC = unitB;\r\n const unitAB = unitA.interpolate(0.5, unitB);\r\n unitAB.normalizeInPlace();\r\n const perpB = unitB.rotate90CCWXY();\r\n const unitBC = unitB.interpolate(0.5, unitC);\r\n unitBC.normalizeInPlace();\r\n const clipSet = ConvexClipPlaneSet.createEmpty();\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, perpB, this._positiveOffsetLeft, -1.0, false),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, perpB, -this._positiveOffsetRight, 1.0, false),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointA, unitAB, 0, 1.0, true),\r\n );\r\n clipSet.addPlaneToConvexSet(\r\n LineStringOffsetClipperContext.createDirectedPlane(pointB, unitBC, 0, -1.0, true),\r\n );\r\n this.createChamferCut(clipSet, pointA, unitA, unitB);\r\n this.createChamferCut(clipSet, pointB, unitB, unitC);\r\n /*\r\n const degreesA = unitA.angleToXY(unitB).degrees;\r\n if (Math.abs(degreesA) > this._turnDegrees) {\r\n const perpAB = unitA.interpolate(0.5, unitB);\r\n perpAB.rotate90CCWXY(perpAB);\r\n perpAB.normalizeInPlace();\r\n if (degreesA > 0)\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointA, perpAB, -this._positiveOffsetRight, 1.0));\r\n else\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointA, perpAB, -this._positiveOffsetLeft, -1.0));\r\n }\r\n const degreesB = unitB.angleToXY(unitC).degrees;\r\n if (Math.abs(degreesB) > this._turnDegrees) {\r\n const perpBC = unitB.interpolate(0.5, unitC);\r\n perpBC.rotate90CCWXY(perpBC);\r\n perpBC.normalizeInPlace();\r\n if (degreesB > 0)\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointB, perpBC, -this._positiveOffsetRight, 1.0));\r\n else\r\n clipSet.addPlaneToConvexSet(BuildingCodeRegionOffsetsOps.createDirectedPlane(pointB, perpBC, -this._positiveOffsetLeft, -1.0));\r\n }\r\n */\r\n return clipSet;\r\n }\r\n /**\r\n * @param points\r\n * @param positiveOffsetLeft offset to left. 0 is clip on the path.\r\n * @param positiveOffsetRight offset to the right. 0 is clip on the path.\r\n * @param z0 z for lower clipping plane. If undefined, unbounded in positive z\r\n * @param z1 z for upper clipping plane. If undefined, unbounded in negative z.\r\n */\r\n public static createClipBetweenOffsets(\r\n points: IndexedXYZCollection,\r\n positiveOffsetLeft: number,\r\n positiveOffsetRight: number,\r\n z0: number | undefined,\r\n z1: number | undefined,\r\n ): UnionOfConvexClipPlaneSets {\r\n const context = new LineStringOffsetClipperContext(positiveOffsetLeft, positiveOffsetRight);\r\n const result = UnionOfConvexClipPlaneSets.createEmpty();\r\n if (points.length > 1) {\r\n const closed = Geometry.isSmallMetricDistance(points.distanceIndexIndex(0, points.length - 1)!);\r\n for (let i = 0; i + 1 < points.length; i++) {\r\n const unitVectorA = this.createUnit(points, i - 1, closed);\r\n const unitVectorB = this.createUnit(points, i, closed);\r\n const unitVectorC = this.createUnit(points, i + 1, closed);\r\n const clipSet = context.createOffsetFromSegment(points.getPoint3dAtUncheckedPointIndex(i),\r\n points.getPoint3dAtUncheckedPointIndex(i + 1), unitVectorA, unitVectorB, unitVectorC);\r\n clipSet?.addZClipPlanes(false, z0, z1);\r\n if (clipSet)\r\n result.addConvexSet(clipSet);\r\n }\r\n } else {\r\n // make a singleton clipper with the z values.\r\n const clipSet = ConvexClipPlaneSet.createEmpty();\r\n clipSet?.addZClipPlanes(false, z0, z1);\r\n if (clipSet.planes.length > 0)\r\n result.addConvexSet(clipSet);\r\n }\r\n return result;\r\n }\r\n}\r\n"]}
|
|
@@ -215,6 +215,7 @@ export * from "./polyface/FacetFaceData";
|
|
|
215
215
|
export * from "./polyface/Polyface";
|
|
216
216
|
export * from "./polyface/FacetLocationDetail";
|
|
217
217
|
export * from "./polyface/IndexedPolyfaceVisitor";
|
|
218
|
+
export * from "./polyface/IndexedPolyfaceWalker";
|
|
218
219
|
export * from "./polyface/multiclip/GriddedRaggedRange2dSet";
|
|
219
220
|
export * from "./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow";
|
|
220
221
|
export * from "./polyface/PolyfaceBuilder";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-geometry.d.ts","sourceRoot":"","sources":["../../src/core-geometry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-geometry.d.ts","sourceRoot":"","sources":["../../src/core-geometry.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/core-geometry.js
CHANGED
|
@@ -251,6 +251,7 @@ __exportStar(require("./polyface/FacetFaceData"), exports);
|
|
|
251
251
|
__exportStar(require("./polyface/Polyface"), exports);
|
|
252
252
|
__exportStar(require("./polyface/FacetLocationDetail"), exports);
|
|
253
253
|
__exportStar(require("./polyface/IndexedPolyfaceVisitor"), exports);
|
|
254
|
+
__exportStar(require("./polyface/IndexedPolyfaceWalker"), exports);
|
|
254
255
|
__exportStar(require("./polyface/multiclip/GriddedRaggedRange2dSet"), exports);
|
|
255
256
|
__exportStar(require("./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow"), exports);
|
|
256
257
|
__exportStar(require("./polyface/PolyfaceBuilder"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-geometry.js","sourceRoot":"","sources":["../../src/core-geometry.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 Utility\r\n */\r\n\r\n// REMARK:\r\n// The docs-group-description comments are followed by empty classes with names corresponding to the doc-group.\r\n// Normally (in committed code) these are commented out.\r\n// The comments have distinctive strings so that simple search and replace can make the \"real\".\r\n// This is useful when working on the documentation: When the empty classes are present, VSCode will format the doc comments\r\n// for and display them when the mouse hovers over the class name.\r\n\r\n/**\r\n * @docs-package-description\r\n * The core-geometry package contains classes for working with geometry: points, vectors, curves, surfaces, and analytic solids\r\n */\r\n/**\r\n * @docs-group-description CartesianGeometry\r\n * Points, Vectors, Planes, and Transformations for x,y,z geometry.\r\n * * Fundamental cartesian geometry objects:\r\n * * Point2d, Point3d -- points with x,y,z coordinates\r\n * * Vector2d, Vector3d -- vectors with x,y,z coordinates\r\n * * Matrix3d -- 3x3 matrix\r\n * * * commonly used for pure rotations\r\n * * * scale and skew entries are also allowed.\r\n * * Transform -- an origin and axes.\r\n * * Range1d, Range2d, Range3d -- subsets of 1d, 2d, and 3d space bounded by low and high values.\r\n * * Ray3d -- a ray defined by origin and direction vector\r\n * * Plane3d -- an abstract base class extended by Plane3dByOriginAndNormal, Plane3dByOriginAndUnitNormal, Point4d, and ClipPlane\r\n * * Plane3dByOriginAndUnitNormal -- a plane defined by an origin and a single vector which is perpendicular to the plane\r\n * * plane3dByOriginAndVectors -- a plane defined by an origin and two vectors in the plane.\r\n * * Angles\r\n * * Angle -- a strongly typed angle object whose method names make it clear whether input and outputs are degrees or radians.\r\n * * AngleSweep -- an angular interval\r\n * * LatitudeLongitudeNumber -- carrier for position and altitude on sphere or ellipsoid\r\n * * YawPitchAndRollAngles -- 3 angles that define a rotated coordinate system.\r\n * * Utility classes\r\n * * FrameBuilder -- construction of coordinate frames from mixed data sources.\r\n * * ClipPlane -- a single plane\r\n * * ConvexClipPlaneSet -- an array of planes bounding a convex volume\r\n * * ClipPlaneSet -- an array of ConvexClipPlaneSet, defining the union of their volumes\r\n * * BilinearPatch -- twisted quadrilateral defined by 4 points\r\n * * BarycentricTriangle -- triangle defined by 3 points.\r\n * * Constant -- various numeric values exported as readonly constants\r\n */\r\n// doc:export class CartesianGeometryDoc { }\r\n/**\r\n * @docs-group-description ArraysAndInterfaces\r\n * These classes support array operations and inheritance-based algorithms.\r\n * * Arrays\r\n * * GrowableArray -- A carrier for a Float64Array, with methods that hide reallocation of the underlying array as contents are added.\r\n * * Point2dArray, Point3dArray, Point4dArray, Vector3dArray -- miscellaneous operations on arrays of 2d and 3d points.\r\n * * Interfaces\r\n * * GeometryHandler -- a double-dispatch protocol used for efficient implementation of algorithms that work on many geometry types.\r\n *\r\n */\r\n// doc:export class ArraysAndInterfacesDoc { }\r\n\r\n/**\r\n * @docs-group-description Bspline\r\n * A bspline curve or surface is used for curved freeform geometry defined by controls points (sometimes called poles).\r\n * * BSplineCurve -- a curve defined by control points (which are not on the curve)\r\n * * InterpolationCurve -- a curve defined by passthrough points, with \"good\" visual properties\r\n * * BSplineSurfaceXYZ -- a surface with XYZ\r\n * * BsplineSurfaceXYZW -- a surface with weighted (rational) XYZ coordinates\r\n * * KnotVector -- vector of breakpoints in bspline definitions.\r\n */\r\n// doc:export class BsplineDoc { }\r\n\r\n/**\r\n * @docs-group-description Curve\r\n * Curves in the GeometryQuery hierarchy: LineSegment3d, LineString3d, Arc3d, TransitionSpiral3d\r\n * * CurvePrimitive -- base class for parametric curves\r\n * * LineSegment3d -- a (bounded) portion of an unbounded line\r\n * * Arc3d -- a circular or elliptic arc\r\n * * LineString3d -- a sequence of points joined by line segments\r\n * * TransitionSpiral -- controlled transition between curvatures\r\n * * Support classes\r\n * * PointString3d -- a sequence of isolated points\r\n * * StrokeOptions -- tolerances to describe stroking accuracy\r\n * * RecursiveCurveProcessor, RecursiveCurveProcessorWithStack -- algorithmic support for trees with CurvePrimitives at the leaf level.\r\n */\r\n// doc:export class CurveDoc { }\r\n/**\r\n * @docs-group-description Numerics\r\n * The Numerics classes have geometric and numeric methods used during large algorithms in other classes.\r\n */\r\n// doc:export class NumericsDoc { }\r\n/**\r\n * @docs-group-description Polyface\r\n * A Polyface is a mesh structure with arrays of points that are shared among multiple incident facets.\r\n */\r\n// doc:export class PolyfaceDoc { }\r\n/**\r\n * @docs-group-description Serialization\r\n * These classes are related to serialization of geometry classes.\r\n * * IModelJson.Reader, IModelJson.Writer -- Conversion of in-memory geometry objects to json objects for persistence and transmission.\r\n */\r\n// doc:export class SerializationDoc { }\r\n/**\r\n * @docs-group-description Solid\r\n * Analytic Solids in the GeometryQuery hierarchy: Box, Sphere, Cone, TorusPipe, LinearSweep, RotationalSweep, RuledSweep\r\n * * Box -- a box solid. This is usually rectangular on all faces, but can in one directly like a view frustum\r\n * * Sphere -- a sphere\r\n * * Cone -- a cone or cylinder\r\n * * TorusPipe -- a pipe elbow\r\n * * LinearSweep -- a linear sweep of a base contour\r\n * * RotationalSweep -- a rotational sweep of a base contour\r\n * * RuledSweep -- two or more similarly structured contours joined by linear rule lines.\r\n */\r\n// doc:export class SolidDOc { }\r\n/**\r\n * @docs-group-description Topology\r\n * The Topology classes provide adjacency structures used in triangulations.\r\n */\r\n// doc:export class TopologyDoc { }\r\n/**\r\n * @docs-group-description RangeSearch\r\n * Support classes for searching collections of ranges.\r\n */\r\nexport * from \"./geometry3d/Angle\";\r\nexport * from \"./geometry3d/AngleSweep\";\r\nexport * from \"./geometry3d/LongitudeLatitudeAltitude\";\r\nexport * from \"./geometry3d/BarycentricTriangle\";\r\nexport * from \"./geometry3d/BilinearPatch\";\r\nexport * from \"./geometry3d/Ellipsoid\";\r\nexport * from \"./geometry3d/FrameBuilder\";\r\nexport * from \"./geometry3d/FrustumAnimation\";\r\nexport * from \"./geometry3d/GeometryHandler\";\r\nexport * from \"./geometry3d/GrowableBlockedArray\";\r\nexport * from \"./geometry3d/GrowableFloat64Array\";\r\nexport * from \"./geometry3d/GrowableXYArray\";\r\nexport * from \"./geometry3d/GrowableXYZArray\";\r\nexport * from \"./geometry3d/IndexedCollectionInterval\";\r\nexport * from \"./geometry3d/IndexedXYCollection\";\r\nexport * from \"./geometry3d/IndexedXYZCollection\";\r\nexport * from \"./geometry3d/Matrix3d\";\r\nexport * from \"./geometry3d/OrderedRotationAngles\";\r\nexport * from \"./geometry3d/Plane3d\";\r\nexport * from \"./geometry3d/Plane3dByOriginAndUnitNormal\";\r\nexport * from \"./geometry3d/Plane3dByOriginAndVectors\";\r\nexport * from \"./geometry3d/Point2dArrayCarrier\";\r\nexport * from \"./geometry3d/Point2dVector2d\";\r\nexport * from \"./geometry3d/Point3dVector3d\";\r\nexport * from \"./geometry3d/PointHelpers\";\r\nexport * from \"./geometry3d/Point3dArrayCarrier\";\r\nexport * from \"./geometry3d/PolylineOps\";\r\nexport * from \"./geometry3d/PolygonOps\";\r\nexport * from \"./geometry3d/Range\";\r\nexport * from \"./geometry3d/Ray2d\";\r\nexport * from \"./geometry3d/Ray3d\";\r\nexport * from \"./geometry3d/Segment1d\";\r\nexport * from \"./geometry3d/Transform\";\r\nexport * from \"./geometry3d/UVSurfaceOps\";\r\nexport * from \"./geometry3d/XYZProps\";\r\nexport * from \"./geometry3d/YawPitchRollAngles\";\r\n\r\nexport * from \"./Geometry\";\r\nexport * from \"./Constant\";\r\nexport * from \"./clipping/BooleanClipFactory\";\r\nexport * from \"./clipping/ClipPlane\";\r\nexport * from \"./clipping/ConvexClipPlaneSet\";\r\nexport * from \"./clipping/UnionOfConvexClipPlaneSets\";\r\nexport * from \"./clipping/ClipPrimitive\";\r\nexport * from \"./clipping/ClipVector\";\r\nexport * from \"./clipping/ClipUtils\";\r\nexport * from \"./numerics/ConvexPolygon2d\";\r\nexport * from \"./geometry4d/PlaneByOriginAndVectors4d\";\r\nexport * from \"./geometry4d/Point4d\";\r\nexport * from \"./geometry4d/Matrix4d\";\r\nexport * from \"./geometry4d/Map4d\";\r\nexport * from \"./geometry4d/MomentData\";\r\nexport * from \"./numerics/BezierPolynomials\";\r\nexport * from \"./numerics/ClusterableArray\";\r\nexport * from \"./numerics/Complex\";\r\nexport * from \"./numerics/ConvexPolygon2d\";\r\nexport * from \"./numerics/PascalCoefficients\";\r\nexport * from \"./numerics/Quadrature\";\r\nexport * from \"./numerics/Range1dArray\";\r\nexport * from \"./numerics/SmallSystem\";\r\nexport * from \"./numerics/TriDiagonalSystem\";\r\n\r\nexport * from \"./curve/Arc3d\";\r\nexport * from \"./curve/ConstructCurveBetweenCurves\";\r\nexport * from \"./curve/CoordinateXYZ\";\r\nexport * from \"./curve/CurveTypes\";\r\nexport * from \"./curve/CurveChainWithDistanceIndex\";\r\nexport * from \"./curve/CurveExtendMode\";\r\nexport * from \"./curve/CurveCollection\";\r\nexport * from \"./curve/CurveCurve\";\r\nexport * from \"./curve/CurveLocationDetail\";\r\nexport * from \"./curve/CurveFactory\";\r\nexport * from \"./curve/CurveOps\";\r\nexport * from \"./curve/CurvePrimitive\";\r\nexport * from \"./curve/CurveProcessor\";\r\nexport * from \"./curve/GeometryQuery\";\r\nexport * from \"./curve/LineSegment3d\";\r\nexport * from \"./curve/LineString3d\";\r\nexport * from \"./curve/Loop\";\r\nexport * from \"./curve/OffsetOptions\";\r\nexport * from \"./curve/ParityRegion\";\r\nexport * from \"./curve/Path\";\r\nexport * from \"./curve/RegionMomentsXY\";\r\nexport * from \"./curve/RegionOps\";\r\nexport * from \"./curve/PointString3d\";\r\nexport * from \"./curve/ProxyCurve\";\r\nexport * from \"./curve/StrokeOptions\";\r\nexport * from \"./curve/spiral/TransitionSpiral3d\";\r\nexport * from \"./curve/spiral/IntegratedSpiral3d\";\r\nexport * from \"./curve/spiral/DirectSpiral3d\";\r\nexport * from \"./curve/UnionRegion\";\r\nexport * from \"./curve/Query/StrokeCountMap\";\r\nexport * from \"./solid/Box\";\r\nexport * from \"./solid/Cone\";\r\nexport * from \"./solid/LinearSweep\";\r\nexport * from \"./solid/RotationalSweep\";\r\nexport * from \"./solid/RuledSweep\";\r\nexport * from \"./solid/SolidPrimitive\";\r\nexport * from \"./solid/Sphere\";\r\nexport * from \"./solid/SweepContour\";\r\nexport * from \"./solid/TorusPipe\";\r\nexport * from \"./bspline/AkimaCurve3d\";\r\nexport * from \"./bspline/Bezier1dNd\";\r\nexport * from \"./bspline/BezierCurveBase\";\r\nexport * from \"./bspline/BezierCurve3d\";\r\nexport * from \"./bspline/BezierCurve3dH\";\r\nexport * from \"./bspline/BSplineCurve\";\r\nexport * from \"./bspline/BSplineCurveOps\";\r\nexport * from \"./bspline/BSpline1dNd\";\r\nexport * from \"./bspline/BSplineCurve3dH\";\r\nexport * from \"./bspline/BSplineSurface\";\r\nexport * from \"./bspline/InterpolationCurve3d\";\r\nexport * from \"./bspline/KnotVector\";\r\nexport * from \"./polyface/AuxData\";\r\nexport * from \"./polyface/BoxTopology\";\r\nexport * from \"./polyface/FacetFaceData\";\r\nexport * from \"./polyface/Polyface\";\r\nexport * from \"./polyface/FacetLocationDetail\";\r\nexport * from \"./polyface/IndexedPolyfaceVisitor\";\r\nexport * from \"./polyface/multiclip/GriddedRaggedRange2dSet\";\r\nexport * from \"./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow\";\r\nexport * from \"./polyface/PolyfaceBuilder\";\r\nexport * from \"./polyface/PolyfaceData\";\r\nexport * from \"./polyface/PolyfaceQuery\";\r\nexport * from \"./polyface/PolyfaceClip\";\r\nexport * from \"./polyface/RangeTree/Point3dArrayRangeTreeContext\";\r\nexport * from \"./polyface/RangeTree/LineString3dRangeTreeContext\";\r\nexport * from \"./polyface/RangeTree/PolyfaceRangeTreeContext\";\r\nexport * from \"./polyface/TaggedNumericData\";\r\nexport * from \"./topology/SpaceTriangulation\";\r\nexport * from \"./serialization/IModelJsonSchema\";\r\nexport * from \"./serialization/DeepCompare\";\r\nexport * from \"./serialization/GeometrySamples\";\r\nexport * from \"./serialization/SerializationHelpers\";\r\nexport { BentleyGeometryFlatBuffer } from \"./serialization/BentleyGeometryFlatBuffer\";\r\n"]}
|
|
1
|
+
{"version":3,"file":"core-geometry.js","sourceRoot":"","sources":["../../src/core-geometry.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 Utility\r\n */\r\n\r\n// REMARK:\r\n// The docs-group-description comments are followed by empty classes with names corresponding to the doc-group.\r\n// Normally (in committed code) these are commented out.\r\n// The comments have distinctive strings so that simple search and replace can make the \"real\".\r\n// This is useful when working on the documentation: When the empty classes are present, VSCode will format the doc comments\r\n// for and display them when the mouse hovers over the class name.\r\n\r\n/**\r\n * @docs-package-description\r\n * The core-geometry package contains classes for working with geometry: points, vectors, curves, surfaces, and analytic solids\r\n */\r\n/**\r\n * @docs-group-description CartesianGeometry\r\n * Points, Vectors, Planes, and Transformations for x,y,z geometry.\r\n * * Fundamental cartesian geometry objects:\r\n * * Point2d, Point3d -- points with x,y,z coordinates\r\n * * Vector2d, Vector3d -- vectors with x,y,z coordinates\r\n * * Matrix3d -- 3x3 matrix\r\n * * * commonly used for pure rotations\r\n * * * scale and skew entries are also allowed.\r\n * * Transform -- an origin and axes.\r\n * * Range1d, Range2d, Range3d -- subsets of 1d, 2d, and 3d space bounded by low and high values.\r\n * * Ray3d -- a ray defined by origin and direction vector\r\n * * Plane3d -- an abstract base class extended by Plane3dByOriginAndNormal, Plane3dByOriginAndUnitNormal, Point4d, and ClipPlane\r\n * * Plane3dByOriginAndUnitNormal -- a plane defined by an origin and a single vector which is perpendicular to the plane\r\n * * plane3dByOriginAndVectors -- a plane defined by an origin and two vectors in the plane.\r\n * * Angles\r\n * * Angle -- a strongly typed angle object whose method names make it clear whether input and outputs are degrees or radians.\r\n * * AngleSweep -- an angular interval\r\n * * LatitudeLongitudeNumber -- carrier for position and altitude on sphere or ellipsoid\r\n * * YawPitchAndRollAngles -- 3 angles that define a rotated coordinate system.\r\n * * Utility classes\r\n * * FrameBuilder -- construction of coordinate frames from mixed data sources.\r\n * * ClipPlane -- a single plane\r\n * * ConvexClipPlaneSet -- an array of planes bounding a convex volume\r\n * * ClipPlaneSet -- an array of ConvexClipPlaneSet, defining the union of their volumes\r\n * * BilinearPatch -- twisted quadrilateral defined by 4 points\r\n * * BarycentricTriangle -- triangle defined by 3 points.\r\n * * Constant -- various numeric values exported as readonly constants\r\n */\r\n// doc:export class CartesianGeometryDoc { }\r\n/**\r\n * @docs-group-description ArraysAndInterfaces\r\n * These classes support array operations and inheritance-based algorithms.\r\n * * Arrays\r\n * * GrowableArray -- A carrier for a Float64Array, with methods that hide reallocation of the underlying array as contents are added.\r\n * * Point2dArray, Point3dArray, Point4dArray, Vector3dArray -- miscellaneous operations on arrays of 2d and 3d points.\r\n * * Interfaces\r\n * * GeometryHandler -- a double-dispatch protocol used for efficient implementation of algorithms that work on many geometry types.\r\n *\r\n */\r\n// doc:export class ArraysAndInterfacesDoc { }\r\n\r\n/**\r\n * @docs-group-description Bspline\r\n * A bspline curve or surface is used for curved freeform geometry defined by controls points (sometimes called poles).\r\n * * BSplineCurve -- a curve defined by control points (which are not on the curve)\r\n * * InterpolationCurve -- a curve defined by passthrough points, with \"good\" visual properties\r\n * * BSplineSurfaceXYZ -- a surface with XYZ\r\n * * BsplineSurfaceXYZW -- a surface with weighted (rational) XYZ coordinates\r\n * * KnotVector -- vector of breakpoints in bspline definitions.\r\n */\r\n// doc:export class BsplineDoc { }\r\n\r\n/**\r\n * @docs-group-description Curve\r\n * Curves in the GeometryQuery hierarchy: LineSegment3d, LineString3d, Arc3d, TransitionSpiral3d\r\n * * CurvePrimitive -- base class for parametric curves\r\n * * LineSegment3d -- a (bounded) portion of an unbounded line\r\n * * Arc3d -- a circular or elliptic arc\r\n * * LineString3d -- a sequence of points joined by line segments\r\n * * TransitionSpiral -- controlled transition between curvatures\r\n * * Support classes\r\n * * PointString3d -- a sequence of isolated points\r\n * * StrokeOptions -- tolerances to describe stroking accuracy\r\n * * RecursiveCurveProcessor, RecursiveCurveProcessorWithStack -- algorithmic support for trees with CurvePrimitives at the leaf level.\r\n */\r\n// doc:export class CurveDoc { }\r\n/**\r\n * @docs-group-description Numerics\r\n * The Numerics classes have geometric and numeric methods used during large algorithms in other classes.\r\n */\r\n// doc:export class NumericsDoc { }\r\n/**\r\n * @docs-group-description Polyface\r\n * A Polyface is a mesh structure with arrays of points that are shared among multiple incident facets.\r\n */\r\n// doc:export class PolyfaceDoc { }\r\n/**\r\n * @docs-group-description Serialization\r\n * These classes are related to serialization of geometry classes.\r\n * * IModelJson.Reader, IModelJson.Writer -- Conversion of in-memory geometry objects to json objects for persistence and transmission.\r\n */\r\n// doc:export class SerializationDoc { }\r\n/**\r\n * @docs-group-description Solid\r\n * Analytic Solids in the GeometryQuery hierarchy: Box, Sphere, Cone, TorusPipe, LinearSweep, RotationalSweep, RuledSweep\r\n * * Box -- a box solid. This is usually rectangular on all faces, but can in one directly like a view frustum\r\n * * Sphere -- a sphere\r\n * * Cone -- a cone or cylinder\r\n * * TorusPipe -- a pipe elbow\r\n * * LinearSweep -- a linear sweep of a base contour\r\n * * RotationalSweep -- a rotational sweep of a base contour\r\n * * RuledSweep -- two or more similarly structured contours joined by linear rule lines.\r\n */\r\n// doc:export class SolidDOc { }\r\n/**\r\n * @docs-group-description Topology\r\n * The Topology classes provide adjacency structures used in triangulations.\r\n */\r\n// doc:export class TopologyDoc { }\r\n/**\r\n * @docs-group-description RangeSearch\r\n * Support classes for searching collections of ranges.\r\n */\r\nexport * from \"./geometry3d/Angle\";\r\nexport * from \"./geometry3d/AngleSweep\";\r\nexport * from \"./geometry3d/LongitudeLatitudeAltitude\";\r\nexport * from \"./geometry3d/BarycentricTriangle\";\r\nexport * from \"./geometry3d/BilinearPatch\";\r\nexport * from \"./geometry3d/Ellipsoid\";\r\nexport * from \"./geometry3d/FrameBuilder\";\r\nexport * from \"./geometry3d/FrustumAnimation\";\r\nexport * from \"./geometry3d/GeometryHandler\";\r\nexport * from \"./geometry3d/GrowableBlockedArray\";\r\nexport * from \"./geometry3d/GrowableFloat64Array\";\r\nexport * from \"./geometry3d/GrowableXYArray\";\r\nexport * from \"./geometry3d/GrowableXYZArray\";\r\nexport * from \"./geometry3d/IndexedCollectionInterval\";\r\nexport * from \"./geometry3d/IndexedXYCollection\";\r\nexport * from \"./geometry3d/IndexedXYZCollection\";\r\nexport * from \"./geometry3d/Matrix3d\";\r\nexport * from \"./geometry3d/OrderedRotationAngles\";\r\nexport * from \"./geometry3d/Plane3d\";\r\nexport * from \"./geometry3d/Plane3dByOriginAndUnitNormal\";\r\nexport * from \"./geometry3d/Plane3dByOriginAndVectors\";\r\nexport * from \"./geometry3d/Point2dArrayCarrier\";\r\nexport * from \"./geometry3d/Point2dVector2d\";\r\nexport * from \"./geometry3d/Point3dVector3d\";\r\nexport * from \"./geometry3d/PointHelpers\";\r\nexport * from \"./geometry3d/Point3dArrayCarrier\";\r\nexport * from \"./geometry3d/PolylineOps\";\r\nexport * from \"./geometry3d/PolygonOps\";\r\nexport * from \"./geometry3d/Range\";\r\nexport * from \"./geometry3d/Ray2d\";\r\nexport * from \"./geometry3d/Ray3d\";\r\nexport * from \"./geometry3d/Segment1d\";\r\nexport * from \"./geometry3d/Transform\";\r\nexport * from \"./geometry3d/UVSurfaceOps\";\r\nexport * from \"./geometry3d/XYZProps\";\r\nexport * from \"./geometry3d/YawPitchRollAngles\";\r\n\r\nexport * from \"./Geometry\";\r\nexport * from \"./Constant\";\r\nexport * from \"./clipping/BooleanClipFactory\";\r\nexport * from \"./clipping/ClipPlane\";\r\nexport * from \"./clipping/ConvexClipPlaneSet\";\r\nexport * from \"./clipping/UnionOfConvexClipPlaneSets\";\r\nexport * from \"./clipping/ClipPrimitive\";\r\nexport * from \"./clipping/ClipVector\";\r\nexport * from \"./clipping/ClipUtils\";\r\nexport * from \"./numerics/ConvexPolygon2d\";\r\nexport * from \"./geometry4d/PlaneByOriginAndVectors4d\";\r\nexport * from \"./geometry4d/Point4d\";\r\nexport * from \"./geometry4d/Matrix4d\";\r\nexport * from \"./geometry4d/Map4d\";\r\nexport * from \"./geometry4d/MomentData\";\r\nexport * from \"./numerics/BezierPolynomials\";\r\nexport * from \"./numerics/ClusterableArray\";\r\nexport * from \"./numerics/Complex\";\r\nexport * from \"./numerics/ConvexPolygon2d\";\r\nexport * from \"./numerics/PascalCoefficients\";\r\nexport * from \"./numerics/Quadrature\";\r\nexport * from \"./numerics/Range1dArray\";\r\nexport * from \"./numerics/SmallSystem\";\r\nexport * from \"./numerics/TriDiagonalSystem\";\r\n\r\nexport * from \"./curve/Arc3d\";\r\nexport * from \"./curve/ConstructCurveBetweenCurves\";\r\nexport * from \"./curve/CoordinateXYZ\";\r\nexport * from \"./curve/CurveTypes\";\r\nexport * from \"./curve/CurveChainWithDistanceIndex\";\r\nexport * from \"./curve/CurveExtendMode\";\r\nexport * from \"./curve/CurveCollection\";\r\nexport * from \"./curve/CurveCurve\";\r\nexport * from \"./curve/CurveLocationDetail\";\r\nexport * from \"./curve/CurveFactory\";\r\nexport * from \"./curve/CurveOps\";\r\nexport * from \"./curve/CurvePrimitive\";\r\nexport * from \"./curve/CurveProcessor\";\r\nexport * from \"./curve/GeometryQuery\";\r\nexport * from \"./curve/LineSegment3d\";\r\nexport * from \"./curve/LineString3d\";\r\nexport * from \"./curve/Loop\";\r\nexport * from \"./curve/OffsetOptions\";\r\nexport * from \"./curve/ParityRegion\";\r\nexport * from \"./curve/Path\";\r\nexport * from \"./curve/RegionMomentsXY\";\r\nexport * from \"./curve/RegionOps\";\r\nexport * from \"./curve/PointString3d\";\r\nexport * from \"./curve/ProxyCurve\";\r\nexport * from \"./curve/StrokeOptions\";\r\nexport * from \"./curve/spiral/TransitionSpiral3d\";\r\nexport * from \"./curve/spiral/IntegratedSpiral3d\";\r\nexport * from \"./curve/spiral/DirectSpiral3d\";\r\nexport * from \"./curve/UnionRegion\";\r\nexport * from \"./curve/Query/StrokeCountMap\";\r\nexport * from \"./solid/Box\";\r\nexport * from \"./solid/Cone\";\r\nexport * from \"./solid/LinearSweep\";\r\nexport * from \"./solid/RotationalSweep\";\r\nexport * from \"./solid/RuledSweep\";\r\nexport * from \"./solid/SolidPrimitive\";\r\nexport * from \"./solid/Sphere\";\r\nexport * from \"./solid/SweepContour\";\r\nexport * from \"./solid/TorusPipe\";\r\nexport * from \"./bspline/AkimaCurve3d\";\r\nexport * from \"./bspline/Bezier1dNd\";\r\nexport * from \"./bspline/BezierCurveBase\";\r\nexport * from \"./bspline/BezierCurve3d\";\r\nexport * from \"./bspline/BezierCurve3dH\";\r\nexport * from \"./bspline/BSplineCurve\";\r\nexport * from \"./bspline/BSplineCurveOps\";\r\nexport * from \"./bspline/BSpline1dNd\";\r\nexport * from \"./bspline/BSplineCurve3dH\";\r\nexport * from \"./bspline/BSplineSurface\";\r\nexport * from \"./bspline/InterpolationCurve3d\";\r\nexport * from \"./bspline/KnotVector\";\r\nexport * from \"./polyface/AuxData\";\r\nexport * from \"./polyface/BoxTopology\";\r\nexport * from \"./polyface/FacetFaceData\";\r\nexport * from \"./polyface/Polyface\";\r\nexport * from \"./polyface/FacetLocationDetail\";\r\nexport * from \"./polyface/IndexedPolyfaceVisitor\";\r\nexport * from \"./polyface/IndexedPolyfaceWalker\";\r\nexport * from \"./polyface/multiclip/GriddedRaggedRange2dSet\";\r\nexport * from \"./polyface/multiclip/GriddedRaggedRange2dSetWithOverflow\";\r\nexport * from \"./polyface/PolyfaceBuilder\";\r\nexport * from \"./polyface/PolyfaceData\";\r\nexport * from \"./polyface/PolyfaceQuery\";\r\nexport * from \"./polyface/PolyfaceClip\";\r\nexport * from \"./polyface/RangeTree/Point3dArrayRangeTreeContext\";\r\nexport * from \"./polyface/RangeTree/LineString3dRangeTreeContext\";\r\nexport * from \"./polyface/RangeTree/PolyfaceRangeTreeContext\";\r\nexport * from \"./polyface/TaggedNumericData\";\r\nexport * from \"./topology/SpaceTriangulation\";\r\nexport * from \"./serialization/IModelJsonSchema\";\r\nexport * from \"./serialization/DeepCompare\";\r\nexport * from \"./serialization/GeometrySamples\";\r\nexport * from \"./serialization/SerializationHelpers\";\r\nexport { BentleyGeometryFlatBuffer } from \"./serialization/BentleyGeometryFlatBuffer\";\r\n"]}
|
package/lib/cjs/curve/Arc3d.d.ts
CHANGED
|
@@ -167,19 +167,31 @@ export declare class Arc3d extends CurvePrimitive implements BeJSONFunctions {
|
|
|
167
167
|
private static _workVectorU;
|
|
168
168
|
private static _workVectorV;
|
|
169
169
|
private static _workVectorW;
|
|
170
|
-
/** Read
|
|
170
|
+
/** Read/write the center. Getter returns clone. */
|
|
171
171
|
get center(): Point3d;
|
|
172
|
+
set center(center: XYAndZ);
|
|
173
|
+
/** Read property for (reference to) center. */
|
|
174
|
+
get centerRef(): Point3d;
|
|
172
175
|
/** Read property for (clone of) vector0. */
|
|
173
176
|
get vector0(): Vector3d;
|
|
174
177
|
/** Read property for (clone of) vector90. */
|
|
175
178
|
get vector90(): Vector3d;
|
|
176
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Compute an arc binormal vector with arbitrary length.
|
|
181
|
+
* * The arc parameterization is counter-clockwise with respect to this vector.
|
|
182
|
+
* * This vector is parallel to [[perpendicularVector]] and possibly opposite.
|
|
183
|
+
*/
|
|
184
|
+
binormalVector(result?: Vector3d): Vector3d;
|
|
185
|
+
/**
|
|
186
|
+
* Read property for (clone of) plane normal, with arbitrary length.
|
|
187
|
+
* * Does not take arc sweep direction into account. See also [[binormalVector]].
|
|
188
|
+
*/
|
|
177
189
|
get perpendicularVector(): Vector3d;
|
|
178
190
|
/** Read property for (clone of) matrix of vector0, vector90, unit normal. */
|
|
179
191
|
matrixClone(): Matrix3d;
|
|
180
192
|
/** Read property for (reference to) matrix of vector0, vector90, unit normal. */
|
|
181
193
|
get matrixRef(): Matrix3d;
|
|
182
|
-
/**
|
|
194
|
+
/** Read/write the sweep. Getter returns reference. */
|
|
183
195
|
get sweep(): AngleSweep;
|
|
184
196
|
set sweep(value: AngleSweep);
|
|
185
197
|
/** An Arc3d extends along its complete elliptic arc. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Arc3d.d.ts","sourceRoot":"","sources":["../../../src/curve/Arc3d.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/curve/Arc3d.js
CHANGED
|
@@ -57,6 +57,13 @@ var EllipticalArcSampleMethod;
|
|
|
57
57
|
* @public
|
|
58
58
|
*/
|
|
59
59
|
class EllipticalArcApproximationOptions {
|
|
60
|
+
_sampleMethod;
|
|
61
|
+
_numSamplesInQuadrant;
|
|
62
|
+
_maxError;
|
|
63
|
+
_remapFunction;
|
|
64
|
+
_forcePath;
|
|
65
|
+
/** Default error tolerance. */
|
|
66
|
+
static defaultMaxError = Constant_1.Constant.oneCentimeter;
|
|
60
67
|
constructor(method, numSamplesInQuadrant, maxError, remapFunction, forcePath) {
|
|
61
68
|
this._sampleMethod = method;
|
|
62
69
|
this._numSamplesInQuadrant = numSamplesInQuadrant;
|
|
@@ -134,8 +141,6 @@ class EllipticalArcApproximationOptions {
|
|
|
134
141
|
}
|
|
135
142
|
}
|
|
136
143
|
exports.EllipticalArcApproximationOptions = EllipticalArcApproximationOptions;
|
|
137
|
-
/** Default error tolerance. */
|
|
138
|
-
EllipticalArcApproximationOptions.defaultMaxError = Constant_1.Constant.oneCentimeter;
|
|
139
144
|
/**
|
|
140
145
|
* Circular or elliptic arc.
|
|
141
146
|
* * The angle to point equation is:
|
|
@@ -152,14 +157,32 @@ EllipticalArcApproximationOptions.defaultMaxError = Constant_1.Constant.oneCenti
|
|
|
152
157
|
* @public
|
|
153
158
|
*/
|
|
154
159
|
class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
160
|
+
/** String name for schema properties. */
|
|
161
|
+
curvePrimitiveType = "arc";
|
|
155
162
|
/** Test if this and other are both instances of Arc3d. */
|
|
156
163
|
isSameGeometryClass(other) {
|
|
157
164
|
return other instanceof Arc3d;
|
|
158
165
|
}
|
|
159
|
-
|
|
166
|
+
_center;
|
|
167
|
+
_matrix; // columns are [vector0, vector90, unitNormal]
|
|
168
|
+
_sweep; // sweep limits
|
|
169
|
+
static _workPointA = Point3dVector3d_1.Point3d.create();
|
|
170
|
+
static _workPointB = Point3dVector3d_1.Point3d.create();
|
|
171
|
+
static _workPointC = Point3dVector3d_1.Point3d.create();
|
|
172
|
+
static _workVectorU = Point3dVector3d_1.Vector3d.create();
|
|
173
|
+
static _workVectorV = Point3dVector3d_1.Vector3d.create();
|
|
174
|
+
static _workVectorW = Point3dVector3d_1.Vector3d.create();
|
|
175
|
+
/** Read/write the center. Getter returns clone. */
|
|
160
176
|
get center() {
|
|
161
177
|
return this._center.clone();
|
|
162
178
|
}
|
|
179
|
+
set center(center) {
|
|
180
|
+
this._center.setFrom(center);
|
|
181
|
+
}
|
|
182
|
+
/** Read property for (reference to) center. */
|
|
183
|
+
get centerRef() {
|
|
184
|
+
return this._center;
|
|
185
|
+
}
|
|
163
186
|
/** Read property for (clone of) vector0. */
|
|
164
187
|
get vector0() {
|
|
165
188
|
return this._matrix.columnX();
|
|
@@ -168,7 +191,19 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
168
191
|
get vector90() {
|
|
169
192
|
return this._matrix.columnY();
|
|
170
193
|
}
|
|
171
|
-
/**
|
|
194
|
+
/**
|
|
195
|
+
* Compute an arc binormal vector with arbitrary length.
|
|
196
|
+
* * The arc parameterization is counter-clockwise with respect to this vector.
|
|
197
|
+
* * This vector is parallel to [[perpendicularVector]] and possibly opposite.
|
|
198
|
+
*/
|
|
199
|
+
binormalVector(result) {
|
|
200
|
+
const plane = this.fractionToPointAnd2Derivatives(0.0);
|
|
201
|
+
return plane.vectorU.crossProduct(plane.vectorV, result);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Read property for (clone of) plane normal, with arbitrary length.
|
|
205
|
+
* * Does not take arc sweep direction into account. See also [[binormalVector]].
|
|
206
|
+
*/
|
|
172
207
|
get perpendicularVector() {
|
|
173
208
|
return this._matrix.columnZ();
|
|
174
209
|
}
|
|
@@ -180,7 +215,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
180
215
|
get matrixRef() {
|
|
181
216
|
return this._matrix;
|
|
182
217
|
}
|
|
183
|
-
/**
|
|
218
|
+
/** Read/write the sweep. Getter returns reference. */
|
|
184
219
|
get sweep() {
|
|
185
220
|
return this._sweep;
|
|
186
221
|
}
|
|
@@ -194,8 +229,6 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
194
229
|
// constructor copies the pointers
|
|
195
230
|
constructor(center, matrix, sweep) {
|
|
196
231
|
super();
|
|
197
|
-
/** String name for schema properties. */
|
|
198
|
-
this.curvePrimitiveType = "arc";
|
|
199
232
|
this._center = center;
|
|
200
233
|
this._matrix = matrix;
|
|
201
234
|
this._sweep = sweep;
|
|
@@ -315,7 +348,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
315
348
|
const v1DotV90 = vector1.dotProduct(vector90);
|
|
316
349
|
// solve the standard ellipse equation for the unknown axis length, given local coords of middle (v0.v1/||v0||, v90.v1)
|
|
317
350
|
const v90Len = Geometry_1.Geometry.safeDivideFraction(v0Len2 * v1DotV90, Math.sqrt(v0Len2 * v0Len2 - v0DotV1 * v0DotV1), 0);
|
|
318
|
-
if (Geometry_1.Geometry.isSmallMetricDistanceSquared(v90Len))
|
|
351
|
+
if (Geometry_1.Geometry.isSmallMetricDistanceSquared(v90Len)) // tighter than smallMetricDistance to allow flatter long elliptical arcs
|
|
319
352
|
return undefined;
|
|
320
353
|
vector90.scaleInPlace(v90Len);
|
|
321
354
|
return Arc3d.create(center, vector0, vector90, sweep, result);
|
|
@@ -596,6 +629,12 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
596
629
|
curveLength() {
|
|
597
630
|
return this.curveLengthBetweenFractions(0, 1);
|
|
598
631
|
}
|
|
632
|
+
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
633
|
+
// cspell::word Guass
|
|
634
|
+
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
|
|
635
|
+
static quadratureGuassCount = 5;
|
|
636
|
+
/** In quadrature for arc length, use this interval (divided by quickEccentricity). */
|
|
637
|
+
static quadratureIntervalAngleDegrees = 10.0;
|
|
599
638
|
/**
|
|
600
639
|
* * If this is a circular arc, return the simple length derived from radius and sweep.
|
|
601
640
|
* * Otherwise (i.e. if this elliptical) fall through CurvePrimitive integrator.
|
|
@@ -1250,16 +1289,4 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1250
1289
|
}
|
|
1251
1290
|
}
|
|
1252
1291
|
exports.Arc3d = Arc3d;
|
|
1253
|
-
Arc3d._workPointA = Point3dVector3d_1.Point3d.create();
|
|
1254
|
-
Arc3d._workPointB = Point3dVector3d_1.Point3d.create();
|
|
1255
|
-
Arc3d._workPointC = Point3dVector3d_1.Point3d.create();
|
|
1256
|
-
Arc3d._workVectorU = Point3dVector3d_1.Vector3d.create();
|
|
1257
|
-
Arc3d._workVectorV = Point3dVector3d_1.Vector3d.create();
|
|
1258
|
-
Arc3d._workVectorW = Point3dVector3d_1.Vector3d.create();
|
|
1259
|
-
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
1260
|
-
// cspell::word Guass
|
|
1261
|
-
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
|
|
1262
|
-
Arc3d.quadratureGuassCount = 5;
|
|
1263
|
-
/** In quadrature for arc length, use this interval (divided by quickEccentricity). */
|
|
1264
|
-
Arc3d.quadratureIntervalAngleDegrees = 10.0;
|
|
1265
1292
|
//# sourceMappingURL=Arc3d.js.map
|