Salome HOME
Merge branch 'master' of newgeom:newgeom.git
[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 <boost/shared_ptr.hpp>
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 boost::shared_ptr<GeomAPI_Pnt2d>& theCenter,
24                  const boost::shared_ptr<GeomAPI_Pnt2d>& theCirclePoint);
25
26   /// Creation of circle defined by center point, direction and circle radius
27   GeomAPI_Circ2d(const boost::shared_ptr<GeomAPI_Pnt2d>& theCenter,
28                  const boost::shared_ptr<GeomAPI_Dir2d>& theDir,
29                  double theRadius);
30
31   /// Return center of the circle
32   const boost::shared_ptr<GeomAPI_Pnt2d> center() const;
33
34   /// Return radius of the circle
35   double radius() const;
36
37   /// Project point on line
38   const boost::shared_ptr<GeomAPI_Pnt2d> project(const boost::shared_ptr<GeomAPI_Pnt2d>& thePoint) const;
39 };
40
41 #endif
42