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