1 -- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 -- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 -- File: NMTTools_PaveFiller.cdl
21 -- Created: Fri Dec 5 14:35:00 2003
22 -- Author: Peter KURNEV
26 class PaveFiller from NMTTools
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,
37 ShapeEnum from TopAbs,
40 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
41 -- Contribution of Samtech www.samcef.com BEGIN
43 ListOfShape from TopTools,
44 -- Contribution of Samtech www.samcef.com END
46 Context from IntTools,
47 ShrunkRange from IntTools,
49 IndexedDataMapOfShapeInteger from BooleanOperations,
51 InterferencePool from BOPTools,
52 PInterferencePool from BOPTools,
53 PavePool from BOPTools,
54 PaveBlock from BOPTools,
55 ListOfPaveBlock from BOPTools,
56 SplitShapesPool from BOPTools,
58 PaveSet from BOPTools,
60 SSInterference from BOPTools,
62 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
63 IDMapOfPaveBlockIMapOfInteger from BOPTools,
64 SSIntersectionAttribute from BOPTools,
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,
78 -- Contribution of Samtech www.samcef.com END
84 returns PaveFiller from NMTTools;
86 Create(aIP:InterferencePool from BOPTools)
87 returns PaveFiller from NMTTools;
91 ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();}"
93 -- Selectors/Modifiers
94 SetInterferencePool(me:out;
95 aIP:InterferencePool from BOPTools);
98 returns PInterferencePool from BOPTools;
101 -- Modified to add new method Thu Sep 14 14:35:18 2006
102 -- Contribution of Samtech www.samcef.com BEGIN
104 -- Contribution of Samtech www.samcef.com END
113 is virtual protected;
116 is virtual protected;
119 is virtual protected;
122 is virtual protected;
125 is virtual protected;
127 MakeSplitEdges(me:out)
130 PreparePaveBlocks (me:out;
131 aType1: ShapeEnum from TopAbs;
132 aType2: ShapeEnum from TopAbs)
133 is virtual protected;
135 CorrectShrunkRanges(me:out;
136 aSide: Integer from Standard;
137 aPave: Pave from BOPTools;
138 aSR : out ShrunkRange from IntTools)
141 PreparePaveBlocks (me:out;
142 anE:Integer from Standard)
143 is virtual protected;
145 PerformNewVertices (me:out)
148 PrepareEdges (me:out)
149 is virtual protected;
152 anInd1:in out Integer from Standard;
153 anInd2:in out Integer from Standard)
156 ExpectedPoolLength(me)
157 returns Integer from Standard
162 returns Boolean from Standard;
165 returns PShapesDataStructure from NMTDS;
168 returns Context from IntTools;
169 ---C++:return const &
171 ChangeContext(me:out)
172 returns Context from IntTools;
176 returns PavePool from BOPTools;
177 ---C++:return const &
179 ChangePavePool(me:out)
180 returns PavePool from BOPTools;
184 returns CommonBlockPool from NMTTools;
185 ---C++:return const &
187 ChangeCommonBlockPool(me:out)
188 returns CommonBlockPool from NMTTools;
192 returns SplitShapesPool from BOPTools;
193 ---C++:return const &
195 ChangeSplitShapesPool(me:out)
196 returns SplitShapesPool from BOPTools;
200 nV: Integer from Standard)
201 returns Integer from Standard;
203 IsSuccesstorsComputed (me;
204 iF1:Integer from Standard;
205 iF2:Integer from Standard)
206 returns Boolean from Standard
209 IsBlocksCoinside (me;
210 aPB1:PaveBlock from BOPTools;
211 aPB2:PaveBlock from BOPTools)
212 returns Boolean from Standard
215 RefinePavePool(me:out)
218 CheckFacePaves(me:out;
219 aV : Vertex from TopoDS;
220 nF: Integer from Standard)
221 returns Integer from Standard
224 ReplaceCommonBlocks (me:out;
225 aLCB: ListOfCommonBlock from NMTTools)
228 RemoveCommonBlocks (me:out;
229 aLCB: ListOfCommonBlock from NMTTools)
232 SplitCommonBlocks (me:out;
233 aLCB: ListOfCommonBlock from NMTTools)
236 SplitCommonBlock (me:out;
237 aCB : CommonBlock from NMTTools;
238 aLCB: out ListOfCommonBlock from NMTTools)
241 EECommonBlocks(me:out;
242 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
245 EFCommonBlocks(me:out;
246 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
249 EENewVertices (me:out;
250 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
253 EENewVertices (me:out;
254 aV:Vertex from TopoDS;
255 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
258 EFNewVertices (me:out;
259 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
262 EFNewVertices (me:out;
263 aV:Vertex from TopoDS;
264 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
267 UpdateCommonBlocks(me:out)
270 UpdatePaveBlocks(me:out)
274 aPB:PaveBlock from BOPTools)
275 returns Integer from Standard
281 --------------------------------------------------------------
283 --- Some API FUNCTIONS
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;
293 nE1 :Integer from Standard;
294 nF2 :Integer from Standard;
295 aLs :out ListOfInteger from TColStd)
296 returns Integer from Standard;
299 nE1 :Integer from Standard;
300 nE2 :Integer from Standard;
301 aLs :out ListOfInteger from TColStd)
302 returns Integer from Standard;
305 nE1 :Integer from Standard;
306 nF2 :Integer from Standard;
307 aLs :out ListOfInteger from TColStd)
308 returns Integer from Standard;
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;
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;
325 nE1 :Integer from Standard;
326 nF2 :Integer from Standard;
327 aLs :out ListOfPaveBlock from BOPTools)
328 returns Integer from Standard;
331 nE1 :Integer from Standard;
332 nE2 :Integer from Standard;
333 aLs :out ListOfPaveBlock from BOPTools)
334 returns Integer from Standard;
337 nE1 :Integer from Standard;
338 nF2 :Integer from Standard;
339 aLs :out ListOfPaveBlock from BOPTools)
340 returns Integer from Standard;
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;
350 nF2 :Integer from Standard;
351 aLs :out ListOfPaveBlock from BOPTools)
352 returns Integer from Standard;
355 nF2 :Integer from Standard;
356 aLs :out ListOfInteger from TColStd)
357 returns Integer from Standard;
359 CommonBlocksFace (me:out;
360 nF :Integer from Standard;
361 aLCB:out ListOfCommonBlock from NMTTools)
362 returns Integer from Standard;
365 nF : Integer from Standard;
366 aF : out Face from TopoDS);
369 RealPaveBlock(me:out;
370 aPB:PaveBlock from BOPTools)
371 returns PaveBlock from BOPTools;
372 ---C++: return const &
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
383 RealSplitsFace (me:out;
384 nF2 :Integer from Standard;
385 aLs :out ListOfPaveBlock from BOPTools);
387 HasRealSplitsInOnFace (me:out;
388 nF1 :Integer from Standard;
389 nF2 :Integer from Standard)
390 returns Boolean from Standard;
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);
398 RealSplitsInFace(me:out;
399 nE1 :Integer from Standard;
400 nF2 :Integer from Standard;
401 aLs :out ListOfPaveBlock from BOPTools);
403 RealSplitsOnEdge(me:out;
404 nE1 :Integer from Standard;
405 nE2 :Integer from Standard;
406 aLs :out ListOfPaveBlock from BOPTools);
408 RealSplitsOnFace(me:out;
409 nE1 :Integer from Standard;
410 nF2 :Integer from Standard;
411 aLs :out ListOfPaveBlock from BOPTools);
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);
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);
425 PutPaveOnCurve(me:out;
426 aPSF: PaveSet from BOPTools;
427 aTol: Real from Standard;
428 aBC : out Curve from BOPTools);
430 PutBoundPaveOnCurve (me:out;
431 aBC :out Curve from BOPTools;
432 aFF :out SSInterference from BOPTools);
434 PutBoundPaveOnCurve (me:out;
436 aT : Real from Standard;
437 aBC :out Curve from BOPTools;
438 aFF :out SSInterference from BOPTools);
442 aTpV: Real from Standard;
443 aPS : PaveSet from BOPTools;
444 aPV :out Pave from BOPTools)
445 returns Boolean from Standard;
447 CheckIntermediatePoint(me:out;
448 aPB : PaveBlock from BOPTools;
449 aPBR: PaveBlock from BOPTools;
450 aTol: Real from Standard)
451 returns Integer from Standard;
454 IsExistingPaveBlock (me:out;
455 aPB : PaveBlock from BOPTools;
456 aLPB: ListOfPaveBlock from BOPTools;
457 aTol: Real from Standard)
458 returns Boolean from Standard;
460 MakePCurves (me:out);
462 -- Modified to add new methods Thu Sep 14 14:35:18 2006
463 -- Contribution of Samtech www.samcef.com BEGIN
467 MakeAloneVertices(me:out)
471 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
472 ---C++: return const &
473 -- Contribution of Samtech www.samcef.com END
475 IsExistingPaveBlock (me:out;
476 aPB : PaveBlock from BOPTools;
477 aLPB: ListOfShape from TopTools;
478 aTol: Real from Standard)
479 returns Boolean from Standard;
482 CheckCoincidence (me:out;
483 aPB : PaveBlock from BOPTools;
484 aLPB: ListOfPaveBlock from BOPTools)
485 returns Boolean from Standard;
488 CheckIntermediatePoint(me:out;
489 aPB : PaveBlock from BOPTools;
490 aE : Edge from TopoDS;
491 aTol: Real from Standard)
492 returns Integer from Standard;
494 -- Modified to add new method Thu Sep 14 14:35:18 2006
495 -- Contribution of Samtech www.samcef.com BEGIN
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
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;
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
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;
520 myContext : Context from IntTools is protected;
521 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
522 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
524 myVSD : DataMapOfIntegerInteger from TColStd is protected;