0023024: Update headers of OCCT files
[occt.git] / src / BOP / BOP_ShellSolid.cdl
1 -- Created on: 2001-11-02
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2001-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21
22 class ShellSolid from BOP inherits Builder from BOP
23
24         ---Purpose: 
25         --- Performs  Boolean Operations  (BO) 
26         --  Common,Cut,Fuse for arguments of 
27         --  shell/solid type   
28         ---
29 uses
30  
31     DSFiller  from BOPTools, 
32      
33     WireEdgeSet  from BOP,   
34     ShellFaceSet from BOP, 
35     Operation    from BOP, 
36     HistoryCollector from BOP,
37      
38     Shape from TopoDS,
39     Edge  from TopoDS,
40     Face  from TopoDS, 
41     Shell from TopoDS,
42     
43     ListOfShape                      from TopTools,
44     IndexedDataMapOfShapeListOfShape from TopTools, 
45     IndexedMapOfShape                from TopTools, 
46     DataMapOfShapeInteger            from TopTools,
47     
48     IndexedMapOfInteger from TColStd,
49
50     StateOfShape        from BooleanOperations, 
51     State               from TopAbs,
52     --modified by NIZHNY-MKK  Tue Sep  7 11:37:57 2004
53     ShapeEnum           from TopAbs,
54     
55     Orientation         from TopAbs 
56     
57 is 
58     
59     Create   
60         returns  ShellSolid from BOP; 
61         ---Purpose:  
62         --- Empty constructor;
63         ---
64     Do  (me:out) 
65         is  redefined;   
66         ---Purpose:  
67         --- see base  classes, please
68         ---
69     DoWithFiller      (me:out; 
70              aDSF: DSFiller from BOPTools) 
71         is  redefined; 
72         ---Purpose:  
73         --- see base  classes, please
74         ---
75     Destroy (me: in out) 
76         is redefined; 
77         ---C++: alias "Standard_EXPORT virtual ~BOP_ShellSolid(){Destroy();}"   
78         ---Purpose:  
79         --- Destructor
80         ---
81     BuildResult (me:out) 
82         is redefined ;  
83         ---Purpose:  
84         --- see base  classes, please
85         ---
86     DoNewFaces(me: in out)
87         is  virtual; 
88         ---Purpose:  
89         --- see base  classes, please
90         ---
91     Prepare(me:out)  
92     --modified by NIZNHY-PKV Wed Sep 11 17:55:29 2002  f
93          is virtual;--protected;   
94     --modified by NIZNHY-PKV Wed Sep 11 17:55:32 2002  t                  
95         ---Purpose: 
96         --- Provides some preparing steps of algorithm     
97         --- 1.  Compute the 3D-States 
98         --- 2.  Compute P-Curves for section- and split- edges      
99         --- 3.  Treat degenerated edges 
100         --- 4   Detect Same Domain faces   
101         ---
102     DetectSDFaces  (me:out) 
103         is protected; 
104         ---Purpose:  
105         --- The algo to find SameDomain Faces    
106         --- among interferred ones 
107         ---
108     ---------------------------------------------- 
109     --     
110     --         W E S  C O M P O N E N T S  
111     --     
112     --            (for internal usage)    
113     --     
114     --     
115     AddSplitPartsINOUT (me:out; 
116             nF1  :Integer from Standard; 
117             aWES :out WireEdgeSet from BOP) 
118         is protected;   
119     --- 
120     ---  WES components for an argument of SHELL type  
121     --- 
122     AddSectionPartsSh (me:out; 
123             nF1  :Integer from Standard; 
124             iFF  :Integer from Standard; 
125             aWES :out WireEdgeSet from BOP) 
126         is protected ;  
127          
128     AddSplitPartsONSh (me:out; 
129             nF1  :Integer from Standard;  
130             aWES :out WireEdgeSet from BOP) 
131         is protected;   
132
133     AddPartsEFSh (me:out; 
134             nF1  :Integer from Standard; 
135             iFF  :Integer from Standard; 
136             anEMap  : out  IndexedMapOfShape from TopTools;                                      
137             aWES :out WireEdgeSet from BOP) 
138         is protected;           
139          
140     AddINON2DPartsSh (me:out; 
141             nF1  :Integer from Standard; 
142             iFF  :Integer from Standard; 
143             aWES :out WireEdgeSet from BOP) 
144         is protected;            
145      
146     AddINON2DPartsSh (me:out; 
147             nF1  :Integer from Standard; 
148             iFF  :Integer from Standard; 
149             aWES :out WireEdgeSet from BOP; 
150             anEMap  : out  IndexedMapOfShape from TopTools) 
151         is protected;    
152     --             
153     AddPartsEFNonSDSh (me:out; 
154             nF1  :Integer from Standard; 
155             iFF  :Integer from Standard; 
156             anEMap  : out  IndexedMapOfShape from TopTools;                                      
157             aWES :out WireEdgeSet from BOP) 
158         is protected;    
159          
160     AddPartsEENonSDSh (me:out; 
161             nF1  :Integer from Standard; 
162             iFF  :Integer from Standard; 
163             anEMap  : out  IndexedMapOfShape from TopTools;                                      
164             aWES :out WireEdgeSet from BOP) 
165         is protected;            
166     --- 
167     ---  WES components for an argument of SOLID type  
168     ---  
169     AddSectionPartsSo (me:out; 
170             nF1  :Integer from Standard; 
171             iFF  :Integer from Standard; 
172             aWES :out WireEdgeSet from BOP)  
173         is protected;     
174          
175     AddSplitPartsON3DSo (me:out; 
176             nF1  :Integer from Standard; 
177             iFF  :Integer from Standard; 
178             aWES :out WireEdgeSet from BOP)  
179          is protected;    
180      
181     AddSplitPartsONSo(me:out; 
182             nF1  :Integer from Standard;  
183             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
184             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools; 
185             aWES :out WireEdgeSet from BOP)  
186         is protected;    
187          
188     AddPartsEFSo (me:out; 
189             nF1  :Integer from Standard; 
190             iFF  :Integer from Standard; 
191             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
192             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools; 
193             anEMap  : out  IndexedMapOfShape from TopTools;                                      
194             aWES :out WireEdgeSet from BOP)  
195         is protected;    
196          
197     AddINON2DPartsSo (me:out; 
198             iFF  :Integer from Standard; 
199             nF1  :Integer from Standard; 
200             nF2  :Integer from Standard; 
201             aWES :out WireEdgeSet from BOP)  
202          is protected;    
203          
204     AddPartsEFSDSo (me:out; 
205             nF1  :Integer from Standard; 
206             iFF  :Integer from Standard; 
207             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
208             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools; 
209             aWES :out WireEdgeSet from BOP) 
210          is protected;           
211           
212     AddPartsEFNonSDSo (me:out; 
213             nF1  :Integer from Standard; 
214             iFF  :Integer from Standard; 
215             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
216             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;  
217             aFFInMap:IndexedMapOfInteger from TColStd;
218             anEMap  : out  IndexedMapOfShape from TopTools;                                      
219             aWES :out WireEdgeSet from BOP) 
220          is protected; 
221          
222     AddPartsEENonSDSo (me:out; 
223             nF1  :Integer from Standard; 
224             iFF  :Integer from Standard; 
225             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
226             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;  
227             aFFInMap:IndexedMapOfInteger from TColStd;
228             anEMap  : out  IndexedMapOfShape from TopTools;                                      
229             aWES :out WireEdgeSet from BOP)   
230          is protected;  
231
232     AddPartsEESDSo (me:out; 
233             nF1  :Integer from Standard; 
234             iFF  :Integer from Standard; 
235             aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools; 
236             aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;  
237             aWES :out WireEdgeSet from BOP)   
238          is protected;  
239
240 --modified by NIZHNY-MKK  Tue Sep  7 11:38:00 2004
241     CheckArgTypes(myclass; theType1, theType2: ShapeEnum from TopAbs;
242                            theOperation: Operation from BOP) 
243          returns Boolean from Standard;  
244         ---Purpose: 
245         --- Check the types of arguments.      
246         --- Returns  FALSE if types of arguments     
247         --- are non-valid to be  treated by the         
248         --- agorithm 
249     
250     CheckArgTypes(me) 
251          returns Boolean from Standard;  
252         ---Purpose: 
253         --- Check the types of arguments.      
254         --- Returns  FALSE if types of arguments     
255         --- are non-valid to be  treated by the         
256         --- agorithm 
257         ---
258     Path(myclass; 
259             aE:Shape from TopoDS; 
260             aEFMap:  IndexedDataMapOfShapeListOfShape from TopTools;  
261             aFaces:  out IndexedMapOfShape from TopTools; 
262             aProcE:  out IndexedMapOfShape from TopTools) 
263         is protected; 
264         ---Purpose: 
265         --- Internal usage  
266         ---
267     Orientation(myclass;  
268             aE:  Edge from TopoDS; 
269             aF:  Face from TopoDS) 
270         returns Orientation from TopAbs    
271         is protected;  
272         ---Purpose: 
273         --- Internal usage
274         ---
275     OrientFacesOnShell (myclass; 
276             aShell: Shell from TopoDS;  
277             aShellNew: out Shell from TopoDS) 
278         is protected; 
279         ---Purpose: 
280         ---
281         --- Internal usage 
282         ---
283     DoInternalVertices (me:out;   
284             nF1:Integer  from  Standard; 
285             aFaces: ListOfShape from TopTools) 
286         is  protected;   
287         ---Purpose: 
288         --- Internal usage 
289         ---
290     Internals(me) 
291         returns ListOfShape from TopTools   
292         is  protected; 
293         ---C++: return const & 
294         ---Purpose: 
295         --- Internal usage 
296         ---
297     CollectInternals(me:out) 
298         is  protected;     
299         ---Purpose: 
300         --- Internal usage 
301         ---
302
303     FillSectionEdges(me:out) 
304         is  protected; 
305         ---Purpose: 
306         --- Internal usage 
307         ---
308
309
310     SplitFace(me; theFaceIndex: Integer from Standard;
311                   theMapOfEdgeIndex: out DataMapOfShapeInteger from TopTools;
312                   theListOfFace: out ListOfShape from TopTools)
313         returns Boolean from Standard;
314
315     SetHistoryCollector(me: in out; theHistory: HistoryCollector from BOP)
316         is redefined virtual;
317
318 fields 
319  
320     myFace      : Face from TopoDS            
321         is  protected;  
322     myNewFaces  : ListOfShape from TopTools   
323         is  protected;  
324     myInternals : ListOfShape from TopTools   
325         is  protected; 
326     myRank      : Integer from Standard 
327         is  protected; 
328                              
329 end ShellSolid;