Commit | Line | Data |
---|---|---|
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 | ||
24 | package 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 | ||
89 | uses | |
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 | 106 | is |
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 | ||
335 | end BRepBuilderAPI; |