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.
17 #include <BRepBuilderAPI_MakeEdge.ixx>
19 //=======================================================================
20 //function : BRepBuilderAPI_MakeEdge
22 //=======================================================================
24 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge()
27 //=======================================================================
28 //function : BRepBuilderAPI_MakeEdge
30 //=======================================================================
32 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1,
33 const TopoDS_Vertex& V2)
36 if ( myMakeEdge.IsDone()) {
38 myShape = myMakeEdge.Shape();
43 //=======================================================================
44 //function : BRepBuilderAPI_MakeEdge
46 //=======================================================================
48 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Pnt& P1,
52 if ( myMakeEdge.IsDone()) {
54 myShape = myMakeEdge.Shape();
59 //=======================================================================
60 //function : BRepBuilderAPI_MakeEdge
62 //=======================================================================
64 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L)
67 if ( myMakeEdge.IsDone()) {
69 myShape = myMakeEdge.Shape();
74 //=======================================================================
75 //function : BRepBuilderAPI_MakeEdge
77 //=======================================================================
79 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
80 const Standard_Real p1,
81 const Standard_Real p2)
84 if ( myMakeEdge.IsDone()) {
86 myShape = myMakeEdge.Shape();
91 //=======================================================================
92 //function : BRepBuilderAPI_MakeEdge
94 //=======================================================================
96 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
101 if ( myMakeEdge.IsDone()) {
103 myShape = myMakeEdge.Shape();
108 //=======================================================================
109 //function : BRepBuilderAPI_MakeEdge
111 //=======================================================================
113 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
114 const TopoDS_Vertex& V1,
115 const TopoDS_Vertex& V2)
116 : myMakeEdge(L,V1,V2)
118 if ( myMakeEdge.IsDone()) {
120 myShape = myMakeEdge.Shape();
125 //=======================================================================
126 //function : BRepBuilderAPI_MakeEdge
128 //=======================================================================
130 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C)
133 if ( myMakeEdge.IsDone()) {
135 myShape = myMakeEdge.Shape();
140 //=======================================================================
141 //function : BRepBuilderAPI_MakeEdge
143 //=======================================================================
145 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C,
146 const Standard_Real p1,
147 const Standard_Real p2)
148 : myMakeEdge(C,p1,p2)
150 if ( myMakeEdge.IsDone()) {
152 myShape = myMakeEdge.Shape();
157 //=======================================================================
158 //function : BRepBuilderAPI_MakeEdge
160 //=======================================================================
162 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C ,
165 : myMakeEdge(C,P1,P2)
167 if ( myMakeEdge.IsDone()) {
169 myShape = myMakeEdge.Shape();
174 //=======================================================================
175 //function : BRepBuilderAPI_MakeEdge
177 //=======================================================================
179 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C,
180 const TopoDS_Vertex& V1,
181 const TopoDS_Vertex& V2)
182 : myMakeEdge(C,V1,V2)
184 if ( myMakeEdge.IsDone()) {
186 myShape = myMakeEdge.Shape();
191 //=======================================================================
192 //function : BRepBuilderAPI_MakeEdge
194 //=======================================================================
196 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E)
199 if ( myMakeEdge.IsDone()) {
201 myShape = myMakeEdge.Shape();
206 //=======================================================================
207 //function : BRepBuilderAPI_MakeEdge
209 //=======================================================================
211 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
212 const Standard_Real p1,
213 const Standard_Real p2)
214 : myMakeEdge(E,p1,p2)
216 if ( myMakeEdge.IsDone()) {
218 myShape = myMakeEdge.Shape();
223 //=======================================================================
224 //function : BRepBuilderAPI_MakeEdge
226 //=======================================================================
228 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
231 : myMakeEdge(E,P1,P2)
233 if ( myMakeEdge.IsDone()) {
235 myShape = myMakeEdge.Shape();
240 //=======================================================================
241 //function : BRepBuilderAPI_MakeEdge
243 //=======================================================================
245 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
246 const TopoDS_Vertex& V1,
247 const TopoDS_Vertex& V2)
248 : myMakeEdge(E,V1,V2)
250 if ( myMakeEdge.IsDone()) {
252 myShape = myMakeEdge.Shape();
257 //=======================================================================
258 //function : BRepBuilderAPI_MakeEdge
260 //=======================================================================
262 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H)
265 if ( myMakeEdge.IsDone()) {
267 myShape = myMakeEdge.Shape();
272 //=======================================================================
273 //function : BRepBuilderAPI_MakeEdge
275 //=======================================================================
277 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
278 const Standard_Real p1,
279 const Standard_Real p2)
280 : myMakeEdge(H,p1,p2)
282 if ( myMakeEdge.IsDone()) {
284 myShape = myMakeEdge.Shape();
289 //=======================================================================
290 //function : BRepBuilderAPI_MakeEdge
292 //=======================================================================
294 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
297 : myMakeEdge(H,P1,P2)
299 if ( myMakeEdge.IsDone()) {
301 myShape = myMakeEdge.Shape();
306 //=======================================================================
307 //function : BRepBuilderAPI_MakeEdge
309 //=======================================================================
311 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
312 const TopoDS_Vertex& V1,
313 const TopoDS_Vertex& V2)
314 : myMakeEdge(H,V1,V2)
316 if ( myMakeEdge.IsDone()) {
318 myShape = myMakeEdge.Shape();
323 //=======================================================================
324 //function : BRepBuilderAPI_MakeEdge
326 //=======================================================================
328 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P)
331 if ( myMakeEdge.IsDone()) {
333 myShape = myMakeEdge.Shape();
338 //=======================================================================
339 //function : BRepBuilderAPI_MakeEdge
341 //=======================================================================
343 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
344 const Standard_Real p1,
345 const Standard_Real p2)
346 : myMakeEdge(P,p1,p2)
348 if ( myMakeEdge.IsDone()) {
350 myShape = myMakeEdge.Shape();
355 //=======================================================================
356 //function : BRepBuilderAPI_MakeEdge
358 //=======================================================================
360 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
363 : myMakeEdge(P,P1,P2)
365 if ( myMakeEdge.IsDone()) {
367 myShape = myMakeEdge.Shape();
372 //=======================================================================
373 //function : BRepBuilderAPI_MakeEdge
375 //=======================================================================
377 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
378 const TopoDS_Vertex& V1,
379 const TopoDS_Vertex& V2)
380 : myMakeEdge(P,V1,V2)
382 if ( myMakeEdge.IsDone()) {
384 myShape = myMakeEdge.Shape();
389 //=======================================================================
390 //function : BRepBuilderAPI_MakeEdge
392 //=======================================================================
394 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L)
397 if ( myMakeEdge.IsDone()) {
399 myShape = myMakeEdge.Shape();
404 //=======================================================================
405 //function : BRepBuilderAPI_MakeEdge
407 //=======================================================================
409 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
410 const Standard_Real p1,
411 const Standard_Real p2)
412 : myMakeEdge(L,p1,p2)
414 if ( myMakeEdge.IsDone()) {
416 myShape = myMakeEdge.Shape();
421 //=======================================================================
422 //function : BRepBuilderAPI_MakeEdge
424 //=======================================================================
426 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
429 : myMakeEdge(L,P1,P2)
431 if ( myMakeEdge.IsDone()) {
433 myShape = myMakeEdge.Shape();
437 //=======================================================================
438 //function : BRepBuilderAPI_MakeEdge
440 //=======================================================================
442 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
443 const TopoDS_Vertex& V1,
444 const TopoDS_Vertex& V2)
445 : myMakeEdge(L,V1,V2)
447 if ( myMakeEdge.IsDone()) {
449 myShape = myMakeEdge.Shape();
454 //=======================================================================
455 //function : BRepBuilderAPI_MakeEdge
457 //=======================================================================
459 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
462 const Standard_Real p1,
463 const Standard_Real p2)
464 : myMakeEdge(L,P1,P2,p1,p2)
466 if ( myMakeEdge.IsDone()) {
468 myShape = myMakeEdge.Shape();
473 //=======================================================================
474 //function : BRepBuilderAPI_MakeEdge
476 //=======================================================================
478 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
479 const TopoDS_Vertex& V1,
480 const TopoDS_Vertex& V2,
481 const Standard_Real p1,
482 const Standard_Real p2)
483 : myMakeEdge(L,V1,V2,p1,p2)
485 if ( myMakeEdge.IsDone()) {
487 myShape = myMakeEdge.Shape();
492 //=======================================================================
493 //function : BRepBuilderAPI_MakeEdge
495 //=======================================================================
497 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
498 const Handle(Geom_Surface)& S)
501 if ( myMakeEdge.IsDone()) {
503 myShape = myMakeEdge.Shape();
508 //=======================================================================
509 //function : BRepBuilderAPI_MakeEdge
511 //=======================================================================
513 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
514 const Handle(Geom_Surface)& S,
515 const Standard_Real p1,
516 const Standard_Real p2)
517 : myMakeEdge(L,S,p1,p2)
519 if ( myMakeEdge.IsDone()) {
521 myShape = myMakeEdge.Shape();
526 //=======================================================================
527 //function : BRepBuilderAPI_MakeEdge
529 //=======================================================================
531 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
532 const Handle(Geom_Surface)& S,
535 : myMakeEdge(L,S,P1,P2)
537 if ( myMakeEdge.IsDone()) {
539 myShape = myMakeEdge.Shape();
543 //=======================================================================
544 //function : BRepBuilderAPI_MakeEdge
546 //=======================================================================
548 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
549 const Handle(Geom_Surface)& S,
550 const TopoDS_Vertex& V1,
551 const TopoDS_Vertex& V2)
552 : myMakeEdge(L,S,V1,V2)
554 if ( myMakeEdge.IsDone()) {
556 myShape = myMakeEdge.Shape();
561 //=======================================================================
562 //function : BRepBuilderAPI_MakeEdge
564 //=======================================================================
566 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
567 const Handle(Geom_Surface)& S,
570 const Standard_Real p1,
571 const Standard_Real p2)
572 : myMakeEdge(L,S,P1,P2,p1,p2)
574 if ( myMakeEdge.IsDone()) {
576 myShape = myMakeEdge.Shape();
581 //=======================================================================
582 //function : BRepBuilderAPI_MakeEdge
584 //=======================================================================
586 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
587 const Handle(Geom_Surface)& S,
588 const TopoDS_Vertex& V1,
589 const TopoDS_Vertex& V2,
590 const Standard_Real p1,
591 const Standard_Real p2)
592 : myMakeEdge(L,S,V1,V2,p1,p2)
594 if ( myMakeEdge.IsDone()) {
596 myShape = myMakeEdge.Shape();
601 //=======================================================================
604 //=======================================================================
606 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C)
609 if ( myMakeEdge.IsDone()) {
611 myShape = myMakeEdge.Shape();
616 //=======================================================================
619 //=======================================================================
621 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
622 const Standard_Real p1,
623 const Standard_Real p2)
625 myMakeEdge.Init(C,p1,p2);
626 if ( myMakeEdge.IsDone()) {
628 myShape = myMakeEdge.Shape();
633 //=======================================================================
636 //=======================================================================
638 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
642 myMakeEdge.Init(C,P1,P2);
643 if ( myMakeEdge.IsDone()) {
645 myShape = myMakeEdge.Shape();
650 //=======================================================================
653 //=======================================================================
655 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
656 const TopoDS_Vertex& V1,
657 const TopoDS_Vertex& V2)
659 myMakeEdge.Init(C,V1,V2);
660 if ( myMakeEdge.IsDone()) {
662 myShape = myMakeEdge.Shape();
667 //=======================================================================
670 //=======================================================================
672 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
675 const Standard_Real p1,
676 const Standard_Real p2)
678 myMakeEdge.Init(C,P1,P2,p1,p2);
679 if ( myMakeEdge.IsDone()) {
681 myShape = myMakeEdge.Shape();
686 //=======================================================================
689 //=======================================================================
691 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& CC,
692 const TopoDS_Vertex& VV1,
693 const TopoDS_Vertex& VV2,
694 const Standard_Real pp1,
695 const Standard_Real pp2)
697 myMakeEdge.Init(CC,VV1,VV2,pp1,pp2);
698 if ( myMakeEdge.IsDone()) {
700 myShape = myMakeEdge.Shape();
704 //=======================================================================
707 //=======================================================================
709 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
710 const Handle(Geom_Surface)& S)
712 myMakeEdge.Init(C,S);
713 if ( myMakeEdge.IsDone()) {
715 myShape = myMakeEdge.Shape();
720 //=======================================================================
723 //=======================================================================
725 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
726 const Handle(Geom_Surface)& S,
727 const Standard_Real p1,
728 const Standard_Real p2)
730 myMakeEdge.Init(C,S,p1,p2);
731 if ( myMakeEdge.IsDone()) {
733 myShape = myMakeEdge.Shape();
738 //=======================================================================
741 //=======================================================================
743 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
744 const Handle(Geom_Surface)& S,
748 myMakeEdge.Init(C,S,P1,P2);
749 if ( myMakeEdge.IsDone()) {
751 myShape = myMakeEdge.Shape();
756 //=======================================================================
759 //=======================================================================
761 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
762 const Handle(Geom_Surface)& S,
763 const TopoDS_Vertex& V1,
764 const TopoDS_Vertex& V2)
766 myMakeEdge.Init(C,S,V1,V2);
767 if ( myMakeEdge.IsDone()) {
769 myShape = myMakeEdge.Shape();
774 //=======================================================================
777 //=======================================================================
779 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
780 const Handle(Geom_Surface)& S,
783 const Standard_Real p1,
784 const Standard_Real p2)
786 myMakeEdge.Init(C,S,P1,P2,p1,p2);
787 if ( myMakeEdge.IsDone()) {
789 myShape = myMakeEdge.Shape();
794 //=======================================================================
797 //=======================================================================
799 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& CC,
800 const Handle(Geom_Surface)& S,
801 const TopoDS_Vertex& VV1,
802 const TopoDS_Vertex& VV2,
803 const Standard_Real pp1,
804 const Standard_Real pp2)
806 myMakeEdge.Init(CC,S,VV1,VV2,pp1,pp2);
807 if ( myMakeEdge.IsDone()) {
809 myShape = myMakeEdge.Shape();
814 //=======================================================================
817 //=======================================================================
819 Standard_Boolean BRepBuilderAPI_MakeEdge::IsDone() const
821 return myMakeEdge.IsDone();
825 //=======================================================================
828 //=======================================================================
830 BRepBuilderAPI_EdgeError BRepBuilderAPI_MakeEdge::Error() const
832 switch ( myMakeEdge.Error()) {
834 case BRepLib_EdgeDone:
835 return BRepBuilderAPI_EdgeDone;
837 case BRepLib_PointProjectionFailed:
838 return BRepBuilderAPI_PointProjectionFailed;
840 case BRepLib_ParameterOutOfRange:
841 return BRepBuilderAPI_ParameterOutOfRange;
843 case BRepLib_DifferentPointsOnClosedCurve:
844 return BRepBuilderAPI_DifferentPointsOnClosedCurve;
846 case BRepLib_PointWithInfiniteParameter:
847 return BRepBuilderAPI_PointWithInfiniteParameter;
849 case BRepLib_DifferentsPointAndParameter:
850 return BRepBuilderAPI_DifferentsPointAndParameter;
852 case BRepLib_LineThroughIdenticPoints:
853 return BRepBuilderAPI_LineThroughIdenticPoints;
858 return BRepBuilderAPI_EdgeDone;
861 //=======================================================================
864 //=======================================================================
866 const TopoDS_Edge& BRepBuilderAPI_MakeEdge::Edge()const
868 return myMakeEdge.Edge();
872 //=======================================================================
875 //=======================================================================
877 const TopoDS_Vertex& BRepBuilderAPI_MakeEdge::Vertex1()const
879 return myMakeEdge.Vertex1();
883 //=======================================================================
886 //=======================================================================
888 const TopoDS_Vertex& BRepBuilderAPI_MakeEdge::Vertex2()const
890 return myMakeEdge.Vertex2();
895 //=======================================================================
896 //function : operator
898 //=======================================================================
900 BRepBuilderAPI_MakeEdge::operator TopoDS_Edge() const