@itwin/core-geometry 4.10.0-dev.9 → 5.0.0-dev.0
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 +21 -1
- package/lib/cjs/Geometry.js +2 -2
- package/lib/cjs/Geometry.js.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/cjs/bspline/BSpline1dNd.js +0 -1
- package/lib/cjs/bspline/BSpline1dNd.js.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.d.ts +5 -3
- package/lib/cjs/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/cjs/bspline/BSplineCurve.js +5 -4
- package/lib/cjs/bspline/BSplineCurve.js.map +1 -1
- package/lib/cjs/clipping/ClipVector.js +1 -1
- package/lib/cjs/clipping/ClipVector.js.map +1 -1
- package/lib/cjs/core-geometry.d.ts +1 -1
- package/lib/cjs/core-geometry.d.ts.map +1 -1
- package/lib/cjs/core-geometry.js +1 -1
- package/lib/cjs/core-geometry.js.map +1 -1
- package/lib/cjs/curve/Arc3d.d.ts +136 -128
- package/lib/cjs/curve/Arc3d.d.ts.map +1 -1
- package/lib/cjs/curve/Arc3d.js +177 -152
- package/lib/cjs/curve/Arc3d.js.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts +7 -5
- package/lib/cjs/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js +9 -7
- package/lib/cjs/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/cjs/curve/CurveCollection.d.ts +21 -2
- package/lib/cjs/curve/CurveCollection.d.ts.map +1 -1
- package/lib/cjs/curve/CurveCollection.js +45 -10
- package/lib/cjs/curve/CurveCollection.js.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.d.ts +18 -15
- package/lib/cjs/curve/CurveExtendMode.d.ts.map +1 -1
- package/lib/cjs/curve/CurveExtendMode.js +18 -17
- package/lib/cjs/curve/CurveExtendMode.js.map +1 -1
- package/lib/cjs/curve/CurveFactory.d.ts +11 -13
- package/lib/cjs/curve/CurveFactory.d.ts.map +1 -1
- package/lib/cjs/curve/CurveFactory.js +19 -46
- package/lib/cjs/curve/CurveFactory.js.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.d.ts +9 -5
- package/lib/cjs/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/cjs/curve/CurvePrimitive.js +9 -5
- package/lib/cjs/curve/CurvePrimitive.js.map +1 -1
- package/lib/cjs/curve/CurveProcessor.d.ts.map +1 -1
- package/lib/cjs/curve/CurveProcessor.js +0 -1
- package/lib/cjs/curve/CurveProcessor.js.map +1 -1
- package/lib/cjs/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/cjs/curve/LineSegment3d.js +2 -3
- package/lib/cjs/curve/LineSegment3d.js.map +1 -1
- package/lib/cjs/curve/LineString3d.d.ts.map +1 -1
- package/lib/cjs/curve/OffsetOptions.d.ts.map +1 -1
- package/lib/cjs/curve/OffsetOptions.js +4 -4
- package/lib/cjs/curve/OffsetOptions.js.map +1 -1
- package/lib/cjs/curve/Path.d.ts +14 -0
- package/lib/cjs/curve/Path.d.ts.map +1 -1
- package/lib/cjs/curve/Path.js +27 -0
- package/lib/cjs/curve/Path.js.map +1 -1
- package/lib/cjs/curve/PointString3d.d.ts.map +1 -1
- package/lib/cjs/curve/PointString3d.js +0 -1
- package/lib/cjs/curve/PointString3d.js.map +1 -1
- package/lib/cjs/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/cjs/curve/StrokeOptions.js +0 -1
- package/lib/cjs/curve/StrokeOptions.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js +5 -6
- package/lib/cjs/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js +10 -10
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js +4 -4
- package/lib/cjs/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
- package/lib/cjs/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js +5 -4
- package/lib/cjs/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.d.ts +10 -6
- package/lib/cjs/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/cjs/geometry3d/AngleSweep.js +15 -12
- package/lib/cjs/geometry3d/AngleSweep.js.map +1 -1
- package/lib/cjs/geometry3d/BilinearPatch.js +4 -4
- package/lib/cjs/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/cjs/geometry3d/FrameBuilder.js +0 -1
- package/lib/cjs/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/cjs/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.d.ts +28 -17
- package/lib/cjs/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Matrix3d.js +36 -17
- package/lib/cjs/geometry3d/Matrix3d.js.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js +2 -3
- package/lib/cjs/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts +6 -5
- package/lib/cjs/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/cjs/geometry3d/Point3dVector3d.js +6 -5
- package/lib/cjs/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PointHelpers.js +0 -1
- package/lib/cjs/geometry3d/PointHelpers.js.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/cjs/geometry3d/PolygonOps.js +2 -4
- package/lib/cjs/geometry3d/PolygonOps.js.map +1 -1
- package/lib/cjs/geometry3d/Ray3d.js +2 -2
- package/lib/cjs/geometry3d/Ray3d.js.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
- package/lib/cjs/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/cjs/geometry4d/Map4d.d.ts +5 -5
- package/lib/cjs/geometry4d/Map4d.js +5 -5
- package/lib/cjs/geometry4d/Map4d.js.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.d.ts +4 -7
- package/lib/cjs/geometry4d/Matrix4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Matrix4d.js +4 -7
- package/lib/cjs/geometry4d/Matrix4d.js.map +1 -1
- package/lib/cjs/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/cjs/geometry4d/Point4d.js +2 -1
- package/lib/cjs/geometry4d/Point4d.js.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/BezierPolynomials.js +0 -1
- package/lib/cjs/numerics/BezierPolynomials.js.map +1 -1
- package/lib/cjs/numerics/Newton.d.ts +3 -0
- package/lib/cjs/numerics/Newton.d.ts.map +1 -1
- package/lib/cjs/numerics/Newton.js +2 -5
- package/lib/cjs/numerics/Newton.js.map +1 -1
- package/lib/cjs/numerics/Polynomials.d.ts +46 -201
- package/lib/cjs/numerics/Polynomials.d.ts.map +1 -1
- package/lib/cjs/numerics/Polynomials.js +132 -445
- package/lib/cjs/numerics/Polynomials.js.map +1 -1
- package/lib/cjs/numerics/Range1dArray.js +2 -2
- package/lib/cjs/numerics/Range1dArray.js.map +1 -1
- package/lib/cjs/numerics/SmallSystem.d.ts +164 -0
- package/lib/cjs/numerics/SmallSystem.d.ts.map +1 -0
- package/lib/cjs/numerics/SmallSystem.js +321 -0
- package/lib/cjs/numerics/SmallSystem.js.map +1 -0
- package/lib/cjs/polyface/AuxData.d.ts.map +1 -1
- package/lib/cjs/polyface/AuxData.js.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js +0 -1
- package/lib/cjs/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/cjs/polyface/Polyface.d.ts +2 -2
- package/lib/cjs/polyface/Polyface.d.ts.map +1 -1
- package/lib/cjs/polyface/Polyface.js +0 -1
- package/lib/cjs/polyface/Polyface.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js +1 -1
- package/lib/cjs/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.d.ts +3 -3
- package/lib/cjs/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceClip.js +1 -2
- package/lib/cjs/polyface/PolyfaceClip.js.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/cjs/polyface/PolyfaceQuery.js +0 -1
- package/lib/cjs/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/cjs/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js +7 -7
- package/lib/cjs/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/cjs/serialization/DeepCompare.d.ts.map +1 -1
- package/lib/cjs/serialization/DeepCompare.js +0 -1
- package/lib/cjs/serialization/DeepCompare.js.map +1 -1
- package/lib/cjs/topology/Graph.d.ts.map +1 -1
- package/lib/cjs/topology/Graph.js +2 -2
- package/lib/cjs/topology/Graph.js.map +1 -1
- package/lib/cjs/topology/InsertAndRetriangulateContext.js +2 -2
- package/lib/cjs/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/cjs/topology/Merging.d.ts +1 -1
- package/lib/cjs/topology/Merging.d.ts.map +1 -1
- package/lib/cjs/topology/Merging.js +2 -2
- package/lib/cjs/topology/Merging.js.map +1 -1
- package/lib/esm/Geometry.js +2 -2
- package/lib/esm/Geometry.js.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.d.ts.map +1 -1
- package/lib/esm/bspline/BSpline1dNd.js +0 -1
- package/lib/esm/bspline/BSpline1dNd.js.map +1 -1
- package/lib/esm/bspline/BSplineCurve.d.ts +5 -3
- package/lib/esm/bspline/BSplineCurve.d.ts.map +1 -1
- package/lib/esm/bspline/BSplineCurve.js +5 -4
- package/lib/esm/bspline/BSplineCurve.js.map +1 -1
- package/lib/esm/clipping/ClipVector.js +1 -1
- package/lib/esm/clipping/ClipVector.js.map +1 -1
- package/lib/esm/core-geometry.d.ts +1 -1
- package/lib/esm/core-geometry.d.ts.map +1 -1
- package/lib/esm/core-geometry.js +1 -1
- package/lib/esm/core-geometry.js.map +1 -1
- package/lib/esm/curve/Arc3d.d.ts +136 -128
- package/lib/esm/curve/Arc3d.d.ts.map +1 -1
- package/lib/esm/curve/Arc3d.js +177 -152
- package/lib/esm/curve/Arc3d.js.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts +7 -5
- package/lib/esm/curve/CurveChainWithDistanceIndex.d.ts.map +1 -1
- package/lib/esm/curve/CurveChainWithDistanceIndex.js +9 -7
- package/lib/esm/curve/CurveChainWithDistanceIndex.js.map +1 -1
- package/lib/esm/curve/CurveCollection.d.ts +21 -2
- package/lib/esm/curve/CurveCollection.d.ts.map +1 -1
- package/lib/esm/curve/CurveCollection.js +45 -10
- package/lib/esm/curve/CurveCollection.js.map +1 -1
- package/lib/esm/curve/CurveExtendMode.d.ts +18 -15
- package/lib/esm/curve/CurveExtendMode.d.ts.map +1 -1
- package/lib/esm/curve/CurveExtendMode.js +18 -17
- package/lib/esm/curve/CurveExtendMode.js.map +1 -1
- package/lib/esm/curve/CurveFactory.d.ts +11 -13
- package/lib/esm/curve/CurveFactory.d.ts.map +1 -1
- package/lib/esm/curve/CurveFactory.js +17 -44
- package/lib/esm/curve/CurveFactory.js.map +1 -1
- package/lib/esm/curve/CurvePrimitive.d.ts +9 -5
- package/lib/esm/curve/CurvePrimitive.d.ts.map +1 -1
- package/lib/esm/curve/CurvePrimitive.js +9 -5
- package/lib/esm/curve/CurvePrimitive.js.map +1 -1
- package/lib/esm/curve/CurveProcessor.d.ts.map +1 -1
- package/lib/esm/curve/CurveProcessor.js +0 -1
- package/lib/esm/curve/CurveProcessor.js.map +1 -1
- package/lib/esm/curve/LineSegment3d.d.ts.map +1 -1
- package/lib/esm/curve/LineSegment3d.js +1 -2
- package/lib/esm/curve/LineSegment3d.js.map +1 -1
- package/lib/esm/curve/LineString3d.d.ts.map +1 -1
- package/lib/esm/curve/OffsetOptions.d.ts.map +1 -1
- package/lib/esm/curve/OffsetOptions.js +4 -4
- package/lib/esm/curve/OffsetOptions.js.map +1 -1
- package/lib/esm/curve/Path.d.ts +14 -0
- package/lib/esm/curve/Path.d.ts.map +1 -1
- package/lib/esm/curve/Path.js +27 -0
- package/lib/esm/curve/Path.js.map +1 -1
- package/lib/esm/curve/PointString3d.d.ts.map +1 -1
- package/lib/esm/curve/PointString3d.js +0 -1
- package/lib/esm/curve/PointString3d.js.map +1 -1
- package/lib/esm/curve/StrokeOptions.d.ts.map +1 -1
- package/lib/esm/curve/StrokeOptions.js +0 -1
- package/lib/esm/curve/StrokeOptions.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js +4 -5
- package/lib/esm/curve/internalContexts/CurveCurveCloseApproachXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js +5 -5
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXY.js.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js +3 -3
- package/lib/esm/curve/internalContexts/CurveCurveIntersectXYZ.js.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts +18 -18
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.d.ts.map +1 -1
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js +46 -42
- package/lib/esm/curve/internalContexts/EllipticalArcApproximationContext.js.map +1 -1
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js +5 -4
- package/lib/esm/curve/internalContexts/PolygonOffsetContext.js.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.d.ts +10 -6
- package/lib/esm/geometry3d/AngleSweep.d.ts.map +1 -1
- package/lib/esm/geometry3d/AngleSweep.js +15 -12
- package/lib/esm/geometry3d/AngleSweep.js.map +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js +1 -1
- package/lib/esm/geometry3d/BilinearPatch.js.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.d.ts.map +1 -1
- package/lib/esm/geometry3d/FrameBuilder.js +0 -1
- package/lib/esm/geometry3d/FrameBuilder.js.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.d.ts.map +1 -1
- package/lib/esm/geometry3d/IndexedXYCollection.js.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.d.ts +28 -17
- package/lib/esm/geometry3d/Matrix3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Matrix3d.js +36 -17
- package/lib/esm/geometry3d/Matrix3d.js.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js +0 -1
- package/lib/esm/geometry3d/Point2dArrayCarrier.js.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.d.ts +6 -5
- package/lib/esm/geometry3d/Point3dVector3d.d.ts.map +1 -1
- package/lib/esm/geometry3d/Point3dVector3d.js +6 -5
- package/lib/esm/geometry3d/Point3dVector3d.js.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.d.ts.map +1 -1
- package/lib/esm/geometry3d/PointHelpers.js +0 -1
- package/lib/esm/geometry3d/PointHelpers.js.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.d.ts.map +1 -1
- package/lib/esm/geometry3d/PolygonOps.js +2 -4
- package/lib/esm/geometry3d/PolygonOps.js.map +1 -1
- package/lib/esm/geometry3d/Ray3d.js +1 -1
- package/lib/esm/geometry3d/Ray3d.js.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.d.ts.map +1 -1
- package/lib/esm/geometry3d/YawPitchRollAngles.js.map +1 -1
- package/lib/esm/geometry4d/Map4d.d.ts +5 -5
- package/lib/esm/geometry4d/Map4d.js +5 -5
- package/lib/esm/geometry4d/Map4d.js.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.d.ts +4 -7
- package/lib/esm/geometry4d/Matrix4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Matrix4d.js +4 -7
- package/lib/esm/geometry4d/Matrix4d.js.map +1 -1
- package/lib/esm/geometry4d/Point4d.d.ts.map +1 -1
- package/lib/esm/geometry4d/Point4d.js +2 -1
- package/lib/esm/geometry4d/Point4d.js.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.d.ts.map +1 -1
- package/lib/esm/numerics/BezierPolynomials.js +0 -1
- package/lib/esm/numerics/BezierPolynomials.js.map +1 -1
- package/lib/esm/numerics/Newton.d.ts +3 -0
- package/lib/esm/numerics/Newton.d.ts.map +1 -1
- package/lib/esm/numerics/Newton.js +1 -4
- package/lib/esm/numerics/Newton.js.map +1 -1
- package/lib/esm/numerics/Polynomials.d.ts +46 -201
- package/lib/esm/numerics/Polynomials.d.ts.map +1 -1
- package/lib/esm/numerics/Polynomials.js +132 -444
- package/lib/esm/numerics/Polynomials.js.map +1 -1
- package/lib/esm/numerics/SmallSystem.d.ts +164 -0
- package/lib/esm/numerics/SmallSystem.d.ts.map +1 -0
- package/lib/esm/numerics/SmallSystem.js +317 -0
- package/lib/esm/numerics/SmallSystem.js.map +1 -0
- package/lib/esm/polyface/AuxData.d.ts.map +1 -1
- package/lib/esm/polyface/AuxData.js.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.d.ts.map +1 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js +0 -1
- package/lib/esm/polyface/IndexedPolyfaceVisitor.js.map +1 -1
- package/lib/esm/polyface/Polyface.d.ts +2 -2
- package/lib/esm/polyface/Polyface.d.ts.map +1 -1
- package/lib/esm/polyface/Polyface.js +0 -1
- package/lib/esm/polyface/Polyface.js.map +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js +1 -1
- package/lib/esm/polyface/PolyfaceBuilder.js.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.d.ts +3 -3
- package/lib/esm/polyface/PolyfaceClip.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceClip.js +1 -2
- package/lib/esm/polyface/PolyfaceClip.js.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.d.ts.map +1 -1
- package/lib/esm/polyface/PolyfaceQuery.js +0 -1
- package/lib/esm/polyface/PolyfaceQuery.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSet.js.map +1 -1
- package/lib/esm/polyface/multiclip/GriddedRaggedRange2dSetWithOverflow.js.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.d.ts.map +1 -1
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js +4 -4
- package/lib/esm/polyface/multiclip/OffsetMeshContext.js.map +1 -1
- package/lib/esm/serialization/DeepCompare.d.ts.map +1 -1
- package/lib/esm/serialization/DeepCompare.js +0 -1
- package/lib/esm/serialization/DeepCompare.js.map +1 -1
- package/lib/esm/topology/Graph.d.ts.map +1 -1
- package/lib/esm/topology/Graph.js +1 -1
- package/lib/esm/topology/Graph.js.map +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js +1 -1
- package/lib/esm/topology/InsertAndRetriangulateContext.js.map +1 -1
- package/lib/esm/topology/Merging.d.ts +1 -1
- package/lib/esm/topology/Merging.d.ts.map +1 -1
- package/lib/esm/topology/Merging.js +1 -1
- package/lib/esm/topology/Merging.js.map +1 -1
- package/package.json +8 -8
package/lib/cjs/curve/Arc3d.js
CHANGED
|
@@ -15,6 +15,7 @@ const Point3dVector3d_1 = require("../geometry3d/Point3dVector3d");
|
|
|
15
15
|
const Range_1 = require("../geometry3d/Range");
|
|
16
16
|
const Ray3d_1 = require("../geometry3d/Ray3d");
|
|
17
17
|
const Polynomials_1 = require("../numerics/Polynomials");
|
|
18
|
+
const SmallSystem_1 = require("../numerics/SmallSystem");
|
|
18
19
|
const CurveExtendMode_1 = require("./CurveExtendMode");
|
|
19
20
|
const CurveLocationDetail_1 = require("./CurveLocationDetail");
|
|
20
21
|
const CurvePrimitive_1 = require("./CurvePrimitive");
|
|
@@ -154,15 +155,15 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
154
155
|
isSameGeometryClass(other) {
|
|
155
156
|
return other instanceof Arc3d;
|
|
156
157
|
}
|
|
157
|
-
/** Read property for (clone of) center */
|
|
158
|
+
/** Read property for (clone of) center. */
|
|
158
159
|
get center() {
|
|
159
160
|
return this._center.clone();
|
|
160
161
|
}
|
|
161
|
-
/** Read property for (clone of) vector0 */
|
|
162
|
+
/** Read property for (clone of) vector0. */
|
|
162
163
|
get vector0() {
|
|
163
164
|
return this._matrix.columnX();
|
|
164
165
|
}
|
|
165
|
-
/** Read property for (clone of) vector90 */
|
|
166
|
+
/** Read property for (clone of) vector90. */
|
|
166
167
|
get vector90() {
|
|
167
168
|
return this._matrix.columnY();
|
|
168
169
|
}
|
|
@@ -170,11 +171,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
170
171
|
get perpendicularVector() {
|
|
171
172
|
return this._matrix.columnZ();
|
|
172
173
|
}
|
|
173
|
-
/** Read property for (clone of) matrix of vector0, vector90, unit normal */
|
|
174
|
+
/** Read property for (clone of) matrix of vector0, vector90, unit normal. */
|
|
174
175
|
matrixClone() {
|
|
175
176
|
return this._matrix.clone();
|
|
176
177
|
}
|
|
177
|
-
/** Read property for (reference to) matrix of vector0, vector90, unit normal */
|
|
178
|
+
/** Read property for (reference to) matrix of vector0, vector90, unit normal. */
|
|
178
179
|
get matrixRef() {
|
|
179
180
|
return this._matrix;
|
|
180
181
|
}
|
|
@@ -185,21 +186,21 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
185
186
|
set sweep(value) {
|
|
186
187
|
this._sweep.setFrom(value);
|
|
187
188
|
}
|
|
188
|
-
/** An Arc3d extends along its complete elliptic arc */
|
|
189
|
+
/** An Arc3d extends along its complete elliptic arc. */
|
|
189
190
|
get isExtensibleFractionSpace() {
|
|
190
191
|
return true;
|
|
191
192
|
}
|
|
192
193
|
// constructor copies the pointers
|
|
193
194
|
constructor(center, matrix, sweep) {
|
|
194
195
|
super();
|
|
195
|
-
/** String name for schema properties */
|
|
196
|
+
/** String name for schema properties. */
|
|
196
197
|
this.curvePrimitiveType = "arc";
|
|
197
198
|
this._center = center;
|
|
198
199
|
this._matrix = matrix;
|
|
199
200
|
this._sweep = sweep;
|
|
200
201
|
}
|
|
201
202
|
/**
|
|
202
|
-
* Return a clone of the arc, with transform applied
|
|
203
|
+
* Return a clone of the arc, with transform applied.
|
|
203
204
|
* @param transform
|
|
204
205
|
*/
|
|
205
206
|
cloneTransformed(transform) {
|
|
@@ -209,9 +210,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
209
210
|
}
|
|
210
211
|
/**
|
|
211
212
|
* Redefine the arc with (captured references to) given data.
|
|
212
|
-
* @param center arc center
|
|
213
|
-
* @param matrix matrix with columns vector0, vector 90, and their unit cross product
|
|
214
|
-
* @param sweep angle sweep
|
|
213
|
+
* @param center arc center.
|
|
214
|
+
* @param matrix matrix with columns vector0, vector 90, and their unit cross product.
|
|
215
|
+
* @param sweep angle sweep.
|
|
215
216
|
*/
|
|
216
217
|
setRefs(center, matrix, sweep) {
|
|
217
218
|
this._center = center;
|
|
@@ -220,14 +221,14 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
220
221
|
}
|
|
221
222
|
/**
|
|
222
223
|
* Redefine the arc with (clones of) given data.
|
|
223
|
-
* @param center arc center
|
|
224
|
-
* @param matrix matrix with columns vector0, vector 90, and their unit cross product
|
|
225
|
-
* @param sweep angle sweep
|
|
224
|
+
* @param center arc center.
|
|
225
|
+
* @param matrix matrix with columns vector0, vector 90, and their unit cross product.
|
|
226
|
+
* @param sweep angle sweep.
|
|
226
227
|
*/
|
|
227
228
|
set(center, matrix, sweep) {
|
|
228
229
|
this.setRefs(center.clone(), matrix.clone(), sweep ? sweep.clone() : AngleSweep_1.AngleSweep.create360());
|
|
229
230
|
}
|
|
230
|
-
/** Copy center, matrix, and sweep from other Arc3d */
|
|
231
|
+
/** Copy center, matrix, and sweep from other Arc3d. */
|
|
231
232
|
setFrom(other) {
|
|
232
233
|
this._center.setFrom(other._center);
|
|
233
234
|
this._matrix.setFrom(other._matrix);
|
|
@@ -239,9 +240,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
239
240
|
}
|
|
240
241
|
/**
|
|
241
242
|
* Create an arc, capturing references to center, matrix and sweep.
|
|
242
|
-
* @param center center point
|
|
243
|
-
* @param matrix matrix with columns vector0, vector90, and unit cross product
|
|
244
|
-
* @param sweep sweep limits
|
|
243
|
+
* @param center center point.
|
|
244
|
+
* @param matrix matrix with columns vector0, vector90, and unit cross product.
|
|
245
|
+
* @param sweep sweep limits.
|
|
245
246
|
* @param result optional preallocated result.
|
|
246
247
|
*/
|
|
247
248
|
static createRefs(center, matrix, sweep, result) {
|
|
@@ -253,11 +254,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
253
254
|
}
|
|
254
255
|
/**
|
|
255
256
|
* Create an arc from center, x column to be scaled, and y column to be scaled.
|
|
256
|
-
* @param center center of ellipse
|
|
257
|
-
* @param matrix matrix whose x and y columns are
|
|
257
|
+
* @param center center of ellipse.
|
|
258
|
+
* @param matrix matrix whose x and y columns are scaled by radius0 and radius90.
|
|
258
259
|
* @param radius0 radius in x direction.
|
|
259
260
|
* @param radius90 radius in y direction.
|
|
260
|
-
* @param sweep sweep limits
|
|
261
|
+
* @param sweep sweep limits.
|
|
261
262
|
* @param result optional preallocated result.
|
|
262
263
|
*/
|
|
263
264
|
static createScaledXYColumns(center, matrix, radius0, radius90, sweep, result) {
|
|
@@ -266,9 +267,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
266
267
|
return Arc3d.create(center, vector0.scale(radius0, vector0), vector90.scale(radius90, vector90), sweep, result);
|
|
267
268
|
}
|
|
268
269
|
/**
|
|
269
|
-
* Create a (full circular) arc from center, normal and radius
|
|
270
|
-
* @param center center of ellipse.
|
|
271
|
-
* @param normal normal vector
|
|
270
|
+
* Create a (full circular) arc from center, normal and radius.
|
|
271
|
+
* @param center center of ellipse. If undefined, center at 000.
|
|
272
|
+
* @param normal normal vector.
|
|
272
273
|
* @param radius radius in x direction.
|
|
273
274
|
* @param result optional preallocated result.
|
|
274
275
|
*/
|
|
@@ -278,11 +279,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
278
279
|
}
|
|
279
280
|
/**
|
|
280
281
|
* Create an arc by center with vectors to points at 0 and 90 degrees in parameter space.
|
|
281
|
-
* @param center arc center
|
|
282
|
-
* @param vector0 vector to 0 degrees (commonly major axis)
|
|
283
|
-
* @param vector90 vector to 90 degree point (commonly minor axis)
|
|
284
|
-
* @param sweep sweep limits
|
|
285
|
-
* @param result optional preallocated result
|
|
282
|
+
* @param center arc center.
|
|
283
|
+
* @param vector0 vector to 0 degrees (commonly major axis).
|
|
284
|
+
* @param vector90 vector to 90 degree point (commonly minor axis).
|
|
285
|
+
* @param sweep sweep limits; defaults to full sweep.
|
|
286
|
+
* @param result optional preallocated result.
|
|
286
287
|
*/
|
|
287
288
|
static create(center, vector0, vector90, sweep, result) {
|
|
288
289
|
const normal = vector0.unitCrossProductWithDefault(vector90, 0, 0, 0); // normal will be 000 for degenerate case
|
|
@@ -291,19 +292,19 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
291
292
|
}
|
|
292
293
|
/**
|
|
293
294
|
* Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
|
|
294
|
-
* @param
|
|
295
|
-
* @param
|
|
296
|
-
* @param
|
|
297
|
-
* @param sweep angular sweep, measured from `
|
|
298
|
-
* For a half-ellipse from `
|
|
295
|
+
* @param start start of arc, on an axis.
|
|
296
|
+
* @param middle point on arc somewhere between `start` and `end`.
|
|
297
|
+
* @param end point on arc directly opposite `start`.
|
|
298
|
+
* @param sweep angular sweep, measured from `start` in the direction of `middle`.
|
|
299
|
+
* For a half-ellipse from `start` to `end` passing through `middle`, pass `AngleSweep.createStartEndDegrees(0,180)`.
|
|
299
300
|
* Default value is full sweep to create the entire ellipse.
|
|
300
|
-
* @param result optional preallocated result
|
|
301
|
+
* @param result optional preallocated result.
|
|
301
302
|
* @returns elliptical arc, or undefined if construction impossible.
|
|
302
303
|
*/
|
|
303
|
-
static createStartMiddleEnd(
|
|
304
|
-
const center = Point3dVector3d_1.Point3d.createAdd2Scaled(
|
|
305
|
-
const vector0 = Point3dVector3d_1.Vector3d.createStartEnd(center,
|
|
306
|
-
const vector1 = Point3dVector3d_1.Vector3d.createStartEnd(center,
|
|
304
|
+
static createStartMiddleEnd(start, middle, end, sweep, result) {
|
|
305
|
+
const center = Point3dVector3d_1.Point3d.createAdd2Scaled(start, 0.5, end, 0.5);
|
|
306
|
+
const vector0 = Point3dVector3d_1.Vector3d.createStartEnd(center, start);
|
|
307
|
+
const vector1 = Point3dVector3d_1.Vector3d.createStartEnd(center, middle);
|
|
307
308
|
const v0DotV1 = vector0.dotProduct(vector1);
|
|
308
309
|
const v0Len2 = vector0.magnitudeSquared();
|
|
309
310
|
if (Math.abs(v0DotV1) >= v0Len2)
|
|
@@ -311,7 +312,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
311
312
|
const normal = vector0.crossProduct(vector1);
|
|
312
313
|
const vector90 = normal.unitCrossProductWithDefault(vector0, 0, 0, 0);
|
|
313
314
|
const v1DotV90 = vector1.dotProduct(vector90);
|
|
314
|
-
//
|
|
315
|
+
// solve the standard ellipse equation for the unknown axis length, given local coords of middle (v0.v1/||v0||, v90.v1)
|
|
315
316
|
const v90Len = Geometry_1.Geometry.safeDivideFraction(v0Len2 * v1DotV90, Math.sqrt(v0Len2 * v0Len2 - v0DotV1 * v0DotV1), 0);
|
|
316
317
|
if (Geometry_1.Geometry.isSmallMetricDistanceSquared(v90Len))
|
|
317
318
|
return undefined;
|
|
@@ -320,39 +321,61 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
320
321
|
}
|
|
321
322
|
/**
|
|
322
323
|
* Create a circular arc defined by start point, tangent at start point, and end point.
|
|
323
|
-
*
|
|
324
|
+
* * The circular arc is swept from `start` to `end` in the direction of `tangentAtStart`.
|
|
325
|
+
* * If `tangentAtStart` is parallel to the line segment from `start` to `end`, return the line segment.
|
|
324
326
|
*/
|
|
325
327
|
static createCircularStartTangentEnd(start, tangentAtStart, end, result) {
|
|
326
|
-
//
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
const
|
|
344
|
-
const sweep = AngleSweep_1.AngleSweep.
|
|
328
|
+
// see itwinjs-core\core\geometry\internaldocs\Arc3d.md to clarify below algorithm
|
|
329
|
+
const startToEnd = Point3dVector3d_1.Vector3d.createStartEnd(start, end);
|
|
330
|
+
const frame = Matrix3d_1.Matrix3d.createRigidFromColumns(tangentAtStart, startToEnd, Geometry_1.AxisOrder.XYZ);
|
|
331
|
+
if (frame !== undefined) {
|
|
332
|
+
const vv = startToEnd.dotProduct(startToEnd);
|
|
333
|
+
const vw = frame.dotColumnY(startToEnd);
|
|
334
|
+
const radius = Geometry_1.Geometry.conditionalDivideCoordinate(vv, 2 * vw);
|
|
335
|
+
if (radius !== undefined) {
|
|
336
|
+
const vector0 = frame.columnY();
|
|
337
|
+
vector0.scaleInPlace(-radius); // center to start
|
|
338
|
+
const vector90 = frame.columnX();
|
|
339
|
+
vector90.scaleInPlace(radius);
|
|
340
|
+
const centerToEnd = vector0.plus(startToEnd);
|
|
341
|
+
const sweepAngle = vector0.angleTo(centerToEnd);
|
|
342
|
+
let sweepRadians = sweepAngle.radians; // always positive and less than PI
|
|
343
|
+
if (tangentAtStart.dotProduct(centerToEnd) < 0.0) // sweepRadians is the wrong way
|
|
344
|
+
sweepRadians = 2.0 * Math.PI - sweepRadians;
|
|
345
|
+
const center = start.plusScaled(vector0, -1.0);
|
|
346
|
+
const sweep = AngleSweep_1.AngleSweep.createStartEndRadians(0.0, sweepRadians);
|
|
345
347
|
return Arc3d.create(center, vector0, vector90, sweep, result);
|
|
346
348
|
}
|
|
347
349
|
}
|
|
348
350
|
return LineSegment3d_1.LineSegment3d.create(start, end);
|
|
349
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Create a circular arc from start point, tangent at start, radius, optional plane normal, arc sweep.
|
|
354
|
+
* * The vector from start point to center is in the direction of upVector crossed with tangentA.
|
|
355
|
+
* @param start start point.
|
|
356
|
+
* @param tangentAtStart vector in tangent direction at the start.
|
|
357
|
+
* @param radius signed radius.
|
|
358
|
+
* @param upVector optional out-of-plane vector. Defaults to positive Z.
|
|
359
|
+
* @param sweep angular range. If single `Angle` is given, start angle is at 0 degrees (the start point).
|
|
360
|
+
*/
|
|
361
|
+
static createCircularStartTangentRadius(start, tangentAtStart, radius, upVector, sweep) {
|
|
362
|
+
if (upVector === undefined)
|
|
363
|
+
upVector = Point3dVector3d_1.Vector3d.unitZ();
|
|
364
|
+
const vector0 = upVector.unitCrossProduct(tangentAtStart);
|
|
365
|
+
if (vector0 === undefined)
|
|
366
|
+
return undefined;
|
|
367
|
+
const center = start.plusScaled(vector0, radius);
|
|
368
|
+
// reverse the A-to-center vector and bring it up to scale
|
|
369
|
+
vector0.scaleInPlace(-radius);
|
|
370
|
+
const vector90 = tangentAtStart.scaleToLength(Math.abs(radius)); // cannot fail; prior unitCrossProduct would have failed first
|
|
371
|
+
return Arc3d.create(center, vector0, vector90, AngleSweep_1.AngleSweep.create(sweep));
|
|
372
|
+
}
|
|
350
373
|
/**
|
|
351
374
|
* Create a circular arc defined by start and end points and radius.
|
|
352
|
-
* @param start start point of the arc
|
|
353
|
-
* @param end end point of the arc
|
|
354
|
-
* @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
|
|
355
|
-
* @returns the constructed arc, or undefined if desired arc cannot be constructed
|
|
375
|
+
* @param start start point of the arc.
|
|
376
|
+
* @param end end point of the arc.
|
|
377
|
+
* @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal.
|
|
378
|
+
* @returns the constructed arc, or undefined if desired arc cannot be constructed.
|
|
356
379
|
*/
|
|
357
380
|
static createCircularStartEndRadius(start, end, radius, helper) {
|
|
358
381
|
// Construct a line segment from start to end. It is a chord of the circle,
|
|
@@ -384,7 +407,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
384
407
|
* Return a clone of this arc, projected to given z value.
|
|
385
408
|
* * If `z` is omitted, the clone is at the z of the center.
|
|
386
409
|
* * This function projects the arc into a plane parallel to xy-plane.
|
|
387
|
-
* * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle)
|
|
410
|
+
* * Note that projection to fixed z can change circle into ellipse (and (rarely) ellipse to circle).
|
|
388
411
|
*/
|
|
389
412
|
cloneAtZ(z) {
|
|
390
413
|
if (z === undefined)
|
|
@@ -394,7 +417,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
394
417
|
/**
|
|
395
418
|
* Create an arc by center (cx,cy,xz) with vectors (ux,uy,uz) and (vx,vy,vz) to points at 0 and 90 degrees in
|
|
396
419
|
* parameter space.
|
|
397
|
-
* @param result optional preallocated result
|
|
420
|
+
* @param result optional preallocated result.
|
|
398
421
|
*/
|
|
399
422
|
static createXYZXYZXYZ(cx, cy, cz, ux, uy, uz, vx, vy, vz, sweep, result) {
|
|
400
423
|
return Arc3d.create(Point3dVector3d_1.Point3d.create(cx, cy, cz), Point3dVector3d_1.Vector3d.create(ux, uy, uz), Point3dVector3d_1.Vector3d.create(vx, vy, vz), sweep, result);
|
|
@@ -423,7 +446,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
423
446
|
const ac2 = vectorAC.magnitudeSquared();
|
|
424
447
|
const normal = vectorAB.sizedCrossProduct(vectorAC, Math.sqrt(Math.sqrt(ab2 * ac2)));
|
|
425
448
|
if (normal) {
|
|
426
|
-
const vectorToCenter =
|
|
449
|
+
const vectorToCenter = SmallSystem_1.SmallSystem.linearSystem3d(normal.x, normal.y, normal.z, vectorAB.x, vectorAB.y, vectorAB.z, vectorAC.x, vectorAC.y, vectorAC.z, 0, // vectorToCenter DOT normal = 0 (ensure normal is perp to the plane of the 3 points)
|
|
427
450
|
0.5 * ab2, // vectorToCenter DOT vectorAB = ab2 / 2 (ensure the projection of vectorToCenter on AB bisects AB)
|
|
428
451
|
0.5 * ac2);
|
|
429
452
|
if (vectorToCenter) { // i.e., the negative of vectorX
|
|
@@ -449,18 +472,18 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
449
472
|
return undefined;
|
|
450
473
|
}
|
|
451
474
|
/**
|
|
452
|
-
* Convert a fractional position to xyz coordinates
|
|
453
|
-
* @param fraction fractional position on arc
|
|
454
|
-
* @param result optional preallocated result
|
|
475
|
+
* Convert a fractional position to xyz coordinates.
|
|
476
|
+
* @param fraction fractional position on arc.
|
|
477
|
+
* @param result optional preallocated result.
|
|
455
478
|
*/
|
|
456
479
|
fractionToPoint(fraction, result) {
|
|
457
480
|
const radians = this._sweep.fractionToRadians(fraction);
|
|
458
481
|
return this._matrix.originPlusMatrixTimesXY(this._center, Math.cos(radians), Math.sin(radians), result);
|
|
459
482
|
}
|
|
460
483
|
/**
|
|
461
|
-
* Convert fractional arc and radial positions to xyz coordinates
|
|
462
|
-
* @param fraction fractional position on arc
|
|
463
|
-
* @param result optional preallocated result
|
|
484
|
+
* Convert fractional arc and radial positions to xyz coordinates.
|
|
485
|
+
* @param fraction fractional position on arc.
|
|
486
|
+
* @param result optional preallocated result.
|
|
464
487
|
*/
|
|
465
488
|
fractionAndRadialFractionToPoint(arcFraction, radialFraction, result) {
|
|
466
489
|
const radians = this._sweep.fractionToRadians(arcFraction);
|
|
@@ -468,8 +491,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
468
491
|
}
|
|
469
492
|
/**
|
|
470
493
|
* Convert a fractional position to xyz coordinates and derivative with respect to fraction.
|
|
471
|
-
* @param fraction fractional position on arc
|
|
472
|
-
* @param result optional preallocated result
|
|
494
|
+
* @param fraction fractional position on arc.
|
|
495
|
+
* @param result optional preallocated result.
|
|
473
496
|
*/
|
|
474
497
|
fractionToPointAndDerivative(fraction, result) {
|
|
475
498
|
result = this.radiansToPointAndDerivative(this._sweep.fractionToRadians(fraction), result);
|
|
@@ -478,10 +501,10 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
478
501
|
}
|
|
479
502
|
/**
|
|
480
503
|
* Construct a plane with
|
|
481
|
-
* * origin at the fractional position along the arc
|
|
482
|
-
* * x axis is the first derivative, i.e. tangent along the arc
|
|
504
|
+
* * origin at the fractional position along the arc.
|
|
505
|
+
* * x axis is the first derivative, i.e. tangent along the arc.
|
|
483
506
|
* * y axis is the second derivative, i.e. in the plane and on the center side of the tangent.
|
|
484
|
-
* If the arc is circular, the second derivative is directly towards the center
|
|
507
|
+
* If the arc is circular, the second derivative is directly towards the center.
|
|
485
508
|
*/
|
|
486
509
|
fractionToPointAnd2Derivatives(fraction, result) {
|
|
487
510
|
const radians = this._sweep.fractionToRadians(fraction);
|
|
@@ -497,8 +520,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
497
520
|
return result;
|
|
498
521
|
}
|
|
499
522
|
/**
|
|
500
|
-
* Evaluate the point and derivative with respect to the angle (in radians)
|
|
501
|
-
* @param radians angular position
|
|
523
|
+
* Evaluate the point and derivative with respect to the angle (in radians).
|
|
524
|
+
* @param radians angular position.
|
|
502
525
|
* @param result optional preallocated ray.
|
|
503
526
|
*/
|
|
504
527
|
radiansToPointAndDerivative(radians, result) {
|
|
@@ -510,8 +533,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
510
533
|
return result;
|
|
511
534
|
}
|
|
512
535
|
/**
|
|
513
|
-
* Evaluate the point with respect to the angle (in radians)
|
|
514
|
-
* @param radians angular position
|
|
536
|
+
* Evaluate the point with respect to the angle (in radians).
|
|
537
|
+
* @param radians angular position.
|
|
515
538
|
* @param result optional preallocated ray.
|
|
516
539
|
*/
|
|
517
540
|
radiansToPoint(radians, result) {
|
|
@@ -523,11 +546,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
523
546
|
}
|
|
524
547
|
/**
|
|
525
548
|
* Return a parametric plane with
|
|
526
|
-
* * origin at arc center
|
|
527
|
-
* * vectorU from center to arc at angle (in radians)
|
|
549
|
+
* * origin at arc center.
|
|
550
|
+
* * vectorU from center to arc at angle (in radians).
|
|
528
551
|
* * vectorV from center to arc at 90 degrees past the angle.
|
|
529
|
-
* @param radians angular position
|
|
530
|
-
* @param result optional preallocated plane
|
|
552
|
+
* @param radians angular position.
|
|
553
|
+
* @param result optional preallocated plane.
|
|
531
554
|
*/
|
|
532
555
|
radiansToRotatedBasis(radians, result) {
|
|
533
556
|
result = result ? result : Plane3dByOriginAndVectors_1.Plane3dByOriginAndVectors.createXYPlane();
|
|
@@ -539,8 +562,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
539
562
|
return result;
|
|
540
563
|
}
|
|
541
564
|
/**
|
|
542
|
-
* Evaluate the point and derivative with respect to the angle (in radians)
|
|
543
|
-
* @param theta angular position
|
|
565
|
+
* Evaluate the point and derivative with respect to the angle (in radians).
|
|
566
|
+
* @param theta angular position.
|
|
544
567
|
* @param result optional preallocated ray.
|
|
545
568
|
*/
|
|
546
569
|
angleToPointAndDerivative(theta, result) {
|
|
@@ -553,14 +576,14 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
553
576
|
}
|
|
554
577
|
/**
|
|
555
578
|
* Return the start point of the arc.
|
|
556
|
-
* @param result optional preallocated result
|
|
579
|
+
* @param result optional preallocated result.
|
|
557
580
|
*/
|
|
558
581
|
startPoint(result) {
|
|
559
582
|
return this.fractionToPoint(0.0, result);
|
|
560
583
|
}
|
|
561
584
|
/**
|
|
562
585
|
* Return the end point of the arc.
|
|
563
|
-
* @param result optional preallocated result
|
|
586
|
+
* @param result optional preallocated result.
|
|
564
587
|
*/
|
|
565
588
|
endPoint(result) {
|
|
566
589
|
return this.fractionToPoint(1.0, result);
|
|
@@ -632,9 +655,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
632
655
|
return chordSum * factor;
|
|
633
656
|
}
|
|
634
657
|
/**
|
|
635
|
-
* * See extended comments on `CurvePrimitive.moveSignedDistanceFromFraction
|
|
636
|
-
* * A zero length line generates `CurveSearchStatus.error
|
|
637
|
-
* * Nonzero length line generates `CurveSearchStatus.success` or `CurveSearchStatus.stoppedAtBoundary
|
|
658
|
+
* * See extended comments on `CurvePrimitive.moveSignedDistanceFromFraction`.
|
|
659
|
+
* * A zero length line generates `CurveSearchStatus.error`.
|
|
660
|
+
* * Nonzero length line generates `CurveSearchStatus.success` or `CurveSearchStatus.stoppedAtBoundary`.
|
|
638
661
|
*/
|
|
639
662
|
moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
|
|
640
663
|
if (!this.isCircular) // suppress extension !!!
|
|
@@ -648,7 +671,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
648
671
|
}
|
|
649
672
|
/**
|
|
650
673
|
* Return all radian angles where the ellipse tangent is perpendicular to the vector to a spacePoint.
|
|
651
|
-
* @param spacePoint point of origin of vectors to the ellipse
|
|
674
|
+
* @param spacePoint point of origin of vectors to the ellipse.
|
|
652
675
|
* @param _extend always true. Sweep is ignored: perpendiculars for the full ellipse are returned.
|
|
653
676
|
* @param endpoints if true, force the end radians into the result.
|
|
654
677
|
*/
|
|
@@ -717,7 +740,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
717
740
|
/**
|
|
718
741
|
* Apply a transform to the arc basis vectors.
|
|
719
742
|
* * nonuniform (i.e. skewing) transforms are allowed.
|
|
720
|
-
* * The transformed vector0 and vector90 are NOT squared up as major minor axes
|
|
743
|
+
* * The transformed vector0 and vector90 are NOT squared up as major minor axes (this is a good feature).
|
|
721
744
|
*/
|
|
722
745
|
tryTransformInPlace(transform) {
|
|
723
746
|
this._center = transform.multiplyPoint3d(this._center, this._center);
|
|
@@ -726,10 +749,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
726
749
|
this.setVector0Vector90(this._matrix.columnX(), this._matrix.columnY());
|
|
727
750
|
return true;
|
|
728
751
|
}
|
|
729
|
-
/**
|
|
730
|
-
* Return true if the ellipse center and basis vectors are in the plane
|
|
731
|
-
* @param plane
|
|
732
|
-
*/
|
|
752
|
+
/** Return true if the ellipse center and basis vectors are in the plane. */
|
|
733
753
|
isInPlane(plane) {
|
|
734
754
|
const normal = plane.getNormalRef();
|
|
735
755
|
// The ellipse vectors are full-length -- true distance comparisons say things.
|
|
@@ -757,17 +777,17 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
757
777
|
return Geometry_1.Geometry.hypotenuseXY(ux, uy);
|
|
758
778
|
return undefined;
|
|
759
779
|
}
|
|
760
|
-
/** If the arc is circular, return its radius. Otherwise return undefined */
|
|
780
|
+
/** If the arc is circular, return its radius. Otherwise return undefined. */
|
|
761
781
|
circularRadius() {
|
|
762
782
|
return this.isCircular ? this._matrix.columnXMagnitude() : undefined;
|
|
763
783
|
}
|
|
764
|
-
/** Return the larger of the two defining vectors. */
|
|
784
|
+
/** Return the larger length of the two defining vectors. */
|
|
765
785
|
maxVectorLength() {
|
|
766
786
|
return Math.max(this._matrix.columnXMagnitude(), this._matrix.columnYMagnitude());
|
|
767
787
|
}
|
|
768
788
|
/**
|
|
769
789
|
* Compute intersections with a plane.
|
|
770
|
-
* @param plane plane to intersect
|
|
790
|
+
* @param plane plane to intersect.
|
|
771
791
|
* @param result array of locations on the curve.
|
|
772
792
|
*/
|
|
773
793
|
appendPlaneIntersectionPoints(plane, result) {
|
|
@@ -830,8 +850,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
830
850
|
range.extend(highPoint);
|
|
831
851
|
}
|
|
832
852
|
/**
|
|
833
|
-
* Returns a (high accuracy) range of the curve between fractional positions
|
|
834
|
-
* * Default implementation returns teh range of the curve from clonePartialCurve
|
|
853
|
+
* Returns a (high accuracy) range of the curve between fractional positions.
|
|
854
|
+
* * Default implementation returns teh range of the curve from clonePartialCurve.
|
|
835
855
|
*/
|
|
836
856
|
rangeBetweenFractions(fraction0, fraction1, transform) {
|
|
837
857
|
const sweep = AngleSweep_1.AngleSweep.createStartEndRadians(this.sweep.fractionToRadians(fraction0), this.sweep.fractionToRadians(fraction1));
|
|
@@ -841,7 +861,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
841
861
|
}
|
|
842
862
|
/**
|
|
843
863
|
* Set up a SineCosinePolynomial as the function c+u*cos(theta)+v*sin(theta) where
|
|
844
|
-
*
|
|
864
|
+
* c,u,v are coefficients obtained by evaluating altitude and velocity relative to the plane.
|
|
845
865
|
* @param plane plane for altitude calculation.
|
|
846
866
|
* @param result optional result.
|
|
847
867
|
* @internal
|
|
@@ -861,32 +881,32 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
861
881
|
}
|
|
862
882
|
/**
|
|
863
883
|
* Create a new arc which is parallel to the xy plane, with given center and radius and optional angle sweep.
|
|
864
|
-
* @param center center of arc
|
|
865
|
-
* @param radius radius of arc
|
|
866
|
-
* @param sweep sweep limits
|
|
884
|
+
* @param center center of arc.
|
|
885
|
+
* @param radius radius of arc.
|
|
886
|
+
* @param sweep sweep limits; defaults to full circle.
|
|
867
887
|
*/
|
|
868
888
|
static createXY(center, radius, sweep = AngleSweep_1.AngleSweep.create360()) {
|
|
869
889
|
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radius, radius, 1.0), sweep.clone());
|
|
870
890
|
}
|
|
871
891
|
/**
|
|
872
892
|
* Create a new arc which is parallel to the xy plane, with given center and x,y radii, and optional angle sweep
|
|
873
|
-
* @param center center of ellipse
|
|
874
|
-
* @param radiusA x axis radius
|
|
875
|
-
* @param radiusB y axis radius
|
|
876
|
-
* @param sweep angle sweep
|
|
893
|
+
* @param center center of ellipse.
|
|
894
|
+
* @param radiusA x axis radius.
|
|
895
|
+
* @param radiusB y axis radius.
|
|
896
|
+
* @param sweep angle sweep.
|
|
877
897
|
*/
|
|
878
898
|
static createXYEllipse(center, radiusA, radiusB, sweep = AngleSweep_1.AngleSweep.create360()) {
|
|
879
899
|
return new Arc3d(center.clone(), Matrix3d_1.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep.clone());
|
|
880
900
|
}
|
|
881
901
|
/**
|
|
882
902
|
* Replace the arc's 0 and 90 degree vectors.
|
|
883
|
-
* @param vector0 vector from center to ellipse point at 0 degrees in parameter space
|
|
884
|
-
* @param vector90 vector from center to ellipse point at 90 degrees in parameter space
|
|
903
|
+
* @param vector0 vector from center to ellipse point at 0 degrees in parameter space.
|
|
904
|
+
* @param vector90 vector from center to ellipse point at 90 degrees in parameter space.
|
|
885
905
|
*/
|
|
886
906
|
setVector0Vector90(vector0, vector90) {
|
|
887
907
|
this._matrix.setColumns(vector0, vector90, vector0.unitCrossProductWithDefault(vector90, 0, 0, 0));
|
|
888
908
|
}
|
|
889
|
-
/** Return the arc definition with rigid matrix form with axis radii */
|
|
909
|
+
/** Return the arc definition with rigid matrix form with axis radii. */
|
|
890
910
|
toScaledMatrix3d() {
|
|
891
911
|
const angleData = Angle_1.Angle.dotProductsToHalfAngleTrigValues(this._matrix.columnXMagnitudeSquared(), this._matrix.columnYMagnitudeSquared(), this._matrix.columnXDotColumnY(), true);
|
|
892
912
|
const vector0A = this._matrix.multiplyXY(angleData.c, angleData.s);
|
|
@@ -900,7 +920,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
900
920
|
sweep: this.sweep.cloneMinusRadians(angleData.radians),
|
|
901
921
|
};
|
|
902
922
|
}
|
|
903
|
-
/** Return the arc definition with center, two vectors, and angle sweep
|
|
923
|
+
/** Return the arc definition with center, two vectors, and angle sweep. */
|
|
904
924
|
toVectors() {
|
|
905
925
|
return {
|
|
906
926
|
center: this.center.clone(),
|
|
@@ -935,9 +955,9 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
935
955
|
}
|
|
936
956
|
/**
|
|
937
957
|
* Set this arc from a json object with these values:
|
|
938
|
-
* * center center point
|
|
939
|
-
* * vector0 vector from center to 0 degree point in parameter space (commonly but not always the major axis vector)
|
|
940
|
-
* * vector90 vector from center to 90 degree point in parameter space (commonly but not always the minor axis vector)
|
|
958
|
+
* * center center point.
|
|
959
|
+
* * vector0 vector from center to 0 degree point in parameter space (commonly but not always the major axis vector).
|
|
960
|
+
* * vector90 vector from center to 90 degree point in parameter space (commonly but not always the minor axis vector).
|
|
941
961
|
* @param json
|
|
942
962
|
*/
|
|
943
963
|
setFromJSON(json) {
|
|
@@ -968,22 +988,22 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
968
988
|
vector90: this._matrix.columnY().toJSON(),
|
|
969
989
|
};
|
|
970
990
|
}
|
|
971
|
-
/** Test if this arc is almost equal to another GeometryQuery object */
|
|
972
|
-
isAlmostEqual(otherGeometry) {
|
|
991
|
+
/** Test if this arc is almost equal to another GeometryQuery object. */
|
|
992
|
+
isAlmostEqual(otherGeometry, distanceTol = Geometry_1.Geometry.smallMetricDistance, radianTol = Geometry_1.Geometry.smallAngleRadians) {
|
|
973
993
|
if (otherGeometry instanceof Arc3d) {
|
|
974
994
|
const other = otherGeometry;
|
|
975
|
-
return this._center.isAlmostEqual(other._center)
|
|
976
|
-
&& this._matrix.isAlmostEqual(other._matrix)
|
|
977
|
-
&& this._sweep.isAlmostEqualAllowPeriodShift(other._sweep);
|
|
995
|
+
return this._center.isAlmostEqual(other._center, distanceTol)
|
|
996
|
+
&& this._matrix.isAlmostEqual(other._matrix, distanceTol)
|
|
997
|
+
&& this._sweep.isAlmostEqualAllowPeriodShift(other._sweep, radianTol);
|
|
978
998
|
}
|
|
979
999
|
return false;
|
|
980
1000
|
}
|
|
981
|
-
/** Emit strokes to caller-supplied linestring */
|
|
1001
|
+
/** Emit strokes to caller-supplied linestring. */
|
|
982
1002
|
emitStrokes(dest, options) {
|
|
983
1003
|
const numStrokes = this.computeStrokeCountForOptions(options);
|
|
984
1004
|
dest.appendFractionalStrokePoints(this, numStrokes, 0.0, 1.0, true);
|
|
985
1005
|
}
|
|
986
|
-
/** Emit strokes to caller-supplied handler */
|
|
1006
|
+
/** Emit strokes to caller-supplied handler. */
|
|
987
1007
|
emitStrokableParts(handler, options) {
|
|
988
1008
|
const numStrokes = this.computeStrokeCountForOptions(options);
|
|
989
1009
|
handler.startCurvePrimitive(this);
|
|
@@ -992,7 +1012,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
992
1012
|
}
|
|
993
1013
|
/**
|
|
994
1014
|
* Return the stroke count required for given options.
|
|
995
|
-
* @param options StrokeOptions that determine count
|
|
1015
|
+
* @param options StrokeOptions that determine count.
|
|
996
1016
|
*/
|
|
997
1017
|
computeStrokeCountForOptions(options) {
|
|
998
1018
|
let numStroke;
|
|
@@ -1005,14 +1025,14 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1005
1025
|
}
|
|
1006
1026
|
return numStroke;
|
|
1007
1027
|
}
|
|
1008
|
-
/** Second step of double dispatch:
|
|
1028
|
+
/** Second step of double dispatch: call `handler.handleArc3d(this)` */
|
|
1009
1029
|
dispatchToGeometryHandler(handler) {
|
|
1010
1030
|
return handler.handleArc3d(this);
|
|
1011
1031
|
}
|
|
1012
1032
|
/**
|
|
1013
1033
|
* Return (if possible) an arc which is a portion of this curve.
|
|
1014
|
-
* @param fractionA
|
|
1015
|
-
* @param fractionB
|
|
1034
|
+
* @param fractionA start fraction.
|
|
1035
|
+
* @param fractionB end fraction.
|
|
1016
1036
|
*/
|
|
1017
1037
|
clonePartialCurve(fractionA, fractionB) {
|
|
1018
1038
|
if (fractionB < fractionA) {
|
|
@@ -1026,8 +1046,8 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1026
1046
|
}
|
|
1027
1047
|
/**
|
|
1028
1048
|
* Return an arc whose basis vectors are rotated by given angle within the current basis space.
|
|
1029
|
-
* * the result arc will have its zero-degree point (new `vector0`) at the current
|
|
1030
|
-
* `vector0 * cos(theta) + vector90 * sin(theta)
|
|
1049
|
+
* * the result arc will have its zero-degree point (new `vector0`) at the current.
|
|
1050
|
+
* `vector0 * cos(theta) + vector90 * sin(theta)`.
|
|
1031
1051
|
* * the result sweep is adjusted so all fractional coordinates (e.g. start and end) evaluate to the same xyz.
|
|
1032
1052
|
* * Specifically, theta is subtracted from the original start and end angles.
|
|
1033
1053
|
* @param theta the angle (in the input arc space) which is to become the 0-degree point in the new arc.
|
|
@@ -1042,10 +1062,10 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1042
1062
|
return arcB;
|
|
1043
1063
|
}
|
|
1044
1064
|
/**
|
|
1045
|
-
* Find intervals of this CurvePrimitive that are interior to a clipper
|
|
1046
|
-
* @param clipper clip structure (e.g.clip planes)
|
|
1047
|
-
* @param announce(optional) function to be called announcing fractional intervals
|
|
1048
|
-
* `
|
|
1065
|
+
* Find intervals of this CurvePrimitive that are interior to a clipper.
|
|
1066
|
+
* @param clipper clip structure (e.g.clip planes).
|
|
1067
|
+
* @param announce (optional) function to be called announcing fractional intervals
|
|
1068
|
+
* `announce(fraction0, fraction1, curvePrimitive)`.
|
|
1049
1069
|
* @returns true if any "in" segments are announced.
|
|
1050
1070
|
*/
|
|
1051
1071
|
announceClipIntervals(clipper, announce) {
|
|
@@ -1057,7 +1077,12 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1057
1077
|
const otherVector0 = this._matrix.multiplyInverse(other.vector0);
|
|
1058
1078
|
const otherVector90 = this._matrix.multiplyInverse(other.vector90);
|
|
1059
1079
|
if (otherOrigin && otherVector0 && otherVector90) {
|
|
1060
|
-
return {
|
|
1080
|
+
return {
|
|
1081
|
+
center: otherOrigin,
|
|
1082
|
+
vector0: otherVector0,
|
|
1083
|
+
vector90: otherVector90,
|
|
1084
|
+
sweep: this.sweep.clone(),
|
|
1085
|
+
};
|
|
1061
1086
|
}
|
|
1062
1087
|
return undefined;
|
|
1063
1088
|
}
|
|
@@ -1065,20 +1090,20 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1065
1090
|
* Determine an arc "at a point of inflection" of a point sequence.
|
|
1066
1091
|
* * Return the arc along with the fractional positions of the tangency points.
|
|
1067
1092
|
* * In the returned object:
|
|
1068
|
-
* * `arc` is the (bounded) arc
|
|
1093
|
+
* * `arc` is the (bounded) arc.
|
|
1069
1094
|
* * `fraction10` is the tangency point's position as an interpolating fraction of the line segment from
|
|
1070
|
-
* `point1` (backwards) to `point0
|
|
1095
|
+
* `point1` (backwards) to `point0`.
|
|
1071
1096
|
* * `fraction12` is the tangency point's position as an interpolating fraction of the line segment from
|
|
1072
|
-
* `point1` (forward) to `point2
|
|
1097
|
+
* `point1` (forward) to `point2`.
|
|
1073
1098
|
* * `point` is the `point1` input.
|
|
1074
1099
|
* * If unable to construct the arc:
|
|
1075
1100
|
* * `point` is the `point1` input.
|
|
1076
|
-
* * both fractions are zero
|
|
1101
|
+
* * both fractions are zero.
|
|
1077
1102
|
* * `arc` is undefined.
|
|
1078
|
-
* @param point0 first point of path
|
|
1079
|
-
* @param point1 second point of path (the point of inflection)
|
|
1080
|
-
* @param point2 third point of path (the point after the point of inflection)
|
|
1081
|
-
* @param radius arc radius
|
|
1103
|
+
* @param point0 first point of path (the point before the point of inflection).
|
|
1104
|
+
* @param point1 second point of path (the point of inflection).
|
|
1105
|
+
* @param point2 third point of path (the point after the point of inflection).
|
|
1106
|
+
* @param radius arc radius.
|
|
1082
1107
|
*
|
|
1083
1108
|
*/
|
|
1084
1109
|
static createFilletArc(point0, point1, point2, radius) {
|
|
@@ -1113,11 +1138,11 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1113
1138
|
}
|
|
1114
1139
|
return { fraction10: 0.0, fraction12: 0.0, point: point1.clone() };
|
|
1115
1140
|
}
|
|
1116
|
-
/** Scale the vector0 and vector90 vectors by `scaleFactor
|
|
1141
|
+
/** Scale the vector0 and vector90 vectors by `scaleFactor`. */
|
|
1117
1142
|
scaleAboutCenterInPlace(scaleFactor) {
|
|
1118
1143
|
this._matrix.scaleColumnsInPlace(scaleFactor, scaleFactor, 1.0);
|
|
1119
1144
|
}
|
|
1120
|
-
/** Return the (signed!) area between (a fractional portion of) the arc and the chord between those points */
|
|
1145
|
+
/** Return the (signed!) area between (a fractional portion of) the arc and the chord between those points. */
|
|
1121
1146
|
areaToChordXY(fraction0, fraction1) {
|
|
1122
1147
|
let detJ = Geometry_1.Geometry.crossProductXYXY(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[1], this._matrix.coffs[4]);
|
|
1123
1148
|
// areas in arc of unit circle with radians limits
|
|
@@ -1132,7 +1157,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1132
1157
|
}
|
|
1133
1158
|
/**
|
|
1134
1159
|
* Construct an offset of the instance curve as viewed in the xy-plane (ignoring z).
|
|
1135
|
-
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object
|
|
1160
|
+
* @param offsetDistanceOrOptions offset distance (positive to left of the instance curve), or options object.
|
|
1136
1161
|
*/
|
|
1137
1162
|
constructOffsetXY(offsetDistanceOrOptions) {
|
|
1138
1163
|
const options = OffsetOptions_1.OffsetOptions.create(offsetDistanceOrOptions);
|
|
@@ -1164,7 +1189,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1164
1189
|
/**
|
|
1165
1190
|
* Project instance geometry (via dispatch) onto the given ray, and return the extreme fractional parameters of projection.
|
|
1166
1191
|
* @param ray ray onto which the instance is projected. A `Vector3d` is treated as a `Ray3d` with zero origin.
|
|
1167
|
-
* @param lowHigh optional receiver for output
|
|
1192
|
+
* @param lowHigh optional receiver for output.
|
|
1168
1193
|
* @returns range of fractional projection parameters onto the ray, where 0.0 is start of the ray and 1.0 is the end of the ray.
|
|
1169
1194
|
*/
|
|
1170
1195
|
projectedParameterRange(ray, lowHigh) {
|
|
@@ -1172,7 +1197,7 @@ class Arc3d extends CurvePrimitive_1.CurvePrimitive {
|
|
|
1172
1197
|
}
|
|
1173
1198
|
/**
|
|
1174
1199
|
* Construct a circular arc chain approximation to the instance elliptical arc.
|
|
1175
|
-
* @param options bundle of options for sampling an elliptical arc (use default options if undefined)
|
|
1200
|
+
* @param options bundle of options for sampling an elliptical arc (use default options if undefined).
|
|
1176
1201
|
* @returns the approximating curve chain, the circular instance, or undefined if construction fails.
|
|
1177
1202
|
*/
|
|
1178
1203
|
constructCircularArcChainApproximation(options) {
|
|
@@ -1194,8 +1219,8 @@ Arc3d._workVectorV = Point3dVector3d_1.Vector3d.create();
|
|
|
1194
1219
|
Arc3d._workVectorW = Point3dVector3d_1.Vector3d.create();
|
|
1195
1220
|
// !! misspelled Gauss in the published static !! Declare it ok.
|
|
1196
1221
|
// cspell::word Guass
|
|
1197
|
-
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
|
|
1222
|
+
/** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep). */
|
|
1198
1223
|
Arc3d.quadratureGuassCount = 5;
|
|
1199
|
-
/** In quadrature for arc length, use this interval (divided by quickEccentricity) */
|
|
1224
|
+
/** In quadrature for arc length, use this interval (divided by quickEccentricity). */
|
|
1200
1225
|
Arc3d.quadratureIntervalAngleDegrees = 10.0;
|
|
1201
1226
|
//# sourceMappingURL=Arc3d.js.map
|