Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / GeomAPI / GeomAPI_Edge.h
1 // File:        GeomAPI_Edge.hxx
2 // Created:     24 Jul 2014
3 // Author:      Artem ZHIDKOV
4
5 #ifndef GeomAPI_Edge_H_
6 #define GeomAPI_Edge_H_
7
8 #include <GeomAPI_Shape.h>
9
10 class GeomAPI_Pnt;
11 class GeomAPI_Circ;
12
13 /**\class GeomAPI_Edge
14 * \ingroup DataModel
15  * \brief Interface to the edge object
16  */
17
18 class GEOMAPI_EXPORT GeomAPI_Edge : public GeomAPI_Shape
19 {
20 public:
21    /// Creation of empty (null) shape
22    GeomAPI_Edge();
23
24    /// Creation of edge by the edge-shape
25    GeomAPI_Edge(const boost::shared_ptr<GeomAPI_Shape>& theShape);
26
27   /// Verifies that the edge is a line
28   bool isLine() const;
29
30   /// Verifies that the edge is a circle
31   bool isCircle() const;
32
33   /// Verifies that the edge is an arc of circle
34   bool isArc() const;
35
36   /// Returns the first vertex coordinates of the edge 
37   boost::shared_ptr<GeomAPI_Pnt> firstPoint();
38
39   /// Returns the Last vertex coordinates of the edge 
40   boost::shared_ptr<GeomAPI_Pnt> lastPoint();
41
42   /// Returns a circle if edge is based on the cirsle curve
43   boost::shared_ptr<GeomAPI_Circ> circle();
44 };
45
46 #endif
47