]> SALOME platform Git repositories - modules/shaper.git/blob - src/GeomAPI/GeomAPI_Edge.h
Salome HOME
Boost has been removed from code
[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 std::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   std::shared_ptr<GeomAPI_Pnt> firstPoint();
38
39   /// Returns the Last vertex coordinates of the edge 
40   std::shared_ptr<GeomAPI_Pnt> lastPoint();
41
42   /// Returns a circle if edge is based on the cirsle curve
43   std::shared_ptr<GeomAPI_Circ> circle();
44
45   /// Returns true if the current edge is geometrically equal to the given edge
46   bool isEqual(std::shared_ptr<GeomAPI_Shape> theEdge);
47 };
48
49 #endif
50