Salome HOME
0021024: EDF 1537 GEOM: IDs of the subshapes of a shape
[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:     Fri Dec  5 14:35:00 2003
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     UpdatePaveBlocks(me:out) 
258         is protected; 
259          
260     SplitIndex(me; 
261             aPB:PaveBlock from BOPTools) 
262         returns Integer from Standard  
263         is protected;                
264          
265     MakeBlocks(me:out) 
266         is protected;   
267
268     -------------------------------------------------------------- 
269     ---   
270     ---  Some API FUNCTIONS  
271     ---                  
272     SplitsInFace(me:out; 
273                  aBid:Integer from Standard;  
274                  nF1 :Integer from Standard;  
275                  nF2 :Integer from Standard;  
276                  aLs :out ListOfInteger from TColStd) 
277         returns Integer from Standard;  
278
279     SplitsInFace(me:out; 
280                  nE1 :Integer from Standard;  
281                  nF2 :Integer from Standard;  
282                  aLs :out ListOfInteger from TColStd) 
283         returns Integer from Standard;  
284         
285     SplitsOnEdge(me:out; 
286                  nE1 :Integer from Standard;  
287                  nE2 :Integer from Standard;  
288                  aLs :out ListOfInteger from TColStd) 
289         returns Integer from Standard;  
290         
291     SplitsOnFace(me:out; 
292                  nE1 :Integer from Standard;  
293                  nF2 :Integer from Standard;  
294                  aLs :out ListOfInteger from TColStd) 
295         returns Integer from Standard;  
296         
297     SplitsOnFace(me:out;  
298                  aBid:Integer from Standard;  
299                  nF1 :Integer from Standard;  
300                  nF2 :Integer from Standard;  
301                  aLs :out ListOfInteger from TColStd) 
302         returns Integer from Standard;  
303         
304     SplitsInFace(me:out; 
305                  aBid:Integer from Standard;  
306                  nF1 :Integer from Standard;  
307                  nF2 :Integer from Standard;  
308                  aLs :out ListOfPaveBlock from BOPTools) 
309         returns Integer from Standard;  
310      
311     SplitsInFace(me:out; 
312                  nE1 :Integer from Standard;  
313                  nF2 :Integer from Standard;  
314                  aLs :out ListOfPaveBlock from BOPTools) 
315         returns Integer from Standard;  
316      
317     SplitsOnEdge(me:out; 
318                  nE1 :Integer from Standard;  
319                  nE2 :Integer from Standard;  
320                  aLs :out ListOfPaveBlock from BOPTools) 
321         returns Integer from Standard;  
322      
323     SplitsOnFace(me:out; 
324                  nE1 :Integer from Standard;  
325                  nF2 :Integer from Standard;  
326                  aLs :out ListOfPaveBlock from BOPTools) 
327         returns Integer from Standard;  
328
329     SplitsOnFace(me:out;  
330                  aBid:Integer from Standard;  
331                  nF1 :Integer from Standard;  
332                  nF2 :Integer from Standard;  
333                  aLs :out ListOfPaveBlock from BOPTools) 
334         returns Integer from Standard;  
335     --
336     SplitsFace  (me:out;  
337                  nF2 :Integer from Standard;  
338                  aLs :out ListOfPaveBlock from BOPTools) 
339         returns Integer from Standard;  
340
341     SplitsFace  (me:out;  
342                  nF2 :Integer from Standard;  
343                  aLs :out ListOfInteger from TColStd) 
344         returns Integer from Standard;  
345
346     CommonBlocksFace (me:out;  
347                  nF  :Integer from Standard;  
348                  aLCB:out ListOfCommonBlock from NMTTools) 
349         returns Integer from Standard;   
350  
351     PrepareFace(me:out;  
352             nF  :  Integer from Standard; 
353             aF  : out Face from TopoDS); 
354      
355     -- 
356     RealPaveBlock(me:out;   
357             aPB:PaveBlock from BOPTools) 
358         returns PaveBlock from BOPTools; 
359     ---C++: return const &         
360     
361     RealPaveBlock(me:out;   
362             aPB:PaveBlock from BOPTools; 
363             aLB:out ListOfInteger from TColStd; 
364             aIsCommonBlock:out  Integer from Standard) 
365         returns PaveBlock from BOPTools; 
366     ---C++: return const &       
367      
368     RealSplitsFace  (me:out;  
369                  nF2 :Integer from Standard;  
370                  aLs :out ListOfPaveBlock from BOPTools); 
371          
372     HasRealSplitsInOnFace (me:out; 
373                  nF1 :Integer from Standard;  
374                  nF2 :Integer from Standard) 
375         returns Boolean from Standard; 
376          
377     RealSplitsInFace(me:out; 
378                  aBid:Integer from Standard;  
379                  nF1 :Integer from Standard;  
380                  nF2 :Integer from Standard;  
381                  aLs :out ListOfPaveBlock from BOPTools); 
382      
383     RealSplitsInFace(me:out; 
384                  nE1 :Integer from Standard;  
385                  nF2 :Integer from Standard;  
386                  aLs :out ListOfPaveBlock from BOPTools);  
387  
388 --modified by NIZNHY-PKV Mon Oct 17 11:43:23 2011f 
389      RealSplitsInFace(me:out; 
390                  nF1 :Integer from Standard;  
391                  aLPB :out ListOfPaveBlock from BOPTools); 
392 --modified by NIZNHY-PKV Mon Oct 17 11:43:39 2011t 
393  
394     RealSplitsOnEdge(me:out; 
395                  nE1 :Integer from Standard;  
396                  nE2 :Integer from Standard;  
397                  aLs :out ListOfPaveBlock from BOPTools); 
398      
399     RealSplitsOnFace(me:out; 
400                  nE1 :Integer from Standard;  
401                  nF2 :Integer from Standard;  
402                  aLs :out ListOfPaveBlock from BOPTools); 
403
404     RealSplitsOnFace(me:out;  
405                  aBid:Integer from Standard;  
406                  nF1 :Integer from Standard;  
407                  nF2 :Integer from Standard;  
408                  aLs :out ListOfPaveBlock from BOPTools); 
409                   
410     PrepareSetForFace(me:out;   
411                 nF1 :Integer from Standard;  
412                 nF2 :Integer from Standard;  
413                 aLPB: ListOfPaveBlock from BOPTools;  
414                 aPSF:out PaveSet from BOPTools); 
415      
416     PutPaveOnCurve(me:out;   
417                 aPSF: PaveSet from BOPTools;  
418                 aTol: Real from Standard;  
419                 aBC : out Curve from BOPTools);  
420                 
421
422     PutBoundPaveOnCurve (me:out; 
423                     aBC :out Curve from BOPTools;        
424                     aFF :out SSInterference from BOPTools); 
425         
426     PutBoundPaveOnCurve (me:out;  
427                     aP  : Pnt from  gp; 
428                     aT  : Real from Standard;                    
429                     aBC :out Curve from BOPTools;        
430                     aFF :out SSInterference from BOPTools); 
431         
432     FindPave            (me:out; 
433                     aP  : Pnt from gp;  
434                     aTpV: Real from Standard;  
435                     aPS : PaveSet from BOPTools; 
436                     aPV :out Pave from BOPTools) 
437         returns Boolean from Standard; 
438          
439     CheckIntermediatePoint(me:out;  
440                     aPB : PaveBlock      from BOPTools;  
441                     aPBR: PaveBlock      from BOPTools;  
442                     aTol: Real  from  Standard) 
443         returns Integer from Standard;  
444                 
445
446     IsExistingPaveBlock (me:out; 
447                     aPB : PaveBlock       from BOPTools; 
448                     aLPB: ListOfPaveBlock from BOPTools; 
449                     aTol: Real  from  Standard) 
450         returns Boolean from Standard;  
451           
452     MakePCurves (me:out); 
453      
454     PerformVF1(me:out) 
455         is protected;  
456          
457     MakeAloneVertices(me:out) 
458         is protected;   
459          
460     AloneVertices(me)  
461         returns IndexedDataMapOfIndexedMapOfInteger from NMTTools; 
462     ---C++: return const & 
463      
464     IsExistingPaveBlock (me:out; 
465                     aPB : PaveBlock   from BOPTools; 
466                     aLPB: ListOfShape from TopTools; 
467                     aTol: Real  from  Standard) 
468         returns Boolean from Standard;  
469
470     --
471     CheckCoincidence (me:out; 
472                     aPB : PaveBlock   from BOPTools; 
473                     aLPB: ListOfPaveBlock from BOPTools) 
474         returns Boolean from Standard;  
475     -- 
476      
477     CheckIntermediatePoint(me:out;  
478                     aPB : PaveBlock      from BOPTools;  
479                     aE  : Edge from TopoDS;  
480                     aTol: Real  from  Standard) 
481         returns Integer from Standard;   
482
483     SharedEdges(me:out;  
484                  nF1  :Integer from Standard;  
485                  nF2  :Integer from Standard;  
486                  aLNE :out ListOfInteger from TColStd; 
487                  aLSE :out ListOfShape   from TopTools); 
488
489     FuseVertices(me; 
490         aC:Shape from TopoDS; 
491         aDMVV:  out  DataMapOfShapeShape from TopTools);  
492     --
493     TreatPaveBlocks(me:out; 
494             theLCB:out ListOfCommonBlock from NMTTools); 
495              
496     ChangePavePoolNew(me:out) 
497         returns PavePool from BOPTools; 
498     ---C++:return &  
499
500     CheckCoincidence (me:out; 
501                     aPB1 : PaveBlock   from BOPTools; 
502                     aPB2 : PaveBlock   from BOPTools) 
503         returns Boolean from Standard;     
504         
505     FillFaceInfo (me:out) 
506         is protected;
507  
508     CorrectTolR3D(me:out;   
509                 aFF     : SSInterference from BOPTools;  
510                 aMVStick: MapOfInteger from TColStd; 
511                 aTolR3D:  out Real from Standard) 
512         is protected;  
513          
514     PutClosingPaveOnCurve (me:out; 
515                     aBC :out Curve from BOPTools;        
516                     aFF :out SSInterference from BOPTools); 
517  
518 fields 
519     myDS               :  PShapesDataStructure from NMTDS       is protected;   
520     myIsDone           :  Boolean from Standard                 is protected; 
521     myNbSources        :  Integer from Standard                 is protected;  
522     myNbEdges          :  Integer from Standard                 is protected;  
523
524     myPavePool         :  PavePool from BOPTools                is protected;     
525     myPavePoolNew      :  PavePool from BOPTools                is protected;  
526     myCommonBlockPool  :  CommonBlockPool from NMTTools         is protected;  
527     mySplitShapesPool  :  SplitShapesPool from BOPTools         is protected;    
528     -- 
529     myContext          :  Context from IntTools                 is protected; 
530     mySectionAttribute :  SSIntersectionAttribute from BOPTools is protected; 
531     myAloneVertices    :  IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;   
532     --
533     myVSD              :  DataMapOfIntegerInteger from TColStd is protected; 
534     myDSIt             :  PIterator from NMTDS is protected;  
535     myCompositeShape   :  Shape from TopoDS is protected;
536     myIP               :  PInterfPool from NMTDS is protected;     
537     myFaceInfo         :  DataMapOfIntegerFaceInfo from NMTTools is protected;
538 end PaveFiller;