Salome HOME
Copyrights update
[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/
19 //
20 -- File:        NMTTools_PaveFiller.cdl
21 -- Created:     Fri Dec  5 14:35:00 2003
22 -- Author:      Peter KURNEV
23 --              <pkv@irinox>
24 ---Copyright:    Matra Datavision 2003
25
26
27 class PaveFiller from NMTTools 
28
29         ---Purpose: 
30
31 uses    
32     ListOfInteger from TColStd,
33     Pnt from gp,
34     ShapeEnum  from  TopAbs, 
35     Vertex     from  TopoDS, 
36     Face       from  TopoDS, 
37     
38     Context     from IntTools, 
39     ShrunkRange from IntTools,
40       
41     IndexedDataMapOfShapeInteger from BooleanOperations, 
42     
43     InterferencePool  from BOPTools,
44     PInterferencePool from BOPTools, 
45     PavePool          from BOPTools, 
46     PaveBlock         from BOPTools,
47     ListOfPaveBlock   from BOPTools,
48     SplitShapesPool   from BOPTools, 
49     Pave              from BOPTools, 
50     PaveSet           from BOPTools, 
51     Curve             from BOPTools, 
52     SSInterference    from BOPTools, 
53     
54     IDMapOfPaveBlockIMapOfPaveBlock from BOPTools, 
55     IDMapOfPaveBlockIMapOfInteger   from BOPTools, 
56     SSIntersectionAttribute         from BOPTools, 
57     
58     CommonBlockPool         from NMTTools, 
59     CommonBlock             from NMTTools, 
60     ListOfCommonBlock       from NMTTools,
61     IteratorOfCoupleOfShape from NMTTools,
62     
63     ShapesDataStructure  from NMTDS, 
64     PShapesDataStructure from NMTDS 
65     
66 --raises
67
68 is 
69     Create 
70         returns PaveFiller from NMTTools; 
71       
72     Create(aIP:InterferencePool from BOPTools)
73         returns PaveFiller from NMTTools; 
74      
75     Destroy (me: in out) 
76         is  virtual;    
77     ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();}"
78     -- 
79     --  Selectors/Modifiers
80     SetInterferencePool(me:out; 
81             aIP:InterferencePool from BOPTools);
82     
83     InterfPool(me:out) 
84         returns PInterferencePool from BOPTools; 
85     --   
86     --  Perform the algo  
87     Init       (me:out) 
88         is protected; 
89          
90     Perform    (me:out) 
91         is virtual;   
92          
93     PerformVV  (me:out) 
94         is virtual protected;  
95      
96     PerformVE  (me:out) 
97         is virtual protected; 
98      
99     PerformVF  (me:out) 
100         is virtual protected; 
101
102     PerformEE (me:out) 
103         is virtual protected; 
104       
105     PerformEF (me:out) 
106         is virtual protected; 
107    
108     PerformFF (me:out) 
109         is virtual protected; 
110      
111     MakeSplitEdges(me:out) 
112         is protected;   
113      
114     PreparePaveBlocks (me:out; 
115             aType1: ShapeEnum  from  TopAbs; 
116             aType2: ShapeEnum  from  TopAbs) 
117         is virtual protected; 
118      
119     CorrectShrunkRanges(me:out; 
120             aSide:  Integer  from  Standard; 
121             aPave:  Pave from BOPTools; 
122             aSR  :  out ShrunkRange  from  IntTools)
123         is protected; 
124          
125     PreparePaveBlocks (me:out;   
126             anE:Integer from Standard) 
127         is virtual protected;             
128                        
129     PerformNewVertices  (me:out) 
130         is virtual protected;  
131      
132     PrepareEdges  (me:out) 
133         is virtual protected;  
134      
135     SortTypes      (me;   
136             anInd1:in out Integer from Standard; 
137             anInd2:in out Integer from Standard) 
138         is protected; 
139      
140     ExpectedPoolLength(me) 
141         returns  Integer from Standard 
142         is protected;  
143     --
144     -- Query section 
145     IsDone(me) 
146         returns  Boolean from Standard; 
147
148     DS(me:out) 
149         returns PShapesDataStructure from NMTDS;  
150          
151     Context(me) 
152          returns Context from IntTools; 
153         ---C++:return const &   
154
155     ChangeContext(me:out) 
156          returns Context from IntTools;  
157         ---C++:return & 
158
159     PavePool(me) 
160         returns  PavePool from BOPTools; 
161         ---C++:return const &    
162
163     ChangePavePool(me:out) 
164         returns  PavePool from BOPTools; 
165         ---C++:return & 
166
167     CommonBlockPool(me) 
168         returns  CommonBlockPool from NMTTools; 
169         ---C++:return const &    
170
171     ChangeCommonBlockPool(me:out) 
172         returns  CommonBlockPool from NMTTools; 
173         ---C++:return & 
174
175     SplitShapesPool(me)  
176         returns  SplitShapesPool from BOPTools;
177         ---C++:return const &   
178
179     ChangeSplitShapesPool(me:out)  
180         returns  SplitShapesPool from BOPTools;
181         ---C++:return  &        
182      
183     FindSDVertex (me; 
184                     nV:  Integer  from  Standard) 
185         returns Integer from Standard; 
186
187     IsSuccesstorsComputed (me;  
188             iF1:Integer from  Standard; 
189             iF2:Integer from  Standard) 
190         returns  Boolean from Standard 
191         is protected;  
192
193     IsBlocksCoinside (me; 
194             aPB1:PaveBlock from BOPTools;
195             aPB2:PaveBlock from BOPTools) 
196         returns Boolean from Standard 
197         is protected; 
198      
199     RefinePavePool(me:out) 
200         is protected;  
201
202     CheckFacePaves(me:out;  
203              aV : Vertex  from TopoDS;  
204              nF:  Integer from Standard) 
205         returns Integer from Standard 
206         is protected;  
207          
208     ReplaceCommonBlocks (me:out; 
209             aLCB: ListOfCommonBlock from NMTTools) 
210         is protected; 
211      
212     RemoveCommonBlocks (me:out; 
213             aLCB: ListOfCommonBlock from NMTTools) 
214         is protected;
215      
216     SplitCommonBlocks (me:out; 
217             aLCB: ListOfCommonBlock from NMTTools) 
218         is protected;  
219
220     SplitCommonBlock (me:out; 
221             aCB : CommonBlock from NMTTools; 
222             aLCB: out ListOfCommonBlock from NMTTools) 
223         is protected; 
224
225     EECommonBlocks(me:out; 
226             aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools) 
227         is protected; 
228      
229     EFCommonBlocks(me:out;  
230              aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools) 
231         is protected;  
232          
233     EENewVertices (me:out;  
234             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
235         is protected;  
236
237     EENewVertices (me:out;  
238             aV:Vertex from TopoDS;  
239             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
240         is protected; 
241      
242     EFNewVertices (me:out; 
243             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
244         is protected; 
245      
246     EFNewVertices (me:out; 
247             aV:Vertex from TopoDS;  
248             aM:IndexedDataMapOfShapeInteger from BooleanOperations) 
249         is protected;   
250          
251     UpdateCommonBlocks(me:out) 
252         is protected;  
253      
254     UpdatePaveBlocks(me:out) 
255         is protected; 
256          
257     SplitIndex(me; 
258             aPB:PaveBlock from BOPTools) 
259         returns Integer from Standard  
260         is protected;                
261          
262     MakeBlocks(me:out) 
263         is protected;   
264
265     -------------------------------------------------------------- 
266     ---   
267     ---  Some API FUNCTIONS  
268     ---                  
269     SplitsInFace(me:out; 
270                  aBid:Integer from Standard;  
271                  nF1 :Integer from Standard;  
272                  nF2 :Integer from Standard;  
273                  aLs :out ListOfInteger from TColStd) 
274         returns Integer from Standard;  
275
276     SplitsInFace(me:out; 
277                  nE1 :Integer from Standard;  
278                  nF2 :Integer from Standard;  
279                  aLs :out ListOfInteger from TColStd) 
280         returns Integer from Standard;  
281         
282     SplitsOnEdge(me:out; 
283                  nE1 :Integer from Standard;  
284                  nE2 :Integer from Standard;  
285                  aLs :out ListOfInteger from TColStd) 
286         returns Integer from Standard;  
287         
288     SplitsOnFace(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     SplitsOnFace(me:out;  
295                  aBid:Integer from Standard;  
296                  nF1 :Integer from Standard;  
297                  nF2 :Integer from Standard;  
298                  aLs :out ListOfInteger from TColStd) 
299         returns Integer from Standard;  
300         
301     SplitsInFace(me:out; 
302                  aBid:Integer from Standard;  
303                  nF1 :Integer from Standard;  
304                  nF2 :Integer from Standard;  
305                  aLs :out ListOfPaveBlock from BOPTools) 
306         returns Integer from Standard;  
307      
308     SplitsInFace(me:out; 
309                  nE1 :Integer from Standard;  
310                  nF2 :Integer from Standard;  
311                  aLs :out ListOfPaveBlock from BOPTools) 
312         returns Integer from Standard;  
313      
314     SplitsOnEdge(me:out; 
315                  nE1 :Integer from Standard;  
316                  nE2 :Integer from Standard;  
317                  aLs :out ListOfPaveBlock from BOPTools) 
318         returns Integer from Standard;  
319      
320     SplitsOnFace(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     SplitsOnFace(me:out;  
327                  aBid:Integer from Standard;  
328                  nF1 :Integer from Standard;  
329                  nF2 :Integer from Standard;  
330                  aLs :out ListOfPaveBlock from BOPTools) 
331         returns Integer from Standard;  
332     --
333     SplitsFace  (me:out;  
334                  nF2 :Integer from Standard;  
335                  aLs :out ListOfPaveBlock from BOPTools) 
336         returns Integer from Standard;  
337
338     SplitsFace  (me:out;  
339                  nF2 :Integer from Standard;  
340                  aLs :out ListOfInteger from TColStd) 
341         returns Integer from Standard;  
342
343     CommonBlocksFace (me:out;  
344                  nF  :Integer from Standard;  
345                  aLCB:out ListOfCommonBlock from NMTTools) 
346         returns Integer from Standard;   
347         
348     PrepareFace(me:out;  
349             nF  :  Integer from Standard; 
350             aF  : out Face from TopoDS); 
351      
352     -- 
353     RealPaveBlock(me:out;   
354             aPB:PaveBlock from BOPTools) 
355         returns PaveBlock from BOPTools; 
356     ---C++: return const &       
357     -- 
358     RealSplitsFace  (me:out;  
359                  nF2 :Integer from Standard;  
360                  aLs :out ListOfPaveBlock from BOPTools); 
361          
362     HasRealSplitsInOnFace (me:out; 
363                  nF1 :Integer from Standard;  
364                  nF2 :Integer from Standard) 
365         returns Boolean from Standard; 
366          
367     RealSplitsInFace(me:out; 
368                  aBid:Integer from Standard;  
369                  nF1 :Integer from Standard;  
370                  nF2 :Integer from Standard;  
371                  aLs :out ListOfPaveBlock from BOPTools); 
372      
373     RealSplitsInFace(me:out; 
374                  nE1 :Integer from Standard;  
375                  nF2 :Integer from Standard;  
376                  aLs :out ListOfPaveBlock from BOPTools); 
377      
378     RealSplitsOnEdge(me:out; 
379                  nE1 :Integer from Standard;  
380                  nE2 :Integer from Standard;  
381                  aLs :out ListOfPaveBlock from BOPTools); 
382      
383     RealSplitsOnFace(me:out; 
384                  nE1 :Integer from Standard;  
385                  nF2 :Integer from Standard;  
386                  aLs :out ListOfPaveBlock from BOPTools); 
387
388     RealSplitsOnFace(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     PrepareSetForFace(me:out;   
395                 nF1 :Integer from Standard;  
396                 nF2 :Integer from Standard;  
397     --modified by NIZNHY-PKV Fri Apr  1 11:19:15 2005f          
398                 aLPB: ListOfPaveBlock from BOPTools;  
399     --modified by NIZNHY-PKV Fri Apr  1 10:54:16 2005t    
400                 aPSF:out PaveSet from BOPTools); 
401                  
402     PutPaveOnCurve(me:out;   
403                 aPSF: PaveSet from BOPTools; 
404                 aTol: Real from Standard;  
405                 aBC : out Curve from BOPTools); 
406          
407     PutBoundPaveOnCurve (me:out; 
408                     aBC :out Curve from BOPTools;        
409                     aFF :out SSInterference from BOPTools); 
410         
411     PutBoundPaveOnCurve (me:out;  
412                     aP  : Pnt from  gp; 
413                     aT  : Real from Standard;                    
414                     aBC :out Curve from BOPTools;        
415                     aFF :out SSInterference from BOPTools); 
416         
417     FindPave            (me:out; 
418                     aP  : Pnt from gp;  
419                     aTpV: Real from Standard;  
420                     aPS : PaveSet from BOPTools; 
421                     aPV :out Pave from BOPTools) 
422         returns Boolean from Standard; 
423          
424     CheckIntermediatePoint(me:out;  
425                     aPB : PaveBlock      from BOPTools;  
426                     aPBR: PaveBlock      from BOPTools;  
427                     aTol: Real  from  Standard) 
428         returns Integer from Standard;  
429                 
430 --    IsExistingPaveBlock (me:out; 
431 --                  aPB : PaveBlock      from BOPTools; 
432 --                  aFF : SSInterference from BOPTools) 
433 --      returns Boolean from Standard;  
434         
435 --modified by NIZNHY-PKV Fri Apr  1 09:35:34 2005f       
436     IsExistingPaveBlock (me:out; 
437                     aPB : PaveBlock       from BOPTools; 
438                     aLPB: ListOfPaveBlock from BOPTools; 
439                     aTol: Real  from  Standard) 
440         returns Boolean from Standard;  
441 --modified by NIZNHY-PKV Fri Apr  1 09:35:39 2005t       
442           
443     MakePCurves (me:out); 
444      
445 fields 
446     myIntrPool         :  PInterferencePool from BOPTools       is protected; 
447     myDS               :  PShapesDataStructure from NMTDS       is protected;   
448     myIsDone           :  Boolean from Standard                 is protected; 
449     myNbSources        :  Integer from Standard                 is protected;  
450     myNbEdges          :  Integer from Standard                 is protected;      
451     myDSIt             :  IteratorOfCoupleOfShape from NMTTools is protected;
452     -- 
453     myPavePool         :  PavePool from BOPTools                is protected;     
454     myPavePoolNew      :  PavePool from BOPTools                is protected;  
455     myCommonBlockPool  :  CommonBlockPool from NMTTools         is protected;  
456     mySplitShapesPool  :  SplitShapesPool from BOPTools         is protected;    
457     -- 
458     myContext          :  Context from IntTools                 is protected; 
459     mySectionAttribute :  SSIntersectionAttribute from BOPTools is protected;
460 end PaveFiller;