0022492: Scaled sphere (Solid with BSplineSurface) is wrongly exported in STEP.
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI_MakeFace.cxx
1 // File:        BRepBuilderAPI_MakeFace.cxx
2 // Created:     Fri Jul 23 15:51:48 1993
3 // Author:      Remi LEQUETTE
4 //              <rle@nonox>
5
6
7 #include <BRepBuilderAPI_MakeFace.ixx>
8
9
10 //=======================================================================
11 //function : BRepBuilderAPI_MakeFace
12 //purpose  : 
13 //=======================================================================
14
15 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace()
16 {
17 }
18
19
20 //=======================================================================
21 //function : BRepBuilderAPI_MakeFace
22 //purpose  : 
23 //=======================================================================
24
25 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Face& F)
26 : myMakeFace(F)
27 {
28   if ( myMakeFace.IsDone()) {
29     Done();
30     myShape = myMakeFace.Shape();
31   }
32 }
33
34
35 //=======================================================================
36 //function : BRepBuilderAPI_MakeFace
37 //purpose  : 
38 //=======================================================================
39
40 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P)
41 : myMakeFace(P)
42 {
43   if ( myMakeFace.IsDone()) {
44     Done();
45     myShape = myMakeFace.Shape();
46   }
47 }
48
49
50 //=======================================================================
51 //function : BRepBuilderAPI_MakeFace
52 //purpose  : 
53 //=======================================================================
54
55 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C)
56 : myMakeFace(C)
57 {
58   if ( myMakeFace.IsDone()) {
59     Done();
60     myShape = myMakeFace.Shape();
61   }
62 }
63
64
65 //=======================================================================
66 //function : BRepBuilderAPI_MakeFace
67 //purpose  : 
68 //=======================================================================
69
70 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C)
71 : myMakeFace(C)
72 {
73   if ( myMakeFace.IsDone()) {
74     Done();
75     myShape = myMakeFace.Shape();
76   }
77 }
78
79
80 //=======================================================================
81 //function : BRepBuilderAPI_MakeFace
82 //purpose  : 
83 //=======================================================================
84
85 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S)
86 : myMakeFace(S)
87 {
88   if ( myMakeFace.IsDone()) {
89     Done();
90     myShape = myMakeFace.Shape();
91   }
92 }
93
94
95 //=======================================================================
96 //function : BRepBuilderAPI_MakeFace
97 //purpose  : 
98 //=======================================================================
99
100 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T)
101 : myMakeFace(T)
102 {
103   if ( myMakeFace.IsDone()) {
104     Done();
105     myShape = myMakeFace.Shape();
106   }
107 }
108
109
110 //=======================================================================
111 //function : BRepBuilderAPI_MakeFace
112 //purpose  : 
113 //=======================================================================
114
115 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S,
116                                                  const Standard_Real TolDegen)
117 : myMakeFace(S, TolDegen)
118 {
119   if ( myMakeFace.IsDone()) {
120     Done();
121     myShape = myMakeFace.Shape();
122   }
123 }
124
125
126 //=======================================================================
127 //function : BRepBuilderAPI_MakeFace
128 //purpose  : 
129 //=======================================================================
130
131 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P,
132                                    const Standard_Real UMin,
133                                    const Standard_Real UMax,
134                                    const Standard_Real VMin,
135                                    const Standard_Real VMax)
136 : myMakeFace(P,UMin,UMax,VMin,VMax)
137 {
138   if ( myMakeFace.IsDone()) {
139     Done();
140     myShape = myMakeFace.Shape();
141   }
142 }
143
144
145 //=======================================================================
146 //function : BRepBuilderAPI_MakeFace
147 //purpose  : 
148 //=======================================================================
149
150 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C,
151                                    const Standard_Real UMin,
152                                    const Standard_Real UMax,
153                                    const Standard_Real VMin,
154                                    const Standard_Real VMax)
155 : myMakeFace(C,UMin,UMax,VMin,VMax)
156 {
157   if ( myMakeFace.IsDone()) {
158     Done();
159     myShape = myMakeFace.Shape();
160   }
161 }
162
163
164 //=======================================================================
165 //function : BRepBuilderAPI_MakeFace
166 //purpose  : 
167 //=======================================================================
168
169 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C,
170                                    const Standard_Real UMin,
171                                    const Standard_Real UMax,
172                                    const Standard_Real VMin,
173                                    const Standard_Real VMax)
174 : myMakeFace(C,UMin,UMax,VMin,VMax)
175 {
176   if ( myMakeFace.IsDone()) {
177     Done();
178     myShape = myMakeFace.Shape();
179   }
180 }
181
182
183 //=======================================================================
184 //function : BRepBuilderAPI_MakeFace
185 //purpose  : 
186 //=======================================================================
187
188 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S,
189                                    const Standard_Real UMin,
190                                    const Standard_Real UMax,
191                                    const Standard_Real VMin,
192                                    const Standard_Real VMax)
193 : myMakeFace(S,UMin,UMax,VMin,VMax)
194 {
195   if ( myMakeFace.IsDone()) {
196     Done();
197     myShape = myMakeFace.Shape();
198   }
199 }
200
201
202 //=======================================================================
203 //function : BRepBuilderAPI_MakeFace
204 //purpose  : 
205 //=======================================================================
206
207 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T,
208                                    const Standard_Real UMin,
209                                    const Standard_Real UMax,
210                                    const Standard_Real VMin,
211                                    const Standard_Real VMax)
212 : myMakeFace(T,UMin,UMax,VMin,VMax)
213 {
214   if ( myMakeFace.IsDone()) {
215     Done();
216     myShape = myMakeFace.Shape();
217   }
218 }
219
220
221 //=======================================================================
222 //function : BRepBuilderAPI_MakeFace
223 //purpose  : 
224 //=======================================================================
225
226 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace (const Handle(Geom_Surface)& S,
227                                                   const Standard_Real UMin,
228                                                   const Standard_Real UMax,
229                                                   const Standard_Real VMin,
230                                                   const Standard_Real VMax,
231                                                   const Standard_Real TolDegen)
232 : myMakeFace (S, UMin, UMax, VMin, VMax, TolDegen)
233 {
234   if ( myMakeFace.IsDone()) {
235     Done();
236     myShape = myMakeFace.Shape();
237   }
238 }
239
240
241 //=======================================================================
242 //function : BRepBuilderAPI_MakeFace
243 //purpose  : 
244 //=======================================================================
245
246 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Wire& W,
247                                    const Standard_Boolean OnlyPlane)
248 : myMakeFace(W,OnlyPlane)
249 {
250   if ( myMakeFace.IsDone()) {
251     Done();
252     myShape = myMakeFace.Shape();
253   }
254 }
255
256
257 //=======================================================================
258 //function : BRepBuilderAPI_MakeFace
259 //purpose  : 
260 //=======================================================================
261
262 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Pln& P,
263                                    const TopoDS_Wire& W,
264                                    const Standard_Boolean Inside)
265 : myMakeFace(P,W,Inside)
266 {
267   if ( myMakeFace.IsDone()) {
268     Done();
269     myShape = myMakeFace.Shape();
270   }
271 }
272
273
274 //=======================================================================
275 //function : BRepBuilderAPI_MakeFace
276 //purpose  : 
277 //=======================================================================
278
279 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cylinder& C,
280                                    const TopoDS_Wire& W,
281                                    const Standard_Boolean Inside)
282 : myMakeFace(C,W,Inside)
283 {
284   if ( myMakeFace.IsDone()) {
285     Done();
286     myShape = myMakeFace.Shape();
287   }
288 }
289
290
291 //=======================================================================
292 //function : BRepBuilderAPI_MakeFace
293 //purpose  : 
294 //=======================================================================
295
296 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Cone& C,
297                                    const TopoDS_Wire& W,
298                                    const Standard_Boolean Inside)
299 : myMakeFace(C,W,Inside)
300 {
301   if ( myMakeFace.IsDone()) {
302     Done();
303     myShape = myMakeFace.Shape();
304   }
305 }
306
307
308 //=======================================================================
309 //function : BRepBuilderAPI_MakeFace
310 //purpose  : 
311 //=======================================================================
312
313 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Sphere& S,
314                                    const TopoDS_Wire& W,
315                                    const Standard_Boolean Inside)
316 : myMakeFace(S,W,Inside)
317 {
318   if ( myMakeFace.IsDone()) {
319     Done();
320     myShape = myMakeFace.Shape();
321   }
322 }
323
324
325 //=======================================================================
326 //function : BRepBuilderAPI_MakeFace
327 //purpose  : 
328 //=======================================================================
329
330 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const gp_Torus& T,
331                                    const TopoDS_Wire& W,
332                                    const Standard_Boolean Inside)
333 : myMakeFace(T,W,Inside)
334 {
335   if ( myMakeFace.IsDone()) {
336     Done();
337     myShape = myMakeFace.Shape();
338   }
339 }
340
341
342 //=======================================================================
343 //function : BRepBuilderAPI_MakeFace
344 //purpose  : 
345 //=======================================================================
346
347 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S,
348                                    const TopoDS_Wire& W,
349                                    const Standard_Boolean Inside)
350 : myMakeFace(S,W,Inside)
351 {
352   if ( myMakeFace.IsDone()) {
353     Done();
354     myShape = myMakeFace.Shape();
355   }
356 }
357
358
359 //=======================================================================
360 //function : BRepBuilderAPI_MakeFace
361 //purpose  : 
362 //=======================================================================
363
364 BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace(const TopoDS_Face& F,
365                                    const TopoDS_Wire& W)
366 : myMakeFace(F,W)
367 {
368   if ( myMakeFace.IsDone()) {
369     Done();
370     myShape = myMakeFace.Shape();
371   }
372 }
373
374 //=======================================================================
375 //function : Init
376 //purpose  : 
377 //=======================================================================
378
379 void BRepBuilderAPI_MakeFace::Init(const TopoDS_Face& F)
380 {
381   myMakeFace.Init(F);
382   if ( myMakeFace.IsDone()) {
383     Done();
384     myShape = myMakeFace.Shape();
385   }
386 }
387
388 //=======================================================================
389 //function : Init
390 //purpose  : 
391 //=======================================================================
392
393 void  BRepBuilderAPI_MakeFace::Init(const Handle(Geom_Surface)& S,
394                                     const Standard_Boolean Bound,
395                                     const Standard_Real TolDegen)
396 {
397   myMakeFace.Init(S, Bound, TolDegen);
398   if ( myMakeFace.IsDone()) {
399     Done();
400     myShape = myMakeFace.Shape();
401   }
402 }
403
404
405 //=======================================================================
406 //function : Init
407 //purpose  : 
408 //=======================================================================
409
410 void  BRepBuilderAPI_MakeFace::Init (const Handle(Geom_Surface)& SS,
411                                      const Standard_Real Um,
412                                      const Standard_Real UM,
413                                      const Standard_Real Vm,
414                                      const Standard_Real VM,
415                                      const Standard_Real TolDegen)
416 {
417   myMakeFace.Init (SS, Um, UM, Vm, VM, TolDegen);
418   if ( myMakeFace.IsDone()) {
419     Done();
420     myShape = myMakeFace.Shape();
421   }
422 }
423
424
425 //=======================================================================
426 //function : Add
427 //purpose  : 
428 //=======================================================================
429
430 void  BRepBuilderAPI_MakeFace::Add(const TopoDS_Wire& W)
431 {
432   myMakeFace.Add(W);
433   if ( myMakeFace.IsDone()) {
434     Done();
435     myShape = myMakeFace.Shape();
436   }
437 }
438
439
440 //=======================================================================
441 //function : Face
442 //purpose  : 
443 //=======================================================================
444
445 const TopoDS_Face&  BRepBuilderAPI_MakeFace::Face()const 
446 {
447   return myMakeFace.Face();
448 }
449
450
451
452 //=======================================================================
453 //function : operator
454 //purpose  : 
455 //=======================================================================
456
457 BRepBuilderAPI_MakeFace::operator TopoDS_Face() const
458 {
459   return Face();
460 }
461
462 //=======================================================================
463 //function : IsDone
464 //purpose  : 
465 //=======================================================================
466
467 Standard_Boolean BRepBuilderAPI_MakeFace::IsDone() const
468 {
469   return myMakeFace.IsDone();
470 }
471
472
473 //=======================================================================
474 //function : Error
475 //purpose  : 
476 //=======================================================================
477
478 BRepBuilderAPI_FaceError BRepBuilderAPI_MakeFace::Error() const
479 {
480   switch ( myMakeFace.Error()) {
481
482   case BRepLib_FaceDone:
483     return BRepBuilderAPI_FaceDone;
484
485   case BRepLib_NoFace:
486     return BRepBuilderAPI_NoFace;
487
488   case BRepLib_NotPlanar:
489     return BRepBuilderAPI_NotPlanar;
490
491   case BRepLib_CurveProjectionFailed:
492     return BRepBuilderAPI_CurveProjectionFailed;
493
494   case BRepLib_ParametersOutOfRange:
495     return BRepBuilderAPI_ParametersOutOfRange;
496
497   }
498
499   // Portage WNT
500   return BRepBuilderAPI_FaceDone;
501 }