SHAPER 9.16.0
GeomAPI_Edge.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef GeomAPI_Edge_H_
21#define GeomAPI_Edge_H_
22
23#include <GeomAPI_Shape.h>
24
25class GeomAPI_Pln;
26class GeomAPI_Pnt;
27class GeomAPI_Circ;
28class GeomAPI_Lin;
29class GeomAPI_Ellipse;
30class GeomAPI_Vertex;
31
38{
39public:
41 GEOMAPI_EXPORT
43
45 GEOMAPI_EXPORT
46 GeomAPI_Edge(const std::shared_ptr<GeomAPI_Shape>& theShape);
47
49 GEOMAPI_EXPORT
50 void vertices(std::shared_ptr<GeomAPI_Vertex>& theStartVertex,
51 std::shared_ptr<GeomAPI_Vertex>& theEndVertex) const;
52
54 GEOMAPI_EXPORT
55 virtual bool isSameGeometry(const std::shared_ptr<GeomAPI_Shape> theShape) const;
56
58 GEOMAPI_EXPORT
59 bool isLine() const;
60
62 GEOMAPI_EXPORT
63 bool isCircle() const;
64
66 GEOMAPI_EXPORT
67 bool isArc() const;
68
70 GEOMAPI_EXPORT
71 bool isEllipse() const;
72
74 GEOMAPI_EXPORT
75 bool isBSpline() const;
76
78 GEOMAPI_EXPORT
79 std::shared_ptr<GeomAPI_Pnt> firstPoint();
80
82 GEOMAPI_EXPORT
83 std::shared_ptr<GeomAPI_Pnt> lastPoint();
84
86 GEOMAPI_EXPORT
87 std::shared_ptr<GeomAPI_Circ> circle() const;
88
90 GEOMAPI_EXPORT
91 std::shared_ptr<GeomAPI_Ellipse> ellipse() const;
92
94 GEOMAPI_EXPORT
95 std::shared_ptr<GeomAPI_Lin> line() const;
96
98 GEOMAPI_EXPORT
99 bool isEqual(const std::shared_ptr<GeomAPI_Shape> theEdge) const;
100
102 GEOMAPI_EXPORT
103 void setRange(const double& theFirst, const double& theLast);
104
106 GEOMAPI_EXPORT
107 void getRange(double& theFirst, double& theLast) const;
108
111 GEOMAPI_EXPORT
112 bool isInPlane(const std::shared_ptr<GeomAPI_Pln> thePlane) const;
113
116 GEOMAPI_EXPORT
117 void intersectWithPlane(const std::shared_ptr<GeomAPI_Pln> thePlane,
118 std::list<std::shared_ptr<GeomAPI_Pnt> >& theResult) const;
119
121 GEOMAPI_EXPORT
122 double length() const;
123
125 GEOMAPI_EXPORT
126 bool isClosed() const;
127
129 GEOMAPI_EXPORT
130 bool isDegenerated() const;
131
132 GEOMAPI_EXPORT
133 void setFirstPointTolerance(const double theTolerance);
134
135 GEOMAPI_EXPORT
136 void setLastPointTolerance(const double theTolerance);
137
138 GEOMAPI_EXPORT double firstPointTolerance() const;
139
140 GEOMAPI_EXPORT double lastPointTolerance() const;
141
143 GEOMAPI_EXPORT
144 virtual std::shared_ptr<GeomAPI_Pnt> middlePoint() const;
145};
146
148typedef std::shared_ptr<GeomAPI_Edge> GeomEdgePtr;
149
150#endif
151
Circle in 3D.
Definition: GeomAPI_Circ.h:37
Interface to the edge object.
Definition: GeomAPI_Edge.h:38
GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Pnt > firstPoint()
Returns the first vertex coordinates of the edge.
Definition: GeomAPI_Edge.cpp:195
GEOMAPI_EXPORT bool isInPlane(const std::shared_ptr< GeomAPI_Pln > thePlane) const
Returns true, if the edge is fully placed in the specified plane.
Definition: GeomAPI_Edge.cpp:334
GEOMAPI_EXPORT void getRange(double &theFirst, double &theLast) const
Returns range of parameter on the curve.
Definition: GeomAPI_Edge.cpp:327
GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Ellipse > ellipse() const
Returns an ellipse if edge is based on the ellipse curve.
Definition: GeomAPI_Edge.cpp:231
GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Lin > line() const
Returns a line if edge is based on the linear curve.
Definition: GeomAPI_Edge.cpp:250
GEOMAPI_EXPORT bool isEqual(const std::shared_ptr< GeomAPI_Shape > theEdge) const
Returns true if the current edge is geometrically equal to the given edge.
Definition: GeomAPI_Edge.cpp:273
virtual GEOMAPI_EXPORT bool isSameGeometry(const std::shared_ptr< GeomAPI_Shape > theShape) const
Returns true if edges have same underlying curve.
Definition: GeomAPI_Edge.cpp:97
GEOMAPI_EXPORT bool isEllipse() const
Verifies that the edge is an arc of circle.
Definition: GeomAPI_Edge.cpp:171
virtual GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Pnt > middlePoint() const
Return middle point on the edge.
Definition: GeomAPI_Edge.cpp:484
GEOMAPI_EXPORT bool isDegenerated() const
Returns true if the edge is degenerated (has no 3D curve)
Definition: GeomAPI_Edge.cpp:444
GEOMAPI_EXPORT void vertices(std::shared_ptr< GeomAPI_Vertex > &theStartVertex, std::shared_ptr< GeomAPI_Vertex > &theEndVertex) const
Return vertices of the edge;.
Definition: GeomAPI_Edge.cpp:74
GEOMAPI_EXPORT void setRange(const double &theFirst, const double &theLast)
Change parametric range of the curve.
Definition: GeomAPI_Edge.cpp:314
GEOMAPI_EXPORT GeomAPI_Edge()
Makes an undefined Edge (no geometry).
Definition: GeomAPI_Edge.cpp:57
GEOMAPI_EXPORT bool isClosed() const
Returns true if the edge is closed (like full circle)
Definition: GeomAPI_Edge.cpp:430
GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Circ > circle() const
Returns a circle if edge is based on the circle curve.
Definition: GeomAPI_Edge.cpp:215
GEOMAPI_EXPORT bool isBSpline() const
Verifies that the edge is based on a B-spline curve.
Definition: GeomAPI_Edge.cpp:183
GEOMAPI_EXPORT void intersectWithPlane(const std::shared_ptr< GeomAPI_Pln > thePlane, std::list< std::shared_ptr< GeomAPI_Pnt > > &theResult) const
Returns list of intersection points if the edge has intersections with the given plane.
Definition: GeomAPI_Edge.cpp:374
GEOMAPI_EXPORT bool isLine() const
Verifies that the edge is a line.
Definition: GeomAPI_Edge.cpp:116
GEOMAPI_EXPORT std::shared_ptr< GeomAPI_Pnt > lastPoint()
Returns the Last vertex coordinates of the edge.
Definition: GeomAPI_Edge.cpp:205
GEOMAPI_EXPORT double length() const
Returns edge length.
Definition: GeomAPI_Edge.cpp:422
GEOMAPI_EXPORT bool isArc() const
Verifies that the edge is an arc of circle.
Definition: GeomAPI_Edge.cpp:158
GEOMAPI_EXPORT bool isCircle() const
Verifies that the edge is a circle.
Definition: GeomAPI_Edge.cpp:145
Ellipse in 3D.
Definition: GeomAPI_Ellipse.h:41
Line in 3D.
Definition: GeomAPI_Lin.h:35
\Plane in 3D place, defined by normal, center and x-direction.
Definition: GeomAPI_Pln.h:38
3D point defined by three coordinates
Definition: GeomAPI_Pnt.h:38
Interface to the topological shape object.
Definition: GeomAPI_Shape.h:43
Interface to the vertex object.
Definition: GeomAPI_Vertex.h:31