Integration of OCCT 6.5.0 from SVN
[occt.git] / src / TopOpeBRepBuild / TopOpeBRepBuild_Builder1.cdl
CommitLineData
7fd59977 1-- File: TopOpeBRepBuild_Builder1.cdl
2-- Created: Wed Sep 29 09:33:29 1999
3-- Author: Maxim ZVEREV
4-- <mzv@irinox.nnov.matra-dtv.fr>
5---Copyright: Matra Datavision 1999
6
7
8class Builder1 from TopOpeBRepBuild inherits Builder from TopOpeBRepBuild
9
10 ---Purpose: extension of the class TopOpeBRepBuild_Builder dedicated
11 --- to avoid bugs in "Rebuilding Result" algorithm for the case of SOLID/SOLID Boolean Operations
12
13uses
14 HBuilder from TopOpeBRepBuild ,
15 BuildTool from TopOpeBRepDS,
16 Shape from TopoDS,
17 Edge from TopoDS,
18 Face from TopoDS,
19 ListOfShape from TopTools,
20 SequenceOfShape from TopTools,
21 ShellFaceSet from TopOpeBRepBuild,
22 WireEdgeSet from TopOpeBRepBuild,
23 GTopo from TopOpeBRepBuild,
24 IndexedMapOfShape from TopTools,
25 IndexedDataMapOfShapeListOfShape from TopTools,
26 DataMapOfOrientedShapeInteger from TopTools ,
27 HDataStructure from TopOpeBRepDS,
28 IndexedMapOfOrientedShape from TopTools,
29 IndexedDataMapOfShapeShape from TopTools ,
30 State from TopAbs,
31 IndexedDataMapOfShapeWithState from TopOpeBRepDS,
32 DataMapOfShapeState from TopOpeBRepDS,
33 PaveSet from TopOpeBRepBuild,
34 DataMapOfShapeListOfShape from TopTools
35--raises
36
37is
38 Create(BT: BuildTool from TopOpeBRepDS) returns
39 Builder1 from TopOpeBRepBuild ;
40
41
42 --------------------- BASE CLASS REDEFINITIONS
43 --modified by NIZHNY-MZV Sat May 6 10:07:00 2000
44 Destroy(me: out) is redefined virtual;
45 ---C++: alias "Standard_EXPORT virtual ~TopOpeBRepBuild_Builder1() { Destroy() ; }"
46
47 Clear(me:in out) is redefined;
48 ---Purpose: Removes all splits and merges already performed.
49 -- Does NOT clear the handled DS (except ShapeWithStatesMaps).
50
51 Perform (me:in out;HDS:mutable HDataStructure from TopOpeBRepDS ) is redefined;
52
53 Perform(me: out; HDS : HDataStructure from TopOpeBRepDS;
54 S1 : Shape from TopoDS;
55 S2 : Shape from TopoDS) is redefined;
56
57 MergeKPart(me:in out) is redefined;
58 MergeKPart(me:in out;TB1,TB2:State) is redefined;
59
60 GFillSolidSFS(me:in out; SO1: Shape from TopoDS;
61 LSO2: ListOfShape from TopTools;
62 G: GTopo from TopOpeBRepBuild;
63 SFS:in out ShellFaceSet from TopOpeBRepBuild) is redefined;
64
65 GFillShellSFS(me:in out;SH1: Shape from TopoDS;
66 LSO2: ListOfShape from TopTools;
67 G: GTopo from TopOpeBRepBuild;
68 SFS: in out ShellFaceSet from TopOpeBRepBuild) is redefined;
69
70 GWESMakeFaces(me: out; FF: Shape from TopoDS;
71 WES : out WireEdgeSet from TopOpeBRepBuild;
72 LOF : out ListOfShape from TopTools) is redefined;
73
74
75 --------------------- END BASE CLASS REDEFINITIONS
76
77
78 --------------------- NEW METHODS
79 ---Category: split edges and fill ShapeWithState Map
80 PerformShapeWithStates(me:out)is protected;
81
82 PerformShapeWithStates(me:out;
83 anObj:Shape from TopoDS;
84 aTool:Shape from TopoDS)
85 is protected;
86
87
88 StatusEdgesToSplit (me:out;
89 anObj:Shape from TopoDS;
90 anEdgesToSplitMap:IndexedMapOfShape from TopTools;
91 anEdgesToRestMap:IndexedMapOfShape from TopTools)
92 is protected;
93
94 SplitEdge (me:out;
95 anEdge:Shape from TopoDS;
96 aLNew: out ListOfShape from TopTools;
97 aDataMapOfShapeState:out DataMapOfShapeState from TopOpeBRepDS)
98 is protected;
99
100 GFillSplitsPVS (me: out;
101 anEdge: Shape from TopoDS;
102 G1 : GTopo from TopOpeBRepBuild;
103 PVS : out PaveSet from TopOpeBRepBuild);
104
105 PerformFacesWithStates(me:out;
106 anObj:Shape from TopoDS;
107 aFaces:IndexedMapOfShape from TopTools;
108 aSplF :out DataMapOfShapeState from TopOpeBRepDS)
109 is protected;
110
111 ---Category: Fill Non-same domain faces
112
113 GFillFaceNotSameDomSFS(me:in out; F1: Shape from TopoDS;
114 LSO2: ListOfShape from TopTools;
115 G: GTopo from TopOpeBRepBuild;
116 SFS: in out ShellFaceSet from TopOpeBRepBuild);
117
118 GFillFaceNotSameDomWES(me:in out; F1: Shape from TopoDS;
119 LSO2: ListOfShape from TopTools;
120 G: GTopo from TopOpeBRepBuild;
121 WES: in out WireEdgeSet from TopOpeBRepBuild);
122
123 GFillWireNotSameDomWES(me:in out; W1: Shape from TopoDS;
124 LSO2: ListOfShape from TopTools;
125 G: GTopo from TopOpeBRepBuild;
126 WES: in out WireEdgeSet from TopOpeBRepBuild);
127
128 GFillEdgeNotSameDomWES(me:in out; E1: Shape from TopoDS;
129 LSO2: ListOfShape from TopTools;
130 G: GTopo from TopOpeBRepBuild;
131 WES: in out WireEdgeSet from TopOpeBRepBuild);
132
133 ---Category: Fill Same domain faces
134
135 GFillFaceSameDomSFS(me:in out; F1: Shape from TopoDS;
136 LSO2: ListOfShape from TopTools;
137 G: GTopo from TopOpeBRepBuild;
138 SFS: in out ShellFaceSet from TopOpeBRepBuild);
139
140 GFillFaceSameDomWES(me:in out; F1: Shape from TopoDS;
141 LSO2: ListOfShape from TopTools;
142 G: GTopo from TopOpeBRepBuild;
143 WES: in out WireEdgeSet from TopOpeBRepBuild);
144
145 GFillWireSameDomWES(me:in out; W1: Shape from TopoDS;
146 LSO2: ListOfShape from TopTools;
147 G: GTopo from TopOpeBRepBuild;
148 WES: in out WireEdgeSet from TopOpeBRepBuild);
149
150 GFillEdgeSameDomWES(me:in out; E1: Shape from TopoDS;
151 LSO2: ListOfShape from TopTools;
152 G: GTopo from TopOpeBRepBuild;
153 WES: in out WireEdgeSet from TopOpeBRepBuild);
154
155 PerformONParts(me: in out; F: Shape from TopoDS;
156 SDfaces: IndexedMapOfShape from TopTools;
157 G: GTopo from TopOpeBRepBuild;
158 WES: in out WireEdgeSet from TopOpeBRepBuild);
159
160
161 PerformPieceIn2D(me: in out; aPieceToPerform : Edge from TopoDS;
162 aOriginalEdge : Edge from TopoDS;
163 edgeFace : Face from TopoDS;
164 toFace : Face from TopoDS;
165 G: GTopo from TopOpeBRepBuild;
166 keep : out Boolean from Standard);
167
168
169 PerformPieceOn2D(me: in out; aPieceObj : Shape from TopoDS;
170 aFaceObj : Shape from TopoDS;
171 aEdgeObj : Shape from TopoDS;
172 aListOfPieces : out ListOfShape from TopTools;
173 aListOfFaces : out ListOfShape from TopTools;
174 aListOfPiecesOut2d:out ListOfShape from TopTools )
175 returns Integer from Standard;
176
177 TwoPiecesON (me : in out; aSeq : SequenceOfShape from TopTools;
178 aListOfPieces : out ListOfShape from TopTools;
179 aListOfFaces : out ListOfShape from TopTools;
180 aListOfPiecesOut2d : out ListOfShape from TopTools)
181 returns Integer from Standard;
182
183 IsSame2d (me:out; aSeq:SequenceOfShape from TopTools;
184 aListOfPiecesOut2d:out ListOfShape from TopTools)
185 returns Integer from Standard is protected;
186
187 ---Category: Tools, Correctors and auxiliary methods
188
189 CorrectResult2d (me:out; aResult:out Shape from TopoDS)
190 returns Integer from Standard;
191 --modified by NIZHNY-MZV Thu Feb 10 13:22:40 2000
192 OrientateEdgeOnFace(me; EdgeToPerform : out Edge from TopoDS;
193 baseFace : Face from TopoDS;
194 edgeFace : Face from TopoDS;
195 G1 : GTopo from TopOpeBRepBuild;
196 stateOfFaceOri : out Boolean from Standard) is protected;
197
198fields
199 mySameDomMap : IndexedMapOfShape from TopTools;
200 mySDFaceToFill : Shape from TopoDS;
201 myBaseFaceToFill : Shape from TopoDS;
202 myMapOfEdgeFaces : IndexedDataMapOfShapeListOfShape from TopTools;
203 myMapOfEdgeWithFaceState : DataMapOfOrientedShapeInteger from TopTools;
204 myProcessedPartsOut2d : IndexedMapOfShape from TopTools;
205 myProcessedPartsON2d : IndexedMapOfShape from TopTools;
206 mySplitsONtoKeep : IndexedMapOfShape from TopTools;
207
208 mySourceShapes : IndexedMapOfOrientedShape from TopTools;
209
210 myMapOfCorrect2dEdges: IndexedDataMapOfShapeShape from TopTools;
211
212 -- new faces to split with their splits
213 myFSplits:DataMapOfShapeListOfShape is protected;
214 -- new edges to split with their splits
215 myESplits:DataMapOfShapeListOfShape is protected;
216
217friends
218 class HBuilder from TopOpeBRepBuild
219
220end Builder1;