1 // Created on: 1993-07-23
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
18 #include <BRepBuilderAPI_MakeFace.hxx>
19 #include <Geom_Surface.hxx>
20 #include <gp_Cone.hxx>
21 #include <gp_Cylinder.hxx>
23 #include <gp_Sphere.hxx>
24 #include <gp_Torus.hxx>
25 #include <TopoDS_Face.hxx>
26 #include <TopoDS_Wire.hxx>
28 //=======================================================================
29 //function : BRepBuilderAPI_MakeFace
31 //=======================================================================
32 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace()
37 //=======================================================================
38 //function : BRepBuilderAPI_MakeFace
40 //=======================================================================
42 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Face& F)
45 if ( myMakeFace.IsDone()) {
47 myShape = myMakeFace.Shape();
52 //=======================================================================
53 //function : BRepBuilderAPI_MakeFace
55 //=======================================================================
57 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P)
60 if ( myMakeFace.IsDone()) {
62 myShape = myMakeFace.Shape();
67 //=======================================================================
68 //function : BRepBuilderAPI_MakeFace
70 //=======================================================================
72 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C)
75 if ( myMakeFace.IsDone()) {
77 myShape = myMakeFace.Shape();
82 //=======================================================================
83 //function : BRepBuilderAPI_MakeFace
85 //=======================================================================
87 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C)
90 if ( myMakeFace.IsDone()) {
92 myShape = myMakeFace.Shape();
97 //=======================================================================
98 //function : BRepBuilderAPI_MakeFace
100 //=======================================================================
102 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S)
105 if ( myMakeFace.IsDone()) {
107 myShape = myMakeFace.Shape();
112 //=======================================================================
113 //function : BRepBuilderAPI_MakeFace
115 //=======================================================================
117 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T)
120 if ( myMakeFace.IsDone()) {
122 myShape = myMakeFace.Shape();
127 //=======================================================================
128 //function : BRepBuilderAPI_MakeFace
130 //=======================================================================
132 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S,
133 const Standard_Real TolDegen)
134 : myMakeFace(S, TolDegen)
136 if ( myMakeFace.IsDone()) {
138 myShape = myMakeFace.Shape();
143 //=======================================================================
144 //function : BRepBuilderAPI_MakeFace
146 //=======================================================================
148 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P,
149 const Standard_Real UMin,
150 const Standard_Real UMax,
151 const Standard_Real VMin,
152 const Standard_Real VMax)
153 : myMakeFace(P,UMin,UMax,VMin,VMax)
155 if ( myMakeFace.IsDone()) {
157 myShape = myMakeFace.Shape();
162 //=======================================================================
163 //function : BRepBuilderAPI_MakeFace
165 //=======================================================================
167 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C,
168 const Standard_Real UMin,
169 const Standard_Real UMax,
170 const Standard_Real VMin,
171 const Standard_Real VMax)
172 : myMakeFace(C,UMin,UMax,VMin,VMax)
174 if ( myMakeFace.IsDone()) {
176 myShape = myMakeFace.Shape();
181 //=======================================================================
182 //function : BRepBuilderAPI_MakeFace
184 //=======================================================================
186 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C,
187 const Standard_Real UMin,
188 const Standard_Real UMax,
189 const Standard_Real VMin,
190 const Standard_Real VMax)
191 : myMakeFace(C,UMin,UMax,VMin,VMax)
193 if ( myMakeFace.IsDone()) {
195 myShape = myMakeFace.Shape();
200 //=======================================================================
201 //function : BRepBuilderAPI_MakeFace
203 //=======================================================================
205 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S,
206 const Standard_Real UMin,
207 const Standard_Real UMax,
208 const Standard_Real VMin,
209 const Standard_Real VMax)
210 : myMakeFace(S,UMin,UMax,VMin,VMax)
212 if ( myMakeFace.IsDone()) {
214 myShape = myMakeFace.Shape();
219 //=======================================================================
220 //function : BRepBuilderAPI_MakeFace
222 //=======================================================================
224 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T,
225 const Standard_Real UMin,
226 const Standard_Real UMax,
227 const Standard_Real VMin,
228 const Standard_Real VMax)
229 : myMakeFace(T,UMin,UMax,VMin,VMax)
231 if ( myMakeFace.IsDone()) {
233 myShape = myMakeFace.Shape();
238 //=======================================================================
239 //function : BRepBuilderAPI_MakeFace
241 //=======================================================================
243 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace (const Handle(Geom_Surface)& S,
244 const Standard_Real UMin,
245 const Standard_Real UMax,
246 const Standard_Real VMin,
247 const Standard_Real VMax,
248 const Standard_Real TolDegen)
249 : myMakeFace (S, UMin, UMax, VMin, VMax, TolDegen)
251 if ( myMakeFace.IsDone()) {
253 myShape = myMakeFace.Shape();
258 //=======================================================================
259 //function : BRepBuilderAPI_MakeFace
261 //=======================================================================
263 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Wire& W,
264 const Standard_Boolean OnlyPlane)
265 : myMakeFace(W,OnlyPlane)
267 if ( myMakeFace.IsDone()) {
269 myShape = myMakeFace.Shape();
274 //=======================================================================
275 //function : BRepBuilderAPI_MakeFace
277 //=======================================================================
279 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P,
280 const TopoDS_Wire& W,
281 const Standard_Boolean Inside)
282 : myMakeFace(P,W,Inside)
284 if ( myMakeFace.IsDone()) {
286 myShape = myMakeFace.Shape();
291 //=======================================================================
292 //function : BRepBuilderAPI_MakeFace
294 //=======================================================================
296 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C,
297 const TopoDS_Wire& W,
298 const Standard_Boolean Inside)
299 : myMakeFace(C,W,Inside)
301 if ( myMakeFace.IsDone()) {
303 myShape = myMakeFace.Shape();
308 //=======================================================================
309 //function : BRepBuilderAPI_MakeFace
311 //=======================================================================
313 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C,
314 const TopoDS_Wire& W,
315 const Standard_Boolean Inside)
316 : myMakeFace(C,W,Inside)
318 if ( myMakeFace.IsDone()) {
320 myShape = myMakeFace.Shape();
325 //=======================================================================
326 //function : BRepBuilderAPI_MakeFace
328 //=======================================================================
330 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S,
331 const TopoDS_Wire& W,
332 const Standard_Boolean Inside)
333 : myMakeFace(S,W,Inside)
335 if ( myMakeFace.IsDone()) {
337 myShape = myMakeFace.Shape();
342 //=======================================================================
343 //function : BRepBuilderAPI_MakeFace
345 //=======================================================================
347 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T,
348 const TopoDS_Wire& W,
349 const Standard_Boolean Inside)
350 : myMakeFace(T,W,Inside)
352 if ( myMakeFace.IsDone()) {
354 myShape = myMakeFace.Shape();
359 //=======================================================================
360 //function : BRepBuilderAPI_MakeFace
362 //=======================================================================
364 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S,
365 const TopoDS_Wire& W,
366 const Standard_Boolean Inside)
367 : myMakeFace(S,W,Inside)
369 if ( myMakeFace.IsDone()) {
371 myShape = myMakeFace.Shape();
376 //=======================================================================
377 //function : BRepBuilderAPI_MakeFace
379 //=======================================================================
381 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Face& F,
382 const TopoDS_Wire& W)
385 if ( myMakeFace.IsDone()) {
387 myShape = myMakeFace.Shape();
391 //=======================================================================
394 //=======================================================================
396 void BRepBuilderAPI_MakeFace::Init(const TopoDS_Face& F)
399 if ( myMakeFace.IsDone()) {
401 myShape = myMakeFace.Shape();
405 //=======================================================================
408 //=======================================================================
410 void BRepBuilderAPI_MakeFace::Init(const Handle(Geom_Surface)& S,
411 const Standard_Boolean Bound,
412 const Standard_Real TolDegen)
414 myMakeFace.Init(S, Bound, TolDegen);
415 if ( myMakeFace.IsDone()) {
417 myShape = myMakeFace.Shape();
422 //=======================================================================
425 //=======================================================================
427 void BRepBuilderAPI_MakeFace::Init (const Handle(Geom_Surface)& SS,
428 const Standard_Real Um,
429 const Standard_Real UM,
430 const Standard_Real Vm,
431 const Standard_Real VM,
432 const Standard_Real TolDegen)
434 myMakeFace.Init (SS, Um, UM, Vm, VM, TolDegen);
435 if ( myMakeFace.IsDone()) {
437 myShape = myMakeFace.Shape();
442 //=======================================================================
445 //=======================================================================
447 void BRepBuilderAPI_MakeFace::Add(const TopoDS_Wire& W)
450 if ( myMakeFace.IsDone()) {
452 myShape = myMakeFace.Shape();
457 //=======================================================================
460 //=======================================================================
462 const TopoDS_Face& BRepBuilderAPI_MakeFace::Face()const
464 return myMakeFace.Face();
469 //=======================================================================
470 //function : operator
472 //=======================================================================
474 BRepBuilderAPI_MakeFace::operator TopoDS_Face() const
479 //=======================================================================
482 //=======================================================================
484 Standard_Boolean BRepBuilderAPI_MakeFace::IsDone() const
486 return myMakeFace.IsDone();
490 //=======================================================================
493 //=======================================================================
495 BRepBuilderAPI_FaceError BRepBuilderAPI_MakeFace::Error() const
497 switch ( myMakeFace.Error()) {
499 case BRepLib_FaceDone:
500 return BRepBuilderAPI_FaceDone;
503 return BRepBuilderAPI_NoFace;
505 case BRepLib_NotPlanar:
506 return BRepBuilderAPI_NotPlanar;
508 case BRepLib_CurveProjectionFailed:
509 return BRepBuilderAPI_CurveProjectionFailed;
511 case BRepLib_ParametersOutOfRange:
512 return BRepBuilderAPI_ParametersOutOfRange;
517 return BRepBuilderAPI_FaceDone;