File: BRep_Tool.hxx

package info (click to toggle)
oce 0.18.2-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 301,460 kB
  • sloc: cpp: 1,190,610; ansic: 67,225; sh: 11,667; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 344; xml: 292; perl: 37
file content (263 lines) | stat: -rw-r--r-- 12,394 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _BRep_Tool_HeaderFile
#define _BRep_Tool_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>

#include <Standard_Boolean.hxx>
#include <Handle_Geom_Surface.hxx>
#include <Handle_Poly_Triangulation.hxx>
#include <Standard_Real.hxx>
#include <Handle_Geom_Curve.hxx>
#include <Handle_Poly_Polygon3D.hxx>
#include <Handle_Geom2d_Curve.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Poly_Polygon2D.hxx>
#include <Handle_Poly_PolygonOnTriangulation.hxx>
#include <GeomAbs_Shape.hxx>
class Standard_NullObject;
class Standard_NoSuchObject;
class TopoDS_Shape;
class Geom_Surface;
class TopoDS_Face;
class TopLoc_Location;
class Poly_Triangulation;
class TopoDS_Edge;
class Geom_Curve;
class Poly_Polygon3D;
class Geom2d_Curve;
class Poly_Polygon2D;
class Poly_PolygonOnTriangulation;
class gp_Pnt2d;
class gp_Pnt;
class TopoDS_Vertex;


//! Provides class methods  to  access to the geometry
//! of BRep shapes.
class BRep_Tool 
{
public:

  DEFINE_STANDARD_ALLOC

  
  //! If S is Shell, returns True if it has no free boundaries (edges).
  //! If S is Wire, returns True if it has no free ends (vertices).
  //! (Internal and External sub-shepes are ignored in these checks)
  //! If S is Edge, returns True if its vertices are the same.
  //! For other shape types returns S.Closed().
  Standard_EXPORT static   Standard_Boolean IsClosed (const TopoDS_Shape& S) ;
  
  //! Returns the geometric surface of the face. Returns
  //! in <L> the location for the surface.
  Standard_EXPORT static  const  Handle(Geom_Surface)& Surface (const TopoDS_Face& F, TopLoc_Location& L) ;
  
  //! Returns the geometric  surface of the face. It can
  //! be a copy if there is a Location.
  Standard_EXPORT static   Handle(Geom_Surface) Surface (const TopoDS_Face& F) ;
  
  //! Returns  the Triangulation of  the  face. It  is a
  //! null handle if there is no triangulation.
  Standard_EXPORT static  const  Handle(Poly_Triangulation)& Triangulation (const TopoDS_Face& F, TopLoc_Location& L) ;
  
  //! Returns the tolerance of the face.
  Standard_EXPORT static   Standard_Real Tolerance (const TopoDS_Face& F) ;
  
  //! Returns the  NaturalRestriction  flag of the  face.
  Standard_EXPORT static   Standard_Boolean NaturalRestriction (const TopoDS_Face& F) ;
  
  //! Returns True if <E> is a 3d curve or a curve on
  //! surface.
  Standard_EXPORT static   Standard_Boolean IsGeometric (const TopoDS_Edge& E) ;
  
  //! Returns the 3D curve  of the edge.  May be  a Null
  //! handle. Returns in <L> the location for the curve.
  //! In <First> and <Last> the parameter range.
  Standard_EXPORT static  const  Handle(Geom_Curve)& Curve (const TopoDS_Edge& E, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last) ;
  
  //! Returns the 3D curve  of the edge. May be a Null handle.
  //! In <First> and <Last> the parameter range.
  //! It can be a copy if there is a Location.
  Standard_EXPORT static   Handle(Geom_Curve) Curve (const TopoDS_Edge& E, Standard_Real& First, Standard_Real& Last) ;
  
  //! Returns the 3D polygon of the edge. May be   a Null
  //! handle. Returns in <L> the location for the polygon.
  Standard_EXPORT static  const  Handle(Poly_Polygon3D)& Polygon3D (const TopoDS_Edge& E, TopLoc_Location& L) ;
  
  //! Returns the curve  associated to the  edge in  the
  //! parametric  space of  the  face.  Returns   a NULL
  //! handle  if this curve  does not exist.  Returns in
  //! <First> and <Last> the parameter range.
  Standard_EXPORT static   Handle(Geom2d_Curve) CurveOnSurface (const TopoDS_Edge& E, const TopoDS_Face& F, Standard_Real& First, Standard_Real& Last) ;
  
  //! Returns the  curve associated to   the edge in the
  //! parametric  space of the   surface. Returns a NULL
  //! handle  if this curve does  not exist.  Returns in
  //! <First> and <Last> the parameter range.
  Standard_EXPORT static   Handle(Geom2d_Curve) CurveOnSurface (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, Standard_Real& First, Standard_Real& Last) ;
  
  //! Returns in <C>, <S>, <L> a 2d curve, a surface and
  //! a location for the edge <E>. <C> and <S>  are null
  //! if the  edge has no curve on  surface.  Returns in
  //! <First> and <Last> the parameter range.
  Standard_EXPORT static   void CurveOnSurface (const TopoDS_Edge& E, Handle(Geom2d_Curve)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last) ;
  
  //! Returns in <C>, <S>, <L> the 2d curve, the surface
  //! and the location for the edge <E> of rank <Index>.
  //! <C> and <S> are null if the index is out of range.
  //! Returns in <First> and <Last> the parameter range.
  Standard_EXPORT static   void CurveOnSurface (const TopoDS_Edge& E, Handle(Geom2d_Curve)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last, const Standard_Integer Index) ;
  
  //! Returns the polygon associated to the  edge in  the
  //! parametric  space of  the  face.  Returns   a NULL
  //! handle  if this polygon  does not exist.
  Standard_EXPORT static   Handle(Poly_Polygon2D) PolygonOnSurface (const TopoDS_Edge& E, const TopoDS_Face& F) ;
  
  //! Returns the polygon associated to the  edge in  the
  //! parametric  space of  the surface. Returns   a NULL
  //! handle  if this polygon  does not exist.
  Standard_EXPORT static   Handle(Poly_Polygon2D) PolygonOnSurface (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L) ;
  
  //! Returns in <C>, <S>, <L> a 2d curve, a surface and
  //! a location for the edge <E>. <C> and <S>  are null
  //! if the  edge has no polygon on  surface.
  Standard_EXPORT static   void PolygonOnSurface (const TopoDS_Edge& E, Handle(Poly_Polygon2D)& C, Handle(Geom_Surface)& S, TopLoc_Location& L) ;
  
  //! Returns in <C>, <S>, <L> the 2d curve, the surface
  //! and the location for the edge <E> of rank <Index>.
  //! <C> and <S> are null if the index is out of range.
  Standard_EXPORT static   void PolygonOnSurface (const TopoDS_Edge& E, Handle(Poly_Polygon2D)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, const Standard_Integer Index) ;
  
  //! Returns the polygon associated to the  edge in  the
  //! parametric  space of  the  face.  Returns   a NULL
  //! handle  if this polygon  does not exist.
  Standard_EXPORT static  const  Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation (const TopoDS_Edge& E, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) ;
  
  //! Returns in <P>, <T>, <L> a polygon on triangulation, a
  //! triangulation and a location for the edge <E>.
  //! <P>  and  <T>  are null  if  the  edge has no
  //! polygon on  triangulation.
  Standard_EXPORT static   void PolygonOnTriangulation (const TopoDS_Edge& E, Handle(Poly_PolygonOnTriangulation)& P, Handle(Poly_Triangulation)& T, TopLoc_Location& L) ;
  
  //! Returns   in   <P>,  <T>,    <L> a     polygon  on
  //! triangulation,   a triangulation  and a  location for
  //! the edge <E> for the range index.  <C> and <S> are
  //! null if the edge has no polygon on triangulation.
  Standard_EXPORT static   void PolygonOnTriangulation (const TopoDS_Edge& E, Handle(Poly_PolygonOnTriangulation)& P, Handle(Poly_Triangulation)& T, TopLoc_Location& L, const Standard_Integer Index) ;
  
  //! Returns  True  if  <E>  has  two  PCurves  in  the
  //! parametric space of <F>. i.e.  <F>  is on a closed
  //! surface and <E> is on the closing curve.
  Standard_EXPORT static   Standard_Boolean IsClosed (const TopoDS_Edge& E, const TopoDS_Face& F) ;
  
  //! Returns  True  if  <E>  has  two  PCurves  in  the
  //! parametric space  of <S>.  i.e.   <S>  is a closed
  //! surface and <E> is on the closing curve.
  Standard_EXPORT static   Standard_Boolean IsClosed (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L) ;
  
  //! Returns  True  if <E> has two arrays of indices in
  //! the triangulation <T>.
  Standard_EXPORT static   Standard_Boolean IsClosed (const TopoDS_Edge& E, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) ;
  
  //! Returns the tolerance for <E>.
  Standard_EXPORT static   Standard_Real Tolerance (const TopoDS_Edge& E) ;
  
  //! Returns the SameParameter flag for the edge.
  Standard_EXPORT static   Standard_Boolean SameParameter (const TopoDS_Edge& E) ;
  
  //! Returns the SameRange flag for the edge.
  Standard_EXPORT static   Standard_Boolean SameRange (const TopoDS_Edge& E) ;
  
  //! Returns True  if the edge is degenerated.
  Standard_EXPORT static   Standard_Boolean Degenerated (const TopoDS_Edge& E) ;
  
  //! Gets the range of the 3d curve.
  Standard_EXPORT static   void Range (const TopoDS_Edge& E, Standard_Real& First, Standard_Real& Last) ;
  
  //! Gets the range  of the edge  on the pcurve on  the
  //! surface.
  Standard_EXPORT static   void Range (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, Standard_Real& First, Standard_Real& Last) ;
  
  //! Gets the range of the edge on the pcurve on the face.
  Standard_EXPORT static   void Range (const TopoDS_Edge& E, const TopoDS_Face& F, Standard_Real& First, Standard_Real& Last) ;
  
  //! Gets the UV locations of the extremities of the edge.
  Standard_EXPORT static   void UVPoints (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, gp_Pnt2d& PFirst, gp_Pnt2d& PLast) ;
  
  //! Gets the UV locations of the extremities of the edge.
  Standard_EXPORT static   void UVPoints (const TopoDS_Edge& E, const TopoDS_Face& F, gp_Pnt2d& PFirst, gp_Pnt2d& PLast) ;
  
  //! Sets the UV locations of the extremities of the edge.
  Standard_EXPORT static   void SetUVPoints (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const gp_Pnt2d& PFirst, const gp_Pnt2d& PLast) ;
  
  //! Sets the UV locations of the extremities of the edge.
  Standard_EXPORT static   void SetUVPoints (const TopoDS_Edge& E, const TopoDS_Face& F, const gp_Pnt2d& PFirst, const gp_Pnt2d& PLast) ;
  
  //! Returns True if the edge is on the surfaces of the
  //! two faces.
  Standard_EXPORT static   Standard_Boolean HasContinuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2) ;
  
  //! Returns the continuity.
  Standard_EXPORT static   GeomAbs_Shape Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2) ;
  
  //! Returns True if the edge is on the surfaces.
  Standard_EXPORT static   Standard_Boolean HasContinuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) ;
  
  //! Returns the continuity.
  Standard_EXPORT static   GeomAbs_Shape Continuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) ;
  
  //! Returns True if the edge has regularity on some
  //! two surfaces
  Standard_EXPORT static   Standard_Boolean HasContinuity (const TopoDS_Edge& E) ;
  
  //! Returns the 3d point.
  Standard_EXPORT static   gp_Pnt Pnt (const TopoDS_Vertex& V) ;
  
  //! Returns the tolerance.
  Standard_EXPORT static   Standard_Real Tolerance (const TopoDS_Vertex& V) ;
  
  //! Returns the parameter of <V> on <E>.
  Standard_EXPORT static   Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E) ;
  
  //! Returns the  parameters  of   the  vertex   on the
  //! pcurve of the edge on the face.
  Standard_EXPORT static   Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E, const TopoDS_Face& F) ;
  
  //! Returns the  parameters  of   the  vertex   on the
  //! pcurve of the edge on the surface.
  Standard_EXPORT static   Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L) ;
  
  //! Returns the parameters of the vertex on the face.
  Standard_EXPORT static   gp_Pnt2d Parameters (const TopoDS_Vertex& V, const TopoDS_Face& F) ;




protected:





private:





};







#endif // _BRep_Tool_HeaderFile