b311480e |
1 | -- Created on: 1993-06-14 |
2 | -- Created by: Jean Yves LEBEY |
3 | -- Copyright (c) 1993-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | |
22 | class Builder from TopOpeBRepBuild |
23 | |
24 | ---Purpose: The Builder algorithm constructs topological |
25 | -- objects from an existing topology and new |
26 | -- geometries attached to the topology. It is used to |
27 | -- construct the result of a topological operation; |
28 | -- the existing topologies are the parts involved in |
29 | -- the topological operation and the new geometries |
30 | -- are the intersection lines and points. |
31 | |
32 | uses |
33 | |
34 | State from TopAbs, |
35 | ShapeEnum from TopAbs, |
36 | Orientation from TopAbs, |
37 | MapOfShape from TopTools, |
38 | DataMapOfShapeListOfShape from TopTools, |
39 | IndexedMapOfOrientedShape from TopTools, |
40 | IndexedMapOfShape from TopTools, |
41 | HArray1OfShape from TopTools, |
42 | DataMapOfIntegerListOfShape from TopTools, |
43 | DataMapOfIntegerShape from TopTools, |
44 | HArray1OfListOfShape from TopTools, |
45 | DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS, |
46 | DataMapOfShapeInteger from TopTools, |
47 | DataMapOfShapeShape from TopTools, |
48 | IndexedDataMapOfShapeShape from TopTools, |
49 | ShapeSet from TopOpeBRepBuild, |
50 | EdgeBuilder from TopOpeBRepBuild, |
51 | FaceBuilder from TopOpeBRepBuild, |
52 | SolidBuilder from TopOpeBRepBuild, |
53 | WireEdgeSet from TopOpeBRepBuild, |
54 | ShellFaceSet from TopOpeBRepBuild, |
55 | |
56 | ListOfShape from TopTools, |
57 | Shape from TopoDS, |
58 | Solid from TopoDS, |
59 | Face from TopoDS, |
60 | Edge from TopoDS, |
61 | Vertex from TopoDS, |
62 | ShapeExplorer from TopOpeBRepTool, |
63 | ShapeClassifier from TopOpeBRepTool, |
64 | BuildTool from TopOpeBRepDS, |
65 | PaveSet from TopOpeBRepBuild, |
66 | GTopo from TopOpeBRepBuild, |
67 | HDataStructure from TopOpeBRepDS, |
68 | SurfaceIterator from TopOpeBRepDS, |
69 | PointIterator from TopOpeBRepDS, |
70 | CurveIterator from TopOpeBRepDS, |
71 | Interference from TopOpeBRepDS, |
72 | Config from TopOpeBRepDS, |
73 | Pnt from gp, |
74 | AsciiString from TCollection |
75 | |
76 | |
77 | raises |
78 | |
79 | NoSuchObject from Standard |
80 | |
81 | is |
82 | |
83 | Create(BT:BuildTool) |
84 | returns Builder from TopOpeBRepBuild; |
85 | |
86 | --modified by NIZHNY-MZV Sat May 6 09:53:22 2000 |
87 | Destroy(me:out) is virtual; |
88 | ---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_Builder() { Destroy() ; }" |
89 | |
90 | ChangeBuildTool(me:in out) returns BuildTool from TopOpeBRepDS; |
91 | ---C++: return & |
92 | |
93 | BuildTool(me) returns BuildTool from TopOpeBRepDS; |
94 | ---C++: return const & |
95 | |
96 | Perform (me:in out;HDS:mutable HDataStructure) is virtual; |
97 | ---Purpose: Stores the data structure <HDS>, |
98 | -- Create shapes from the new geometries. |
99 | --modified by NIZHNY-MZV Thu Nov 4 13:20:25 1999 |
100 | Perform (me:in out;HDS:mutable HDataStructure;S1,S2:Shape) is virtual; |
101 | ---Purpose: Stores the data structure <HDS>, |
102 | -- Create shapes from the new geometries, |
103 | -- Evaluates if an operation performed on shapes S1,S2 |
104 | -- is a particular case. |
105 | |
106 | DataStructure(me) returns HDataStructure; |
107 | ---Purpose: returns the DS handled by this builder |
108 | --modified by NIZHNY-MZV Tue Apr 18 15:32:13 2000 |
109 | Clear(me:in out) is virtual; |
110 | ---Purpose: Removes all splits and merges already performed. |
111 | -- Does NOT clear the handled DS. |
112 | |
113 | MergeEdges(me:in out; |
114 | L1:ListOfShape;TB1:State; |
115 | L2:ListOfShape;TB2:State; |
116 | onA:Boolean = Standard_False; |
117 | onB:Boolean = Standard_False; |
118 | onAB:Boolean = Standard_False); |
119 | ---Purpose: Merges the two edges <S1> and <S2> keeping the |
120 | -- parts in each edge of states <TB1> and <TB2>. |
121 | -- Booleans onA, onB, onAB indicate wheter parts of edges |
122 | -- found as state ON respectively on first, second, and both |
123 | -- shapes must be (or not) built. |
124 | |
125 | MergeFaces(me:in out; |
126 | S1:ListOfShape;TB1:State;S2:ListOfShape;TB2:State; |
127 | onA:Boolean = Standard_False; |
128 | onB:Boolean = Standard_False; |
129 | onAB:Boolean = Standard_False); |
130 | ---Purpose: Merges the two faces <S1> and <S2> keeping the |
131 | -- parts in each face of states <TB1> and <TB2>. |
132 | |
133 | MergeSolids(me:in out; |
134 | S1:Shape;TB1:State;S2:Shape;TB2:State); |
135 | ---Purpose: Merges the two solids <S1> and <S2> keeping the |
136 | -- parts in each solid of states <TB1> and <TB2>. |
137 | |
138 | MergeShapes(me:in out; |
139 | S1:Shape;TB1:State; |
140 | S2:Shape;TB2:State); |
141 | ---Purpose: Merges the two shapes <S1> and <S2> keeping the |
142 | -- parts of states <TB1>,<TB2> in <S1>,<S2>. |
143 | |
144 | End(me:in out); |
145 | |
146 | -- LocOpe use |
147 | Classify(me) returns Boolean; |
148 | ChangeClassify(me:in out; B:Boolean); |
149 | |
150 | MergeSolid(me:in out;S:Shape;TB:State); |
151 | ---Purpose: Merges the solid <S> keeping the |
152 | -- parts of state <TB>. |
153 | |
154 | NewVertex(me;I:Integer) returns Shape; |
155 | ---Purpose: Returns the vertex created on point <I>. |
156 | ---C++: return const & |
157 | |
158 | NewEdges(me;I:Integer) returns ListOfShape; |
159 | ---Purpose: Returns the edges created on curve <I>. |
160 | ---C++: return const & |
161 | |
162 | NewFaces(me;I:Integer) returns ListOfShape; |
163 | ---Purpose: Returns the faces created on surface <I>. |
164 | ---C++: return const & |
165 | |
166 | IsSplit(me;S:Shape;TB:State) returns Boolean; |
167 | ---Purpose: Returns True if the shape <S> has been split. |
168 | |
169 | Splits(me;S:Shape;TB:State) returns ListOfShape |
170 | ---Purpose: Returns the split parts <TB> of shape <S>. |
171 | ---C++: return const & |
172 | raises NoSuchObject from Standard; -- if S is not IsSplit() |
173 | |
174 | IsMerged(me;S:Shape;TB:State) returns Boolean; |
175 | ---Purpose: Returns True if the shape <S> has been merged. |
176 | |
177 | Merged(me;S:Shape;TB:State) returns ListOfShape |
178 | ---Purpose: Returns the merged parts <TB> of shape <S>. |
179 | ---C++: return const & |
180 | raises NoSuchObject from Standard; -- if <S> is not IsMerged() |
181 | |
182 | InitSection(me:in out); |
183 | |
184 | SplitSectionEdges (me:in out); |
185 | ---Purpose: create parts ON solid of section edges |
186 | --modified by NIZHNY-MZV Wed Feb 23 12:54:11 2000 |
187 | SplitSectionEdge (me:in out; E:Shape from TopoDS) is virtual; |
188 | ---Purpose: create parts ON solid of section edges |
189 | |
190 | SectionCurves(me:in out; L:in out ListOfShape); |
191 | ---Purpose: return the section edges built on new curves. |
192 | |
193 | SectionEdges(me:in out; L:in out ListOfShape); |
194 | ---Purpose: return the parts of edges found ON the boundary |
195 | -- of the two arguments S1,S2 of Perform() |
196 | |
197 | FillSecEdgeAncestorMap(me; aShapeRank: Integer; aMapON: MapOfShape; |
198 | anAncMap: out DataMapOfShapeShape); |
199 | ---Purpose: Fills anAncMap with pairs (edge,ancestor edge) for each |
200 | -- split from the map aMapON for the shape object identified |
201 | -- by ShapeRank |
202 | |
203 | Section(me:in out; L:in out ListOfShape); |
204 | ---Purpose: return all section edges. |
205 | |
206 | Section(me:in out) returns ListOfShape; |
207 | ---C++: return const & |
208 | |
209 | BuildVertices (me:in out;DS:mutable HDataStructure); |
210 | ---Purpose: update the DS by creating new geometries. |
211 | -- create vertices on DS points. |
212 | |
213 | BuildEdges (me:in out;DS:mutable HDataStructure); |
214 | ---Purpose: update the DS by creating new geometries. |
215 | -- create shapes from the new geometries. |
216 | |
217 | MSplit(me;s:State from TopAbs) |
218 | returns DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS; |
219 | ---C++: return const & |
220 | |
221 | ChangeMSplit(me:in out;s:State from TopAbs) |
222 | returns DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS; |
223 | ---C++: return & |
224 | |
225 | ------- |
226 | -- private |
227 | ------- |
228 | |
229 | BuildEdges (me:in out;iC:Integer;DS:mutable HDataStructure) is protected; |
230 | ---Purpose: update the DS by creating new geometries. |
231 | -- create edges on the new curve <Icurv>. |
232 | |
233 | BuildFaces (me:in out;iS:Integer;DS:mutable HDataStructure) is protected; |
234 | ---Purpose: update the DS by creating new geometries. |
235 | -- create faces on the new surface <ISurf>. |
236 | |
237 | BuildFaces (me:in out;DS:mutable HDataStructure) is protected; |
238 | ---Purpose: update the DS by creating new geometries. |
239 | -- create shapes from the new geometries. |
240 | |
241 | SplitEdge(me:in out;E1:Shape;TB1,TB2:State) is protected; |
242 | ---Purpose: Split <E1> keeping the parts of state <TB1>. |
243 | |
244 | SplitEdge1(me:in out;E1:Shape;TB1,TB2:State) is protected; |
245 | ---Purpose: Split <E1> keeping the parts of state <TB1>. |
246 | |
247 | SplitEdge2(me:in out;E1:Shape;TB1,TB2:State) is protected; |
248 | ---Purpose: Split <E1> keeping the parts of state <TB1>. |
249 | |
250 | SplitFace(me:in out;F1:Shape;TB1,TB2:State) is protected; |
251 | ---Purpose: Split <F1> keeping the parts of state <TB1>. |
252 | -- Merge faces with same domain, keeping parts of |
253 | -- state <TB2>. |
254 | |
255 | SplitFace1(me:in out;F1:Shape;TB1,TB2:State) is protected; |
256 | |
257 | SplitFace2(me:in out;F1:Shape;TB1,TB2:State) is protected; |
258 | |
259 | SplitSolid(me:in out;S1:Shape;TB1,TB2:State) is protected; |
260 | ---Purpose: Split <S1> keeping the parts of state <TB1>. |
261 | |
262 | SplitShapes(me:in out;Ex:in out ShapeExplorer from TopOpeBRepTool; |
263 | TB1,TB2:State; |
264 | SS:in out ShapeSet;RevOri:Boolean) is protected; |
265 | ---Purpose: Explore shapes of given by explorer <Ex> to split them. |
266 | -- Store new shapes in the set <SS>. |
267 | -- According to RevOri, reverse or not their orientation. |
268 | |
269 | MakeEdges(me:in out;E:Shape;B:in out EdgeBuilder; |
270 | L:in out ListOfShape); |
271 | |
272 | MakeFaces(me:in out;F:Shape;B:in out FaceBuilder; |
273 | L:in out ListOfShape); |
274 | |
275 | MakeSolids(me:in out;B:in out SolidBuilder; |
276 | L:in out ListOfShape); |
277 | |
278 | MakeShells(me:in out;B:in out SolidBuilder; |
279 | L:in out ListOfShape); |
280 | |
281 | FillFace(me:in out;F1:Shape;TB1:State; |
282 | LF2:ListOfShape;TB2:State; |
283 | WES:in out WireEdgeSet;RevOri:Boolean) is protected; |
284 | ---Purpose: Split edges of <F1> and store wires and edges in |
285 | -- the set <WES>. According to RevOri, reverse (or not) orientation. |
286 | |
287 | FillSolid(me:in out;S1:Shape;TB1:State; |
288 | LS2:ListOfShape;TB2:State; |
289 | SS:in out ShapeSet;RevOri:Boolean) is protected; |
290 | ---Purpose: Split faces of <S1> and store shells and faces in |
291 | -- the set <SS>. According to RevOri, reverse (or not) orientation. |
292 | |
293 | FillShape(me:in out;S1:Shape;TB1:State; |
294 | LS2:ListOfShape;TB2:State; |
295 | SS:in out ShapeSet;RevOri:Boolean) is protected; |
296 | ---Purpose: Split subshapes of <S1> and store subshapes in |
297 | -- the set <SS>. According to RevOri, reverse (or not) orientation. |
298 | |
299 | FillVertexSet(me;IT:in out PointIterator; |
300 | TB:State;PVS:in out PaveSet) is protected; |
301 | ---Purpose: fills the vertex set PVS with the point iterator IT. |
302 | -- IT accesses a list of interferences which geometry is a point or a vertex. |
303 | -- TB indicates the orientation to give to the geometries |
304 | -- found in interference list accessed by IT. |
305 | |
306 | FillVertexSetOnValue(me;IT:PointIterator; |
307 | TB:State;PVS:in out PaveSet) is protected; |
308 | ---Purpose: fills vertex set PVS with the current value of IT. |
309 | -- I geometry is a point or a vertex. |
310 | -- TB indicates the orientation to give to geometries found I |
311 | |
312 | ToSplit(me;S:Shape;TB:State) returns Boolean is protected; |
313 | ---Purpose: Returns True if the shape <S> has not already been split |
314 | --modified by NIZHNY-MZV Thu Sep 30 10:29:53 1999 |
315 | MarkSplit(me:in out;S:Shape;TB:State;B:Boolean=Standard_True) is protected; |
316 | ---Purpose: add the shape <S> to the map of split shapes. |
317 | -- mark <S> as split/not split on <state>, according to B value. |
318 | |
319 | ChangeSplit(me:in out;S:Shape;TB:State) returns ListOfShape; |
320 | ---Purpose: Returns a ref.on the list of shapes connected to <S> as |
321 | -- <TB> split parts of <S>. |
322 | -- Mark <S> as split in <TB> parts. |
323 | ---C++: return & |
324 | |
325 | ChangeMerged(me:in out;S:Shape;TB:State) returns ListOfShape is protected; |
326 | ---Purpose: Returns a ref. on the list of shapes connected to <S> as |
327 | -- <TB> merged parts of <S>. |
328 | ---C++: return & |
329 | |
330 | ChangeNewVertex(me:in out;I:Integer) returns Shape is protected; |
331 | ---Purpose: Returns a ref. on the vertex created on point <I>. |
332 | ---C++: return & |
333 | |
334 | ChangeNewEdges(me:in out;I:Integer) returns ListOfShape is protected; |
335 | ---Purpose: Returns a ref. on the list of edges created on curve <I>. |
336 | ---C++: return & |
337 | |
338 | ChangeNewFaces(me:in out;I:Integer) returns ListOfShape is protected; |
339 | ---Purpose: Returns a ref. on the list of faces created on surface <I>. |
340 | ---C++: return & |
341 | |
342 | AddIntersectionEdges(me;F:in out Shape;TB:State; |
343 | RevOri:Boolean;ES:in out ShapeSet) is protected; |
344 | |
345 | Opec12(me) returns Boolean; |
346 | |
347 | Opec21(me) returns Boolean; |
348 | |
349 | Opecom(me) returns Boolean; |
350 | |
351 | Opefus(me) returns Boolean; |
352 | |
353 | ShapePosition(me:in out;S:Shape;LS:ListOfShape) returns State; |
354 | |
355 | KeepShape(me:in out;S:Shape;LS:ListOfShape;T:State) returns Boolean; |
356 | |
357 | TopType(myclass;S:Shape) returns ShapeEnum; |
358 | |
359 | Reverse(myclass;T1,T2:State) returns Boolean; |
360 | |
361 | Orient(myclass;O:Orientation;R:Boolean) returns Orientation; |
362 | |
363 | FindSameDomain(me;L1,L2:in out ListOfShape); |
364 | |
365 | FindSameDomainSameOrientation(me;LSO,LDO:in out ListOfShape); |
366 | |
367 | MapShapes(me:in out;S1,S2:Shape); |
368 | |
369 | ClearMaps(me:in out); |
370 | |
371 | FindSameRank(me;L1:ListOfShape;R:Integer;L2:in out ListOfShape); |
372 | |
373 | ShapeRank(me;S:Shape) returns Integer; |
374 | |
375 | IsShapeOf(me;S:Shape;I12:Integer) returns Boolean; |
376 | |
377 | Contains(myclass;S:Shape;L:ListOfShape) returns Boolean; |
378 | |
379 | UpdateSplitAndMerged(me : in out; mle :DataMapOfIntegerListOfShape from TopTools; |
380 | mre :DataMapOfIntegerShape from TopTools; |
381 | mlf :DataMapOfShapeShape from TopTools; |
382 | state :State from TopAbs) |
383 | is protected; |
384 | |
385 | |
386 | -- KPart Builder |
387 | |
388 | FindIsKPart(me:in out) returns Integer; |
389 | IsKPart(me) returns Integer; |
390 | --Begin modified by NIZHNY-MZV Mon Feb 7 17:18:40 2000 |
391 | MergeKPart(me:in out) is virtual; |
392 | MergeKPart(me:in out;TB1,TB2:State) is virtual; |
393 | --End modified by NIZHNY-MZV Mon Feb 7 17:18:45 2000 |
394 | MergeKPartiskole(me:in out); |
395 | MergeKPartiskoletge(me:in out); |
396 | MergeKPartisdisj(me:in out); |
397 | MergeKPartisfafa(me:in out); |
398 | MergeKPartissoso(me:in out); |
399 | KPiskole(me:in out) returns Integer; |
400 | KPiskoletge(me:in out) returns Integer; |
401 | KPisdisj(me:in out) returns Integer; |
402 | KPisfafa(me:in out) returns Integer; |
403 | KPissoso(me:in out) returns Integer; |
404 | KPClearMaps(me:in out); |
405 | KPlhg(me;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer; |
406 | KPlhg(me;S:Shape;T:ShapeEnum) returns Integer; |
407 | KPlhsd(me;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer; |
408 | KPlhsd(me;S:Shape;T:ShapeEnum) returns Integer; |
409 | KPclasSS(me:in out;S1:Shape;exceptLS1:ListOfShape;S2:Shape) returns State; |
410 | KPclasSS(me:in out;S1,exceptS1,S2:Shape) returns State; |
411 | KPclasSS(me:in out;S1,S2:Shape) returns State; |
412 | KPiskolesh(me;S:Shape;LS,LF:out ListOfShape) returns Boolean; |
413 | KPiskoletgesh(me;S:Shape;LS,LF:out ListOfShape) returns Boolean; |
414 | KPSameDomain(me;L1:in out ListOfShape;L2:out ListOfShape); |
415 | KPisdisjsh(me;S:Shape) returns Integer; |
416 | KPisfafash(me;S:Shape) returns Integer; |
417 | KPissososh(me;S:Shape) returns Integer; |
418 | KPiskoleanalyse(me;FT1,FT2,ST1,ST2:State;I,I1,I2:out Integer); |
419 | KPiskoletgeanalyse(me;Conf:Config;ST1,ST2:State;I:out Integer); |
420 | KPisdisjanalyse(me;ST1,ST2:State;I,IC1,IC2:out Integer); |
421 | KPls(myclass;S:Shape;T:ShapeEnum;L:out ListOfShape) returns Integer; |
422 | KPls(myclass;S:Shape;T:ShapeEnum) returns Integer; |
423 | |
424 | -- les methodes suivantes sont in out er non myclass |
425 | -- car elles modifient myShapeClassifier |
426 | KPclassF(me:in out;F1,F2:Shape) returns State; |
427 | KPclassFF(me:in out;F1,F2:Shape;T1,T2:out State); |
428 | KPiskoleFF(me:in out;F1,F2:Shape;T1,T2:out State) returns Boolean; |
429 | KPContains(myclass;S:Shape;L:ListOfShape) returns Boolean; |
430 | KPmakeface(me:in out;F1:Shape;LF2:ListOfShape;T1,T2:State;R1,R2:Boolean) |
431 | returns Shape; |
432 | KPreturn(myclass;KP:Integer) returns Integer; |
433 | |
434 | -- |
435 | SplitEvisoONperiodicF(me:in out); |
436 | |
437 | -- solid |
438 | --modified by NIZHNY-MZV Wed Sep 29 09:46:48 1999 |
439 | GMergeSolids(me:in out;LSO1,LSO2:ListOfShape;G:GTopo); |
440 | GFillSolidsSFS(me:in out;LSO1,LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet); |
441 | GFillSolidSFS(me:in out;SO1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet) is virtual; |
442 | GFillSurfaceTopologySFS(me:in out;SO1:Shape;G:GTopo;SFS:in out ShellFaceSet); |
443 | GFillSurfaceTopologySFS(me;IT:SurfaceIterator;G:GTopo;SFS:in out ShellFaceSet); |
444 | --modified by NIZHNY-MZV Thu Sep 30 09:55:31 1999 |
445 | GFillShellSFS(me:in out;SH1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet) is virtual; |
446 | GFillFaceSFS(me:in out;F1:Shape;LSO2:ListOfShape;G:GTopo;SFS:in out ShellFaceSet); |
447 | GSplitFaceSFS(me:in out;F1:Shape;LSclass:ListOfShape;G:GTopo;SFS:in out ShellFaceSet); |
448 | GMergeFaceSFS(me:in out;F:Shape;G:GTopo;SFS:out ShellFaceSet); |
449 | GSplitFace(me:in out;F:Shape;G:GTopo;LSclass:ListOfShape); |
450 | AddONPatchesSFS(me:in out;G:GTopo;SFS:out ShellFaceSet); |
451 | FillOnPatches(me:in out;anEdgesON:ListOfShape; aBaseFace:Shape; |
452 | avoidMap:IndexedMapOfOrientedShape); |
453 | FindFacesTouchingEdge(me;aFace,anEdge:Shape; aShRank:Integer; aFaces:out ListOfShape); |
454 | |
455 | -- face |
456 | |
457 | GMergeFaces(me:in out;LF1,LF2:ListOfShape;G:GTopo); |
458 | GFillFacesWES(me:in out;LF1,LF2:ListOfShape;G:GTopo;WES:out WireEdgeSet); |
459 | GFillFacesWESK(me:in out;LF1,LF2:ListOfShape;G:GTopo;WES:out WireEdgeSet;K:Integer); |
460 | GFillFacesWESMakeFaces(me:in out;LF1,LF2,LSO:ListOfShape;G:GTopo); |
461 | GFillFaceWES(me:in out;F:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet); |
462 | GFillCurveTopologyWES(me:in out;F:Shape;G:GTopo;WES:in out WireEdgeSet); |
463 | GFillCurveTopologyWES(me;IT:CurveIterator;G:GTopo;WES:in out WireEdgeSet); |
464 | |
465 | GFillONPartsWES(me:in out;F:Shape;G:GTopo;LSclass:ListOfShape;WES:in out WireEdgeSet); |
466 | |
467 | GFillWireWES(me:in out;W:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet); |
468 | GFillEdgeWES(me:in out;E:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet); |
469 | GSplitEdgeWES(me:in out;E:Shape;LF2:ListOfShape;G:GTopo;WES:in out WireEdgeSet); |
470 | GMergeEdgeWES(me:in out;E:Shape;G:GTopo;WES:in out WireEdgeSet); |
471 | GSplitEdge(me:in out;E:Shape;G:GTopo;LSclass:ListOfShape); |
472 | |
473 | -- edge |
474 | |
475 | GMergeEdges(me:in out;LE1,LE2:ListOfShape;G:GTopo); |
476 | GFillEdgesPVS(me:in out;LE1,LE2:ListOfShape;G:GTopo;PVS:in out PaveSet); |
477 | GFillEdgePVS(me:in out;E:Shape;LE2:ListOfShape;G:GTopo;PVS:in out PaveSet); |
478 | GFillPointTopologyPVS(me:in out;E:Shape;G:GTopo;PVS:in out PaveSet); |
479 | GFillPointTopologyPVS(me;E:Shape;IT:PointIterator;G:GTopo;PVS:in out PaveSet); |
480 | GParamOnReference(me;V:Vertex;E:Edge;P:out Real) returns Boolean; |
481 | |
482 | -- other |
483 | |
484 | GKeepShape(me:in out;S:Shape;Lref:ListOfShape;T:State) returns Boolean; |
485 | GKeepShape1(me:in out;S:Shape;Lref:ListOfShape;T:State;pos:out State) returns Boolean; |
486 | ---Purpose: return True if S is classified <T> / Lref shapes |
487 | GKeepShapes(me:in out ;S:Shape;Lref:ListOfShape;T:State; |
488 | Lin:ListOfShape;Lou:in out ListOfShape); |
489 | ---Purpose: add to Lou the shapes of Lin classified <T> / Lref shapes. |
490 | -- Lou is not cleared. (S is a dummy trace argument) |
491 | |
492 | GSFSMakeSolids(me:in out;SOF:Shape;SFS:in out ShellFaceSet;LOSO:in out ListOfShape); |
493 | GSOBUMakeSolids(me:in out;SOF:Shape;SOBU:in out SolidBuilder;LOSO:in out ListOfShape); |
494 | --modified by NIZHNY-MZV Mon Dec 6 14:53:21 1999 |
495 | GWESMakeFaces(me:in out;FF:Shape;WES:in out WireEdgeSet;LOF:in out ListOfShape) is virtual; |
496 | GFABUMakeFaces(me:in out;FF:Shape;FABU:in out FaceBuilder;LOF:in out ListOfShape; |
497 | MWisOld:out DataMapOfShapeInteger from TopTools); |
498 | RegularizeFaces(me:in out;FF:Shape;lnewFace:ListOfShape;LOF:in out ListOfShape); |
499 | RegularizeFace(me:in out;FF:Shape;newFace:Shape;LOF:in out ListOfShape); |
500 | -- regularize face newFace issued from face SS. |
501 | -- regularized faces are returned in the list of shape LOF |
502 | RegularizeSolids(me:in out;SS:Shape;lnewSolid:ListOfShape;LOS:in out ListOfShape); |
503 | RegularizeSolid(me:in out;SS:Shape;newSolid:Shape;LOS:in out ListOfShape); |
504 | -- regularize solid newSolid issued from solid SS. |
505 | -- regularized solids are returned in the list of shape LOS |
506 | |
507 | GPVSMakeEdges(me;EF:Shape;PVS:in out PaveSet;LOE:in out ListOfShape); |
508 | GEDBUMakeEdges(me;EF:Shape;EDBU:in out EdgeBuilder;LOE:in out ListOfShape); |
509 | |
510 | GToSplit(me;S:Shape;TB:State) returns Boolean; |
511 | GToMerge(me;S:Shape) returns Boolean; |
512 | |
513 | GTakeCommonOfSame(myclass;G:GTopo) returns Boolean; |
514 | GTakeCommonOfDiff(myclass;G:GTopo) returns Boolean; |
515 | |
516 | -- NYI:GFindxxx methods:should be provided by the DS |
517 | GFindSamDom(me;S:Shape;L1,L2:in out ListOfShape); |
518 | GFindSamDom(me;L1,L2:in out ListOfShape); |
519 | GFindSamDomSODO(me;S:Shape;LSO,LDO:in out ListOfShape); |
520 | GFindSamDomSODO(me;LSO,LDO:in out ListOfShape); |
521 | |
522 | GMapShapes(me:in out;S1,S2:Shape); |
523 | GClearMaps(me:in out); |
524 | GFindSameRank(me;L1:ListOfShape;R:Integer;L2:in out ListOfShape); |
525 | GShapeRank(me;S:Shape) returns Integer; |
526 | GIsShapeOf(me;S:Shape;I12:Integer) returns Boolean; |
527 | GContains(myclass;S:Shape;L:ListOfShape) returns Boolean; |
528 | GCopyList(myclass;Lin:ListOfShape;i1,i2:Integer;Lou:out ListOfShape); |
529 | GCopyList(myclass;Lin:ListOfShape;Lou:out ListOfShape); |
530 | |
531 | -- dump |
532 | |
533 | GdumpLS(me;L:ListOfShape); |
534 | GdumpPNT(myclass;P:Pnt); |
535 | GdumpORIPARPNT(myclass;o:Orientation;p:Real;Pnt:Pnt); |
536 | GdumpSHA(me;S:Shape;str:Address=NULL); |
537 | GdumpSHAORI(me;S:Shape;str:Address=NULL); |
538 | GdumpSHAORIGEO(me;S:Shape;str:Address=NULL); |
539 | |
540 | GdumpSHASTA(me;iS:Integer;T:State; |
541 | a:AsciiString="";b:AsciiString=""); |
542 | GdumpSHASTA(me;S:Shape;T:State; |
543 | a:AsciiString="";b:AsciiString=""); |
544 | GdumpSHASTA(me;iS:Integer;T:State;SS:ShapeSet; |
545 | a:AsciiString="";b:AsciiString="";c:AsciiString="\n"); |
546 | |
547 | GdumpEDG(me;S:Shape;str:Address=NULL); |
548 | GdumpEDGVER(me;E,V:Shape;str:Address=NULL); |
549 | |
550 | GdumpSAMDOM(me;L:ListOfShape;str:Address=NULL); |
551 | GdumpEXP(me;E:ShapeExplorer); |
552 | GdumpSOBU(me;SB:in out SolidBuilder); |
553 | GdumpFABU(me;FB:in out FaceBuilder); |
554 | GdumpEDBU(me;EB:in out EdgeBuilder); |
555 | GtraceSPS(me;iS:Integer) returns Boolean; |
556 | GtraceSPS(me;iS,jS:Integer) returns Boolean; |
557 | GtraceSPS(me;S:Shape) returns Boolean; |
558 | GtraceSPS(me;S:Shape;IS:out Integer) returns Boolean; |
559 | GdumpSHASETreset(me:in out); |
560 | GdumpSHASETindex(me:in out) returns Integer; |
561 | PrintGeo(myclass;S:Shape); |
562 | PrintSur(myclass;F:Face); |
563 | PrintCur(myclass;E:Edge); |
564 | PrintPnt(myclass;V:Vertex); |
565 | PrintOri(myclass;S:Shape); |
566 | StringState(myclass;S:State) returns AsciiString from TCollection; |
567 | GcheckNBOUNDS(myclass;E:Shape) returns Boolean; |
568 | |
569 | |
570 | fields |
571 | |
572 | myState1,myState2:State from TopAbs is protected; |
573 | myShape1,myShape2:Shape from TopoDS is protected; |
574 | myDataStructure:HDataStructure from TopOpeBRepDS is protected; |
575 | myBuildTool:BuildTool from TopOpeBRepDS is protected; |
576 | |
577 | myNewVertices:HArray1OfShape from TopTools is protected; |
578 | myNewEdges:DataMapOfIntegerListOfShape from TopTools is protected; |
579 | myNewFaces:HArray1OfListOfShape from TopTools is protected; |
580 | |
581 | mySplitIN :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
582 | mySplitON :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
583 | mySplitOUT:DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
584 | myMergedIN :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
585 | myMergedON :DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
586 | myMergedOUT:DataMapOfShapeListOfShapeOn1State from TopOpeBRepDS is protected; |
587 | |
588 | myEmptyShapeList:ListOfShape from TopTools is protected; |
589 | myListOfSolid:ListOfShape from TopTools is protected; |
590 | myListOfFace:ListOfShape from TopTools is protected; |
591 | myListOfEdge:ListOfShape from TopTools is protected; |
592 | |
593 | -- new faces to split with their splits |
594 | myFSplits:DataMapOfShapeListOfShape is protected; |
595 | -- new edges to split with their splits |
596 | myESplits:DataMapOfShapeListOfShape is protected; |
597 | |
598 | -- section data |
599 | mySectionDone:Boolean from Standard is protected; |
600 | mySplitSectionEdgesDone:Boolean from Standard is protected; |
601 | mySection:ListOfShape from TopTools is protected; |
602 | |
603 | -- grid data |
604 | mySolidReference:Solid from TopoDS is protected; |
605 | mySolidToFill:Solid from TopoDS is protected; |
606 | myFaceAvoid:ListOfShape from TopTools is protected; |
607 | |
608 | myFaceReference:Face from TopoDS is protected; |
609 | myFaceToFill:Face from TopoDS is protected; |
610 | myEdgeAvoid:ListOfShape from TopTools is protected; |
611 | |
612 | myEdgeReference:Edge from TopoDS is protected; |
613 | myEdgeToFill:Edge from TopoDS is protected; |
614 | myVertexAvoid:ListOfShape from TopTools is protected; |
615 | |
616 | myMAP1,myMAP2:IndexedMapOfShape from TopTools is protected; |
617 | |
618 | -- KPart Builder |
619 | myIsKPart:Integer from Standard is protected; |
620 | myKPMAPf1f2:DataMapOfShapeListOfShape from TopTools is protected; |
621 | |
622 | -- trace |
623 | mySHASETindex:Integer is protected; |
624 | |
625 | -- special cases |
626 | myClassifyDef:Boolean is protected; |
627 | myClassifyVal:Boolean is protected; |
628 | |
629 | myShapeClassifier:ShapeClassifier from TopOpeBRepTool is protected; |
630 | |
631 | --- Regularization |
632 | myMemoSplit : MapOfShape from TopTools is protected; |
633 | |
634 | myEmptyAS : AsciiString from TCollection is protected; -- BUG extraction hxx WOK |
635 | |
636 | -- for building of ON patches from coinciding faces not same domain |
637 | myProcessON: Boolean from Standard is protected; |
638 | myONFacesMap: IndexedDataMapOfShapeShape from TopTools is protected; |
639 | myONElemMap: IndexedMapOfOrientedShape from TopTools is protected; |
640 | |
641 | friends |
642 | |
643 | class HBuilder from TopOpeBRepBuild |
644 | |
645 | end Builder from TopOpeBRepBuild; |