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 &
159 returns PavePool from BOPTools;
160 ---C++:return const &
162 ChangePavePool(me:out)
163 returns PavePool from BOPTools;
167 returns CommonBlockPool from NMTTools;
168 ---C++:return const &
170 ChangeCommonBlockPool(me:out)
171 returns CommonBlockPool from NMTTools;
175 returns SplitShapesPool from BOPTools;
176 ---C++:return const &
178 ChangeSplitShapesPool(me:out)
179 returns SplitShapesPool from BOPTools;
183 nV: Integer from Standard)
184 returns Integer from Standard;
186 IsSuccessorsComputed (me;
187 iF1:Integer from Standard;
188 iF2:Integer from Standard)
189 returns Boolean from Standard
192 IsBlocksCoinside (me;
193 aPB1:PaveBlock from BOPTools;
194 aPB2:PaveBlock from BOPTools)
195 returns Boolean from Standard
198 RefinePavePool(me:out)
201 CheckFacePaves(me:out;
202 aV : Vertex from TopoDS;
203 nF: Integer from Standard)
204 returns Integer from Standard
207 ReplaceCommonBlocks (me:out;
208 aLCB: ListOfCommonBlock from NMTTools)
211 RemoveCommonBlocks (me:out;
212 aLCB: ListOfCommonBlock from NMTTools)
215 SplitCommonBlocks (me:out;
216 aLCB: ListOfCommonBlock from NMTTools)
219 SplitCommonBlock (me:out;
220 aCB : CommonBlock from NMTTools;
221 aLCB: out ListOfCommonBlock from NMTTools)
224 EECommonBlocks(me:out;
225 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
228 EFCommonBlocks(me:out;
229 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
232 EENewVertices (me:out;
233 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
236 EENewVertices (me:out;
237 aV:Vertex from TopoDS;
238 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
241 EFNewVertices (me:out;
242 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
245 EFNewVertices (me:out;
246 aV:Vertex from TopoDS;
247 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
250 UpdateCommonBlocks(me:out)
253 --modified by NIZNHY-PKV Mon Dec 12 09:12:15 2011f
254 UpdateCommonBlocks(me:out;
255 aI:Integer from Standard)
257 --modified by NIZNHY-PKV Mon Dec 12 09:12:21 2011t
259 UpdatePaveBlocks(me:out)
263 aPB:PaveBlock from BOPTools)
264 returns Integer from Standard
270 --------------------------------------------------------------
272 --- Some API FUNCTIONS
275 aBid:Integer from Standard;
276 nF1 :Integer from Standard;
277 nF2 :Integer from Standard;
278 aLs :out ListOfInteger from TColStd)
279 returns Integer from Standard;
282 nE1 :Integer from Standard;
283 nF2 :Integer from Standard;
284 aLs :out ListOfInteger from TColStd)
285 returns Integer from Standard;
288 nE1 :Integer from Standard;
289 nE2 :Integer from Standard;
290 aLs :out ListOfInteger from TColStd)
291 returns Integer from Standard;
294 nE1 :Integer from Standard;
295 nF2 :Integer from Standard;
296 aLs :out ListOfInteger from TColStd)
297 returns Integer from Standard;
300 aBid:Integer from Standard;
301 nF1 :Integer from Standard;
302 nF2 :Integer from Standard;
303 aLs :out ListOfInteger from TColStd)
304 returns Integer from Standard;
307 aBid:Integer from Standard;
308 nF1 :Integer from Standard;
309 nF2 :Integer from Standard;
310 aLs :out ListOfPaveBlock from BOPTools)
311 returns Integer from Standard;
314 nE1 :Integer from Standard;
315 nF2 :Integer from Standard;
316 aLs :out ListOfPaveBlock from BOPTools)
317 returns Integer from Standard;
320 nE1 :Integer from Standard;
321 nE2 :Integer from Standard;
322 aLs :out ListOfPaveBlock from BOPTools)
323 returns Integer from Standard;
326 nE1 :Integer from Standard;
327 nF2 :Integer from Standard;
328 aLs :out ListOfPaveBlock from BOPTools)
329 returns Integer from Standard;
332 aBid:Integer from Standard;
333 nF1 :Integer from Standard;
334 nF2 :Integer from Standard;
335 aLs :out ListOfPaveBlock from BOPTools)
336 returns Integer from Standard;
339 nF2 :Integer from Standard;
340 aLs :out ListOfPaveBlock from BOPTools)
341 returns Integer from Standard;
344 nF2 :Integer from Standard;
345 aLs :out ListOfInteger from TColStd)
346 returns Integer from Standard;
348 CommonBlocksFace (me:out;
349 nF :Integer from Standard;
350 aLCB:out ListOfCommonBlock from NMTTools)
351 returns Integer from Standard;
354 nF : Integer from Standard;
355 aF : out Face from TopoDS);
358 RealPaveBlock(me:out;
359 aPB:PaveBlock from BOPTools)
360 returns PaveBlock from BOPTools;
361 ---C++: return const &
363 RealPaveBlock(me:out;
364 aPB:PaveBlock from BOPTools;
365 aLB:out ListOfInteger from TColStd;
366 aIsCommonBlock:out Integer from Standard)
367 returns PaveBlock from BOPTools;
368 ---C++: return const &
370 RealSplitsFace (me:out;
371 nF2 :Integer from Standard;
372 aLs :out ListOfPaveBlock from BOPTools);
374 HasRealSplitsInOnFace (me:out;
375 nF1 :Integer from Standard;
376 nF2 :Integer from Standard)
377 returns Boolean from Standard;
379 RealSplitsInFace(me:out;
380 aBid:Integer from Standard;
381 nF1 :Integer from Standard;
382 nF2 :Integer from Standard;
383 aLs :out ListOfPaveBlock from BOPTools);
385 RealSplitsInFace(me:out;
386 nE1 :Integer from Standard;
387 nF2 :Integer from Standard;
388 aLs :out ListOfPaveBlock from BOPTools);
390 RealSplitsInFace(me:out;
391 nF1 :Integer from Standard;
392 aLPB :out ListOfPaveBlock from BOPTools);
394 RealSplitsOnEdge(me:out;
395 nE1 :Integer from Standard;
396 nE2 :Integer from Standard;
397 aLs :out ListOfPaveBlock from BOPTools);
399 RealSplitsOnFace(me:out;
400 nE1 :Integer from Standard;
401 nF2 :Integer from Standard;
402 aLs :out ListOfPaveBlock from BOPTools);
404 RealSplitsOnFace(me:out;
405 aBid:Integer from Standard;
406 nF1 :Integer from Standard;
407 nF2 :Integer from Standard;
408 aLs :out ListOfPaveBlock from BOPTools);
410 PrepareSetForFace(me:out;
411 nF1 :Integer from Standard;
412 nF2 :Integer from Standard;
413 aLPB: ListOfPaveBlock from BOPTools;
414 aPSF:out PaveSet from BOPTools);
416 PutPaveOnCurve(me:out;
417 aPSF: PaveSet from BOPTools;
418 aTol: Real from Standard;
419 aBC : out Curve from BOPTools);
422 PutBoundPaveOnCurve (me:out;
423 aBC :out Curve from BOPTools;
424 aFF :out SSInterference from BOPTools);
426 PutBoundPaveOnCurve (me:out;
428 aT : Real from Standard;
429 aBC :out Curve from BOPTools;
430 aFF :out SSInterference from BOPTools);
434 aTpV: Real from Standard;
435 aPS : PaveSet from BOPTools;
436 aPV :out Pave from BOPTools)
437 returns Boolean from Standard;
439 CheckIntermediatePoint(me:out;
440 aPB : PaveBlock from BOPTools;
441 aPBR: PaveBlock from BOPTools;
442 aTol: Real from Standard)
443 returns Integer from Standard;
446 IsExistingPaveBlock (me:out;
447 aPB : PaveBlock from BOPTools;
448 aLPB: ListOfPaveBlock from BOPTools;
449 aTol: Real from Standard)
450 returns Boolean from Standard;
452 MakePCurves (me:out);
457 MakeAloneVertices(me:out)
461 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
462 ---C++: return const &
464 IsExistingPaveBlock (me:out;
465 aPB : PaveBlock from BOPTools;
466 aLPB: ListOfShape from TopTools;
467 aTol: Real from Standard)
468 returns Boolean from Standard;
471 CheckCoincidence (me:out;
472 aPB : PaveBlock from BOPTools;
473 aLPB: ListOfPaveBlock from BOPTools)
474 returns Boolean from Standard;
477 CheckIntermediatePoint(me:out;
478 aPB : PaveBlock from BOPTools;
479 aE : Edge from TopoDS;
480 aTol: Real from Standard)
481 returns Integer from Standard;
484 nF1 :Integer from Standard;
485 nF2 :Integer from Standard;
486 aLNE :out ListOfInteger from TColStd;
487 aLSE :out ListOfShape from TopTools);
490 aC:Shape from TopoDS;
491 aDMVV: out DataMapOfShapeShape from TopTools);
493 TreatPaveBlocks(me:out;
494 theLCB:out ListOfCommonBlock from NMTTools);
496 ChangePavePoolNew(me:out)
497 returns PavePool from BOPTools;
500 CheckCoincidence (me:out;
501 aPB1 : PaveBlock from BOPTools;
502 aPB2 : PaveBlock from BOPTools)
503 returns Boolean from Standard;
505 FillFaceInfo (me:out)
508 CorrectTolR3D(me:out;
509 aFF : SSInterference from BOPTools;
510 aMVStick: MapOfInteger from TColStd;
511 aTolR3D: out Real from Standard)
514 PutClosingPaveOnCurve (me:out;
515 aBC :out Curve from BOPTools;
516 aFF :out SSInterference from BOPTools);
519 myDS : PShapesDataStructure from NMTDS is protected;
520 myIsDone : Boolean from Standard is protected;
521 myNbSources : Integer from Standard is protected;
522 myNbEdges : Integer from Standard is protected;
524 myPavePool : PavePool from BOPTools is protected;
525 myPavePoolNew : PavePool from BOPTools is protected;
526 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
527 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
529 myContext : Context from IntTools is protected;
530 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
531 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
533 myVSD : DataMapOfIntegerInteger from TColStd is protected;
534 myDSIt : PIterator from NMTDS is protected;
535 myCompositeShape : Shape from TopoDS is protected;
536 myIP : PInterfPool from NMTDS is protected;
537 myFaceInfo : DataMapOfIntegerFaceInfo from NMTTools is protected;