0026118: Implement FastSewing algorithm
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI.cdl
1 -- Created on: 1993-07-06
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 package BRepBuilderAPI 
18
19         ---Purpose: The  BRepBuilderAPI  package   provides  an   Application
20         --          Programming Interface  for the BRep  topology data
21         --          structure.
22         --          
23         --          The API is a set of classes aiming to provide :
24         --          
25         --          * High level and simple calls  for the most common
26         --          operations. 
27         --          
28         --          *    Keeping   an   access  on    the    low-level
29         --          implementation of high-level calls.
30         --          
31         --          * Examples  of programming of high-level operations
32         --          from low-level operations.
33         --          
34         --          * A complete coverage of modelling :
35         --          
36         --             - Creating vertices ,edges, faces, solids.
37         --             
38         --             - Sweeping operations.
39         --             
40         --             - Boolean operations.
41         --             
42         --             - Global properties computation.
43         --
44         --          
45         --          The API provides  classes to  build  objects:
46         --          
47         --          * The  constructors  of the classes  provides  the
48         --          different constructions methods.
49         --          
50         --          * The  class keeps as fields the   different tools
51         --          used to build the object.
52         --          
53         --          *   The class  provides  a  casting  method to get
54         --          automatically the  result  with  a   function-like
55         --          call. 
56         --          
57         --          For example to make a  vertex <V> from a point <P>
58         --          one can writes :
59         --          
60         --          V = BRepBuilderAPI_MakeVertex(P);
61         --          
62         --          or
63         --          
64         --          BRepBuilderAPI_MakeVertex MV(P);
65         --          V = MV.Vertex();
66         --          
67         --          
68         --          For tolerances  a default precision is  used which
69         --          can    be   changed    by    the   packahe  method
70         --          BRepBuilderAPI::Precision. 
71         --          
72         --          For error handling the BRepBuilderAPI commands raise only
73         --          the NotDone error. When Done is false on a command
74         --          the error description can be asked to the command.
75         --          
76         --          In  theory  the  comands can be    called with any
77         --          arguments, argument  checking  is performed by the
78         --          command.
79         
80         
81
82 uses
83     Standard,
84     StdFail,    
85     gp,
86     GeomAbs,
87     Geom2d,
88     Geom,
89     TopAbs,
90     TopoDS,
91     TopTools,
92     TopLoc,
93     BRep,
94     BRepLib,
95     BRepTools,
96     TColStd, 
97     TColgp,
98     Message
99 is
100
101     
102     enumeration EdgeError is 
103         ---Purpose:  Indicates the outcome of the
104         -- construction of an edge, i.e. whether it has been successful or
105         -- not, as explained below:
106         -- -      BRepBuilderAPI_EdgeDone No    error occurred; The edge is
107         --    correctly built.
108         -- -      BRepBuilderAPI_PointProjectionFailed No parameters were given but
109         --    the projection of the 3D points on the curve failed. This
110         --    happens when the point distance to the curve is greater than
111         --    the precision value.
112         -- -      BRepBuilderAPI_ParameterOutOfRange
113         --    The given parameters are not in the parametric range
114         --   C->FirstParameter(), C->LastParameter()
115         -- -      BRepBuilderAPI_DifferentPointsOnClosedCurve
116         --    The two vertices or points are the extremities of a closed
117         --    curve but have different locations.
118         -- -      BRepBuilderAPI_PointWithInfiniteParameter
119         --    A finite coordinate point was associated with an infinite
120         --    parameter (see the Precision package for a definition of    infinite values).
121         -- -      BRepBuilderAPI_DifferentsPointAndParameter
122         --   The distance between the 3D point and the point evaluated
123         --    on the curve with the parameter is greater than the precision.
124         -- -      BRepBuilderAPI_LineThroughIdenticPoints
125         --    Two identical points were given to define a line (construction
126         --    of an edge without curve); gp::Resolution is used for the    confusion test.
127         EdgeDone, 
128         PointProjectionFailed, 
129         ParameterOutOfRange,
130         DifferentPointsOnClosedCurve, 
131         PointWithInfiniteParameter,
132         DifferentsPointAndParameter,
133         LineThroughIdenticPoints
134     end EdgeError;
135
136     
137     enumeration WireError is 
138         ---Purpose: Indicates the outcome of wire
139         -- construction, i.e. whether it is successful or not, as explained below:
140         -- -      BRepBuilderAPI_WireDone No
141         --    error occurred. The wire is correctly built.
142         -- -      BRepBuilderAPI_EmptyWire No
143         -- initialization of the algorithm. Only an empty constructor was used.
144         -- -      BRepBuilderAPI_DisconnectedWire
145         -- The last edge which you attempted to add was not connected to the wire.
146         -- -      BRepBuilderAPI_NonManifoldWire
147         --    The wire with some singularity.
148         WireDone, 
149         EmptyWire,
150         DisconnectedWire,
151         NonManifoldWire
152
153     end WireError;
154
155
156     enumeration  FaceError is 
157         ---Purpose:  Indicates the outcome of the
158         -- construction of a face, i.e. whether it has been successful or
159         -- not, as explained below:
160         -- -      BRepBuilderAPI_FaceDone No error occurred. The face is
161         --    correctly built.
162         -- -      BRepBuilderAPI_NoFace No initialization of the
163         --    algorithm; only an empty constructor was used.
164         -- -      BRepBuilderAPI_NotPlanar
165         --    No surface was given and the wire was not planar.
166         -- -      BRepBuilderAPI_CurveProjectionFailed
167         --    Not used so far.
168         -- -      BRepBuilderAPI_ParametersOutOfRange
169         --    The parameters given to limit the surface are out of its    bounds.
170         FaceDone, 
171         NoFace,   
172         NotPlanar,
173         CurveProjectionFailed,
174         ParametersOutOfRange
175         
176     end FaceError;
177     
178     
179     enumeration ShellError is 
180         ---Purpose: Indicates the outcome of the construction of a face, i.e.
181         -- whether it is successful or not, as explained below:
182         -- -   BRepBuilderAPI_ShellDone No error occurred.
183         --   The shell is correctly built.
184         -- -   BRepBuilderAPI_EmptyShell No initialization of
185         --   the algorithm: only an empty constructor was used.
186         -- -   BRepBuilderAPI_DisconnectedShell not yet used
187         -- -   BRepBuilderAPI_ShellParametersOutOfRange
188         --   The parameters given to limit the surface are out of its bounds.
189         ShellDone,
190         EmptyShell,
191         DisconnectedShell,
192         ShellParametersOutOfRange
193         
194     end ShellError;  
195      
196     enumeration PipeError is 
197         ---Purpose: Errors that can occur at (shell)pipe construction.
198
199         PipeDone, -- no error
200         PipeNotDone,  --  Error  with  status  unknown
201         PlaneNotIntersectGuide,    
202         ImpossibleContact  --  Impossible  to  rotat  the  section  like  the  rotated  section  
203                            -- have  conact  with  the  guide.
204         
205     end PipeError;    
206      
207     
208
209     enumeration ShapeModification is
210         ---Purpose: Lists the possible types of modification to a shape
211         -- following a topological operation: Preserved, Deleted,
212         -- Trimmed, Merged or BoundaryModified.
213         -- This enumeration enables you to assign a "state" to the
214         -- different shapes that are on the list of operands for
215         -- each API function. The MakeShape class then uses this
216         -- to determine what has happened to the shapes which
217         -- constitute the list of operands.
218         Preserved,   
219         Deleted, 
220         Trimmed,
221         Merged,
222         BoundaryModified
223         
224     end ShapeModification; 
225      
226     enumeration  TransitionMode  is 
227         ---Purpose: Option to manage  discontinuities in  Sweep
228        Transformed, 
229        RightCorner, 
230        RoundCorner 
231     end  TransitionMode; 
232
233     deferred class Command;
234
235     deferred class MakeShape;
236
237     -- 
238     -- Construction of topology from geometry
239     -- 
240     
241     class MakeVertex;
242     
243     class MakeEdge;
244         
245     class MakeEdge2d;
246         
247     class MakePolygon;
248         
249     class MakeFace;
250
251  
252     -- Construction of Shape through sections.
253   
254     class FindPlane;
255
256     --
257     -- Construction of Shape from several shapes
258     -- 
259
260     class  Sewing;
261     imported transient class FastSewing;
262
263     -- 
264     --  Construction of composite topologies
265     --  
266
267     class MakeWire;
268     
269     class MakeShell;
270     
271     class MakeSolid;
272     
273     --
274     -- Shape modification (constant topology)
275     --      
276     
277     deferred class ModifyShape;
278
279     class Transform;
280
281     class NurbsConvert ;
282
283     class GTransform;
284
285     class Copy;
286      
287     class Collect;
288
289
290     --
291     --   Default plane for 2d edges.
292     --   
293
294     Plane(P : Plane from Geom);
295         ---Purpose: Sets    the current plane.
296         ---Level: Public
297     
298     Plane returns Plane from Geom;
299         ---Purpose: Returns the current plane.
300         --          
301         ---C++: return const &
302         ---Level: Public
303
304     --
305     --   Default precison methods.
306     --   The default precision is initialized with Precision::Confusion()
307     --   
308
309     Precision(P : Real  from  Standard);
310         ---Purpose: Sets the default precision.  The current Precision
311         --          is returned.
312         ---Level: Public
313         
314     Precision returns Real  from  Standard;
315         ---Purpose: Returns the default precision.
316         ---Level: Public 
317
318
319
320 end BRepBuilderAPI;