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 DataMapOfIntegerInteger from TColStd,
33 ShapeEnum from TopAbs,
37 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
38 -- Contribution of Samtech www.samcef.com BEGIN
40 ListOfShape from TopTools,
41 DataMapOfShapeShape from TopTools,
42 ListOfInteger from TColStd,
43 -- Contribution of Samtech www.samcef.com END
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,
59 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
60 IDMapOfPaveBlockIMapOfInteger from BOPTools,
61 SSIntersectionAttribute from BOPTools,
63 CommonBlockPool from NMTTools,
64 CommonBlock from NMTTools,
65 ListOfCommonBlock from NMTTools,
67 ShapesDataStructure from NMTDS,
69 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
70 -- Contribution of Samtech www.samcef.com BEGIN
71 PShapesDataStructure from NMTDS,
73 IndexedDataMapOfIndexedMapOfInteger from NMTTools,
74 -- Contribution of Samtech www.samcef.com END
77 PInterfPool from NMTDS
83 returns PaveFiller from NMTTools;
84 ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
88 SetCompositeShape (me:out;
89 aS: Shape from TopoDS);
92 returns Shape from TopoDS;
97 returns PShapesDataStructure from NMTDS;
100 returns PIterator from NMTDS;
103 returns PInterfPool from NMTDS;
106 -- Modified to add new method Thu Sep 14 14:35:18 2006
107 -- Contribution of Samtech www.samcef.com BEGIN
109 is virtual protected;
110 -- Contribution of Samtech www.samcef.com END
113 is virtual protected;
119 is virtual protected;
122 is virtual protected;
125 is virtual protected;
128 is virtual protected;
131 is virtual protected;
134 is virtual protected;
136 MakeSplitEdges(me:out)
139 PreparePaveBlocks (me:out;
140 aType1: ShapeEnum from TopAbs;
141 aType2: ShapeEnum from TopAbs)
142 is virtual protected;
144 CorrectShrunkRanges(me:out;
145 aSide: Integer from Standard;
146 aPave: Pave from BOPTools;
147 aSR : out ShrunkRange from IntTools)
150 PreparePaveBlocks (me:out;
151 anE:Integer from Standard)
152 is virtual protected;
155 PrepareEdges (me:out)
156 is virtual protected;
161 returns Boolean from Standard;
164 returns Context from IntTools;
165 ---C++:return const &
167 ChangeContext(me:out)
168 returns Context from IntTools;
172 returns PavePool from BOPTools;
173 ---C++:return const &
175 ChangePavePool(me:out)
176 returns PavePool from BOPTools;
180 returns CommonBlockPool from NMTTools;
181 ---C++:return const &
183 ChangeCommonBlockPool(me:out)
184 returns CommonBlockPool from NMTTools;
188 returns SplitShapesPool from BOPTools;
189 ---C++:return const &
191 ChangeSplitShapesPool(me:out)
192 returns SplitShapesPool from BOPTools;
196 nV: Integer from Standard)
197 returns Integer from Standard;
199 IsSuccessorsComputed (me;
200 iF1:Integer from Standard;
201 iF2:Integer from Standard)
202 returns Boolean from Standard
205 IsBlocksCoinside (me;
206 aPB1:PaveBlock from BOPTools;
207 aPB2:PaveBlock from BOPTools)
208 returns Boolean from Standard
211 RefinePavePool(me:out)
214 CheckFacePaves(me:out;
215 aV : Vertex from TopoDS;
216 nF: Integer from Standard)
217 returns Integer from Standard
220 ReplaceCommonBlocks (me:out;
221 aLCB: ListOfCommonBlock from NMTTools)
224 RemoveCommonBlocks (me:out;
225 aLCB: ListOfCommonBlock from NMTTools)
228 SplitCommonBlocks (me:out;
229 aLCB: ListOfCommonBlock from NMTTools)
232 SplitCommonBlock (me:out;
233 aCB : CommonBlock from NMTTools;
234 aLCB: out ListOfCommonBlock from NMTTools)
237 EECommonBlocks(me:out;
238 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
241 EFCommonBlocks(me:out;
242 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
245 EENewVertices (me:out;
246 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
249 EENewVertices (me:out;
250 aV:Vertex from TopoDS;
251 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
254 EFNewVertices (me:out;
255 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
258 EFNewVertices (me:out;
259 aV:Vertex from TopoDS;
260 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
263 UpdateCommonBlocks(me:out)
266 UpdatePaveBlocks(me:out)
270 aPB:PaveBlock from BOPTools)
271 returns Integer from Standard
277 --------------------------------------------------------------
279 --- Some API FUNCTIONS
282 aBid:Integer from Standard;
283 nF1 :Integer from Standard;
284 nF2 :Integer from Standard;
285 aLs :out ListOfInteger from TColStd)
286 returns Integer from Standard;
289 nE1 :Integer from Standard;
290 nF2 :Integer from Standard;
291 aLs :out ListOfInteger from TColStd)
292 returns Integer from Standard;
295 nE1 :Integer from Standard;
296 nE2 :Integer from Standard;
297 aLs :out ListOfInteger from TColStd)
298 returns Integer from Standard;
301 nE1 :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 ListOfInteger from TColStd)
311 returns Integer from Standard;
314 aBid:Integer from Standard;
315 nF1 :Integer from Standard;
316 nF2 :Integer from Standard;
317 aLs :out ListOfPaveBlock from BOPTools)
318 returns Integer from Standard;
321 nE1 :Integer from Standard;
322 nF2 :Integer from Standard;
323 aLs :out ListOfPaveBlock from BOPTools)
324 returns Integer from Standard;
327 nE1 :Integer from Standard;
328 nE2 :Integer from Standard;
329 aLs :out ListOfPaveBlock from BOPTools)
330 returns Integer from Standard;
333 nE1 :Integer from Standard;
334 nF2 :Integer from Standard;
335 aLs :out ListOfPaveBlock from BOPTools)
336 returns Integer from Standard;
339 aBid:Integer from Standard;
340 nF1 :Integer from Standard;
341 nF2 :Integer from Standard;
342 aLs :out ListOfPaveBlock from BOPTools)
343 returns Integer from Standard;
346 nF2 :Integer from Standard;
347 aLs :out ListOfPaveBlock from BOPTools)
348 returns Integer from Standard;
351 nF2 :Integer from Standard;
352 aLs :out ListOfInteger from TColStd)
353 returns Integer from Standard;
355 CommonBlocksFace (me:out;
356 nF :Integer from Standard;
357 aLCB:out ListOfCommonBlock from NMTTools)
358 returns Integer from Standard;
361 nF : Integer from Standard;
362 aF : out Face from TopoDS);
365 RealPaveBlock(me:out;
366 aPB:PaveBlock from BOPTools)
367 returns PaveBlock from BOPTools;
368 ---C++: return const &
370 --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007 f
371 RealPaveBlock(me:out;
372 aPB:PaveBlock from BOPTools;
373 aLB:out ListOfInteger from TColStd;
374 aIsCommonBlock:out Integer from Standard)
375 returns PaveBlock from BOPTools;
376 ---C++: return const &
377 --modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007 t
379 RealSplitsFace (me:out;
380 nF2 :Integer from Standard;
381 aLs :out ListOfPaveBlock from BOPTools);
383 HasRealSplitsInOnFace (me:out;
384 nF1 :Integer from Standard;
385 nF2 :Integer from Standard)
386 returns Boolean from Standard;
388 RealSplitsInFace(me:out;
389 aBid:Integer from Standard;
390 nF1 :Integer from Standard;
391 nF2 :Integer from Standard;
392 aLs :out ListOfPaveBlock from BOPTools);
394 RealSplitsInFace(me:out;
395 nE1 :Integer from Standard;
396 nF2 :Integer from Standard;
397 aLs :out ListOfPaveBlock from BOPTools);
399 RealSplitsOnEdge(me:out;
400 nE1 :Integer from Standard;
401 nE2 :Integer from Standard;
402 aLs :out ListOfPaveBlock from BOPTools);
404 RealSplitsOnFace(me:out;
405 nE1 :Integer from Standard;
406 nF2 :Integer from Standard;
407 aLs :out ListOfPaveBlock from BOPTools);
409 RealSplitsOnFace(me:out;
410 aBid:Integer from Standard;
411 nF1 :Integer from Standard;
412 nF2 :Integer from Standard;
413 aLs :out ListOfPaveBlock from BOPTools);
415 PrepareSetForFace(me:out;
416 nF1 :Integer from Standard;
417 nF2 :Integer from Standard;
418 aLPB: ListOfPaveBlock from BOPTools;
419 aPSF:out PaveSet from BOPTools);
421 PutPaveOnCurve(me:out;
422 aPSF: PaveSet from BOPTools;
423 aTol: Real from Standard;
424 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);
458 -- Modified to add new methods Thu Sep 14 14:35:18 2006
459 -- Contribution of Samtech www.samcef.com BEGIN
463 MakeAloneVertices(me:out)
467 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
468 ---C++: return const &
469 -- Contribution of Samtech www.samcef.com END
471 IsExistingPaveBlock (me:out;
472 aPB : PaveBlock from BOPTools;
473 aLPB: ListOfShape from TopTools;
474 aTol: Real from Standard)
475 returns Boolean from Standard;
478 CheckCoincidence (me:out;
479 aPB : PaveBlock from BOPTools;
480 aLPB: ListOfPaveBlock from BOPTools)
481 returns Boolean from Standard;
484 CheckIntermediatePoint(me:out;
485 aPB : PaveBlock from BOPTools;
486 aE : Edge from TopoDS;
487 aTol: Real from Standard)
488 returns Integer from Standard;
490 -- Modified to add new method Thu Sep 14 14:35:18 2006
491 -- Contribution of Samtech www.samcef.com BEGIN
493 nF1 :Integer from Standard;
494 nF2 :Integer from Standard;
495 aLNE :out ListOfInteger from TColStd;
496 aLSE :out ListOfShape from TopTools);
497 -- Contribution of Samtech www.samcef.com END
500 aC:Shape from TopoDS;
501 aDMVV: out DataMapOfShapeShape from TopTools);
504 myDS : PShapesDataStructure from NMTDS is protected;
505 myIsDone : Boolean from Standard is protected;
506 myNbSources : Integer from Standard is protected;
507 myNbEdges : Integer from Standard is protected;
509 myPavePool : PavePool from BOPTools is protected;
510 myPavePoolNew : PavePool from BOPTools is protected;
511 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
512 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
514 myContext : Context from IntTools is protected;
515 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
516 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
518 myVSD : DataMapOfIntegerInteger from TColStd is protected;
519 myDSIt : PIterator from NMTDS is protected;
520 myCompositeShape : Shape from TopoDS is protected;
521 myIP : PInterfPool from NMTDS is protected;