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,
38 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
39 -- Contribution of Samtech www.samcef.com BEGIN
41 ListOfShape from TopTools,
42 DataMapOfShapeShape from TopTools,
43 ListOfInteger from TColStd,
44 -- Contribution of Samtech www.samcef.com END
46 Context from IntTools,
47 ShrunkRange from IntTools,
49 IndexedDataMapOfShapeInteger from BooleanOperations,
51 PavePool from BOPTools,
52 PaveBlock from BOPTools,
53 ListOfPaveBlock from BOPTools,
54 SplitShapesPool from BOPTools,
56 PaveSet from BOPTools,
58 SSInterference from BOPTools,
60 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
61 IDMapOfPaveBlockIMapOfInteger from BOPTools,
62 SSIntersectionAttribute from BOPTools,
64 CommonBlockPool from NMTTools,
65 CommonBlock from NMTTools,
66 ListOfCommonBlock from NMTTools,
68 ShapesDataStructure from NMTDS,
70 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
71 -- Contribution of Samtech www.samcef.com BEGIN
72 PShapesDataStructure from NMTDS,
74 IndexedDataMapOfIndexedMapOfInteger from NMTTools,
75 -- Contribution of Samtech www.samcef.com END
78 PInterfPool from NMTDS
84 returns PaveFiller from NMTTools;
85 ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
89 SetCompositeShape (me:out;
90 aS: Shape from TopoDS);
93 returns Shape from TopoDS;
98 returns PShapesDataStructure from NMTDS;
101 returns PIterator from NMTDS;
104 returns PInterfPool from NMTDS;
107 -- Modified to add new method Thu Sep 14 14:35:18 2006
108 -- Contribution of Samtech www.samcef.com BEGIN
110 is virtual protected;
111 -- Contribution of Samtech www.samcef.com END
114 is virtual protected;
120 is virtual protected;
123 is virtual protected;
126 is virtual protected;
129 is virtual protected;
132 is virtual protected;
135 is virtual protected;
137 MakeSplitEdges(me:out)
140 PreparePaveBlocks (me:out;
141 aType1: ShapeEnum from TopAbs;
142 aType2: ShapeEnum from TopAbs)
143 is virtual protected;
145 CorrectShrunkRanges(me:out;
146 aSide: Integer from Standard;
147 aPave: Pave from BOPTools;
148 aSR : out ShrunkRange from IntTools)
151 PreparePaveBlocks (me:out;
152 anE:Integer from Standard)
153 is virtual protected;
156 PrepareEdges (me:out)
157 is virtual protected;
162 returns Boolean from Standard;
165 returns Context from IntTools;
166 ---C++:return const &
168 ChangeContext(me:out)
169 returns Context from IntTools;
173 returns PavePool from BOPTools;
174 ---C++:return const &
176 ChangePavePool(me:out)
177 returns PavePool from BOPTools;
181 returns CommonBlockPool from NMTTools;
182 ---C++:return const &
184 ChangeCommonBlockPool(me:out)
185 returns CommonBlockPool from NMTTools;
189 returns SplitShapesPool from BOPTools;
190 ---C++:return const &
192 ChangeSplitShapesPool(me:out)
193 returns SplitShapesPool from BOPTools;
197 nV: Integer from Standard)
198 returns Integer from Standard;
200 IsSuccessorsComputed (me;
201 iF1:Integer from Standard;
202 iF2:Integer from Standard)
203 returns Boolean from Standard
206 IsBlocksCoinside (me;
207 aPB1:PaveBlock from BOPTools;
208 aPB2:PaveBlock from BOPTools)
209 returns Boolean from Standard
212 RefinePavePool(me:out)
215 CheckFacePaves(me:out;
216 aV : Vertex from TopoDS;
217 nF: Integer from Standard)
218 returns Integer from Standard
221 ReplaceCommonBlocks (me:out;
222 aLCB: ListOfCommonBlock from NMTTools)
225 RemoveCommonBlocks (me:out;
226 aLCB: ListOfCommonBlock from NMTTools)
229 SplitCommonBlocks (me:out;
230 aLCB: ListOfCommonBlock from NMTTools)
233 SplitCommonBlock (me:out;
234 aCB : CommonBlock from NMTTools;
235 aLCB: out ListOfCommonBlock from NMTTools)
238 EECommonBlocks(me:out;
239 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
242 EFCommonBlocks(me:out;
243 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
246 EENewVertices (me:out;
247 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
250 EENewVertices (me:out;
251 aV:Vertex from TopoDS;
252 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
255 EFNewVertices (me:out;
256 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
259 EFNewVertices (me:out;
260 aV:Vertex from TopoDS;
261 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
264 UpdateCommonBlocks(me:out)
267 UpdatePaveBlocks(me:out)
271 aPB:PaveBlock from BOPTools)
272 returns Integer from Standard
278 --------------------------------------------------------------
280 --- Some API FUNCTIONS
283 aBid:Integer from Standard;
284 nF1 :Integer from Standard;
285 nF2 :Integer from Standard;
286 aLs :out ListOfInteger from TColStd)
287 returns Integer from Standard;
290 nE1 :Integer from Standard;
291 nF2 :Integer from Standard;
292 aLs :out ListOfInteger from TColStd)
293 returns Integer from Standard;
296 nE1 :Integer from Standard;
297 nE2 :Integer from Standard;
298 aLs :out ListOfInteger from TColStd)
299 returns Integer from Standard;
302 nE1 :Integer from Standard;
303 nF2 :Integer from Standard;
304 aLs :out ListOfInteger from TColStd)
305 returns Integer from Standard;
308 aBid:Integer from Standard;
309 nF1 :Integer from Standard;
310 nF2 :Integer from Standard;
311 aLs :out ListOfInteger from TColStd)
312 returns Integer from Standard;
315 aBid:Integer from Standard;
316 nF1 :Integer from Standard;
317 nF2 :Integer from Standard;
318 aLs :out ListOfPaveBlock from BOPTools)
319 returns Integer from Standard;
322 nE1 :Integer from Standard;
323 nF2 :Integer from Standard;
324 aLs :out ListOfPaveBlock from BOPTools)
325 returns Integer from Standard;
328 nE1 :Integer from Standard;
329 nE2 :Integer from Standard;
330 aLs :out ListOfPaveBlock from BOPTools)
331 returns Integer from Standard;
334 nE1 :Integer from Standard;
335 nF2 :Integer from Standard;
336 aLs :out ListOfPaveBlock from BOPTools)
337 returns Integer from Standard;
340 aBid:Integer from Standard;
341 nF1 :Integer from Standard;
342 nF2 :Integer from Standard;
343 aLs :out ListOfPaveBlock from BOPTools)
344 returns Integer from Standard;
347 nF2 :Integer from Standard;
348 aLs :out ListOfPaveBlock from BOPTools)
349 returns Integer from Standard;
352 nF2 :Integer from Standard;
353 aLs :out ListOfInteger from TColStd)
354 returns Integer from Standard;
356 CommonBlocksFace (me:out;
357 nF :Integer from Standard;
358 aLCB:out ListOfCommonBlock from NMTTools)
359 returns Integer from Standard;
362 nF : Integer from Standard;
363 aF : out Face from TopoDS);
366 RealPaveBlock(me:out;
367 aPB:PaveBlock from BOPTools)
368 returns PaveBlock from BOPTools;
369 ---C++: return const &
371 --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007 f
372 RealPaveBlock(me:out;
373 aPB:PaveBlock from BOPTools;
374 aLB:out ListOfInteger from TColStd;
375 aIsCommonBlock:out Integer from Standard)
376 returns PaveBlock from BOPTools;
377 ---C++: return const &
378 --modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007 t
380 RealSplitsFace (me:out;
381 nF2 :Integer from Standard;
382 aLs :out ListOfPaveBlock from BOPTools);
384 HasRealSplitsInOnFace (me:out;
385 nF1 :Integer from Standard;
386 nF2 :Integer from Standard)
387 returns Boolean from Standard;
389 RealSplitsInFace(me:out;
390 aBid:Integer from Standard;
391 nF1 :Integer from Standard;
392 nF2 :Integer from Standard;
393 aLs :out ListOfPaveBlock from BOPTools);
395 RealSplitsInFace(me:out;
396 nE1 :Integer from Standard;
397 nF2 :Integer from Standard;
398 aLs :out ListOfPaveBlock from BOPTools);
400 RealSplitsOnEdge(me:out;
401 nE1 :Integer from Standard;
402 nE2 :Integer from Standard;
403 aLs :out ListOfPaveBlock from BOPTools);
405 RealSplitsOnFace(me:out;
406 nE1 :Integer from Standard;
407 nF2 :Integer from Standard;
408 aLs :out ListOfPaveBlock from BOPTools);
410 RealSplitsOnFace(me:out;
411 aBid:Integer from Standard;
412 nF1 :Integer from Standard;
413 nF2 :Integer from Standard;
414 aLs :out ListOfPaveBlock from BOPTools);
416 PrepareSetForFace(me:out;
417 nF1 :Integer from Standard;
418 nF2 :Integer from Standard;
419 aLPB: ListOfPaveBlock from BOPTools;
420 aPSF:out PaveSet from BOPTools);
422 PutPaveOnCurve(me:out;
423 aPSF: PaveSet from BOPTools;
424 aTol: Real from Standard;
425 aBC : out Curve from BOPTools);
427 PutBoundPaveOnCurve (me:out;
428 aBC :out Curve from BOPTools;
429 aFF :out SSInterference from BOPTools);
431 PutBoundPaveOnCurve (me:out;
433 aT : Real from Standard;
434 aBC :out Curve from BOPTools;
435 aFF :out SSInterference from BOPTools);
439 aTpV: Real from Standard;
440 aPS : PaveSet from BOPTools;
441 aPV :out Pave from BOPTools)
442 returns Boolean from Standard;
444 CheckIntermediatePoint(me:out;
445 aPB : PaveBlock from BOPTools;
446 aPBR: PaveBlock from BOPTools;
447 aTol: Real from Standard)
448 returns Integer from Standard;
451 IsExistingPaveBlock (me:out;
452 aPB : PaveBlock from BOPTools;
453 aLPB: ListOfPaveBlock from BOPTools;
454 aTol: Real from Standard)
455 returns Boolean from Standard;
457 MakePCurves (me:out);
459 -- Modified to add new methods Thu Sep 14 14:35:18 2006
460 -- Contribution of Samtech www.samcef.com BEGIN
464 MakeAloneVertices(me:out)
468 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
469 ---C++: return const &
470 -- Contribution of Samtech www.samcef.com END
472 IsExistingPaveBlock (me:out;
473 aPB : PaveBlock from BOPTools;
474 aLPB: ListOfShape from TopTools;
475 aTol: Real from Standard)
476 returns Boolean from Standard;
479 CheckCoincidence (me:out;
480 aPB : PaveBlock from BOPTools;
481 aLPB: ListOfPaveBlock from BOPTools)
482 returns Boolean from Standard;
485 CheckIntermediatePoint(me:out;
486 aPB : PaveBlock from BOPTools;
487 aE : Edge from TopoDS;
488 aTol: Real from Standard)
489 returns Integer from Standard;
491 -- Modified to add new method Thu Sep 14 14:35:18 2006
492 -- Contribution of Samtech www.samcef.com BEGIN
494 nF1 :Integer from Standard;
495 nF2 :Integer from Standard;
496 aLNE :out ListOfInteger from TColStd;
497 aLSE :out ListOfShape from TopTools);
498 -- Contribution of Samtech www.samcef.com END
501 aC:Shape from TopoDS;
502 aDMVV: out DataMapOfShapeShape from TopTools);
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 myPavePool : PavePool from BOPTools is protected;
511 myPavePoolNew : PavePool from BOPTools is protected;
512 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
513 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
515 myContext : Context from IntTools is protected;
516 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
517 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
519 myVSD : DataMapOfIntegerInteger from TColStd is protected;
520 myDSIt : PIterator from NMTDS is protected;
521 myCompositeShape : Shape from TopoDS is protected;
522 myIP : PInterfPool from NMTDS is protected;