0024428: Implementation of LGPL license
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI.cdl
CommitLineData
b311480e 1-- Created on: 1993-07-06
2-- Created by: Remi LEQUETTE
3-- Copyright (c) 1993-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
973c2be1 8-- This library is free software; you can redistribute it and / or modify it
9-- under the terms of the GNU Lesser General Public 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17package 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
82uses
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,
92434a36
A
97 TColgp,
98 Message
7fd59977 99is
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 ---Purpose: Root class for all BRepBuilderAPI commands.
235
236 deferred class MakeShape;
237 ---Purpose: Root class for all shape constructions.
238
239 --
240 -- Construction of topology from geometry
241 --
242
243 class MakeVertex;
244
245 class MakeEdge;
246
247 class MakeEdge2d;
248
249 class MakePolygon;
250
251 class MakeFace;
252
253
254 -- Construction of Shape through sections.
255
256 class FindPlane;
257
258 --
259 -- Construction of Shape from several shapes
260 --
261
262 class Sewing;
263 ---Purpose: Provides a tool to
264 -- - identify contigous boundaries (for control
265 -- of continuity: C0, C1, ...)
266 -- - assemble contigous shapes into one shape.
267
268 --
269 -- Construction of composite topologies
270 --
271
272 class MakeWire;
273
274 class MakeShell;
275
276 class MakeSolid;
277
278 --
279 -- Shape modification (constant topology)
280 --
281
282 deferred class ModifyShape;
283
284 class Transform;
285
286 class NurbsConvert ;
287 ---Purpose: converts all 3D analytical representation of surfaces
288 -- and curves to NURBS execpt for Planes
289 --
290
291 class GTransform;
292
293 class Copy;
294
295 class Collect;
296
297
298 --
299 -- Default plane for 2d edges.
300 --
301
302 Plane(P : Plane from Geom);
303 ---Purpose: Sets the current plane.
304 ---Level: Public
305
306 Plane returns Plane from Geom;
307 ---Purpose: Returns the current plane.
308 --
309 ---C++: return const &
310 ---Level: Public
311
312 --
313 -- Default precison methods.
314 -- The default precision is initialized with Precision::Confusion()
315 --
316
317 Precision(P : Real from Standard);
318 ---Purpose: Sets the default precision. The current Precision
319 -- is returned.
320 ---Level: Public
321
322 Precision returns Real from Standard;
323 ---Purpose: Returns the default precision.
324 ---Level: Public
325
326
327
328end BRepBuilderAPI;