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