public sealed class BiArc
A bi-arc defined by end-points, tangents and a ratio balance.

Properties

A

#
public BiArcSegment A { get; }
The first segment of the bi-arc.

B

#
public BiArcSegment B { get; }
The second segment of the bi-arc.

PointA

#
public Point3d PointA { get; }
Gets the start point of the bi-arc.

PointB

#
public Point3d PointB { get; }
Gets the end-point of the bi-arc.

PointM

#
public Point3d PointM { get; }
Gets the point of transition between the first and second segment.

TangentA

#
public Vector3d TangentA { get; }
Gets the start tangent of the bi-arc.

TangentB

#
public Vector3d TangentB { get; }
Gets the end-tangent of the bi-arc.

Methods

CreateApproximated

#
public static BiArc CreateApproximated(Point3d pa, Vector3d ta, Point3d pb, Vector3d tb, Point3d seamHint)
Create a bi-arc whose transition point is as close as possible to a given location.
pa (Point3d)
ta (Vector3d)
pb (Point3d)
tb (Vector3d)
seamHint (Point3d)

CreateBalanced

#
public static BiArc CreateBalanced(Point3d pa, Vector3d ta, Point3d pb, Vector3d tb)
Create a bi-arc with equal arc control-point lengths.
pa (Point3d)
ta (Vector3d)
pb (Point3d)
tb (Vector3d)

CreateInterpolated

#
public static BiArc CreateInterpolated(Point3d pa, Vector3d ta, Point3d pb, Vector3d tb, double factor)
Create a bi-arc whose transition point is linearly interpolated along the seam locus. Value between zero and one yield bi-arcs on the primary arc of the solution family, values in the range (-1, 0) yield bi-arcs on the complementary arc of the solution family.
pa (Point3d)
ta (Vector3d)
pb (Point3d)
tb (Vector3d)
factor (double)

CreateSolutionLocusAlternate

#
public static BiArcSegment CreateSolutionLocusAlternate(Point3d pa, Vector3d ta, Point3d pb, Vector3d tb)
Create the alternate arc from 'pa' to 'pb' along which the transition points of all bi-arcs lie. If the primary locus is linear, there is no alternate locus and this method will return null.
pa (Point3d)
ta (Vector3d)
pb (Point3d)
tb (Vector3d)

CreateSolutionLocusPrimary

#
public static BiArcSegment CreateSolutionLocusPrimary(Point3d pa, Vector3d ta, Point3d pb, Vector3d tb)
Create the primary line or arc from 'pa' to 'pb' along which the transition points of all bi-arcs lie.
pa (Point3d)
ta (Vector3d)
pb (Point3d)
tb (Vector3d)

ToCurve

#
public Curve ToCurve()
Create a Curve of this bi-arc. This will either be a single LineCurve, a single ArcCurve, or a single PolyCurve.