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
102 PrepareHistory (me:out)
103 ---Purpose: Prepare information for history support
104 is redefined protected;
106 ClearInternals(me:out)
107 ---Purpose: Clears internal fields
108 is virtual protected;
111 ---Purpose: Provides preparing actions
112 is virtual protected;
115 ---Purpose: Provides post-tratment actions
116 is virtual protected;
119 theShape: Shape from TopoDS)
120 ---Purpose: Append the argument theShape to
121 -- typified lists of arguments myShapes1
125 theType: ShapeEnum from TopAbs)
126 ---Purpose: Build the resulting shapes of type theType
127 is virtual protected;
130 FillImagesVertices(me:out)
131 ---Purpose: Fill Images for vertices
135 FillImagesEdges(me:out)
136 ---Purpose: Fill Images for edges
140 FillImagesFaces(me:out)
141 ---Purpose: Fill Images for faces
144 FillIn2DParts(me:out)
145 ---Purpose: For each interferred face find split edges
146 -- that are in 2-D domain of the face
149 BuildSplitFaces(me:out)
150 ---Purpose: Build draft faces
153 FillSameDomainFaces(me:out)
154 ---Purpose: Among draft faces find same domain faces
157 FillImagesFaces1(me:out)
158 ---Purpose: Fill Images for faces
159 -- taking into account same domain faces
162 FillInternalVertices(me:out)
163 ---Purpose: Update Images for faces by
167 -- Wires, Shells, Compsolids, Compounds
168 FillImagesContainers(me:out;
169 theType:ShapeEnum from TopAbs)
170 ---Purpose: Fill Images for Wires, Shells, Compsolids, Compounds
174 FillImagesSolids(me:out)
175 ---Purpose: Fill Images for solids
178 FillIn3DParts(me:out)
179 ---Purpose: For each interferred solid find split faces
180 -- that are in 3-D domain of the solid
183 BuildSplitSolids(me:out)
184 ---Purpose: Build draft solids
187 FillInternalShapes(me:out)
188 ---Purpose: Update draft solids by
189 -- internal shells, edges, vertices
192 BuildDraftSolid(me:out;
193 theSolid: Shape from TopoDS;
194 theDraftSolid: out Shape from TopoDS;
195 theInternalFaces: out ListOfShape from TopTools)
196 ---Purpose: Build solid theDraftSolid that consists of
197 -- non-internal split faces of the solid
199 -- All splits of internal faces of
200 -- theSolid are in the list: theInternalFaces
206 theShape: Shape from TopoDS);
207 ---Purpose: Adds arguments of the operation as
208 -- shapes of upper level of container shape theShape
210 theType: Integer from Standard)
211 ---Purpose: Returns list of arguments of type theType
212 returns ListOfShape from TopTools;
213 ---C++: return const &
216 ---Purpose: Returns image shapes
217 returns Image from BRepAlgo;
218 ---C++: return const &
221 theShape:Shape from TopoDS)
222 ---Purpose: Returns split-parts of shapes that have
223 -- state IN for the domain of shape theShape
224 returns ListOfShape from TopTools;
225 ---C++: return const &
227 -- =====================================================
230 myDSFiller : PDSFiller from NMTTools is protected;
231 myShapes : ListOfShape from TopTools is protected;
233 myNbTypes : Integer from Standard is protected;
234 myMapFence : MapOfShape from TopTools is protected;
235 myShapes1 : ListOfShape from TopTools[9] is protected;
236 myImages : Image from BRepAlgo is protected;
237 myInParts : IndexedDataMapOfShapeListOfShape from TopTools is protected;
240 mySplitFaces : Image from BRepAlgo is protected;
241 mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
243 myDraftSolids : IndexedDataMapOfShapeShape from TopTools is protected;