0023024: Update headers of OCCT files
[occt.git] / src / BRep / BRep_Builder.cdl
CommitLineData
b311480e 1-- Created on: 1991-07-01
2-- Created by: Remi LEQUETTE
3-- Copyright (c) 1991-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
23class Builder from BRep inherits Builder from TopoDS
24
25 ---Purpose: A framework providing advanced tolerance control.
26 -- If tolerance control is required, you are advised to:
27 -- 1. build a default precision for topology, using the
28 -- classes provided in the BRepAPI package
29 -- 2. update the tolerance of the resulting shape.
30 -- Note that only vertices, edges and faces have
31 -- meaningful tolerance control. The tolerance value
32 -- must always comply with the condition that face
33 -- tolerances are more restrictive than edge tolerances
34 -- which are more restrictive than vertex tolerances. In
35 -- other words: Tol(Vertex) >= Tol(Edge) >= Tol(Face).
36 -- Other rules in setting tolerance include:
37 -- - you can open up tolerance but should never restrict it
38 -- - an edge cannot be included within the fusion of the
39 -- tolerance spheres of two vertices
40
41uses
42 Location from TopLoc,
43
44 Shape from TopoDS,
45
46 Vertex from TopoDS,
47 Edge from TopoDS,
48 Face from TopoDS,
49
50 Shape from GeomAbs,
51 Surface from Geom,
52 Curve from Geom,
53
54 Curve from Geom2d,
55
56 Triangulation from Poly,
57 Polygon3D from Poly,
58 Polygon2D from Poly,
59 PolygonOnTriangulation from Poly,
60
61 HArray1OfInteger from TColStd,
62 HArray1OfReal from TColStd,
63
64 Pnt from gp,
65 Pnt2d from gp
66
67raises
68 NullObject from Standard,
69 DomainError from Standard
70
71is
72
73 -----------------------------------------------------------
74 -----------------------------------------------------------
75 -- Face --
76 -----------------------------------------------------------
77 -----------------------------------------------------------
78
79
80
81 -------------------------------------------------------
82 -- Construction
83 -------------------------------------------------------
84
85
86 MakeFace(me; F : out Face from TopoDS);
87 ---C++: inline
88
89 ---Purpose: Makes an undefined Face.
90
91 MakeFace(me; F : out Face from TopoDS;
92 S : Surface from Geom;
93 Tol : Real)
94
95 ---Purpose: Makes a Face with a surface.
96 raises
97 NullObject from Standard; -- If <S> is null.
98
99
100 MakeFace(me; F : out Face from TopoDS;
101 S : Surface from Geom;
102 L : Location from TopLoc;
103 Tol : Real)
104
105 ---Purpose: Makes a Face with a surface and a location.
106 raises
107 NullObject from Standard; -- If <S> is null.
108
109 MakeFace(me; F : out Face from TopoDS;
110 T : Triangulation from Poly)
111
112 ---Purpose: Makes a Face with a triangulation. The triangulation
113 -- is in the same reference system than the TFace.
114 --
115 raises
116 NullObject from Standard; -- If <S> is null.
117
118
119 UpdateFace(me; F : Face from TopoDS;
120 S : Surface from Geom;
121 L : Location from TopLoc;
122 Tol : Real)
123
124 ---Purpose: Updates the face F using the tolerance value Tol,
125 -- surface S and location Location.
126 raises
127 NullObject from Standard; -- If <S> is null.
128
129 UpdateFace(me; F : Face from TopoDS;
130 T : Triangulation from Poly)
131 ---Purpose: Changes a face triangulation.
132 --
133 -- A null Triangulation removes the triangulation.
134 --
135
136 raises
137 NullObject from Standard; -- If <S> is null.
138
139
140 UpdateFace(me; F : Face from TopoDS;
141 Tol : Real);
142 ---Purpose: Updates the face Tolerance.
143
144 -------------------------------------------------------
145 -- Face flags
146 -------------------------------------------------------
147
148
149 NaturalRestriction(me; F : Face from TopoDS;
150 N : Boolean)
151 ---Purpose: Sets the NaturalRestriction flag of the face.
152 raises
153 NullObject from Standard; -- If <F> is null.
154
155
156
157 -----------------------------------------------------------
158 -----------------------------------------------------------
159 -- Edge --
160 -----------------------------------------------------------
161 -----------------------------------------------------------
162
163
164 -------------------------------------------------------
165 -- Edge construction
166 -------------------------------------------------------
167
168 MakeEdge(me; E : out Edge from TopoDS);
169
170 ---Purpose: Makes an undefined Edge (no geometry).
171
172 MakeEdge(me; E : out Edge from TopoDS;
173 C : Curve from Geom;
174 Tol : Real);
175 ---C++: inline
176
177 ---Purpose: Makes an Edge with a curve.
178
179 MakeEdge(me; E : out Edge from TopoDS;
180 C : Curve from Geom;
181 L : Location from TopLoc;
182 Tol : Real);
183 ---C++: inline
184
185 ---Purpose: Makes an Edge with a curve and a location.
186
187 MakeEdge(me; E : out Edge from TopoDS;
188 P : Polygon3D from Poly);
189 ---C++: inline
190
191 ---Purpose: Makes an Edge with a polygon 3d.
192
193 MakeEdge(me; E : out Edge from TopoDS;
194 N : PolygonOnTriangulation from Poly;
195 T : Triangulation from Poly);
196 ---C++: inline
197
198 ---Purpose: makes an Edge polygon on Triangulation.
199
200 MakeEdge(me; E : out Edge from TopoDS;
201 N : PolygonOnTriangulation from Poly;
202 T : Triangulation from Poly;
203 L : Location from TopLoc);
204 ---C++: inline
205
206 ---Purpose: makes an Edge polygon on Triangulation.
207
208 -------------------------------------------------------
209 -- Edge update
210 --
211 -------------------------------------------------------
212
213 UpdateEdge(me; E : Edge from TopoDS;
214 C : Curve from Geom;
215 Tol : Real);
216 ---C++: inline
217
218 ---Purpose: Sets a 3D curve for the edge.
219 -- If <C> is a null handle, remove any existing 3d curve.
220
221 UpdateEdge(me; E : Edge from TopoDS;
222 C : Curve from Geom;
223 L : Location from TopLoc;
224 Tol : Real);
225
226 ---Purpose: Sets a 3D curve for the edge.
227 -- If <C> is a null handle, remove any existing 3d curve.
228
229 UpdateEdge(me; E : Edge from TopoDS;
230 C : Curve from Geom2d;
231 F : Face from TopoDS;
232 Tol : Real);
233 ---C++: inline
234
235 ---Purpose: Sets a pcurve for the edge on the face.
236 -- If <C> is a null handle, remove any existing pcurve.
237
238 UpdateEdge(me; E : Edge from TopoDS;
239 C1,C2 : Curve from Geom2d;
240 F : Face from TopoDS;
241 Tol : Real);
242 ---C++: inline
243
244 ---Purpose: Sets pcurves for the edge on the closed face. If
245 -- <C1> or <C2> is a null handle, remove any existing
246 -- pcurve.
247
248 UpdateEdge(me; E : Edge from TopoDS;
249 C : Curve from Geom2d;
250 S : Surface from Geom;
251 L : Location from TopLoc;
252 Tol : Real);
253
254 ---Purpose: Sets a pcurve for the edge on the face.
255 -- If <C> is a null handle, remove any existing pcurve.
256
257 UpdateEdge(me; E : Edge from TopoDS;
258 C : Curve from Geom2d;
259 S : Surface from Geom;
260 L : Location from TopLoc;
261 Tol : Real;
262 Pf,Pl : Pnt2d from gp);
263
264 ---Purpose: Sets a pcurve for the edge on the face.
265 -- If <C> is a null handle, remove any existing pcurve.
266 -- Sets UV bounds for curve repsentation
267
268 UpdateEdge(me; E : Edge from TopoDS;
269 C1,C2 : Curve from Geom2d;
270 S : Surface from Geom;
271 L : Location from TopLoc;
272 Tol : Real);
273
274 ---Purpose: Sets pcurves for the edge on the closed surface.
275 -- <C1> or <C2> is a null handle, remove any existing
276 -- pcurve.
277
278 UpdateEdge(me; E : Edge from TopoDS;
279 C1,C2 : Curve from Geom2d;
280 S : Surface from Geom;
281 L : Location from TopLoc;
282 Tol : Real;
283 Pf,Pl : Pnt2d from gp);
284
285 ---Purpose: Sets pcurves for the edge on the closed surface.
286 -- <C1> or <C2> is a null handle, remove any existing
287 -- pcurve.
288 -- Sets UV bounds for curve repsentation
289
290 UpdateEdge(me; E : Edge from TopoDS;
291 P : Polygon3D from Poly);
292 ---C++: inline
293
294 ---Purpose: Changes an Edge 3D polygon.
295 -- A null Polygon removes the 3d Polygon.
296
297 UpdateEdge(me; E : Edge from TopoDS;
298 P : Polygon3D from Poly;
299 L : Location from TopLoc);
300
301 ---Purpose: Changes an Edge 3D polygon.
302 -- A null Polygon removes the 3d Polygon.
303
304 UpdateEdge(me; E : Edge from TopoDS;
305 N : PolygonOnTriangulation from Poly;
306 T : Triangulation from Poly);
307 ---C++: inline
308
309 ---Purpose: Changes an Edge polygon on Triangulation.
310
311 UpdateEdge(me; E : Edge from TopoDS;
312 N : PolygonOnTriangulation from Poly;
313 T : Triangulation from Poly;
314 L : Location from TopLoc);
315
316 ---Purpose: Changes an Edge polygon on Triangulation.
317
318 UpdateEdge(me; E : Edge from TopoDS;
319 N1, N2 : PolygonOnTriangulation from Poly;
320 T : Triangulation from Poly);
321 ---C++: inline
322
323 ---Purpose: Changes an Edge polygon on Triangulation.
324
325 UpdateEdge(me; E : Edge from TopoDS;
326 N1, N2 : PolygonOnTriangulation from Poly;
327 T : Triangulation from Poly;
328 L : Location from TopLoc);
329
330 ---Purpose: Changes an Edge polygon on Triangulation.
331
332 UpdateEdge(me; E: Edge from TopoDS;
333 P: Polygon2D from Poly;
334 S: Face from TopoDS)
335
336 ---Purpose: Changes Edge polygon on a face.
337 --
338 --
339 raises
340 NullObject from Standard; -- If <E> is null.
341
342 UpdateEdge(me; E: Edge from TopoDS;
343 P: Polygon2D from Poly;
344 S: Surface from Geom;
345 T: Location from TopLoc)
346
347 ---Purpose: Changes Edge polygon on a face.
348 --
349 --
350 raises
351 NullObject from Standard; -- If <E> is null.
352
353 UpdateEdge(me; E : Edge from TopoDS;
354 P1, P2: Polygon2D from Poly;
355 S : Face from TopoDS)
356
357 ---Purpose: Changes Edge polygons on a face.
358 --
359 -- A null Polygon removes the 2d Polygon.
360 --
361 raises
362 NullObject from Standard; -- If <E> is null.
363
364 UpdateEdge(me; E : Edge from TopoDS;
365 P1, P2: Polygon2D from Poly;
366 S : Surface from Geom;
367 L : Location from TopLoc)
368
369 ---Purpose: Changes Edge polygons on a face.
370 --
371 -- A null Polygon removes the 2d Polygon.
372 --
373 raises
374 NullObject from Standard; -- If <E> is null.
375
376 UpdateEdge(me; E : Edge from TopoDS;
377 Tol : Real);
378
379 ---Purpose: Updates the edge tolerance.
380
381 -------------------------------------------------------
382 -- Edge continuity
383 -------------------------------------------------------
384
385
386 Continuity(me; E : Edge from TopoDS;
387 F1,F2 : Face from TopoDS;
388 C : Shape from GeomAbs)
389 ---Purpose: Sets the geometric continuity on the edge.
390 raises
391 NullObject from Standard; -- If <E>, <F1> or <F2> is Null
392
393
394 Continuity(me; E : Edge from TopoDS;
395 S1,S2 : Surface from Geom;
396 L1,L2 : Location from TopLoc;
397 C : Shape from GeomAbs)
398 ---Purpose: Sets the geometric continuity on the edge.
399 raises
400 NullObject from Standard; -- If <E>, <F1> or <F2> is Null
401
402
403 -------------------------------------------------------
404 -- Edge flags
405 -------------------------------------------------------
406
407
408 SameParameter(me; E : Edge from TopoDS;
409 S : Boolean)
410 ---Purpose: Sets the same parameter flag for the edge <E>.
411 raises
412 NullObject from Standard; -- If <E> is Null
413
414
415 SameRange(me; E : Edge from TopoDS;
416 S : Boolean)
417 ---Purpose: Sets the same range flag for the edge <E>.
418 raises
419 NullObject from Standard; -- If <E> is Null
420
421
422 Degenerated(me; E : Edge from TopoDS;
423 D : Boolean)
424 ---Purpose: Sets the degenerated flag for the edge <E>.
425 raises
426 NullObject from Standard; -- If <E> is Null
427
428 -------------------------------------------------------
429 -- Edge parameter range
430 -------------------------------------------------------
431
432 Range(me; E : Edge from TopoDS;
433 First, Last : Real;
434 Only3d : Boolean from Standard = Standard_False)
435 ---Purpose: Sets the range of the 3d curve if Only3d=TRUE,
436 -- otherwise sets the range to all the representations
437 raises
438 NullObject from Standard; -- If <E> is Null
439
440
441 Range(me; E : Edge from TopoDS;
442 S : Surface from Geom;
443 L : Location from TopLoc;
444 First, Last : Real)
445 ---Purpose: Sets the range of the edge on the pcurve on the
446 -- surface.
447 raises
448 NullObject from Standard; -- If <E> is Null
449
450
451 Range(me; E : Edge from TopoDS;
452 F : Face from TopoDS;
453 First, Last : Real);
454 ---C++: inline
455 ---Purpose: Sets the range of the edge on the pcurve on the face.
456
457
458 -------------------------------------------------------
459 -- Edge transfer of geometry
460 -------------------------------------------------------
461
462 Transfert(me; Ein, Eout : Edge from TopoDS)
463 ---Purpose: Add to <Eout> the geometric representations of
464 -- <Ein>.
465 raises
466 NullObject from Standard; -- If <Ein,Eout> is Null
467
468
469 -----------------------------------------------------------
470 -----------------------------------------------------------
471 -- Vertex --
472 -----------------------------------------------------------
473 -----------------------------------------------------------
474
475
476 -------------------------------------------------------
477 -- Vertex construction from geometry
478 -------------------------------------------------------
479
480 MakeVertex(me; V : out Vertex from TopoDS);
481 ---C++: inline
482
483 ---Purpose: Makes an udefined vertex without geometry.
484
485
486 MakeVertex(me; V : out Vertex from TopoDS;
487 P : Pnt from gp;
488 Tol : Real);
489 ---C++: inline
490
491 ---Purpose: Makes a vertex from a 3D point.
492
493
494 -------------------------------------------------------
495 -- Vertex update
496 -------------------------------------------------------
497
498 UpdateVertex(me; V : Vertex from TopoDS;
499 P : Pnt from gp;
500 Tol : Real)
501
502 ---Purpose: Sets a 3D point on the vertex.
503 raises
504 NullObject from Standard; -- If <V> is Null
505
506
507
508 UpdateVertex(me; V : Vertex from TopoDS;
509 P : Real;
510 E : Edge from TopoDS;
511 Tol : Real)
512
513 ---Purpose: Sets the parameter for the vertex on the edge
514 -- curves.
515 raises
516 NullObject from Standard, -- If <V> or <E> is Null
517 DomainError from Standard; -- If <V> is not the first or last vertex.
518
519
520
521 UpdateVertex(me; V : Vertex from TopoDS;
522 P : Real;
523 E : Edge from TopoDS;
524 F : Face from TopoDS;
525 Tol : Real);
526 ---C++: inline
527
528 ---Purpose: Sets the parameter for the vertex on the edge
529 -- pcurve on the face.
530
531
532 UpdateVertex(me; V : Vertex from TopoDS;
533 P : Real;
534 E : Edge from TopoDS;
535 S : Surface from Geom;
536 L : Location from TopLoc;
537 Tol : Real)
538
539 ---Purpose: Sets the parameter for the vertex on the edge
540 -- pcurve on the surface.
541 raises
542 DomainError from Standard; -- If <V> is not the first or last vertex.
543
544
545 UpdateVertex(me; Ve : Vertex from TopoDS;
546 U,V : Real;
547 F : Face from TopoDS;
548 Tol : Real)
549
550 ---Purpose: Sets the parameters for the vertex on the face.
551 raises
552 NullObject from Standard, -- If <Ve> or <F> is Null
553 DomainError from Standard; -- If <Ve> is not the first or last vertex.
554
555 UpdateVertex(me; V : Vertex from TopoDS;
556 Tol : Real);
557 ---Purpose: Updates the vertex tolerance.
558
559 -------------------------------------------------------
560 -- Vertex transfer of parameters
561 -------------------------------------------------------
562
563 Transfert(me; Ein, Eout : Edge from TopoDS;
564 Vin, Vout : Vertex from TopoDS)
565 ---Purpose: Transfert the parameters of Vin on Ein as the
566 -- parameter of Vout on Eout.
567 raises
568 NullObject from Standard;
569
570end Builder;