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