0023024: Update headers of OCCT files
[occt.git] / src / BRep / BRep_Builder.cdl
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
21
22
23 class 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
41 uses
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     
67 raises
68     NullObject  from Standard,
69     DomainError from Standard
70     
71 is
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
570 end Builder;