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>
17 /**\class GeomAPI_Edge
19 * \brief Interface to the edge object
22 class GeomAPI_Edge : public GeomAPI_Shape
25 /// Creation of empty (null) shape
29 /// Creation of edge by the edge-shape
31 GeomAPI_Edge(const std::shared_ptr<GeomAPI_Shape>& theShape);
33 /// Verifies that the edge is a line
37 /// Verifies that the edge is a circle
39 bool isCircle() const;
41 /// Verifies that the edge is an arc of circle
45 /// Returns the first vertex coordinates of the edge
47 std::shared_ptr<GeomAPI_Pnt> firstPoint();
49 /// Returns the Last vertex coordinates of the edge
51 std::shared_ptr<GeomAPI_Pnt> lastPoint();
53 /// Returns a circle if edge is based on the circle curve
55 std::shared_ptr<GeomAPI_Circ> circle();
57 /// Returns a line if edge is based on the linear curve
59 std::shared_ptr<GeomAPI_Lin> line();
61 /// Returns true if the current edge is geometrically equal to the given edge
63 bool isEqual(const std::shared_ptr<GeomAPI_Shape> theEdge) const;
65 /// Returns range of parameter on the curve
67 void getRange(double& theFirst, double& theLast) const;
69 /// Returns true, if the edge is fully placed in the specified plane
71 bool isInPlane(const std::shared_ptr<GeomAPI_Pln> thePlane) const;