Click or drag to resize

NurbsCurve Class

Represents a Non Uniform Rational B-Splines (NURBS) curve.
Inheritance Hierarchy

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
[SerializableAttribute]
public class NurbsCurve : Curve, IEpsilonComparable<NurbsCurve>

The NurbsCurve type exposes the following members.

Constructors
  NameDescription
Public methodNurbsCurve(NurbsCurve)
Initializes a NURBS curve by copying its values from another NURBS curve.
Public methodNurbsCurve(Int32, Int32)
Constructs a new NURBS curve with a specific degree and control point count.
Protected methodNurbsCurve(SerializationInfo, StreamingContext)
Protected constructor for internal use.
Public methodCode exampleNurbsCurve(Int32, Boolean, Int32, Int32)
Constructs a new NURBS curve with knot and CV memory allocated.
Top
Properties
  NameDescription
Public propertyDegree
Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.
(Inherited from Curve.)
Public propertyDimension
Gets the dimension of the object.

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.

(Inherited from Curve.)
Public propertyDisposed
Indicates if this object has been disposed or the document it originally belonged to has been disposed.
(Inherited from CommonObject.)
Public propertyDomain
Gets or sets the domain of the curve.
(Inherited from Curve.)
Public propertyHasBezierSpans
Returns true if the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree)
Public propertyHasBrepForm
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.)
Public propertyHasUserData
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)
Public propertyIsClosed
Gets a value indicating whether or not this curve is a closed curve.
(Inherited from Curve.)
Public propertyIsDeformable
true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.
(Inherited from GeometryBase.)
Public propertyIsDocumentControlled
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.)
Public propertyIsPeriodic
Gets a value indicating whether or not this curve is considered to be Periodic.
(Inherited from Curve.)
Public propertyIsRational
Gets a value indicating whether or not the curve is rational. Rational curves have control-points with custom weights.
Public propertyIsSubDFriendly
Returns true if the curve is a cubic, non-rational, uniform NURBS curve that is either periodic or has natural end conditions. Otherwise, false is returned.
(Inherited from Curve.)
Public propertyIsValid
Tests an object to see if it is valid.
(Inherited from CommonObject.)
Public propertyCode exampleKnots
Gets access to the knots (or "knot vector") of this NURBS curve.
Public propertyObjectType
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.)
Public propertyOrder
Gets the order of the curve. Order = Degree + 1.
Public propertyPointAtEnd
Evaluates point at the end of the curve.
(Inherited from Curve.)
Public propertyPointAtStart
Evaluates point at the start of the curve.
(Inherited from Curve.)
Public propertyPoints
Gets access to the control points of this NURBS curve.
Public propertySpanCount
Gets the number of non-empty smooth (c-infinity) spans in the curve.
(Inherited from Curve.)
Public propertyTangentAtEnd
Evaluate unit tangent vector at the end of the curve.
(Inherited from Curve.)
Public propertyTangentAtStart
Evaluates the unit tangent vector at the start of the curve.
(Inherited from Curve.)
Public propertyUserData
List of custom information that is attached to this class.
(Inherited from CommonObject.)
Public propertyUserDictionary
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.
(Inherited from CommonObject.)
Public propertyUserStringCount
Gets the amount of user strings.
(Inherited from GeometryBase.)
Top
Methods
  NameDescription
Public methodAppend
Appends a NURBS curve to this curve.
Public methodChangeClosedCurveSeam
If this curve is closed, then modify it so that the start/end point is at curve parameter t.
(Inherited from Curve.)
Public methodChangeDimension
Changes the dimension of a curve.
(Inherited from Curve.)
Public methodClosedCurveOrientation
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.)
Public methodClosedCurveOrientation(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.)
Public methodClosedCurveOrientation(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.)
Public methodClosedCurveOrientation(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.)
Public methodClosestPoint(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.)
Public methodClosestPoint(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.)
Public methodClosestPoints(Curve, Point3d, Point3d)
Gets closest points between this and another curves.
(Inherited from Curve.)
Public methodClosestPoints(IEnumerableGeometryBase, Point3d, Point3d, Int32)
Finds the object (and the closest point in that object) that is closest to this curve.

Breps, surfaces, curves and point clouds are examples of objects that can be passed to this function.

(Inherited from Curve.)
Public methodClosestPoints(IEnumerableGeometryBase, Point3d, Point3d, Int32, Double)
Finds the object (and the closest point in that object) that is closest to this curve.

Breps, surfaces, curves and point clouds are examples of objects that can be passed to this function.

(Inherited from Curve.)
Public methodCombineShortSegments
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.)
Public methodComponentIndex
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.)
Protected methodConstructConstObject
Assigns a parent object and a sub-object index to this.
(Inherited from CommonObject.)
Public methodContains(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.)
Public methodContains(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.)
Public methodContains(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.)
Public methodControlPolygon
Gets the curve's control polygon.
(Inherited from Curve.)
Public methodConvertSpanToBezier
Converts a span of the NURBS curve into a Bezier.
Public methodStatic memberCode exampleCreate
Constructs a 3D NURBS curve from a list of control points.
Public methodStatic memberCreateFromArc(Arc)
Gets a rational degree 2 NURBS curve representation of the arc. Note that the parameterization of NURBS curve does not match arc's transcendental parameterization.
Public methodStatic memberCreateFromArc(Arc, Int32, Int32)
Create a uniform non-rational cubic NURBS approximation of an arc.
Public methodStatic memberCreateFromCircle(Circle)
Gets a rational degree 2 NURBS curve representation of the circle. Note that the parameterization of NURBS curve does not match circle's transcendental parameterization. Use GetRadianFromNurbFormParameter() and GetParameterFromRadian() to convert between the NURBS curve parameter and the transcendental parameter.
Public methodStatic memberCreateFromCircle(Circle, Int32, Int32)
Create a uniform non-rational cubic NURBS approximation of a circle.
Public methodStatic memberCreateFromEllipse
Gets a rational degree 2 NURBS curve representation of the ellipse.

Note that the parameterization of the NURBS curve does not match with the transcendental parameterization of the ellipsis.

Public methodStatic memberCreateFromFitPoints(IEnumerablePoint3d, Double, Boolean)
Fits a NURBS curve to a dense, ordered set of points.
Public methodStatic memberCreateFromFitPoints(IEnumerablePoint3d, Double, Int32, Boolean, Vector3d, Vector3d)
Fits a NURBS curve to a dense, ordered set of points.
Public methodStatic memberCreateFromLine
Gets a non-rational, degree 1 NURBS curve representation of the line.
Public methodStatic memberCreateHSpline(IEnumerablePoint3d)
Construct an H-spline from a sequence of interpolation points
Public methodStatic memberCreateHSpline(IEnumerablePoint3d, Vector3d, Vector3d)
Construct an H-spline from a sequence of interpolation points and optional start and end derivative information
Public methodStatic memberCreateNonRationalArcBezier
Creates a non-rational approximation of a rational arc as a single bezier segment
Public methodStatic memberCreateParabolaFromFocus
Creates a parabola from focus and end points.
Public methodStatic memberCreateParabolaFromPoints
Creates a parabola from three points.
Public methodStatic memberCreateParabolaFromVertex
Creates a parabola from vertex and end points.
Public methodCreatePlanarRailFrames
Computes planar rail sweep frames at specified parameters.
Public methodCreateRailFrames
Computes relatively parallel rail sweep frames at specified parameters.
Public methodStatic memberCreateSpiral(Point3d, Vector3d, Point3d, Double, Double, Double, Double)
Creates a C1 cubic NURBS approximation of a helix or spiral. For a helix, you may have radius0 == radius1. For a spiral radius0 == radius1 produces a circle. Zero and negative radii are permissible.
Public methodStatic memberCreateSpiral(Curve, Double, Double, Point3d, Double, Double, Double, Double, Int32)
Create a C2 non-rational uniform cubic NURBS approximation of a swept helix or spiral.
Public methodStatic memberCreateSubDFriendly(Curve)
Create a NURBS curve, that is suitable for calculations like lofting SubD objects, from an existing curve.
Public methodStatic memberCreateSubDFriendly(Curve, Int32, Boolean)
Create a NURBS curve, that is suitable for calculations like lofting SubD objects, from an existing curve.
Public methodStatic memberCreateSubDFriendly(IEnumerablePoint3d, Boolean, Boolean)
Create a NURBS curve, that is suitable for calculations like lofting SubD objects, through a sequence of curves.
Public methodCode exampleCurvatureAt
Evaluate the curvature vector at a curve parameter.
(Inherited from Curve.)
Public methodDataCRC
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical.
(Inherited from GeometryBase.)
Public methodDeleteAllUserStrings (Inherited from GeometryBase.)
Public methodDeleteUserString (Inherited from GeometryBase.)
Public methodDerivativeAt(Double, Int32)
Evaluate the derivatives at the specified curve parameter.
(Inherited from Curve.)
Public methodDerivativeAt(Double, Int32, CurveEvaluationSide)
Evaluate the derivatives at the specified curve parameter.
(Inherited from Curve.)
Public methodDispose
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)
Protected methodDispose(Boolean)
For derived class implementers.

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.

(Inherited from Curve.)
Public methodDivideAsContour
Divides this curve at fixed steps along a defined contour line.
(Inherited from Curve.)
Public methodDivideByCount(Int32, Boolean)
Divide the curve into a number of equal-length segments.
(Inherited from Curve.)
Public methodDivideByCount(Int32, Boolean, Point3d)
Divide the curve into a number of equal-length segments.
(Inherited from Curve.)
Public methodCode exampleDivideByLength(Double, Boolean)
Divide the curve into specific length segments.
(Inherited from Curve.)
Public methodCode exampleDivideByLength(Double, Boolean, Point3d)
Divide the curve into specific length segments.
(Inherited from Curve.)
Public methodCode exampleDivideByLength(Double, Boolean, Boolean)
Divide the curve into specific length segments.
(Inherited from Curve.)
Public methodCode exampleDivideByLength(Double, Boolean, Boolean, Point3d)
Divide the curve into specific length segments.
(Inherited from Curve.)
Public methodDivideEquidistant
Calculates 3d points on a curve where the linear distance between the points is equal.
(Inherited from Curve.)
Public methodDuplicate
Constructs an exact duplicate of this Curve.
(Inherited from Curve.)
Public methodCode exampleDuplicateCurve
Constructs an exact duplicate of this curve.
(Inherited from Curve.)
Public methodDuplicateSegments
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.)
Public methodDuplicateShallow
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.)
Public methodEnsurePrivateCopy
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.)
Public methodEpsilonEquals
Check that all values in other are within epsilon of the values in this
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodExtend(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.)
Public methodExtend(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.)
Public methodExtend(CurveEnd, CurveExtensionStyle, Point3d)
Extends a curve to a point.
(Inherited from Curve.)
Public methodCode exampleExtend(CurveEnd, CurveExtensionStyle, IEnumerableGeometryBase)
Extends a curve until it intersects a collection of objects.
(Inherited from Curve.)
Public methodExtend(CurveEnd, Double, CurveExtensionStyle)
Extends a curve by a specific length.
(Inherited from Curve.)
Public methodExtendByArc
Extends a curve by an Arc until it intersects a collection of objects.
(Inherited from Curve.)
Public methodExtendByLine
Extends a curve by a line until it intersects a collection of objects.
(Inherited from Curve.)
Public methodExtendOnSurface(CurveEnd, BrepFace)
Extends a curve on a surface.
(Inherited from Curve.)
Public methodExtendOnSurface(CurveEnd, Surface)
Extends a curve on a surface.
(Inherited from Curve.)
Public methodExtremeParameters
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, non-periodic curves always return the end points.
(Inherited from Curve.)
Public methodFair
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.)
Public methodFilletSurfaceToCurve
Creates a constant-radius fillet surface between a surface and the curve.
(Inherited from Curve.)
Public methodFilletSurfaceToRail
Creates a surface between two surfaces, with a fixed rail curve on the first surface.
(Inherited from Curve.)
Protected methodFinalize
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)
Public methodFindLocalInflection
Local minimization for point on a curve with tangent perpendicular to N.
(Inherited from Curve.)
Public methodFit
Fits a new curve through an existing curve.
(Inherited from Curve.)
Public methodFrameAt
Returns a 3d frame at a parameter.
(Inherited from Curve.)
Public methodCode exampleGetBoundingBox(Boolean)
Bounding box solver. Gets the world axis aligned bounding box for the geometry.
(Inherited from GeometryBase.)
Public methodCode exampleGetBoundingBox(Plane)
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)
Public methodGetBoundingBox(Transform)
Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.
(Inherited from GeometryBase.)
Public methodGetBoundingBox(Plane, Box)
Aligned Bounding box solver. Gets the plane aligned bounding box.
(Inherited from GeometryBase.)
Public methodGetConicSectionType
Returns the type of conic section based on the curve's shape.
(Inherited from Curve.)
Public methodGetConicSectionType(Point3d, Point3d, Point3d)
Returns the type of conic section based on the curve's shape.
(Inherited from Curve.)
Public methodGetCurveParameterFromNurbsFormParameter
Convert a NURBS curve parameter to a curve parameter.
(Inherited from Curve.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodCode exampleGetLength
Gets the length of the curve with a fractional tolerance of 1.0e-8.
(Inherited from Curve.)
Public methodGetLength(Double)
Get the length of the curve.
(Inherited from Curve.)
Public methodGetLength(Interval)
Get the length of a sub-section of the curve with a fractional tolerance of 1e-8.
(Inherited from Curve.)
Public methodGetLength(Double, Interval)
Get the length of a sub-section of the curve.
(Inherited from Curve.)
Public methodGetLocalPerpPoint(Point3d, Double, Double)
Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.
(Inherited from Curve.)
Public methodGetLocalPerpPoint(Point3d, Double, Interval, Double)
Search for a location on the curve, near seedParmameter, that is perpendicular to a test point.
(Inherited from Curve.)
Public methodGetLocalTangentPoint(Point3d, Double, Double)
Search for a location on the curve, near seedParmameter, that is tangent to a test point.
(Inherited from Curve.)
Public methodGetLocalTangentPoint(Point3d, Double, Interval, Double)
Search for a location on the curve, near seedParmameter, that is tangent to a test point.
(Inherited from Curve.)
Public methodGetNextDiscontinuity(Continuity, Double, Double, Double)
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Curve.)
Public methodGetNextDiscontinuity(Continuity, Double, Double, Double, Double, Double)
Searches for a derivative, tangent, or curvature discontinuity.
(Inherited from Curve.)
Public methodGetNurbsFormParameterFromCurveParameter
Convert a curve parameter to a NURBS curve parameter.
(Inherited from Curve.)
Public methodGetObjectData
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)
Public methodGetPerpendicularFrames
Gets a collection of perpendicular frames along the curve. Perpendicular frames are also known as 'Zero-twisting frames' and they minimize rotation from one frame to the next.
(Inherited from Curve.)
Public methodGetSubCurves
Gets subcurves from a curve. The results will be similar to what is produced by Rhino's Explode command.
(Inherited from Curve.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetUserString
Gets user string from this geometry.
(Inherited from GeometryBase.)
Public methodGetUserStrings
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.)
Public methodGrevilleParameter
Gets the greville (edit point) parameter that belongs to the control point at the specified index.
Public methodGrevilleParameters
Gets all Greville parameters for this curve.
Public methodGrevillePoint
Gets the Greville parameter that belongs to the control point at the specified index.
Public methodGrevillePoints
Gets all Greville points for this curve.
Public methodGrevillePoints(Boolean)
Gets Greville points for this curve.
Public methodHasNurbsForm
Does a NURBS curve representation of this curve exist?
(Inherited from Curve.)
Public methodCode exampleIncreaseDegree
Increase the degree of this curve.
Public methodInflectionPoints
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.)
Public methodInflectionPoints(Double)
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.)
Public methodIsArc
Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodIsArc(Double)
Test a curve to see if it can be represented by an arc or circle within the given tolerance.
(Inherited from Curve.)
Public methodIsCircle
Test a curve to see if it can be represented by a circle within RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodIsCircle(Double)
Test a curve to see if it can be represented by a circle within the given tolerance.
(Inherited from Curve.)
Public methodIsClosable(Double)
Decide if it makes sense to close off this curve by moving the endpoint to the start based on start-end gap size and length of curve as approximated by chord defined by 6 points.
(Inherited from Curve.)
Public methodIsClosable(Double, Double, Double)
Decide if it makes sense to close off this curve by moving the endpoint to the start based on start-end gap size and length of curve as approximated by chord defined by 6 points.
(Inherited from Curve.)
Public methodIsContinuous
Test continuity at a curve parameter value.
(Inherited from Curve.)
Public methodStatic memberIsDuplicate
Determines if two curves are similar.
Public methodIsEllipse
Test a curve to see if it can be represented by an ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodIsEllipse(Double)
Test a curve to see if it can be represented by an ellipse within a given tolerance.
(Inherited from Curve.)
Public methodIsInPlane(Plane)
Test a curve to see if it lies in a specific plane.
(Inherited from Curve.)
Public methodIsInPlane(Plane, Double)
Test a curve to see if it lies in a specific plane.
(Inherited from Curve.)
Public methodCode exampleIsLinear
Test a curve to see if it is linear to within RhinoMath.ZeroTolerance units (1e-12).
(Inherited from Curve.)
Public methodIsLinear(Double)
Test a curve to see if it is linear to within the custom tolerance.
(Inherited from Curve.)
Public methodCode exampleIsPlanar
Test a curve for planarity.
(Inherited from Curve.)
Public methodIsPlanar(Double)
Test a curve for planarity.
(Inherited from Curve.)
Public methodCode exampleIsPolyline
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.)
Public methodCode exampleIsShort(Double)
Used to quickly find short curves.
(Inherited from Curve.)
Public methodIsShort(Double, Interval)
Used to quickly find short curves.
(Inherited from Curve.)
Public methodIsValidWithLog
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
(Inherited from CommonObject.)
Public methodLengthParameter(Double, Double)
Gets the parameter along the curve which coincides with a given length along the curve. A fractional tolerance of 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodLengthParameter(Double, Double, Interval)
Gets the parameter along the curve which coincides with a given length along the curve. A fractional tolerance of 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodLengthParameter(Double, Double, Double)
Gets the parameter along the curve which coincides with a given length along the curve.
(Inherited from Curve.)
Public methodLengthParameter(Double, Double, Double, Interval)
Gets the parameter along the curve which coincides with a given length along the curve.
(Inherited from Curve.)
Public methodLocalClosestPoint
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.)
Public methodMakeClosed
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.)
Public methodStatic memberMakeCompatible
For expert use only. From the input curves, make an array of compatible NURBS curves.
Public methodMakeDeformable
If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.
(Inherited from GeometryBase.)
Public methodMakePiecewiseBezier
Clamps ends and adds knots so the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree).
Public methodMatchToCurve
Constructs a NURBS curve with the start and end matching the start and end of targetCurve, and Greville points on targetCurve.
Public methodMaxCurvaturePoints
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.)
Public methodMaxCurvaturePoints(Double)
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.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMemoryEstimate
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)
Protected methodNonConstOperation
For derived classes implementers.

Defines the necessary implementation to free the instance from being constant.

(Inherited from Curve.)
Public methodNormalizedLengthParameter(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 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodNormalizedLengthParameter(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 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodNormalizedLengthParameter(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.)
Public methodNormalizedLengthParameter(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.)
Public methodNormalizedLengthParameters(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 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodNormalizedLengthParameters(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 1e-8 is used in this version of the function.
(Inherited from Curve.)
Public methodNormalizedLengthParameters(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.)
Public methodNormalizedLengthParameters(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.)
Public methodOffset(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.)
Public methodOffset(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.)
Public methodOffset(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.)
Public methodOffsetNormalToSurface
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.)
Public methodOffsetOnSurface(BrepFace, Point2d, Double)
Offset a curve on a brep face surface. This curve must lie on the surface.

This overload allows to specify a surface point at which the offset will pass.

(Inherited from Curve.)
Public methodOffsetOnSurface(BrepFace, Double, Double)
Offset this curve on a brep face surface. This curve must lie on the surface.
(Inherited from Curve.)
Public methodOffsetOnSurface(Surface, Point2d, Double)
Offset a curve on a surface. This curve must lie on the surface.

This overload allows to specify a surface point at which the offset will pass.

(Inherited from Curve.)
Public methodOffsetOnSurface(Surface, Double, Double)
Offset a curve on a surface. This curve must lie on the surface.
(Inherited from Curve.)
Public methodOffsetOnSurface(BrepFace, Double, Double, Double)
Offset a curve on a brep face surface. This curve must lie on the surface.

This overload allows to specify different offsets for different curve parameters.

(Inherited from Curve.)
Public methodOffsetOnSurface(Surface, Double, Double, Double)
Offset this curve on a surface. This curve must lie on the surface.

This overload allows to specify different offsets for different curve parameters.

(Inherited from Curve.)
Public methodOffsetTangentToSurface
Finds a curve by offsetting an existing curve tangent to a surface. The caller is responsible for ensuring that the curve lies on the input surface.
(Inherited from Curve.)
Protected methodOnSwitchToNonConst
Is called when a non-constant operation occurs.
(Inherited from GeometryBase.)
Public methodPerpendicularFrameAt
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.)
Public methodCode examplePointAt
Evaluates point at a curve parameter.
(Inherited from Curve.)
Public methodCode examplePointAtLength
Gets a point at a certain length along the curve. The length must be non-negative 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.)
Public methodPointAtNormalizedLength
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.)
Public methodPullToBrepFace(BrepFace, Double)
Pulls this curve to a brep face and returns the result of that operation.
(Inherited from Curve.)
Public methodPullToMesh
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.)
Public methodRebuild
Rebuild a curve with a specific point count.
(Inherited from Curve.)
Public methodRemoveShortSegments
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.)
Public methodRepair
Repairs a curve.
(Inherited from Curve.)
Public methodReparameterize
Use a linear fractional transformation to re-parameterize the NURBS curve. This does not change the curve's domain.
Public methodCode exampleReverse
Reverses the direction of the curve.
(Inherited from Curve.)
Public methodRibbonOffset(RibbonOffsetParameters, Curve, Curve, Brep)
Ribbon offset method to mimic RibbonOffset command
(Inherited from Curve.)
Public methodRibbonOffset(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 self-intersection. 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.)
Public methodRibbonOffset(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 self-intersection. 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.)
Public methodRibbonOffset(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 self-intersection. 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.)
Public methodRotate
Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).
(Inherited from GeometryBase.)
Public methodScale
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.)
Public methodSetEndCondition(Boolean, NurbsCurveNurbsCurveEndConditionType, Point3d, Vector3d)
Set end condition of a NURBS curve to point, tangent and curvature.
Public methodSetEndCondition(Boolean, NurbsCurveNurbsCurveEndConditionType, Point3d, Vector3d, Vector3d)
Set end condition of a NURBS curve to point, tangent and curvature.
Public methodSetEndPoint
Forces the curve to end at a specified point. Not all curve types support this operation.
(Inherited from Curve.)
Public methodSetGrevillePoints
Sets all Greville edit points for this curve.
Public methodSetStartPoint
Forces the curve to start at a specified point. Not all curve types support this operation.
(Inherited from Curve.)
Public methodSetUserString
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)
Public methodSimplify
Returns a geometrically equivalent PolyCurve.

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 co-linear or co-circular segments are combined.

6. Segments that meet with G1-continuity have there ends tuned up so that they meet with G1-continuity to within machine precision.

(Inherited from Curve.)
Public methodSimplifyEnd
Same as SimplifyCurve, but simplifies only the last two segments at "side" end.
(Inherited from Curve.)
Public methodSmooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem)
Smooths a curve by averaging the positions of control points in a specified region.
(Inherited from Curve.)
Public methodSmooth(Double, Boolean, Boolean, Boolean, Boolean, SmoothingCoordinateSystem, Plane)
Smooths a curve by averaging the positions of control points in a specified region.
(Inherited from Curve.)
Public methodSpanDomain
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.)
Public methodSpanVector
(Inherited from Curve.)
Public methodSplit(Double)
Splits (divides) the curve at the specified parameter. The parameter must be in the interior of the curve's domain.
(Inherited from Curve.)
Public methodSplit(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.)
Public methodSplit(Brep, Double) Obsolete.
Splits a curve into pieces using a polysurface.
(Inherited from Curve.)
Public methodSplit(Surface, Double) Obsolete.
Splits a curve into pieces using a surface.
(Inherited from Curve.)
Public methodSplit(Brep, Double, Double)
Splits a curve into pieces using a polysurface.
(Inherited from Curve.)
Public methodSplit(Surface, Double, Double)
Splits a curve into pieces using a surface.
(Inherited from Curve.)
Public methodTangentAt
Evaluates the unit tangent vector at a curve parameter.
(Inherited from Curve.)
Public methodToArcsAndLines
Converts a curve into polycurve consisting of arc segments. Sections of the input curves that are nearly straight are converted to straight-line segments.
(Inherited from Curve.)
Public methodToJSON
Create a JSON string representation of this object
(Inherited from CommonObject.)
Public methodToNurbsCurve
Constructs a NURBS curve representation of this curve.
(Inherited from Curve.)
Public methodToNurbsCurve(Interval)
Constructs a NURBS curve representation of this curve.
(Inherited from Curve.)
Public methodToPolyline(Double, Double, Double, Double)
Gets a polyline approximation of a curve.
(Inherited from Curve.)
Public methodToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean)
Gets a polyline approximation of a curve.
(Inherited from Curve.)
Public methodToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean, Interval)
Gets a polyline approximation of a curve.
(Inherited from Curve.)
Public methodTorsionAt
Evaluate the torsion of a curve at a parameter. Sometimes also called the "second curvature", torsion is the rate of change of a curve's osculating plane.
(Inherited from Curve.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTransform
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.)
Public methodTranslate(Vector3d)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public methodTranslate(Double, Double, Double)
Translates the object along the specified vector.
(Inherited from GeometryBase.)
Public methodTrim(Interval)
Removes portions of the curve outside the specified interval.
(Inherited from Curve.)
Public methodTrim(CurveEnd, Double)
Shortens a curve by a given length
(Inherited from Curve.)
Public methodTrim(Double, Double)
Removes portions of the curve outside the specified interval.
(Inherited from Curve.)
Public methodTryGetArc(Arc)
Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodTryGetArc(Arc, Double)
Try to convert this curve into an Arc using a custom tolerance.
(Inherited from Curve.)
Public methodTryGetArc(Plane, Arc)
Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodTryGetArc(Plane, Arc, Double)
Try to convert this curve into an Arc using a custom tolerance.
(Inherited from Curve.)
Public methodCode exampleTryGetCircle(Circle)
Try to convert this curve into a circle using RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodCode exampleTryGetCircle(Circle, Double)
Try to convert this curve into a Circle using a custom tolerance.
(Inherited from Curve.)
Public methodTryGetEllipse(Ellipse)
Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodTryGetEllipse(Ellipse, Double)
Try to convert this curve into an Ellipse using a custom tolerance.
(Inherited from Curve.)
Public methodTryGetEllipse(Plane, Ellipse)
Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
(Inherited from Curve.)
Public methodTryGetEllipse(Plane, Ellipse, Double)
Try to convert this curve into an Ellipse using a custom tolerance.
(Inherited from Curve.)
Public methodCode exampleTryGetPlane(Plane)
Test a curve for planarity and return the plane.
(Inherited from Curve.)
Public methodTryGetPlane(Plane, Double)
Test a curve for planarity and return the plane.
(Inherited from Curve.)
Public methodTryGetPolyline(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.)
Public methodTryGetPolyline(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.)
Public methodUVNDirectionsAt
Calculates the u, V, and N directions of a NURBS curve at a parameter similar to the method used by Rhino's MoveUVN command.
Top
See Also