0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / BRepLib / BRepLib_MakeFace.cdl
1 -- Created on: 1993-07-12
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1993-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 class MakeFace from BRepLib inherits MakeShape from BRepLib 
18
19         ---Purpose: Provides methods to build faces.
20         --          
21         --          A face may be built :
22         --          
23         --          * From a surface.
24         --          
25         --             - Elementary surface from gp.
26         --             
27         --             - Surface from Geom.
28         --             
29         --          * From a surface and U,V values.
30         --          
31         --          * From a wire.
32         --            
33         --            - Find the surface automatically if possible.
34         --          
35         --          * From a surface and a wire.
36         --          
37         --            - A flag Inside is given, when this flag is True
38         --            the  wire is  oriented to bound a finite area on
39         --            the surface.
40         --          
41         --          * From a face and a wire.
42         --            
43         --            - The new wire is a perforation.
44
45 uses
46     Pln       from gp,
47     Cylinder  from gp,
48     Cone      from gp,
49     Sphere    from gp,
50     Torus     from gp,
51     Curve     from Geom,
52     Surface   from Geom,
53     Face      from TopoDS,
54     Wire      from TopoDS,
55     FaceError from BRepLib
56     
57 raises
58     NotDone    from StdFail
59
60 is
61
62     Create  
63         ---Purpose: Not done.
64         ---Level: Public
65     returns MakeFace from BRepLib;
66     
67     Create(F : Face from TopoDS)  
68         ---Purpose: Load a face. Usefull to add wires.
69         ---Level: Public
70     returns MakeFace from BRepLib;
71
72     ----------------------------------------------
73     -- From a surface
74     ----------------------------------------------
75
76     Create(P : Pln from gp)
77         ---Purpose: Make a face from a plane.
78         ---Level: Public
79     returns MakeFace from BRepLib;
80
81     Create(C : Cylinder from gp)
82         ---Purpose: Make a face from a cylinder.
83         ---Level: Public
84     returns MakeFace from BRepLib;
85
86     Create(C : Cone from gp)
87         ---Purpose: Make a face from a cone.
88         ---Level: Public
89     returns MakeFace from BRepLib;
90
91     Create(S : Sphere from gp)
92         ---Purpose: Make a face from a sphere.
93         ---Level: Public
94     returns MakeFace from BRepLib;
95
96     Create(C : Torus from gp)
97         ---Purpose: Make a face from a torus.
98         ---Level: Public
99     returns MakeFace from BRepLib;
100
101     Create(S : Surface from Geom; TolDegen : Real)
102     ---Purpose: Make a face from a Surface. Accepts tolerance value (TolDegen)
103     --          for resolution of degenerated edges.
104     ---Level: Public
105     returns MakeFace from BRepLib;
106
107     ----------------------------------------------
108     -- From a surface and U,V values
109     ----------------------------------------------
110
111     Create(P : Pln from gp; UMin, UMax, VMin, VMax : Real)
112         ---Purpose: Make a face from a plane.
113         ---Level: Public
114     returns MakeFace from BRepLib;
115
116     Create(C : Cylinder from gp; UMin, UMax, VMin, VMax : Real)
117         ---Purpose: Make a face from a cylinder.
118         ---Level: Public
119     returns MakeFace from BRepLib;
120
121     Create(C : Cone from gp; UMin, UMax, VMin, VMax : Real)
122         ---Purpose: Make a face from a cone.
123         ---Level: Public
124     returns MakeFace from BRepLib;
125
126     Create(S : Sphere from gp; UMin, UMax, VMin, VMax : Real)
127         ---Purpose: Make a face from a sphere.
128         ---Level: Public
129     returns MakeFace from BRepLib;
130
131     Create(C : Torus from gp; UMin, UMax, VMin, VMax : Real)
132         ---Purpose: Make a face from a torus.
133         ---Level: Public
134     returns MakeFace from BRepLib;
135
136     Create(S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real)
137     ---Purpose: Make a face from a Surface. Accepts min & max parameters
138     --          to construct the face's bounds. Also accepts tolerance value (TolDegen)
139     --          for resolution of degenerated edges.
140     ---Level: Public
141     returns MakeFace from BRepLib;
142
143     ----------------------------------------------
144     -- From a wire
145     ----------------------------------------------
146
147     Create(W         : Wire    from TopoDS;
148            OnlyPlane : Boolean from Standard = Standard_False)
149         ---Purpose: Find a surface from the wire and make a face.
150         --          if <OnlyPlane> is true, the computed surface will be
151         --          a plane. If it is not possible to find a plane, the
152         --          flag NotDone will be set.
153         ---Level: Public
154     returns MakeFace from BRepLib;
155
156     ----------------------------------------------
157     -- From a surface and a wire
158     ----------------------------------------------
159
160     Create(P : Pln from gp; W : Wire from TopoDS;
161            Inside : Boolean = Standard_True)
162         ---Purpose: Make a face from a plane and a wire.
163         ---Level: Public
164     returns MakeFace from BRepLib;
165
166     Create(C : Cylinder from gp; W : Wire from TopoDS;
167            Inside : Boolean = Standard_True)
168         ---Purpose: Make a face from a cylinder and a wire.
169         ---Level: Public
170     returns MakeFace from BRepLib;
171
172     Create(C : Cone from gp; W : Wire from TopoDS;
173            Inside : Boolean = Standard_True)
174         ---Purpose: Make a face from a cone and a wire.
175         ---Level: Public
176     returns MakeFace from BRepLib;
177
178     Create(S : Sphere from gp; W : Wire from TopoDS;
179            Inside : Boolean = Standard_True)
180         ---Purpose: Make a face from a sphere and a wire.
181         ---Level: Public
182     returns MakeFace from BRepLib;
183
184     Create(C : Torus from gp; W : Wire from TopoDS;
185            Inside : Boolean = Standard_True)
186         ---Purpose: Make a face from a torus and a wire.
187         ---Level: Public
188     returns MakeFace from BRepLib;
189
190     Create(S : Surface from Geom; W : Wire from TopoDS;
191            Inside : Boolean = Standard_True)
192         ---Purpose: Make a face from a Surface and a wire.
193         ---Level: Public
194     returns MakeFace from BRepLib;
195
196     ----------------------------------------------
197     -- From face and wire.
198     ----------------------------------------------
199
200     Create(F : Face from TopoDS; W : Wire from TopoDS)
201         ---Purpose: Adds the wire <W> in the face <F>
202         ---Level: Public
203     returns MakeFace from BRepLib;
204     
205     ----------------------------------------------
206     -- Auxiliary methods
207     ----------------------------------------------
208
209     Init(me : in out; F : Face from TopoDS)
210         ---Purpose: Load the face.
211         ---Level: Public
212     is static;
213
214     Init(me : in out; S : Surface from Geom; Bound : Boolean; TolDegen : Real)
215     ---Purpose: Creates the face  from the  surface. If Bound is
216     --          True a wire is made from the natural bounds.
217     --          Accepts tolerance value (TolDegen) for resolution
218     --          of degenerated edges.
219     ---Level: Public
220     is static;
221
222     Init(me : in out; S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real) 
223     ---Purpose: Creates the face from the surface and the min-max
224     --          values. Accepts tolerance value (TolDegen) for resolution
225     --          of degenerated edges.
226     ---Level: Public
227     is static;
228
229     Add(me : in out; W : Wire from TopoDS)
230         ---Purpose: Adds the wire <W> in the current face.
231         ---Level: Public
232     is static;
233
234     ----------------------------------------------
235     -- Auxiliary methods
236     ----------------------------------------------
237
238     CheckInside(me : in out)
239         ---Purpose: Reorient the current face if  the boundary  is not
240         --          finite.
241         ---Level: Public
242     is static private;
243
244     ----------------------------------------------
245     -- Results
246     ----------------------------------------------
247
248     Error(me) returns FaceError from BRepLib
249         ---Level: Public
250     is static;
251
252     Face(me) returns Face from TopoDS
253         ---Purpose: Returns the new face.
254         --          
255         ---C++: return const &
256         ---C++: alias "Standard_EXPORT operator TopoDS_Face() const;"
257         ---Level: Public
258     raises 
259         NotDone from StdFail
260     is static;
261     
262
263     IsDegenerated (myclass;
264                    theCurve  :        Curve from Geom;
265                    theMaxTol :        Real  from Standard;
266                    theActTol : in out Real  from Standard)
267     returns Boolean;
268         --- Purpose: Checks the specified curve is degenerated 
269         --           according to specified tolerance.
270         --           Returns <theActTol> less than <theMaxTol>, which shows
271         --           actual tolerance to decide the curve is degenerated.
272         --  Warning: For internal use of BRepLib_MakeFace and BRepLib_MakeShell.
273
274 fields
275     myError    : FaceError from BRepLib;
276 end MakeFace;