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 DSFiller from NMTTools,
41 PDSFiller 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: DSFiller from NMTTools)
58 ---Purpose: Performs calculations using prepared DSFiller
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
103 PerformInternal(me:out;
104 theDSF: DSFiller from NMTTools)
105 ---Purpose: Performs calculations using prepared DSFiller
109 PrepareHistory (me:out)
110 ---Purpose: Prepare information for history support
111 is redefined protected;
113 ClearInternals(me:out)
114 ---Purpose: Clears internal fields
115 is virtual protected;
118 ---Purpose: Provides preparing actions
119 is virtual protected;
122 ---Purpose: Provides post-tratment actions
123 is virtual protected;
126 theShape: Shape from TopoDS)
127 ---Purpose: Append the argument theShape to
128 -- typified lists of arguments myShapes1
132 theType: ShapeEnum from TopAbs)
133 ---Purpose: Build the resulting shapes of type theType
134 is virtual protected;
137 FillImagesVertices(me:out)
138 ---Purpose: Fill Images for vertices
142 FillImagesEdges(me:out)
143 ---Purpose: Fill Images for edges
147 FillImagesFaces(me:out)
148 ---Purpose: Fill Images for faces
151 FillIn2DParts(me:out)
152 ---Purpose: For each interferred face find split edges
153 -- that are in 2-D domain of the face
156 BuildSplitFaces(me:out)
157 ---Purpose: Build draft faces
160 FillSameDomainFaces(me:out)
161 ---Purpose: Among draft faces find same domain faces
164 FillImagesFaces1(me:out)
165 ---Purpose: Fill Images for faces
166 -- taking into account same domain faces
169 FillInternalVertices(me:out)
170 ---Purpose: Update Images for faces by
174 -- Wires, Shells, Compsolids, Compounds
175 FillImagesContainers(me:out;
176 theType:ShapeEnum from TopAbs)
177 ---Purpose: Fill Images for Wires, Shells, Compsolids, Compounds
181 FillImagesSolids(me:out)
182 ---Purpose: Fill Images for solids
185 FillIn3DParts(me:out)
186 ---Purpose: For each interferred solid find split faces
187 -- that are in 3-D domain of the solid
190 BuildSplitSolids(me:out)
191 ---Purpose: Build draft solids
194 FillInternalShapes(me:out)
195 ---Purpose: Update draft solids by
196 -- internal shells, edges, vertices
199 BuildDraftSolid(me:out;
200 theSolid: Shape from TopoDS;
201 theDraftSolid: out Shape from TopoDS;
202 theInternalFaces: out ListOfShape from TopTools)
203 ---Purpose: Build solid theDraftSolid that consists of
204 -- non-internal split faces of the solid
206 -- All splits of internal faces of
207 -- theSolid are in the list: theInternalFaces
213 theShape: Shape from TopoDS);
214 ---Purpose: Adds arguments of the operation as
215 -- shapes of upper level of container shape theShape
217 theType: Integer from Standard)
218 ---Purpose: Returns list of arguments of type theType
219 returns ListOfShape from TopTools;
220 ---C++: return const &
223 ---Purpose: Returns image shapes
224 returns Image from BRepAlgo;
225 ---C++: return const &
228 theShape:Shape from TopoDS)
229 ---Purpose: Returns split-parts of shapes that have
230 -- state IN for the domain of shape theShape
231 returns ListOfShape from TopTools;
232 ---C++: return const &
234 -- =====================================================
237 myDSFiller : PDSFiller from NMTTools is protected;
238 myShapes : ListOfShape from TopTools is protected;
240 myNbTypes : Integer from Standard is protected;
241 myMapFence : MapOfShape from TopTools is protected;
242 myShapes1 : ListOfShape from TopTools[9] is protected;
243 myImages : Image from BRepAlgo is protected;
244 myInParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
247 mySplitFaces : Image from BRepAlgo is protected;
248 mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
250 myDraftSolids : IndexedDataMapOfShapeShape from TopTools is protected;
251 myEntryPoint : Integer from Standard is protected;