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