Generated by DocFX

Class PolyCurve

Represents a curve that is the result of joining several (possibly different) types of curves.

Inheritance
System.Object
NurbsBase
PolyCurve
Inherited Members
NurbsBase.Weights
NurbsBase.Degree
NurbsBase.ControlPointLocations
NurbsBase.ControlPoints
NurbsBase.Knots
NurbsBase.Length
NurbsBase.StartPoint
NurbsBase.MidPoint
NurbsBase.EndPoint
NurbsBase.IsClosed
NurbsBase.IsPeriodic
NurbsBase.GetBoundingBox()
NurbsBase.Close()
NurbsBase.PointAt(Double)
NurbsBase.PointAtLength(Double)
NurbsBase.PointAtNormalizedLength(Double)
NurbsBase.ParameterAtChordLength(Double, Double)
NurbsBase.DivideByChordLength(Double)
NurbsBase.TangentAt(Double)
NurbsBase.DerivativeAt(Double, Int32)
NurbsBase.Extrema()
NurbsBase.CurvatureAt(Double)
NurbsBase.PerpendicularFrameAt(Double)
NurbsBase.Reverse()
NurbsBase.ClosestPoint(Point3)
NurbsBase.ClosestParameter(Point3)
NurbsBase.ParameterAtLength(Double)
NurbsBase.LengthAt(Double)
NurbsBase.ClampEnds()
NurbsBase.Offset(Double, Plane)
NurbsBase.Join(IList<NurbsBase>)
NurbsBase.DecomposeIntoBeziers()
NurbsBase.ElevateDegree(Int32)
NurbsBase.ReduceDegree(Double)
NurbsBase.Divide(Int32)
NurbsBase.Divide(Double, Boolean)
NurbsBase.PerpendicularFrames(List<Double>, Nullable<Vector3>, Nullable<Vector3>)
NurbsBase.SplitAt(Double)
NurbsBase.SplitAt(Double[])
NurbsBase.SubCurve(Interval)
NurbsBase.ToString()
NurbsBase.Equals(NurbsBase)
NurbsBase.Equals(Object)
NurbsBase.GetHashCode()
NurbsBase.Transform(TransformMatrix)
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Syntax
public class PolyCurve : NurbsBase, IGeometry<NurbsBase>, IEquatable<NurbsBase>, ITransformable<NurbsBase>
Examples
// Initializes a polycurve from a curve a line and an arc.
NurbsCurve curve = new NurbsCurve(pts, degree);
Line line = new Line(new Point3(5, 5, 0), new Point3(5, 5, -2.5));
Arc arc = Arc.ByStartEndDirection(new Point3(5, 5, -2.5), new Point3(10, 5, -5), new Vector3(0, 0, -1));

List<NurbsBase> curves = new List<NurbsBase>{ curve, line, arc};
_polycurve = new PolyCurve(curves);

Constructors

| Improve this Doc View Source

PolyCurve(IList<NurbsBase>)

Initializes a new polyCurve with a list of curves

Declaration
public PolyCurve(IList<NurbsBase> curves)
Parameters
Type Name Description
System.Collections.Generic.IList<NurbsBase> curves

a list of curves

Properties

| Improve this Doc View Source

Segments

The segments of the polyCurve.

Declaration
public List<NurbsBase> Segments { get; }
Property Value
Type Description
System.Collections.Generic.List<NurbsBase>

Methods

| Improve this Doc View Source

Append(Arc)

Appends and matches the start of the arc to the end of polycurve. This function will fail if the polycurve is closed.

Declaration
public void Append(Arc arc)
Parameters
Type Name Description
Arc arc

The arc to append.

| Improve this Doc View Source

Append(Line)

Appends and matches the start of the arc to the end of polycurve. This function will fail if the polycurve is closed.

Declaration
public void Append(Line line)
Parameters
Type Name Description
Line line

The line to append.

| Improve this Doc View Source

Append(NurbsCurve)

Appends and matches the start of the curve to the end of polycurve. This function will fail if the polycurve is closed or if SegmentCount > 0 and the segment curve is closed.

Declaration
public void Append(NurbsCurve curve)
Parameters
Type Name Description
NurbsCurve curve
| Improve this Doc View Source

Append(PolyCurve)

Appends and matches the start of the curve to the end of polycurve. This function will fail if the polycurve is closed or if SegmentCount > 0 and the segment polycurve is closed.

Declaration
public void Append(PolyCurve polyCurve)
Parameters
Type Name Description
PolyCurve polyCurve
| Improve this Doc View Source

SegmentAtLength(Double)

Find Curve Segment At a given Length. When there is no curve segments in the PolyCurve, return null; If the provided length is greater than the PolyCurve Length, then it return the last segment in PolyCurve;

Declaration
public NurbsBase SegmentAtLength(double length)
Parameters
Type Name Description
System.Double length

Segment Length

Returns
Type Description
NurbsBase

Implements

IGeometry<T>
System.IEquatable<T>
ITransformable<T>