Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom.git into Dev_1.1.0
[modules/shaper.git] / src / GeomAPI / GeomAPI_Circ2d.h
index 8b91d8332f3adeb2614646ac9dae3351e4b7dcff..9761c882900d10b1a3b2f576c529571d5008ae65 100644 (file)
@@ -1,29 +1,43 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 // File:        GeomAPI_Circ2d.h
 // Created:     29 May 2014
 // Author:      Artem ZHIDKOV
 
-#ifndef GeomAPI_Circ2d_HeaderFile
-#define GeomAPI_Circ2d_HeaderFile
+#ifndef GeomAPI_Circ2d_H_
+#define GeomAPI_Circ2d_H_
 
 #include <GeomAPI_Interface.h>
-#include <boost/shared_ptr.hpp>
+#include <memory>
 
 class GeomAPI_Pnt2d;
+class GeomAPI_Dir2d;
 
 /**\class GeomAPI_Circ2d
  * \ingroup DataModel
- * \brief Line in 2D
+ * \brief Circle in 2D
  */
 
-class GEOMAPI_EXPORT GeomAPI_Circ2d: public GeomAPI_Interface
+class GEOMAPI_EXPORT GeomAPI_Circ2d : public GeomAPI_Interface
 {
-public:
+ public:
   /// Creation of circle defined by center point and circle radius
-  GeomAPI_Circ2d(const boost::shared_ptr<GeomAPI_Pnt2d>& theCenter,
-                 const boost::shared_ptr<GeomAPI_Pnt2d>& theCirclePoint);
+  GeomAPI_Circ2d(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+                 const std::shared_ptr<GeomAPI_Pnt2d>& theCirclePoint);
+
+  /// Creation of circle defined by center point, direction and circle radius
+  GeomAPI_Circ2d(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+                 const std::shared_ptr<GeomAPI_Dir2d>& theDir, double theRadius);
+
+  /// Return center of the circle
+  const std::shared_ptr<GeomAPI_Pnt2d> center() const;
+
+  /// Return radius of the circle
+  double radius() const;
 
   /// Project point on line
-  const boost::shared_ptr<GeomAPI_Pnt2d> project(const boost::shared_ptr<GeomAPI_Pnt2d>& thePoint) const;
+  const std::shared_ptr<GeomAPI_Pnt2d> project(
+      const std::shared_ptr<GeomAPI_Pnt2d>& thePoint) const;
 };
 
 #endif