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
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.
25 class Pipe from BRepFill
27 ---Purpose: Create a shape by sweeping a shape (the profile)
28 -- along a wire (the spine).
30 -- For each edge or vertex from the spine the user
31 -- may ask for the shape generated from each subshape
36 HArray2OfShape from TopTools,
37 LocationLaw from BRepFill,
48 DomainError from Standard,
53 Create returns Pipe from BRepFill;
55 Create ( Spine : Wire from TopoDS;
56 Profile : Shape from TopoDS;
57 GeneratePartCase : Boolean from Standard = Standard_False)
58 returns Pipe from BRepFill;
60 Perform (me : in out; Spine : Wire from TopoDS;
61 Profile : Shape from TopoDS;
62 GeneratePartCase : Boolean from Standard = Standard_False)
65 Spine(me) returns Shape from TopoDS
66 ---C++ : return const &
69 Profile(me) returns Shape from TopoDS
70 ---C++ : return const &
73 Shape(me) returns Shape from TopoDS
74 ---C++ : return const &
77 FirstShape(me) returns Shape from TopoDS
78 ---C++ : return const &
81 LastShape(me) returns Shape from TopoDS
82 ---C++ : return const &
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.
90 DomainError from Standard
91 ---Purpose: if the edges are not in the spine or the profile
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.
100 DomainError from Standard
101 ---Purpose: if the edge or the vertex are not in the spine or
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.
111 DomainError from Standard
112 ---Purpose: if the vertex is not in the Spine
116 PipeLine(me; Point : Pnt from gp)
117 ---Purpose: Create a Wire by sweeping the Point along the <spine>
118 returns Wire from TopoDS
120 DomainError from Standard
121 ---Purpose: if the <Spine> is undefined
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
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
144 FindVertex(me; S : Shape from TopoDS;
145 V : Vertex from TopoDS;
146 Init : in out Integer)
150 DefineRealSegmax(me : in out)
153 ShareFaces(me: in out; theShape: Shape from TopoDS;
154 theInitialFacesLen: Integer;
155 theInitialEdgesLen: Integer;
156 theInitialSectionsLen: Integer)
157 ---Purpose: Performs sharing coincident faces in theShape. Also modifies
158 -- myFaces, mySections and myEdges to contain shared shapes.
159 -- Returns the shared shape. If theShape is not modified this
160 -- method returns it.
161 returns Shape from TopoDS
165 mySpine : Wire from TopoDS;
166 myProfile : Shape from TopoDS;
167 myShape : Shape from TopoDS;
168 myTrsf : Trsf from gp;
169 myLoc : LocationLaw from BRepFill;
170 mySections: HArray2OfShape from TopTools;
171 myFaces : HArray2OfShape from TopTools;
172 myEdges : HArray2OfShape from TopTools;
173 myFirst : Shape from TopoDS;
174 myLast : Shape from TopoDS;
176 myDegmax : Integer from Standard;
177 mySegmax : Integer from Standard;