Salome HOME
Mantis issue 0021404: Problem with partition. A fix by Peter Kurnev.
[modules/geom.git] / src / NMTTools / NMTTools_PaveFiller.cdl
1 --  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 --
3 --  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 --  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 --
6 --  This library is free software; you can redistribute it and/or
7 --  modify it under the terms of the GNU Lesser General Public
8 --  License as published by the Free Software Foundation; either
9 --  version 2.1 of the License.
10 --
11 --  This library is distributed in the hope that it will be useful,
12 --  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 --  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 --  Lesser General Public License for more details.
15 --
16 --  You should have received a copy of the GNU Lesser General Public
17 --  License along with this library; if not, write to the Free Software
18 --  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 --
20 --  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 --
22 -- File:        NMTTools_PaveFiller.cdl
23 -- Created:     
24 -- Author:      Peter KURNEV
25 --              <pkv@irinox>
26 --
27 class PaveFiller from NMTTools 
28
29         ---Purpose: 
30
31 uses   
32     DataMapOfIntegerInteger from TColStd, 
33     ListOfInteger from TColStd,  
34     MapOfInteger from TColStd,  
35      
36     Pnt from gp,
37     ShapeEnum  from  TopAbs, 
38     Vertex     from  TopoDS, 
39     Face       from  TopoDS,  
40     Shape      from TopoDS, 
41     Edge       from  TopoDS, 
42     ListOfShape from TopTools,  
43     DataMapOfShapeShape from TopTools,
44         
45     Context     from IntTools, 
46     ShrunkRange from IntTools,
47     
48     IndexedDataMapOfShapeInteger from BooleanOperations, 
49
50     PavePool          from BOPTools, 
51     PaveBlock         from BOPTools,
52     ListOfPaveBlock   from BOPTools,
53     SplitShapesPool   from BOPTools, 
54     Pave              from BOPTools, 
55     PaveSet           from BOPTools, 
56     Curve             from BOPTools, 
57     SSInterference    from BOPTools, 
58     IDMapOfPaveBlockIMapOfPaveBlock from BOPTools, 
59     IDMapOfPaveBlockIMapOfInteger   from BOPTools, 
60     SSIntersectionAttribute         from BOPTools,  
61     
62     ShapesDataStructure  from NMTDS,  
63     PShapesDataStructure from NMTDS, 
64     Iterator             from NMTDS,  
65     PIterator from NMTDS, 
66     PInterfPool from NMTDS, 
67     
68     CommonBlockPool         from NMTTools, 
69     CommonBlock             from NMTTools, 
70     ListOfCommonBlock       from NMTTools, 
71     DataMapOfIntegerFaceInfo from NMTTools,
72     IndexedDataMapOfIndexedMapOfInteger from NMTTools  
73
74 --raises
75
76 is 
77     Create 
78         returns PaveFiller from NMTTools;  
79     ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
80       
81   
82      
83     SetCompositeShape (me:out;  
84             aS:  Shape from TopoDS);  
85      
86     CompositeShape(me) 
87         returns  Shape from TopoDS; 
88         ---C++:  return  const&  
89         
90              
91     DS(me:out) 
92         returns PShapesDataStructure from NMTDS;  
93  
94     DSIt(me:out) 
95         returns PIterator from NMTDS; 
96      
97     IP(me:out)  
98         returns PInterfPool from NMTDS; 
99     --   
100     Init       (me:out) 
101         is virtual  protected; 
102          
103     Clear   (me:out) 
104         is virtual  protected;
105
106     Perform    (me:out) 
107         is virtual;   
108          
109     PerformVV  (me:out) 
110         is virtual protected;  
111      
112     PerformVE  (me:out) 
113         is virtual protected; 
114      
115     PerformVF  (me:out) 
116         is virtual protected; 
117
118     PerformEE (me:out) 
119         is virtual protected; 
120       
121     PerformEF (me:out) 
122         is virtual protected; 
123    
124     PerformFF (me:out) 
125         is virtual protected; 
126      
127     MakeSplitEdges(me:out) 
128         is protected;   
129      
130     PreparePaveBlocks (me:out; 
131             aType1: ShapeEnum  from  TopAbs; 
132             aType2: ShapeEnum  from  TopAbs) 
133         is virtual protected; 
134      
135     CorrectShrunkRanges(me:out; 
136             aSide:  Integer  from  Standard; 
137             aPave:  Pave from BOPTools; 
138             aSR  :  out ShrunkRange  from  IntTools)
139         is protected; 
140          
141     PreparePaveBlocks (me:out;   
142             anE:Integer from Standard) 
143         is virtual protected;             
144         
145      
146     PrepareEdges  (me:out) 
147         is virtual protected;  
148      
149     --
150     -- Query section 
151     IsDone(me) 
152         returns  Boolean from Standard; 
153
154     Context(me) 
155          returns Context from IntTools; 
156         ---C++:return const &   
157
158     ChangeContext(me:out) 
159          returns Context from IntTools;  
160         ---C++:return & 
161
162     PavePool(me) 
163         returns  PavePool from BOPTools; 
164         ---C++:return const &    
165
166     ChangePavePool(me:out) 
167         returns  PavePool from BOPTools; 
168         ---C++:return & 
169
170     CommonBlockPool(me) 
171         returns  CommonBlockPool from NMTTools; 
172         ---C++:return const &    
173
174     ChangeCommonBlockPool(me:out) 
175         returns  CommonBlockPool from NMTTools; 
176         ---C++:return & 
177
178     SplitShapesPool(me)  
179         returns  SplitShapesPool from BOPTools;
180         ---C++:return const &   
181
182     ChangeSplitShapesPool(me:out)  
183         returns  SplitShapesPool from BOPTools;
184         ---C++:return  &        
185      
186     FindSDVertex (me; 
187                     nV:  Integer  from  Standard) 
188         returns Integer from Standard; 
189
190     IsSuccessorsComputed (me;  
191             iF1:Integer from  Standard; 
192             iF2:Integer from  Standard) 
193         returns  Boolean from Standard 
194         is protected;  
195
196     IsBlocksCoinside (me; 
197             aPB1:PaveBlock from BOPTools;
198             aPB2:PaveBlock from BOPTools) 
199         returns Boolean from Standard 
200         is protected; 
201      
202     RefinePavePool(me:out) 
203         is protected;  
204
205     CheckFacePaves(me:out;  
206              aV : Vertex  from TopoDS;  
207              nF:  Integer from Standard) 
208         returns Integer from Standard 
209         is protected;  
210          
211     ReplaceCommonBlocks (me:out; 
212             aLCB: ListOfCommonBlock from NMTTools) 
213         is protected; 
214      
215     RemoveCommonBlocks (me:out; 
216             aLCB: ListOfCommonBlock from NMTTools) 
217         is protected;
218      
219     SplitCommonBlocks (me:out; 
220             aLCB: ListOfCommonBlock from NMTTools) 
221         is protected;  
222
223     SplitCommonBlock (me:out; 
224             aCB : CommonBlock from NMTTools; 
225             aLCB: out ListOfCommonBlock from NMTTools) 
226         is protected; 
227
228     EECommonBlocks(me:out; 
229             aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools) 
230         is protected; 
231      
232     EFCommonBlocks(me:out;  
233              aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools) 
234         is protected;  
235          
236     EENewVertices (me:out;  
237             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
238         is protected;  
239
240     EENewVertices (me:out;  
241             aV:Vertex from TopoDS;  
242             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
243         is protected; 
244      
245     EFNewVertices (me:out; 
246             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
247         is protected; 
248      
249     EFNewVertices (me:out; 
250             aV:Vertex from TopoDS;  
251             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
252         is protected;   
253          
254     UpdateCommonBlocks(me:out) 
255         is protected;   
256         
257     --modified by NIZNHY-PKV Mon Dec 12 09:12:15 2011f  
258     UpdateCommonBlocks(me:out; 
259             aI:Integer from Standard) 
260         is protected;  
261     --modified by NIZNHY-PKV Mon Dec 12 09:12:21 2011t 
262      
263     UpdatePaveBlocks(me:out) 
264         is protected; 
265          
266     SplitIndex(me; 
267             aPB:PaveBlock from BOPTools) 
268         returns Integer from Standard  
269         is protected;                
270          
271     MakeBlocks(me:out) 
272         is protected;   
273
274     -------------------------------------------------------------- 
275     ---   
276     ---  Some API FUNCTIONS  
277     ---                  
278     SplitsInFace(me:out; 
279                  aBid:Integer from Standard;  
280                  nF1 :Integer from Standard;  
281                  nF2 :Integer from Standard;  
282                  aLs :out ListOfInteger from TColStd) 
283         returns Integer from Standard;  
284
285     SplitsInFace(me:out; 
286                  nE1 :Integer from Standard;  
287                  nF2 :Integer from Standard;  
288                  aLs :out ListOfInteger from TColStd) 
289         returns Integer from Standard;  
290         
291     SplitsOnEdge(me:out; 
292                  nE1 :Integer from Standard;  
293                  nE2 :Integer from Standard;  
294                  aLs :out ListOfInteger from TColStd) 
295         returns Integer from Standard;  
296         
297     SplitsOnFace(me:out; 
298                  nE1 :Integer from Standard;  
299                  nF2 :Integer from Standard;  
300                  aLs :out ListOfInteger from TColStd) 
301         returns Integer from Standard;  
302         
303     SplitsOnFace(me:out;  
304                  aBid:Integer from Standard;  
305                  nF1 :Integer from Standard;  
306                  nF2 :Integer from Standard;  
307                  aLs :out ListOfInteger from TColStd) 
308         returns Integer from Standard;  
309         
310     SplitsInFace(me:out; 
311                  aBid:Integer from Standard;  
312                  nF1 :Integer from Standard;  
313                  nF2 :Integer from Standard;  
314                  aLs :out ListOfPaveBlock from BOPTools) 
315         returns Integer from Standard;  
316      
317     SplitsInFace(me:out; 
318                  nE1 :Integer from Standard;  
319                  nF2 :Integer from Standard;  
320                  aLs :out ListOfPaveBlock from BOPTools) 
321         returns Integer from Standard;  
322      
323     SplitsOnEdge(me:out; 
324                  nE1 :Integer from Standard;  
325                  nE2 :Integer from Standard;  
326                  aLs :out ListOfPaveBlock from BOPTools) 
327         returns Integer from Standard;  
328      
329     SplitsOnFace(me:out; 
330                  nE1 :Integer from Standard;  
331                  nF2 :Integer from Standard;  
332                  aLs :out ListOfPaveBlock from BOPTools) 
333         returns Integer from Standard;  
334
335     SplitsOnFace(me:out;  
336                  aBid:Integer from Standard;  
337                  nF1 :Integer from Standard;  
338                  nF2 :Integer from Standard;  
339                  aLs :out ListOfPaveBlock from BOPTools) 
340         returns Integer from Standard;  
341     --
342     SplitsFace  (me:out;  
343                  nF2 :Integer from Standard;  
344                  aLs :out ListOfPaveBlock from BOPTools) 
345         returns Integer from Standard;  
346
347     SplitsFace  (me:out;  
348                  nF2 :Integer from Standard;  
349                  aLs :out ListOfInteger from TColStd) 
350         returns Integer from Standard;  
351
352     CommonBlocksFace (me:out;  
353                  nF  :Integer from Standard;  
354                  aLCB:out ListOfCommonBlock from NMTTools) 
355         returns Integer from Standard;   
356  
357     PrepareFace(me:out;  
358             nF  :  Integer from Standard; 
359             aF  : out Face from TopoDS); 
360      
361     -- 
362     RealPaveBlock(me:out;   
363             aPB:PaveBlock from BOPTools) 
364         returns PaveBlock from BOPTools; 
365     ---C++: return const &         
366     
367     RealPaveBlock(me:out;   
368             aPB:PaveBlock from BOPTools; 
369             aLB:out ListOfInteger from TColStd; 
370             aIsCommonBlock:out  Integer from Standard) 
371         returns PaveBlock from BOPTools; 
372     ---C++: return const &       
373      
374     RealSplitsFace  (me:out;  
375                  nF2 :Integer from Standard;  
376                  aLs :out ListOfPaveBlock from BOPTools); 
377          
378     HasRealSplitsInOnFace (me:out; 
379                  nF1 :Integer from Standard;  
380                  nF2 :Integer from Standard) 
381         returns Boolean from Standard; 
382          
383     RealSplitsInFace(me:out; 
384                  aBid:Integer from Standard;  
385                  nF1 :Integer from Standard;  
386                  nF2 :Integer from Standard;  
387                  aLs :out ListOfPaveBlock from BOPTools); 
388      
389     RealSplitsInFace(me:out; 
390                  nE1 :Integer from Standard;  
391                  nF2 :Integer from Standard;  
392                  aLs :out ListOfPaveBlock from BOPTools);  
393  
394     RealSplitsInFace(me:out; 
395                  nF1 :Integer from Standard;  
396                  aLPB :out ListOfPaveBlock from BOPTools); 
397  
398     RealSplitsOnEdge(me:out; 
399                  nE1 :Integer from Standard;  
400                  nE2 :Integer from Standard;  
401                  aLs :out ListOfPaveBlock from BOPTools); 
402      
403     RealSplitsOnFace(me:out; 
404                  nE1 :Integer from Standard;  
405                  nF2 :Integer from Standard;  
406                  aLs :out ListOfPaveBlock from BOPTools); 
407
408     RealSplitsOnFace(me:out;  
409                  aBid:Integer from Standard;  
410                  nF1 :Integer from Standard;  
411                  nF2 :Integer from Standard;  
412                  aLs :out ListOfPaveBlock from BOPTools); 
413                   
414     PrepareSetForFace(me:out;   
415                 nF1 :Integer from Standard;  
416                 nF2 :Integer from Standard;  
417                 aLPB: ListOfPaveBlock from BOPTools;  
418                 aPSF:out PaveSet from BOPTools); 
419      
420     PutPaveOnCurve(me:out;   
421                 aPSF: PaveSet from BOPTools;  
422                 aTol: Real from Standard;  
423                 aBC : out Curve from BOPTools);  
424                 
425
426     PutBoundPaveOnCurve (me:out; 
427                     aBC :out Curve from BOPTools;        
428                     aFF :out SSInterference from BOPTools); 
429         
430     PutBoundPaveOnCurve (me:out;  
431                     aP  : Pnt from  gp; 
432                     aT  : Real from Standard;                    
433                     aBC :out Curve from BOPTools;        
434                     aFF :out SSInterference from BOPTools); 
435         
436     FindPave            (me:out; 
437                     aP  : Pnt from gp;  
438                     aTpV: Real from Standard;  
439                     aPS : PaveSet from BOPTools; 
440                     aPV :out Pave from BOPTools) 
441         returns Boolean from Standard; 
442          
443     CheckIntermediatePoint(me:out;  
444                     aPB : PaveBlock      from BOPTools;  
445                     aPBR: PaveBlock      from BOPTools;  
446                     aTol: Real  from  Standard) 
447         returns Integer from Standard;  
448                 
449
450     IsExistingPaveBlock (me:out; 
451                     aPB : PaveBlock       from BOPTools; 
452                     aLPB: ListOfPaveBlock from BOPTools; 
453                     aTol: Real  from  Standard) 
454         returns Boolean from Standard;  
455           
456     MakePCurves (me:out); 
457      
458     PerformVF1(me:out) 
459         is protected;  
460          
461     MakeAloneVertices(me:out) 
462         is protected;   
463          
464     AloneVertices(me)  
465         returns IndexedDataMapOfIndexedMapOfInteger from NMTTools; 
466     ---C++: return const & 
467      
468     IsExistingPaveBlock (me:out; 
469                     aPB : PaveBlock   from BOPTools; 
470                     aLPB: ListOfShape from TopTools; 
471                     aTol: Real  from  Standard) 
472         returns Boolean from Standard;  
473
474     --
475     CheckCoincidence (me:out; 
476                     aPB : PaveBlock   from BOPTools; 
477                     aLPB: ListOfPaveBlock from BOPTools) 
478         returns Boolean from Standard;  
479     -- 
480      
481     CheckIntermediatePoint(me:out;  
482                     aPB : PaveBlock      from BOPTools;  
483                     aE  : Edge from TopoDS;  
484                     aTol: Real  from  Standard) 
485         returns Integer from Standard;   
486
487     SharedEdges(me:out;  
488                  nF1  :Integer from Standard;  
489                  nF2  :Integer from Standard;  
490                  aLNE :out ListOfInteger from TColStd; 
491                  aLSE :out ListOfShape   from TopTools); 
492
493     FuseVertices(me; 
494         aC:Shape from TopoDS; 
495         aDMVV:  out  DataMapOfShapeShape from TopTools);  
496     --
497     TreatPaveBlocks(me:out; 
498             theLCB:out ListOfCommonBlock from NMTTools); 
499              
500     ChangePavePoolNew(me:out) 
501         returns PavePool from BOPTools; 
502     ---C++:return &  
503
504     CheckCoincidence (me:out; 
505                     aPB1 : PaveBlock   from BOPTools; 
506                     aPB2 : PaveBlock   from BOPTools) 
507         returns Boolean from Standard;     
508         
509     FillFaceInfo (me:out) 
510         is protected;
511  
512     CorrectTolR3D(me:out;   
513                 aFF     : SSInterference from BOPTools;  
514                 aMVStick: MapOfInteger from TColStd; 
515                 aTolR3D:  out Real from Standard) 
516         is protected;  
517          
518     PutClosingPaveOnCurve (me:out; 
519                     aBC :out Curve from BOPTools;        
520                     aFF :out SSInterference from BOPTools); 
521  
522 fields 
523     myDS               :  PShapesDataStructure from NMTDS       is protected;   
524     myIsDone           :  Boolean from Standard                 is protected; 
525     myNbSources        :  Integer from Standard                 is protected;  
526     myNbEdges          :  Integer from Standard                 is protected;  
527
528     myPavePool         :  PavePool from BOPTools                is protected;     
529     myPavePoolNew      :  PavePool from BOPTools                is protected;  
530     myCommonBlockPool  :  CommonBlockPool from NMTTools         is protected;  
531     mySplitShapesPool  :  SplitShapesPool from BOPTools         is protected;    
532     -- 
533     myContext          :  Context from IntTools                 is protected; 
534     mySectionAttribute :  SSIntersectionAttribute from BOPTools is protected; 
535     myAloneVertices    :  IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;   
536     --
537     myVSD              :  DataMapOfIntegerInteger from TColStd is protected; 
538     myDSIt             :  PIterator from NMTDS is protected;  
539     myCompositeShape   :  Shape from TopoDS is protected;
540     myIP               :  PInterfPool from NMTDS is protected;     
541     myFaceInfo         :  DataMapOfIntegerFaceInfo from NMTTools is protected;
542 end PaveFiller;