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