DG Kernel Documentation


Skip Navigation Links.
Skip Navigation LinksHome Page > API Reference > General Geometry > Curves > ICurve_DG Search Documentation


ICurve_DG Interface

GetParameterRange
GetParameterRange1
SetParameterRange
IsClosed
GetPoint
GetPointAtRatio
GetTangent
GetEndPoint
SlideEndPoint
GetNearestPoint
GetLength
GetLengthAt
GetParameterAtLength
GetParameterAtRatio
GetRatioAt
GetIntersection
GetIntersection1
GetPointLocation

A generic curve in 3D with a single parameter. This interface represents generic (abstract) functionality so it can not be constracted new using methods of IObjectGenerator_DG. It has to be constructed as a specific type.

Implements also: IGeometricObject_DG.


void GetParameterRange1(double *min, double *max)


Range_DG GetParameterRange()


void SetParameterRange(double min, double max)


bool IsClosed()


Point_DG GetPoint(double u)


Point_DG GetPointAtRatio(double ratio)

A shortcut for GetPoint(GetParameterAtRatio(ratio)).


Vect_DG GetTangent(double u)


Point_DG GetEndPoint(int end)


bool SlideEndPoint(int end, Point_DG point)

Assuming that point lies on the curve, modifies parameter range so that the point becomes an end of the curve.


double GetNearestPoint(Point_DG point, out Point_DG pointNearest)


double GetLength()


double GetLengthAt(double u)


double GetParameterAtLength(double length)


double GetParameterAtRatio(double ratio)


double GetRatioAt(double u)



int GetIntersection(ICurve_DG curve, double tolerance, IArrayDouble_DG paramsThis, IArrayDouble_DG paramsCurve, [out] bool haveTangentialIntersection)

A simplified version of the generic GetIntersection1() method below. Returns an array of non-tangential intersections of the curves. Returns number of intersections, which coinsides with the sizes of both paramsThis and paramsCurve.

The paramsThis and paramsCurve arrays are synchronised: i-th element in each is the parameter value related to i-th intersection point.

haveTangentialIntersection indicates whether the curves have tangential intersection points, where tangents are collinear. If the returned haveTangentialIntersection is true, the GetIntersection1() method below can be used to obtain the full intersection.


bool GetIntersection1(ICurve_DG curve, double tolerance, ISetR1_DG paramsThis, ISetR1_DG paramsCurve, IArrayBool_DG flagsTangential)

Intersection of two 2D curves. Returns false if the intersection is empty.

The paramsThis, paramsCurve and flagsTangential are synchronised: i-th range in each, are the parameter values related to i-th intersection.

Isolated intersection points are returned as singleton (min = max) ranges.

flagsTangential[i] is true if the intersection is tangential (tangents are collinear) on the i-th range. flagsTangential can be false only for isolated intersection points.


PointVsCurveLocation_DG GetPointLocation(Point_DG* point, double tolerance)

Classifies location of a point relative to this curve.