Skip to content

T_Rhino_Geometry_Curve

Will Pearson edited this page Aug 12, 2016 · 2 revisions

Curve Class

Represents a base class that is common to most RhinoCommon curve types. A curve represents an entity that can be all visited by providing a single parameter, usually called t.

Inheritance Hierarchy

System.Object
  Rhino.Runtime.CommonObject
    Rhino.Geometry.GeometryBase
      Rhino.Geometry.Curve
         Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0

Syntax

C#

[SerializableAttribute]
public class Curve : GeometryBase

VB

<SerializableAttribute>
Public Class Curve
	Inherits GeometryBase

The Curve type exposes the following members.

Constructors

 

Name Description
Protected method Curve() Protected constructor for internal use.
Protected method Curve(SerializationInfo, StreamingContext) Protected serialization constructor for internal use.
  Back to Top

Properties

 

Name Description
Public property Degree Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.
Public property Dimension 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.
Public property Domain Gets or sets the domain of the curve.
Public property HasBrepForm Returns true if the Brep.TryConvertBrep function will be successful for this object (Inherited from GeometryBase.)
Public property HasUserData Gets true if this class has any custom information attached to it through UserData. (Inherited from CommonObject.)
Public property IsClosed Gets a value indicating whether or not this curve is a closed curve.
Public property IsDeformable true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling. (Inherited from GeometryBase.)
Public property 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.)
Public property IsPeriodic Gets a value indicating whether or not this curve is considered to be Periodic.
Public property IsValid Tests an object to see if it is valid. (Inherited from CommonObject.)
Public property ObjectType Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on. (Inherited from GeometryBase.)
Public property PointAtEnd Evaluates point at the end of the curve.
Public property PointAtStart Evaluates point at the start of the curve.
Public property SpanCount Gets the number of non-empty smooth (c-infinity) spans in the curve.
Public property TangentAtEnd Evaluate unit tangent vector at the end of the curve.
Public property TangentAtStart Evaluates the unit tangent vector at the start of the curve.
Public property UserData List of custom information that is attached to this class. (Inherited from CommonObject.)
Public property 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.)
Public property UserStringCount Gets the amount of user strings. (Inherited from GeometryBase.)
  Back to Top

Methods

 

Name Description
Public method ChangeClosedCurveSeam If this curve is closed, then modify it so that the start/end point is at curve parameter t.
Public method ChangeDimension Changes the dimension of a curve.
Public method 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.
Public method 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.
Public method ClosedCurveOrientation(Transform) Determines the orientation (counterclockwise or clockwise) of a closed, planar curve. Only works with simple (no self intersections) closed, planar curves.
Public method 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.
Public method 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.
Public method 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.
Public method ClosestPoints(Curve, Point3d, Point3d) Gets closest points between this and another curves.
Public method ClosestPoints(IEnumerable(GeometryBase), 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.
Public method ClosestPoints(IEnumerable(GeometryBase), 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.
Public method 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.)
Protected method ConstructConstObject Assigns a parent object and a subobject index to this. (Inherited from CommonObject.)
Public method Contains(Point3d) 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.
Public method Contains(Point3d, Plane) Computes the relationship between a point and a closed curve region. This curve must be closed or the return value will be Unset.
Public method 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.
Public methodStatic member CreateBlendCurve(Curve, Curve, BlendContinuity) Create a Blend curve between two existing curves.
Public methodStatic member CreateBlendCurve(Curve, Curve, BlendContinuity, Double, Double) Create a Blend curve between two existing curves.
Public methodStatic member CreateBlendCurve(Curve, Double, Boolean, BlendContinuity, Curve, Double, Boolean, BlendContinuity) Makes a curve blend between 2 curves at the parameters specified with the directions and continuities specified
Public methodStatic member CreateBooleanDifference(Curve, Curve) **Obsolete. ** Calculates the boolean difference between two closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanDifference(Curve, IEnumerable(Curve)) **Obsolete. ** Calculates the boolean difference between a closed planar curve, and a list of closed planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanDifference(Curve, Curve, Double) Calculates the boolean difference between two closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanDifference(Curve, IEnumerable(Curve), Double) Calculates the boolean difference between a closed planar curve, and a list of closed planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanIntersection(Curve, Curve) **Obsolete. ** Calculates the boolean intersection of two closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanIntersection(Curve, Curve, Double) Calculates the boolean intersection of two closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanUnion(IEnumerable(Curve)) **Obsolete. ** Calculates the boolean union of two or more closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateBooleanUnion(IEnumerable(Curve), Double) Calculates the boolean union of two or more closed, planar curves. Note, curves must be co-planar.
Public methodStatic member CreateControlPointCurve(IEnumerable(Point3d)) Constructs a control-point of degree=3 (or less).
Public methodStatic member CreateControlPointCurve(IEnumerable(Point3d), Int32) Constructs a curve from a set of control-point locations.
Public methodStatic member CreateFillet Computes the fillet arc for a curve filleting operation.
Public methodStatic member CreateFilletCornersCurve Rounds the corners of a kinked curve with arcs of a single, specified radius.
Public methodStatic memberCode example CreateFilletCurves Creates a tangent arc between two curves and trims or extends the curves to the arc.
Public methodStatic member CreateInterpolatedCurve(IEnumerable(Point3d), Int32) Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.
Public methodStatic member CreateInterpolatedCurve(IEnumerable(Point3d), Int32, CurveKnotStyle) Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.
Public methodStatic member CreateInterpolatedCurve(IEnumerable(Point3d), Int32, CurveKnotStyle, Vector3d, Vector3d) Interpolates a sequence of points. Used by InterpCurve Command This routine works best when degree=3.
Public methodStatic member CreateMeanCurve(Curve, Curve) Constructs a mean, or average, curve from two curves.
Public methodStatic member CreateMeanCurve(Curve, Curve, Double) Constructs a mean, or average, curve from two curves.
Public methodStatic member CreateSoftEditCurve Creates a soft edited curve from an exising curve using a smooth field of influence.
Public methodStatic member CreateTweenCurves(Curve, Curve, Int32) **Obsolete. ** Creates curves between two open or closed input curves. Uses the control points of the curves for finding tween curves. That means the first control point of first curve is matched to first control point of the second curve and so on. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodStatic member CreateTweenCurves(Curve, Curve, Int32, Double) Creates curves between two open or closed input curves. Uses the control points of the curves for finding tween curves. That means the first control point of first curve is matched to first control point of the second curve and so on. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodStatic member CreateTweenCurvesWithMatching(Curve, Curve, Int32) **Obsolete. ** Creates curves between two open or closed input curves. Make the structure of input curves compatible if needed. Refits the input curves to have the same structure. The resulting curves are usually more complex than input unless input curves are compatible and no refit is needed. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodStatic member CreateTweenCurvesWithMatching(Curve, Curve, Int32, Double) Creates curves between two open or closed input curves. Make the structure of input curves compatible if needed. Refits the input curves to have the same structure. The resulting curves are usually more complex than input unless input curves are compatible and no refit is needed. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodStatic member CreateTweenCurvesWithSampling(Curve, Curve, Int32, Int32) **Obsolete. ** Creates curves between two open or closed input curves. Use sample points method to make curves compatible. This is how the algorithm workd: Divides the two curves into an equal number of points, finds the midpoint between the corresponding points on the curves and interpolates the tween curve through those points. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodStatic member CreateTweenCurvesWithSampling(Curve, Curve, Int32, Int32, Double) Creates curves between two open or closed input curves. Use sample points method to make curves compatible. This is how the algorithm workd: Divides the two curves into an equal number of points, finds the midpoint between the corresponding points on the curves and interpolates the tween curve through those points. There is no matching of curves direction. Caller must match input curves direction before calling the function.
Public methodCode example CurvatureAt Evaluate the curvature vector at a curve parameter.
Public method DerivativeAt(Double, Int32) Evaluate the derivatives at the specified curve parameter.
Public method DerivativeAt(Double, Int32, CurveEvaluationSide) Evaluate the derivatives at the specified curve parameter.
Public method Dispose() Actively reclaims unmanaged resources that this instance uses. (Inherited from CommonObject.)
Protected method Dispose(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.

(Overrides GeometryBase.Dispose(Boolean).)

Public method DivideAsContour Divides this curve at fixed steps along a defined contour line.
Public method DivideByCount(Int32, Boolean) Divide the curve into a number of equal-length segments.
Public method DivideByCount(Int32, Boolean, Point3d[]) Divide the curve into a number of equal-length segments.
Public methodCode example DivideByLength(Double, Boolean) Divide the curve into specific length segments.
Public methodCode example DivideByLength(Double, Boolean, Point3d[]) Divide the curve into specific length segments.
Public method DivideEquidistant Calculates 3d points on a curve where the linear distance between the points is equal.
Public methodStatic member DoDirectionsMatch Determines whether two curves travel more or less in the same direction.
Public method Duplicate Constructs an exact duplicate of this Curve. (Overrides GeometryBase.Duplicate().)
Public methodCode example DuplicateCurve Constructs an exact duplicate of this curve.
Public method DuplicateSegments Polylines will be exploded into line segments. ExplodeCurves will return the curves in topological order.
Public method 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.)
Public method 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.)
Public method Equals Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public method 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.
Public method 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.
Public method Extend(CurveEnd, CurveExtensionStyle, Point3d) Extends a curve to a point.
Public methodCode example Extend(CurveEnd, CurveExtensionStyle, IEnumerable(GeometryBase)) Extends a curve until it intersects a collection of objects.
Public method Extend(CurveEnd, Double, CurveExtensionStyle) Extends a curve by a specific length.
Public method ExtendByArc Extends a curve by an Arc until it intersects a collection of objects.
Public method ExtendByLine Extends a curve by a line until it intersects a collection of objects.
Public method ExtendOnSurface(CurveEnd, BrepFace) Extends a curve on a surface.
Public method ExtendOnSurface(CurveEnd, Surface) Extends a curve on a surface.
Public method 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, non-periodic curves always return the end points.
Public method 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.
Protected method Finalize() Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Protected method Finalize() Passively reclaims unmanaged resources when the class user did not explicitly call Dispose(). (Inherited from CommonObject.)
Public method Fit Fits a new curve through an existing curve.
Public method FrameAt Returns a 3d frame at a parameter.
Public methodCode example GetBoundingBox(Boolean) Boundingbox solver. Gets the world axis aligned boundingbox for the geometry. (Inherited from GeometryBase.)
Public methodCode example GetBoundingBox(Plane) Aligned Boundingbox solver. Gets the plane aligned boundingbox. (Inherited from GeometryBase.)
Public method GetBoundingBox(Transform) Aligned Boundingbox solver. Gets the world axis aligned boundingbox for the transformed geometry. (Inherited from GeometryBase.)
Public method GetBoundingBox(Plane, Box) Aligned Boundingbox solver. Gets the plane aligned boundingbox. (Inherited from GeometryBase.)
Public method GetConicSectionType() Returns the type of conic section based on the curve's shape.
Public method GetConicSectionType(Point3d, Point3d, Point3d) Returns the type of conic section based on the curve's shape.
Public method GetCurveParameterFromNurbsFormParameter Convert a NURBS curve parameter to a curve parameter.
Public methodStatic memberCode example GetDistancesBetweenCurves Computes the distances between two arbitrary curves that overlap.
Public methodStatic member GetFilletPoints Finds points at which to cut a pair of curves so that a fillet of given radius can be inserted.
Public method GetHashCode Serves as the default hash function. (Inherited from Object.)
Public methodCode example GetLength() Gets the length of the curve with a fractional tolerance of 1.0e-8.
Public method GetLength(Double) Get the length of the curve.
Public method GetLength(Interval) Get the length of a sub-section of the curve with a fractional tolerance of 1e-8.
Public method GetLength(Double, Interval) Get the length of a sub-section of the curve.
Public method GetNextDiscontinuity Searches for a derivative, tangent, or curvature discontinuity.
Public method GetNurbsFormParameterFromCurveParameter Convert a curve parameter to a NURBS curve parameter.
Public method GetObjectData Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object. (Inherited from CommonObject.)
Public method GetPerpendicularFrames 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.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method GetUserString Gets user string from this geometry. (Inherited from GeometryBase.)
Public method GetUserStrings Gets a copy of all (user key string, user value string) pairs attached to this geometry. (Inherited from GeometryBase.)
Public method HasNurbsForm Does a NURBS curve representation of this curve exist?
Public method IsArc() Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.
Public method IsArc(Double) Test a curve to see if it can be represented by an arc or circle within the given tolerance.
Public method IsCircle() Test a curve to see if it can be represented by a circle within RhinoMath.ZeroTolerance.
Public method IsCircle(Double) Test a curve to see if it can be represented by a circle within the given tolerance.
Public method IsClosable(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.
Public method IsClosable(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.
Public method IsContinuous Test continuity at a curve parameter value.
Public method IsEllipse() Test a curve to see if it can be represented by an ellipse within RhinoMath.ZeroTolerance.
Public method IsEllipse(Double) Test a curve to see if it can be represented by an ellipse within a given tolerance.
Public method IsInPlane(Plane) Test a curve to see if it lies in a specific plane.
Public method IsInPlane(Plane, Double) Test a curve to see if it lies in a specific plane.
Public methodCode example IsLinear() Test a curve to see if it is linear to within RhinoMath.ZeroTolerance units (1e-12).
Public method IsLinear(Double) Test a curve to see if it is linear to within the custom tolerance.
Public methodCode example IsPlanar() Test a curve for planarity.
Public method IsPlanar(Double) Test a curve for planarity.
Public methodCode example 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.
Public methodCode example IsShort(Double) Used to quickly find short curves.
Public method IsShort(Double, Interval) Used to quickly find short curves.
Public method IsValidWithLog Determines if an object is valid. Also provides a report on errors if this object happens not to be valid. (Inherited from CommonObject.)
Public methodStatic member JoinCurves(IEnumerable(Curve)) Joins a collection of curve segments together.
Public methodStatic memberCode example JoinCurves(IEnumerable(Curve), Double) Joins a collection of curve segments together.
Public methodStatic member JoinCurves(IEnumerable(Curve), Double, Boolean) Joins a collection of curve segments together.
Public method LengthParameter(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.
Public method LengthParameter(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.
Public method LengthParameter(Double, Double, Double) Gets the parameter along the curve which coincides with a given length along the curve.
Public method LengthParameter(Double, Double, Double, Interval) Gets the parameter along the curve which coincides with a given length along the curve.
Public method 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.
Public method MakeDeformable 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 methodStatic member MakeEndsMeet Makes adjustments to the ends of one or both input curves so that they meet at a point.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method MemoryEstimate Computes an estimate of the number of bytes that this object is using in memory. (Inherited from GeometryBase.)
Protected method NonConstOperation For derived classes implementers. Defines the necessary implementation to free the instance from being const.

(Overrides GeometryBase.NonConstOperation().)

Public method 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 1e-8 is used in this version of the function.
Public method 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 1e-8 is used in this version of the function.
Public method 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.
Public method 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.
Public method 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 1e-8 is used in this version of the function.
Public method 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 1e-8 is used in this version of the function.
Public method 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.
Public method 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.
Public method 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 offset_curves[] array.
Public method 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 offset_curves[] array.
Public method 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.
Public method OffsetOnSurface(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.
Public method OffsetOnSurface(BrepFace, Double, Double) Offset this curve on a brep face surface. This curve must lie on the surface.
Public method OffsetOnSurface(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.
Public method OffsetOnSurface(Surface, Double, Double) Offset a curve on a surface. This curve must lie on the surface.
Public method OffsetOnSurface(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.
Public method OffsetOnSurface(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.
Protected method OnSwitchToNonConst Is called when a non-const operation occurs. (Inherited from GeometryBase.)
Public method 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.
Public methodStatic member PlanarClosedCurveRelationship Determines whether two coplanar simple closed curves are disjoint or intersect; otherwise, if the regions have a containment relationship, discovers which curve encloses the other.
Public methodStatic member PlanarCurveCollision Determines if two coplanar curves collide (intersect).
Public methodCode example PointAt Evaluates point at a curve parameter.
Public methodCode example PointAtLength 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.
Public method 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.
Public methodStatic member ProjectToBrep(Curve, Brep, Vector3d, Double) Projects a Curve onto a Brep along a given direction.
Public methodStatic member ProjectToBrep(Curve, IEnumerable(Brep), Vector3d, Double) Projects a Curve onto a collection of Breps along a given direction.
Public methodStatic member ProjectToBrep(IEnumerable(Curve), IEnumerable(Brep), Vector3d, Double) Projects a collection of Curves onto a collection of Breps along a given direction.
Public methodStatic member ProjectToBrep(Curve, IEnumerable(Brep), Vector3d, Double, Int32[]) Projects a Curve onto a collection of Breps along a given direction.
Public methodStatic member ProjectToBrep(IEnumerable(Curve), IEnumerable(Brep), Vector3d, Double, Int32[], Int32[]) Projects a collection of Curves onto a collection of Breps along a given direction.
Public methodStatic member ProjectToMesh(Curve, Mesh, Vector3d, Double) Projects a curve to a mesh using a direction and tolerance.
Public methodStatic member ProjectToMesh(Curve, IEnumerable(Mesh), Vector3d, Double) Projects a curve to a set of meshes using a direction and tolerance.
Public methodStatic member ProjectToMesh(IEnumerable(Curve), IEnumerable(Mesh), Vector3d, Double) Projects a curve to a set of meshes using a direction and tolerance.
Public methodStatic member ProjectToPlane Constructs a curve by projecting an existing curve to a plane.
Public method PullToBrepFace(BrepFace, Double) Pulls this curve to a brep face and returns the result of that operation.
Public methodStatic member PullToBrepFace(Curve, BrepFace, Double) Pull a curve to a BrepFace using closest point projection.
Public method 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.
Public method Rebuild Rebuild a curve with a specific point count.
Public method 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.
Public methodCode example Reverse Reverses the direction of the curve.
Public method Rotate 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 method Scale Scales the object by the specified factor. The scale is centered at the origin. (Inherited from GeometryBase.)
Public method SetEndPoint Forces the curve to end at a specified point. Not all curve types support this operation.
Public method SetStartPoint Forces the curve to start at a specified point. Not all curve types support this operation.
Public method SetUserString Attach a user string (key,value combination) to this geometry. (Inherited from GeometryBase.)
Public method Simplify 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 Colinear or Cocircular 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.

Public method SimplifyEnd Same as SimplifyCurve, but simplifies only the last two segments at "side" end.
Public method SpanDomain Get the domain of the curve span with the given index. Use the SpanCount property to test how many spans there are.
Public method Split(IEnumerable(Double)) Splits (divides) the curve at a series of specified parameters. The parameter must be in the interior of the curve's domain.
Public method Split(Double) Splits (divides) the curve at the specified parameter. The parameter must be in the interior of the curve's domain.
Public method Split(Brep, Double) **Obsolete. ** Splits a curve into pieces using a polysurface.
Public method Split(Surface, Double) **Obsolete. ** Splits a curve into pieces using a surface.
Public method Split(Brep, Double, Double) Splits a curve into pieces using a polysurface.
Public method Split(Surface, Double, Double) Splits a curve into pieces using a surface.
Public method TangentAt Evaluates the unit tangent vector at a curve parameter.
Public method ToNurbsCurve() Constructs a NURBS curve representation of this curve.
Public method ToNurbsCurve(Interval) Constructs a NURBS curve representation of this curve.
Public method ToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean) Gets a polyline approximation of a curve.
Public method ToPolyline(Int32, Int32, Double, Double, Double, Double, Double, Double, Boolean, Interval) Gets a polyline approximation of a curve.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method 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.)
Public method Translate(Vector3d) Translates the object along the specified vector. (Inherited from GeometryBase.)
Public method Translate(Double, Double, Double) Translates the object along the specified vector. (Inherited from GeometryBase.)
Public method Trim(Interval) Removes portions of the curve outside the specified interval.
Public method Trim(Double, Double) Removes portions of the curve outside the specified interval.
Public method Trim(CurveEnd, Double) Shortens a curve by a given length
Public method TryGetArc(Arc) Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
Public method TryGetArc(Arc, Double) Try to convert this curve into an Arc using a custom tolerance.
Public method TryGetArc(Plane, Arc) Try to convert this curve into an Arc using RhinoMath.ZeroTolerance.
Public method TryGetArc(Plane, Arc, Double) Try to convert this curve into an Arc using a custom tolerance.
Public methodCode example TryGetCircle(Circle) Try to convert this curve into a circle using RhinoMath.ZeroTolerance.
Public methodCode example TryGetCircle(Circle, Double) Try to convert this curve into a Circle using a custom tolerance.
Public method TryGetEllipse(Ellipse) Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
Public method TryGetEllipse(Ellipse, Double) Try to convert this curve into an Ellipse using a custom tolerance.
Public method TryGetEllipse(Plane, Ellipse) Try to convert this curve into an Ellipse within RhinoMath.ZeroTolerance.
Public method TryGetEllipse(Plane, Ellipse, Double) Try to convert this curve into an Ellipse using a custom tolerance.
Public methodCode example TryGetPlane(Plane) Test a curve for planarity and return the plane.
Public method TryGetPlane(Plane, Double) Test a curve for planarity and return the plane.
Public method 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.
Public method 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.
  Back to Top

Version Information

Supported in: 6.0.16224.21491, 5D58w

See Also

Reference

Rhino.Geometry Namespace

Inheritance HierarchySystem.Object
  Rhino.Runtime.CommonObject
    Rhino.Geometry.GeometryBase
      Rhino.Geometry.Curve
        Rhino.Geometry.ArcCurve
        Rhino.Geometry.CurveProxy
        Rhino.Geometry.LineCurve
        Rhino.Geometry.NurbsCurve
        Rhino.Geometry.PolyCurve
        Rhino.Geometry.PolylineCurve

Clone this wiki locally