4e57c75e |
1 | -- Created by: Peter KURNEV |
2 | -- Copyright (c) 2010-2012 OPEN CASCADE SAS |
3 | -- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE |
4 | -- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, |
5 | -- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS |
6 | -- |
7 | -- The content of this file is subject to the Open CASCADE Technology Public |
8 | -- License Version 6.5 (the "License"). You may not use the content of this file |
9 | -- except in compliance with the License. Please obtain a copy of the License |
10 | -- at http://www.opencascade.org and read it completely before using this file. |
11 | -- |
12 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
13 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
14 | -- |
15 | -- The Original Code and all software distributed under the License is |
16 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
17 | -- Initial Developer hereby disclaims all such warranties, including without |
18 | -- limitation, any warranties of merchantability, fitness for a particular |
19 | -- purpose or non-infringement. Please see the License for the specific terms |
20 | -- and conditions governing the rights and limitations under the License. |
21 | |
22 | |
23 | class PaveFiller from BOPAlgo |
24 | inherits Algo from BOPAlgo |
25 | ---Purpose: |
26 | |
27 | uses |
28 | Pnt from gp, |
29 | Vertex from TopoDS, |
30 | Face from TopoDS, |
31 | Edge from TopoDS, |
32 | |
33 | BaseAllocator from BOPCol, |
34 | ListOfShape from BOPCol, |
35 | MapOfInteger from BOPCol, |
36 | ListOfInteger from BOPCol, |
37 | DataMapOfShapeInteger from BOPCol, |
38 | IndexedDataMapOfShapeInteger from BOPCol, |
39 | DataMapOfIntegerListOfInteger from BOPCol, |
40 | DataMapOfShapeListOfShape from BOPCol, |
b4109929 |
41 | IndexedDataMapOfShapeListOfShape from BOPCol, |
42 | DataMapOfIntegerReal from BOPCol, |
4e57c75e |
43 | -- |
44 | Context from BOPInt, |
45 | -- |
46 | SectionAttribute from BOPAlgo, |
47 | |
48 | DS from BOPDS, |
49 | PDS from BOPDS, |
50 | Iterator from BOPDS, |
51 | PIterator from BOPDS, |
52 | PaveBlock from BOPDS, |
53 | Curve from BOPDS, |
54 | IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS, |
55 | MapOfPaveBlock from BOPDS, |
56 | ListOfPaveBlock from BOPDS, |
57 | ListOfPave from BOPDS, |
58 | ListOfPntOn2S from IntSurf, |
59 | Curve from IntTools, |
60 | |
61 | DataMapOfPaveBlockListOfPaveBlock from BOPDS, |
62 | VectorOfCurve from BOPDS |
63 | |
64 | --raises |
65 | |
66 | is |
67 | Create |
68 | returns PaveFiller from BOPAlgo; |
69 | ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_PaveFiller();" |
70 | |
71 | Create (theAllocator: BaseAllocator from BOPCol) |
72 | returns PaveFiller from BOPAlgo; |
73 | |
74 | DS(me:out) |
75 | returns DS from BOPDS; |
76 | ---C++:return const & |
77 | |
78 | |
79 | PDS(me:out) |
80 | returns PDS from BOPDS; |
81 | |
82 | Iterator(me:out) |
83 | returns PIterator from BOPDS; |
84 | ---C++:return const & |
85 | |
86 | Arguments(me) |
87 | returns ListOfShape from BOPCol; |
88 | ---C++: return const & |
89 | ---C++: alias "Standard_EXPORT void SetArguments(const BOPCol_ListOfShape& theLS);" |
90 | |
91 | Context(me:out) |
92 | returns Context from BOPInt; |
93 | |
94 | SetSectionAttribute(me:out; |
95 | theSecAttr : SectionAttribute from BOPAlgo); |
96 | |
97 | Perform(me:out) |
98 | is redefined; |
99 | -- |
100 | -- protected methods |
101 | -- |
102 | Clear(me:out) |
103 | is virtual protected; |
104 | |
105 | Init(me:out) |
106 | is virtual protected; |
107 | |
108 | PerformVV(me:out) |
109 | is virtual protected; |
110 | |
111 | PerformVE(me:out) |
112 | is virtual protected; |
113 | |
114 | PerformVF(me:out) |
115 | is virtual protected; |
116 | |
117 | PerformEE(me:out) |
118 | is virtual protected; |
119 | |
120 | PerformEF(me:out) |
121 | is virtual protected; |
122 | |
123 | PerformFF(me:out) |
124 | is virtual protected; |
125 | |
126 | |
127 | TreatVerticesEE(me:out) |
128 | is protected; |
129 | |
130 | MakeSplitEdges(me:out) |
131 | is protected; |
132 | |
133 | MakeBlocks(me:out) |
134 | is protected; |
135 | |
136 | MakePCurves(me:out) |
137 | is protected; |
138 | |
139 | ProcessDE(me:out) |
140 | is protected; |
141 | |
142 | FillShrunkData(me:out; |
143 | thePB:out PaveBlock from BOPDS) |
144 | is protected; |
145 | |
146 | PerformVerticesEE(me:out; |
147 | theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; |
148 | theAllocator:out BaseAllocator from BOPCol) |
149 | returns Integer from Standard |
150 | is protected; |
151 | |
152 | PerformVerticesEF(me:out; |
153 | theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; |
154 | theAllocator:out BaseAllocator from BOPCol) |
155 | returns Integer from Standard |
156 | is protected; |
157 | |
158 | CheckFacePaves(me:out; |
159 | theVnew:Vertex from TopoDS; |
160 | theMIF:MapOfInteger from BOPCol) |
161 | returns Boolean from Standard |
162 | is protected; |
163 | |
164 | CheckFacePaves(myclass; |
165 | theN:Integer from Standard; |
166 | theMIFOn:MapOfInteger from BOPCol; |
167 | theMIFIn:MapOfInteger from BOPCol) |
168 | returns Boolean from Standard |
169 | is protected; |
170 | |
171 | IsExistingVertex(me; |
172 | theP:Pnt from gp; |
173 | theTol:Real from Standard; |
174 | theMVOn:MapOfInteger from BOPCol) |
175 | returns Boolean from Standard |
176 | is protected; |
177 | |
178 | PutPaveOnCurve(me:out; |
179 | theMVOn:MapOfInteger from BOPCol; |
180 | theTolR3D:Real from Standard; |
181 | theNC:out Curve from BOPDS; |
182 | nF1:Integer from Standard; |
183 | nF2:Integer from Standard; |
b4109929 |
184 | theMVEF:MapOfInteger from BOPCol; |
185 | theMVTol:out DataMapOfIntegerReal from BOPCol) |
4e57c75e |
186 | is protected; |
187 | |
188 | ExtendedTolerance(me:out; |
189 | nV:Integer from Standard; |
190 | aMI:MapOfInteger from BOPCol; |
191 | aTolVExt:out Real from Standard) |
192 | returns Boolean from Standard |
193 | is protected; |
194 | |
195 | PutBoundPaveOnCurve(me:out; |
196 | theF1: Face from TopoDS; |
197 | theF2: Face from TopoDS; |
198 | theTolR3D:Real from Standard; |
199 | theNC:out Curve from BOPDS; |
200 | theMVOnIn:out MapOfInteger from BOPCol; |
201 | theMVB:out MapOfInteger from BOPCol) |
202 | is protected; |
203 | |
204 | IsExistingPaveBlock(me:out; |
205 | thePB:PaveBlock from BOPDS; |
206 | theNC:Curve from BOPDS; |
207 | theTolR3D:Real from Standard; |
208 | theMPB:MapOfPaveBlock from BOPDS; |
209 | thePBOut:out PaveBlock from BOPDS) |
210 | returns Boolean from Standard |
211 | is protected; |
212 | |
213 | IsExistingPaveBlock(me:out; |
214 | thePB:PaveBlock from BOPDS; |
215 | theNC:Curve from BOPDS; |
216 | theTolR3D:Real from Standard; |
217 | theLSE:ListOfInteger from BOPCol) |
218 | returns Boolean from Standard |
219 | is protected; |
220 | |
221 | PostTreatFF(me:out; |
222 | theMSCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; |
223 | theMVI:out DataMapOfShapeInteger from BOPCol; |
224 | theDMExEd:out DataMapOfPaveBlockListOfPaveBlock from BOPDS; |
225 | theAllocator:out BaseAllocator from BOPCol) |
226 | returns Integer from Standard |
227 | is protected; |
228 | -- |
229 | -- Treatment of degenerated edges |
230 | -- |
231 | FindPaveBlocks(me:out; |
232 | theV:Integer from Standard; |
233 | theF:Integer from Standard; |
234 | theLPB:out ListOfPaveBlock from BOPDS) |
235 | is protected; |
236 | |
237 | FillPaves(me:out; |
238 | theV:Integer from Standard; |
239 | theE:Integer from Standard; |
240 | theF:Integer from Standard; |
241 | theLPB: ListOfPaveBlock from BOPDS; |
242 | thePB: PaveBlock from BOPDS) |
243 | is protected; |
244 | |
245 | MakeSplitEdge(me:out; |
246 | theV:Integer from Standard; |
247 | theF:Integer from Standard) |
248 | is protected; |
249 | |
250 | GetEFPnts(me:out; |
251 | nF1 : Integer from Standard; |
252 | nF2 : Integer from Standard; |
253 | aListOfPnts: out ListOfPntOn2S from IntSurf) |
254 | is protected; |
255 | |
256 | PutEFPavesOnCurve(me:out; |
257 | nF1 : Integer from Standard; |
258 | nF2 : Integer from Standard; |
259 | theNC : out Curve from BOPDS; |
b4109929 |
260 | theMVEF : MapOfInteger from BOPCol; |
261 | theMVTol : out DataMapOfIntegerReal from BOPCol) |
4e57c75e |
262 | is protected; |
263 | |
264 | PutStickPavesOnCurve(me:out; |
265 | nF1 : Integer from Standard; |
266 | nF2 : Integer from Standard; |
267 | theNC : out Curve from BOPDS; |
b4109929 |
268 | theMVStick : MapOfInteger from BOPCol; |
269 | theMVTol : out DataMapOfIntegerReal from BOPCol) |
4e57c75e |
270 | is protected; |
271 | |
272 | GetStickVertices(me:out; |
273 | nF1 : Integer from Standard; |
274 | nF2 : Integer from Standard; |
275 | theMVStick : out MapOfInteger from BOPCol; |
276 | theMVEFk : out MapOfInteger from BOPCol) |
277 | is protected; |
278 | |
279 | GetFullFaceMap(me:out; |
280 | nF : Integer from Standard; |
281 | theMI : out MapOfInteger from BOPCol) |
282 | is protected; |
283 | |
284 | |
285 | RemoveUsedVertices(me:out; |
286 | theNC : out Curve from BOPDS; |
287 | theMV : out MapOfInteger from BOPCol) |
288 | is protected; |
289 | |
290 | PutPaveOnCurve(me:out; |
291 | nV : Integer from Standard; |
292 | theTolR3D : Real from Standard; |
293 | theNC : Curve from BOPDS; |
b4109929 |
294 | thePB : out PaveBlock from BOPDS; |
295 | theMVTol : out DataMapOfIntegerReal from BOPCol) |
4e57c75e |
296 | is protected; |
297 | |
298 | ProcessExistingPaveBlocks(me:out; |
299 | theInt : Integer from Standard; |
300 | theMPBOnIn : MapOfPaveBlock from BOPDS; |
301 | theMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; |
302 | theMVI : out DataMapOfShapeInteger from BOPCol; |
303 | theMVB : MapOfInteger from BOPCol; |
304 | theMPB : out MapOfPaveBlock from BOPDS) |
305 | is protected; |
306 | |
307 | UpdateExistingPaveBlocks(me:out; |
308 | thePB : PaveBlock from BOPDS; |
309 | theLPB : out ListOfPaveBlock from BOPDS; |
310 | nF1 : Integer from Standard; |
311 | nF2 : Integer from Standard) |
312 | is protected; |
313 | |
314 | TreatNewVertices(me:out; |
315 | theMVI : IndexedDataMapOfShapeInteger from BOPCol; |
316 | theImages : out IndexedDataMapOfShapeListOfShape from BOPCol) |
317 | is protected; |
318 | |
319 | PutClosingPaveOnCurve (me:out; |
320 | aNC :out Curve from BOPDS) |
321 | is protected; |
322 | ---Purpose: |
323 | --- Put paves on the curve <aBC> in case when <aBC> |
324 | --- is closed 3D-curve |
325 | |
326 | PreparePostTreatFF(me:out; |
327 | aInt : Integer from Standard; |
328 | aPB : PaveBlock from BOPDS; |
329 | aMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; |
330 | aMVI : out DataMapOfShapeInteger from BOPCol; |
331 | aVC : out VectorOfCurve from BOPDS) |
332 | is protected; |
333 | ---Purpose: |
b4109929 |
334 | -- Keeps data for post treatment |
4e57c75e |
335 | |
336 | RefineFaceInfoOn(me:out) |
337 | is protected; |
338 | ---Purpose: |
b4109929 |
339 | -- Refines the state On for the all faces having |
340 | -- state information |
4e57c75e |
341 | |
342 | UpdateFaceInfo(me:out; |
343 | theDME:out DataMapOfPaveBlockListOfPaveBlock from BOPDS) |
344 | is protected; |
345 | ---Purpose: |
b4109929 |
346 | -- Updates the information about faces |
347 | |
348 | ForceInterfVE(me:out; |
349 | nV : Integer from Standard; |
350 | aPB : out PaveBlock from BOPDS; |
351 | aMPB : out MapOfPaveBlock from BOPDS) |
352 | is protected; |
353 | ---Purpose: |
354 | -- Updates tolerance of vertex with index <nV> |
355 | -- to make it interfere with edge |
356 | |
357 | ForceInterfVF(me:out; |
358 | nV:Integer from Standard; |
359 | nF:Integer from Standard) |
360 | returns Boolean from Standard |
361 | is protected; |
362 | ---Purpose: |
363 | -- Updates tolerance of vertex with index <nV> |
af4e6dab |
364 | -- to make it interfere with face with index <nF> |
365 | |
366 | CheckPlanes(me; |
b4109929 |
367 | nF1 : Integer from Standard; |
368 | nF2 : Integer from Standard) |
369 | returns Boolean from Standard |
370 | is protected; |
371 | ---Purpose: |
372 | -- Checks if there are any common or intersecting sub shapes |
373 | -- between two planar faces. |
4e57c75e |
374 | |
4e57c75e |
375 | fields |
376 | myArguments : ListOfShape from BOPCol is protected; |
377 | myDS : PDS from BOPDS is protected; |
378 | myIterator : PIterator from BOPDS is protected; |
379 | myContext : Context from BOPInt is protected; |
380 | mySectionAttribute : SectionAttribute from BOPAlgo is protected; |
381 | |
382 | end PaveFiller; |