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
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.
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.
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.
23 #include <BRepBuilderAPI_MakeEdge.ixx>
25 //=======================================================================
26 //function : BRepBuilderAPI_MakeEdge
28 //=======================================================================
30 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge()
33 //=======================================================================
34 //function : BRepBuilderAPI_MakeEdge
36 //=======================================================================
38 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1,
39 const TopoDS_Vertex& V2)
42 if ( myMakeEdge.IsDone()) {
44 myShape = myMakeEdge.Shape();
49 //=======================================================================
50 //function : BRepBuilderAPI_MakeEdge
52 //=======================================================================
54 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Pnt& P1,
58 if ( myMakeEdge.IsDone()) {
60 myShape = myMakeEdge.Shape();
65 //=======================================================================
66 //function : BRepBuilderAPI_MakeEdge
68 //=======================================================================
70 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L)
73 if ( myMakeEdge.IsDone()) {
75 myShape = myMakeEdge.Shape();
80 //=======================================================================
81 //function : BRepBuilderAPI_MakeEdge
83 //=======================================================================
85 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
86 const Standard_Real p1,
87 const Standard_Real p2)
90 if ( myMakeEdge.IsDone()) {
92 myShape = myMakeEdge.Shape();
97 //=======================================================================
98 //function : BRepBuilderAPI_MakeEdge
100 //=======================================================================
102 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
105 : myMakeEdge(L,P1,P2)
107 if ( myMakeEdge.IsDone()) {
109 myShape = myMakeEdge.Shape();
114 //=======================================================================
115 //function : BRepBuilderAPI_MakeEdge
117 //=======================================================================
119 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Lin& L,
120 const TopoDS_Vertex& V1,
121 const TopoDS_Vertex& V2)
122 : myMakeEdge(L,V1,V2)
124 if ( myMakeEdge.IsDone()) {
126 myShape = myMakeEdge.Shape();
131 //=======================================================================
132 //function : BRepBuilderAPI_MakeEdge
134 //=======================================================================
136 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C)
139 if ( myMakeEdge.IsDone()) {
141 myShape = myMakeEdge.Shape();
146 //=======================================================================
147 //function : BRepBuilderAPI_MakeEdge
149 //=======================================================================
151 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C,
152 const Standard_Real p1,
153 const Standard_Real p2)
154 : myMakeEdge(C,p1,p2)
156 if ( myMakeEdge.IsDone()) {
158 myShape = myMakeEdge.Shape();
163 //=======================================================================
164 //function : BRepBuilderAPI_MakeEdge
166 //=======================================================================
168 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C ,
171 : myMakeEdge(C,P1,P2)
173 if ( myMakeEdge.IsDone()) {
175 myShape = myMakeEdge.Shape();
180 //=======================================================================
181 //function : BRepBuilderAPI_MakeEdge
183 //=======================================================================
185 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Circ& C,
186 const TopoDS_Vertex& V1,
187 const TopoDS_Vertex& V2)
188 : myMakeEdge(C,V1,V2)
190 if ( myMakeEdge.IsDone()) {
192 myShape = myMakeEdge.Shape();
197 //=======================================================================
198 //function : BRepBuilderAPI_MakeEdge
200 //=======================================================================
202 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E)
205 if ( myMakeEdge.IsDone()) {
207 myShape = myMakeEdge.Shape();
212 //=======================================================================
213 //function : BRepBuilderAPI_MakeEdge
215 //=======================================================================
217 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
218 const Standard_Real p1,
219 const Standard_Real p2)
220 : myMakeEdge(E,p1,p2)
222 if ( myMakeEdge.IsDone()) {
224 myShape = myMakeEdge.Shape();
229 //=======================================================================
230 //function : BRepBuilderAPI_MakeEdge
232 //=======================================================================
234 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
237 : myMakeEdge(E,P1,P2)
239 if ( myMakeEdge.IsDone()) {
241 myShape = myMakeEdge.Shape();
246 //=======================================================================
247 //function : BRepBuilderAPI_MakeEdge
249 //=======================================================================
251 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Elips& E,
252 const TopoDS_Vertex& V1,
253 const TopoDS_Vertex& V2)
254 : myMakeEdge(E,V1,V2)
256 if ( myMakeEdge.IsDone()) {
258 myShape = myMakeEdge.Shape();
263 //=======================================================================
264 //function : BRepBuilderAPI_MakeEdge
266 //=======================================================================
268 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H)
271 if ( myMakeEdge.IsDone()) {
273 myShape = myMakeEdge.Shape();
278 //=======================================================================
279 //function : BRepBuilderAPI_MakeEdge
281 //=======================================================================
283 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
284 const Standard_Real p1,
285 const Standard_Real p2)
286 : myMakeEdge(H,p1,p2)
288 if ( myMakeEdge.IsDone()) {
290 myShape = myMakeEdge.Shape();
295 //=======================================================================
296 //function : BRepBuilderAPI_MakeEdge
298 //=======================================================================
300 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
303 : myMakeEdge(H,P1,P2)
305 if ( myMakeEdge.IsDone()) {
307 myShape = myMakeEdge.Shape();
312 //=======================================================================
313 //function : BRepBuilderAPI_MakeEdge
315 //=======================================================================
317 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Hypr& H,
318 const TopoDS_Vertex& V1,
319 const TopoDS_Vertex& V2)
320 : myMakeEdge(H,V1,V2)
322 if ( myMakeEdge.IsDone()) {
324 myShape = myMakeEdge.Shape();
329 //=======================================================================
330 //function : BRepBuilderAPI_MakeEdge
332 //=======================================================================
334 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P)
337 if ( myMakeEdge.IsDone()) {
339 myShape = myMakeEdge.Shape();
344 //=======================================================================
345 //function : BRepBuilderAPI_MakeEdge
347 //=======================================================================
349 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
350 const Standard_Real p1,
351 const Standard_Real p2)
352 : myMakeEdge(P,p1,p2)
354 if ( myMakeEdge.IsDone()) {
356 myShape = myMakeEdge.Shape();
361 //=======================================================================
362 //function : BRepBuilderAPI_MakeEdge
364 //=======================================================================
366 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
369 : myMakeEdge(P,P1,P2)
371 if ( myMakeEdge.IsDone()) {
373 myShape = myMakeEdge.Shape();
378 //=======================================================================
379 //function : BRepBuilderAPI_MakeEdge
381 //=======================================================================
383 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const gp_Parab& P,
384 const TopoDS_Vertex& V1,
385 const TopoDS_Vertex& V2)
386 : myMakeEdge(P,V1,V2)
388 if ( myMakeEdge.IsDone()) {
390 myShape = myMakeEdge.Shape();
395 //=======================================================================
396 //function : BRepBuilderAPI_MakeEdge
398 //=======================================================================
400 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L)
403 if ( myMakeEdge.IsDone()) {
405 myShape = myMakeEdge.Shape();
410 //=======================================================================
411 //function : BRepBuilderAPI_MakeEdge
413 //=======================================================================
415 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
416 const Standard_Real p1,
417 const Standard_Real p2)
418 : myMakeEdge(L,p1,p2)
420 if ( myMakeEdge.IsDone()) {
422 myShape = myMakeEdge.Shape();
427 //=======================================================================
428 //function : BRepBuilderAPI_MakeEdge
430 //=======================================================================
432 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
435 : myMakeEdge(L,P1,P2)
437 if ( myMakeEdge.IsDone()) {
439 myShape = myMakeEdge.Shape();
443 //=======================================================================
444 //function : BRepBuilderAPI_MakeEdge
446 //=======================================================================
448 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
449 const TopoDS_Vertex& V1,
450 const TopoDS_Vertex& V2)
451 : myMakeEdge(L,V1,V2)
453 if ( myMakeEdge.IsDone()) {
455 myShape = myMakeEdge.Shape();
460 //=======================================================================
461 //function : BRepBuilderAPI_MakeEdge
463 //=======================================================================
465 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
468 const Standard_Real p1,
469 const Standard_Real p2)
470 : myMakeEdge(L,P1,P2,p1,p2)
472 if ( myMakeEdge.IsDone()) {
474 myShape = myMakeEdge.Shape();
479 //=======================================================================
480 //function : BRepBuilderAPI_MakeEdge
482 //=======================================================================
484 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L,
485 const TopoDS_Vertex& V1,
486 const TopoDS_Vertex& V2,
487 const Standard_Real p1,
488 const Standard_Real p2)
489 : myMakeEdge(L,V1,V2,p1,p2)
491 if ( myMakeEdge.IsDone()) {
493 myShape = myMakeEdge.Shape();
498 //=======================================================================
499 //function : BRepBuilderAPI_MakeEdge
501 //=======================================================================
503 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
504 const Handle(Geom_Surface)& S)
507 if ( myMakeEdge.IsDone()) {
509 myShape = myMakeEdge.Shape();
514 //=======================================================================
515 //function : BRepBuilderAPI_MakeEdge
517 //=======================================================================
519 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
520 const Handle(Geom_Surface)& S,
521 const Standard_Real p1,
522 const Standard_Real p2)
523 : myMakeEdge(L,S,p1,p2)
525 if ( myMakeEdge.IsDone()) {
527 myShape = myMakeEdge.Shape();
532 //=======================================================================
533 //function : BRepBuilderAPI_MakeEdge
535 //=======================================================================
537 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
538 const Handle(Geom_Surface)& S,
541 : myMakeEdge(L,S,P1,P2)
543 if ( myMakeEdge.IsDone()) {
545 myShape = myMakeEdge.Shape();
549 //=======================================================================
550 //function : BRepBuilderAPI_MakeEdge
552 //=======================================================================
554 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
555 const Handle(Geom_Surface)& S,
556 const TopoDS_Vertex& V1,
557 const TopoDS_Vertex& V2)
558 : myMakeEdge(L,S,V1,V2)
560 if ( myMakeEdge.IsDone()) {
562 myShape = myMakeEdge.Shape();
567 //=======================================================================
568 //function : BRepBuilderAPI_MakeEdge
570 //=======================================================================
572 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
573 const Handle(Geom_Surface)& S,
576 const Standard_Real p1,
577 const Standard_Real p2)
578 : myMakeEdge(L,S,P1,P2,p1,p2)
580 if ( myMakeEdge.IsDone()) {
582 myShape = myMakeEdge.Shape();
587 //=======================================================================
588 //function : BRepBuilderAPI_MakeEdge
590 //=======================================================================
592 BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L,
593 const Handle(Geom_Surface)& S,
594 const TopoDS_Vertex& V1,
595 const TopoDS_Vertex& V2,
596 const Standard_Real p1,
597 const Standard_Real p2)
598 : myMakeEdge(L,S,V1,V2,p1,p2)
600 if ( myMakeEdge.IsDone()) {
602 myShape = myMakeEdge.Shape();
607 //=======================================================================
610 //=======================================================================
612 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C)
615 if ( myMakeEdge.IsDone()) {
617 myShape = myMakeEdge.Shape();
622 //=======================================================================
625 //=======================================================================
627 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
628 const Standard_Real p1,
629 const Standard_Real p2)
631 myMakeEdge.Init(C,p1,p2);
632 if ( myMakeEdge.IsDone()) {
634 myShape = myMakeEdge.Shape();
639 //=======================================================================
642 //=======================================================================
644 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
648 myMakeEdge.Init(C,P1,P2);
649 if ( myMakeEdge.IsDone()) {
651 myShape = myMakeEdge.Shape();
656 //=======================================================================
659 //=======================================================================
661 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
662 const TopoDS_Vertex& V1,
663 const TopoDS_Vertex& V2)
665 myMakeEdge.Init(C,V1,V2);
666 if ( myMakeEdge.IsDone()) {
668 myShape = myMakeEdge.Shape();
673 //=======================================================================
676 //=======================================================================
678 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& C,
681 const Standard_Real p1,
682 const Standard_Real p2)
684 myMakeEdge.Init(C,P1,P2,p1,p2);
685 if ( myMakeEdge.IsDone()) {
687 myShape = myMakeEdge.Shape();
692 //=======================================================================
695 //=======================================================================
697 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom_Curve)& CC,
698 const TopoDS_Vertex& VV1,
699 const TopoDS_Vertex& VV2,
700 const Standard_Real pp1,
701 const Standard_Real pp2)
703 myMakeEdge.Init(CC,VV1,VV2,pp1,pp2);
704 if ( myMakeEdge.IsDone()) {
706 myShape = myMakeEdge.Shape();
710 //=======================================================================
713 //=======================================================================
715 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
716 const Handle(Geom_Surface)& S)
718 myMakeEdge.Init(C,S);
719 if ( myMakeEdge.IsDone()) {
721 myShape = myMakeEdge.Shape();
726 //=======================================================================
729 //=======================================================================
731 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
732 const Handle(Geom_Surface)& S,
733 const Standard_Real p1,
734 const Standard_Real p2)
736 myMakeEdge.Init(C,S,p1,p2);
737 if ( myMakeEdge.IsDone()) {
739 myShape = myMakeEdge.Shape();
744 //=======================================================================
747 //=======================================================================
749 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
750 const Handle(Geom_Surface)& S,
754 myMakeEdge.Init(C,S,P1,P2);
755 if ( myMakeEdge.IsDone()) {
757 myShape = myMakeEdge.Shape();
762 //=======================================================================
765 //=======================================================================
767 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
768 const Handle(Geom_Surface)& S,
769 const TopoDS_Vertex& V1,
770 const TopoDS_Vertex& V2)
772 myMakeEdge.Init(C,S,V1,V2);
773 if ( myMakeEdge.IsDone()) {
775 myShape = myMakeEdge.Shape();
780 //=======================================================================
783 //=======================================================================
785 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& C,
786 const Handle(Geom_Surface)& S,
789 const Standard_Real p1,
790 const Standard_Real p2)
792 myMakeEdge.Init(C,S,P1,P2,p1,p2);
793 if ( myMakeEdge.IsDone()) {
795 myShape = myMakeEdge.Shape();
800 //=======================================================================
803 //=======================================================================
805 void BRepBuilderAPI_MakeEdge::Init(const Handle(Geom2d_Curve)& CC,
806 const Handle(Geom_Surface)& S,
807 const TopoDS_Vertex& VV1,
808 const TopoDS_Vertex& VV2,
809 const Standard_Real pp1,
810 const Standard_Real pp2)
812 myMakeEdge.Init(CC,S,VV1,VV2,pp1,pp2);
813 if ( myMakeEdge.IsDone()) {
815 myShape = myMakeEdge.Shape();
820 //=======================================================================
823 //=======================================================================
825 Standard_Boolean BRepBuilderAPI_MakeEdge::IsDone() const
827 return myMakeEdge.IsDone();
831 //=======================================================================
834 //=======================================================================
836 BRepBuilderAPI_EdgeError BRepBuilderAPI_MakeEdge::Error() const
838 switch ( myMakeEdge.Error()) {
840 case BRepLib_EdgeDone:
841 return BRepBuilderAPI_EdgeDone;
843 case BRepLib_PointProjectionFailed:
844 return BRepBuilderAPI_PointProjectionFailed;
846 case BRepLib_ParameterOutOfRange:
847 return BRepBuilderAPI_ParameterOutOfRange;
849 case BRepLib_DifferentPointsOnClosedCurve:
850 return BRepBuilderAPI_DifferentPointsOnClosedCurve;
852 case BRepLib_PointWithInfiniteParameter:
853 return BRepBuilderAPI_PointWithInfiniteParameter;
855 case BRepLib_DifferentsPointAndParameter:
856 return BRepBuilderAPI_DifferentsPointAndParameter;
858 case BRepLib_LineThroughIdenticPoints:
859 return BRepBuilderAPI_LineThroughIdenticPoints;
864 return BRepBuilderAPI_EdgeDone;
867 //=======================================================================
870 //=======================================================================
872 const TopoDS_Edge& BRepBuilderAPI_MakeEdge::Edge()const
874 return myMakeEdge.Edge();
878 //=======================================================================
881 //=======================================================================
883 const TopoDS_Vertex& BRepBuilderAPI_MakeEdge::Vertex1()const
885 return myMakeEdge.Vertex1();
889 //=======================================================================
892 //=======================================================================
894 const TopoDS_Vertex& BRepBuilderAPI_MakeEdge::Vertex2()const
896 return myMakeEdge.Vertex2();
901 //=======================================================================
902 //function : operator
904 //=======================================================================
906 BRepBuilderAPI_MakeEdge::operator TopoDS_Edge() const