Salome HOME
Win32 compliation.
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_Builder.cdl
1 -- Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
2 --
3 -- Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 --
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.
10 --
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.
15 --
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
19 --
20 -- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 --
22
23 -- File:        GEOMAlgo_Builder.cdl
24 -- Created:     
25 -- Author:      Peter KURNEV
26 --
27 class Builder from GEOMAlgo 
28         inherits BuilderShape from GEOMAlgo 
29         
30         ---Purpose:   
31
32 uses  
33     ShapeEnum from TopAbs,
34     Shape     from TopoDS, 
35      
36     ListOfShape                      from TopTools, 
37     IndexedDataMapOfShapeListOfShape from TopTools, 
38     IndexedDataMapOfShapeShape       from TopTools,   
39     MapOfShape                       from TopTools,
40     Image     from BRepAlgo, 
41     
42     PaveFiller from NMTTools, 
43     PPaveFiller from NMTTools 
44     
45 --raises
46
47 is
48  
49     Create 
50         ---Purpose:  Empty constructor     
51         returns Builder from GEOMAlgo;  
52     ---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_Builder();" 
53
54     Perform(me:out) 
55         ---Purpose:  Performs calculations     
56         is redefined; 
57          
58     PerformWithFiller(me:out; 
59         theDSF: PaveFiller from NMTTools) 
60         ---Purpose:  Performs calculations using prepared PaveFiller 
61         --           object theDSF               
62         is virtual;
63    
64     AddShape (me:out;  
65             theShape: Shape from TopoDS) 
66         ---Purpose:  Adds argument theShape of the operation                         
67         is virtual;
68
69     Clear(me:out) 
70         ---Purpose:  Clears internal fields and arguments             
71         is virtual;  
72     
73     Shapes(me) 
74         ---Purpose:  Returns the arguments of the operation       
75         returns ListOfShape from TopTools;  
76     ---C++: return const &   
77     --
78     --  History  support 
79     --
80     Generated (me:out;  
81             theS : Shape from TopoDS)
82         ---Purpose: Returns the  list of shapes generated from the
83         --          shape theS. 
84         returns ListOfShape from TopTools
85         is redefined;
86         ---C++: return const & 
87
88     Modified (me:out;  
89             theS : Shape from TopoDS)
90         ---Purpose: Returns the list of shapes modified from the shape
91         --          theS. 
92         returns ListOfShape from TopTools
93         is redefined;
94         ---C++: return const &  
95
96     IsDeleted (me:out;  
97             theS : Shape from TopoDS) 
98         ---Purpose: Returns true if the shape theS has been deleted.
99         returns Boolean from Standard  
100         is redefined; 
101     -- 
102     --    protected methods  
103     --  
104     PerformInternal(me:out; 
105         theDSF: PaveFiller from NMTTools) 
106         ---Purpose:  Performs calculations using prepared DSFiller 
107         --           object theDSF               
108         is virtual protected;  
109          
110     PrepareHistory (me:out) 
111         ---Purpose:  Prepare information for history support  
112         is redefined protected;  
113         
114     ClearInternals(me:out) 
115         ---Purpose:  Clears internal fields     
116         is virtual protected;  
117       
118     Prepare(me:out)  
119         ---Purpose:  Provides preparing actions  
120         is virtual protected;   
121          
122     PostTreat(me:out)  
123         ---Purpose:  Provides post-tratment actions  
124         is virtual protected;
125      
126     AddShape1 (me:out;  
127             theShape: Shape from TopoDS) 
128         ---Purpose:  Append the argument theShape to  
129         --           typified lists of arguments myShapes1   
130         is protected; 
131  
132     BuildResult(me:out; 
133             theType: ShapeEnum from TopAbs) 
134         ---Purpose: Build the resulting shapes of type theType      
135         is virtual protected;  
136         
137     --  Vertices 
138     FillImagesVertices(me:out)  
139         ---Purpose: Fill Images for vertices   
140         is protected; 
141          
142     --  Edges 
143     FillImagesEdges(me:out) 
144         ---Purpose: Fill Images for edges  
145         is protected; 
146     -- 
147     --  Faces 
148     FillImagesFaces(me:out)  
149         ---Purpose: Fill Images for faces 
150         is protected; 
151  
152     FillIn2DParts(me:out)  
153         ---Purpose: For each interferred face find split edges 
154         --          that are in 2-D domain of the face           
155         is protected; 
156           
157     BuildSplitFaces(me:out)  
158         ---Purpose: Build draft faces    
159         is protected; 
160          
161     FillSameDomainFaces(me:out)  
162         ---Purpose: Among draft faces find same domain faces 
163         is protected; 
164  
165     FillImagesFaces1(me:out) 
166         ---Purpose: Fill Images for faces  
167         --          taking into account same domain faces        
168         is protected;  
169         
170     FillInternalVertices(me:out)  
171         ---Purpose: Update Images for faces by  
172         --          internal vertices    
173         is protected;  
174     -- 
175     --  Wires, Shells, Compsolids, Compounds
176     FillImagesContainers(me:out; 
177             theType:ShapeEnum from TopAbs) 
178         ---Purpose:  Fill Images for Wires, Shells, Compsolids, Compounds        
179         is protected;   
180     -- 
181     --  Solids  
182     FillImagesSolids(me:out)  
183         ---Purpose:  Fill Images for solids
184         is protected;  
185          
186     FillIn3DParts(me:out) 
187         ---Purpose: For each interferred solid find split faces 
188         --          that are in 3-D domain of the solid   
189         is protected; 
190  
191     BuildSplitSolids(me:out) 
192         ---Purpose: Build draft solids   
193         is protected; 
194          
195     FillInternalShapes(me:out)  
196         ---Purpose:  Update draft solids by 
197         --           internal shells, edges, vertices                                
198         is protected;  
199          
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   
206         --           theSolid.  
207         --           All splits of internal faces of 
208         --           theSolid are in the list: theInternalFaces          
209         is protected;   
210     -- 
211     --  debug  methods  
212     --
213     AddCompound (me:out;  
214             theShape: Shape from TopoDS); 
215         ---Purpose:  Adds arguments of the operation as  
216         --           shapes of upper level of container shape theShape            
217     Shapes1(me; 
218             theType: Integer from Standard) 
219         ---Purpose: Returns list of arguments of type theType                
220         returns ListOfShape from TopTools; 
221     ---C++: return const & 
222      
223     Images(me)  
224         ---Purpose: Returns image shapes    
225         returns Image from BRepAlgo; 
226     ---C++: return const &  
227
228     InParts(me; 
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 &  
234  
235     -- =====================================================
236  
237 fields 
238     myPaveFiller      : PPaveFiller from NMTTools is protected;  
239     myShapes          : ListOfShape from TopTools is protected; 
240     -- Common usage 
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; 
246      
247     -- Faces
248     mySplitFaces      : Image from BRepAlgo is protected;  
249     mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
250     --  solids 
251     myDraftSolids     : IndexedDataMapOfShapeShape from TopTools is protected; 
252     myEntryPoint      : Integer from Standard is protected;
253     --     
254 end Builder;
255