Integration of OCCT 6.5.0 from SVN
[occt.git] / src / Adaptor3d / Adaptor3d_Surface.cdl
1 -- File:        Adaptor3d_Surface.cdl
2 -- Created:     Wed Mar 31 12:12:54 1993
3 -- Author:      Bruno DUMORTIER
4 --              <dub@sdsun1>
5 ---Copyright:    Matra Datavision 1993
6
7
8
9 deferred class Surface from Adaptor3d 
10
11         ---Purpose: Root class for surfaces on which geometric algorithms work.
12         -- An adapted surface is an interface between the
13         -- services provided by a surface and those required of
14         -- the surface by algorithms which use it.
15         -- A derived concrete class is provided:
16         -- GeomAdaptor_Surface for a surface from the Geom package.
17         -- The  Surface class describes  the standard behaviour
18         --          of a surface for generic algorithms.
19         --          
20         --          The Surface can  be decomposed in intervals of any
21         --          continuity    in  U    and    V using  the  method
22         --          NbIntervals.  A current interval can be set.  Most
23         --          of the methods apply to the current interval.
24         --  Warning: All the methods are virtual and implemented with a
25         --          raise to allow to redefined only the methods realy
26         --          used.
27 uses
28      Array1OfReal    from TColStd,
29      Shape           from GeomAbs,
30      SurfaceType     from GeomAbs,
31      Vec             from gp,
32      Dir             from gp,
33      Pnt             from gp,
34      Pln             from gp,
35      Cone            from gp,
36      Cylinder        from gp,
37      Sphere          from gp,
38      Torus           from gp,
39      Ax1             from gp,
40      BezierSurface   from Geom,
41      BSplineSurface  from Geom,
42      HSurface        from Adaptor3d,
43      HCurve          from Adaptor3d
44
45 raises
46
47     OutOfRange          from Standard,
48     NoSuchObject        from Standard,
49     DomainError         from Standard
50  
51 is
52     
53     --
54     --     Global methods - Apply to the whole surface.
55     --     
56     
57     Delete(me:out) is virtual;
58     ---C++: alias "Standard_EXPORT virtual ~Adaptor3d_Surface(){Delete();}"
59     
60     FirstUParameter(me) returns Real
61     is virtual;
62
63     LastUParameter(me) returns Real
64     is virtual;
65     
66     FirstVParameter(me) returns Real
67     is virtual;
68
69     LastVParameter(me) returns Real
70     is virtual;
71     
72     UContinuity(me) returns Shape from GeomAbs
73     is virtual;
74     
75     VContinuity(me) returns Shape from GeomAbs
76     is virtual;
77     
78     NbUIntervals(me; S : Shape from GeomAbs) returns Integer
79         ---Purpose: Returns the number of U intervals for  continuity
80         --          <S>. May be one if UContinuity(me) >= <S>
81     is virtual;
82     
83     NbVIntervals(me; S : Shape from GeomAbs) returns Integer
84         ---Purpose: Returns the number of V intervals for  continuity
85         --          <S>. May be one if VContinuity(me) >= <S>
86     is virtual;
87     
88     UIntervals(me; T : in out Array1OfReal from TColStd; 
89                 S : Shape from GeomAbs ) 
90         ---Purpose: Returns the  intervals with the requested continuity
91         --          in the U direction.
92     raises
93         OutOfRange from Standard -- if the Length of the array does
94                                  -- have enought slots to accomodate
95                                  -- the result.
96     is virtual;
97
98     VIntervals(me; T : in out Array1OfReal from TColStd; 
99                 S : Shape from GeomAbs ) 
100         ---Purpose: Returns the  intervals with the requested continuity
101         --          in the V direction.
102     raises
103         OutOfRange from Standard -- if the Length of the array does
104                                  -- have enought slots to accomodate
105                                  -- the result.
106     is virtual;
107     
108     UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
109         ---Purpose: Returns    a  surface trimmed in the U direction
110         --           equivalent   of  <me>  between
111         --          parameters <First>  and <Last>. <Tol>  is used  to
112         --          test for 3d points confusion.
113     raises
114         OutOfRange from Standard
115         ---Purpose: If <First> >= <Last> 
116     is virtual ;
117     
118     VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
119         ---Purpose: Returns    a  surface trimmed in the V direction  between
120         --          parameters <First>  and <Last>. <Tol>  is used  to
121         --          test for 3d points confusion.
122     raises
123         OutOfRange from Standard
124         ---Purpose: If <First> >= <Last> 
125     is virtual ;
126
127     IsUClosed(me) returns Boolean
128     is virtual;
129      
130     IsVClosed(me) returns Boolean
131     is virtual;
132      
133     IsUPeriodic(me) returns Boolean
134     is virtual;
135     
136     UPeriod(me) returns Real
137     raises
138         DomainError from Standard -- if the curve is not periodic
139     is virtual;
140      
141     IsVPeriodic(me) returns Boolean
142     is virtual;
143     
144     VPeriod(me) returns Real
145     raises
146         DomainError from Standard -- if the curve is not periodic
147     is virtual;
148      
149     Value (me; U, V : Real)  returns Pnt from gp
150         --- Purpose : Computes the point of parameters U,V on the surface.
151     is virtual;
152
153     D0 (me; U, V : Real; P : out Pnt from gp)
154         --- Purpose : Computes the point of parameters U,V on the surface.
155     is virtual;
156
157     D1 (me; U, V : Real; P : out Pnt from gp; D1U, D1V : out Vec from gp)
158         --- Purpose : Computes the point  and the first derivatives on
159         --  the surface.
160     raises DomainError from Standard
161         --- Purpose   : Raised   if  the continuity  of   the  current
162         --  intervals is not C1.
163     is virtual;
164
165     D2 (me; U, V : Real; P : out Pnt from gp; D1U, D1V, D2U, D2V, D2UV : out Vec from gp)
166         --- Purpose  :  Computes   the point,  the  first  and  second
167         --  derivatives on the surface.
168     raises DomainError from Standard
169         --- Purpose   : Raised  if   the   continuity   of the current
170         --  intervals is not C2.
171     is virtual;
172
173     D3 (me; U, V : Real; P : out Pnt from gp; 
174             D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp)
175         --- Purpose : Computes the point,  the first, second and third
176         --  derivatives on the surface.
177     raises DomainError from Standard
178         --- Purpose   : Raised  if   the   continuity   of the current
179         --  intervals is not C3.
180     is virtual;
181
182     DN (me; U, V : Real; Nu, Nv : Integer)   returns Vec from gp
183         --- Purpose :  Computes the derivative of order Nu in the direction U and Nv
184         --  in the direction V at the point P(U, V).
185     raises DomainError from Standard,
186         --- Purpose : Raised if the current U  interval is not not CNu
187         --  and the current V interval is not CNv.
188            OutOfRange from Standard
189         --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
190     is virtual;
191     
192     UResolution(me; R3d : Real ) returns Real
193          ---Purpose :  Returns the parametric U  resolution corresponding
194          --         to the real space resolution <R3d>.
195     is virtual;
196   
197     VResolution(me; R3d : Real ) returns Real
198          ---Purpose :  Returns the parametric V  resolution corresponding
199          --         to the real space resolution <R3d>.
200     is virtual;
201   
202     GetType(me) returns SurfaceType from GeomAbs
203         ---Purpose: Returns the type of the surface : Plane, Cylinder,
204         --          Cone,      Sphere,        Torus,    BezierSurface,
205         --          BSplineSurface,               SurfaceOfRevolution,
206         --          SurfaceOfExtrusion, OtherSurface
207     is virtual;
208     
209     --
210     --     The following methods must  be called when GetType returned
211     --     the corresponding type.
212     --     
213
214     Plane(me) returns Pln from gp
215       raises NoSuchObject from Standard
216     is virtual;
217     
218     Cylinder(me) returns Cylinder from gp
219       raises NoSuchObject from Standard
220     is virtual;
221     
222     Cone(me) returns Cone from gp
223       raises NoSuchObject from Standard
224     is virtual;
225     
226     Sphere(me) returns Sphere from gp
227       raises NoSuchObject from Standard
228     is virtual;
229     
230     Torus(me) returns Torus from gp
231       raises NoSuchObject from Standard
232     is virtual;
233
234
235     UDegree(me) returns Integer
236      raises NoSuchObject from Standard
237     is virtual;
238
239     NbUPoles(me) returns Integer
240      raises NoSuchObject from Standard
241     is virtual;
242
243     VDegree(me) returns Integer
244      raises NoSuchObject from Standard
245     is virtual;
246
247     NbVPoles(me) returns Integer
248      raises NoSuchObject from Standard
249     is virtual;
250     
251     
252     NbUKnots(me) returns Integer
253     raises 
254        NoSuchObject from Standard
255     is virtual;
256     
257     
258     NbVKnots(me) returns Integer
259     raises 
260        NoSuchObject from Standard
261     is virtual;
262     
263     
264     IsURational(me) returns Boolean
265     raises
266         NoSuchObject from Standard
267     is virtual;
268     
269     IsVRational(me) returns Boolean
270     raises
271         NoSuchObject from Standard
272     is virtual;
273     
274
275
276     Bezier(me) returns BezierSurface from Geom
277     raises 
278         NoSuchObject from Standard
279     is virtual;
280     
281     BSpline(me) returns BSplineSurface from Geom
282     raises 
283         NoSuchObject from Standard
284     is virtual;
285     
286     AxeOfRevolution(me) returns Ax1 from gp
287     raises 
288        NoSuchObject from Standard -- only for SurfaceOfRevolution
289     is virtual;
290
291     Direction(me) returns Dir from gp
292     raises 
293        NoSuchObject from Standard -- only for SurfaceOfExtrusion
294     is virtual;
295
296     BasisCurve(me) returns HCurve from Adaptor3d
297     raises 
298        NoSuchObject from Standard -- only for SurfaceOfExtrusion
299     is virtual;
300
301     BasisSurface(me) returns HSurface from Adaptor3d
302     raises 
303        NoSuchObject from Standard -- only for Offset Surface
304     is virtual;
305
306     OffsetValue(me) returns Real from Standard
307     raises 
308        NoSuchObject from Standard -- only for Offset Surface
309     is virtual;
310         
311 end Surface;
312
313
314
315
316
317
318
319