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