@itwin/core-geometry 5.0.0-dev.1 → 5.0.0-dev.100
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 +74 -1
- package/lib/cjs/Constant.js +17 -17
- package/lib/cjs/Constant.js.map +1 -1
- package/lib/cjs/Geometry.d.ts +2 -4
- package/lib/cjs/Geometry.d.ts.map +1 -1
- package/lib/cjs/Geometry.js +37 -39
- 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.d.ts +90 -54
- package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +137 -84
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +193 -155
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +249 -181
- 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.d.ts +3 -1
- package/lib/cjs/bspline/BezierCurve3d.d.ts.map +1 -1
- package/lib/cjs/bspline/BezierCurve3d.js +5 -5
- 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 +82 -60
- package/lib/cjs/bspline/KnotVector.d.ts.map +1 -1
- package/lib/cjs/bspline/KnotVector.js +144 -84
- 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/BooleanClipFactory.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 +42 -8
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +94 -26
- 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 +16 -2
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +46 -11
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveCurve.js.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.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/CurveOps.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/CurveTypes.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/GeometryQuery.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.d.ts +12 -8
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineString3d.js +56 -15
- package/lib/cjs/curve/LineString3d.js.map +1 -1
- package/lib/cjs/curve/Loop.d.ts +12 -6
- package/lib/cjs/curve/Loop.d.ts.map +1 -1
- package/lib/cjs/curve/Loop.js +24 -10
- 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.d.ts +8 -6
- package/lib/cjs/curve/Query/CylindricalRange.d.ts.map +1 -1
- package/lib/cjs/curve/Query/CylindricalRange.js +19 -11
- package/lib/cjs/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/cjs/curve/Query/InOutTests.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 +10 -5
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +30 -8
- 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/CloneWithExpandedLineStrings.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.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
- 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 +7 -2
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +14 -2
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.d.ts +14 -8
- package/lib/cjs/geometry3d/BarycentricTriangle.d.ts.map +1 -1
- package/lib/cjs/geometry3d/BarycentricTriangle.js +42 -8
- 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.d.ts +8 -7
- package/lib/cjs/geometry3d/Ellipsoid.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ellipsoid.js +63 -14
- 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/GeometryHandler.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.d.ts +2 -0
- package/lib/cjs/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
- package/lib/cjs/geometry3d/GrowableFloat64Array.js +7 -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 +11 -8
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +61 -36
- 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/Plane3d.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 +7 -10
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +16 -10
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts +15 -4
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +29 -8
- 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 +12 -6
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +154 -70
- 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.d.ts +2 -2
- package/lib/cjs/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js +20 -11
- 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.d.ts +1 -1
- package/lib/cjs/geometry3d/Transform.js +4 -1
- package/lib/cjs/geometry3d/Transform.js.map +1 -1
- package/lib/cjs/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/cjs/geometry3d/XYZProps.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/BandedSystem.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.d.ts +5 -5
- package/lib/cjs/numerics/Polynomials.js +70 -32
- 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/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/SmallSystem.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.d.ts +2 -2
- package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
- package/lib/cjs/polyface/AuxData.js +27 -3
- 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 +4 -3
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +16 -5
- 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 +46 -19
- package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
- package/lib/cjs/polyface/Polyface.js +96 -32
- 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 +70 -92
- 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 +49 -6
- package/lib/cjs/polyface/PolyfaceData.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceData.js +133 -12
- package/lib/cjs/polyface/PolyfaceData.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts +2 -2
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +51 -10
- 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/Range2dSearchInterface.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.d.ts +35 -9
- package/lib/cjs/serialization/BGFBAccessors.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBAccessors.js +141 -179
- package/lib/cjs/serialization/BGFBAccessors.js.map +1 -1
- package/lib/cjs/serialization/BGFBReader.d.ts +2 -2
- package/lib/cjs/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBReader.js +75 -62
- package/lib/cjs/serialization/BGFBReader.js.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.d.ts +5 -1
- package/lib/cjs/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/cjs/serialization/BGFBWriter.js +18 -3
- package/lib/cjs/serialization/BGFBWriter.js.map +1 -1
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.js +1 -0
- package/lib/cjs/serialization/BentleyGeometryFlatBuffer.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 +78 -64
- package/lib/cjs/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/cjs/serialization/IModelJsonSchema.js +107 -83
- package/lib/cjs/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/cjs/serialization/SerializationHelpers.d.ts +36 -0
- package/lib/cjs/serialization/SerializationHelpers.d.ts.map +1 -1
- package/lib/cjs/serialization/SerializationHelpers.js +117 -0
- package/lib/cjs/serialization/SerializationHelpers.js.map +1 -1
- package/lib/cjs/solid/Box.d.ts +9 -3
- package/lib/cjs/solid/Box.d.ts.map +1 -1
- package/lib/cjs/solid/Box.js +17 -7
- package/lib/cjs/solid/Box.js.map +1 -1
- package/lib/cjs/solid/Cone.d.ts +42 -16
- package/lib/cjs/solid/Cone.d.ts.map +1 -1
- package/lib/cjs/solid/Cone.js +55 -19
- package/lib/cjs/solid/Cone.js.map +1 -1
- package/lib/cjs/solid/LinearSweep.d.ts +9 -3
- package/lib/cjs/solid/LinearSweep.d.ts.map +1 -1
- package/lib/cjs/solid/LinearSweep.js +13 -6
- package/lib/cjs/solid/LinearSweep.js.map +1 -1
- package/lib/cjs/solid/RotationalSweep.d.ts +27 -16
- package/lib/cjs/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RotationalSweep.js +53 -27
- package/lib/cjs/solid/RotationalSweep.js.map +1 -1
- package/lib/cjs/solid/RuledSweep.d.ts +35 -26
- package/lib/cjs/solid/RuledSweep.d.ts.map +1 -1
- package/lib/cjs/solid/RuledSweep.js +43 -29
- 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.d.ts +53 -24
- package/lib/cjs/solid/Sphere.d.ts.map +1 -1
- package/lib/cjs/solid/Sphere.js +75 -40
- package/lib/cjs/solid/Sphere.js.map +1 -1
- package/lib/cjs/solid/SweepContour.d.ts +25 -16
- package/lib/cjs/solid/SweepContour.d.ts.map +1 -1
- package/lib/cjs/solid/SweepContour.js +34 -16
- package/lib/cjs/solid/SweepContour.js.map +1 -1
- package/lib/cjs/solid/TorusPipe.d.ts +8 -2
- package/lib/cjs/solid/TorusPipe.d.ts.map +1 -1
- package/lib/cjs/solid/TorusPipe.js +16 -7
- 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/SpaceTriangulation.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.d.ts +2 -4
- package/lib/esm/Geometry.d.ts.map +1 -1
- package/lib/esm/Geometry.js +37 -39
- 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.d.ts +90 -54
- package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +137 -84
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +193 -155
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +249 -181
- 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.d.ts +3 -1
- package/lib/esm/bspline/BezierCurve3d.d.ts.map +1 -1
- package/lib/esm/bspline/BezierCurve3d.js +5 -5
- 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 +82 -60
- package/lib/esm/bspline/KnotVector.d.ts.map +1 -1
- package/lib/esm/bspline/KnotVector.js +144 -84
- 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/BooleanClipFactory.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 +42 -8
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +94 -26
- 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 +16 -2
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +46 -11
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveCurve.js.map +1 -1
- package/lib/esm/curve/CurveExtendMode.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/CurveOps.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/CurveTypes.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/GeometryQuery.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.d.ts +12 -8
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/LineString3d.js +56 -15
- package/lib/esm/curve/LineString3d.js.map +1 -1
- package/lib/esm/curve/Loop.d.ts +12 -6
- package/lib/esm/curve/Loop.d.ts.map +1 -1
- package/lib/esm/curve/Loop.js +24 -10
- 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.d.ts +8 -6
- package/lib/esm/curve/Query/CylindricalRange.d.ts.map +1 -1
- package/lib/esm/curve/Query/CylindricalRange.js +19 -11
- package/lib/esm/curve/Query/CylindricalRange.js.map +1 -1
- package/lib/esm/curve/Query/InOutTests.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 +10 -5
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +30 -8
- 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/CloneWithExpandedLineStrings.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.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +62 -23
- 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 +7 -2
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +14 -2
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.d.ts +14 -8
- package/lib/esm/geometry3d/BarycentricTriangle.d.ts.map +1 -1
- package/lib/esm/geometry3d/BarycentricTriangle.js +42 -8
- 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.d.ts +8 -7
- package/lib/esm/geometry3d/Ellipsoid.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ellipsoid.js +63 -14
- 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/GeometryHandler.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.d.ts +2 -0
- package/lib/esm/geometry3d/GrowableFloat64Array.d.ts.map +1 -1
- package/lib/esm/geometry3d/GrowableFloat64Array.js +7 -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 +11 -8
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +61 -36
- 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/Plane3d.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 +7 -10
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +16 -10
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts +15 -4
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +29 -8
- 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 +12 -6
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +154 -70
- 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.d.ts +2 -2
- package/lib/esm/geometry3d/Ray3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js +20 -11
- 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.d.ts +1 -1
- package/lib/esm/geometry3d/Transform.js +4 -1
- package/lib/esm/geometry3d/Transform.js.map +1 -1
- package/lib/esm/geometry3d/UVSurfaceOps.js.map +1 -1
- package/lib/esm/geometry3d/XYZProps.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/BandedSystem.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.d.ts +5 -5
- package/lib/esm/numerics/Polynomials.js +70 -32
- 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/Range1dArray.js.map +1 -1
- package/lib/esm/numerics/SmallSystem.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.d.ts +2 -2
- package/lib/esm/polyface/AuxData.d.ts.map +1 -1
- package/lib/esm/polyface/AuxData.js +27 -3
- 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 +4 -3
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js +16 -5
- 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 +46 -19
- package/lib/esm/polyface/Polyface.d.ts.map +1 -1
- package/lib/esm/polyface/Polyface.js +96 -32
- 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 +71 -93
- 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 +49 -6
- package/lib/esm/polyface/PolyfaceData.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceData.js +133 -12
- package/lib/esm/polyface/PolyfaceData.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts +2 -2
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +51 -10
- 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/Range2dSearchInterface.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.d.ts +35 -9
- package/lib/esm/serialization/BGFBAccessors.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBAccessors.js +141 -179
- package/lib/esm/serialization/BGFBAccessors.js.map +1 -1
- package/lib/esm/serialization/BGFBReader.d.ts +2 -2
- package/lib/esm/serialization/BGFBReader.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBReader.js +75 -62
- package/lib/esm/serialization/BGFBReader.js.map +1 -1
- package/lib/esm/serialization/BGFBWriter.d.ts +5 -1
- package/lib/esm/serialization/BGFBWriter.d.ts.map +1 -1
- package/lib/esm/serialization/BGFBWriter.js +18 -3
- package/lib/esm/serialization/BGFBWriter.js.map +1 -1
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.js +1 -0
- package/lib/esm/serialization/BentleyGeometryFlatBuffer.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 +78 -64
- package/lib/esm/serialization/IModelJsonSchema.d.ts.map +1 -1
- package/lib/esm/serialization/IModelJsonSchema.js +107 -83
- package/lib/esm/serialization/IModelJsonSchema.js.map +1 -1
- package/lib/esm/serialization/SerializationHelpers.d.ts +36 -0
- package/lib/esm/serialization/SerializationHelpers.d.ts.map +1 -1
- package/lib/esm/serialization/SerializationHelpers.js +117 -0
- package/lib/esm/serialization/SerializationHelpers.js.map +1 -1
- package/lib/esm/solid/Box.d.ts +9 -3
- package/lib/esm/solid/Box.d.ts.map +1 -1
- package/lib/esm/solid/Box.js +17 -7
- package/lib/esm/solid/Box.js.map +1 -1
- package/lib/esm/solid/Cone.d.ts +42 -16
- package/lib/esm/solid/Cone.d.ts.map +1 -1
- package/lib/esm/solid/Cone.js +56 -20
- package/lib/esm/solid/Cone.js.map +1 -1
- package/lib/esm/solid/LinearSweep.d.ts +9 -3
- package/lib/esm/solid/LinearSweep.d.ts.map +1 -1
- package/lib/esm/solid/LinearSweep.js +13 -6
- package/lib/esm/solid/LinearSweep.js.map +1 -1
- package/lib/esm/solid/RotationalSweep.d.ts +27 -16
- package/lib/esm/solid/RotationalSweep.d.ts.map +1 -1
- package/lib/esm/solid/RotationalSweep.js +53 -27
- package/lib/esm/solid/RotationalSweep.js.map +1 -1
- package/lib/esm/solid/RuledSweep.d.ts +35 -26
- package/lib/esm/solid/RuledSweep.d.ts.map +1 -1
- package/lib/esm/solid/RuledSweep.js +43 -29
- 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.d.ts +53 -24
- package/lib/esm/solid/Sphere.d.ts.map +1 -1
- package/lib/esm/solid/Sphere.js +76 -41
- package/lib/esm/solid/Sphere.js.map +1 -1
- package/lib/esm/solid/SweepContour.d.ts +25 -16
- package/lib/esm/solid/SweepContour.d.ts.map +1 -1
- package/lib/esm/solid/SweepContour.js +34 -16
- package/lib/esm/solid/SweepContour.js.map +1 -1
- package/lib/esm/solid/TorusPipe.d.ts +8 -2
- package/lib/esm/solid/TorusPipe.d.ts.map +1 -1
- package/lib/esm/solid/TorusPipe.js +16 -7
- 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/SpaceTriangulation.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 +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuledSweep.js","sourceRoot":"","sources":["../../../src/solid/RuledSweep.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sFAAmF;AAEnF,8DAAuE;AACvE,4DAAyD;AAEzD,0CAAuC;AAIvC,qDAAkD;AAClD,iDAA8C;AAQ9C;;;;GAIG;AACH,MAAa,UAAW,SAAQ,+BAAc;IAK5C,YAAoB,QAAwB,EAAE,MAAe;QAC3D,KAAK,CAAC,MAAM,CAAC,CAAC;QALhB,wCAAwC;QACxB,uBAAkB,GAAG,YAAY,CAAC;QAKhD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IACD;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,QAAoB,EAAE,MAAe;QACxD,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,2BAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,uDAAuD;IAChD,gBAAgB,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE;;OAEG;IACI,kBAAkB;QACvB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;OAEG;IACI,aAAa;QAClB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0BAA0B;IACnB,KAAK;QACV,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IACD,uCAAuC;IAChC,mBAAmB,CAAC,SAAoB;QAC7C,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;QACf,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,iCAAiC;IAC1B,gBAAgB,CAAC,SAAoB;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD;;;;OAIG;IACI,oBAAoB;QACzB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC;IACD,uDAAuD;IAChD,mBAAmB,CAAC,KAAU,IAAa,OAAO,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC;IACvF,8CAA8C;IAC9B,aAAa,CAAC,KAAoB;QAChD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kEAAkE;IAC3D,yBAAyB,CAAC,OAAwB;QACvD,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;;;OAGG;IACI,gBAAgB,CAAC,SAAiB;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACzC,IAAI,UAAU,GAAG,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,MAAM,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC;QACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,IAAI,GAAG;YAClB,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;;YAE1B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,QAAQ,GAAG,CAAC,IAAI,UAAU;YAC5B,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,mBAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAC/F,CAAC,UAA0B,EAAE,UAA0B,EAA8B,EAAE;YACrF,MAAM,YAAY,GAAG,yDAA2B,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YAC3G,IAAI,YAAY,YAAY,+BAAc;gBAAE,OAAO,YAAY,CAAC;YAChE,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,yCAAyC;IAClC,WAAW,CAAC,aAAsB,EAAE,SAAqB;QAC9D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS;YAClC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,cAAc,CAAC,WAA4B,EAAE,WAA4B,EAAE,gBAAuC;QAC9H,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,IAAI,WAAW,YAAY,4BAAU,IAAI,WAAW,YAAY,4BAAU,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,WAAW,CAAC;YAC3B,MAAM,MAAM,GAAG,WAAW,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAgB,CAAC;YACrD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBACvC,OAAO,SAAS,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ;oBACX,OAAO,SAAS,CAAC;gBACnB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,WAAW,YAAY,iCAAe,IAAI,WAAW,YAAY,iCAAe,EAAE,CAAC;YAC5F,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;YACvC,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;YACvC,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;YACvC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBACxH,OAAO,SAAS,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,MAAM,YAAY,+BAAc,IAAI,MAAM,YAAY,+BAAc,EAAE,CAAC;oBACzE,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY;wBACf,OAAO,SAAS,CAAC;oBACnB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,MAAM,YAAY,iCAAe,IAAI,MAAM,YAAY,iCAAe,EAAE,CAAC;oBAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;oBACvE,IAAI,CAAC,QAAQ;wBACX,OAAO,SAAS,CAAC;oBACnB,IAAI,QAAQ,YAAY,iCAAe;wBACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;;;OAIG;IACH,IAAW,cAAc;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;CAEF;AApLD,gCAoLC","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 Solid\r\n */\r\n\r\nimport { ConstructCurveBetweenCurves } from \"../curve/ConstructCurveBetweenCurves\";\r\nimport { AnyCurve } from \"../curve/CurveTypes\";\r\nimport { CurveChain, CurveCollection } from \"../curve/CurveCollection\";\r\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\r\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\r\nimport { Geometry } from \"../Geometry\";\r\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\r\nimport { Range3d } from \"../geometry3d/Range\";\r\nimport { Transform } from \"../geometry3d/Transform\";\r\nimport { SolidPrimitive } from \"./SolidPrimitive\";\r\nimport { SweepContour } from \"./SweepContour\";\r\n\r\n/**\r\n * * type for a function argument taking 2 curves and returning another curve or failing with undefined.\r\n * * This is used (for instance) by `RuleSweep.mutatePartners`\r\n * @public\r\n */\r\nexport type CurvePrimitiveMutator = (primitiveA: CurvePrimitive, primitiveB: CurvePrimitive) => CurvePrimitive | undefined;\r\n/**\r\n * A ruled sweep (surface) is a collection of 2 or more contours.\r\n * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves)\r\n * @public\r\n */\r\nexport class RuledSweep extends SolidPrimitive {\r\n /** String name for schema properties */\r\n public readonly solidPrimitiveType = \"ruledSweep\";\r\n\r\n private _contours: SweepContour[];\r\n private constructor(contours: SweepContour[], capped: boolean) {\r\n super(capped);\r\n this._contours = contours;\r\n }\r\n /**\r\n * Create a ruled sweep from an array of contours.\r\n * * the contours are CAPTURED (not cloned)\r\n */\r\n public static create(contours: AnyCurve[], capped: boolean): RuledSweep | undefined {\r\n const sweepContours = [];\r\n for (const contour of contours) {\r\n const sweepable = SweepContour.createForLinearSweep(contour);\r\n if (sweepable === undefined) return undefined;\r\n sweepContours.push(sweepable);\r\n }\r\n return new RuledSweep(sweepContours, capped);\r\n }\r\n /** Return a reference to the array of SweepContour. */\r\n public sweepContoursRef(): SweepContour[] { return this._contours; }\r\n /** Return clones of all the sweep contours\r\n * * See also cloneContours, which returns the spatial contours without their local coordinate system definitions)\r\n */\r\n public cloneSweepContours(): SweepContour[] {\r\n const result = [];\r\n for (const sweepable of this._contours) {\r\n result.push(sweepable.clone());\r\n }\r\n return result;\r\n }\r\n /** Return clones of all the contours\r\n * * See also cloneContours, which returns the contours in their local coordinate systems\r\n */\r\n public cloneContours(): CurveCollection[] {\r\n const result = [];\r\n for (const sweepable of this._contours) {\r\n result.push(sweepable.curves.clone());\r\n }\r\n return result;\r\n }\r\n /** Return a deep clone */\r\n public clone(): RuledSweep {\r\n return new RuledSweep(this.cloneSweepContours(), this.capped);\r\n }\r\n /** Transform all contours in place. */\r\n public tryTransformInPlace(transform: Transform): boolean {\r\n if (transform.matrix.isSingular())\r\n return false;\r\n for (const contour of this._contours) {\r\n contour.tryTransformInPlace(transform);\r\n }\r\n return true;\r\n }\r\n /** Return a cloned transform. */\r\n public cloneTransformed(transform: Transform): RuledSweep {\r\n const result = this.clone();\r\n result.tryTransformInPlace(transform);\r\n return result;\r\n }\r\n /** Return a coordinate frame (right handed unit vectors)\r\n * * origin on base contour\r\n * * x, y directions from base contour.\r\n * * z direction perpendicular\r\n */\r\n public getConstructiveFrame(): Transform | undefined {\r\n if (this._contours.length === 0) return undefined;\r\n return this._contours[0].localToWorld.cloneRigid();\r\n }\r\n /** Test if `other` is an instance of a `RuledSweep` */\r\n public isSameGeometryClass(other: any): boolean { return other instanceof RuledSweep; }\r\n /** test same contour geometry and capping. */\r\n public override isAlmostEqual(other: GeometryQuery): boolean {\r\n if (other instanceof RuledSweep) {\r\n if (this.capped !== other.capped) return false;\r\n if (this._contours.length !== other._contours.length) return false;\r\n for (let i = 0; i < this._contours.length; i++) {\r\n if (!this._contours[i].isAlmostEqual(other._contours[i]))\r\n return false;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** dispatch to strongly typed `handler.handleRuledSweep(this)` */\r\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\r\n return handler.handleRuledSweep(this);\r\n }\r\n /**\r\n * Return the section curves at a fraction of the sweep\r\n * @param vFraction fractional position along the sweep direction\r\n */\r\n public constantVSection(vFraction: number): CurveCollection | undefined {\r\n const numSection = this._contours.length;\r\n if (numSection < 2)\r\n return undefined;\r\n const q = vFraction * numSection;\r\n let section0 = 0;\r\n if (vFraction >= 1.0)\r\n section0 = numSection - 1;\r\n else\r\n section0 = Math.floor(q);\r\n if (section0 + 1 >= numSection)\r\n section0 = numSection - 2;\r\n const section1 = section0 + 1;\r\n const localFraction = Geometry.clampToStartEnd(q - section0, 0, 1);\r\n return RuledSweep.mutatePartners(this._contours[section0].curves, this._contours[section1].curves,\r\n (primitive0: CurvePrimitive, primitive1: CurvePrimitive): CurvePrimitive | undefined => {\r\n const newPrimitive = ConstructCurveBetweenCurves.interpolateBetween(primitive0, localFraction, primitive1);\r\n if (newPrimitive instanceof CurvePrimitive) return newPrimitive;\r\n return undefined;\r\n });\r\n }\r\n /** Pass each contour to `extendRange` */\r\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\r\n for (const contour of this._contours)\r\n contour.curves.extendRange(rangeToExtend, transform);\r\n }\r\n\r\n /** Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed by the caller-supplied primitiveMutator function.\r\n * @returns Returns undefined if there is any type mismatch between the two collections.\r\n */\r\n public static mutatePartners(collectionA: CurveCollection, collectionB: CurveCollection, primitiveMutator: CurvePrimitiveMutator): CurveCollection | undefined {\r\n if (!collectionA.isSameGeometryClass(collectionB))\r\n return undefined;\r\n if (collectionA instanceof CurveChain && collectionB instanceof CurveChain) {\r\n const chainA = collectionA;\r\n const chainB = collectionB;\r\n const chainC = chainA.cloneEmptyPeer() as CurveChain;\r\n const childrenA = chainA.children;\r\n const childrenB = chainB.children;\r\n if (childrenA.length !== childrenB.length)\r\n return undefined;\r\n for (let i = 0; i < childrenA.length; i++) {\r\n const newChild = primitiveMutator(childrenA[i], childrenB[i]);\r\n if (!newChild)\r\n return undefined;\r\n chainC.children.push(newChild);\r\n }\r\n return chainC;\r\n } else if (collectionA instanceof CurveCollection && collectionB instanceof CurveCollection) {\r\n const collectionC = collectionA.cloneEmptyPeer();\r\n const childrenA = collectionA.children;\r\n const childrenB = collectionB.children;\r\n const childrenC = collectionC.children;\r\n if (childrenA === undefined || childrenB === undefined || childrenC === undefined || childrenA.length !== childrenB.length)\r\n return undefined;\r\n for (let i = 0; i < childrenA.length; i++) {\r\n const childA = childrenA[i];\r\n const childB = childrenB[i];\r\n if (childA instanceof CurvePrimitive && childB instanceof CurvePrimitive) {\r\n const newPrimitive = primitiveMutator(childA, childB);\r\n if (!newPrimitive)\r\n return undefined;\r\n childrenC.push(newPrimitive);\r\n } else if (childA instanceof CurveCollection && childB instanceof CurveCollection) {\r\n const newChild = this.mutatePartners(childA, childB, primitiveMutator);\r\n if (!newChild)\r\n return undefined;\r\n if (newChild instanceof CurveCollection)\r\n childrenC.push(newChild);\r\n }\r\n }\r\n return collectionC;\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Return true if this is a closed volume, as observed by\r\n * * cap flag\r\n * identical first and last contours.\r\n */\r\n public get isClosedVolume(): boolean {\r\n const n = this._contours.length;\r\n return n > 1 && (this.capped || this._contours[0].isAlmostEqual(this._contours[n - 1]));\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"RuledSweep.js","sourceRoot":"","sources":["../../../src/solid/RuledSweep.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Solid\n */\n\nimport { ConstructCurveBetweenCurves } from \"../curve/ConstructCurveBetweenCurves\";\nimport { AnyCurve } from \"../curve/CurveTypes\";\nimport { CurveChain, CurveCollection } from \"../curve/CurveCollection\";\nimport { CurvePrimitive } from \"../curve/CurvePrimitive\";\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\nimport { Geometry } from \"../Geometry\";\nimport { GeometryHandler } from \"../geometry3d/GeometryHandler\";\nimport { Range3d } from \"../geometry3d/Range\";\nimport { Transform } from \"../geometry3d/Transform\";\nimport { SolidPrimitive } from \"./SolidPrimitive\";\nimport { SweepContour } from \"./SweepContour\";\n\n/**\n * Type for a function argument taking 2 curves and returning another curve or failing with undefined.\n * * This is used (for instance) by `RuleSweep.mutatePartners`.\n * @public\n */\nexport type CurvePrimitiveMutator = (primitiveA: CurvePrimitive, primitiveB: CurvePrimitive) => CurvePrimitive | undefined;\n/**\n * A ruled sweep (surface) is a collection of 2 or more contours.\n * * All contours must have identical number and type of geometry. (paths, loops, parity regions, lines, arcs, other curves).\n * @public\n */\nexport class RuledSweep extends SolidPrimitive {\n /** String name for schema properties. */\n public readonly solidPrimitiveType = \"ruledSweep\";\n\n private _contours: SweepContour[];\n private constructor(contours: SweepContour[], capped: boolean) {\n super(capped);\n this._contours = contours;\n }\n /**\n * Create a ruled sweep from an array of contours.\n * * The contours are CAPTURED (not cloned).\n */\n public static create(contours: AnyCurve[], capped: boolean): RuledSweep | undefined {\n const sweepContours = [];\n for (const contour of contours) {\n const sweepable = SweepContour.createForLinearSweep(contour);\n if (sweepable === undefined)\n return undefined;\n sweepContours.push(sweepable);\n }\n return new RuledSweep(sweepContours, capped);\n }\n /** Return a reference to the array of SweepContour. */\n public sweepContoursRef(): SweepContour[] {\n return this._contours;\n }\n /**\n * Return clones of the sweep contours.\n * * See also [[cloneContours]], which returns the contours without their local coordinate system definitions.\n */\n public cloneSweepContours(): SweepContour[] {\n const result = [];\n for (const sweepable of this._contours) {\n result.push(sweepable.clone());\n }\n return result;\n }\n /**\n * Return clones of the sweep contours, each as a [[CurveCollection]].\n * * See also [[cloneSweepContours]], which returns the contours with their local coordinate system definitions.\n */\n public cloneContours(): CurveCollection[] {\n const result = [];\n for (const sweepable of this._contours) {\n result.push(sweepable.curves.clone());\n }\n return result;\n }\n /** Return a deep clone. */\n public clone(): RuledSweep {\n return new RuledSweep(this.cloneSweepContours(), this.capped);\n }\n /**\n * Transform all contours in place.\n * * This fails if the transformation is singular.\n */\n public tryTransformInPlace(transform: Transform): boolean {\n if (transform.matrix.isSingular())\n return false;\n for (const contour of this._contours) {\n if (!contour.tryTransformInPlace(transform))\n return false;\n }\n return true;\n }\n /**\n * Return a transformed clone.\n * * This fails if the transformation is singular.\n */\n public cloneTransformed(transform: Transform): RuledSweep | undefined {\n const result = this.clone();\n return result.tryTransformInPlace(transform) ? result : undefined;\n }\n /**\n * Return a coordinate frame (right handed unit vectors)\n * * origin on base contour.\n * * x, y directions from base contour.\n * * z direction perpendicular.\n */\n public getConstructiveFrame(): Transform | undefined {\n if (this._contours.length === 0)\n return undefined;\n return this._contours[0].localToWorld.cloneRigid();\n }\n /** Test if `other` is an instance of a `RuledSweep`. */\n public isSameGeometryClass(other: any): boolean {\n return other instanceof RuledSweep;\n }\n /** Test for near equality of two RuledSweeps. */\n public override isAlmostEqual(other: GeometryQuery): boolean {\n if (other instanceof RuledSweep) {\n if (this.capped !== other.capped)\n return false;\n if (this._contours.length !== other._contours.length)\n return false;\n for (let i = 0; i < this._contours.length; i++) {\n if (!this._contours[i].isAlmostEqual(other._contours[i]))\n return false;\n }\n return true;\n }\n return false;\n }\n /** Dispatch to strongly typed `handler.handleRuledSweep(this)`. */\n public dispatchToGeometryHandler(handler: GeometryHandler): any {\n return handler.handleRuledSweep(this);\n }\n /**\n * Return the section curves at a fraction of the sweep.\n * @param vFraction fractional position along the sweep direction.\n */\n public constantVSection(vFraction: number): CurveCollection | undefined {\n const numSection = this._contours.length;\n if (numSection < 2)\n return undefined;\n const q = vFraction * numSection;\n let section0 = 0;\n if (vFraction >= 1.0)\n section0 = numSection - 1;\n else\n section0 = Math.floor(q);\n if (section0 + 1 >= numSection)\n section0 = numSection - 2;\n const section1 = section0 + 1;\n const localFraction = Geometry.clampToStartEnd(q - section0, 0, 1);\n return RuledSweep.mutatePartners(\n this._contours[section0].curves,\n this._contours[section1].curves,\n (primitive0: CurvePrimitive, primitive1: CurvePrimitive): CurvePrimitive | undefined => {\n const newPrimitive = ConstructCurveBetweenCurves.interpolateBetween(primitive0, localFraction, primitive1);\n if (newPrimitive instanceof CurvePrimitive) return newPrimitive;\n return undefined;\n },\n );\n }\n /** Pass each contour to `extendRange`. */\n public extendRange(rangeToExtend: Range3d, transform?: Transform): void {\n for (const contour of this._contours)\n contour.curves.extendRange(rangeToExtend, transform);\n }\n\n /**\n * Construct a CurveCollection with the same structure as collectionA and collectionB, with primitives constructed\n * by the caller-supplied primitiveMutator function.\n * @returns Returns undefined if there is any type mismatch between the two collections.\n */\n public static mutatePartners(\n collectionA: CurveCollection, collectionB: CurveCollection, primitiveMutator: CurvePrimitiveMutator,\n ): CurveCollection | undefined {\n if (!collectionA.isSameGeometryClass(collectionB))\n return undefined;\n if (collectionA instanceof CurveChain && collectionB instanceof CurveChain) {\n const chainA = collectionA;\n const chainB = collectionB;\n const chainC = chainA.cloneEmptyPeer() as CurveChain;\n const childrenA = chainA.children;\n const childrenB = chainB.children;\n if (childrenA.length !== childrenB.length)\n return undefined;\n for (let i = 0; i < childrenA.length; i++) {\n const newChild = primitiveMutator(childrenA[i], childrenB[i]);\n if (!newChild)\n return undefined;\n chainC.children.push(newChild);\n }\n return chainC;\n } else if (collectionA instanceof CurveCollection && collectionB instanceof CurveCollection) {\n const collectionC = collectionA.cloneEmptyPeer();\n const childrenA = collectionA.children;\n const childrenB = collectionB.children;\n const childrenC = collectionC.children;\n if (childrenA === undefined || childrenB === undefined || childrenC === undefined || childrenA.length !== childrenB.length)\n return undefined;\n for (let i = 0; i < childrenA.length; i++) {\n const childA = childrenA[i];\n const childB = childrenB[i];\n if (childA instanceof CurvePrimitive && childB instanceof CurvePrimitive) {\n const newPrimitive = primitiveMutator(childA, childB);\n if (!newPrimitive)\n return undefined;\n childrenC.push(newPrimitive);\n } else if (childA instanceof CurveCollection && childB instanceof CurveCollection) {\n const newChild = this.mutatePartners(childA, childB, primitiveMutator);\n if (!newChild)\n return undefined;\n if (newChild instanceof CurveCollection)\n childrenC.push(newChild);\n }\n }\n return collectionC;\n }\n return undefined;\n }\n /**\n * @return true if this is a closed volume.\n */\n public get isClosedVolume(): boolean {\n const n = this._contours.length;\n return n > 1 && (this.capped || this._contours[0].isAlmostEqual(this._contours[n - 1]));\n }\n}\n"]}
|
|
@@ -11,8 +11,9 @@ import { RotationalSweep } from "./RotationalSweep";
|
|
|
11
11
|
import { RuledSweep } from "./RuledSweep";
|
|
12
12
|
import { Sphere } from "./Sphere";
|
|
13
13
|
import { TorusPipe } from "./TorusPipe";
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
14
|
+
/**
|
|
15
|
+
* Describes the concrete type of a [[SolidPrimitive]]. Each type name maps to a specific subclass and can be used for
|
|
16
|
+
* type-switching in conditional statements.
|
|
16
17
|
* - "box" => [[Box]]
|
|
17
18
|
* - "cone" => [[Cone]]
|
|
18
19
|
* - "sphere" => [[Sphere]]
|
|
@@ -20,39 +21,39 @@ import { TorusPipe } from "./TorusPipe";
|
|
|
20
21
|
* - "rotationalSweep" => [[RotationalSweep]]
|
|
21
22
|
* - "ruledSweep" => [[RuledSweep]]
|
|
22
23
|
* - "torusPipe" => [[TorusPipe]]
|
|
23
|
-
*
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export type SolidPrimitiveType = "box" | "cone" | "sphere" | "linearSweep" | "rotationalSweep" | "ruledSweep" | "torusPipe";
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Union type of all subclasses of [[SolidPrimitive]].
|
|
28
29
|
* @public
|
|
29
30
|
*/
|
|
30
31
|
export type AnySolidPrimitive = Box | Cone | Sphere | LinearSweep | RotationalSweep | RuledSweep | TorusPipe;
|
|
31
32
|
/**
|
|
32
33
|
* Base class for SolidPrimitive variants.
|
|
33
|
-
*
|
|
34
34
|
* * The base class holds capped flag for all derived classes.
|
|
35
35
|
* @public
|
|
36
36
|
*/
|
|
37
37
|
export declare abstract class SolidPrimitive extends GeometryQuery {
|
|
38
|
-
/** String name for schema properties */
|
|
38
|
+
/** String name for schema properties. */
|
|
39
39
|
readonly geometryCategory = "solid";
|
|
40
|
-
/** String name for schema properties */
|
|
40
|
+
/** String name for schema properties. */
|
|
41
41
|
abstract readonly solidPrimitiveType: SolidPrimitiveType;
|
|
42
|
-
/**
|
|
42
|
+
/** Flag indicating whether cap region is considered closed (i.e. a planar region, rather than just a wire in space). */
|
|
43
43
|
protected _capped: boolean;
|
|
44
44
|
protected constructor(capped: boolean);
|
|
45
|
-
/** Whether this is a capped solid */
|
|
45
|
+
/** Whether this is a capped solid. */
|
|
46
46
|
get capped(): boolean;
|
|
47
47
|
set capped(capped: boolean);
|
|
48
48
|
/** Return a cross section at specified vFraction. */
|
|
49
49
|
abstract constantVSection(_vFraction: number): CurveCollection | undefined;
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Return a Transform from the local system of the solid to world.
|
|
51
52
|
* * The particulars of origin and orientation are specific to each SolidPrimitive type.
|
|
52
53
|
*/
|
|
53
54
|
abstract getConstructiveFrame(): Transform | undefined;
|
|
54
55
|
/**
|
|
55
|
-
*
|
|
56
|
+
* Return true if this is a closed volume
|
|
56
57
|
* * LinearSweep, Box, Cone only depend on capped.
|
|
57
58
|
* * Sphere affected by capped and latitude sweep
|
|
58
59
|
* * TorusPipe and RotationalSweep affected by capped and sweep
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidPrimitive.d.ts","sourceRoot":"","sources":["../../../src/solid/SolidPrimitive.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5H
|
|
1
|
+
{"version":3,"file":"SolidPrimitive.d.ts","sourceRoot":"","sources":["../../../src/solid/SolidPrimitive.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5H;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7G;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,aAAa;IACxD,yCAAyC;IACzC,SAAgB,gBAAgB,WAAW;IAC3C,yCAAyC;IACzC,kBAAyB,kBAAkB,EAAE,kBAAkB,CAAC;IAChE,wHAAwH;IACxH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,aAAa,MAAM,EAAE,OAAO;IAIrC,sCAAsC;IACtC,IAAW,MAAM,IAAI,OAAO,CAE3B;IACD,IAAW,MAAM,CAAC,MAAM,EAAE,OAAO,EAEhC;IACD,qDAAqD;aACrC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IACjF;;;OAGG;aACa,oBAAoB,IAAI,SAAS,GAAG,SAAS;IAC7D;;;;;;OAMG;IACH,aAAoB,cAAc,IAAI,OAAO,CAAC;CAC/C"}
|
|
@@ -8,20 +8,25 @@ exports.SolidPrimitive = void 0;
|
|
|
8
8
|
const GeometryQuery_1 = require("../curve/GeometryQuery");
|
|
9
9
|
/**
|
|
10
10
|
* Base class for SolidPrimitive variants.
|
|
11
|
-
*
|
|
12
11
|
* * The base class holds capped flag for all derived classes.
|
|
13
12
|
* @public
|
|
14
13
|
*/
|
|
15
14
|
class SolidPrimitive extends GeometryQuery_1.GeometryQuery {
|
|
15
|
+
/** String name for schema properties. */
|
|
16
|
+
geometryCategory = "solid";
|
|
17
|
+
/** Flag indicating whether cap region is considered closed (i.e. a planar region, rather than just a wire in space). */
|
|
18
|
+
_capped;
|
|
16
19
|
constructor(capped) {
|
|
17
20
|
super();
|
|
18
|
-
/** String name for schema properties */
|
|
19
|
-
this.geometryCategory = "solid";
|
|
20
21
|
this._capped = capped;
|
|
21
22
|
}
|
|
22
|
-
/** Whether this is a capped solid */
|
|
23
|
-
get capped() {
|
|
24
|
-
|
|
23
|
+
/** Whether this is a capped solid. */
|
|
24
|
+
get capped() {
|
|
25
|
+
return this._capped;
|
|
26
|
+
}
|
|
27
|
+
set capped(capped) {
|
|
28
|
+
this._capped = capped;
|
|
29
|
+
}
|
|
25
30
|
}
|
|
26
31
|
exports.SolidPrimitive = SolidPrimitive;
|
|
27
32
|
//# sourceMappingURL=SolidPrimitive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidPrimitive.js","sourceRoot":"","sources":["../../../src/solid/SolidPrimitive.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAO/F,0DAAuD;
|
|
1
|
+
{"version":3,"file":"SolidPrimitive.js","sourceRoot":"","sources":["../../../src/solid/SolidPrimitive.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAO/F,0DAAuD;AA8BvD;;;;GAIG;AACH,MAAsB,cAAe,SAAQ,6BAAa;IACxD,yCAAyC;IACzB,gBAAgB,GAAG,OAAO,CAAC;IAG3C,wHAAwH;IAC9G,OAAO,CAAU;IAC3B,YAAsB,MAAe;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IACD,sCAAsC;IACtC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,MAAM,CAAC,MAAe;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;CAgBF;AAjCD,wCAiCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Solid\n */\n\nimport { CurveCollection } from \"../curve/CurveCollection\";\nimport { GeometryQuery } from \"../curve/GeometryQuery\";\nimport { Transform } from \"../geometry3d/Transform\";\nimport { Box } from \"./Box\";\nimport { Cone } from \"./Cone\";\nimport { LinearSweep } from \"./LinearSweep\";\nimport { RotationalSweep } from \"./RotationalSweep\";\nimport { RuledSweep } from \"./RuledSweep\";\nimport { Sphere } from \"./Sphere\";\nimport { TorusPipe } from \"./TorusPipe\";\n\n/**\n * Describes the concrete type of a [[SolidPrimitive]]. Each type name maps to a specific subclass and can be used for\n * type-switching in conditional statements.\n * - \"box\" => [[Box]]\n * - \"cone\" => [[Cone]]\n * - \"sphere\" => [[Sphere]]\n * - \"linearSweep\" => [[LinearSweep]]\n * - \"rotationalSweep\" => [[RotationalSweep]]\n * - \"ruledSweep\" => [[RuledSweep]]\n * - \"torusPipe\" => [[TorusPipe]]\n * @public\n */\nexport type SolidPrimitiveType = \"box\" | \"cone\" | \"sphere\" | \"linearSweep\" | \"rotationalSweep\" | \"ruledSweep\" | \"torusPipe\";\n\n/**\n * Union type of all subclasses of [[SolidPrimitive]].\n * @public\n */\nexport type AnySolidPrimitive = Box | Cone | Sphere | LinearSweep | RotationalSweep | RuledSweep | TorusPipe;\n\n/**\n * Base class for SolidPrimitive variants.\n * * The base class holds capped flag for all derived classes.\n * @public\n */\nexport abstract class SolidPrimitive extends GeometryQuery {\n /** String name for schema properties. */\n public readonly geometryCategory = \"solid\";\n /** String name for schema properties. */\n public abstract readonly solidPrimitiveType: SolidPrimitiveType;\n /** Flag indicating whether cap region is considered closed (i.e. a planar region, rather than just a wire in space). */\n protected _capped: boolean;\n protected constructor(capped: boolean) {\n super();\n this._capped = capped;\n }\n /** Whether this is a capped solid. */\n public get capped(): boolean {\n return this._capped;\n }\n public set capped(capped: boolean) {\n this._capped = capped;\n }\n /** Return a cross section at specified vFraction. */\n public abstract constantVSection(_vFraction: number): CurveCollection | undefined;\n /**\n * Return a Transform from the local system of the solid to world.\n * * The particulars of origin and orientation are specific to each SolidPrimitive type.\n */\n public abstract getConstructiveFrame(): Transform | undefined;\n /**\n * Return true if this is a closed volume\n * * LinearSweep, Box, Cone only depend on capped.\n * * Sphere affected by capped and latitude sweep\n * * TorusPipe and RotationalSweep affected by capped and sweep\n * * RuledSweep is affected by capped and match of first, last contour\n */\n public abstract get isClosedVolume(): boolean;\n}\n"]}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Solid
|
|
3
|
+
*/
|
|
4
|
+
import { Arc3d } from "../curve/Arc3d";
|
|
2
5
|
import { GeometryQuery } from "../curve/GeometryQuery";
|
|
3
6
|
import { LineString3d } from "../curve/LineString3d";
|
|
7
|
+
import { Loop } from "../curve/Loop";
|
|
4
8
|
import { StrokeOptions } from "../curve/StrokeOptions";
|
|
5
9
|
import { AngleSweep } from "../geometry3d/AngleSweep";
|
|
6
10
|
import { GeometryHandler, UVSurface } from "../geometry3d/GeometryHandler";
|
|
@@ -12,11 +16,13 @@ import { Range3d } from "../geometry3d/Range";
|
|
|
12
16
|
import { Transform } from "../geometry3d/Transform";
|
|
13
17
|
import { SolidPrimitive } from "./SolidPrimitive";
|
|
14
18
|
/**
|
|
15
|
-
* A
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* *
|
|
19
|
-
*
|
|
19
|
+
* A unit sphere mapped by an arbitrary [[Transform]].
|
|
20
|
+
* * Typically, the stored matrix has orthogonal columns. In this case, if two columns have equal length, the
|
|
21
|
+
* resulting geometry is ellipsoidal; if all three columns have equal length, the resulting geometry is a sphere.
|
|
22
|
+
* * Creating a Sphere without orthogonal columns is possible but not recommended, for the resulting geometry
|
|
23
|
+
* lacks portability; for example, such a Sphere cannot be represented as a DGN element (see [[createDgnSphere]]).
|
|
24
|
+
* * An optional latitude sweep allows for partial spheres with or without caps.
|
|
25
|
+
* * Compare to [[Ellipsoid]], which has the same parameterization, but acts as a closed [[Clipper]].
|
|
20
26
|
* @public
|
|
21
27
|
*/
|
|
22
28
|
export declare class Sphere extends SolidPrimitive implements UVSurface {
|
|
@@ -32,28 +38,39 @@ export declare class Sphere extends SolidPrimitive implements UVSurface {
|
|
|
32
38
|
private constructor();
|
|
33
39
|
/** return a deep clone */
|
|
34
40
|
clone(): Sphere;
|
|
35
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Transform the sphere in place.
|
|
36
43
|
* * Fails if the transform is singular.
|
|
37
44
|
*/
|
|
38
45
|
tryTransformInPlace(transform: Transform): boolean;
|
|
39
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Return a transformed clone.
|
|
48
|
+
* * Fails if the transform is singular.
|
|
49
|
+
*/
|
|
40
50
|
cloneTransformed(transform: Transform): Sphere | undefined;
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
43
|
-
* *
|
|
44
|
-
* *
|
|
51
|
+
/**
|
|
52
|
+
* Construct a rigid coordinate frame from the local coordinate frame.
|
|
53
|
+
* * The returned frame is right-handed, with perpendicular unit axes.
|
|
54
|
+
* * Compare to [[cloneLocalToWorld]].
|
|
45
55
|
*/
|
|
46
56
|
getConstructiveFrame(): Transform | undefined;
|
|
47
57
|
/** Return the latitude sweep as fraction of south pole to north pole. */
|
|
48
58
|
get latitudeSweepFraction(): number;
|
|
49
59
|
/** Create from center and radius, with optional restricted latitudes. */
|
|
50
|
-
static createCenterRadius(center: Point3d, radius: number, latitudeSweep?: AngleSweep): Sphere;
|
|
60
|
+
static createCenterRadius(center: Point3d, radius: number, latitudeSweep?: AngleSweep, capped?: boolean): Sphere;
|
|
51
61
|
/** Create an ellipsoid which is a unit sphere mapped to position by an (arbitrary, possibly skewed and scaled) transform. */
|
|
52
|
-
static createEllipsoid(localToWorld: Transform, latitudeSweep
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
static createEllipsoid(localToWorld: Transform, latitudeSweep?: AngleSweep, capped?: boolean): Sphere | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Create a sphere from the typical parameters of the DGN file.
|
|
65
|
+
* * This method normalizes the input vectors, squares `vectorX` against `vectorZ`, and scales the radii by the vectors' original lengths.
|
|
66
|
+
* * These restrictions allow the sphere to be represented by an element in the DGN file.
|
|
67
|
+
*/
|
|
68
|
+
static createDgnSphere(center: Point3d, vectorX: Vector3d, vectorZ: Vector3d, radiusXY: number, radiusZ: number, latitudeSweep?: AngleSweep, capped?: boolean): Sphere | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Create a sphere.
|
|
71
|
+
* * If `axes` is supplied, its columns are scaled by the radii to form the sphere's local frame.
|
|
72
|
+
*/
|
|
73
|
+
static createFromAxesAndScales(center: Point3d, axes: undefined | Matrix3d, radiusX: number, radiusY: number, radiusZ: number, latitudeSweep?: AngleSweep, capped?: boolean): Sphere | undefined;
|
|
57
74
|
/** return (copy of) sphere center */
|
|
58
75
|
cloneCenter(): Point3d;
|
|
59
76
|
/** return the (full length, i.e. scaled by radius) X vector from the sphere transform */
|
|
@@ -72,6 +89,7 @@ export declare class Sphere extends SolidPrimitive implements UVSurface {
|
|
|
72
89
|
maxAxisRadius(): number;
|
|
73
90
|
/**
|
|
74
91
|
* Return a (clone of) the sphere's local to world transformation.
|
|
92
|
+
* * Compare to [[getConstructiveFrame]].
|
|
75
93
|
*/
|
|
76
94
|
cloneLocalToWorld(): Transform;
|
|
77
95
|
/** Test if `other` is a `Sphere` */
|
|
@@ -79,19 +97,30 @@ export declare class Sphere extends SolidPrimitive implements UVSurface {
|
|
|
79
97
|
/** Test for same geometry in `other` */
|
|
80
98
|
isAlmostEqual(other: GeometryQuery): boolean;
|
|
81
99
|
/**
|
|
82
|
-
*
|
|
83
|
-
* *
|
|
84
|
-
*
|
|
85
|
-
*
|
|
100
|
+
* Return strokes for the elliptical arc cross-section at latitude sweep fraction v.
|
|
101
|
+
* * Optional inputs control the number of strokes along the cross-section:
|
|
102
|
+
* * If `fixedStrokeCount` is supplied, it is taken as the cross-section stroke count.
|
|
103
|
+
* * If `fixedStrokeCount` is undefined, stroke count is computed by applying `options` to the cross-section.
|
|
104
|
+
* * If neither input is supplied, the stroke count default is 16.
|
|
105
|
+
* * In any case, stroke count is clamped to the interval [4,64].
|
|
106
|
+
* @param v fractional position along the sphere axis
|
|
107
|
+
* @param fixedStrokeCount optional stroke count in u-direction
|
|
108
|
+
* @param options optional stroke options in u-direction
|
|
109
|
+
* @return strokes as line string
|
|
86
110
|
*/
|
|
87
|
-
strokeConstantVSection(v: number, fixedStrokeCount
|
|
111
|
+
strokeConstantVSection(v: number, fixedStrokeCount?: number, options?: StrokeOptions): LineString3d;
|
|
88
112
|
/** Second step of double dispatch: call `handler.handleSphere(this)` */
|
|
89
113
|
dispatchToGeometryHandler(handler: GeometryHandler): any;
|
|
114
|
+
/**
|
|
115
|
+
* Return the Arc3d section at uFraction. For the sphere, this is a meridian arc.
|
|
116
|
+
* @param uFraction fractional position along the equator.
|
|
117
|
+
*/
|
|
118
|
+
constantUSection(uFraction: number): Arc3d;
|
|
90
119
|
/**
|
|
91
120
|
* Return the Arc3d section at vFraction. For the sphere, this is a latitude circle.
|
|
92
121
|
* @param vFraction fractional position along the sweep direction
|
|
93
122
|
*/
|
|
94
|
-
constantVSection(vFraction: number):
|
|
123
|
+
constantVSection(vFraction: number): Loop;
|
|
95
124
|
/** Extend a range to contain this sphere. */
|
|
96
125
|
extendRange(range: Range3d, transform?: Transform): void;
|
|
97
126
|
/** Evaluate as a uv surface
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sphere.d.ts","sourceRoot":"","sources":["../../../src/solid/Sphere.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Sphere.d.ts","sourceRoot":"","sources":["../../../src/solid/Sphere.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/solid/Sphere.js
CHANGED
|
@@ -13,6 +13,7 @@ const LineString3d_1 = require("../curve/LineString3d");
|
|
|
13
13
|
const Loop_1 = require("../curve/Loop");
|
|
14
14
|
const StrokeOptions_1 = require("../curve/StrokeOptions");
|
|
15
15
|
const Geometry_1 = require("../Geometry");
|
|
16
|
+
const Angle_1 = require("../geometry3d/Angle");
|
|
16
17
|
const AngleSweep_1 = require("../geometry3d/AngleSweep");
|
|
17
18
|
const Matrix3d_1 = require("../geometry3d/Matrix3d");
|
|
18
19
|
const Plane3dByOriginAndVectors_1 = require("../geometry3d/Plane3dByOriginAndVectors");
|
|
@@ -21,14 +22,20 @@ const Point3dVector3d_1 = require("../geometry3d/Point3dVector3d");
|
|
|
21
22
|
const Transform_1 = require("../geometry3d/Transform");
|
|
22
23
|
const SolidPrimitive_1 = require("./SolidPrimitive");
|
|
23
24
|
/**
|
|
24
|
-
* A
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* *
|
|
28
|
-
*
|
|
25
|
+
* A unit sphere mapped by an arbitrary [[Transform]].
|
|
26
|
+
* * Typically, the stored matrix has orthogonal columns. In this case, if two columns have equal length, the
|
|
27
|
+
* resulting geometry is ellipsoidal; if all three columns have equal length, the resulting geometry is a sphere.
|
|
28
|
+
* * Creating a Sphere without orthogonal columns is possible but not recommended, for the resulting geometry
|
|
29
|
+
* lacks portability; for example, such a Sphere cannot be represented as a DGN element (see [[createDgnSphere]]).
|
|
30
|
+
* * An optional latitude sweep allows for partial spheres with or without caps.
|
|
31
|
+
* * Compare to [[Ellipsoid]], which has the same parameterization, but acts as a closed [[Clipper]].
|
|
29
32
|
* @public
|
|
30
33
|
*/
|
|
31
34
|
class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
35
|
+
/** String name for schema properties */
|
|
36
|
+
solidPrimitiveType = "sphere";
|
|
37
|
+
_localToWorld; // local coordinates = unit sphere at origin
|
|
38
|
+
_latitudeSweep;
|
|
32
39
|
/** Return the latitude (in radians) all fractional v. */
|
|
33
40
|
vFractionToRadians(v) {
|
|
34
41
|
return this._latitudeSweep.fractionToRadians(v);
|
|
@@ -40,40 +47,38 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
40
47
|
/** Constructor CAPTURES inputs */
|
|
41
48
|
constructor(localToWorld, latitudeSweep, capped) {
|
|
42
49
|
super(capped);
|
|
43
|
-
/** String name for schema properties */
|
|
44
|
-
this.solidPrimitiveType = "sphere";
|
|
45
50
|
this._localToWorld = localToWorld;
|
|
46
|
-
this._latitudeSweep = latitudeSweep
|
|
51
|
+
this._latitudeSweep = latitudeSweep;
|
|
47
52
|
this._latitudeSweep.capLatitudeInPlace();
|
|
48
53
|
}
|
|
49
54
|
/** return a deep clone */
|
|
50
55
|
clone() {
|
|
51
56
|
return new Sphere(this._localToWorld.clone(), this._latitudeSweep.clone(), this.capped);
|
|
52
57
|
}
|
|
53
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Transform the sphere in place.
|
|
54
60
|
* * Fails if the transform is singular.
|
|
55
61
|
*/
|
|
56
62
|
tryTransformInPlace(transform) {
|
|
57
63
|
if (transform.matrix.isSingular())
|
|
58
64
|
return false;
|
|
59
65
|
transform.multiplyTransformTransform(this._localToWorld, this._localToWorld);
|
|
66
|
+
if (transform.matrix.determinant() < 0.0)
|
|
67
|
+
this._latitudeSweep.reverseInPlace();
|
|
60
68
|
return true;
|
|
61
69
|
}
|
|
62
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Return a transformed clone.
|
|
72
|
+
* * Fails if the transform is singular.
|
|
73
|
+
*/
|
|
63
74
|
cloneTransformed(transform) {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
if (transform.matrix.determinant() < 0.0) {
|
|
67
|
-
if (sphere1._latitudeSweep !== undefined) {
|
|
68
|
-
sphere1._latitudeSweep.reverseInPlace();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return sphere1;
|
|
75
|
+
const result = this.clone();
|
|
76
|
+
return result.tryTransformInPlace(transform) ? result : undefined;
|
|
72
77
|
}
|
|
73
|
-
/**
|
|
74
|
-
*
|
|
75
|
-
* *
|
|
76
|
-
* *
|
|
78
|
+
/**
|
|
79
|
+
* Construct a rigid coordinate frame from the local coordinate frame.
|
|
80
|
+
* * The returned frame is right-handed, with perpendicular unit axes.
|
|
81
|
+
* * Compare to [[cloneLocalToWorld]].
|
|
77
82
|
*/
|
|
78
83
|
getConstructiveFrame() {
|
|
79
84
|
return this._localToWorld.cloneRigid();
|
|
@@ -81,30 +86,37 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
81
86
|
/** Return the latitude sweep as fraction of south pole to north pole. */
|
|
82
87
|
get latitudeSweepFraction() { return this._latitudeSweep.sweepRadians / Math.PI; }
|
|
83
88
|
/** Create from center and radius, with optional restricted latitudes. */
|
|
84
|
-
static createCenterRadius(center, radius, latitudeSweep) {
|
|
89
|
+
static createCenterRadius(center, radius, latitudeSweep, capped) {
|
|
85
90
|
const localToWorld = Transform_1.Transform.createOriginAndMatrix(center, Matrix3d_1.Matrix3d.createUniformScale(radius));
|
|
86
|
-
return new Sphere(localToWorld, latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), false);
|
|
91
|
+
return new Sphere(localToWorld, latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), capped ?? false);
|
|
87
92
|
}
|
|
88
93
|
/** Create an ellipsoid which is a unit sphere mapped to position by an (arbitrary, possibly skewed and scaled) transform. */
|
|
89
94
|
static createEllipsoid(localToWorld, latitudeSweep, capped) {
|
|
90
|
-
return new Sphere(localToWorld.clone(), latitudeSweep.clone(), capped);
|
|
95
|
+
return new Sphere(localToWorld.clone(), latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), capped ?? false);
|
|
91
96
|
}
|
|
92
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* Create a sphere from the typical parameters of the DGN file.
|
|
99
|
+
* * This method normalizes the input vectors, squares `vectorX` against `vectorZ`, and scales the radii by the vectors' original lengths.
|
|
100
|
+
* * These restrictions allow the sphere to be represented by an element in the DGN file.
|
|
101
|
+
*/
|
|
93
102
|
static createDgnSphere(center, vectorX, vectorZ, radiusXY, radiusZ, latitudeSweep, capped) {
|
|
94
|
-
const
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const frame = Transform_1.Transform.createOriginAndMatrix(center,
|
|
99
|
-
return new Sphere(frame, latitudeSweep.clone(), capped);
|
|
103
|
+
const rigidMatrix = Matrix3d_1.Matrix3d.createRigidFromColumns(vectorZ, vectorX, Geometry_1.AxisOrder.ZXY);
|
|
104
|
+
if (rigidMatrix) {
|
|
105
|
+
radiusXY *= vectorX.magnitude();
|
|
106
|
+
rigidMatrix.scaleColumns(radiusXY, radiusXY, radiusZ * vectorZ.magnitude(), rigidMatrix);
|
|
107
|
+
const frame = Transform_1.Transform.createOriginAndMatrix(center, rigidMatrix);
|
|
108
|
+
return new Sphere(frame, latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), capped ?? false);
|
|
100
109
|
}
|
|
101
110
|
return undefined;
|
|
102
111
|
}
|
|
103
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Create a sphere.
|
|
114
|
+
* * If `axes` is supplied, its columns are scaled by the radii to form the sphere's local frame.
|
|
115
|
+
*/
|
|
104
116
|
static createFromAxesAndScales(center, axes, radiusX, radiusY, radiusZ, latitudeSweep, capped) {
|
|
105
117
|
const localToWorld = Transform_1.Transform.createOriginAndMatrix(center, axes);
|
|
106
118
|
localToWorld.matrix.scaleColumnsInPlace(radiusX, radiusY, radiusZ);
|
|
107
|
-
return new Sphere(localToWorld, latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), capped);
|
|
119
|
+
return new Sphere(localToWorld, latitudeSweep ? latitudeSweep.clone() : AngleSweep_1.AngleSweep.createFullLatitude(), capped ?? false);
|
|
108
120
|
}
|
|
109
121
|
/** return (copy of) sphere center */
|
|
110
122
|
cloneCenter() { return this._localToWorld.getOrigin(); }
|
|
@@ -134,8 +146,11 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
134
146
|
}
|
|
135
147
|
/**
|
|
136
148
|
* Return a (clone of) the sphere's local to world transformation.
|
|
149
|
+
* * Compare to [[getConstructiveFrame]].
|
|
137
150
|
*/
|
|
138
|
-
cloneLocalToWorld() {
|
|
151
|
+
cloneLocalToWorld() {
|
|
152
|
+
return this._localToWorld.clone();
|
|
153
|
+
}
|
|
139
154
|
/** Test if `other` is a `Sphere` */
|
|
140
155
|
isSameGeometryClass(other) { return other instanceof Sphere; }
|
|
141
156
|
/** Test for same geometry in `other` */
|
|
@@ -150,10 +165,16 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
150
165
|
return false;
|
|
151
166
|
}
|
|
152
167
|
/**
|
|
153
|
-
*
|
|
154
|
-
* *
|
|
155
|
-
*
|
|
156
|
-
*
|
|
168
|
+
* Return strokes for the elliptical arc cross-section at latitude sweep fraction v.
|
|
169
|
+
* * Optional inputs control the number of strokes along the cross-section:
|
|
170
|
+
* * If `fixedStrokeCount` is supplied, it is taken as the cross-section stroke count.
|
|
171
|
+
* * If `fixedStrokeCount` is undefined, stroke count is computed by applying `options` to the cross-section.
|
|
172
|
+
* * If neither input is supplied, the stroke count default is 16.
|
|
173
|
+
* * In any case, stroke count is clamped to the interval [4,64].
|
|
174
|
+
* @param v fractional position along the sphere axis
|
|
175
|
+
* @param fixedStrokeCount optional stroke count in u-direction
|
|
176
|
+
* @param options optional stroke options in u-direction
|
|
177
|
+
* @return strokes as line string
|
|
157
178
|
*/
|
|
158
179
|
strokeConstantVSection(v, fixedStrokeCount, options) {
|
|
159
180
|
let strokeCount = 16;
|
|
@@ -169,7 +190,7 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
169
190
|
const c1 = Math.cos(phi);
|
|
170
191
|
const s1 = Math.sin(phi);
|
|
171
192
|
let c0, s0;
|
|
172
|
-
const result = LineString3d_1.LineString3d.createForStrokes(
|
|
193
|
+
const result = LineString3d_1.LineString3d.createForStrokes(strokeCount, options);
|
|
173
194
|
const deltaRadians = Math.PI * 2.0 / strokeCount;
|
|
174
195
|
const fractions = result.fractions; // possibly undefined !!!
|
|
175
196
|
const derivatives = result.packedDerivatives; // possibly undefined !!!
|
|
@@ -210,6 +231,20 @@ class Sphere extends SolidPrimitive_1.SolidPrimitive {
|
|
|
210
231
|
dispatchToGeometryHandler(handler) {
|
|
211
232
|
return handler.handleSphere(this);
|
|
212
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Return the Arc3d section at uFraction. For the sphere, this is a meridian arc.
|
|
236
|
+
* @param uFraction fractional position along the equator.
|
|
237
|
+
*/
|
|
238
|
+
constantUSection(uFraction) {
|
|
239
|
+
const phi = AngleSweep_1.AngleSweep.fractionToSignedPeriodicFractionStartEnd(uFraction, 0, Angle_1.Angle.pi2Radians, false);
|
|
240
|
+
const s1 = Math.sin(phi);
|
|
241
|
+
const c1 = Math.cos(phi);
|
|
242
|
+
const transform = this._localToWorld;
|
|
243
|
+
const center = transform.getOrigin();
|
|
244
|
+
const vector0 = transform.matrix.multiplyXYZ(c1, s1, 0);
|
|
245
|
+
const vector90 = transform.matrix.multiplyXYZ(0, 0, 1);
|
|
246
|
+
return Arc3d_1.Arc3d.create(center, vector0, vector90, this._latitudeSweep);
|
|
247
|
+
}
|
|
213
248
|
/**
|
|
214
249
|
* Return the Arc3d section at vFraction. For the sphere, this is a latitude circle.
|
|
215
250
|
* @param vFraction fractional position along the sweep direction
|