0021762: Integration of new Boolean Operation algorithm to OCCT.
[occt.git] / src / BOPAlgo / BOPAlgo_PaveFiller.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
23 class PaveFiller from BOPAlgo 
24    inherits Algo from BOPAlgo 
25     ---Purpose: 
26
27 uses 
28     Pnt from gp,   
29     Vertex from TopoDS,
30     Face from TopoDS, 
31     Edge from TopoDS,
32      
33     BaseAllocator from BOPCol, 
34     ListOfShape from BOPCol, 
35     MapOfInteger from BOPCol, 
36     ListOfInteger from BOPCol, 
37     DataMapOfShapeInteger from BOPCol,   
38     IndexedDataMapOfShapeInteger from BOPCol,   
39     DataMapOfIntegerListOfInteger from BOPCol, 
40     DataMapOfShapeListOfShape from BOPCol,
41     IndexedDataMapOfShapeListOfShape from BOPCol,
42     --  
43     Context from BOPInt,
44     -- 
45     SectionAttribute from BOPAlgo, 
46     
47     DS  from BOPDS,
48     PDS from BOPDS, 
49     Iterator  from BOPDS, 
50     PIterator from BOPDS, 
51     PaveBlock from BOPDS, 
52     Curve from BOPDS,  
53     IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS,
54     MapOfPaveBlock from BOPDS,  
55     ListOfPaveBlock from BOPDS, 
56     ListOfPave from BOPDS, 
57     ListOfPntOn2S from IntSurf, 
58     Curve from IntTools,
59     
60     DataMapOfPaveBlockListOfPaveBlock from BOPDS, 
61     VectorOfCurve from BOPDS 
62      
63 --raises
64
65 is 
66     Create 
67       returns PaveFiller from BOPAlgo;  
68     ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_PaveFiller();"
69      
70     Create (theAllocator: BaseAllocator from BOPCol) 
71       returns PaveFiller from BOPAlgo;   
72         
73     DS(me:out) 
74       returns DS from BOPDS; 
75     ---C++:return  const &   
76     
77       
78     PDS(me:out) 
79       returns PDS from BOPDS; 
80      
81     Iterator(me:out) 
82       returns PIterator from BOPDS;  
83     ---C++:return const & 
84      
85     Arguments(me) 
86       returns ListOfShape from BOPCol; 
87     ---C++: return const & 
88     ---C++: alias "Standard_EXPORT void SetArguments(const BOPCol_ListOfShape& theLS);" 
89
90     Context(me:out) 
91       returns Context from BOPInt;  
92        
93     SetSectionAttribute(me:out; 
94         theSecAttr : SectionAttribute from BOPAlgo); 
95          
96     Perform(me:out) 
97       is redefined;   
98     --  
99     -- protected methods 
100     -- 
101     Clear(me:out) 
102       is virtual protected;  
103           
104     Init(me:out) 
105       is virtual protected;
106       
107     PerformVV(me:out) 
108       is virtual protected;   
109      
110     PerformVE(me:out) 
111       is virtual protected;  
112      
113     PerformVF(me:out) 
114       is virtual protected;  
115          
116     PerformEE(me:out) 
117       is virtual protected; 
118           
119     PerformEF(me:out) 
120       is virtual protected; 
121      
122     PerformFF(me:out) 
123       is virtual protected;
124      
125     
126     TreatVerticesEE(me:out) 
127       is protected; 
128
129     MakeSplitEdges(me:out) 
130       is protected;   
131         
132     MakeBlocks(me:out) 
133       is protected; 
134          
135     MakePCurves(me:out) 
136       is protected; 
137          
138     ProcessDE(me:out) 
139       is protected;  
140        
141     FillShrunkData(me:out; 
142         thePB:out PaveBlock from BOPDS) 
143       is protected;   
144          
145     PerformVerticesEE(me:out; 
146         theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; 
147         theAllocator:out BaseAllocator from BOPCol) 
148       returns Integer from Standard 
149       is protected; 
150          
151     PerformVerticesEF(me:out; 
152         theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; 
153         theAllocator:out BaseAllocator from BOPCol) 
154       returns Integer from Standard 
155       is protected; 
156      
157     CheckFacePaves(me:out; 
158         theVnew:Vertex from TopoDS; 
159         theMIF:MapOfInteger from BOPCol) 
160       returns Boolean from Standard 
161       is protected;  
162           
163     CheckFacePaves(myclass; 
164         theN:Integer from Standard; 
165         theMIFOn:MapOfInteger from BOPCol; 
166         theMIFIn:MapOfInteger from BOPCol) 
167       returns Boolean from Standard 
168       is protected;  
169          
170     IsExistingVertex(me; 
171         theP:Pnt from gp; 
172         theTol:Real from Standard; 
173         theMVOn:MapOfInteger from BOPCol) 
174       returns Boolean from Standard 
175       is protected; 
176          
177     PutPaveOnCurve(me:out; 
178         theMVOn:MapOfInteger from BOPCol; 
179         theTolR3D:Real from Standard; 
180         theNC:out Curve from BOPDS; 
181         nF1:Integer from Standard; 
182         nF2:Integer from Standard;
183         theMVEF:MapOfInteger from BOPCol) 
184       is protected;  
185
186     ExtendedTolerance(me:out; 
187         nV:Integer from Standard; 
188         aMI:MapOfInteger from BOPCol; 
189         aTolVExt:out Real from  Standard) 
190       returns Boolean from  Standard 
191       is protected;
192          
193     PutBoundPaveOnCurve(me:out;  
194         theF1: Face from TopoDS;  
195         theF2: Face from TopoDS;  
196         theTolR3D:Real from Standard; 
197         theNC:out Curve from BOPDS;  
198         theMVOnIn:out MapOfInteger from BOPCol;
199         theMVB:out MapOfInteger from BOPCol) 
200       is protected; 
201
202     IsExistingPaveBlock(me:out; 
203         thePB:PaveBlock from BOPDS;  
204         theNC:Curve from BOPDS;
205         theTolR3D:Real from Standard; 
206         theMPB:MapOfPaveBlock from BOPDS; 
207         thePBOut:out PaveBlock from BOPDS)
208       returns Boolean from Standard 
209       is protected;  
210  
211     IsExistingPaveBlock(me:out; 
212         thePB:PaveBlock from BOPDS;  
213         theNC:Curve from BOPDS;
214         theTolR3D:Real from Standard; 
215         theLSE:ListOfInteger from BOPCol) 
216       returns Boolean from Standard 
217       is protected;   
218      
219     PostTreatFF(me:out; 
220         theMSCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; 
221         theMVI:out DataMapOfShapeInteger from BOPCol;  
222         theDMExEd:out DataMapOfPaveBlockListOfPaveBlock from BOPDS;
223         theAllocator:out BaseAllocator from BOPCol) 
224       returns Integer from Standard 
225       is protected; 
226     --
227     --  Treatment of degenerated edges  
228     -- 
229     FindPaveBlocks(me:out;  
230         theV:Integer from Standard; 
231         theF:Integer from Standard; 
232         theLPB:out ListOfPaveBlock from BOPDS) 
233       is protected; 
234
235     FillPaves(me:out;  
236         theV:Integer from Standard; 
237         theE:Integer from Standard; 
238         theF:Integer from Standard; 
239         theLPB: ListOfPaveBlock from BOPDS; 
240         thePB: PaveBlock from BOPDS) 
241       is protected; 
242          
243     MakeSplitEdge(me:out;  
244         theV:Integer from Standard; 
245         theF:Integer from Standard) 
246       is protected;  
247          
248     GetEFPnts(me:out;
249         nF1 : Integer from Standard;
250         nF2 : Integer from Standard;
251         aListOfPnts: out ListOfPntOn2S from IntSurf)
252       is protected; 
253        
254     PutEFPavesOnCurve(me:out; 
255         nF1        : Integer from Standard; 
256         nF2        : Integer from Standard; 
257         theNC      : out Curve from BOPDS; 
258         theMVEF    : MapOfInteger from BOPCol)  
259       is protected;
260  
261     PutStickPavesOnCurve(me:out; 
262         nF1        : Integer from Standard; 
263         nF2        : Integer from Standard; 
264         theNC      : out Curve from BOPDS; 
265         theMVStick : MapOfInteger from BOPCol)
266       is protected; 
267  
268     GetStickVertices(me:out; 
269         nF1        : Integer from Standard; 
270         nF2        : Integer from Standard; 
271         theMVStick : out MapOfInteger from BOPCol;
272         theMVEFk   : out MapOfInteger from BOPCol)
273       is protected; 
274  
275     GetFullFaceMap(me:out; 
276         nF    : Integer from Standard; 
277         theMI : out MapOfInteger from BOPCol) 
278       is protected; 
279        
280        
281     RemoveUsedVertices(me:out; 
282         theNC : out Curve from BOPDS; 
283         theMV : out MapOfInteger from BOPCol)  
284       is protected;
285  
286     PutPaveOnCurve(me:out; 
287         nV        : Integer from Standard; 
288         theTolR3D : Real from Standard;
289         theNC     : Curve from BOPDS;
290         thePB     : out PaveBlock from BOPDS) 
291       is protected;
292  
293     ProcessExistingPaveBlocks(me:out; 
294         theInt     : Integer from Standard; 
295         theMPBOnIn : MapOfPaveBlock from BOPDS; 
296         theMSCPB   : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; 
297         theMVI     : out DataMapOfShapeInteger from BOPCol; 
298         theMVB     : MapOfInteger from BOPCol; 
299         theMPB     : out MapOfPaveBlock from BOPDS)
300       is  protected;        
301  
302     UpdateExistingPaveBlocks(me:out; 
303         thePB   : PaveBlock from BOPDS;
304         theLPB  : out ListOfPaveBlock from BOPDS; 
305         nF1     : Integer from Standard; 
306         nF2     : Integer from Standard)
307       is protected;
308  
309     TreatNewVertices(me:out; 
310         theMVI    : IndexedDataMapOfShapeInteger from BOPCol; 
311         theImages : out IndexedDataMapOfShapeListOfShape from BOPCol) 
312       is protected;
313  
314     PutClosingPaveOnCurve (me:out; 
315         aNC :out Curve from BOPDS)  
316       is protected; 
317     ---Purpose:              
318     --- Put paves on the curve <aBC> in case when <aBC>   
319     --- is closed 3D-curve  
320      
321     PreparePostTreatFF(me:out; 
322         aInt   : Integer from Standard; 
323         aPB    : PaveBlock from BOPDS;  
324         aMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; 
325         aMVI   : out DataMapOfShapeInteger from BOPCol; 
326         aVC    : out VectorOfCurve from BOPDS)
327       is protected; 
328     ---Purpose: 
329     ---Keeps data for post treatment 
330      
331     RefineFaceInfoOn(me:out) 
332       is protected; 
333     ---Purpose: 
334     --- Refines the state On for the all faces having 
335     --- state information 
336
337     UpdateFaceInfo(me:out;
338         theDME:out DataMapOfPaveBlockListOfPaveBlock from BOPDS) 
339       is protected; 
340     ---Purpose: 
341     ---Updates the information about faces
342
343       
344 fields  
345     myArguments   : ListOfShape from BOPCol is protected;  
346     myDS          : PDS from BOPDS is protected; 
347     myIterator    : PIterator from BOPDS is protected; 
348     myContext     : Context from BOPInt is protected;   
349     mySectionAttribute : SectionAttribute from BOPAlgo is protected;
350
351 end PaveFiller;