0023024: Update headers of OCCT files
[occt.git] / src / BRepFeat / BRepFeat_Form.cdl
1 -- Created on: 1996-02-13
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1996-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
24 deferred class Form from BRepFeat inherits MakeShape from BRepBuilderAPI
25
26         ---Purpose:  Provides general functions to build form features.
27         -- Form features can be depressions or protrusions and include the following types:
28         -- -          Cylinder
29         -- -          Draft Prism
30         -- -          Prism
31         -- -          Revolved feature
32         -- -          Pipe
33         -- In each case, you have a choice of operation type between the following:
34         -- -          removing matter (a Boolean cut: Fuse setting 0)
35         -- -          adding matter (Boolean fusion: Fuse setting 1)
36         -- The semantics of form feature creation is based on the construction of shapes:
37         -- -      along a length
38         -- -      up to a limiting face
39         -- -      from a limiting face to a  height
40         -- -      above and/or below a plane
41         -- The shape defining construction of the feature can be either the
42         -- supporting edge or the concerned area of a face.
43         -- In case of the supporting edge, this contour can be attached to a
44         -- face of the basis shape by binding. When the contour is bound to this
45         -- face, the information that the contour will slide on the face
46         -- becomes available to the relevant class methods. In case of the
47         -- concerned area of a face, you could, for example, cut it out and
48         -- move it to a different height which will define the limiting face of a
49         -- protrusion or depression.
50         -- Topological definition with local operations of this sort makes
51         -- calculations simpler and faster than a global operation. The latter
52         -- would entail a second phase of removing unwanted matter to get the same result.
53
54 uses Shape                     from TopoDS,
55      Face                      from TopoDS,
56      ShapeModification         from BRepBuilderAPI,
57      DataMapOfShapeListOfShape from TopTools,
58      ListOfShape               from TopTools,
59      SequenceOfCurve           from TColGeom,
60      Curve                     from Geom,
61      DataMapOfShapeShape       from TopTools,     
62      Gluer                     from LocOpe,
63      PerfSelection             from BRepFeat,
64      StatusError               from BRepFeat, 
65      HBuilder                  from TopOpeBRepBuild, 
66     --modified by NIZNHY-PKV Thu Mar 21 17:09:08 2002  f 
67      BooleanOperation          from BRepAlgoAPI, 
68      --modified by NIZNHY-PKV Thu Mar 21 17:09:11 2002  t 
69      HistoryCollector from BOP
70 is
71
72     Initialize;
73     
74         ---Purpose: Redefines the empty constructor.
75         ---C++: inline
76
77 ---  Methods redefined from BRepBuilderAPI_MakeShape
78
79     Modified(me: in out; F: Shape from TopoDS)
80         ---Purpose: returns the list of generated Faces.
81         ---C++:     return const &
82         ---Level: Public
83     returns ListOfShape from TopTools
84     is redefined;
85     
86
87     Generated(me: in out; S: Shape from TopoDS)
88         ---Purpose: returns a list of the created faces
89         --          from the shape <S>.
90         ---C++:     return const &
91         ---Level: Public
92     returns ListOfShape from TopTools
93     is redefined;
94
95     IsDeleted (me: in out; S : Shape from TopoDS)
96     returns Boolean
97     is redefined;
98
99
100
101     FirstShape (me)
102         ---Purpose: Returns the list  of shapes created  at the bottom  of
103         --          the created form.  It may be an empty list.
104     returns ListOfShape from TopTools;
105         ---C++: return const&
106
107
108     LastShape (me)
109         ---Purpose: Returns  the list of shapes  created at the top of the
110         --          created form.  It may be an empty list.
111     returns ListOfShape from TopTools;
112         ---C++: return const&
113
114     NewEdges(me)
115         ---Purpose: Returns a list of the limiting and glueing edges
116         -- generated by the feature. These edges did not originally
117         -- exist in the basis shape.
118         -- The list provides the information necessary for
119         -- subsequent addition of fillets. It may be an empty list.
120         ---C++: return const&
121  returns ListOfShape from TopTools;
122
123     TgtEdges(me)
124         ---Purpose: Returns a list of the tangent edges among the limiting
125         -- and glueing edges generated by the feature. These
126         -- edges did not originally exist in the basis shape and are
127         -- tangent to the face against which the feature is built.
128         -- The list provides the information necessary for
129         -- subsequent addition of fillets. It may be an empty list.
130         -- If an edge is tangent, no fillet is possible, and the edge
131         -- must subsequently be removed if you want to add a fillet.
132         ---C++: return const&
133  returns ListOfShape from TopTools;
134
135
136     BasisShapeValid(me: in out)
137         --- Purpose: Initializes the topological construction if the basis shape is present.
138         ---C++: inline
139         is static;
140
141
142     GeneratedShapeValid(me: in out)
143         ---Purpose: Initializes the topological construction if the generated shape S is present.
144         ---C++: inline
145         is static;
146
147
148     ShapeFromValid(me: in out)
149         ---Purpose:
150         -- Initializes the topological construction if the shape is
151         -- present from the specified integer on.
152         ---C++: inline
153         is static;
154
155
156     ShapeUntilValid(me: in out)
157         --- Purpose:
158         -- Initializes the topological construction if the shape is
159         -- present until the specified integer.
160              ---C++: inline
161                 is static;
162
163
164     GluedFacesValid(me: in out)
165          ---Purpose:
166         -- Initializes the topological construction if the glued face is present.
167              ---C++: inline
168              is static;
169
170     SketchFaceValid(me: in out)
171         --- Purpose:
172         -- Initializes the topological construction if the sketch face
173         -- is present. If the sketch face is inside the basis shape,
174         -- local operations such as glueing can be performed.    
175              ---C++: inline
176                 is static;
177
178     PerfSelectionValid(me: in out)
179         --- Purpose: Initializes the topological construction if the selected face is present.  
180         ---C++: inline
181         is static;
182
183
184     GlobalPerform(me: in out)
185         ---Purpose: General perform method...
186
187         is static protected;
188
189
190     Curves(me: in out; S : in out SequenceOfCurve from TColGeom)
191     
192         is deferred;
193     
194
195     BarycCurve(me: in out)
196     
197         returns Curve from Geom
198         is deferred;
199
200
201 -- Protected implementation methods
202
203     UpdateDescendants(me: in out; G: Gluer from LocOpe)
204     
205         is static protected;
206
207 --modified by NIZNHY-PKV Thu Mar 21 18:42:53 2002  f
208     UpdateDescendants(me: in out;  
209                aBOP: BooleanOperation from BRepAlgoAPI;   
210                SResult  : Shape    from TopoDS;
211                SkipFace : Boolean  from Standard = Standard_False)
212         is static protected;
213 --modified by NIZNHY-PKV Thu Mar 21 18:42:50 2002  t
214
215     UpdateDescendants(me: in out;  
216                aHistory : HistoryCollector from BOP;   
217                SResult  : Shape    from TopoDS;
218                SkipFace : Boolean  from Standard = Standard_False)
219         is static protected;
220  
221    UpdateDescendants(me: in out;  
222               B        : HBuilder from TopOpeBRepBuild;
223               SResult  : Shape    from TopoDS;
224               SkipFace : Boolean  from Standard = Standard_False)
225     
226         is static protected;
227     TransformShapeFU(me: in out; flag: Integer from Standard)
228         returns Boolean from Standard
229         is protected;
230
231
232     CurrentStatusError(me)
233         returns StatusError from BRepFeat;
234
235
236 fields
237
238     myFuse    : Boolean                   from Standard is protected;
239     myModify  : Boolean                   from Standard is protected;
240     myMap     : DataMapOfShapeListOfShape from TopTools is protected;
241     myFShape  : Shape                     from TopoDS   is protected;
242     myLShape  : Shape                     from TopoDS   is protected;
243     myNewEdges: ListOfShape               from TopTools is protected; 
244     myTgtEdges: ListOfShape               from TopTools is protected;
245     
246     myPerfSelection: PerfSelection        from BRepFeat is protected;
247     myJustGluer: Boolean                  from Standard is protected;
248     myJustFeat: Boolean                   from Standard is protected;
249     
250     mySbase   : Shape                     from TopoDS   is protected;
251     mySkface  : Face                      from TopoDS   is protected;
252     myGShape  : Shape                     from TopoDS   is protected;
253     mySFrom   : Shape                     from TopoDS   is protected;
254     mySUntil  : Shape                     from TopoDS   is protected;
255     myGluedF  : DataMapOfShapeShape       from TopTools is protected;
256     
257
258     mySbOK    : Boolean                   from Standard;
259     mySkOK    : Boolean                   from Standard;        
260     myGSOK    : Boolean                   from Standard;
261     mySFOK    : Boolean                   from Standard;
262     mySUOK    : Boolean                   from Standard;
263     myGFOK    : Boolean                   from Standard;
264     myPSOK    : Boolean                   from Standard;
265
266     myStatusError : StatusError           from BRepFeat;
267
268 end Form;
269
270