1 -- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 -- This library is free software; you can redistribute it and/or
5 -- modify it under the terms of the GNU Lesser General Public
6 -- License as published by the Free Software Foundation; either
7 -- version 2.1 of the License.
9 -- This library is distributed in the hope that it will be useful
10 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 -- Lesser General Public License for more details.
14 -- You should have received a copy of the GNU Lesser General Public
15 -- License along with this library; if not, write to the Free Software
16 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 -- File: GEOMAlgo_Builder.cdl
22 -- Author: Peter KURNEV
25 class Builder from GEOMAlgo
26 inherits BuilderShape from GEOMAlgo
31 ShapeEnum from TopAbs,
34 ListOfShape from TopTools,
35 IndexedDataMapOfShapeListOfShape from TopTools,
36 IndexedDataMapOfShapeShape from TopTools,
37 MapOfShape from TopTools,
40 PaveFiller from NMTTools,
41 PPaveFiller from NMTTools
48 ---Purpose: Empty constructor
49 returns Builder from GEOMAlgo;
50 ---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_Builder();"
53 ---Purpose: Performs calculations
56 PerformWithFiller(me:out;
57 theDSF: PaveFiller from NMTTools)
58 ---Purpose: Performs calculations using prepared PaveFiller
63 theShape: Shape from TopoDS)
64 ---Purpose: Adds argument theShape of the operation
68 ---Purpose: Clears internal fields and arguments
72 ---Purpose: Returns the arguments of the operation
73 returns ListOfShape from TopTools;
74 ---C++: return const &
79 theS : Shape from TopoDS)
80 ---Purpose: Returns the list of shapes generated from the
82 returns ListOfShape from TopTools
84 ---C++: return const &
87 theS : Shape from TopoDS)
88 ---Purpose: Returns the list of shapes modified from the shape
90 returns ListOfShape from TopTools
92 ---C++: return const &
95 theS : Shape from TopoDS)
96 ---Purpose: Returns true if the shape theS has been deleted.
97 returns Boolean from Standard
102 PerformInternal(me:out;
103 theDSF: PaveFiller from NMTTools)
104 ---Purpose: Performs calculations using prepared DSFiller
106 is virtual protected;
108 PrepareHistory (me:out)
109 ---Purpose: Prepare information for history support
110 is redefined protected;
112 ClearInternals(me:out)
113 ---Purpose: Clears internal fields
114 is virtual protected;
117 ---Purpose: Provides preparing actions
118 is virtual protected;
121 ---Purpose: Provides post-tratment actions
122 is virtual protected;
125 theShape: Shape from TopoDS)
126 ---Purpose: Append the argument theShape to
127 -- typified lists of arguments myShapes1
131 theType: ShapeEnum from TopAbs)
132 ---Purpose: Build the resulting shapes of type theType
133 is virtual protected;
136 FillImagesVertices(me:out)
137 ---Purpose: Fill Images for vertices
141 FillImagesEdges(me:out)
142 ---Purpose: Fill Images for edges
146 FillImagesFaces(me:out)
147 ---Purpose: Fill Images for faces
150 FillIn2DParts(me:out)
151 ---Purpose: For each interferred face find split edges
152 -- that are in 2-D domain of the face
155 BuildSplitFaces(me:out)
156 ---Purpose: Build draft faces
159 FillSameDomainFaces(me:out)
160 ---Purpose: Among draft faces find same domain faces
163 FillImagesFaces1(me:out)
164 ---Purpose: Fill Images for faces
165 -- taking into account same domain faces
168 FillInternalVertices(me:out)
169 ---Purpose: Update Images for faces by
173 -- Wires, Shells, Compsolids, Compounds
174 FillImagesContainers(me:out;
175 theType:ShapeEnum from TopAbs)
176 ---Purpose: Fill Images for Wires, Shells, Compsolids, Compounds
180 FillImagesSolids(me:out)
181 ---Purpose: Fill Images for solids
184 FillIn3DParts(me:out)
185 ---Purpose: For each interferred solid find split faces
186 -- that are in 3-D domain of the solid
189 BuildSplitSolids(me:out)
190 ---Purpose: Build draft solids
193 FillInternalShapes(me:out)
194 ---Purpose: Update draft solids by
195 -- internal shells, edges, vertices
198 BuildDraftSolid(me:out;
199 theSolid: Shape from TopoDS;
200 theDraftSolid: out Shape from TopoDS;
201 theInternalFaces: out ListOfShape from TopTools)
202 ---Purpose: Build solid theDraftSolid that consists of
203 -- non-internal split faces of the solid
205 -- All splits of internal faces of
206 -- theSolid are in the list: theInternalFaces
212 theShape: Shape from TopoDS);
213 ---Purpose: Adds arguments of the operation as
214 -- shapes of upper level of container shape theShape
216 theType: Integer from Standard)
217 ---Purpose: Returns list of arguments of type theType
218 returns ListOfShape from TopTools;
219 ---C++: return const &
222 ---Purpose: Returns image shapes
223 returns Image from BRepAlgo;
224 ---C++: return const &
227 theShape:Shape from TopoDS)
228 ---Purpose: Returns split-parts of shapes that have
229 -- state IN for the domain of shape theShape
230 returns ListOfShape from TopTools;
231 ---C++: return const &
233 -- =====================================================
236 myPaveFiller : PPaveFiller from NMTTools is protected;
237 myShapes : ListOfShape from TopTools is protected;
239 myNbTypes : Integer from Standard is protected;
240 myMapFence : MapOfShape from TopTools is protected;
241 myShapes1 : ListOfShape from TopTools[9] is protected;
242 myImages : Image from BRepAlgo is protected;
243 myInParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
246 mySplitFaces : Image from BRepAlgo is protected;
247 mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
249 myDraftSolids : IndexedDataMapOfShapeShape from TopTools is protected;
250 myEntryPoint : Integer from Standard is protected;