0024157: Parallelization of assembly part of BO
[occt.git] / src / BOPAlgo / BOPAlgo_Builder.cdl
1 -- Created by: Peter KURNEV
2 -- Copyright (c) 2010-2012 OPEN CASCADE SAS
3 -- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
4 -- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
5 --                         EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 --
7 -- The content of this file is subject to the Open CASCADE Technology Public
8 -- License Version 6.5 (the "License"). You may not use the content of this file
9 -- except in compliance with the License. Please obtain a copy of the License
10 -- at http://www.opencascade.org and read it completely before using this file.
11 --
12 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
13 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 --
15 -- The Original Code and all software distributed under the License is
16 -- distributed on an "AS IS" basis, without warranty of any kind, and the
17 -- Initial Developer hereby disclaims all such warranties, including without
18 -- limitation, any warranties of merchantability, fitness for a particular
19 -- purpose or non-infringement. Please see the License for the specific terms
20 -- and conditions governing the rights and limitations under the License.
21
22 class Builder from BOPAlgo 
23     inherits BuilderShape from BOPAlgo 
24         
25 ---Purpose:   
26
27 uses    
28     Box from Bnd,
29     ShapeEnum from TopAbs,
30     Shape from TopoDS, 
31     ListOfShape from TopTools,  
32     --  
33     BaseAllocator from BOPCol,
34     ListOfInteger from BOPCol, 
35     ListOfShape from BOPCol, 
36     MapOfShape from BOPCol, 
37     DataMapOfShapeShape from BOPCol, 
38     DataMapOfShapeListOfShape from BOPCol,  
39     Context from BOPInt,
40     PDS from BOPDS, 
41     PaveFiller  from BOPAlgo,
42     PPaveFiller from BOPAlgo 
43     
44     
45 --raises
46
47 is
48  
49     Create 
50     returns Builder from BOPAlgo;  
51     ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_Builder();" 
52      
53     Create (theAllocator: BaseAllocator from BOPCol) 
54     returns Builder from BOPAlgo; 
55         
56     Clear(me:out) 
57     is virtual;  
58      
59     PPaveFiller(me:out) 
60       returns PPaveFiller from BOPAlgo;
61  
62     PDS(me:out) 
63       returns PDS from BOPDS;
64  
65     AddArgument (me:out;  
66         theShape: Shape from TopoDS) 
67     is virtual; 
68      
69     Arguments(me) 
70     returns ListOfShape from BOPCol; 
71     ---C++: return const & 
72       
73          
74     Perform(me:out) 
75     is redefined; 
76          
77     PerformWithFiller(me:out; 
78     theFiller: PaveFiller from BOPAlgo) 
79     is virtual; 
80      
81     --
82     --  History  support 
83     -- 
84     PrepareHistory (me:out) 
85     ---Purpose:  Prepare information for history support  
86     is redefined protected;   
87         
88     Generated (me:out;  
89         theS : Shape from TopoDS)
90     ---Purpose: Returns the  list of shapes generated from the
91     --          shape theS. 
92     returns ListOfShape from TopTools
93     is redefined;
94     ---C++: return const & 
95
96     Modified (me:out;  
97         theS : Shape from TopoDS)
98     ---Purpose: Returns the list of shapes modified from the shape
99     --          theS. 
100     returns ListOfShape from TopTools
101     is redefined;
102     ---C++: return const &  
103
104     IsDeleted (me:out;  
105         theS : Shape from TopoDS) 
106     ---Purpose: Returns true if the shape theS has been deleted.
107     returns Boolean from Standard  
108     is redefined;  
109       
110     SetRunParallel(me:out; 
111             theFlag:Boolean from Standard); 
112     ---Purpose: Set the flag of parallel processing 
113     -- if <theFlag> is true  the parallel processing is switched on   
114     -- if <theFlag> is false the parallel processing is switched off   
115     --      
116     RunParallel(me) 
117         returns Boolean from Standard; 
118     ---Purpose: Returns the flag of parallel processing  
119     -- 
120     --  Debug 
121     -- 
122     Images(me) 
123     returns DataMapOfShapeListOfShape from BOPCol; 
124     ---C++: return const &        
125  
126     --                   
127     -- 
128     -- protected methods  
129     --  
130     PerformInternal(me:out; 
131     thePF: PaveFiller from BOPAlgo) 
132     is virtual protected;  
133   
134     CheckData(me:out) 
135     is redefined protected;  
136          
137     Prepare(me:out) 
138     is virtual protected; 
139
140     FillImagesVertices(me:out)  
141     is protected;  
142       
143     FillImagesEdges(me:out)  
144     is protected;   
145          
146         
147     BuildResult(me:out; 
148         theType: ShapeEnum from TopAbs) 
149     is virtual protected;   
150          
151     IsInterferred(me; 
152         theS:Shape from TopoDS) 
153     returns Boolean from Standard; 
154          
155     FillImagesContainers(me:out; 
156         theType:ShapeEnum from TopAbs) 
157     is protected;    
158       
159     FillImagesCompounds(me:out)
160     is protected;    
161
162     FillImagesContainer(me:out; 
163         theS:Shape from TopoDS; 
164         theType:ShapeEnum from TopAbs) 
165     is protected; 
166
167     FillImagesCompound(me:out; 
168         theS:Shape from TopoDS; 
169         theMF:out MapOfShape from BOPCol) 
170     is protected;  
171
172     FillImagesFaces (me:out)  
173     is protected;  
174          
175     BuildSplitFaces (me:out)  
176     is virtual protected;  
177          
178     FillSameDomainFaces (me:out) 
179     is protected;  
180  
181     FillImagesFaces1 (me:out) 
182     is protected;   
183      
184     FillInternalVertices(me:out; 
185         theLF:out ListOfShape from BOPCol; 
186         theLIV:out ListOfInteger from BOPCol)  
187     is protected; 
188     --   
189     -- solids
190     --
191     FillImagesSolids(me:out)  
192     is protected;  
193          
194     BuildDraftSolid(me:out; 
195         theSolid:Shape from TopoDS; 
196         theDraftSolid:out Shape from TopoDS;
197         theLIF:out ListOfShape from BOPCol)  
198     is protected;
199  
200     FillIn3DParts(me:out; 
201         theInParts:out DataMapOfShapeListOfShape from BOPCol; 
202         theDraftSolids:out DataMapOfShapeShape from BOPCol;  
203         theAllocator:BaseAllocator from BOPCol)   
204     is virtual protected;   
205  
206     BuildSplitSolids(me:out; 
207         theInParts:out DataMapOfShapeListOfShape from BOPCol; 
208         theDraftSolids:out DataMapOfShapeShape from BOPCol; 
209         theAllocator:BaseAllocator from BOPCol)   
210     is protected;  
211  
212     BuildBndBox(me:out;  
213         theIndex:Integer from Standard; 
214         theBox:  out Box from Bnd) 
215     is protected;
216  
217     FillInternalShapes(me:out)  
218     is protected; 
219     --   
220     -- misc
221     --
222     PostTreat  (me:out)  
223     is virtual protected;   
224   
225     Origins(me) 
226     returns DataMapOfShapeShape from BOPCol; 
227     ---C++: return const &
228     ---Purpose:  Returns myOrigins. 
229     
230     ShapesSD(me) 
231     returns DataMapOfShapeShape from BOPCol; 
232     ---C++: return const & 
233     ---Purpose:  Returns myShapesSD. 
234      
235     Splits (me) 
236     returns DataMapOfShapeListOfShape from BOPCol; 
237     ---C++: return const &        
238     ---Purpose:  Returns mySplits. 
239     
240 fields 
241     myArguments  : ListOfShape from BOPCol is protected; 
242     myMapFence   : MapOfShape from BOPCol is protected; 
243     myPaveFiller : PPaveFiller from BOPAlgo is protected;  
244     myDS         : PDS from BOPDS is protected; 
245     myContext    : Context from BOPInt is protected;   
246     myEntryPoint : Integer from Standard is protected;
247     -- 
248     myImages     : DataMapOfShapeListOfShape from BOPCol is protected;  
249     myShapesSD   : DataMapOfShapeShape from BOPCol is protected;   
250     --
251     mySplits     : DataMapOfShapeListOfShape from BOPCol is protected; 
252     myOrigins    : DataMapOfShapeShape from BOPCol is protected; 
253     -- 
254     myRunParallel : Boolean from Standard is protected; 
255     --     
256 end Builder;
257