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