Integration of OCCT 6.5.0 from SVN
[occt.git] / src / BRepAdaptor / BRepAdaptor_Surface.cdl
1 -- File:        BRepAdaptor_Surface.cdl
2 -- Created:     Mon Feb 22 10:01:31 1993
3 -- Author:      Remi LEQUETTE
4 --              <rle@phylox>
5 ---Copyright:    Matra Datavision 1993
6
7
8
9 class Surface from BRepAdaptor inherits Surface from Adaptor3d
10
11         ---Purpose: The Surface from BRepAdaptor allows to  use a Face
12         --          of the BRep topology look like a 3D surface.
13         --          
14         --          It  has  the methods  of  the class   Surface from
15         --          Adaptor3d.
16         --          
17         --          It is created or initialized with a Face. It takes
18         --          into account the local coordinates system.
19         --          
20         --          The  u,v parameter range is   the minmax value for
21         --          the  restriction,  unless  the flag restriction is
22         --          set to false.
23
24 uses
25     Face            from TopoDS,
26     SurfaceType     from GeomAbs,
27     HSurface        from Adaptor3d,
28     HCurve          from Adaptor3d,
29     Surface         from GeomAdaptor,
30     Shape           from GeomAbs,
31     BezierSurface   from Geom,
32     BSplineSurface  from Geom,
33     Trsf            from gp,
34     Pnt             from gp,
35     Vec             from gp,
36     Dir             from gp,
37     Pln             from gp,
38     Cylinder        from gp,
39     Sphere          from gp,
40     Torus           from gp,
41     Cone            from gp,
42     Ax1             from gp,
43     Array1OfReal    from TColStd
44
45
46 raises 
47
48     OutOfRange   from Standard,
49     DomainError  from Standard,
50     NoSuchObject from Standard
51
52 is
53
54     Create returns Surface from BRepAdaptor;
55         ---Purpose: Creates an undefined surface with no face loaded.
56         
57     Create(F : Face from TopoDS;
58            R : Boolean = Standard_True) 
59     returns Surface from BRepAdaptor;
60         ---Purpose: Creates a surface to  access the geometry  of <F>.
61         --          If  <Restriction> is  true  the parameter range is
62         --          the  parameter  range  in   the  UV space  of  the
63         --          restriction. 
64         
65     Initialize(me : in out; F : Face from TopoDS; 
66                             Restriction : Boolean = Standard_True)
67         ---Purpose: Sets the surface to the geometry of <F>.
68     is static;
69     
70     Surface(me) returns Surface from GeomAdaptor
71         ---Purpose: Returns the surface.
72         --          
73         ---C++: return const &
74     is static;
75     
76     ChangeSurface(me : in out) returns Surface from GeomAdaptor
77         ---Purpose: Returns the surface.
78         --          
79         ---C++: return &
80     is static;
81     
82     Trsf(me) returns Trsf from gp
83         ---Purpose: Returns the surface coordinate system.
84         --          
85         ---C++: return const &
86     is static;
87     
88     Face(me) returns Face from TopoDS
89         ---Purpose: Returns the face.
90         --          
91         ---C++: return const &
92     is static;
93     
94     Tolerance(me) returns Real
95         ---Purpose: Returns the face tolerance.
96         --          
97     is static;
98
99     --
100     --  Methods of Surface from GeomAdaptor
101     --              
102     
103     FirstUParameter(me) returns Real
104          ---C++:inline
105     is redefined static;
106
107     LastUParameter(me) returns Real
108          ---C++:inline
109     is redefined static;
110     
111     FirstVParameter(me) returns Real
112          ---C++:inline
113     is redefined static;
114
115     LastVParameter(me) returns Real
116          ---C++:inline
117     is redefined static;
118     
119     UContinuity(me) returns Shape from GeomAbs
120          ---C++:inline
121     is redefined static;
122     
123     VContinuity(me) returns Shape from GeomAbs
124          ---C++:inline
125     is redefined static;
126     
127     NbUIntervals(me; S : Shape from GeomAbs) returns Integer
128         ---Purpose: If necessary, breaks the surface in U intervals of
129         --          continuity    <S>.  And   returns  the  number  of
130         --          intervals.
131         ---C++:inline
132     is redefined static;
133     
134     NbVIntervals(me; S : Shape from GeomAbs) returns Integer
135         ---Purpose: If necessary, breaks the surface in V intervals of
136         --          continuity    <S>.  And   returns  the  number  of
137         --          intervals.
138         ---C++:inline
139     is redefined static;
140     
141     UIntervals(me; T : in out Array1OfReal from TColStd; 
142                    S :        Shape        from GeomAbs ) 
143         ---Purpose: Returns the  intervals with the requested continuity
144         --          in the U direction.
145     raises
146         OutOfRange from Standard -- if the Length of the array does
147                                  -- have enought slots to accomodate
148                                  -- the result.
149     is redefined static;
150
151     VIntervals(me; T : in out Array1OfReal from TColStd; 
152                    S :        Shape        from GeomAbs ) 
153         ---Purpose: Returns the  intervals with the requested continuity
154         --          in the V direction.
155     raises
156         OutOfRange from Standard -- if the Length of the array does
157                                  -- have enought slots to accomodate
158                                  -- the result.
159     is redefined static;
160     
161     UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
162         ---Purpose: Returns    a  surface trimmed in the U direction
163         --           equivalent   of  <me>  between
164         --          parameters <First>  and <Last>. <Tol>  is used  to
165         --          test for 3d points confusion.
166     raises
167         OutOfRange from Standard
168         ---Purpose: If <First> >= <Last> 
169     is redefined static ;
170     
171     VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
172         ---Purpose: Returns    a  surface trimmed in the V direction  between
173         --          parameters <First>  and <Last>. <Tol>  is used  to
174         --          test for 3d points confusion.
175     raises
176         OutOfRange from Standard
177         ---Purpose: If <First> >= <Last> 
178     is redefined static ;
179
180     IsUClosed(me) returns Boolean
181          ---C++:inline
182     is redefined static;
183      
184     IsVClosed(me) returns Boolean
185          ---C++:inline
186     is redefined static;
187      
188     IsUPeriodic(me) returns Boolean
189          ---C++:inline
190     is redefined static;
191     
192     UPeriod(me) returns Real
193     raises
194         DomainError from Standard -- if the curve is not periodic
195          ---C++:inline
196     is redefined static;
197      
198     IsVPeriodic(me) returns Boolean
199          ---C++:inline
200     is redefined static;
201     
202     VPeriod(me) returns Real
203          ---C++:inline
204     raises
205         DomainError from Standard -- if the curve is not periodic
206     is redefined static;
207      
208     Value (me; U, V : Real)  returns Pnt from gp
209         --- Purpose : Computes the point of parameters U,V on the surface.
210     is redefined static;
211
212     D0 (me; U, V : Real; P : out Pnt from gp)
213         --- Purpose : Computes the point of parameters U,V on the surface.
214     is redefined static;
215
216     D1 (me; U, V     : Real; 
217             P        : out Pnt from gp; 
218             D1U, D1V : out Vec from gp)
219         --- Purpose : Computes the point  and the first derivatives on
220         --  the surface.
221     raises 
222         DomainError from Standard
223             --- Purpose   : Raised   if  the continuity  of   the  current
224             --  intervals is not C1.
225     is redefined static;
226
227     D2 (me; U, V : Real; 
228             P : out Pnt from gp; 
229             D1U, D1V, D2U, D2V, D2UV : out Vec from gp)
230         --- Purpose  :  Computes   the point,  the  first  and  second
231         --  derivatives on the surface.
232     raises 
233         DomainError from Standard
234             --- Purpose   : Raised  if   the   continuity   of the current
235             --  intervals is not C2.
236     is redefined static;
237
238     D3 (me; U, V : Real; P : out Pnt from gp; 
239             D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp)
240         --- Purpose : Computes the point,  the first, second and third
241         --  derivatives on the surface.
242     raises 
243         DomainError from Standard
244             --- Purpose   : Raised  if   the   continuity   of the current
245             --  intervals is not C3.
246     is redefined static;
247
248     DN (me; U, V : Real; Nu, Nv : Integer)   returns Vec from gp
249         --- Purpose :  Computes the derivative of order Nu in the direction 
250         --  U and Nv in the direction V at the point P(U, V).
251     raises 
252         DomainError from Standard,
253             --- Purpose : Raised if the current U  interval is not not CNu
254             --  and the current V interval is not CNv.
255         OutOfRange from Standard
256             --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
257     is redefined static;
258   
259     UResolution(me; R3d : Real ) returns Real
260          ---Purpose :  Returns the parametric U  resolution corresponding
261          --         to the real space resolution <R3d>.
262          --         
263         ---C++:inline
264     is redefined static;
265   
266     VResolution(me; R3d : Real ) returns Real
267          ---Purpose :  Returns the parametric V  resolution corresponding
268          --         to the real space resolution <R3d>.
269          --         
270         ---C++:inline
271     is redefined static;
272   
273     GetType(me) returns SurfaceType from GeomAbs
274         ---Purpose: Returns the type of the surface : Plane, Cylinder,
275         --          Cone,      Sphere,        Torus,    BezierSurface,
276         --          BSplineSurface,               SurfaceOfRevolution,
277         --          SurfaceOfExtrusion, OtherSurface
278         ---C++:inline
279     is redefined static;
280     
281     Plane(me) returns Pln from gp
282       raises NoSuchObject from Standard
283       
284     is redefined static;
285     
286     Cylinder(me) returns Cylinder from gp
287       raises NoSuchObject from Standard
288     is redefined static;
289     
290     Cone(me) returns Cone from gp
291       raises NoSuchObject from Standard
292     is redefined static;
293     
294     Sphere(me) returns Sphere from gp
295       raises NoSuchObject from Standard
296     is redefined static;
297     
298     Torus(me) returns Torus from gp
299       raises NoSuchObject from Standard
300     is redefined static;
301
302
303     UDegree(me) returns Integer 
304      raises NoSuchObject from Standard
305      ---C++:inline
306     is redefined static;
307
308     NbUPoles(me) returns Integer
309      raises NoSuchObject from Standard
310     ---C++:inline
311     is redefined static;
312
313     VDegree(me) returns Integer
314      raises NoSuchObject from Standard
315         ---C++:inline    
316     is redefined static;
317
318     NbVPoles(me) returns Integer
319      raises NoSuchObject from Standard
320         ---C++:inline     
321     is redefined static;
322     
323     
324     NbUKnots(me) returns Integer
325     raises 
326        NoSuchObject from Standard
327         ---C++:inline       
328     is redefined static;
329     
330     
331     NbVKnots(me) returns Integer
332     raises 
333        NoSuchObject from Standard
334         ---C++:inline       
335     is redefined static;
336     
337     
338     IsURational(me) returns Boolean
339     raises
340         NoSuchObject from Standard
341         ---C++:inline   
342     is redefined static;
343     
344     IsVRational(me) returns Boolean
345     raises
346         NoSuchObject from Standard
347         ---C++:inline   
348     is redefined static;
349     
350
351     Bezier(me) returns BezierSurface from Geom
352         ---Purpose: 
353 --Warning : this will make a copy of the 
354         --           Bezier Surface since it applies
355         --           to it the myTsrf transformation
356         --           Be Carefull when using this method
357
358     raises 
359         NoSuchObject from Standard
360     is redefined static;
361
362     BSpline(me) returns BSplineSurface from Geom
363         ---Purpose: 
364 --  Warning : this will make a copy of the 
365         --           BSpline Surface since it applies
366         --           to it the myTsrf transformation
367         --           Be Carefull when using this method
368
369     raises 
370         NoSuchObject from Standard
371     is redefined static;
372     
373     AxeOfRevolution(me) returns Ax1 from gp
374     raises 
375        NoSuchObject from Standard -- only for SurfaceOfRevolution
376     is redefined static;
377
378     Direction(me) returns Dir from gp
379     raises 
380        NoSuchObject from Standard -- only for SurfaceOfExtrusion
381     is redefined static;
382
383     BasisCurve(me) returns HCurve from Adaptor3d
384     raises 
385        NoSuchObject from Standard
386        ---Purpose: only for SurfaceOfExtrusion and SurfaceOfRevolution
387        --  Warning: this will make a copy of the underlying curve
388        --          since it applies to it the transformation
389        --          myTrsf. Be carefull when using this method.
390     is redefined static;
391
392     BasisSurface(me) returns HSurface from Adaptor3d
393     raises 
394        NoSuchObject from Standard -- only for Offset Surface
395     is redefined static;
396
397     OffsetValue(me) returns Real from Standard
398     raises 
399        NoSuchObject from Standard -- only for Offset Surface
400     is redefined static;
401
402 fields
403
404     mySurf : Surface from GeomAdaptor;
405     myTrsf : Trsf from gp;
406     myFace : Face from TopoDS;
407
408 end Surface;