0024157: Parallelization of assembly part of BO
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI_MakeEdge2d.cxx
1 // Created on: 1993-07-23
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21
22 #include <BRepBuilderAPI_MakeEdge2d.ixx>
23
24
25 //=======================================================================
26 //function : BRepBuilderAPI_MakeEdge2d
27 //purpose  : 
28 //=======================================================================
29
30 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const TopoDS_Vertex& V1, 
31                                        const TopoDS_Vertex& V2)
32 : myMakeEdge2d(V1,V2)
33 {
34   if ( myMakeEdge2d.IsDone()) {
35     Done();
36     myShape = myMakeEdge2d.Shape();
37   }
38 }
39
40 //=======================================================================
41 //function : BRepBuilderAPI_MakeEdge2d
42 //purpose  : 
43 //=======================================================================
44
45 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Pnt2d& P1, 
46                                        const gp_Pnt2d& P2)
47 : myMakeEdge2d(P1,P2)
48 {
49   if ( myMakeEdge2d.IsDone()) {
50     Done();
51     myShape = myMakeEdge2d.Shape();
52   }
53 }
54
55
56 //=======================================================================
57 //function : BRepBuilderAPI_MakeEdge2d
58 //purpose  : 
59 //=======================================================================
60
61 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L)
62 : myMakeEdge2d(L)
63 {
64   if ( myMakeEdge2d.IsDone()) {
65     Done();
66     myShape = myMakeEdge2d.Shape();
67   }
68 }
69
70 //=======================================================================
71 //function : BRepBuilderAPI_MakeEdge2d
72 //purpose  : 
73 //=======================================================================
74
75 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, 
76                                        const Standard_Real p1, 
77                                        const Standard_Real p2)
78 : myMakeEdge2d(L,p1,p2)
79 {
80   if ( myMakeEdge2d.IsDone()) {
81     Done();
82     myShape = myMakeEdge2d.Shape();
83   }
84 }
85
86 //=======================================================================
87 //function : BRepBuilderAPI_MakeEdge2d
88 //purpose  : 
89 //=======================================================================
90
91 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, 
92                                        const gp_Pnt2d& P1, 
93                                        const gp_Pnt2d& P2)
94 : myMakeEdge2d(L,P1,P2)
95 {
96   if ( myMakeEdge2d.IsDone()) {
97     Done();
98     myShape = myMakeEdge2d.Shape();
99   }
100 }
101
102 //=======================================================================
103 //function : BRepBuilderAPI_MakeEdge2d
104 //purpose  : 
105 //=======================================================================
106
107 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, 
108                                        const TopoDS_Vertex& V1, 
109                                        const TopoDS_Vertex& V2)
110 : myMakeEdge2d(L,V1,V2)
111 {
112   if ( myMakeEdge2d.IsDone()) {
113     Done();
114     myShape = myMakeEdge2d.Shape();
115   }
116 }
117
118 //=======================================================================
119 //function : BRepBuilderAPI_MakeEdge2d
120 //purpose  : 
121 //=======================================================================
122
123 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& C) 
124 : myMakeEdge2d(C)
125 {
126   if ( myMakeEdge2d.IsDone()) {
127     Done();
128     myShape = myMakeEdge2d.Shape();
129   }
130 }
131
132 //=======================================================================
133 //function : BRepBuilderAPI_MakeEdge2d
134 //purpose  : 
135 //=======================================================================
136
137 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& C,
138                                        const Standard_Real p1,
139                                        const Standard_Real p2)
140 :myMakeEdge2d(C,p1,p2)
141 {
142   if ( myMakeEdge2d.IsDone()) {
143     Done();
144     myShape = myMakeEdge2d.Shape();
145   }
146 }
147
148 //=======================================================================
149 //function : BRepBuilderAPI_MakeEdge2d
150 //purpose  : 
151 //=======================================================================
152
153 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& C,
154                                        const gp_Pnt2d& P1,
155                                        const gp_Pnt2d& P2)
156 : myMakeEdge2d(C,P1,P2)
157 {
158   if ( myMakeEdge2d.IsDone()) {
159     Done();
160     myShape = myMakeEdge2d.Shape();
161   }
162 }
163
164 //=======================================================================
165 //function : BRepBuilderAPI_MakeEdge2d
166 //purpose  : 
167 //=======================================================================
168
169 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& C,
170                                        const TopoDS_Vertex& V1,
171                                        const TopoDS_Vertex& V2)
172 : myMakeEdge2d(C,V1,V2)
173 {
174   if ( myMakeEdge2d.IsDone()) {
175     Done();
176     myShape = myMakeEdge2d.Shape();
177   }
178 }
179
180 //=======================================================================
181 //function : BRepBuilderAPI_MakeEdge2d
182 //purpose  : 
183 //=======================================================================
184
185 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& E) 
186 : myMakeEdge2d(E)
187 {
188   if ( myMakeEdge2d.IsDone()) {
189     Done();
190     myShape = myMakeEdge2d.Shape();
191   }
192 }
193
194 //=======================================================================
195 //function : BRepBuilderAPI_MakeEdge2d
196 //purpose  : 
197 //=======================================================================
198
199 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& E,
200                                        const Standard_Real p1,
201                                        const Standard_Real p2)
202 : myMakeEdge2d(E,p1,p2)
203 {
204   if ( myMakeEdge2d.IsDone()) {
205     Done();
206     myShape = myMakeEdge2d.Shape();
207   }
208 }
209
210 //=======================================================================
211 //function : BRepBuilderAPI_MakeEdge2d
212 //purpose  : 
213 //=======================================================================
214
215 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& E,
216                                        const gp_Pnt2d& P1,
217                                        const gp_Pnt2d& P2)
218 : myMakeEdge2d(E,P1,P2)
219 {
220   if ( myMakeEdge2d.IsDone()) {
221     Done();
222     myShape = myMakeEdge2d.Shape();
223   }
224 }
225
226 //=======================================================================
227 //function : BRepBuilderAPI_MakeEdge2d
228 //purpose  : 
229 //=======================================================================
230
231 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& E,
232                                        const TopoDS_Vertex& V1,
233                                        const TopoDS_Vertex& V2)
234 : myMakeEdge2d(E,V1,V2)
235 {
236   if ( myMakeEdge2d.IsDone()) {
237     Done();
238     myShape = myMakeEdge2d.Shape();
239   }
240 }
241
242 //=======================================================================
243 //function : BRepBuilderAPI_MakeEdge2d
244 //purpose  : 
245 //=======================================================================
246
247 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& H)
248 : myMakeEdge2d(H)
249 {
250   if ( myMakeEdge2d.IsDone()) {
251     Done();
252     myShape = myMakeEdge2d.Shape();
253   }
254 }
255
256 //=======================================================================
257 //function : BRepBuilderAPI_MakeEdge2d
258 //purpose  : 
259 //=======================================================================
260
261 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& H,
262                                        const Standard_Real p1,
263                                        const Standard_Real p2)
264 : myMakeEdge2d(H,p1,p2)
265 {
266   if ( myMakeEdge2d.IsDone()) {
267     Done();
268     myShape = myMakeEdge2d.Shape();
269   }
270 }
271
272 //=======================================================================
273 //function : BRepBuilderAPI_MakeEdge2d
274 //purpose  : 
275 //=======================================================================
276
277 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& H,
278                                        const gp_Pnt2d& P1,
279                                        const gp_Pnt2d& P2)
280 : myMakeEdge2d(H,P1,P2)
281 {
282   if ( myMakeEdge2d.IsDone()) {
283     Done();
284     myShape = myMakeEdge2d.Shape();
285   }
286 }
287
288 //=======================================================================
289 //function : BRepBuilderAPI_MakeEdge2d
290 //purpose  : 
291 //=======================================================================
292
293 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& H,
294                                        const TopoDS_Vertex& V1,
295                                        const TopoDS_Vertex& V2)
296 : myMakeEdge2d(H,V1,V2)
297 {
298   if ( myMakeEdge2d.IsDone()) {
299     Done();
300     myShape = myMakeEdge2d.Shape();
301   }
302 }
303
304 //=======================================================================
305 //function : BRepBuilderAPI_MakeEdge2d
306 //purpose  : 
307 //=======================================================================
308
309 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& P)
310 : myMakeEdge2d(P)
311 {
312   if ( myMakeEdge2d.IsDone()) {
313     Done();
314     myShape = myMakeEdge2d.Shape();
315   }
316 }
317
318 //=======================================================================
319 //function : BRepBuilderAPI_MakeEdge2d
320 //purpose  : 
321 //=======================================================================
322
323 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& P,
324                                        const Standard_Real p1,
325                                        const Standard_Real p2)
326 : myMakeEdge2d(P,p1,p2)
327 {
328   if ( myMakeEdge2d.IsDone()) {
329     Done();
330     myShape = myMakeEdge2d.Shape();
331   }
332 }
333
334 //=======================================================================
335 //function : BRepBuilderAPI_MakeEdge2d
336 //purpose  : 
337 //=======================================================================
338
339 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& P,
340                                        const gp_Pnt2d& P1,
341                                        const gp_Pnt2d& P2)
342 : myMakeEdge2d(P,P1,P2)
343 {
344   if ( myMakeEdge2d.IsDone()) {
345     Done();
346     myShape = myMakeEdge2d.Shape();
347   }
348 }
349
350 //=======================================================================
351 //function : BRepBuilderAPI_MakeEdge2d
352 //purpose  : 
353 //=======================================================================
354
355 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& P,
356                                        const TopoDS_Vertex& V1,
357                                        const TopoDS_Vertex& V2)
358 : myMakeEdge2d(P,V1,V2)
359 {
360   if ( myMakeEdge2d.IsDone()) {
361     Done();
362     myShape = myMakeEdge2d.Shape();
363   }
364 }
365
366 //=======================================================================
367 //function : BRepBuilderAPI_MakeEdge2d
368 //purpose  : 
369 //=======================================================================
370
371 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L)
372 : myMakeEdge2d(L)
373 {
374   if ( myMakeEdge2d.IsDone()) {
375     Done();
376     myShape = myMakeEdge2d.Shape();
377   }
378 }
379
380 //=======================================================================
381 //function : BRepBuilderAPI_MakeEdge2d
382 //purpose  : 
383 //=======================================================================
384
385 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L,
386                                        const Standard_Real p1,
387                                        const Standard_Real p2)
388 : myMakeEdge2d(L,p1,p2)
389 {
390   if ( myMakeEdge2d.IsDone()) {
391     Done();
392     myShape = myMakeEdge2d.Shape();
393   }
394 }
395
396 //=======================================================================
397 //function : BRepBuilderAPI_MakeEdge2d
398 //purpose  : 
399 //=======================================================================
400
401 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L,
402                                        const gp_Pnt2d& P1,
403                                        const gp_Pnt2d& P2)
404 : myMakeEdge2d(L,P1,P2)
405 {
406   if ( myMakeEdge2d.IsDone()) {
407     Done();
408     myShape = myMakeEdge2d.Shape();
409   }
410 }
411
412 //=======================================================================
413 //function : BRepBuilderAPI_MakeEdge2d
414 //purpose  : 
415 //=======================================================================
416
417 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L,
418                                        const TopoDS_Vertex& V1,
419                                        const TopoDS_Vertex& V2)
420 : myMakeEdge2d(L,V1,V2)
421 {
422   if ( myMakeEdge2d.IsDone()) {
423     Done();
424     myShape = myMakeEdge2d.Shape();
425   }
426 }
427
428 //=======================================================================
429 //function : BRepBuilderAPI_MakeEdge2d
430 //purpose  : 
431 //=======================================================================
432
433 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L,
434                                        const gp_Pnt2d& P1,
435                                        const gp_Pnt2d& P2,
436                                        const Standard_Real p1,
437                                        const Standard_Real p2)
438 : myMakeEdge2d(L,P1,P2,p1,p2)
439 {
440   if ( myMakeEdge2d.IsDone()) {
441     Done();
442     myShape = myMakeEdge2d.Shape();
443   }
444 }
445
446 //=======================================================================
447 //function : BRepBuilderAPI_MakeEdge2d
448 //purpose  : 
449 //=======================================================================
450
451 BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L,
452                                        const TopoDS_Vertex& V1,
453                                        const TopoDS_Vertex& V2,
454                                        const Standard_Real p1,
455                                        const Standard_Real p2)
456 : myMakeEdge2d(L,V1,V2,p1,p2)
457 {
458   if ( myMakeEdge2d.IsDone()) {
459     Done();
460     myShape = myMakeEdge2d.Shape();
461   }
462 }
463
464 //=======================================================================
465 //function : Init
466 //purpose  : 
467 //=======================================================================
468
469 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& C)
470 {
471   myMakeEdge2d.Init(C);
472   if ( myMakeEdge2d.IsDone()) {
473     Done();
474     myShape = myMakeEdge2d.Shape();
475   }
476 }
477
478 //=======================================================================
479 //function : Init
480 //purpose  : 
481 //=======================================================================
482
483 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& C,
484                                const Standard_Real p1,
485                                const Standard_Real p2)
486 {
487   myMakeEdge2d.Init(C,p1,p2);
488   if ( myMakeEdge2d.IsDone()) {
489     Done();
490     myShape = myMakeEdge2d.Shape();
491   }
492 }
493
494 //=======================================================================
495 //function : Init
496 //purpose  : 
497 //=======================================================================
498
499 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& C,
500                                const gp_Pnt2d& P1,
501                                const gp_Pnt2d& P2)
502 {
503   myMakeEdge2d.Init(C,P1,P2);
504   if ( myMakeEdge2d.IsDone()) {
505     Done();
506     myShape = myMakeEdge2d.Shape();
507   }
508 }
509
510 //=======================================================================
511 //function : Init
512 //purpose  : 
513 //=======================================================================
514
515 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& C,
516                                const TopoDS_Vertex& V1,
517                                const TopoDS_Vertex& V2)
518 {
519   myMakeEdge2d.Init(C,V1,V2);
520   if ( myMakeEdge2d.IsDone()) {
521     Done();
522     myShape = myMakeEdge2d.Shape();
523   }
524 }
525
526
527 //=======================================================================
528 //function : Init
529 //purpose  : 
530 //=======================================================================
531
532 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& C,
533                                const gp_Pnt2d& P1,
534                                const gp_Pnt2d& P2,
535                                const Standard_Real p1,
536                                const Standard_Real p2)
537 {
538   myMakeEdge2d.Init(C,P1,P2,p1,p2);
539   if ( myMakeEdge2d.IsDone()) {
540     Done();
541     myShape = myMakeEdge2d.Shape();
542   }
543 }
544
545
546 //=======================================================================
547 //function : Init
548 //purpose  : 
549 //=======================================================================
550
551 void  BRepBuilderAPI_MakeEdge2d::Init(const Handle(Geom2d_Curve)& CC,
552                                const TopoDS_Vertex& VV1,
553                                const TopoDS_Vertex& VV2,
554                                const Standard_Real pp1,
555                                const Standard_Real pp2)
556 {
557   myMakeEdge2d.Init(CC,VV1,VV2,pp1,pp2);
558   if ( myMakeEdge2d.IsDone()) {
559     Done();
560     myShape = myMakeEdge2d.Shape();
561   }
562 }
563
564 //=======================================================================
565 //function : IsDone
566 //purpose  : 
567 //=======================================================================
568
569 Standard_Boolean BRepBuilderAPI_MakeEdge2d::IsDone() const
570 {
571   return myMakeEdge2d.IsDone();
572 }
573
574
575 //=======================================================================
576 //function : Error
577 //purpose  : 
578 //=======================================================================
579
580 BRepBuilderAPI_EdgeError BRepBuilderAPI_MakeEdge2d::Error() const
581 {
582   switch ( myMakeEdge2d.Error()) {
583
584   case BRepLib_EdgeDone:
585     return BRepBuilderAPI_EdgeDone;
586
587   case BRepLib_PointProjectionFailed:
588     return BRepBuilderAPI_PointProjectionFailed;
589
590   case BRepLib_ParameterOutOfRange:
591     return BRepBuilderAPI_ParameterOutOfRange;
592
593   case BRepLib_DifferentPointsOnClosedCurve:
594     return BRepBuilderAPI_DifferentPointsOnClosedCurve;
595
596   case BRepLib_PointWithInfiniteParameter:
597     return BRepBuilderAPI_PointWithInfiniteParameter;
598
599   case BRepLib_DifferentsPointAndParameter:
600     return BRepBuilderAPI_DifferentsPointAndParameter;
601
602   case BRepLib_LineThroughIdenticPoints:
603     return BRepBuilderAPI_LineThroughIdenticPoints;
604
605   }
606
607   // portage WNT
608   return BRepBuilderAPI_EdgeDone;
609 }
610
611 //=======================================================================
612 //function : Edge
613 //purpose  : 
614 //=======================================================================
615
616 const TopoDS_Edge&  BRepBuilderAPI_MakeEdge2d::Edge()const 
617 {
618   return myMakeEdge2d.Edge();
619 }
620
621
622 //=======================================================================
623 //function : Vertex1
624 //purpose  : 
625 //=======================================================================
626
627 const TopoDS_Vertex&  BRepBuilderAPI_MakeEdge2d::Vertex1()const 
628 {
629   return myMakeEdge2d.Vertex1();
630 }
631
632
633 //=======================================================================
634 //function : Vertex2
635 //purpose  : 
636 //=======================================================================
637
638 const TopoDS_Vertex&  BRepBuilderAPI_MakeEdge2d::Vertex2()const 
639 {
640   return myMakeEdge2d.Vertex2();
641 }
642
643
644
645 //=======================================================================
646 //function : operator
647 //purpose  : 
648 //=======================================================================
649
650 BRepBuilderAPI_MakeEdge2d::operator TopoDS_Edge() const
651 {
652   return Edge();
653 }