Salome HOME
Copyrights update
[modules/geom.git] / src / NMTAlgo / NMTAlgo_Splitter.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/
19 //
20 -- File:        NMTAlgo_Splitter.cdl
21 -- Created:     Tue Jan 27 15:09:45 2004
22 -- Author:      Peter KURNEV
23 --              <pkv@irinox>
24 ---Copyright:    Matra Datavision 2004
25
26
27 class Splitter from NMTAlgo  
28     inherits Builder from NMTAlgo 
29
30         ---Purpose: 
31
32 uses  
33     Builder             from BRep,
34     ShapeEnum           from TopAbs,
35     Compound            from TopoDS,
36     Face                from TopoDS,
37     Edge                from TopoDS,
38     Shape               from TopoDS,
39     MapOfOrientedShape  from TopTools,
40     IndexedMapOfShape   from TopTools,
41     DataMapOfShapeShape from TopTools, 
42     DataMapOfShapeListOfShape from TopTools,
43     ListOfShape         from TopTools,
44     MapOfShape          from TopTools,
45     AsDes               from BRepAlgo,
46     Image               from BRepAlgo, 
47      
48     DSFiller from NMTTools
49
50 --raises
51
52 is 
53     Create 
54         returns Splitter from NMTAlgo;  
55     ---C++: alias "Standard_EXPORT virtual ~NMTAlgo_Splitter();" 
56
57     AddShape (me:out;  
58             S : Shape from TopoDS) 
59         is virtual;
60      
61     AddTool (me:out;  
62             S : Shape from TopoDS) 
63         is virtual;  
64      
65     Compute(me:out) 
66         is virtual; 
67
68     Build (me:out; 
69             aLimit:ShapeEnum from TopAbs=TopAbs_SHAPE) 
70         is virtual; 
71   
72     ComputeWithFiller(me:out; 
73         aDSF: DSFiller from NMTTools) 
74         is redefined;  
75      
76 ----vv 
77     KeepShapesInside (me:out;  
78             S : Shape from TopoDS);
79         ---Purpose: remove shapes that are outside of S from result.
80         --          S should be an object shape.
81         ---Warning: call it after Build()
82
83     RemoveShapesInside (me:out;  
84             S : Shape from TopoDS);
85         ---Purpose: remove shapes that are inside S from result.
86         --          S should be an object shape.
87         ---Warning: call it after Build()
88
89     Modified(me:out;  
90             S : Shape from TopoDS) 
91         returns ListOfShape from TopTools;
92     ---Purpose: Returns the list  of shapes modified from the shape <S>. 
93     ---C++: return const & 
94     ---Level: Public
95
96     Generated(me:out;  
97             S : Shape from TopoDS) 
98         returns ListOfShape from TopTools;
99     ---Purpose: Returns the list of shapes generated from the shape <S>. 
100     ---C++: return const & 
101     ---Level: Public
102
103     IsDeleted (me:out;  
104             S : Shape from TopoDS)
105        returns Boolean  from  Standard;
106 ----^^
107
108     Clear (me:out) 
109         is redefined; 
110
111     SourceShapes(me) 
112         returns ListOfShape from TopTools; 
113     ---C++: return const &   
114      
115     FillResult(me:out) 
116         is protected; 
117      
118     FillImageShape(me:out) 
119         is protected; 
120          
121     SplittedFaces (me:out) 
122         is protected; 
123          
124     SplittedWires (me:out) 
125         is protected;   
126      
127     SplitsAndSections (me:out) 
128         is protected;    
129      
130     ShellsAndSolids(me:out) 
131         is protected;  
132         
133     MakeShells(me:out; 
134             aS  :Shape from TopoDS; 
135             aLNS:out ListOfShape from TopTools) 
136         is protected;  
137          
138     MakeSolids (me:out;  
139             Solid : Shape from TopoDS;
140             Shells: out ListOfShape from TopTools) 
141         is protected;   
142
143     FindFacesInside (me:out;  
144             S : Shape from TopoDS;
145             CheckClosed : Boolean from Standard= Standard_False;
146             All         : Boolean from Standard= Standard_False) 
147         returns Shape from TopoDS  
148         is protected;
149      
150     IsInside (myclass;  
151             S1,S2 : Shape from TopoDS)
152         returns Boolean from Standard is protected;   
153         ---Purpose: Return True if the first vertex of S1 inside S2.
154         --          If S1.IsNull(), check infinite point against S2.
155
156     GetOriginalShape(me;  
157             aShape : Shape from TopoDS)
158         returns Shape from TopoDS  
159         is protected;  
160
161 --modified by NIZNHY-PKV Tue Feb  1 10:24:39 2005f       
162     FindImage(me:out; 
163             aS   : Shape from TopoDS; 
164             aLIms: out ListOfShape from TopTools) 
165         is protected; 
166 --modified by NIZNHY-PKV Tue Feb  1 10:24:47 2005t 
167
168 fields 
169     myDoneStep     : ShapeEnum           from TopAbs is protected;   -- rebuilt level
170     myBuilder      : Builder             from BRep   is protected;
171                                            
172     myListShapes   : ListOfShape         from TopTools is protected; -- object shapes
173     myMapFaces     : MapOfShape          from TopTools is protected; -- object faces
174     myMapTools     : MapOfShape          from TopTools is protected; -- tool faces
175     myEqualEdges   : MapOfShape          from TopTools is protected; -- equal splits
176     myNewSection   : MapOfShape          from TopTools is protected; -- new secton edges
177     myClosedShapes : MapOfShape          from TopTools is protected;
178     myWrappingSolid: MapOfShape          from TopTools is protected; -- solids having other shapes inside
179     myFaceShapeMap : DataMapOfShapeShape from TopTools is protected; -- to find a shape by face
180                                            
181     myInternalFaces: DataMapOfShapeShape from TopTools is protected; -- shape and its internal faces
182     myIntNotClFaces: DataMapOfShapeShape from TopTools is protected; -- internal but not closed 
183
184     myImageShape   : Image               from BRepAlgo is protected;
185
186     -- avoid rebuilding twice commont part of solids
187     myAddedFacesMap: MapOfOrientedShape  from TopTools is protected; 
188     --***-- 
189     mySourceShapes : ListOfShape         from TopTools is protected;  
190     myLimit        : ShapeEnum           from TopAbs   is protected; 
191     myToolShapes   : MapOfShape          from TopTools is protected;        
192     myObjShapes    : MapOfShape          from TopTools is protected; 
193     myMapSIFC      : DataMapOfShapeShape from TopTools is protected;  
194 ----vv    
195     myGenerated    : ListOfShape         from TopTools is protected;
196     --modified by NIZNHY-PKV Mon Jan 24 09:45:10 2005f 
197     myModifiedFaces: DataMapOfShapeListOfShape from TopTools is protected;     
198     --modified by NIZNHY-PKV Mon Jan 24 09:45:14 2005t  
199 ----^^
200 end Splitter;