1 -- Created on: 2001-11-02
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2001-2012 OPEN CASCADE SAS
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
22 class ShellSolid from BOP inherits Builder from BOP
25 --- Performs Boolean Operations (BO)
26 -- Common,Cut,Fuse for arguments of
31 DSFiller from BOPTools,
34 ShellFaceSet from BOP,
36 HistoryCollector from BOP,
43 ListOfShape from TopTools,
44 IndexedDataMapOfShapeListOfShape from TopTools,
45 IndexedMapOfShape from TopTools,
46 DataMapOfShapeInteger from TopTools,
48 IndexedMapOfInteger from TColStd,
50 StateOfShape from BooleanOperations,
52 --modified by NIZHNY-MKK Tue Sep 7 11:37:57 2004
53 ShapeEnum from TopAbs,
55 Orientation from TopAbs
60 returns ShellSolid from BOP;
62 --- Empty constructor;
67 --- see base classes, please
70 aDSF: DSFiller from BOPTools)
73 --- see base classes, please
77 ---C++: alias "Standard_EXPORT virtual ~BOP_ShellSolid(){Destroy();}"
84 --- see base classes, please
86 DoNewFaces(me: in out)
89 --- see base classes, please
92 --modified by NIZNHY-PKV Wed Sep 11 17:55:29 2002 f
93 is virtual;--protected;
94 --modified by NIZNHY-PKV Wed Sep 11 17:55:32 2002 t
96 --- Provides some preparing steps of algorithm
97 --- 1. Compute the 3D-States
98 --- 2. Compute P-Curves for section- and split- edges
99 --- 3. Treat degenerated edges
100 --- 4 Detect Same Domain faces
102 DetectSDFaces (me:out)
105 --- The algo to find SameDomain Faces
106 --- among interferred ones
108 ----------------------------------------------
110 -- W E S C O M P O N E N T S
112 -- (for internal usage)
115 AddSplitPartsINOUT (me:out;
116 nF1 :Integer from Standard;
117 aWES :out WireEdgeSet from BOP)
120 --- WES components for an argument of SHELL type
122 AddSectionPartsSh (me:out;
123 nF1 :Integer from Standard;
124 iFF :Integer from Standard;
125 aWES :out WireEdgeSet from BOP)
128 AddSplitPartsONSh (me:out;
129 nF1 :Integer from Standard;
130 aWES :out WireEdgeSet from BOP)
133 AddPartsEFSh (me:out;
134 nF1 :Integer from Standard;
135 iFF :Integer from Standard;
136 anEMap : out IndexedMapOfShape from TopTools;
137 aWES :out WireEdgeSet from BOP)
140 AddINON2DPartsSh (me:out;
141 nF1 :Integer from Standard;
142 iFF :Integer from Standard;
143 aWES :out WireEdgeSet from BOP)
146 AddINON2DPartsSh (me:out;
147 nF1 :Integer from Standard;
148 iFF :Integer from Standard;
149 aWES :out WireEdgeSet from BOP;
150 anEMap : out IndexedMapOfShape from TopTools)
153 AddPartsEFNonSDSh (me:out;
154 nF1 :Integer from Standard;
155 iFF :Integer from Standard;
156 anEMap : out IndexedMapOfShape from TopTools;
157 aWES :out WireEdgeSet from BOP)
160 AddPartsEENonSDSh (me:out;
161 nF1 :Integer from Standard;
162 iFF :Integer from Standard;
163 anEMap : out IndexedMapOfShape from TopTools;
164 aWES :out WireEdgeSet from BOP)
167 --- WES components for an argument of SOLID type
169 AddSectionPartsSo (me:out;
170 nF1 :Integer from Standard;
171 iFF :Integer from Standard;
172 aWES :out WireEdgeSet from BOP)
175 AddSplitPartsON3DSo (me:out;
176 nF1 :Integer from Standard;
177 iFF :Integer from Standard;
178 aWES :out WireEdgeSet from BOP)
181 AddSplitPartsONSo(me:out;
182 nF1 :Integer from Standard;
183 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
184 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
185 aWES :out WireEdgeSet from BOP)
188 AddPartsEFSo (me:out;
189 nF1 :Integer from Standard;
190 iFF :Integer from Standard;
191 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
192 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
193 anEMap : out IndexedMapOfShape from TopTools;
194 aWES :out WireEdgeSet from BOP)
197 AddINON2DPartsSo (me:out;
198 iFF :Integer from Standard;
199 nF1 :Integer from Standard;
200 nF2 :Integer from Standard;
201 aWES :out WireEdgeSet from BOP)
204 AddPartsEFSDSo (me:out;
205 nF1 :Integer from Standard;
206 iFF :Integer from Standard;
207 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
208 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
209 aWES :out WireEdgeSet from BOP)
212 AddPartsEFNonSDSo (me:out;
213 nF1 :Integer from Standard;
214 iFF :Integer from Standard;
215 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
216 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
217 aFFInMap:IndexedMapOfInteger from TColStd;
218 anEMap : out IndexedMapOfShape from TopTools;
219 aWES :out WireEdgeSet from BOP)
222 AddPartsEENonSDSo (me:out;
223 nF1 :Integer from Standard;
224 iFF :Integer from Standard;
225 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
226 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
227 aFFInMap:IndexedMapOfInteger from TColStd;
228 anEMap : out IndexedMapOfShape from TopTools;
229 aWES :out WireEdgeSet from BOP)
232 AddPartsEESDSo (me:out;
233 nF1 :Integer from Standard;
234 iFF :Integer from Standard;
235 aMEFObj :IndexedDataMapOfShapeListOfShape from TopTools;
236 aMEFTool:IndexedDataMapOfShapeListOfShape from TopTools;
237 aWES :out WireEdgeSet from BOP)
240 --modified by NIZHNY-MKK Tue Sep 7 11:38:00 2004
241 CheckArgTypes(myclass; theType1, theType2: ShapeEnum from TopAbs;
242 theOperation: Operation from BOP)
243 returns Boolean from Standard;
245 --- Check the types of arguments.
246 --- Returns FALSE if types of arguments
247 --- are non-valid to be treated by the
251 returns Boolean from Standard;
253 --- Check the types of arguments.
254 --- Returns FALSE if types of arguments
255 --- are non-valid to be treated by the
259 aE:Shape from TopoDS;
260 aEFMap: IndexedDataMapOfShapeListOfShape from TopTools;
261 aFaces: out IndexedMapOfShape from TopTools;
262 aProcE: out IndexedMapOfShape from TopTools)
268 aE: Edge from TopoDS;
269 aF: Face from TopoDS)
270 returns Orientation from TopAbs
275 OrientFacesOnShell (myclass;
276 aShell: Shell from TopoDS;
277 aShellNew: out Shell from TopoDS)
283 DoInternalVertices (me:out;
284 nF1:Integer from Standard;
285 aFaces: ListOfShape from TopTools)
291 returns ListOfShape from TopTools
293 ---C++: return const &
297 CollectInternals(me:out)
303 FillSectionEdges(me:out)
310 SplitFace(me; theFaceIndex: Integer from Standard;
311 theMapOfEdgeIndex: out DataMapOfShapeInteger from TopTools;
312 theListOfFace: out ListOfShape from TopTools)
313 returns Boolean from Standard;
315 SetHistoryCollector(me: in out; theHistory: HistoryCollector from BOP)
316 is redefined virtual;
320 myFace : Face from TopoDS
322 myNewFaces : ListOfShape from TopTools
324 myInternals : ListOfShape from TopTools
326 myRank : Integer from Standard