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