1 -- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 -- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 -- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 -- File: NMTTools_PaveFiller.cdl
24 -- Author: Peter KURNEV
27 class PaveFiller from NMTTools
32 DataMapOfIntegerInteger from TColStd,
33 ListOfInteger from TColStd,
34 MapOfInteger from TColStd,
37 ShapeEnum from TopAbs,
42 ListOfShape from TopTools,
43 DataMapOfShapeShape from TopTools,
45 Context from IntTools,
46 ShrunkRange from IntTools,
48 IndexedDataMapOfShapeInteger from BooleanOperations,
50 PavePool from BOPTools,
51 PaveBlock from BOPTools,
52 ListOfPaveBlock from BOPTools,
53 SplitShapesPool from BOPTools,
55 PaveSet from BOPTools,
57 SSInterference from BOPTools,
58 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
59 IDMapOfPaveBlockIMapOfInteger from BOPTools,
60 SSIntersectionAttribute from BOPTools,
62 ShapesDataStructure from NMTDS,
63 PShapesDataStructure from NMTDS,
66 PInterfPool from NMTDS,
68 CommonBlockPool from NMTTools,
69 CommonBlock from NMTTools,
70 ListOfCommonBlock from NMTTools,
71 DataMapOfIntegerFaceInfo from NMTTools,
72 IndexedDataMapOfIndexedMapOfInteger from NMTTools
78 returns PaveFiller from NMTTools;
79 ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
83 SetCompositeShape (me:out;
84 aS: Shape from TopoDS);
87 returns Shape from TopoDS;
92 returns PShapesDataStructure from NMTDS;
95 returns PIterator from NMTDS;
98 returns PInterfPool from NMTDS;
101 is virtual protected;
104 is virtual protected;
110 is virtual protected;
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;
146 PrepareEdges (me:out)
147 is virtual protected;
152 returns Boolean from Standard;
155 returns Context from IntTools;
156 ---C++:return const &
158 ChangeContext(me:out)
159 returns Context from IntTools;
163 returns PavePool from BOPTools;
164 ---C++:return const &
166 ChangePavePool(me:out)
167 returns PavePool from BOPTools;
171 returns CommonBlockPool from NMTTools;
172 ---C++:return const &
174 ChangeCommonBlockPool(me:out)
175 returns CommonBlockPool from NMTTools;
179 returns SplitShapesPool from BOPTools;
180 ---C++:return const &
182 ChangeSplitShapesPool(me:out)
183 returns SplitShapesPool from BOPTools;
187 nV: Integer from Standard)
188 returns Integer from Standard;
190 IsSuccessorsComputed (me;
191 iF1:Integer from Standard;
192 iF2:Integer from Standard)
193 returns Boolean from Standard
196 IsBlocksCoinside (me;
197 aPB1:PaveBlock from BOPTools;
198 aPB2:PaveBlock from BOPTools)
199 returns Boolean from Standard
202 RefinePavePool(me:out)
205 CheckFacePaves(me:out;
206 aV : Vertex from TopoDS;
207 nF: Integer from Standard)
208 returns Integer from Standard
211 ReplaceCommonBlocks (me:out;
212 aLCB: ListOfCommonBlock from NMTTools)
215 RemoveCommonBlocks (me:out;
216 aLCB: ListOfCommonBlock from NMTTools)
219 SplitCommonBlocks (me:out;
220 aLCB: ListOfCommonBlock from NMTTools)
223 SplitCommonBlock (me:out;
224 aCB : CommonBlock from NMTTools;
225 aLCB: out ListOfCommonBlock from NMTTools)
228 EECommonBlocks(me:out;
229 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
232 EFCommonBlocks(me:out;
233 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
236 EENewVertices (me:out;
237 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
240 EENewVertices (me:out;
241 aV:Vertex from TopoDS;
242 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
245 EFNewVertices (me:out;
246 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
249 EFNewVertices (me:out;
250 aV:Vertex from TopoDS;
251 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
254 UpdateCommonBlocks(me:out)
257 --modified by NIZNHY-PKV Mon Dec 12 09:12:15 2011f
258 UpdateCommonBlocks(me:out;
259 aI:Integer from Standard)
261 --modified by NIZNHY-PKV Mon Dec 12 09:12:21 2011t
263 UpdatePaveBlocks(me:out)
267 aPB:PaveBlock from BOPTools)
268 returns Integer from Standard
274 --------------------------------------------------------------
276 --- Some API FUNCTIONS
279 aBid:Integer from Standard;
280 nF1 :Integer from Standard;
281 nF2 :Integer from Standard;
282 aLs :out ListOfInteger from TColStd)
283 returns Integer from Standard;
286 nE1 :Integer from Standard;
287 nF2 :Integer from Standard;
288 aLs :out ListOfInteger from TColStd)
289 returns Integer from Standard;
292 nE1 :Integer from Standard;
293 nE2 :Integer from Standard;
294 aLs :out ListOfInteger from TColStd)
295 returns Integer from Standard;
298 nE1 :Integer from Standard;
299 nF2 :Integer from Standard;
300 aLs :out ListOfInteger from TColStd)
301 returns Integer from Standard;
304 aBid:Integer from Standard;
305 nF1 :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 ListOfPaveBlock from BOPTools)
315 returns Integer from Standard;
318 nE1 :Integer from Standard;
319 nF2 :Integer from Standard;
320 aLs :out ListOfPaveBlock from BOPTools)
321 returns Integer from Standard;
324 nE1 :Integer from Standard;
325 nE2 :Integer from Standard;
326 aLs :out ListOfPaveBlock from BOPTools)
327 returns Integer from Standard;
330 nE1 :Integer from Standard;
331 nF2 :Integer from Standard;
332 aLs :out ListOfPaveBlock from BOPTools)
333 returns Integer from Standard;
336 aBid:Integer from Standard;
337 nF1 :Integer from Standard;
338 nF2 :Integer from Standard;
339 aLs :out ListOfPaveBlock from BOPTools)
340 returns Integer from Standard;
343 nF2 :Integer from Standard;
344 aLs :out ListOfPaveBlock from BOPTools)
345 returns Integer from Standard;
348 nF2 :Integer from Standard;
349 aLs :out ListOfInteger from TColStd)
350 returns Integer from Standard;
352 CommonBlocksFace (me:out;
353 nF :Integer from Standard;
354 aLCB:out ListOfCommonBlock from NMTTools)
355 returns Integer from Standard;
358 nF : Integer from Standard;
359 aF : out Face from TopoDS);
362 RealPaveBlock(me:out;
363 aPB:PaveBlock from BOPTools)
364 returns PaveBlock from BOPTools;
365 ---C++: return const &
367 RealPaveBlock(me:out;
368 aPB:PaveBlock from BOPTools;
369 aLB:out ListOfInteger from TColStd;
370 aIsCommonBlock:out Integer from Standard)
371 returns PaveBlock from BOPTools;
372 ---C++: return const &
374 RealSplitsFace (me:out;
375 nF2 :Integer from Standard;
376 aLs :out ListOfPaveBlock from BOPTools);
378 HasRealSplitsInOnFace (me:out;
379 nF1 :Integer from Standard;
380 nF2 :Integer from Standard)
381 returns Boolean from Standard;
383 RealSplitsInFace(me:out;
384 aBid:Integer from Standard;
385 nF1 :Integer from Standard;
386 nF2 :Integer from Standard;
387 aLs :out ListOfPaveBlock from BOPTools);
389 RealSplitsInFace(me:out;
390 nE1 :Integer from Standard;
391 nF2 :Integer from Standard;
392 aLs :out ListOfPaveBlock from BOPTools);
394 RealSplitsInFace(me:out;
395 nF1 :Integer from Standard;
396 aLPB :out ListOfPaveBlock from BOPTools);
398 RealSplitsOnEdge(me:out;
399 nE1 :Integer from Standard;
400 nE2 :Integer from Standard;
401 aLs :out ListOfPaveBlock from BOPTools);
403 RealSplitsOnFace(me:out;
404 nE1 :Integer from Standard;
405 nF2 :Integer from Standard;
406 aLs :out ListOfPaveBlock from BOPTools);
408 RealSplitsOnFace(me:out;
409 aBid:Integer from Standard;
410 nF1 :Integer from Standard;
411 nF2 :Integer from Standard;
412 aLs :out ListOfPaveBlock from BOPTools);
414 PrepareSetForFace(me:out;
415 nF1 :Integer from Standard;
416 nF2 :Integer from Standard;
417 aLPB: ListOfPaveBlock from BOPTools;
418 aPSF:out PaveSet from BOPTools);
420 PutPaveOnCurve(me:out;
421 aPSF: PaveSet from BOPTools;
422 aTol: Real from Standard;
423 aBC : out Curve from BOPTools);
426 PutBoundPaveOnCurve (me:out;
427 aBC :out Curve from BOPTools;
428 aFF :out SSInterference from BOPTools);
430 PutBoundPaveOnCurve (me:out;
432 aT : Real from Standard;
433 aBC :out Curve from BOPTools;
434 aFF :out SSInterference from BOPTools);
438 aTpV: Real from Standard;
439 aPS : PaveSet from BOPTools;
440 aPV :out Pave from BOPTools)
441 returns Boolean from Standard;
443 CheckIntermediatePoint(me:out;
444 aPB : PaveBlock from BOPTools;
445 aPBR: PaveBlock from BOPTools;
446 aTol: Real from Standard)
447 returns Integer from Standard;
450 IsExistingPaveBlock (me:out;
451 aPB : PaveBlock from BOPTools;
452 aLPB: ListOfPaveBlock from BOPTools;
453 aTol: Real from Standard)
454 returns Boolean from Standard;
456 MakePCurves (me:out);
461 MakeAloneVertices(me:out)
465 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
466 ---C++: return const &
468 IsExistingPaveBlock (me:out;
469 aPB : PaveBlock from BOPTools;
470 aLPB: ListOfShape from TopTools;
471 aTol: Real from Standard)
472 returns Boolean from Standard;
475 CheckCoincidence (me:out;
476 aPB : PaveBlock from BOPTools;
477 aLPB: ListOfPaveBlock from BOPTools)
478 returns Boolean from Standard;
481 CheckIntermediatePoint(me:out;
482 aPB : PaveBlock from BOPTools;
483 aE : Edge from TopoDS;
484 aTol: Real from Standard)
485 returns Integer from Standard;
488 nF1 :Integer from Standard;
489 nF2 :Integer from Standard;
490 aLNE :out ListOfInteger from TColStd;
491 aLSE :out ListOfShape from TopTools);
494 aC:Shape from TopoDS;
495 aDMVV: out DataMapOfShapeShape from TopTools);
497 TreatPaveBlocks(me:out;
498 theLCB:out ListOfCommonBlock from NMTTools);
500 ChangePavePoolNew(me:out)
501 returns PavePool from BOPTools;
504 CheckCoincidence (me:out;
505 aPB1 : PaveBlock from BOPTools;
506 aPB2 : PaveBlock from BOPTools)
507 returns Boolean from Standard;
509 FillFaceInfo (me:out)
512 CorrectTolR3D(me:out;
513 aFF : SSInterference from BOPTools;
514 aMVStick: MapOfInteger from TColStd;
515 aTolR3D: out Real from Standard)
518 PutClosingPaveOnCurve (me:out;
519 aBC :out Curve from BOPTools;
520 aFF :out SSInterference from BOPTools);
523 myDS : PShapesDataStructure from NMTDS is protected;
524 myIsDone : Boolean from Standard is protected;
525 myNbSources : Integer from Standard is protected;
526 myNbEdges : Integer from Standard is protected;
528 myPavePool : PavePool from BOPTools is protected;
529 myPavePoolNew : PavePool from BOPTools is protected;
530 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
531 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
533 myContext : Context from IntTools is protected;
534 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
535 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
537 myVSD : DataMapOfIntegerInteger from TColStd is protected;
538 myDSIt : PIterator from NMTDS is protected;
539 myCompositeShape : Shape from TopoDS is protected;
540 myIP : PInterfPool from NMTDS is protected;
541 myFaceInfo : DataMapOfIntegerFaceInfo from NMTTools is protected;