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