Salome HOME
Issue #251. Append Export/Import NewGeom commands in the SALOME desktop.
[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   /// Returns true if the current edge is geometrically equal to the given edge
46   bool isEqual(boost::shared_ptr<GeomAPI_Shape> theEdge);
47 };
48
49 #endif
50