0023024: Update headers of OCCT files
[occt.git] / src / BRepOffsetAPI / BRepOffsetAPI_MakePipe.cxx
1 // Created on: 1994-07-12
2 // Created by: Bruno DUMORTIER
3 // Copyright (c) 1994-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 <BRepOffsetAPI_MakePipe.ixx>
23
24 #include <TopExp_Explorer.hxx>
25 #include <TopoDS_Face.hxx>
26 #include <TopoDS_Edge.hxx>
27 #include <TopoDS_Vertex.hxx>
28 #include <TopoDS.hxx>
29 #include <TopAbs_ShapeEnum.hxx>
30
31 //=======================================================================
32 //function : BRepOffsetAPI_MakePipe
33 //purpose  : 
34 //=======================================================================
35
36 BRepOffsetAPI_MakePipe::BRepOffsetAPI_MakePipe(const TopoDS_Wire&  Spine ,
37                                    const TopoDS_Shape& Profile)
38      : myPipe(Spine, Profile)
39 {
40   Build();
41 }
42
43 //=======================================================================
44 //function : Pipe
45 //purpose  : 
46 //=======================================================================
47
48 const BRepFill_Pipe& BRepOffsetAPI_MakePipe::Pipe() const
49 {
50   return myPipe;
51 }
52
53
54 //=======================================================================
55 //function : Build
56 //purpose  : 
57 //=======================================================================
58
59 void BRepOffsetAPI_MakePipe::Build() 
60 {
61   myShape = myPipe.Shape();
62   Done();
63 }
64
65
66 //=======================================================================
67 //function : FirstShape
68 //purpose  : 
69 //=======================================================================
70
71 TopoDS_Shape BRepOffsetAPI_MakePipe::FirstShape()
72 {
73   return myPipe.FirstShape();
74 }
75
76
77 //=======================================================================
78 //function : LastShape
79 //purpose  : 
80 //=======================================================================
81
82 TopoDS_Shape BRepOffsetAPI_MakePipe::LastShape()
83 {
84   return myPipe.LastShape();
85 }
86
87
88 //=======================================================================
89 //function : Generated
90 //purpose  : 
91 //=======================================================================
92
93 TopoDS_Shape BRepOffsetAPI_MakePipe::Generated (const TopoDS_Shape& SSpine,
94                                           const TopoDS_Shape& SProfile)
95 {
96   if (SProfile.ShapeType () == TopAbs_EDGE) {
97     return myPipe.Face (TopoDS::Edge (SSpine), TopoDS::Edge (SProfile));
98   }
99   else if (SProfile.ShapeType () == TopAbs_VERTEX) {
100     return myPipe.Edge (TopoDS::Edge (SSpine), TopoDS::Vertex (SProfile));
101   }
102
103 //POP pour NT
104   TopoDS_Shape bid;
105   return bid;
106 }
107