1 -- Copyright (C) 2007-2011 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: GEOMAlgo_Builder.cdl
25 -- Author: Peter KURNEV
27 class Builder from GEOMAlgo
28 inherits BuilderShape from GEOMAlgo
33 ShapeEnum from TopAbs,
36 ListOfShape from TopTools,
37 IndexedDataMapOfShapeListOfShape from TopTools,
38 IndexedDataMapOfShapeShape from TopTools,
39 MapOfShape from TopTools,
42 PaveFiller from NMTTools,
43 PPaveFiller from NMTTools
50 ---Purpose: Empty constructor
51 returns Builder from GEOMAlgo;
52 ---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_Builder();"
55 ---Purpose: Performs calculations
58 PerformWithFiller(me:out;
59 theDSF: PaveFiller from NMTTools)
60 ---Purpose: Performs calculations using prepared PaveFiller
65 theShape: Shape from TopoDS)
66 ---Purpose: Adds argument theShape of the operation
70 ---Purpose: Clears internal fields and arguments
74 ---Purpose: Returns the arguments of the operation
75 returns ListOfShape from TopTools;
76 ---C++: return const &
81 theS : Shape from TopoDS)
82 ---Purpose: Returns the list of shapes generated from the
84 returns ListOfShape from TopTools
86 ---C++: return const &
89 theS : Shape from TopoDS)
90 ---Purpose: Returns the list of shapes modified from the shape
92 returns ListOfShape from TopTools
94 ---C++: return const &
97 theS : Shape from TopoDS)
98 ---Purpose: Returns true if the shape theS has been deleted.
99 returns Boolean from Standard
104 PerformInternal(me:out;
105 theDSF: PaveFiller from NMTTools)
106 ---Purpose: Performs calculations using prepared DSFiller
108 is virtual protected;
110 PrepareHistory (me:out)
111 ---Purpose: Prepare information for history support
112 is redefined protected;
114 ClearInternals(me:out)
115 ---Purpose: Clears internal fields
116 is virtual protected;
119 ---Purpose: Provides preparing actions
120 is virtual protected;
123 ---Purpose: Provides post-tratment actions
124 is virtual protected;
127 theShape: Shape from TopoDS)
128 ---Purpose: Append the argument theShape to
129 -- typified lists of arguments myShapes1
133 theType: ShapeEnum from TopAbs)
134 ---Purpose: Build the resulting shapes of type theType
135 is virtual protected;
138 FillImagesVertices(me:out)
139 ---Purpose: Fill Images for vertices
143 FillImagesEdges(me:out)
144 ---Purpose: Fill Images for edges
148 FillImagesFaces(me:out)
149 ---Purpose: Fill Images for faces
152 FillIn2DParts(me:out)
153 ---Purpose: For each interferred face find split edges
154 -- that are in 2-D domain of the face
157 BuildSplitFaces(me:out)
158 ---Purpose: Build draft faces
161 FillSameDomainFaces(me:out)
162 ---Purpose: Among draft faces find same domain faces
165 FillImagesFaces1(me:out)
166 ---Purpose: Fill Images for faces
167 -- taking into account same domain faces
170 FillInternalVertices(me:out)
171 ---Purpose: Update Images for faces by
175 -- Wires, Shells, Compsolids, Compounds
176 FillImagesContainers(me:out;
177 theType:ShapeEnum from TopAbs)
178 ---Purpose: Fill Images for Wires, Shells, Compsolids, Compounds
182 FillImagesSolids(me:out)
183 ---Purpose: Fill Images for solids
186 FillIn3DParts(me:out)
187 ---Purpose: For each interferred solid find split faces
188 -- that are in 3-D domain of the solid
191 BuildSplitSolids(me:out)
192 ---Purpose: Build draft solids
195 FillInternalShapes(me:out)
196 ---Purpose: Update draft solids by
197 -- internal shells, edges, vertices
200 BuildDraftSolid(me:out;
201 theSolid: Shape from TopoDS;
202 theDraftSolid: out Shape from TopoDS;
203 theInternalFaces: out ListOfShape from TopTools)
204 ---Purpose: Build solid theDraftSolid that consists of
205 -- non-internal split faces of the solid
207 -- All splits of internal faces of
208 -- theSolid are in the list: theInternalFaces
214 theShape: Shape from TopoDS);
215 ---Purpose: Adds arguments of the operation as
216 -- shapes of upper level of container shape theShape
218 theType: Integer from Standard)
219 ---Purpose: Returns list of arguments of type theType
220 returns ListOfShape from TopTools;
221 ---C++: return const &
224 ---Purpose: Returns image shapes
225 returns Image from BRepAlgo;
226 ---C++: return const &
229 theShape:Shape from TopoDS)
230 ---Purpose: Returns split-parts of shapes that have
231 -- state IN for the domain of shape theShape
232 returns ListOfShape from TopTools;
233 ---C++: return const &
235 -- =====================================================
238 myPaveFiller : PPaveFiller from NMTTools is protected;
239 myShapes : ListOfShape from TopTools is protected;
241 myNbTypes : Integer from Standard is protected;
242 myMapFence : MapOfShape from TopTools is protected;
243 myShapes1 : ListOfShape from TopTools[9] is protected;
244 myImages : Image from BRepAlgo is protected;
245 myInParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
248 mySplitFaces : Image from BRepAlgo is protected;
249 mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
251 myDraftSolids : IndexedDataMapOfShapeShape from TopTools is protected;
252 myEntryPoint : Integer from Standard is protected;