0023024: Update headers of OCCT files
[occt.git] / src / BRep / BRep_Tool.cdl
1 -- Created on: 1993-07-07
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
21
22
23
24 class Tool from BRep 
25
26         ---Purpose: Provides class methods  to  access to the geometry
27         --          of BRep shapes.
28
29 uses
30     Vertex   from TopoDS,
31     Edge     from TopoDS,
32     Face     from TopoDS,
33     Shape    from TopoDS,
34     Location from TopLoc,
35     Pnt      from gp,
36     Pnt2d    from gp,
37     Box2d    from Bnd,
38     Curve    from Geom2d,
39     Curve    from Geom,
40     Surface  from Geom,
41     Shape    from GeomAbs,
42     
43     Triangulation          from Poly,
44     Polygon3D              from Poly,
45     Polygon2D              from Poly,
46     PolygonOnTriangulation from Poly,
47     HArray1OfInteger       from TColStd,
48     HArray1OfReal          from TColStd
49
50 raises
51     NullObject from Standard,
52     NoSuchObject from Standard
53
54 is
55
56
57     -----------------------------------------------------------
58     -----------------------------------------------------------
59     --                         Solid                         -- 
60     -----------------------------------------------------------
61     -----------------------------------------------------------
62     IsClosed (myclass; S : Shape from TopoDS) returns Boolean from Standard;
63     
64         ---Purpose: Returns <True>  if S if flaged Closed, if S is a
65         --          Solid,Shell or Compound  returns <True> is S has no free boundaries.
66
67         
68     -----------------------------------------------------------
69     -----------------------------------------------------------
70     --                         Face                          --
71     -----------------------------------------------------------
72     -----------------------------------------------------------
73
74
75
76     -----------------------------------------------------------
77     --  Face surface
78     -----------------------------------------------------------
79
80
81     Surface(myclass; F : Face         from TopoDS;
82                      L : out Location from TopLoc) returns Surface from Geom 
83     
84         ---Purpose: Returns the geometric surface of the face. Returns
85         --          in <L> the location for the surface.
86         ---C++: return const &
87     raises
88         NullObject from Standard;
89     
90     Surface(myclass; F : Face from TopoDS) returns Surface from Geom 
91     
92         ---Purpose: Returns the geometric  surface of the face. It can
93         --          be a copy if there is a Location.
94         --          
95     raises
96         NullObject from Standard;
97         
98     Triangulation(myclass; F : Face         from TopoDS;
99                            L : out Location from TopLoc) returns Triangulation from  Poly
100     
101         ---Purpose: Returns  the Triangulation of  the  face. It  is a
102         --          null handle if there is no triangulation.
103         --          
104         ---C++: return const &
105     raises
106         NullObject from Standard;
107         
108         
109     
110     -----------------------------------------------------------
111     --  Face tolerance
112     -----------------------------------------------------------
113   
114     Tolerance(myclass; F : Face from TopoDS)  returns Real
115     
116         ---Purpose: Returns the tolerance of the face.
117     raises
118         NullObject from Standard;
119         
120     -----------------------------------------------------------
121     --  Face natural restriction flag
122     -----------------------------------------------------------
123     
124     NaturalRestriction(myclass; F : Face from TopoDS) returns Boolean
125     
126         ---Purpose: Returns the  NaturalRestriction  flag of the  face.
127     raises
128         NullObject from Standard;
129     
130     
131     
132     
133     -----------------------------------------------------------
134     -----------------------------------------------------------
135     --                         Edge                          -- 
136     -----------------------------------------------------------
137     -----------------------------------------------------------
138     
139     IsGeometric(myclass; E: Edge from TopoDS)
140         ---Purpose: Returns True if <E> is a 3d curve or a curve on
141         --          surface.
142     returns Boolean;    
143     
144     -----------------------------------------------------------
145     --  Edge 3d curve
146     -----------------------------------------------------------
147     
148     Curve(myclass; E : Edge from TopoDS;
149                    L : out Location from TopLoc;
150                    First, Last : out Real) 
151     returns Curve from Geom
152     
153         ---Purpose: Returns the 3D curve  of the edge.  May be  a Null
154         --          handle. Returns in <L> the location for the curve.
155         --          In <First> and <Last> the parameter range.
156         --          
157         ---C++: return const &
158     raises
159         NullObject from Standard;
160         
161
162     Curve(myclass; E : Edge from TopoDS;
163                    First, Last : out Real) 
164     returns Curve from Geom
165     
166         ---Purpose: Returns the 3D curve  of the edge. May be a Null handle.
167         --          In <First> and <Last> the parameter range.
168         --          It can be a copy if there is a Location.
169     raises
170         NullObject from Standard;
171         
172     -----------------------------------------------------------
173     --  Edge 3d polygon
174     -----------------------------------------------------------
175     
176     Polygon3D(myclass; E : Edge from TopoDS;
177                    L : out Location from TopLoc)
178     returns Polygon3D from Poly
179     
180         ---Purpose: Returns the 3D polygon of the edge. May be   a Null
181         --          handle. Returns in <L> the location for the polygon.
182         --          
183         ---C++: return const &
184     raises
185         NullObject from Standard;
186         
187
188     -----------------------------------------------------------
189     --  Edge curve on surface
190     -----------------------------------------------------------
191     
192     CurveOnSurface(myclass; E : Edge from TopoDS; 
193                             F : Face from TopoDS;
194                             First, Last : out Real) 
195     returns Curve from Geom2d
196     
197         ---Purpose: Returns the curve  associated to the  edge in  the
198         --          parametric  space of  the  face.  Returns   a NULL
199         --          handle  if this curve  does not exist.  Returns in
200         --          <First> and <Last> the parameter range.
201     raises
202         NullObject from Standard;       
203
204
205     CurveOnSurface(myclass; E : Edge     from TopoDS; 
206                             S : Surface  from Geom;
207                             L : Location from TopLoc;
208                             First, Last : out Real) 
209     returns Curve from Geom2d
210     
211         ---Purpose: Returns the  curve associated to   the edge in the
212         --          parametric  space of the   surface. Returns a NULL
213         --          handle  if this curve does  not exist.  Returns in
214         --          <First> and <Last> the parameter range.
215     raises
216         NullObject from Standard;
217     
218
219     CurveOnSurface(myclass; E :     Edge     from TopoDS;
220                             C : out Curve    from Geom2d;
221                             S : out Surface  from Geom;
222                             L : out Location from TopLoc;
223                             First, Last : out Real) 
224     
225         ---Purpose: Returns in <C>, <S>, <L> a 2d curve, a surface and
226         --          a location for the edge <E>. <C> and <S>  are null
227         --          if the  edge has no curve on  surface.  Returns in
228         --          <First> and <Last> the parameter range.
229     raises
230         NullObject from Standard;
231         
232     CurveOnSurface(myclass; E :     Edge     from TopoDS;
233                             C : out Curve    from Geom2d;
234                             S : out Surface  from Geom;
235                             L : out Location from TopLoc;
236                             First, Last : out Real;
237                             Index : Integer) 
238     
239         ---Purpose: Returns in <C>, <S>, <L> the 2d curve, the surface
240         --          and the location for the edge <E> of rank <Index>.
241         --          <C> and <S> are null if the index is out of range.
242         --          Returns in <First> and <Last> the parameter range.
243     raises
244         NullObject from Standard;
245         
246     -----------------------------------------------------------
247     --  Edge polygon on surface
248     -----------------------------------------------------------
249  
250     PolygonOnSurface(myclass; E : Edge     from TopoDS; 
251                               F : Face     from TopoDS)
252     returns Polygon2D from Poly
253     
254         ---Purpose: Returns the polygon associated to the  edge in  the
255         --          parametric  space of  the  face.  Returns   a NULL
256         --          handle  if this polygon  does not exist.
257     raises
258         NullObject from Standard;       
259         
260     PolygonOnSurface(myclass; E : Edge     from TopoDS; 
261                               S : Surface  from Geom;
262                               L : Location from TopLoc)
263     returns Polygon2D from Poly
264     
265         ---Purpose: Returns the polygon associated to the  edge in  the
266         --          parametric  space of  the surface. Returns   a NULL
267         --          handle  if this polygon  does not exist.
268     raises
269         NullObject from Standard;       
270         
271     
272     PolygonOnSurface(myclass; E :     Edge      from TopoDS;
273                               C : out Polygon2D from Poly;
274                               S : out Surface   from Geom;
275                               L : out Location  from TopLoc)
276     
277         ---Purpose: Returns in <C>, <S>, <L> a 2d curve, a surface and
278         --          a location for the edge <E>. <C> and <S>  are null
279         --          if the  edge has no polygon on  surface.
280     raises
281         NullObject from Standard;
282         
283     PolygonOnSurface(myclass; E :     Edge      from TopoDS;
284                               C : out Polygon2D from Poly;
285                               S : out Surface   from Geom;
286                               L : out Location  from TopLoc;
287                               Index : Integer) 
288     
289         ---Purpose: Returns in <C>, <S>, <L> the 2d curve, the surface
290         --          and the location for the edge <E> of rank <Index>.
291         --          <C> and <S> are null if the index is out of range.
292     raises
293         NullObject from Standard;
294         
295         
296         
297     -----------------------------------------------------------
298     --  Edge polygon on triangulation
299     -----------------------------------------------------------
300  
301     PolygonOnTriangulation(myclass; E : Edge          from TopoDS; 
302                                     T : Triangulation from Poly;
303                                     L : Location      from TopLoc)
304         ---C++: return const &
305     returns PolygonOnTriangulation from Poly;
306         --      
307         ---Purpose: Returns the polygon associated to the  edge in  the
308         --          parametric  space of  the  face.  Returns   a NULL
309         --          handle  if this polygon  does not exist.
310         
311     
312     PolygonOnTriangulation(myclass; E :     Edge                   from TopoDS;
313                                     P : out PolygonOnTriangulation from Poly;
314                                     T : out Triangulation          from Poly;
315                                     L : out Location               from TopLoc)
316     
317         ---Purpose: Returns in <P>, <T>, <L> a polygon on triangulation, a 
318         --          triangulation and a location for the edge <E>. 
319         --          <P>  and  <T>  are null  if  the  edge has no 
320         --          polygon on  triangulation.
321     raises
322         NullObject from Standard;
323         
324     PolygonOnTriangulation(myclass; E :     Edge                   from TopoDS;
325                                     P : out PolygonOnTriangulation from Poly;
326                                     T : out Triangulation          from Poly;
327                                     L : out Location               from TopLoc;
328                                     Index : Integer) 
329         ---Purpose: Returns   in   <P>,  <T>,    <L> a     polygon  on
330         --          triangulation,   a triangulation  and a  location for
331         --          the edge <E> for the range index.  <C> and <S> are
332         --          null if the edge has no polygon on triangulation.
333     
334     raises
335         NullObject from Standard;
336         
337         
338     -----------------------------------------------------------
339     --  Edge closed on surface
340     -----------------------------------------------------------
341     
342     IsClosed(myclass; E : Edge from TopoDS; 
343                       F : Face from TopoDS)
344     returns Boolean
345     
346         ---Purpose: Returns  True  if  <E>  has  two  PCurves  in  the
347         --          parametric space of <F>. i.e.  <F>  is on a closed
348         --          surface and <E> is on the closing curve.
349         --          
350     raises
351         NullObject from Standard;       
352     
353
354     -----------------------------------------------------------
355     --  Edge closed on surface
356     -----------------------------------------------------------
357     
358     IsClosed(myclass; E : Edge     from TopoDS; 
359                       S : Surface  from Geom;
360                       L : Location from TopLoc)
361     returns Boolean
362     
363         ---Purpose: Returns  True  if  <E>  has  two  PCurves  in  the
364         --          parametric space  of <S>.  i.e.   <S>  is a closed
365         --          surface and <E> is on the closing curve.
366         --          
367     raises
368         NullObject from Standard;
369     
370     -----------------------------------------------------------
371     --  Edge closed on triangulation
372     -----------------------------------------------------------
373     
374     IsClosed(myclass; E : Edge          from TopoDS; 
375                       T : Triangulation from Poly)
376     returns Boolean
377     
378         ---Purpose: Returns  True  if <E> has two arrays of indices in
379         --          the triangulation <T>.
380     raises
381         NullObject from Standard;
382     
383     -----------------------------------------------------------
384     --  Edge tolerance
385     -----------------------------------------------------------
386
387     Tolerance(myclass; E : Edge from TopoDS) returns Real
388     
389         ---Purpose: Returns the tolerance for <E>.
390     raises
391         NullObject from Standard;
392         
393     -----------------------------------------------------------
394     --  Edge flags
395     -----------------------------------------------------------
396     
397     SameParameter(myclass; E : Edge from TopoDS) returns Boolean
398     
399         ---Purpose: Returns the SameParameter flag for the edge.
400     raises
401         NullObject from Standard;
402         
403     SameRange(myclass; E : Edge from TopoDS) returns Boolean
404     
405         ---Purpose: Returns the SameRange flag for the edge.
406     raises
407         NullObject from Standard;
408         
409     Degenerated(myclass; E : Edge from TopoDS)
410     returns Boolean 
411     
412         ---Purpose: Returns True  if the edge is degenerated.
413     raises
414         NullObject from Standard;
415     
416     -------------------------------------------------------
417     -- Edge parameter range
418     -------------------------------------------------------
419     
420     Range(myclass; E : Edge from TopoDS;
421                    First, Last : out Real)
422         ---Purpose: Gets the range of the 3d curve.
423     raises 
424         NullObject  from Standard; -- If <E> is Null
425  
426     
427     Range(myclass; E : Edge from TopoDS;
428                    S : Surface from Geom;
429                    L : Location from TopLoc;
430                    First, Last : out Real)
431         ---Purpose: Gets the range  of the edge  on the pcurve on  the
432         --          surface.
433     raises 
434         NullObject  from Standard; -- If <E> is Null
435  
436     
437     Range(myclass; E : Edge from TopoDS;
438                    F : Face from TopoDS;
439                    First, Last : out Real)
440         ---Purpose: Gets the range of the edge on the pcurve on the face.
441     raises 
442         NullObject  from Standard; -- If <E> is Null
443
444
445     -------------------------------------------------------
446     -- Edge UV points
447     -- 
448     -- The  data  structures records a   location in UV   for  the two
449     -- extremities of an edge.
450     --  
451     --  By default these location are computed from the PCurve.
452     --  
453     --  They can be updated to ensure their identity on connected edges.
454     --    (See the package BRepTools)
455     -- 
456     -------------------------------------------------------
457     
458     UVPoints(myclass; E : Edge from TopoDS;
459                       S : Surface from Geom;
460                       L : Location from TopLoc;
461                       PFirst, PLast : out Pnt2d from gp)
462         ---Purpose: Gets the UV locations of the extremities of the edge.
463     raises 
464         NullObject  from Standard; -- If <E> is Null
465  
466     
467     UVPoints(myclass; E : Edge from TopoDS;
468                       F : Face from TopoDS;
469                       PFirst, PLast : out Pnt2d from gp)
470         ---Purpose: Gets the UV locations of the extremities of the edge.
471     raises 
472         NullObject  from Standard; -- If <E> is Null
473
474     SetUVPoints(myclass; E : Edge from TopoDS;
475                          S : Surface from Geom;
476                          L : Location from TopLoc;
477                          PFirst, PLast : Pnt2d from gp)
478         ---Purpose: Sets the UV locations of the extremities of the edge.
479     raises 
480         NullObject  from Standard; -- If <E> is Null
481  
482     
483     SetUVPoints(myclass; E : Edge from TopoDS;
484                          F : Face from TopoDS;
485                          PFirst, PLast : Pnt2d from gp)
486         ---Purpose: Sets the UV locations of the extremities of the edge.
487     raises 
488         NullObject  from Standard; -- If <E> is Null
489
490     -----------------------------------------------------------
491     --  Edge continuity
492     -----------------------------------------------------------
493  
494    HasContinuity(myclass; E      : Edge from TopoDS; 
495                           F1, F2 : Face from TopoDS) 
496    returns Boolean
497     
498         ---Purpose: Returns True if the edge is on the surfaces of the
499         --          two faces.
500     raises
501         NullObject from Standard; -- If the edge or the faces are null.
502
503
504     Continuity(myclass; E      : Edge from TopoDS; 
505                         F1, F2 : Face from TopoDS)  
506     returns Shape from GeomAbs
507     
508         ---Purpose: Returns the continuity.
509     raises
510         NullObject from Standard; -- If the edge or the faces are null.
511     
512    HasContinuity(myclass; E      : Edge     from TopoDS; 
513                           S1, S2 : Surface  from Geom;
514                           L1, L2 : Location from TopLoc)
515    returns Boolean
516     
517         ---Purpose: Returns True if the edge is on the surfaces.
518     raises
519         NullObject from Standard; -- If the edge or the surfaces are null.
520
521
522     Continuity(myclass; E      : Edge     from TopoDS;
523                         S1, S2 : Surface  from Geom;
524                         L1, L2 : Location from TopLoc)
525     returns Shape from GeomAbs
526     
527         ---Purpose: Returns the continuity.
528     raises
529         NullObject from Standard; -- If the edge or the faces are null.
530
531     
532     -----------------------------------------------------------
533     -----------------------------------------------------------
534     --                         Vertex                        -- 
535     -----------------------------------------------------------
536     -----------------------------------------------------------
537     
538     
539         
540     -----------------------------------------------------------
541     --  Vertex point
542     -----------------------------------------------------------
543
544     Pnt(myclass; V : Vertex from TopoDS) returns Pnt from gp
545     
546         ---Purpose: Returns the 3d point.
547     raises
548         NullObject from Standard; -- if <V> is Null or has no geometry.
549
550     -----------------------------------------------------------
551     --  Vertex tolerance
552     -----------------------------------------------------------
553
554     Tolerance(myclass; V : Vertex from TopoDS) returns Real
555     
556         ---Purpose: Returns the tolerance.
557     raises
558         NullObject from Standard; -- if <V> is Null or has no geometry.
559
560     -----------------------------------------------------------
561     --  Vertex parameter on edge
562     -----------------------------------------------------------
563     
564     Parameter(myclass; V : Vertex from TopoDS; 
565                        E : Edge from TopoDS)
566     returns Real
567     
568         ---Purpose: Returns the parameter of <V> on <E>.
569     raises
570         NullObject from Standard;
571         
572    
573     
574     Parameter(myclass; V : Vertex from TopoDS;
575                        E : Edge from TopoDS; 
576                        F : Face from TopoDS) 
577     returns Real
578     
579         ---Purpose: Returns the  parameters  of   the  vertex   on the
580         --          pcurve of the edge on the face.
581     raises
582         NullObject from Standard;
583
584
585     
586     Parameter(myclass; V : Vertex from TopoDS;
587                        E : Edge from TopoDS; 
588                        S : Surface from Geom;
589                        L : Location from TopLoc)
590     returns Real
591     
592         ---Purpose: Returns the  parameters  of   the  vertex   on the
593         --          pcurve of the edge on the surface.
594     raises
595         NullObject from Standard;
596     
597
598     Parameters(myclass; V : Vertex from TopoDS;
599                         F : Face from TopoDS) 
600     returns Pnt2d from gp
601     
602         ---Purpose: Returns the parameters of the vertex on the face.
603     raises
604         NullObject from Standard;
605
606     
607
608 end Tool;
609