Salome HOME
Boost has been removed from code
[modules/shaper.git] / src / GeomAPI / GeomAPI_Circ2d.h
1 // File:        GeomAPI_Circ2d.h
2 // Created:     29 May 2014
3 // Author:      Artem ZHIDKOV
4
5 #ifndef GeomAPI_Circ2d_H_
6 #define GeomAPI_Circ2d_H_
7
8 #include <GeomAPI_Interface.h>
9 #include <memory>
10
11 class GeomAPI_Pnt2d;
12 class GeomAPI_Dir2d;
13
14 /**\class GeomAPI_Circ2d
15  * \ingroup DataModel
16  * \brief Circle in 2D
17  */
18
19 class GEOMAPI_EXPORT GeomAPI_Circ2d : public GeomAPI_Interface
20 {
21  public:
22   /// Creation of circle defined by center point and circle radius
23   GeomAPI_Circ2d(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
24                  const std::shared_ptr<GeomAPI_Pnt2d>& theCirclePoint);
25
26   /// Creation of circle defined by center point, direction and circle radius
27   GeomAPI_Circ2d(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
28                  const std::shared_ptr<GeomAPI_Dir2d>& theDir, double theRadius);
29
30   /// Return center of the circle
31   const std::shared_ptr<GeomAPI_Pnt2d> center() const;
32
33   /// Return radius of the circle
34   double radius() const;
35
36   /// Project point on line
37   const std::shared_ptr<GeomAPI_Pnt2d> project(
38       const std::shared_ptr<GeomAPI_Pnt2d>& thePoint) const;
39 };
40
41 #endif
42