summaryrefslogtreecommitdiff
path: root/inc/BRep_Builder.hxx
blob: c4f09f07c02e82dd6b781174d40578a00acf1428 (plain)
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
264
// 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_Builder_HeaderFile
#define _BRep_Builder_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _TopoDS_Builder_HeaderFile
#include <TopoDS_Builder.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Poly_Triangulation_HeaderFile
#include <Handle_Poly_Triangulation.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
#ifndef _Handle_Poly_Polygon3D_HeaderFile
#include <Handle_Poly_Polygon3D.hxx>
#endif
#ifndef _Handle_Poly_PolygonOnTriangulation_HeaderFile
#include <Handle_Poly_PolygonOnTriangulation.hxx>
#endif
#ifndef _Handle_Geom2d_Curve_HeaderFile
#include <Handle_Geom2d_Curve.hxx>
#endif
#ifndef _Handle_Poly_Polygon2D_HeaderFile
#include <Handle_Poly_Polygon2D.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
class Standard_NullObject;
class Standard_DomainError;
class TopoDS_Face;
class Geom_Surface;
class TopLoc_Location;
class Poly_Triangulation;
class TopoDS_Edge;
class Geom_Curve;
class Poly_Polygon3D;
class Poly_PolygonOnTriangulation;
class Geom2d_Curve;
class gp_Pnt2d;
class Poly_Polygon2D;
class TopoDS_Vertex;
class gp_Pnt;


//! A framework providing advanced tolerance control. <br>
//! If tolerance control is required, you are advised to: <br>
//! 1. build a default precision for topology, using the <br>
//! classes provided in the BRepAPI package <br>
//! 2. update the tolerance of the resulting shape. <br>
//! Note that only vertices, edges and faces have <br>
//! meaningful tolerance control. The tolerance value <br>
//! must always comply with the condition that face <br>
//! tolerances are more restrictive than edge tolerances <br>
//! which are more restrictive than vertex tolerances. In <br>
//! other words: Tol(Vertex) >= Tol(Edge) >= Tol(Face). <br>
//! Other rules in setting tolerance include: <br>
//! - you can open up tolerance but should never restrict it <br>
//! - an edge cannot be included within the fusion of the <br>
//!   tolerance spheres of two vertices <br>
class BRep_Builder  : public TopoDS_Builder {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Makes an undefined Face. <br>
        void MakeFace(TopoDS_Face& F) const;
  //! Makes a Face with a surface. <br>
  Standard_EXPORT     void MakeFace(TopoDS_Face& F,const Handle(Geom_Surface)& S,const Standard_Real Tol) const;
  //! Makes a Face with a surface and a location. <br>
  Standard_EXPORT     void MakeFace(TopoDS_Face& F,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Makes a Face with a triangulation. The triangulation <br>
//!          is in the same reference system than the TFace. <br>
//! <br>
  Standard_EXPORT     void MakeFace(TopoDS_Face& F,const Handle(Poly_Triangulation)& T) const;
  //! Updates the face F using the tolerance value Tol, <br>
//! surface S and location Location. <br>
  Standard_EXPORT     void UpdateFace(const TopoDS_Face& F,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Changes a  face triangulation. <br>
//! <br>
//!          A null Triangulation removes the triangulation. <br>
//! <br>
  Standard_EXPORT     void UpdateFace(const TopoDS_Face& F,const Handle(Poly_Triangulation)& T) const;
  //! Updates the face Tolerance. <br>
  Standard_EXPORT     void UpdateFace(const TopoDS_Face& F,const Standard_Real Tol) const;
  //! Sets the  NaturalRestriction flag of  the face. <br>
  Standard_EXPORT     void NaturalRestriction(const TopoDS_Face& F,const Standard_Boolean N) const;
  //! Makes an undefined Edge (no geometry). <br>
  Standard_EXPORT     void MakeEdge(TopoDS_Edge& E) const;
  //! Makes an Edge with a curve. <br>
        void MakeEdge(TopoDS_Edge& E,const Handle(Geom_Curve)& C,const Standard_Real Tol) const;
  //! Makes an Edge with a curve and a location. <br>
        void MakeEdge(TopoDS_Edge& E,const Handle(Geom_Curve)& C,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Makes an Edge with a polygon 3d. <br>
        void MakeEdge(TopoDS_Edge& E,const Handle(Poly_Polygon3D)& P) const;
  //! makes an Edge polygon on Triangulation. <br>
        void MakeEdge(TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N,const Handle(Poly_Triangulation)& T) const;
  //! makes an Edge polygon on Triangulation. <br>
        void MakeEdge(TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N,const Handle(Poly_Triangulation)& T,const TopLoc_Location& L) const;
  //! Sets a 3D curve for the edge. <br>
//!          If <C> is a null handle, remove any existing 3d curve. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom_Curve)& C,const Standard_Real Tol) const;
  //! Sets a 3D curve for the edge. <br>
//!          If <C> is a null handle, remove any existing 3d curve. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom_Curve)& C,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Sets a pcurve for the edge on the face. <br>
//!          If <C> is a null handle, remove any existing pcurve. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C,const TopoDS_Face& F,const Standard_Real Tol) const;
  //! Sets pcurves for the edge on the  closed face.  If <br>
//!          <C1> or <C2> is a null handle, remove any existing <br>
//!          pcurve. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C1,const Handle(Geom2d_Curve)& C2,const TopoDS_Face& F,const Standard_Real Tol) const;
  //! Sets a pcurve for the edge on the face. <br>
//!          If <C> is a null handle, remove any existing pcurve. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Sets a pcurve for the edge on the face. <br>
//!          If <C> is a null handle, remove any existing pcurve. <br>
//!          Sets UV bounds for curve repsentation <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol,const gp_Pnt2d& Pf,const gp_Pnt2d& Pl) const;
  //! Sets pcurves for the edge on the closed surface. <br>
//!          <C1> or <C2> is a null handle, remove any existing <br>
//!          pcurve. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C1,const Handle(Geom2d_Curve)& C2,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Sets pcurves for the edge on the closed surface. <br>
//!          <C1> or <C2> is a null handle, remove any existing <br>
//!          pcurve. <br>
//!          Sets UV bounds for curve repsentation <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Geom2d_Curve)& C1,const Handle(Geom2d_Curve)& C2,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol,const gp_Pnt2d& Pf,const gp_Pnt2d& Pl) const;
  //! Changes an Edge 3D polygon. <br>
//!          A null Polygon removes the 3d Polygon. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon3D)& P) const;
  //! Changes an Edge 3D polygon. <br>
//!          A null Polygon removes the 3d Polygon. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon3D)& P,const TopLoc_Location& L) const;
  //! Changes an Edge polygon on Triangulation. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N,const Handle(Poly_Triangulation)& T) const;
  //! Changes an Edge polygon on Triangulation. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N,const Handle(Poly_Triangulation)& T,const TopLoc_Location& L) const;
  //! Changes an Edge polygon on Triangulation. <br>
        void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N1,const Handle(Poly_PolygonOnTriangulation)& N2,const Handle(Poly_Triangulation)& T) const;
  //! Changes an Edge polygon on Triangulation. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_PolygonOnTriangulation)& N1,const Handle(Poly_PolygonOnTriangulation)& N2,const Handle(Poly_Triangulation)& T,const TopLoc_Location& L) const;
  //! Changes Edge polygon on a face. <br>
//! <br>
//! <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon2D)& P,const TopoDS_Face& S) const;
  //! Changes Edge polygon on a face. <br>
//! <br>
//! <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon2D)& P,const Handle(Geom_Surface)& S,const TopLoc_Location& T) const;
  //! Changes Edge polygons on a face. <br>
//! <br>
//!          A null Polygon removes the 2d Polygon. <br>
//! <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon2D)& P1,const Handle(Poly_Polygon2D)& P2,const TopoDS_Face& S) const;
  //! Changes Edge polygons on a face. <br>
//! <br>
//!          A null Polygon removes the 2d Polygon. <br>
//! <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Handle(Poly_Polygon2D)& P1,const Handle(Poly_Polygon2D)& P2,const Handle(Geom_Surface)& S,const TopLoc_Location& L) const;
  //! Updates the edge tolerance. <br>
  Standard_EXPORT     void UpdateEdge(const TopoDS_Edge& E,const Standard_Real Tol) const;
  //! Sets the geometric continuity on the edge. <br>
  Standard_EXPORT     void Continuity(const TopoDS_Edge& E,const TopoDS_Face& F1,const TopoDS_Face& F2,const GeomAbs_Shape C) const;
  //! Sets the geometric continuity on the edge. <br>
  Standard_EXPORT     void Continuity(const TopoDS_Edge& E,const Handle(Geom_Surface)& S1,const Handle(Geom_Surface)& S2,const TopLoc_Location& L1,const TopLoc_Location& L2,const GeomAbs_Shape C) const;
  //! Sets the same parameter flag for the edge <E>. <br>
  Standard_EXPORT     void SameParameter(const TopoDS_Edge& E,const Standard_Boolean S) const;
  //! Sets the same range flag for the edge <E>. <br>
  Standard_EXPORT     void SameRange(const TopoDS_Edge& E,const Standard_Boolean S) const;
  //! Sets the degenerated flag for the edge <E>. <br>
  Standard_EXPORT     void Degenerated(const TopoDS_Edge& E,const Standard_Boolean D) const;
  //! Sets the range of the 3d curve if Only3d=TRUE, <br>
//!          otherwise sets the range to all the representations <br>
  Standard_EXPORT     void Range(const TopoDS_Edge& E,const Standard_Real First,const Standard_Real Last,const Standard_Boolean Only3d = Standard_False) const;
  //! Sets the range  of the edge  on the pcurve on  the <br>
//!          surface. <br>
  Standard_EXPORT     void Range(const TopoDS_Edge& E,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real First,const Standard_Real Last) const;
  //! Sets the range of the edge on the pcurve on the face. <br>
        void Range(const TopoDS_Edge& E,const TopoDS_Face& F,const Standard_Real First,const Standard_Real Last) const;
  //! Add  to <Eout>  the  geometric representations  of <br>
//!          <Ein>. <br>
  Standard_EXPORT     void Transfert(const TopoDS_Edge& Ein,const TopoDS_Edge& Eout) const;
  //! Makes an udefined vertex without geometry. <br>
        void MakeVertex(TopoDS_Vertex& V) const;
  //! Makes a vertex from a 3D point. <br>
        void MakeVertex(TopoDS_Vertex& V,const gp_Pnt& P,const Standard_Real Tol) const;
  //! Sets a 3D point on the vertex. <br>
  Standard_EXPORT     void UpdateVertex(const TopoDS_Vertex& V,const gp_Pnt& P,const Standard_Real Tol) const;
  //! Sets  the parameter  for the   vertex on the  edge <br>
//!          curves. <br>
  Standard_EXPORT     void UpdateVertex(const TopoDS_Vertex& V,const Standard_Real P,const TopoDS_Edge& E,const Standard_Real Tol) const;
  //! Sets  the parameter  for the  vertex  on the  edge <br>
//!          pcurve  on the face. <br>
        void UpdateVertex(const TopoDS_Vertex& V,const Standard_Real P,const TopoDS_Edge& E,const TopoDS_Face& F,const Standard_Real Tol) const;
  //! Sets  the parameter  for the  vertex  on the  edge <br>
//!          pcurve  on the surface. <br>
  Standard_EXPORT     void UpdateVertex(const TopoDS_Vertex& V,const Standard_Real P,const TopoDS_Edge& E,const Handle(Geom_Surface)& S,const TopLoc_Location& L,const Standard_Real Tol) const;
  //! Sets the parameters for the vertex on the face. <br>
  Standard_EXPORT     void UpdateVertex(const TopoDS_Vertex& Ve,const Standard_Real U,const Standard_Real V,const TopoDS_Face& F,const Standard_Real Tol) const;
  //! Updates the vertex tolerance. <br>
  Standard_EXPORT     void UpdateVertex(const TopoDS_Vertex& V,const Standard_Real Tol) const;
  //! Transfert the parameters  of   Vin on  Ein as  the <br>
//!          parameter of Vout on Eout. <br>
  Standard_EXPORT     void Transfert(const TopoDS_Edge& Ein,const TopoDS_Edge& Eout,const TopoDS_Vertex& Vin,const TopoDS_Vertex& Vout) const;





protected:





private:





};


#include <BRep_Builder.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif