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