0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepOffset / BRepOffset_MakeOffset.cdl
1 -- Created on: 1995-10-26
2 -- Created by: Yves FRICAUD
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 -- Modified by skv - Tue Mar 15 16:17:37 2005
18 -- Add methods for supporting history.
19
20 class MakeOffset from BRepOffset 
21
22         ---Purpose: 
23
24 uses
25     Image                from BRepAlgo,
26     AsDes                from BRepAlgo,
27     Analyse              from BRepOffset,
28     Mode                 from BRepOffset,
29     DataMapOfShapeOffset from BRepOffset, 
30     Error                from BRepOffset,
31     Inter3d              from BRepOffset,
32     DataMapOfShapeReal   from TopTools,
33     Shape                from TopoDS,
34     JoinType             from GeomAbs,
35     Face                 from TopoDS,
36     Edge                 from TopoDS,
37     MapOfShape           from TopTools, 
38     IndexedMapOfShape    from TopTools, 
39     ListOfShape          from TopTools,
40     MakeLoops            from BRepOffset
41
42 is
43
44     Create;
45     
46     Create ( S            : Shape    from TopoDS;
47              Offset       : Real     from Standard;
48              Tol          : Real     from Standard;
49              Mode         : Mode     from BRepOffset = BRepOffset_Skin;
50              Intersection : Boolean  from Standard   = Standard_False;
51              SelfInter    : Boolean  from Standard   = Standard_False;
52              Join         : JoinType from GeomAbs    = GeomAbs_Arc;
53              Thickening   : Boolean  from Standard   = Standard_False)
54     returns MakeOffset from BRepOffset;      
55              
56 ---Category: Initialization.
57
58     Initialize (me : in out;
59                 S            : Shape    from TopoDS;
60                 Offset       : Real     from Standard;
61                 Tol          : Real     from Standard;
62                 Mode         : Mode     from BRepOffset = BRepOffset_Skin;
63                 Intersection : Boolean  from Standard   = Standard_False;
64                 SelfInter    : Boolean  from Standard   = Standard_False;
65                 Join         : JoinType from GeomAbs    = GeomAbs_Arc; 
66                 Thickening   : Boolean  from Standard   = Standard_False)
67     is static;
68     
69     Clear (me : in out) 
70     is static;
71
72     AddFace (me : in out; F  : Face from TopoDS) is static;
73         ---Purpose: Add Closing Faces,  <F>  has to be  in  the initial
74         --          shape S.
75       
76     SetOffsetOnFace (me  : in out; 
77                      F   : Face from TopoDS;
78                      Off : Real from Standard) is static;
79         ---Purpose: set the offset <Off> on the Face <F> 
80
81     
82 ---Category: Computation.
83     
84     MakeOffsetShape (me : in out) is static;
85     
86     MakeThickSolid  (me : in out) is static;
87     
88 ---Category: Querying.
89            
90     GetAnalyse(me) 
91         ---C++: return const &
92     returns Analyse from BRepOffset
93     is static;
94
95     IsDone (me) returns Boolean from Standard
96     is static;
97     
98     Shape (me) 
99         ---C++: return const &
100     returns Shape from TopoDS
101     is static;
102
103     Error (me) returns Error from BRepOffset;
104         ---Purpose: returns information if IsDone() = FALSE.
105                             
106
107     OffsetFacesFromShapes (me)
108         ---Purpose: Returns <Image> containing links between initials
109         --          shapes and offset faces.
110         ---C++: return const &
111     returns Image from BRepAlgo
112     is static;    
113     
114 -- Modified by skv - Tue Mar 15 16:17:37 2005 Begin
115 -- Query offset join type.
116
117     GetJoinType(me) 
118         ---Purpose: Returns myJoin.
119     returns JoinType from GeomAbs 
120     is static;
121  
122 -- Add methods for supporting history.
123
124     OffsetEdgesFromShapes (me)
125         ---Purpose: Returns <Image> containing links between initials
126         --          shapes and offset edges.
127         ---C++: return const &
128     returns Image from BRepAlgo
129     is static;    
130     
131 -- Modified by skv - Tue Mar 15 16:17:37 2005 End
132
133     ClosingFaces (me)   
134         ---Purpose: Returns the list of closing faces stores by AddFace 
135         ---C++: return const &
136     returns IndexedMapOfShape from TopTools
137     is static;
138
139 ---Category: private methods
140
141     BuildOffsetByArc ( me : in out )
142     is static private; 
143     
144     BuildOffsetByInter ( me : in out )
145     is static private;
146        
147     SelfInter  (me    : in out ; 
148                 Modif : in out MapOfShape from TopTools)
149     is static private;          
150     
151     Intersection3D (me        : in out;
152                     Inter     : in out Inter3d from BRepOffset)
153     is static private;              
154                     
155     Intersection2D ( me       : in out ;
156                      Modif    : IndexedMapOfShape from TopTools;
157                      NewEdges : IndexedMapOfShape from TopTools)
158     is static private;
159     
160     MakeLoops ( me    : in out ;
161                 Modif : in out IndexedMapOfShape from TopTools)
162     is static private;
163
164     MakeLoopsOnContext ( me    : in out ;
165                          Modif : in out MapOfShape from TopTools)
166     is static private;
167     
168     MakeFaces ( me    : in out ;
169                 Modif : in out IndexedMapOfShape from TopTools)
170     is static private;
171     
172     MakeShells (me    : in out )
173     is static private;
174
175     SelectShells (me : in out)
176     is static private;
177         
178     EncodeRegularity( me : in out)
179     is static private;
180
181     MakeSolid (me : in out)
182     is static private;
183     
184     ToContext (me    : in out;
185                MapSF : in out DataMapOfShapeOffset from BRepOffset)
186     is static private;  
187     
188     UpdateFaceOffset (me: in out) 
189         ---Purpose: Private method use to update the map face<->offset
190     is static private; 
191      
192     CorrectConicalFaces (me: in out)
193         ---Purpose: Private method used to correct degenerated edges on conical faces
194     is static private; 
195
196     MakeMissingWalls (me: in out)
197         ---Purpose: Private method used to build walls for thickening the shell
198     is static private; 
199
200 fields
201
202     myOffset         : Real       from Standard;
203     myTol            : Real       from Standard;
204     myShape          : Shape      from TopoDS;     -- Initial
205     myMode           : Mode       from BRepOffset;
206     myInter          : Boolean    from Standard;
207     mySelfInter      : Boolean    from Standard;
208     myJoin           : JoinType   from GeomAbs; 
209     myThickening     : Boolean    from Standard;
210      
211     myFaceOffset     : DataMapOfShapeReal from TopTools;
212     
213     myFaces          : IndexedMapOfShape from TopTools;
214     myAnalyse        : Analyse           from BRepOffset;
215     
216     myOffsetShape    : Shape       from TopoDS;       -- Result
217     myInitOffsetFace : Image       from BRepAlgo;
218     myInitOffsetEdge : Image       from BRepAlgo;
219     myImageOffset    : Image       from BRepAlgo; 
220     myWalls          : ListOfShape from TopTools;
221     myAsDes          : AsDes       from BRepAlgo;
222  
223     myDone           : Boolean  from Standard;
224     myError          : Error    from BRepOffset;
225     
226     myMakeLoops      : MakeLoops from BRepOffset;
227     
228 end MakeOffset;