Salome HOME
IPAL21444 Problem of Dumps study after reading IGES file
[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     Pnt from gp,
34     ShapeEnum  from  TopAbs, 
35     Vertex     from  TopoDS, 
36     Face       from  TopoDS,  
37     Shape      from TopoDS, 
38     -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
39     -- Contribution of Samtech www.samcef.com BEGIN 
40     Edge       from  TopoDS, 
41     ListOfShape from TopTools,  
42     DataMapOfShapeShape from TopTools,
43     ListOfInteger from TColStd,  
44     -- Contribution of Samtech www.samcef.com END 
45     
46     Context     from IntTools, 
47     ShrunkRange from IntTools,
48     
49     IndexedDataMapOfShapeInteger from BooleanOperations, 
50
51     PavePool          from BOPTools, 
52     PaveBlock         from BOPTools,
53     ListOfPaveBlock   from BOPTools,
54     SplitShapesPool   from BOPTools, 
55     Pave              from BOPTools, 
56     PaveSet           from BOPTools, 
57     Curve             from BOPTools, 
58     SSInterference    from BOPTools, 
59     
60     IDMapOfPaveBlockIMapOfPaveBlock from BOPTools, 
61     IDMapOfPaveBlockIMapOfInteger   from BOPTools, 
62     SSIntersectionAttribute         from BOPTools, 
63     
64     CommonBlockPool         from NMTTools, 
65     CommonBlock             from NMTTools, 
66     ListOfCommonBlock       from NMTTools, 
67    
68     ShapesDataStructure  from NMTDS,  
69
70     -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
71     -- Contribution of Samtech www.samcef.com BEGIN
72     PShapesDataStructure from NMTDS, 
73     Iterator             from NMTDS, 
74     IndexedDataMapOfIndexedMapOfInteger from NMTTools,  
75     -- Contribution of Samtech www.samcef.com END
76      
77     PIterator from NMTDS, 
78     PInterfPool from NMTDS
79
80 --raises
81
82 is 
83     Create 
84         returns PaveFiller from NMTTools;  
85     ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
86       
87   
88      
89     SetCompositeShape (me:out;  
90             aS:  Shape from TopoDS);  
91      
92     CompositeShape(me) 
93         returns  Shape from TopoDS; 
94         ---C++:  return  const&  
95         
96              
97     DS(me:out) 
98         returns PShapesDataStructure from NMTDS;  
99  
100     DSIt(me:out) 
101         returns PIterator from NMTDS; 
102      
103     IP(me:out)  
104         returns PInterfPool from NMTDS; 
105     --   
106     --  Perform the algo  
107     -- Modified to add new method Thu Sep 14 14:35:18 2006 
108     -- Contribution of Samtech www.samcef.com BEGIN      
109     Init       (me:out) 
110         is virtual  protected; 
111     -- Contribution of Samtech www.samcef.com END
112          
113     Clear   (me:out) 
114         is virtual  protected;
115
116     Perform    (me:out) 
117         is virtual;   
118          
119     PerformVV  (me:out) 
120         is virtual protected;  
121      
122     PerformVE  (me:out) 
123         is virtual protected; 
124      
125     PerformVF  (me:out) 
126         is virtual protected; 
127
128     PerformEE (me:out) 
129         is virtual protected; 
130       
131     PerformEF (me:out) 
132         is virtual protected; 
133    
134     PerformFF (me:out) 
135         is virtual protected; 
136      
137     MakeSplitEdges(me:out) 
138         is protected;   
139      
140     PreparePaveBlocks (me:out; 
141             aType1: ShapeEnum  from  TopAbs; 
142             aType2: ShapeEnum  from  TopAbs) 
143         is virtual protected; 
144      
145     CorrectShrunkRanges(me:out; 
146             aSide:  Integer  from  Standard; 
147             aPave:  Pave from BOPTools; 
148             aSR  :  out ShrunkRange  from  IntTools)
149         is protected; 
150          
151     PreparePaveBlocks (me:out;   
152             anE:Integer from Standard) 
153         is virtual protected;             
154         
155      
156     PrepareEdges  (me:out) 
157         is virtual protected;  
158      
159     --
160     -- Query section 
161     IsDone(me) 
162         returns  Boolean from Standard; 
163
164     Context(me) 
165          returns Context from IntTools; 
166         ---C++:return const &   
167
168     ChangeContext(me:out) 
169          returns Context from IntTools;  
170         ---C++:return & 
171
172     PavePool(me) 
173         returns  PavePool from BOPTools; 
174         ---C++:return const &    
175
176     ChangePavePool(me:out) 
177         returns  PavePool from BOPTools; 
178         ---C++:return & 
179
180     CommonBlockPool(me) 
181         returns  CommonBlockPool from NMTTools; 
182         ---C++:return const &    
183
184     ChangeCommonBlockPool(me:out) 
185         returns  CommonBlockPool from NMTTools; 
186         ---C++:return & 
187
188     SplitShapesPool(me)  
189         returns  SplitShapesPool from BOPTools;
190         ---C++:return const &   
191
192     ChangeSplitShapesPool(me:out)  
193         returns  SplitShapesPool from BOPTools;
194         ---C++:return  &        
195      
196     FindSDVertex (me; 
197                     nV:  Integer  from  Standard) 
198         returns Integer from Standard; 
199
200     IsSuccessorsComputed (me;  
201             iF1:Integer from  Standard; 
202             iF2:Integer from  Standard) 
203         returns  Boolean from Standard 
204         is protected;  
205
206     IsBlocksCoinside (me; 
207             aPB1:PaveBlock from BOPTools;
208             aPB2:PaveBlock from BOPTools) 
209         returns Boolean from Standard 
210         is protected; 
211      
212     RefinePavePool(me:out) 
213         is protected;  
214
215     CheckFacePaves(me:out;  
216              aV : Vertex  from TopoDS;  
217              nF:  Integer from Standard) 
218         returns Integer from Standard 
219         is protected;  
220          
221     ReplaceCommonBlocks (me:out; 
222             aLCB: ListOfCommonBlock from NMTTools) 
223         is protected; 
224      
225     RemoveCommonBlocks (me:out; 
226             aLCB: ListOfCommonBlock from NMTTools) 
227         is protected;
228      
229     SplitCommonBlocks (me:out; 
230             aLCB: ListOfCommonBlock from NMTTools) 
231         is protected;  
232
233     SplitCommonBlock (me:out; 
234             aCB : CommonBlock from NMTTools; 
235             aLCB: out ListOfCommonBlock from NMTTools) 
236         is protected; 
237
238     EECommonBlocks(me:out; 
239             aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools) 
240         is protected; 
241      
242     EFCommonBlocks(me:out;  
243              aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools) 
244         is protected;  
245          
246     EENewVertices (me:out;  
247             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
248         is protected;  
249
250     EENewVertices (me:out;  
251             aV:Vertex from TopoDS;  
252             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
253         is protected; 
254      
255     EFNewVertices (me:out; 
256             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
257         is protected; 
258      
259     EFNewVertices (me:out; 
260             aV:Vertex from TopoDS;  
261             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
262         is protected;   
263          
264     UpdateCommonBlocks(me:out) 
265         is protected;  
266      
267     UpdatePaveBlocks(me:out) 
268         is protected; 
269          
270     SplitIndex(me; 
271             aPB:PaveBlock from BOPTools) 
272         returns Integer from Standard  
273         is protected;                
274          
275     MakeBlocks(me:out) 
276         is protected;   
277
278     -------------------------------------------------------------- 
279     ---   
280     ---  Some API FUNCTIONS  
281     ---                  
282     SplitsInFace(me:out; 
283                  aBid:Integer from Standard;  
284                  nF1 :Integer from Standard;  
285                  nF2 :Integer from Standard;  
286                  aLs :out ListOfInteger from TColStd) 
287         returns Integer from Standard;  
288
289     SplitsInFace(me:out; 
290                  nE1 :Integer from Standard;  
291                  nF2 :Integer from Standard;  
292                  aLs :out ListOfInteger from TColStd) 
293         returns Integer from Standard;  
294         
295     SplitsOnEdge(me:out; 
296                  nE1 :Integer from Standard;  
297                  nE2 :Integer from Standard;  
298                  aLs :out ListOfInteger from TColStd) 
299         returns Integer from Standard;  
300         
301     SplitsOnFace(me:out; 
302                  nE1 :Integer from Standard;  
303                  nF2 :Integer from Standard;  
304                  aLs :out ListOfInteger from TColStd) 
305         returns Integer from Standard;  
306         
307     SplitsOnFace(me:out;  
308                  aBid:Integer from Standard;  
309                  nF1 :Integer from Standard;  
310                  nF2 :Integer from Standard;  
311                  aLs :out ListOfInteger from TColStd) 
312         returns Integer from Standard;  
313         
314     SplitsInFace(me:out; 
315                  aBid:Integer from Standard;  
316                  nF1 :Integer from Standard;  
317                  nF2 :Integer from Standard;  
318                  aLs :out ListOfPaveBlock from BOPTools) 
319         returns Integer from Standard;  
320      
321     SplitsInFace(me:out; 
322                  nE1 :Integer from Standard;  
323                  nF2 :Integer from Standard;  
324                  aLs :out ListOfPaveBlock from BOPTools) 
325         returns Integer from Standard;  
326      
327     SplitsOnEdge(me:out; 
328                  nE1 :Integer from Standard;  
329                  nE2 :Integer from Standard;  
330                  aLs :out ListOfPaveBlock from BOPTools) 
331         returns Integer from Standard;  
332      
333     SplitsOnFace(me:out; 
334                  nE1 :Integer from Standard;  
335                  nF2 :Integer from Standard;  
336                  aLs :out ListOfPaveBlock from BOPTools) 
337         returns Integer from Standard;  
338
339     SplitsOnFace(me:out;  
340                  aBid:Integer from Standard;  
341                  nF1 :Integer from Standard;  
342                  nF2 :Integer from Standard;  
343                  aLs :out ListOfPaveBlock from BOPTools) 
344         returns Integer from Standard;  
345     --
346     SplitsFace  (me:out;  
347                  nF2 :Integer from Standard;  
348                  aLs :out ListOfPaveBlock from BOPTools) 
349         returns Integer from Standard;  
350
351     SplitsFace  (me:out;  
352                  nF2 :Integer from Standard;  
353                  aLs :out ListOfInteger from TColStd) 
354         returns Integer from Standard;  
355
356     CommonBlocksFace (me:out;  
357                  nF  :Integer from Standard;  
358                  aLCB:out ListOfCommonBlock from NMTTools) 
359         returns Integer from Standard;   
360         
361     PrepareFace(me:out;  
362             nF  :  Integer from Standard; 
363             aF  : out Face from TopoDS); 
364      
365     -- 
366     RealPaveBlock(me:out;   
367             aPB:PaveBlock from BOPTools) 
368         returns PaveBlock from BOPTools; 
369     ---C++: return const &         
370     
371     --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007  f
372     RealPaveBlock(me:out;   
373             aPB:PaveBlock from BOPTools; 
374             aLB:out ListOfInteger from TColStd; 
375             aIsCommonBlock:out  Integer from Standard) 
376         returns PaveBlock from BOPTools; 
377     ---C++: return const &       
378     --modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007  t 
379      
380     RealSplitsFace  (me:out;  
381                  nF2 :Integer from Standard;  
382                  aLs :out ListOfPaveBlock from BOPTools); 
383          
384     HasRealSplitsInOnFace (me:out; 
385                  nF1 :Integer from Standard;  
386                  nF2 :Integer from Standard) 
387         returns Boolean from Standard; 
388          
389     RealSplitsInFace(me:out; 
390                  aBid:Integer from Standard;  
391                  nF1 :Integer from Standard;  
392                  nF2 :Integer from Standard;  
393                  aLs :out ListOfPaveBlock from BOPTools); 
394      
395     RealSplitsInFace(me:out; 
396                  nE1 :Integer from Standard;  
397                  nF2 :Integer from Standard;  
398                  aLs :out ListOfPaveBlock from BOPTools); 
399      
400     RealSplitsOnEdge(me:out; 
401                  nE1 :Integer from Standard;  
402                  nE2 :Integer from Standard;  
403                  aLs :out ListOfPaveBlock from BOPTools); 
404      
405     RealSplitsOnFace(me:out; 
406                  nE1 :Integer from Standard;  
407                  nF2 :Integer from Standard;  
408                  aLs :out ListOfPaveBlock from BOPTools); 
409
410     RealSplitsOnFace(me:out;  
411                  aBid:Integer from Standard;  
412                  nF1 :Integer from Standard;  
413                  nF2 :Integer from Standard;  
414                  aLs :out ListOfPaveBlock from BOPTools); 
415     --   
416     PrepareSetForFace(me:out;   
417                 nF1 :Integer from Standard;  
418                 nF2 :Integer from Standard;  
419                 aLPB: ListOfPaveBlock from BOPTools;  
420                 aPSF:out PaveSet from BOPTools); 
421                  
422     PutPaveOnCurve(me:out;   
423                 aPSF: PaveSet from BOPTools; 
424                 aTol: Real from Standard;  
425                 aBC : out Curve from BOPTools); 
426          
427     PutBoundPaveOnCurve (me:out; 
428                     aBC :out Curve from BOPTools;        
429                     aFF :out SSInterference from BOPTools); 
430         
431     PutBoundPaveOnCurve (me:out;  
432                     aP  : Pnt from  gp; 
433                     aT  : Real from Standard;                    
434                     aBC :out Curve from BOPTools;        
435                     aFF :out SSInterference from BOPTools); 
436         
437     FindPave            (me:out; 
438                     aP  : Pnt from gp;  
439                     aTpV: Real from Standard;  
440                     aPS : PaveSet from BOPTools; 
441                     aPV :out Pave from BOPTools) 
442         returns Boolean from Standard; 
443          
444     CheckIntermediatePoint(me:out;  
445                     aPB : PaveBlock      from BOPTools;  
446                     aPBR: PaveBlock      from BOPTools;  
447                     aTol: Real  from  Standard) 
448         returns Integer from Standard;  
449                 
450
451     IsExistingPaveBlock (me:out; 
452                     aPB : PaveBlock       from BOPTools; 
453                     aLPB: ListOfPaveBlock from BOPTools; 
454                     aTol: Real  from  Standard) 
455         returns Boolean from Standard;  
456           
457     MakePCurves (me:out); 
458      
459     -- Modified to add new methods Thu Sep 14 14:35:18 2006 
460     -- Contribution of Samtech www.samcef.com BEGIN
461     PerformVF1(me:out) 
462         is protected;  
463          
464     MakeAloneVertices(me:out) 
465         is protected;   
466          
467     AloneVertices(me)  
468         returns IndexedDataMapOfIndexedMapOfInteger from NMTTools; 
469     ---C++: return const & 
470     -- Contribution of Samtech www.samcef.com END 
471      
472     IsExistingPaveBlock (me:out; 
473                     aPB : PaveBlock   from BOPTools; 
474                     aLPB: ListOfShape from TopTools; 
475                     aTol: Real  from  Standard) 
476         returns Boolean from Standard;  
477
478     --
479     CheckCoincidence (me:out; 
480                     aPB : PaveBlock   from BOPTools; 
481                     aLPB: ListOfPaveBlock from BOPTools) 
482         returns Boolean from Standard;  
483     -- 
484      
485     CheckIntermediatePoint(me:out;  
486                     aPB : PaveBlock      from BOPTools;  
487                     aE  : Edge from TopoDS;  
488                     aTol: Real  from  Standard) 
489         returns Integer from Standard;   
490
491     -- Modified to add new method Thu Sep 14 14:35:18 2006 
492     -- Contribution of Samtech www.samcef.com BEGIN
493     SharedEdges(me:out;  
494                  nF1  :Integer from Standard;  
495                  nF2  :Integer from Standard;  
496                  aLNE :out ListOfInteger from TColStd; 
497                  aLSE :out ListOfShape   from TopTools); 
498     -- Contribution of Samtech www.samcef.com END 
499
500     FuseVertices(me; 
501         aC:Shape from TopoDS; 
502         aDMVV:  out  DataMapOfShapeShape from TopTools);  
503      
504 fields 
505     myDS               :  PShapesDataStructure from NMTDS       is protected;   
506     myIsDone           :  Boolean from Standard                 is protected; 
507     myNbSources        :  Integer from Standard                 is protected;  
508     myNbEdges          :  Integer from Standard                 is protected;  
509
510     myPavePool         :  PavePool from BOPTools                is protected;     
511     myPavePoolNew      :  PavePool from BOPTools                is protected;  
512     myCommonBlockPool  :  CommonBlockPool from NMTTools         is protected;  
513     mySplitShapesPool  :  SplitShapesPool from BOPTools         is protected;    
514     -- 
515     myContext          :  Context from IntTools                 is protected; 
516     mySectionAttribute :  SSIntersectionAttribute from BOPTools is protected; 
517     myAloneVertices    :  IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;   
518     --
519     myVSD              :  DataMapOfIntegerInteger from TColStd is protected; 
520     myDSIt             :  PIterator from NMTDS is protected;  
521     myCompositeShape   :  Shape from TopoDS is protected;
522     myIP               :  PInterfPool from NMTDS is protected;     
523
524 end PaveFiller;