Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom into Dev_1.1.0
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_EdgeBuilder.h
index b7f527230c9cd6e5458e74c4889a054d8674b117..ef0f82df49d04931d80d748a35c2667dcc4232e6 100644 (file)
@@ -1,15 +1,17 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 // File:        GeomAlgoAPI_EdgeBuilder.h
 // Created:     23 Apr 2014
 // Author:      Mikhail PONIKAROV
 
-#ifndef GeomAlgoAPI_EdgeBuilder_HeaderFile
-#define GeomAlgoAPI_EdgeBuilder_HeaderFile
+#ifndef GeomAlgoAPI_EdgeBuilder_H_
+#define GeomAlgoAPI_EdgeBuilder_H_
 
 #include <GeomAlgoAPI.h>
-#include <GeomAPI_Shape.h>
+#include <GeomAPI_Edge.h>
 #include <GeomAPI_Pnt.h>
 #include <GeomAPI_Dir.h>
-#include <boost/shared_ptr.hpp>
+#include <memory>
 
 /**\class GeomAlgoAPI_EdgeBuilder
  * \ingroup DataAlgo
 
 class GEOMALGOAPI_EXPORT GeomAlgoAPI_EdgeBuilder
 {
-public:
+ public:
   /// Creates linear edge by two points
-  static boost::shared_ptr<GeomAPI_Shape> line(
-    boost::shared_ptr<GeomAPI_Pnt> theStart, boost::shared_ptr<GeomAPI_Pnt> theEnd);
+  static std::shared_ptr<GeomAPI_Edge> line(std::shared_ptr<GeomAPI_Pnt> theStart,
+                                              std::shared_ptr<GeomAPI_Pnt> theEnd);
 
   /// Creates linear edge in a form of a circle by a point and a circle radius
-  static boost::shared_ptr<GeomAPI_Shape> lineCircle(
-    boost::shared_ptr<GeomAPI_Pnt> theCenter,
-    boost::shared_ptr<GeomAPI_Dir> theNormal, double theRadius);
+  static std::shared_ptr<GeomAPI_Edge> lineCircle(std::shared_ptr<GeomAPI_Pnt> theCenter,
+                                                    std::shared_ptr<GeomAPI_Dir> theNormal,
+                                                    double theRadius);
+
+  /// Creates linear edge in a form of a circle arc by a three points
+  static std::shared_ptr<GeomAPI_Edge> lineCircleArc(std::shared_ptr<GeomAPI_Pnt> theCenter,
+                                                       std::shared_ptr<GeomAPI_Pnt> theStartPoint,
+                                                       std::shared_ptr<GeomAPI_Pnt> theEndPoint,
+                                                       std::shared_ptr<GeomAPI_Dir> theNormal);
 };
 
 #endif