PolyCurve Class 
Namespace: Rhino.Geometry
The PolyCurve type exposes the following members.
Name  Description  

PolyCurve 
Initializes a new, empty polycurve.
 
PolyCurve(SerializationInfo, StreamingContext) 
Protected constructor for internal use.

Name  Description  

Degree 
Gets the maximum algebraic degree of any span
or a good estimate if curve spans are not algebraic.
(Inherited from Curve.)  
Dimension 
Gets the dimension of the object.
(Inherited from Curve.)The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.  
Disposed 
Indicates if this object has been disposed or the
document it originally belonged to has been disposed.
(Inherited from CommonObject.)  
Domain 
Gets or sets the domain of the curve.
(Inherited from Curve.)  
HasBrepForm 
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.)  
HasGap 
This is a quick way to see if the curve has gaps between the sub curve segments.
 
HasUserData 
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)  
IsClosed 
Gets a value indicating whether or not this curve is a closed curve.
(Inherited from Curve.)  
IsDeformable 
true if object can be accurately modified with "squishy" transformations like
projections, shears, and nonuniform scaling.
(Inherited from GeometryBase.)  
IsDocumentControlled 
If true this object may not be modified. Any properties or functions that attempt
to modify this object when it is set to "IsReadOnly" will throw a NotSupportedException.
(Inherited from GeometryBase.)  
IsNested 
Gets a value indicating whether or not a PolyCurve contains nested PolyCurves.
 
IsPeriodic 
Gets a value indicating whether or not this curve is considered to be Periodic.
(Inherited from Curve.)  
IsSubDFriendly 
Returns true if the curve is a cubic, nonrational, uniform NURBS curve that is either periodic or has natural end conditions.
Othewise, false is returned.
(Inherited from Curve.)  
IsValid  Tests an object to see if it is valid. (Inherited from CommonObject.)  
ObjectType 
Useful for switch statements that need to differentiate between
basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.)  
PointAtEnd 
Evaluates point at the end of the curve.
(Inherited from Curve.)  
PointAtStart 
Evaluates point at the start of the curve.
(Inherited from Curve.)  
SegmentCount 
Gets the number of segments that make up this Polycurve.
 
SpanCount 
Gets the number of nonempty smooth (cinfinity) spans in the curve.
(Inherited from Curve.)  
TangentAtEnd  Evaluate unit tangent vector at the end of the curve. (Inherited from Curve.)  
TangentAtStart  Evaluates the unit tangent vector at the start of the curve. (Inherited from Curve.)  
UserData 
List of custom information that is attached to this class.
(Inherited from CommonObject.)  
UserDictionary 
Dictionary of custom information attached to this class. The dictionary is actually user
data provided as an easy to use sharable set of information.
(Inherited from CommonObject.)  
UserStringCount 
Gets the amount of user strings.
(Inherited from GeometryBase.) 
Name  Description  

Append(Arc) 
Appends and matches the start of the arc to the end of polycurve.
This function will fail if the polycurve is closed or if SegmentCount > 0 and the arc is closed.
 
Append(Curve) 
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 new segment is closed.
 
Append(Line) 
Appends and matches the start of the line to the end of polycurve.
This function will fail if the polycurve is closed.
 
AppendSegment 
Appends the curve to the polycurve without changing the new segment's geometry.
This function will fail if the PolyCurve is closed or if SegmentCount > 0 and the new segment is closed.
 
ChangeClosedCurveSeam 
If this curve is closed, then modify it so that the start/end point is at curve parameter t.
(Inherited from Curve.)  
ChangeDimension 
Changes the dimension of a curve.
(Inherited from Curve.)  
CleanUp 
Removes any nesting of polycurves. If this polycurve has just a single segment, the segment is returned.
If, after nest removal, there are adjacent segments which are polylines, they are combined into a single polyline.
The new curve may have a different domain from this polycurve. If the start and end segments of a closed input are polylines,
the result may have a different seam location since the start and end segments will be combined.
 
ClosedCurveOrientation 
Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane.
Only works with simple (no self intersections) closed, planar curves.
(Inherited from Curve.)  
ClosedCurveOrientation(Plane) 
Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane.
Only works with simple (no self intersections) closed, planar curves.
(Inherited from Curve.)  
ClosedCurveOrientation(Transform) 
Determines the orientation (counterclockwise or clockwise) of a closed, planar curve.
Only works with simple (no self intersections) closed, planar curves.
(Inherited from Curve.)  
ClosedCurveOrientation(Vector3d) 
Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane.
Only works with simple (no self intersections) closed, planar curves.
(Inherited from Curve.)  
ClosestPoint(Point3d, Double) 
Finds parameter of the point on a curve that is closest to testPoint.
If the maximumDistance parameter is > 0, then only points whose distance
to the given point is <= maximumDistance will be returned. Using a
positive value of maximumDistance can substantially speed up the search.
(Inherited from Curve.)  
ClosestPoint(Point3d, Double, Double) 
Finds the parameter of the point on a curve that is closest to testPoint.
If the maximumDistance parameter is > 0, then only points whose distance
to the given point is <= maximumDistance will be returned. Using a
positive value of maximumDistance can substantially speed up the search.
(Inherited from Curve.)  
ClosestPoints(Curve, Point3d, Point3d) 
Gets closest points between this and another curves.
(Inherited from Curve.)  
ClosestPoints(IEnumerableGeometryBase, Point3d, Point3d, Int32) 
Finds the object (and the closest point in that object) that is closest to
this curve. (Inherited from Curve.)Breps, surfaces, curves and point clouds are examples of objects that can be passed to this function.  
ClosestPoints(IEnumerableGeometryBase, Point3d, Point3d, Int32, Double) 
Finds the object (and the closest point in that object) that is closest to
this curve. (Inherited from Curve.)Breps, surfaces, curves and point clouds are examples of objects that can be passed to this function.  
CombineShortSegments 
Looks for segments that are shorter than tolerance that can be combined.
For NURBS of degree greater than 1, spans are combined by removing
knots. Similarly for NURBS segments of polycurves. Otherwise,
RemoveShortSegments() is called. Does not change the domain, but it will
change the relative parameterization.
(Inherited from Curve.)  
ComponentIndex 
If this piece of geometry is a component in something larger, like a BrepEdge
in a Brep, then this function returns the component index.
(Inherited from GeometryBase.)  
ConstructConstObject 
Assigns a parent object and a subobject index to this.
(Inherited from CommonObject.)  
Contains(Point3d)  Obsolete.
Computes the relationship between a point and a closed curve region.
This curve must be closed or the return value will be Unset.
Both curve and point are projected to the World XY plane.
(Inherited from Curve.)  
Contains(Point3d, Plane)  Obsolete.
Computes the relationship between a point and a closed curve region.
This curve must be closed or the return value will be Unset.
(Inherited from Curve.)  
Contains(Point3d, Plane, Double) 
Computes the relationship between a point and a closed curve region.
This curve must be closed or the return value will be Unset.
(Inherited from Curve.)  
CurvatureAt  Evaluate the curvature vector at a curve parameter. (Inherited from Curve.)  
DerivativeAt(Double, Int32) 
Evaluate the derivatives at the specified curve parameter.
(Inherited from Curve.)  
DerivativeAt(Double, Int32, CurveEvaluationSide) 
Evaluate the derivatives at the specified curve parameter.
(Inherited from Curve.)  
Dispose 
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)  
Dispose(Boolean) 
For derived class implementers.
(Inherited from Curve.)This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method. You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true. Also, you must call the base virtual method within your overriding method.  
DivideAsContour 
Divides this curve at fixed steps along a defined contour line.
(Inherited from Curve.)  
DivideByCount(Int32, Boolean) 
Divide the curve into a number of equallength segments.
(Inherited from Curve.)  
DivideByCount(Int32, Boolean, Point3d) 
Divide the curve into a number of equallength segments.
(Inherited from Curve.)  
DivideByLength(Double, Boolean) 
Divide the curve into specific length segments.
(Inherited from Curve.)  
DivideByLength(Double, Boolean, Point3d) 
Divide the curve into specific length segments.
(Inherited from Curve.)  
DivideByLength(Double, Boolean, Boolean) 
Divide the curve into specific length segments.
(Inherited from Curve.)  
DivideByLength(Double, Boolean, Boolean, Point3d) 
Divide the curve into specific length segments.
(Inherited from Curve.)  
DivideEquidistant 
Calculates 3d points on a curve where the linear distance between the points is equal.
(Inherited from Curve.)  
Duplicate 
Duplicates this polycurve.
(Overrides CurveDuplicate.)When not overridden in a derived class, this calls DuplicatePolyCurve.  
DuplicateCurve 
Constructs an exact duplicate of this curve.
(Inherited from Curve.)  
DuplicatePolyCurve 
Duplicates this polycurve.
This is the same as Duplicate.  
DuplicateSegments 
Duplicates curve segments.
Explodes polylines, polycurves and G1 discontinuous NURBS curves.
Single segment curves, such as lines, arcs, unkinked NURBS curves, are duplicated.
(Inherited from Curve.)  
DuplicateShallow 
Constructs a light copy of this object. By "light", it is meant that the same
underlying data is used until something is done to attempt to change it. For example,
you could have a shallow copy of a very heavy mesh object and the same underlying
data will be used when doing things like inspecting the number of faces on the mesh.
If you modify the location of one of the mesh vertices, the shallow copy will create
a full duplicate of the underlying mesh data and the shallow copy will become a
deep copy.
(Inherited from GeometryBase.)  
EnsurePrivateCopy 
If you want to keep a copy of this class around by holding onto it in a variable after a command
completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can
call this function as many times as you want.
(Inherited from CommonObject.)  
Equals  Determines whether the specified object is equal to the current object. (Inherited from Object.)  
Explode 
Explodes this PolyCurve into a list of Curve segments. This will not explode nested polycurves.
Call RemoveNesting first if you need all individual segments.
 
Extend(Interval) 
Where possible, analytically extends curve to include the given domain.
This will not work on closed curves. The original curve will be identical to the
restriction of the resulting curve to the original curve domain.
(Inherited from Curve.)  
Extend(Double, Double) 
Where possible, analytically extends curve to include the given domain.
This will not work on closed curves. The original curve will be identical to the
restriction of the resulting curve to the original curve domain.
(Inherited from Curve.)  
Extend(CurveEnd, CurveExtensionStyle, Point3d) 
Extends a curve to a point.
(Inherited from Curve.)  
Extend(CurveEnd, CurveExtensionStyle, IEnumerableGeometryBase) 
Extends a curve until it intersects a collection of objects.
(Inherited from Curve.)  
Extend(CurveEnd, Double, CurveExtensionStyle) 
Extends a curve by a specific length.
(Inherited from Curve.)  
ExtendByArc 
Extends a curve by an Arc until it intersects a collection of objects.
(Inherited from Curve.)  
ExtendByLine 
Extends a curve by a line until it intersects a collection of objects.
(Inherited from Curve.)  
ExtendOnSurface(CurveEnd, BrepFace) 
Extends a curve on a surface.
(Inherited from Curve.)  
ExtendOnSurface(CurveEnd, Surface) 
Extends a curve on a surface.
(Inherited from Curve.)  
ExtremeParameters 
Returns the parameter values of all local extrema.
Parameter values are in increasing order so consecutive extrema
define an interval on which each component of the curve is monotone.
Note, nonperiodic curves always return the end points.
(Inherited from Curve.)  
Fair 
Fairs a curve object. Fair works best on degree 3 (cubic) curves. Attempts to
remove large curvature variations while limiting the geometry changes to be no
more than the specified tolerance.
(Inherited from Curve.)  
Finalize 
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)  
Fit 
Fits a new curve through an existing curve.
(Inherited from Curve.)  
FrameAt  Returns a 3d frame at a parameter. (Inherited from Curve.)  
GetBoundingBox(Boolean) 
Bounding box solver. Gets the world axis aligned bounding box for the geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane) 
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)  
GetBoundingBox(Transform) 
Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane, Box) 
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)  
GetConicSectionType 
Returns the type of conic section based on the curve's shape.
(Inherited from Curve.)  
GetConicSectionType(Point3d, Point3d, Point3d) 
Returns the type of conic section based on the curve's shape.
(Inherited from Curve.)  
GetCurveParameterFromNurbsFormParameter 
Convert a NURBS curve parameter to a curve parameter.
(Inherited from Curve.)  
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetLength 
Gets the length of the curve with a fractional tolerance of 1.0e8.
(Inherited from Curve.)  
GetLength(Double)  Get the length of the curve. (Inherited from Curve.)  
GetLength(Interval)  Get the length of a subsection of the curve with a fractional tolerance of 1e8. (Inherited from Curve.)  
GetLength(Double, Interval)  Get the length of a subsection of the curve. (Inherited from Curve.)  
GetLocalPerpPoint(Point3d, Double, Double) 
Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.
(Inherited from Curve.)  
GetLocalPerpPoint(Point3d, Double, Interval, Double) 
Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.
(Inherited from Curve.)  
GetLocalTangentPoint(Point3d, Double, Double) 
Search for a location on the curve, near seedParmameter, that is tangent to a test point.
(Inherited from Curve.)  
GetLocalTangentPoint(Point3d, Double, Interval, Double) 
Search for a location on the curve, near seedParmameter, that is tangent to a test point.
(Inherited from Curve.)  
GetNextDiscontinuity(Continuity, Double, Double, Double) 
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Curve.)  
GetNextDiscontinuity(Continuity, Double, Double, Double, Double, Double) 
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Curve.)  
GetNurbsFormParameterFromCurveParameter  Convert a curve parameter to a NURBS curve parameter. (Inherited from Curve.)  
GetObjectData 
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)  
GetPerpendicularFrames 
Gets a collection of perpendicular frames along the curve. Perpendicular frames
are also known as 'Zerotwisting frames' and they minimize rotation from one frame to the next.
(Inherited from Curve.)  
GetType  Gets the Type of the current instance. (Inherited from Object.)  
GetUserString 
Gets user string from this geometry.
(Inherited from GeometryBase.)  
GetUserStrings 
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.)  
HasNurbsForm 
Does a NURBS curve representation of this curve exist?
(Inherited from Curve.)  
InflectionPoints 
Returns a curve's inflection points. An inflection point is a location on
a curve at which the sign of the curvature (i.e., the concavity) changes.
The curvature at these locations is always 0.
(Inherited from Curve.)  
IsArc 
Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
IsArc(Double) 
Test a curve to see if it can be represented by an arc or circle within the given tolerance.
(Inherited from Curve.)  
IsCircle 
Test a curve to see if it can be represented by a circle within RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
IsCircle(Double) 
Test a curve to see if it can be represented by a circle within the given tolerance.
(Inherited from Curve.)  
IsClosable(Double) 
Decide if it makes sense to close off this curve by moving the endpoint
to the start based on startend gap size and length of curve as
approximated by chord defined by 6 points.
(Inherited from Curve.)  
IsClosable(Double, Double, Double) 
Decide if it makes sense to close off this curve by moving the endpoint
to the start based on startend gap size and length of curve as
approximated by chord defined by 6 points.
(Inherited from Curve.)  
IsContinuous 
Test continuity at a curve parameter value.
(Inherited from Curve.)  
IsEllipse 
Test a curve to see if it can be represented by an ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
IsEllipse(Double) 
Test a curve to see if it can be represented by an ellipse within a given tolerance.
(Inherited from Curve.)  
IsInPlane(Plane)  Test a curve to see if it lies in a specific plane. (Inherited from Curve.)  
IsInPlane(Plane, Double)  Test a curve to see if it lies in a specific plane. (Inherited from Curve.)  
IsLinear 
Test a curve to see if it is linear to within RhinoMath.ZeroTolerance units (1e12).
(Inherited from Curve.)  
IsLinear(Double) 
Test a curve to see if it is linear to within the custom tolerance.
(Inherited from Curve.)  
IsPlanar  Test a curve for planarity. (Inherited from Curve.)  
IsPlanar(Double)  Test a curve for planarity. (Inherited from Curve.)  
IsPolyline 
Several types of Curve can have the form of a polyline
including a degree 1 NurbsCurve, a PolylineCurve,
and a PolyCurve all of whose segments are some form of
polyline. IsPolyline tests a curve to see if it can be
represented as a polyline.
(Inherited from Curve.)  
IsShort(Double)  Used to quickly find short curves. (Inherited from Curve.)  
IsShort(Double, Interval)  Used to quickly find short curves. (Inherited from Curve.)  
IsValidWithLog 
Determines if an object is valid. Also provides a report on errors if this
object happens not to be valid.
(Inherited from CommonObject.)  
LengthParameter(Double, Double) 
Gets the parameter along the curve which coincides with a given length along the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
LengthParameter(Double, Double, Interval) 
Gets the parameter along the curve which coincides with a given length along the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
LengthParameter(Double, Double, Double) 
Gets the parameter along the curve which coincides with a given length along the curve.
(Inherited from Curve.)  
LengthParameter(Double, Double, Double, Interval) 
Gets the parameter along the curve which coincides with a given length along the curve.
(Inherited from Curve.)  
LocalClosestPoint 
Find parameter of the point on a curve that is locally closest to
the testPoint. The search for a local close point starts at
a seed parameter.
(Inherited from Curve.)  
MakeClosed 
If IsClosed, just return true. Otherwise, decide if curve can be closed as
follows: Linear curves polylinear curves with 2 segments, NURBS with 3 or less
control points cannot be made closed. Also, if tolerance > 0 and the gap between
start and end is larger than tolerance, curve cannot be made closed.
Adjust the curve's endpoint to match its start point.
(Inherited from Curve.)  
MakeDeformable 
If possible, converts the object into a form that can be accurately modified
with "squishy" transformations like projections, shears, an nonuniform scaling.
(Inherited from GeometryBase.)  
MaxCurvaturePoints 
Returns a curve's maximum curvature points. The maximum curvature points identify
where the curvature starts to decrease in both directions from the points.
(Inherited from Curve.)  
MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.)  
MemoryEstimate 
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)  
NonConstOperation 
For derived classes implementers.
(Inherited from Curve.)Defines the necessary implementation to free the instance from being constant.  
NormalizedLengthParameter(Double, Double) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
NormalizedLengthParameter(Double, Double, Interval) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
NormalizedLengthParameter(Double, Double, Double) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
(Inherited from Curve.)  
NormalizedLengthParameter(Double, Double, Double, Interval) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
(Inherited from Curve.)  
NormalizedLengthParameters(Double, Double) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
NormalizedLengthParameters(Double, Double, Interval) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
A fractional tolerance of 1e8 is used in this version of the function.
(Inherited from Curve.)  
NormalizedLengthParameters(Double, Double, Double) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
(Inherited from Curve.)  
NormalizedLengthParameters(Double, Double, Double, Interval) 
Input the parameter of the point on the curve that is a prescribed arc length from the start of the curve.
(Inherited from Curve.)  
Offset(Plane, Double, Double, CurveOffsetCornerStyle) 
Offsets this curve. If you have a nice offset, then there will be one entry in
the array. If the original curve had kinks or the offset curve had self
intersections, you will get multiple segments in the output array.
(Inherited from Curve.)  
Offset(Point3d, Vector3d, Double, Double, CurveOffsetCornerStyle) 
Offsets this curve. If you have a nice offset, then there will be one entry in
the array. If the original curve had kinks or the offset curve had self
intersections, you will get multiple segments in the output array.
(Inherited from Curve.)  
Offset(Point3d, Vector3d, Double, Double, Double, Boolean, CurveOffsetCornerStyle, CurveOffsetEndStyle) 
Offsets this curve. If you have a nice offset, then there will be one entry in
the array. If the original curve had kinks or the offset curve had self
intersections, you will get multiple segments in the output array.
(Inherited from Curve.)  
OffsetNormalToSurface 
Finds a curve by offsetting an existing curve normal to a surface.
The caller is responsible for ensuring that the curve lies on the input surface.
(Inherited from Curve.)  
OffsetOnSurface(BrepFace, Point2d, Double) 
Offset a curve on a brep face surface. This curve must lie on the surface.
(Inherited from Curve.)This overload allows to specify a surface point at which the offset will pass.  
OffsetOnSurface(BrepFace, Double, Double) 
Offset this curve on a brep face surface. This curve must lie on the surface.
(Inherited from Curve.)  
OffsetOnSurface(Surface, Point2d, Double) 
Offset a curve on a surface. This curve must lie on the surface.
(Inherited from Curve.)This overload allows to specify a surface point at which the offset will pass.  
OffsetOnSurface(Surface, Double, Double) 
Offset a curve on a surface. This curve must lie on the surface.
(Inherited from Curve.)  
OffsetOnSurface(BrepFace, Double, Double, Double) 
Offset a curve on a brep face surface. This curve must lie on the surface.
(Inherited from Curve.)This overload allows to specify different offsets for different curve parameters.  
OffsetOnSurface(Surface, Double, Double, Double) 
Offset this curve on a surface. This curve must lie on the surface.
(Inherited from Curve.)This overload allows to specify different offsets for different curve parameters.  
OnSwitchToNonConst 
Is called when a nonconstant operation occurs.
(Inherited from GeometryBase.)  
PerpendicularFrameAt 
Return a 3d frame at a parameter. This is slightly different than FrameAt in
that the frame is computed in a way so there is minimal rotation from one
frame to the next.
(Inherited from Curve.)  
PointAt  Evaluates point at a curve parameter. (Inherited from Curve.)  
PointAtLength 
Gets a point at a certain length along the curve. The length must be
nonnegative and less than or equal to the length of the curve.
Lengths will not be wrapped when the curve is closed or periodic.
(Inherited from Curve.)  
PointAtNormalizedLength 
Gets a point at a certain normalized length along the curve. The length must be
between or including 0.0 and 1.0, where 0.0 equals the start of the curve and
1.0 equals the end of the curve.
(Inherited from Curve.)  
PolyCurveParameter 
Converts a segment curve parameter to a polycurve parameter.
 
PullToBrepFace(BrepFace, Double) 
Pulls this curve to a brep face and returns the result of that operation.
(Inherited from Curve.)  
PullToMesh 
Makes a polyline approximation of the curve and gets the closest point on the mesh for each point on the curve.
Then it "connects the points" so that you have a polyline on the mesh.
(Inherited from Curve.)  
Rebuild 
Rebuild a curve with a specific point count.
(Inherited from Curve.)  
RemoveNesting 
Explodes nested polycurve segments and reconstructs this curve from the shattered remains.
The result will have not have any PolyCurves as segments but it will have identical
locus and parameterization.
 
RemoveShortSegments 
Looks for segments that are shorter than tolerance that can be removed.
Does not change the domain, but it will change the relative parameterization.
(Inherited from Curve.)  
Reverse 
Reverses the direction of the curve.
(Inherited from Curve.)  
RibbonOffset(Double, Double, Point3d, Vector3d, Double) 
Offsets a closed curve in the following way: pProject the curve to a plane with given normal.
Then, loose Offset the projection by distance + blend_radius and trim off selfintersection.
THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends.
Finally, use the elevations of the input curve to get the correct elevations of the result.
(Inherited from Curve.)  
RibbonOffset(Double, Double, Point3d, Vector3d, Double, Curve, Surface) 
Offsets a closed curve in the following way: pProject the curve to a plane with given normal.
Then, loose Offset the projection by distance + blend_radius and trim off selfintersection.
THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends.
Finally, use the elevations of the input curve to get the correct elevations of the result.
(Inherited from Curve.)  
RibbonOffset(Double, Double, Point3d, Vector3d, Double, Double, Double) 
Offsets a closed curve in the following way: pProject the curve to a plane with given normal.
Then, loose Offset the projection by distance + blend_radius and trim off selfintersection.
THen, Offset the remaining curve back in the opposite direction by blend_radius, filling gaps with blends.
Finally, use the elevations of the input curve to get the correct elevations of the result.
(Inherited from Curve.)  
Rotate 
Rotates the object about the specified axis. A positive rotation
angle results in a counterclockwise rotation about the axis (right hand rule).
(Inherited from GeometryBase.)  
Scale 
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.)  
SegmentCurve 
Gets the segment curve at the given index.
 
SegmentCurveParameter 
Converts a polycurve parameter to a segment curve parameter.
 
SegmentDomain 
Returns the polycurve subdomain assigned to a segment curve.
 
SegmentIndex 
Finds the segment used for evaluation at polycurve_parameter.
 
SegmentIndexes  Finds the segments that overlap the Polycurve sub domain.  
SetEndPoint  Forces the curve to end at a specified point.
Not all curve types support this operation. (Inherited from Curve.)  
SetStartPoint  Forces the curve to start at a specified point.
Not all curve types support this operation. (Inherited from Curve.)  
SetUserString 
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)  
Simplify 
Returns a geometrically equivalent PolyCurve.
(Inherited from Curve.)The PolyCurve has the following properties 1. All the PolyCurve segments are LineCurve, PolylineCurve, ArcCurve, or NurbsCurve. 2. The NURBS Curves segments do not have fully multiple interior knots. 3. Rational NURBS curves do not have constant weights. 4. Any segment for which IsLinear() or IsArc() is true is a Line, Polyline segment, or an Arc. 5. Adjacent colinear or cocircular segments are combined. 6. Segments that meet with G1continuity have there ends tuned up so that they meet with G1continuity to within machine precision.  
SimplifyEnd 
Same as SimplifyCurve, but simplifies only the last two segments at "side" end.
(Inherited from Curve.)  
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem) 
Smooths a curve by averaging the positions of control points in a specified region.
(Inherited from Curve.)  
Smooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane) 
Smooths a curve by averaging the positions of control points in a specified region.
(Inherited from Curve.)  
SpanDomain 
Get the domain of the curve span with the given index.
Use the SpanCount property to test how many spans there are.
(Inherited from Curve.)  
Split(IEnumerableDouble) 
Splits (divides) the curve at a series of specified parameters.
The parameter must be in the interior of the curve domain.
(Inherited from Curve.)  
Split(Double) 
Splits (divides) the curve at the specified parameter.
The parameter must be in the interior of the curve's domain.
(Inherited from Curve.)  
Split(Brep, Double)  Obsolete.
Splits a curve into pieces using a polysurface.
(Inherited from Curve.)  
Split(Surface, Double)  Obsolete.
Splits a curve into pieces using a surface.
(Inherited from Curve.)  
Split(Brep, Double, Double) 
Splits a curve into pieces using a polysurface.
(Inherited from Curve.)  
Split(Surface, Double, Double) 
Splits a curve into pieces using a surface.
(Inherited from Curve.)  
TangentAt  Evaluates the unit tangent vector at a curve parameter. (Inherited from Curve.)  
ToArcsAndLines 
Converts a curve into polycurve consisting of arc segments. Sections of the input curves that are nearly straight are converted to straightline segments.
(Inherited from Curve.)  
ToJSON 
Create a JSON string representation of this object
(Inherited from CommonObject.)  
ToNurbsCurve 
Constructs a NURBS curve representation of this curve.
(Inherited from Curve.)  
ToNurbsCurve(Interval) 
Constructs a NURBS curve representation of this curve.
(Inherited from Curve.)  
ToPolyline(Double, Double, Double, Double) 
Gets a polyline approximation of a curve.
(Inherited from Curve.)  
ToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean) 
Gets a polyline approximation of a curve.
(Inherited from Curve.)  
ToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean, Interval) 
Gets a polyline approximation of a curve.
(Inherited from Curve.)  
TorsionAt 
Evaluate the torsion of a curve at a parmeter. Sometimes also called the "second curvature",
torsion is the rate of change of a curve's osculating plane.
(Inherited from Curve.)  
ToString  Returns a string that represents the current object. (Inherited from Object.)  
Transform 
Transforms the geometry. If the input Transform has a SimilarityType of
OrientationReversing, you may want to consider flipping the transformed
geometry after calling this function when it makes sense. For example,
you may want to call Flip() on a Brep after transforming it.
(Inherited from GeometryBase.)  
Translate(Vector3d)  Translates the object along the specified vector. (Inherited from GeometryBase.)  
Translate(Double, Double, Double)  Translates the object along the specified vector. (Inherited from GeometryBase.)  
Trim(Interval) 
Removes portions of the curve outside the specified interval.
(Inherited from Curve.)  
Trim(Double, Double) 
Removes portions of the curve outside the specified interval.
(Inherited from Curve.)  
Trim(CurveEnd, Double) 
Shortens a curve by a given length
(Inherited from Curve.)  
TryGetArc(Arc) 
Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
TryGetArc(Arc, Double) 
Try to convert this curve into an Arc using a custom tolerance.
(Inherited from Curve.)  
TryGetArc(Plane, Arc) 
Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
TryGetArc(Plane, Arc, Double) 
Try to convert this curve into an Arc using a custom tolerance.
(Inherited from Curve.)  
TryGetCircle(Circle) 
Try to convert this curve into a circle using RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
TryGetCircle(Circle, Double) 
Try to convert this curve into a Circle using a custom tolerance.
(Inherited from Curve.)  
TryGetEllipse(Ellipse) 
Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
TryGetEllipse(Ellipse, Double) 
Try to convert this curve into an Ellipse using a custom tolerance.
(Inherited from Curve.)  
TryGetEllipse(Plane, Ellipse) 
Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)  
TryGetEllipse(Plane, Ellipse, Double) 
Try to convert this curve into an Ellipse using a custom tolerance.
(Inherited from Curve.)  
TryGetPlane(Plane)  Test a curve for planarity and return the plane. (Inherited from Curve.)  
TryGetPlane(Plane, Double)  Test a curve for planarity and return the plane. (Inherited from Curve.)  
TryGetPolyline(Polyline) 
Several types of Curve can have the form of a polyline
including a degree 1 NurbsCurve, a PolylineCurve,
and a PolyCurve all of whose segments are some form of
polyline. IsPolyline tests a curve to see if it can be
represented as a polyline.
(Inherited from Curve.)  
TryGetPolyline(Polyline, Double) 
Several types of Curve can have the form of a polyline
including a degree 1 NurbsCurve, a PolylineCurve,
and a PolyCurve all of whose segments are some form of
polyline. IsPolyline tests a curve to see if it can be
represented as a polyline.
(Inherited from Curve.) 