GCurve Class

Nurbs curve entity.
Public Class GCurve 
Inherits GNurbsBase 
Implements IGCurve
This language is not supported or no code example is available.
public class GCurve : GNurbsBase
IGCurve
This language is not supported or no code example is available.
Name Description
Protected constructor GCurve(GCurve)
Public constructor GCurve(Point3D, Vector3D, Point3D, Vector3D, Point3D) Elliptical arc by three points and two tangents constructor.
Public constructor GCurve(SerializationInfo, StreamingContext) Constructor for deserializing objects.
Public constructor GCurve(int, IList<Point3D>) GCurve by control points constructor.
Public constructor GCurve(int, double, Vector3D[]) Power basis to Bezier constructor.
Public constructor GCurve(int, double[], Point4D[], bool) Standard constructor.
Public constructor GCurve(int, params Point3D[]) GCurve by control points constructor.
Top
Name Description
Public property ControlPoints Gets or sets the curve control point array.
Public property Degree Gets or sets the curve degree.
Public property Domain Gets curve domain.
Public property EdgeIndex
Public property EndPoint
Public property EndTangent
Public property EntityData Gets or sets the entity custom data. (inherited from GEntity).
Public property FromBooleanIntersection
Public property IsClosed Returns true if the curve is closed.
Public property IsLine If true the curve is a line and not a degenerated one (a point).
Public property IsPoint If true, the curve is a degenerated one (a point).
Public property IsRational Returns true if the curve is rational.
Public property KnotVector Gets or sets the curve knot vector U.
Public property Order Gets curve order.
Public property ShowControl If true, the control polygon/net for this entity is displayed. (inherited from GNurbsBase).
Public property StartPoint
Public property StartTangent
Top
Methods
 
Name Description
Public method AddControlPoint(Point3D) Inserts a control point on the control polygon. The control point will be added at the projection of the given 3D point on the polygon. The insertion does not affect the shape of the curve.
Protected method Static Bernstain(int, int, double) Computes the value of Berstain polynomial. (inherited from GNurbsBase).
Protected method Static BernstainDer(int, int, double) Computes the value of the first derivative of a Berstain polynomial. (inherited from GNurbsBase).
Protected method BezierToPowerMatrix(int) Computes Mp efficiently. (inherited from GNurbsBase).
Public method Static Chamfer(IGCurve, IGCurve, Vector3D, double, bool, bool, bool, bool, out GLine) Chamfers two curves.
Public method Static Chamfer(IGCurve, IGCurve, double, bool, bool, bool, bool, out GLine) Chamfers two curves.
Public method Static Cholesky(double[,], int, out double[,]) (inherited from GNurbsBase).
Public method Static Cholesky(double[,], int, out double[,], out double[]) (inherited from GNurbsBase).
Public method Static ChordLengthParametrization<T>(IList<T>, out double[]) Computes chord length parameterization from a vector of points. (inherited from GNurbsBase).
Public method Static ChordLengthParametrization<T>(int, int, IList<T>, out double[], out double[]) Computes chord length parameterization from a vector of points. (inherited from GNurbsBase).
Public method Clone() Creates a deep copy of this curve.
Public method ClosestPointTo(Point3D, out double)
Protected method ComputeApproximatedBoundingBox(out Point3D, out Point3D) Computes the primitive's approximated bounding box.
Public method ComputeTessellation(IRegenParams, out Point3D[])
Public method ComputeTessellation(double, out Point3D[])
Public method ControlBoundingBox() Computes the extension of the control polygon/net.
Public method ControlBoundingBox(out Point3D, out Point3D) Computes the extension of the control polygon/net.
Public method ControlBoundingBox(double, out Point3D, out Point3D) Computes the extension of the control polygon/net.
Public method ControlLength() Gets the length of the curve's control polygon.
Public method ControlLengthSquared() Gets the squared length of the curve's control polygon.
Public method ConvertToArcsAndLines() Converts the curve with a sequence of arcs and lines.
Public method ConvertToArcsAndLines(double, double, double) Converts the curve with a sequence of arcs and lines.
Public method ConvertToSurrogate() Converts the GEntity to its surrogate, for serialization purpose.
Public method Static CubicSplineInterpolation(IList<Point3D>, Vector3D, Vector3D) Cubic spline interpolation.
Public method Static CubicSplineInterpolation<R>(IList<R>, bool) Cubic spline interpolation with automatic tangents.
Public method Curvature(double) Computes the curve curvature at parametric value u.
Public method Decompose() Decomposes the curve into Bézier segments.
Public method DegreeElevate(int) Degree elevates the curve.
Public method Static Drop(Plane, IGCurve) Project curve on the specified plane.
Public method Dump() Returns a description of this entity.
Public method Equals(Object) (inherited from Object).
Public method Evaluate(double) Computes the curve point at parametric value u.
Public method Evaluate(double, int) Computes the curve derivatives at parametric value u.
Public method EvaluateTangent(double, out Point3D, out Vector3D) Evaluate unit tangent at a parameter with error checking.
Public method ExtrudeAsBrep(GLine, double)
Public method ExtrudeAsBrep(Vector3D, double, double)
Public method ExtrudeAsBrep(double, double, double, double)
Public method ExtrudeAsMesh(Vector3D, double, natureType)
Public method ExtrudeAsMesh(double, double, double, double, natureType)
Public method ExtrudeAsMesh<T>(Vector3D, double, natureType)
Public method ExtrudeAsMesh<T>(double, double, double, double, natureType)
Public method ExtrudeAsSolid(Vector3D, double)
Public method ExtrudeAsSolid(double, double, double, double)
Public method ExtrudeAsSurface(GLine)
Public method ExtrudeAsSurface(Vector3D)
Public method ExtrudeAsSurface(Vector3D, double, double)
Public method ExtrudeAsSurface(double, double, double)
Public method Static Fillet(IGCurve, IGCurve, Vector3D, double, bool, bool, bool, bool, out GArc) Fillets two coplanar curves with an arc of given radius.
Public method Static Fillet(IGCurve, IGCurve, double, bool, bool, bool, bool, out GArc) Fillets two coplanar curves with an arc of given radius.
Protected method Finalize (inherited from Object).
Protected method Static GetClosestMainAxis(Vector3D) (inherited from GEntity).
Public method GetCoarseSampling() Returns a small set of points that gives a coarse idea of the 3D extent of the primitive.
Public method GetHashCode (inherited from Object).
Public method GetIndividualCurves()
Public method GetLengthFromParam(double, out double)
Public method GetNurbsForm() Gets the Nurbs form of this curve.
Public method GetObjectData(SerializationInfo, StreamingContext) Populates a SerializationInfo instance with the data needed to serialize the target object.
Protected method Static GetOffsetDistance(Vector3D, Vector3D, double) (inherited from GEntity).
Public method GetParamFromLength(double, double, out double)
Public method GetParamFromLength(double, out double)
Public method GetParamsFromLength(double[], out double[]) Given a sorted array of lengths along the curve, finds the parameter values that correspond to them.
Public method GetPointsByLength(double)
Public method GetPointsByLengthPerSegment(double)
Public method GetTightBBox(out Point3D, out Point3D)
Public method GetTrimCurve(IGCurve) Gets a TrimIgCurve representation of this curve
Public method GetTrimCurve() Gets a GTrimCurve representation of this curve
Public method GetType (inherited from Object).
Public method GetXElement()
Public method Static GlobalApproximation(IList<Point3D>, int, double) Global approximation of a igCurve bounded to a certain error.
Public method Static GlobalInterpolation(IList<Point3D>, int) Global curve interpolation.
Public method InsertKnot(Point3D, int) Inserts a knot a number of times. It is added at the parameter corresponding to the projection of the given point on the curve. The insertion does not affect the shape of the curve.
Public method InsertKnot(double, int) Inserts a knot a number of times. It does not affect the shape of the curve.
Public method IntersectWith(IGCurve, bool)
Public method IntersectWith(Plane, double) Trims the curve at the limit point projection.
Public method IsInPlane(Plane, double) Checks if the curve lays on the specified plane.
Public method IsLinear(double, out Segment3D) Test a curve to see if the locus of its points is a gLine segment.
Public method IsPlanar(double, out Plane) Checks if the curve is planar.
Public method IsValid() Returns true if all the entity fields contain reasonable information.
Public method Static LeastSquares(IList<Point3D>, int, int) Least squares igCurve approximation.
Public method Length() Gets the curve length.
Public method Static LocalApproximation(IList<Point3D>, double, out Vector3D[], bool) Local cubic approximation of a igCurve bounded to a certain error.
Public method Static LocalApproximation(IList<PointTangent>, double) Local cubic approximation of a igCurve bounded to a certain error.
Public method Static LocalInterpolation(IList<Point3D>, bool, bool) Local interpolation.
Public method Static LocalInterpolation(IList<PointTangent>) Local interpolation.
Protected method MemberwiseClone (inherited from Object).
Public method Static Merge(IGCurve, IGCurve) Joins two curves.
Public method Static Merge(IList<IGCurve>) Joins a list of curves. Curves must be properly oriented.
Public method Static Merge(IList<IGCurve>, bool) Joins a list of curves. Curves must be properly oriented.
Public method Static MinimumDistance(GCurve, GCurve, double, bool, ref double, ref double, out double) Computes the minimum distance between two curves.
Public method Static MinimumDistance(GCurve, GCurve, double, ref double, ref double, out double) Computes the minimum distance between two curves.
Public method NormalAt(double) Computes the curve normal at parametric value u.
Public method Offset(double, Vector3D)
Public method Offset(double, Vector3D, double, bool)
Public method OffsetToRegion(double, double, bool)
Public method PointAt(double) Computes the curve point at parametric value u.
Protected method Static PowerToBezierMatrix(int, double[,]) Computes the inverse of Mp. (inherited from GNurbsBase).
Public method Project(Point3D, double, bool, double, out double) Projects a point on the curve.
Public method Project(Point3D, out double)
Public method Project(Point3D, double, bool, out double) Projects a point on the curve.
Public method ProjectOn(Plane) Project this curve on the specified plane.
Public method Promote() Converts this generic curve to GLine, GArc or GCircle (when possible).
Public method RefineKnotVector(double[]) Refines the curve knot vector.
Public method RemoveKnot(int, int, int) Removes an internal knot from a curve.
Public method RemoveKnot(int, int, int, double) Removes an internal knot from a curve.
Public method RemoveKnots(double) Removes as many knots as possible from a curve.
Public method ResetComputedData() Resets needed primitive's geometrical attributes to recompute. (inherited from GNurbsBase).
Public method Resize(int, int) Resizes a curve.
Public method ResizeKeep(int, int) Resizes a curve, keeping original values.
Public method Reverse() Reverses the curve direction.
Public method RevolveAsBrep(double, double, GLine, double)
Public method RevolveAsBrep(double, double, Point3D, Point3D, double)
Public method RevolveAsBrep(double, double, Vector3D, Point3D, double)
Public method RevolveAsMesh(double, double, Point3D, Point3D, int, double, natureType)
Public method RevolveAsMesh(double, double, Vector3D, Point3D, int, double, natureType)
Public method RevolveAsMesh<T>(double, double, Point3D, Point3D, int, double, natureType)
Public method RevolveAsMesh<T>(double, double, Vector3D, Point3D, int, double, natureType)
Public method RevolveAsSolid(double, double, Point3D, Point3D, int, double)
Public method RevolveAsSolid(double, double, Vector3D, Point3D, int, double)
Public method RevolveAsSurface(double, double, GLine)
Public method RevolveAsSurface(double, double, Point3D, Point3D)
Public method RevolveAsSurface(double, double, Vector3D, Point3D)
Public method Rotate(double, Vector3D, Point3D) Rotates the entity around an arbitrary axis by the specified angle. (inherited from GEntity).
Public method Rotate(double, Point3D, Point3D) Rotates the entity around an arbitray axis by the specified angle. (inherited from GEntity).
Public method Rotate(double, Vector3D) Rotates the entity around an arbitray axis by the specified angle. (inherited from GEntity).
Public method Scale(Point3D, double, double, double) Scales the entity of the specified scale factor. (inherited from GEntity).
Public method Scale(Point3D, double) Scales the entity of the specified scale factor. (inherited from GEntity).
Public method Scale(Vector3D) Scales the entity of the specified scale factor. (inherited from GEntity).
Public method Scale(double) Scales the entity of the specified scale factor. (inherited from GEntity).
Public method Scale(double, double, double) Scales the entity of the specified scale factor. (inherited from GEntity).
Public method SplitAt(double, out IGCurve, out IGCurve) Splits the curve into two curves.
Public method SplitAtDiscontinuities(bool) Splits the curve at derivative discontinuities (e.g. cusps, kinks), returns an array of the smooth segments that form the curve.
Public method SplitBy(IList<Point3D>, out IGCurve[])
Public method SplitBy(Point3D, out IGCurve, out IGCurve)
Public method SubCurve(Point3D, Point3D, out IGCurve)
Public method SubCurve(double, double, out IGCurve)
Public method SweepAsBrep(IGCurve, double, sweepMethodType)
Public method SweepAsBrep(IGCurve, double, bool, sweepMethodType)
Public method SweepAsMesh(IGCurve, double, sweepMethodType, natureType)
Public method SweepAsMesh(IGCurve, double, bool, sweepMethodType, natureType)
Public method SweepAsMesh<T>(IGCurve, double, sweepMethodType, natureType)
Public method SweepAsMesh<T>(IGCurve, double, bool, sweepMethodType, natureType)
Public method SweepAsSolid(IGCurve, double, sweepMethodType)
Public method SweepAsSolid(IGCurve, double, bool, sweepMethodType)
Public method SweepAsSurface(IGCurve, double, sweepMethodType)
Public method TangentAt(double) Evaluates unit tangent vector at a parameter.
Public method ToString()
Internal protected (Protected Friend) method TransformAllVertices(Point3D[], Transformation, bool, bool) (inherited from GEntity).
Public method TransformBy(Transformation) Transforms all the entity's vertices by the specified transformation.
Public method Translate(double, double, double) Translates the entity. (inherited from GEntity).
Public method Translate(Vector3D) Translates the entity. (inherited from GEntity).
Public method Static Trim(IGCurve, IGCurve, bool, bool) Trims two intersecting curves.
Public method TrimAt(double, bool) Trims the curve at the provided parametric value.
Public method TrimBy(Plane, double, bool) Trims the curve at the limit point projection.
Public method TrimBy(Point3D, bool) Trims the curve at the limit point projection.
Public method TryGetArc(out GCircle) Converts this generic curve to GArc or GCircle (when possible).
Public method TryGetLine(out GLine) Converts this generic curve to GLine (when possible).
Public method Static UniformKnotVector(int, int) Constructs a uniform clamped knot vector. v[j+1]-v[j] is equal for all inners nodes. (inherited from GNurbsBase).
Public method WriteCSharp(TextWriter, int)
Public method Static banbks(double[,], int, int, double[,], int[], ref double[,]) (inherited from GNurbsBase).
Public method Static banbks(double[,], int, int, double[,], int[], ref double[]) (inherited from GNurbsBase).
Public method Static bandec(double[,], int, int, double[,], int[], out double) (inherited from GNurbsBase).
Public method Static lubksb(double[,], int[], ref double[]) (inherited from GNurbsBase).
Top
Fields
 
Name Description
Protected field geometricalAttributesDirty When true, geometrical attributes need to be updated. (inherited from GNurbsBase).
Protected field seam GCurve seam.
Top

.NET Framework

Supported in: 4.7.2

In this article

Definition