1 -- Created on: 1994-06-07
2 -- Created by: Bruno DUMORTIER
3 -- Copyright (c) 1994-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.
18 class Pipe from BRepFill
20 ---Purpose: Create a shape by sweeping a shape (the profile)
21 -- along a wire (the spine).
23 -- For each edge or vertex from the spine the user
24 -- may ask for the shape generated from each subshape
29 HArray2OfShape from TopTools,
30 MapOfShape from TopTools,
31 DataMapOfShapeHArray2OfShape from BRepFill,
32 LocationLaw from BRepFill,
41 Trihedron from GeomFill
44 DomainError from Standard,
49 Create returns Pipe from BRepFill;
51 Create ( Spine : Wire from TopoDS;
52 Profile : Shape from TopoDS;
53 aMode : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet;
54 ForceApproxC1 : Boolean from Standard = Standard_False;
55 GeneratePartCase : Boolean from Standard = Standard_False)
56 returns Pipe from BRepFill;
58 Perform (me : in out; Spine : Wire from TopoDS;
59 Profile : Shape from TopoDS;
60 GeneratePartCase : Boolean from Standard = Standard_False)
63 Spine(me) returns Shape from TopoDS
64 ---C++ : return const &
67 Profile(me) returns Shape from TopoDS
68 ---C++ : return const &
71 Shape(me) returns Shape from TopoDS
72 ---C++ : return const &
75 FirstShape(me) returns Shape from TopoDS
76 ---C++ : return const &
79 LastShape(me) returns Shape from TopoDS
80 ---C++ : return const &
83 Face(me : in out; ESpine, EProfile : Edge from TopoDS)
84 returns Face from TopoDS
85 ---Purpose: Returns the face created from an edge of the spine
86 -- and an edge of the profile.
88 DomainError from Standard
89 ---Purpose: if the edges are not in the spine or the profile
93 Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS)
94 returns Edge from TopoDS
95 ---Purpose: Returns the edge created from an edge of the spine
96 -- and a vertex of the profile.
98 DomainError from Standard
99 ---Purpose: if the edge or the vertex are not in the spine or
104 Section(me; VSpine : Vertex from TopoDS)
105 returns Shape from TopoDS
106 ---Purpose: Returns the shape created from the profile at the
107 -- position of the vertex VSpine.
109 DomainError from Standard
110 ---Purpose: if the vertex is not in the Spine
114 PipeLine(me : in out; Point : Pnt from gp)
115 ---Purpose: Create a Wire by sweeping the Point along the <spine>
116 returns Wire from TopoDS
118 DomainError from Standard
119 ---Purpose: if the <Spine> is undefined
127 MakeShape(me : in out; S : Shape from TopoDS;
128 FirstShape, LastShape : Shape from TopoDS)
129 returns Shape from TopoDS
130 ---Purpose: Auxiliary recursive method used to build the
135 FindEdge(me; S : Shape from TopoDS;
136 E : Edge from TopoDS;
137 Init : in out Integer)
138 ---Purpose: Auxiliary recursive method used to find the edge's index
142 FindVertex(me; S : Shape from TopoDS;
143 V : Vertex from TopoDS;
144 Init : in out Integer)
148 DefineRealSegmax(me : in out)
151 RebuildTopOrBottomFace(me; aFace: Shape from TopoDS;
152 IsTop: Boolean from Standard)
155 ShareFaces(me: in out; theShape: Shape from TopoDS;
156 theInitialFacesLen: Integer;
157 theInitialEdgesLen: Integer;
158 theInitialSectionsLen: Integer)
159 ---Purpose: Performs sharing coincident faces in theShape. Also modifies
160 -- myFaces, mySections and myEdges to contain shared shapes.
161 -- Returns the shared shape. If theShape is not modified this
162 -- method returns it.
163 returns Shape from TopoDS
167 mySpine : Wire from TopoDS;
168 myProfile : Shape from TopoDS;
169 myShape : Shape from TopoDS;
170 myTrsf : Trsf from gp;
171 myLoc : LocationLaw from BRepFill;
172 mySections: HArray2OfShape from TopTools;
173 myFaces : HArray2OfShape from TopTools;
174 myEdges : HArray2OfShape from TopTools;
175 myReversedEdges : MapOfShape from TopTools;
176 myTapes : DataMapOfShapeHArray2OfShape from BRepFill;
177 myRails : DataMapOfShapeHArray2OfShape from BRepFill;
178 myCurIndexOfSectionEdge : Integer from Standard;
179 myFirst : Shape from TopoDS;
180 myLast : Shape from TopoDS;
182 myDegmax : Integer from Standard;
183 mySegmax : Integer from Standard;
184 myContinuity : Shape from GeomAbs;
185 myMode : Trihedron from GeomFill;
186 myForceApproxC1 : Boolean from Standard;