1 -- Copyright (C) 2007-2010 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
23 -- File: NMTTools_PaveFiller.cdl
24 -- Created: Fri Dec 5 14:35:00 2003
25 -- Author: Peter KURNEV
28 class PaveFiller from NMTTools
33 DataMapOfIntegerInteger from TColStd,
35 ShapeEnum from TopAbs,
39 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
40 -- Contribution of Samtech www.samcef.com BEGIN
42 ListOfShape from TopTools,
43 DataMapOfShapeShape from TopTools,
44 ListOfInteger from TColStd,
45 -- Contribution of Samtech www.samcef.com END
47 Context from IntTools,
48 ShrunkRange from IntTools,
50 IndexedDataMapOfShapeInteger from BooleanOperations,
52 PavePool from BOPTools,
53 PaveBlock from BOPTools,
54 ListOfPaveBlock from BOPTools,
55 SplitShapesPool from BOPTools,
57 PaveSet from BOPTools,
59 SSInterference from BOPTools,
61 IDMapOfPaveBlockIMapOfPaveBlock from BOPTools,
62 IDMapOfPaveBlockIMapOfInteger from BOPTools,
63 SSIntersectionAttribute from BOPTools,
65 CommonBlockPool from NMTTools,
66 CommonBlock from NMTTools,
67 ListOfCommonBlock from NMTTools,
69 ShapesDataStructure from NMTDS,
71 -- Modified to add new definitions Thu Sep 14 14:35:18 2006
72 -- Contribution of Samtech www.samcef.com BEGIN
73 PShapesDataStructure from NMTDS,
75 IndexedDataMapOfIndexedMapOfInteger from NMTTools,
76 -- Contribution of Samtech www.samcef.com END
79 PInterfPool from NMTDS
85 returns PaveFiller from NMTTools;
86 ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
90 SetCompositeShape (me:out;
91 aS: Shape from TopoDS);
94 returns Shape from TopoDS;
99 returns PShapesDataStructure from NMTDS;
102 returns PIterator from NMTDS;
105 returns PInterfPool from NMTDS;
108 -- Modified to add new method Thu Sep 14 14:35:18 2006
109 -- Contribution of Samtech www.samcef.com BEGIN
111 is virtual protected;
112 -- Contribution of Samtech www.samcef.com END
115 is virtual protected;
121 is virtual protected;
124 is virtual protected;
127 is virtual protected;
130 is virtual protected;
133 is virtual protected;
136 is virtual protected;
138 MakeSplitEdges(me:out)
141 PreparePaveBlocks (me:out;
142 aType1: ShapeEnum from TopAbs;
143 aType2: ShapeEnum from TopAbs)
144 is virtual protected;
146 CorrectShrunkRanges(me:out;
147 aSide: Integer from Standard;
148 aPave: Pave from BOPTools;
149 aSR : out ShrunkRange from IntTools)
152 PreparePaveBlocks (me:out;
153 anE:Integer from Standard)
154 is virtual protected;
157 PrepareEdges (me:out)
158 is virtual protected;
163 returns Boolean from Standard;
166 returns Context from IntTools;
167 ---C++:return const &
169 ChangeContext(me:out)
170 returns Context from IntTools;
174 returns PavePool from BOPTools;
175 ---C++:return const &
177 ChangePavePool(me:out)
178 returns PavePool from BOPTools;
182 returns CommonBlockPool from NMTTools;
183 ---C++:return const &
185 ChangeCommonBlockPool(me:out)
186 returns CommonBlockPool from NMTTools;
190 returns SplitShapesPool from BOPTools;
191 ---C++:return const &
193 ChangeSplitShapesPool(me:out)
194 returns SplitShapesPool from BOPTools;
198 nV: Integer from Standard)
199 returns Integer from Standard;
201 IsSuccessorsComputed (me;
202 iF1:Integer from Standard;
203 iF2:Integer from Standard)
204 returns Boolean from Standard
207 IsBlocksCoinside (me;
208 aPB1:PaveBlock from BOPTools;
209 aPB2:PaveBlock from BOPTools)
210 returns Boolean from Standard
213 RefinePavePool(me:out)
216 CheckFacePaves(me:out;
217 aV : Vertex from TopoDS;
218 nF: Integer from Standard)
219 returns Integer from Standard
222 ReplaceCommonBlocks (me:out;
223 aLCB: ListOfCommonBlock from NMTTools)
226 RemoveCommonBlocks (me:out;
227 aLCB: ListOfCommonBlock from NMTTools)
230 SplitCommonBlocks (me:out;
231 aLCB: ListOfCommonBlock from NMTTools)
234 SplitCommonBlock (me:out;
235 aCB : CommonBlock from NMTTools;
236 aLCB: out ListOfCommonBlock from NMTTools)
239 EECommonBlocks(me:out;
240 aM:IDMapOfPaveBlockIMapOfPaveBlock from BOPTools)
243 EFCommonBlocks(me:out;
244 aMapCB:IDMapOfPaveBlockIMapOfInteger from BOPTools)
247 EENewVertices (me:out;
248 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
251 EENewVertices (me:out;
252 aV:Vertex from TopoDS;
253 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
256 EFNewVertices (me:out;
257 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
260 EFNewVertices (me:out;
261 aV:Vertex from TopoDS;
262 aM:IndexedDataMapOfShapeInteger from BooleanOperations)
265 UpdateCommonBlocks(me:out)
268 UpdatePaveBlocks(me:out)
272 aPB:PaveBlock from BOPTools)
273 returns Integer from Standard
279 --------------------------------------------------------------
281 --- Some API FUNCTIONS
284 aBid:Integer from Standard;
285 nF1 :Integer from Standard;
286 nF2 :Integer from Standard;
287 aLs :out ListOfInteger from TColStd)
288 returns Integer from Standard;
291 nE1 :Integer from Standard;
292 nF2 :Integer from Standard;
293 aLs :out ListOfInteger from TColStd)
294 returns Integer from Standard;
297 nE1 :Integer from Standard;
298 nE2 :Integer from Standard;
299 aLs :out ListOfInteger from TColStd)
300 returns Integer from Standard;
303 nE1 :Integer from Standard;
304 nF2 :Integer from Standard;
305 aLs :out ListOfInteger from TColStd)
306 returns Integer from Standard;
309 aBid:Integer from Standard;
310 nF1 :Integer from Standard;
311 nF2 :Integer from Standard;
312 aLs :out ListOfInteger from TColStd)
313 returns Integer from Standard;
316 aBid:Integer from Standard;
317 nF1 :Integer from Standard;
318 nF2 :Integer from Standard;
319 aLs :out ListOfPaveBlock from BOPTools)
320 returns Integer from Standard;
323 nE1 :Integer from Standard;
324 nF2 :Integer from Standard;
325 aLs :out ListOfPaveBlock from BOPTools)
326 returns Integer from Standard;
329 nE1 :Integer from Standard;
330 nE2 :Integer from Standard;
331 aLs :out ListOfPaveBlock from BOPTools)
332 returns Integer from Standard;
335 nE1 :Integer from Standard;
336 nF2 :Integer from Standard;
337 aLs :out ListOfPaveBlock from BOPTools)
338 returns Integer from Standard;
341 aBid:Integer from Standard;
342 nF1 :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 ListOfPaveBlock from BOPTools)
350 returns Integer from Standard;
353 nF2 :Integer from Standard;
354 aLs :out ListOfInteger from TColStd)
355 returns Integer from Standard;
357 CommonBlocksFace (me:out;
358 nF :Integer from Standard;
359 aLCB:out ListOfCommonBlock from NMTTools)
360 returns Integer from Standard;
363 nF : Integer from Standard;
364 aF : out Face from TopoDS);
367 RealPaveBlock(me:out;
368 aPB:PaveBlock from BOPTools)
369 returns PaveBlock from BOPTools;
370 ---C++: return const &
372 --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007 f
373 RealPaveBlock(me:out;
374 aPB:PaveBlock from BOPTools;
375 aLB:out ListOfInteger from TColStd;
376 aIsCommonBlock:out Integer from Standard)
377 returns PaveBlock from BOPTools;
378 ---C++: return const &
379 --modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007 t
381 RealSplitsFace (me:out;
382 nF2 :Integer from Standard;
383 aLs :out ListOfPaveBlock from BOPTools);
385 HasRealSplitsInOnFace (me:out;
386 nF1 :Integer from Standard;
387 nF2 :Integer from Standard)
388 returns Boolean from Standard;
390 RealSplitsInFace(me:out;
391 aBid:Integer from Standard;
392 nF1 :Integer from Standard;
393 nF2 :Integer from Standard;
394 aLs :out ListOfPaveBlock from BOPTools);
396 RealSplitsInFace(me:out;
397 nE1 :Integer from Standard;
398 nF2 :Integer from Standard;
399 aLs :out ListOfPaveBlock from BOPTools);
401 RealSplitsOnEdge(me:out;
402 nE1 :Integer from Standard;
403 nE2 :Integer from Standard;
404 aLs :out ListOfPaveBlock from BOPTools);
406 RealSplitsOnFace(me:out;
407 nE1 :Integer from Standard;
408 nF2 :Integer from Standard;
409 aLs :out ListOfPaveBlock from BOPTools);
411 RealSplitsOnFace(me:out;
412 aBid:Integer from Standard;
413 nF1 :Integer from Standard;
414 nF2 :Integer from Standard;
415 aLs :out ListOfPaveBlock from BOPTools);
417 PrepareSetForFace(me:out;
418 nF1 :Integer from Standard;
419 nF2 :Integer from Standard;
420 aLPB: ListOfPaveBlock from BOPTools;
421 aPSF:out PaveSet from BOPTools);
423 PutPaveOnCurve(me:out;
424 aPSF: PaveSet from BOPTools;
425 aTol: Real from Standard;
426 aBC : out Curve from BOPTools);
428 PutBoundPaveOnCurve (me:out;
429 aBC :out Curve from BOPTools;
430 aFF :out SSInterference from BOPTools);
432 PutBoundPaveOnCurve (me:out;
434 aT : Real from Standard;
435 aBC :out Curve from BOPTools;
436 aFF :out SSInterference from BOPTools);
440 aTpV: Real from Standard;
441 aPS : PaveSet from BOPTools;
442 aPV :out Pave from BOPTools)
443 returns Boolean from Standard;
445 CheckIntermediatePoint(me:out;
446 aPB : PaveBlock from BOPTools;
447 aPBR: PaveBlock from BOPTools;
448 aTol: Real from Standard)
449 returns Integer from Standard;
452 IsExistingPaveBlock (me:out;
453 aPB : PaveBlock from BOPTools;
454 aLPB: ListOfPaveBlock from BOPTools;
455 aTol: Real from Standard)
456 returns Boolean from Standard;
458 MakePCurves (me:out);
460 -- Modified to add new methods Thu Sep 14 14:35:18 2006
461 -- Contribution of Samtech www.samcef.com BEGIN
465 MakeAloneVertices(me:out)
469 returns IndexedDataMapOfIndexedMapOfInteger from NMTTools;
470 ---C++: return const &
471 -- Contribution of Samtech www.samcef.com END
473 IsExistingPaveBlock (me:out;
474 aPB : PaveBlock from BOPTools;
475 aLPB: ListOfShape from TopTools;
476 aTol: Real from Standard)
477 returns Boolean from Standard;
480 CheckCoincidence (me:out;
481 aPB : PaveBlock from BOPTools;
482 aLPB: ListOfPaveBlock from BOPTools)
483 returns Boolean from Standard;
486 CheckIntermediatePoint(me:out;
487 aPB : PaveBlock from BOPTools;
488 aE : Edge from TopoDS;
489 aTol: Real from Standard)
490 returns Integer from Standard;
492 -- Modified to add new method Thu Sep 14 14:35:18 2006
493 -- Contribution of Samtech www.samcef.com BEGIN
495 nF1 :Integer from Standard;
496 nF2 :Integer from Standard;
497 aLNE :out ListOfInteger from TColStd;
498 aLSE :out ListOfShape from TopTools);
499 -- Contribution of Samtech www.samcef.com END
502 aC:Shape from TopoDS;
503 aDMVV: out DataMapOfShapeShape from TopTools);
506 myDS : PShapesDataStructure from NMTDS is protected;
507 myIsDone : Boolean from Standard is protected;
508 myNbSources : Integer from Standard is protected;
509 myNbEdges : Integer from Standard is protected;
511 myPavePool : PavePool from BOPTools is protected;
512 myPavePoolNew : PavePool from BOPTools is protected;
513 myCommonBlockPool : CommonBlockPool from NMTTools is protected;
514 mySplitShapesPool : SplitShapesPool from BOPTools is protected;
516 myContext : Context from IntTools is protected;
517 mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
518 myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
520 myVSD : DataMapOfIntegerInteger from TColStd is protected;
521 myDSIt : PIterator from NMTDS is protected;
522 myCompositeShape : Shape from TopoDS is protected;
523 myIP : PInterfPool from NMTDS is protected;