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_EXPORT GeomAPI_Edge : public GeomAPI_Shape
24 /// Creation of empty (null) shape
27 /// Creation of edge by the edge-shape
28 GeomAPI_Edge(const std::shared_ptr<GeomAPI_Shape>& theShape);
30 /// Verifies that the edge is a line
33 /// Verifies that the edge is a circle
34 bool isCircle() const;
36 /// Verifies that the edge is an arc of circle
39 /// Returns the first vertex coordinates of the edge
40 std::shared_ptr<GeomAPI_Pnt> firstPoint();
42 /// Returns the Last vertex coordinates of the edge
43 std::shared_ptr<GeomAPI_Pnt> lastPoint();
45 /// Returns a circle if edge is based on the circle curve
46 std::shared_ptr<GeomAPI_Circ> circle();
48 /// Returns a line if edge is based on the linear curve
49 std::shared_ptr<GeomAPI_Lin> line();
51 /// Returns true if the current edge is geometrically equal to the given edge
52 bool isEqual(const std::shared_ptr<GeomAPI_Shape> theEdge) const;