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