b311480e |
1 | -- Created on: 1994-06-07 |
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 | |
7fd59977 |
21 | |
22 | |
23 | |
24 | |
25 | class Pipe from BRepFill |
26 | |
27 | ---Purpose: Create a shape by sweeping a shape (the profile) |
28 | -- along a wire (the spine). |
29 | -- |
30 | -- For each edge or vertex from the spine the user |
31 | -- may ask for the shape generated from each subshape |
32 | -- of the profile. |
33 | |
34 | uses |
35 | |
36 | HArray2OfShape from TopTools, |
37 | LocationLaw from BRepFill, |
38 | Shape from TopoDS, |
39 | Face from TopoDS, |
40 | Wire from TopoDS, |
41 | Edge from TopoDS, |
42 | Vertex from TopoDS, |
43 | Pnt from gp, |
44 | Trsf from gp |
45 | |
46 | |
47 | raises |
48 | DomainError from Standard, |
49 | NotDone from StdFail |
50 | |
51 | is |
52 | |
53 | Create returns Pipe from BRepFill; |
54 | |
55 | Create ( Spine : Wire from TopoDS; |
56 | Profile : Shape from TopoDS; |
57 | GeneratePartCase : Boolean from Standard = Standard_False) |
58 | returns Pipe from BRepFill; |
59 | |
60 | Perform (me : in out; Spine : Wire from TopoDS; |
61 | Profile : Shape from TopoDS; |
62 | GeneratePartCase : Boolean from Standard = Standard_False) |
63 | is static; |
64 | |
65 | Spine(me) returns Shape from TopoDS |
66 | ---C++ : return const & |
67 | is static; |
68 | |
69 | Profile(me) returns Shape from TopoDS |
70 | ---C++ : return const & |
71 | is static; |
72 | |
73 | Shape(me) returns Shape from TopoDS |
74 | ---C++ : return const & |
75 | is static; |
76 | |
77 | FirstShape(me) returns Shape from TopoDS |
78 | ---C++ : return const & |
79 | is static; |
80 | |
81 | LastShape(me) returns Shape from TopoDS |
82 | ---C++ : return const & |
83 | is static; |
84 | |
85 | Face(me : in out; ESpine, EProfile : Edge from TopoDS) |
86 | returns Face from TopoDS |
87 | ---Purpose: Returns the face created from an edge of the spine |
88 | -- and an edge of the profile. |
89 | raises |
90 | DomainError from Standard |
91 | ---Purpose: if the edges are not in the spine or the profile |
92 | |
93 | is static; |
94 | |
95 | Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS) |
96 | returns Edge from TopoDS |
97 | ---Purpose: Returns the edge created from an edge of the spine |
98 | -- and a vertex of the profile. |
99 | raises |
100 | DomainError from Standard |
101 | ---Purpose: if the edge or the vertex are not in the spine or |
102 | -- the profile. |
103 | |
104 | is static; |
105 | |
106 | Section(me; VSpine : Vertex from TopoDS) |
107 | returns Shape from TopoDS |
108 | ---Purpose: Returns the shape created from the profile at the |
109 | -- position of the vertex VSpine. |
110 | raises |
111 | DomainError from Standard |
112 | ---Purpose: if the vertex is not in the Spine |
113 | is static; |
114 | |
115 | |
116 | PipeLine(me; Point : Pnt from gp) |
117 | ---Purpose: Create a Wire by sweeping the Point along the <spine> |
118 | returns Wire from TopoDS |
119 | raises |
120 | DomainError from Standard |
121 | ---Purpose: if the <Spine> is undefined |
122 | is static; |
123 | |
124 | |
125 | -- |
126 | -- Private methods |
127 | -- |
128 | |
129 | MakeShape(me : in out; S : Shape from TopoDS; |
130 | FirstShape, LastShape : Shape from TopoDS) |
131 | returns Shape from TopoDS |
132 | ---Purpose: Auxiliary recursive method used to build the |
133 | -- result. |
134 | is static private; |
135 | |
136 | |
137 | FindEdge(me; S : Shape from TopoDS; |
138 | E : Edge from TopoDS; |
139 | Init : in out Integer) |
140 | ---Purpose: Auxiliary recursive method used to find the edge's index |
141 | returns Integer |
142 | is static private; |
143 | |
144 | FindVertex(me; S : Shape from TopoDS; |
145 | V : Vertex from TopoDS; |
146 | Init : in out Integer) |
147 | returns Integer |
148 | is static private; |
149 | |
150 | DefineRealSegmax(me : in out) |
151 | is static private; |
152 | |
153 | |
154 | fields |
155 | mySpine : Wire from TopoDS; |
156 | myProfile : Shape from TopoDS; |
157 | myShape : Shape from TopoDS; |
158 | myTrsf : Trsf from gp; |
159 | myLoc : LocationLaw from BRepFill; |
160 | mySections: HArray2OfShape from TopTools; |
161 | myFaces : HArray2OfShape from TopTools; |
162 | myEdges : HArray2OfShape from TopTools; |
163 | myFirst : Shape from TopoDS; |
164 | myLast : Shape from TopoDS; |
165 | |
166 | myDegmax : Integer from Standard; |
167 | mySegmax : Integer from Standard; |
168 | end Pipe; |