+ enum CurveType { Polyline, Bezier, Interpolation };
+
+ Standard_EXPORT GEOMImpl_ICurvesOperations(GEOM_Engine* theEngine, int theDocID);
+ Standard_EXPORT ~GEOMImpl_ICurvesOperations();
+
+ Standard_EXPORT Handle(GEOM_Object) MakeCircleThreePnt (Handle(GEOM_Object) thePnt1,
+ Handle(GEOM_Object) thePnt2,
+ Handle(GEOM_Object) thePnt3);
+ Standard_EXPORT Handle(GEOM_Object) MakeCircleCenter2Pnt (Handle(GEOM_Object) thePnt1,
+ Handle(GEOM_Object) thePnt2,
+ Handle(GEOM_Object) thePnt3);
+ Standard_EXPORT Handle(GEOM_Object) MakeCirclePntVecR (Handle(GEOM_Object) thePnt,
+ Handle(GEOM_Object) theVec, double theR);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeEllipse (Handle(GEOM_Object) thePnt,
+ Handle(GEOM_Object) theVec,
+ double theRMajor, double theRMinor,
+ Handle(GEOM_Object) theVecMaj);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeArc (Handle(GEOM_Object) thePnt1,
+ Handle(GEOM_Object) thePnt2,
+ Handle(GEOM_Object) thePnt3);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeArcCenter (Handle(GEOM_Object) thePnt1,
+ Handle(GEOM_Object) thePnt2,
+ Handle(GEOM_Object) thePnt3,
+ bool theSense);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeArcOfEllipse (Handle(GEOM_Object) thePnt1,
+ Handle(GEOM_Object) thePnt2,
+ Handle(GEOM_Object) thePnt3);
+
+ Standard_EXPORT Handle(GEOM_Object) MakePolyline (std::list<Handle(GEOM_Object)> thePoints,
+ bool theIsClosed = false);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeSplineBezier (std::list<Handle(GEOM_Object)> thePoints,
+ bool theIsClosed = false);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeSplineInterpolation (std::list<Handle(GEOM_Object)> thePoints,
+ bool theIsClosed = false,
+ bool theDoReordering = false);
+
+ Standard_EXPORT Handle(GEOM_Object) MakeSplineInterpolWithTangents
+ (std::list<Handle(GEOM_Object)> thePoints,
+ Handle(GEOM_Object) theFirstVec,
+ Handle(GEOM_Object) theLastVec);