0023024: Update headers of OCCT files
[occt.git] / src / BRepFill / BRepFill_Evolved.cdl
1 -- Created on: 1994-10-03
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
23 class Evolved from BRepFill 
24
25         ---Purpose: Constructs an evolved volume from a spine (wire or face) 
26         --          and  a profile ( wire).
27
28 uses
29     Vertex      from TopoDS,
30     Edge        from TopoDS,
31     Face        from TopoDS,
32     Wire        from TopoDS,
33     Shape       from TopoDS,
34     Location    from TopLoc,
35     Ax3         from gp,
36     JoinType    from GeomAbs,
37     ListOfShape from TopTools,
38     DataMapOfShapeShape                     from TopTools,
39     DataMapOfShapeDataMapOfShapeListOfShape from BRepFill,  
40     BisectingLocus                          from BRepMAT2d, 
41     LinkTopoBilo                            from BRepMAT2d,
42     Quilt                                   from BRepTools
43     
44     
45 raises
46     ConstructionError from Standard,
47     NoSuchObject      from Standard
48     
49 is
50
51 ---Level: Public 
52
53     Create returns Evolved from BRepFill;
54
55     Create ( Spine   : Wire      from TopoDS; 
56              Profile : Wire      from TopoDS;
57              AxeProf : Ax3       from gp; 
58              Join    : JoinType  from GeomAbs  =  GeomAbs_Arc;
59              Solid   : Boolean   from Standard = Standard_False)
60     returns Evolved from BRepFill
61         ---Purpose: Creates an evolved shape by sweeping the <Profile>
62         --          along the  <Spine>.  <AxeProf> is  used to set the
63         --          position of <Profile> along  <Spine> as  follows: 
64         --          <AxeProf> slides on the profile with direction 
65         --          colinear to the normal to <Spine>, and its 
66         --          <XDirection> mixed with the tangent to <Spine>.
67         --          
68     raises
69         ConstructionError from Standard;
70     
71     Create ( Spine   : Face      from TopoDS; 
72              Profile : Wire      from TopoDS;
73              AxeProf : Ax3       from gp; 
74              Join    : JoinType  from GeomAbs  =  GeomAbs_Arc;
75              Solid   : Boolean   from Standard = Standard_False)
76     returns Evolved from BRepFill
77         ---Purpose: Creates an  evolved shape  by sweeping the <Profile>
78         --          along the <Spine>
79     raises
80         ConstructionError from Standard;
81     
82     Perform (me      : in out;   
83              Spine   : Wire      from TopoDS; 
84              Profile : Wire      from TopoDS;                
85              AxeProf : Ax3       from gp;  
86              Join    : JoinType  from GeomAbs  =  GeomAbs_Arc;
87              Solid   : Boolean   from Standard = Standard_False) 
88         ---Purpose: Performs an  evolved shape  by sweeping the <Profile>
89         --          along the <Spine>
90     raises
91         ConstructionError from Standard
92     is static;
93     
94     Perform (me : in out; 
95              Spine   : Face      from TopoDS; 
96              Profile : Wire      from TopoDS; 
97              AxeProf : Ax3       from gp;  
98              Join    : JoinType  from GeomAbs  =  GeomAbs_Arc;
99              Solid   : Boolean   from Standard = Standard_False) 
100         ---Purpose: Performs an  evolved shape  by sweeping the <Profile>
101         --          along the <Spine>
102     raises
103         ConstructionError from Standard
104     is static;
105     
106     
107     IsDone ( me) 
108     returns Boolean from Standard
109     is static;
110
111     Shape(me) returns Shape from TopoDS
112         ---Purpose: returns the generated shape.
113         ---C++ : return const &
114     is static;
115     
116     GeneratedShapes (me ;
117                      SpineShape : Shape from TopoDS;
118                      ProfShape  : Shape from TopoDS)
119         ---Purpose: Returns   the  shapes  created  from   a  subshape
120         --          <SpineShape>  of     the  spine   and   a subshape
121         --          <ProfShape> on the profile.
122         --      
123         ---C++ : return const &          
124     returns ListOfShape from TopTools
125     is static;                   
126     
127     JoinType (me) returns JoinType from GeomAbs
128     is static;
129
130
131     Top (me) returns Shape from TopoDS
132        ---Purpose: Return the face Top if <Solid> is True in the constructor.
133        ---C++ : return const &
134     is static;
135
136     Bottom (me) returns Shape from TopoDS
137        ---Purpose: Return the face Bottom  if <Solid> is True in the constructor.
138        ---C++ : return const &
139     is static;
140     
141     
142 ---Level: Internal 
143
144     PrivatePerform (me      : in out; 
145                     Spine   : Face      from TopoDS; 
146                     Profile : Wire      from TopoDS; 
147                     AxeProf : Ax3       from gp;  
148                     Join    : JoinType  from GeomAbs  = GeomAbs_Arc;
149                     Solid   : Boolean   from Standard = Standard_False) 
150     raises
151         ConstructionError from Standard
152     is static private;
153     
154     SetWork         (me : in out;
155                      Spine   : Face                    from TopoDS;
156                      Profile : Wire                    from TopoDS)
157     is static private;               
158     
159     ElementaryPerform ( me      : in out; 
160                         Spine   : Face                    from TopoDS;
161                         Profile : Wire                    from TopoDS;  
162                         Locus   : BisectingLocus          from BRepMAT2d; 
163                         Link    : in out LinkTopoBilo     from BRepMAT2d; 
164                         Join    : JoinType  from GeomAbs  =  GeomAbs_Arc)
165     raises
166         ConstructionError from Standard
167     is static private;  
168
169     PlanarPerform ( me      : in out; 
170                     Spine   : Face                    from TopoDS;
171                     Profile : Wire                    from TopoDS;  
172                     Locus   : BisectingLocus          from BRepMAT2d; 
173                     Link    : in out LinkTopoBilo     from BRepMAT2d; 
174                     Join    : JoinType  from GeomAbs  =  GeomAbs_Arc)
175     raises
176         ConstructionError from Standard
177     is static private;  
178
179     VerticalPerform ( me      : in out; 
180                       Spine   : Face                    from TopoDS;
181                       Profile : Wire                    from TopoDS;  
182                       Locus   : BisectingLocus          from BRepMAT2d; 
183                       Link    : in out LinkTopoBilo     from BRepMAT2d; 
184                       Join    : JoinType  from GeomAbs  =  GeomAbs_Arc)
185     raises
186         ConstructionError from Standard
187     is static private;  
188
189     Generated (me : in out )
190         ---C++: return &
191     returns DataMapOfShapeDataMapOfShapeListOfShape from BRepFill
192     is static private;
193     
194     Add ( me : in out; Vevo  : in out Evolved      from BRepFill;
195                        Prof  : Wire                from TopoDS;
196                        Glue  : in out Quilt        from BRepTools)
197     is static private;
198     
199     ChangeShape(me : in out) returns Shape from TopoDS
200         ---C++: return &
201     is static private;
202     
203     Transfert( me                  : in out;
204                Vevo                : in out Evolved      from BRepFill;   
205                MapProf             : DataMapOfShapeShape from TopTools; 
206                MapSpine            : DataMapOfShapeShape from TopTools;
207                LS, InitLS, InitLP  : Location            from TopLoc)   
208     is static private;    
209     
210     PrepareProfile ( me ; WorkProf : in out ListOfShape from TopTools;
211                           MapProf  : in out DataMapOfShapeShape from TopTools) 
212         ---Purpose: Prepare the profil as follow 
213         --          - Project the profile in the yOz Plane 
214         --          - Cut the profile at the extrema of distance from the 
215         --            Profile to the Oz Axis.
216         --          - building the new wires with the cutting edges.
217     is static private;
218     
219     PrepareSpine ( me ; WorkSpine : in out Face                from TopoDS ;
220                         SpineProf : in out DataMapOfShapeShape from TopTools)
221         ---Purpose: Prepare the spine as follow
222         --          - Cut the spine-Edges at the extrema of curvature and
223         --            at the inflexion points.
224     is static private;
225
226     MakePipe (me : in out; SpineEdge   : Edge from TopoDS ;
227                            ProfRef     : Ax3  from gp)
228     is static private;  
229     
230     MakeRevol(me : in out; SpineEdge   : Edge   from TopoDS;
231                            SpineVertex : Vertex from TopoDS;
232                            ProfRef     : Ax3    from gp)
233     is static private;                     
234     
235     FindLocation(me; Face : Face from TopoDS)
236     returns Location from TopLoc
237         ---Purpose: Find the location transforming the planar shape <Shape>
238         --          in the plane xOy
239     raises NoSuchObject from Standard
240         ---Purpose: if the Shape is not planar.
241     is static private;
242     
243     TransformInitWork(me : in out; LS , LP : Location from TopLoc)
244         ---Purpose: Apply the Location <LS> to <mySpine> and  <LP> to 
245         --          <myProfil> 
246         --          in order to set the Shapes in the work space.
247     is static private;
248     
249     ContinuityOnOffsetEdge (me : in out; WorkProf : ListOfShape from TopTools)
250     is static private;
251     
252     AddTopAndBottom (me : in out;Glue : in out Quilt from BRepTools)
253     is static private;
254
255     MakeSolid(me : in out)
256     is static private;
257     
258     
259 fields
260
261     mySpine     : Face      from TopoDS;
262     myProfile   : Wire      from TopoDS;
263     myShape     : Shape     from TopoDS;
264     myIsDone    : Boolean   from Standard;
265     mySpineType : Boolean   from Standard;  -- True : Face ; False : Wire
266     myJoinType  : JoinType  from GeomAbs;           
267     myMap       : DataMapOfShapeDataMapOfShapeListOfShape from BRepFill;  
268     myTop       : Shape     from TopoDS;
269     myBottom    : Shape     from TopoDS;
270     
271 end Evolved;