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
23 -- Created: Fri Dec 5 14:35:00 2003
24 -- Author: Peter KURNEV
27 class PaveFiller from NMTTools
32 DataMapOfIntegerInteger from TColStd,
34 ShapeEnum from TopAbs,
39 ListOfShape from TopTools,
40 DataMapOfShapeShape from TopTools,
41 ListOfInteger from TColStd,
43 Context from IntTools,
44 ShrunkRange from IntTools,
46 IndexedDataMapOfShapeInteger from BooleanOperations,
48 PavePool from BOPTools,
49 PaveBlock from BOPTools,
50 ListOfPaveBlock from BOPTools,
51 SplitShapesPool from BOPTools,
53 PaveSet from BOPTools,
55 SSInterference from BOPTools,
57 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
58 IDMapOfPaveBlockIMapOfInteger from BOPTools,
59 SSIntersectionAttribute from BOPTools,
61 CommonBlockPool from NMTTools,
62 CommonBlock from NMTTools,
63 ListOfCommonBlock from NMTTools,
65 ShapesDataStructure from NMTDS,
67 PShapesDataStructure from NMTDS,
69 IndexedDataMapOfIndexedMapOfInteger from NMTTools,
72 PInterfPool from NMTDS
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 UpdatePaveBlocks(me:out)
261 aPB:PaveBlock from BOPTools)
262 returns Integer from Standard
268 --------------------------------------------------------------
270 --- Some API FUNCTIONS
273 aBid:Integer from Standard;
274 nF1 :Integer from Standard;
275 nF2 :Integer from Standard;
276 aLs :out ListOfInteger from TColStd)
277 returns Integer from Standard;
280 nE1 :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 nE2 :Integer from Standard;
288 aLs :out ListOfInteger from TColStd)
289 returns Integer from Standard;
292 nE1 :Integer from Standard;
293 nF2 :Integer from Standard;
294 aLs :out ListOfInteger from TColStd)
295 returns Integer from Standard;
298 aBid:Integer from Standard;
299 nF1 :Integer from Standard;
300 nF2 :Integer from Standard;
301 aLs :out ListOfInteger from TColStd)
302 returns Integer from Standard;
305 aBid:Integer from Standard;
306 nF1 :Integer from Standard;
307 nF2 :Integer from Standard;
308 aLs :out ListOfPaveBlock from BOPTools)
309 returns Integer from Standard;
312 nE1 :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 nE2 :Integer from Standard;
320 aLs :out ListOfPaveBlock from BOPTools)
321 returns Integer from Standard;
324 nE1 :Integer from Standard;
325 nF2 :Integer from Standard;
326 aLs :out ListOfPaveBlock from BOPTools)
327 returns Integer from Standard;
330 aBid:Integer from Standard;
331 nF1 :Integer from Standard;
332 nF2 :Integer from Standard;
333 aLs :out ListOfPaveBlock from BOPTools)
334 returns Integer from Standard;
337 nF2 :Integer from Standard;
338 aLs :out ListOfPaveBlock from BOPTools)
339 returns Integer from Standard;
342 nF2 :Integer from Standard;
343 aLs :out ListOfInteger from TColStd)
344 returns Integer from Standard;
346 CommonBlocksFace (me:out;
347 nF :Integer from Standard;
348 aLCB:out ListOfCommonBlock from NMTTools)
349 returns Integer from Standard;
352 nF : Integer from Standard;
353 aF : out Face from TopoDS);
356 RealPaveBlock(me:out;
357 aPB:PaveBlock from BOPTools)
358 returns PaveBlock from BOPTools;
359 ---C++: return const &
361 RealPaveBlock(me:out;
362 aPB:PaveBlock from BOPTools;
363 aLB:out ListOfInteger from TColStd;
364 aIsCommonBlock:out Integer from Standard)
365 returns PaveBlock from BOPTools;
366 ---C++: return const &
368 RealSplitsFace (me:out;
369 nF2 :Integer from Standard;
370 aLs :out ListOfPaveBlock from BOPTools);
372 HasRealSplitsInOnFace (me:out;
373 nF1 :Integer from Standard;
374 nF2 :Integer from Standard)
375 returns Boolean from Standard;
377 RealSplitsInFace(me:out;
378 aBid:Integer from Standard;
379 nF1 :Integer from Standard;
380 nF2 :Integer from Standard;
381 aLs :out ListOfPaveBlock from BOPTools);
383 RealSplitsInFace(me:out;
384 nE1 :Integer from Standard;
385 nF2 :Integer from Standard;
386 aLs :out ListOfPaveBlock from BOPTools);
388 RealSplitsOnEdge(me:out;
389 nE1 :Integer from Standard;
390 nE2 :Integer from Standard;
391 aLs :out ListOfPaveBlock from BOPTools);
393 RealSplitsOnFace(me:out;
394 nE1 :Integer from Standard;
395 nF2 :Integer from Standard;
396 aLs :out ListOfPaveBlock from BOPTools);
398 RealSplitsOnFace(me:out;
399 aBid:Integer from Standard;
400 nF1 :Integer from Standard;
401 nF2 :Integer from Standard;
402 aLs :out ListOfPaveBlock from BOPTools);
404 PrepareSetForFace(me:out;
405 nF1 :Integer from Standard;
406 nF2 :Integer from Standard;
407 aLPB: ListOfPaveBlock from BOPTools;
408 aPSF:out PaveSet from BOPTools);
410 PutPaveOnCurve(me:out;
411 aPSF: PaveSet from BOPTools;
412 aTol: Real from Standard;
413 aBC : out Curve from BOPTools);
415 PutBoundPaveOnCurve (me:out;
416 aBC :out Curve from BOPTools;
417 aFF :out SSInterference from BOPTools);
419 PutBoundPaveOnCurve (me:out;
421 aT : Real from Standard;
422 aBC :out Curve from BOPTools;
423 aFF :out SSInterference from BOPTools);
427 aTpV: Real from Standard;
428 aPS : PaveSet from BOPTools;
429 aPV :out Pave from BOPTools)
430 returns Boolean from Standard;
432 CheckIntermediatePoint(me:out;
433 aPB : PaveBlock from BOPTools;
434 aPBR: PaveBlock from BOPTools;
435 aTol: Real from Standard)
436 returns Integer from Standard;
439 IsExistingPaveBlock (me:out;
440 aPB : PaveBlock from BOPTools;
441 aLPB: ListOfPaveBlock from BOPTools;
442 aTol: Real from Standard)
443 returns Boolean from Standard;
445 MakePCurves (me:out);
450 MakeAloneVertices(me:out)
454 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
455 ---C++: return const &
457 IsExistingPaveBlock (me:out;
458 aPB : PaveBlock from BOPTools;
459 aLPB: ListOfShape from TopTools;
460 aTol: Real from Standard)
461 returns Boolean from Standard;
464 CheckCoincidence (me:out;
465 aPB : PaveBlock from BOPTools;
466 aLPB: ListOfPaveBlock from BOPTools)
467 returns Boolean from Standard;
470 CheckIntermediatePoint(me:out;
471 aPB : PaveBlock from BOPTools;
472 aE : Edge from TopoDS;
473 aTol: Real from Standard)
474 returns Integer from Standard;
477 nF1 :Integer from Standard;
478 nF2 :Integer from Standard;
479 aLNE :out ListOfInteger from TColStd;
480 aLSE :out ListOfShape from TopTools);
483 aC:Shape from TopoDS;
484 aDMVV: out DataMapOfShapeShape from TopTools);
486 TreatPaveBlocks(me:out;
487 theLCB:out ListOfCommonBlock from NMTTools);
489 ChangePavePoolNew(me:out)
490 returns PavePool from BOPTools;
493 --modified by NIZNHY-PKV Thu Nov 11 08:12:50 2010f
494 CheckCoincidence (me:out;
495 aPB1 : PaveBlock from BOPTools;
496 aPB2 : PaveBlock from BOPTools)
497 returns Boolean from Standard;
498 --modified by NIZNHY-PKV Thu Nov 11 08:12:54 2010t
501 myDS : PShapesDataStructure from NMTDS is protected;
502 myIsDone : Boolean from Standard is protected;
503 myNbSources : Integer from Standard is protected;
504 myNbEdges : Integer from Standard is protected;
506 myPavePool : PavePool from BOPTools is protected;
507 myPavePoolNew : PavePool from BOPTools is protected;
508 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
509 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
511 myContext : Context from IntTools is protected;
512 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
513 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
515 myVSD : DataMapOfIntegerInteger from TColStd is protected;
516 myDSIt : PIterator from NMTDS is protected;
517 myCompositeShape : Shape from TopoDS is protected;
518 myIP : PInterfPool from NMTDS is protected;