1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAPI_Edge.hxx
4 // Created: 24 Jul 2014
5 // Author: Artem ZHIDKOV
7 #ifndef GeomAPI_Edge_H_
8 #define GeomAPI_Edge_H_
10 #include <GeomAPI_Shape.h>
16 /**\class GeomAPI_Edge
18 * \brief Interface to the edge object
21 class GeomAPI_Edge : public GeomAPI_Shape
24 /// Creation of empty (null) shape
28 /// Creation of edge by the edge-shape
30 GeomAPI_Edge(const std::shared_ptr<GeomAPI_Shape>& theShape);
32 /// Verifies that the edge is a line
36 /// Verifies that the edge is a circle
38 bool isCircle() const;
40 /// Verifies that the edge is an arc of circle
44 /// Returns the first vertex coordinates of the edge
46 std::shared_ptr<GeomAPI_Pnt> firstPoint();
48 /// Returns the Last vertex coordinates of the edge
50 std::shared_ptr<GeomAPI_Pnt> lastPoint();
52 /// Returns a circle if edge is based on the circle curve
54 std::shared_ptr<GeomAPI_Circ> circle();
56 /// Returns a line if edge is based on the linear curve
58 std::shared_ptr<GeomAPI_Lin> line();
60 /// Returns true if the current edge is geometrically equal to the given edge
62 bool isEqual(const std::shared_ptr<GeomAPI_Shape> theEdge) const;