0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / Adaptor3d / Adaptor3d_HSurface.cdl
1 -- Created on: 1994-02-14
2 -- Created by: model
3 -- Copyright (c) 1994-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 HSurface from Adaptor3d 
18
19 inherits TShared from MMgt
20
21         ---Purpose: Root class for surfaces manipulated by handles, on
22         -- which geometric algorithms work.
23         -- An adapted surface is an interface between the
24         -- services provided by a surface and those required of
25         -- the surface by algorithms which use it.
26         -- A derived concrete class is provided:
27         -- GeomAdaptor_HSurface for a surface from the Geom package. 
28     
29 uses
30      Array1OfReal    from TColStd,
31      Shape           from GeomAbs,
32      SurfaceType     from GeomAbs,
33      Vec             from gp,
34      Dir             from gp,
35      Pnt             from gp,
36      Pln             from gp,
37      Cone            from gp,
38      Cylinder        from gp,
39      Sphere          from gp,
40      Torus           from gp,
41      Ax1             from gp,
42      BezierSurface   from Geom,
43      BSplineSurface  from Geom,
44      Surface         from Adaptor3d,
45      HCurve          from Adaptor3d
46
47 raises
48
49     OutOfRange          from Standard,
50     NoSuchObject        from Standard,
51     DomainError         from Standard,
52     NotImplemented      from Standard
53
54
55 is
56
57
58     --
59     --  Access to the surface
60     --  
61     
62     Surface(me) returns Surface from Adaptor3d
63         ---Purpose: Returns a reference to the Surface inside the HSurface.
64         --          
65         ---C++: return const &
66     is deferred;
67
68
69     --
70     --     Surface  methods,  they are  provided  for convenience.  Each
71     --     method M() is defined inline as :
72     --     
73     --     Adaptor3d_HSurface::M() { Surface()->M(); }
74     --     
75     --     See the class Surface for comments on the methods.
76     --     
77         --     
78     
79     FirstUParameter(me) returns Real ;
80     ---C++: inline
81
82
83     LastUParameter(me) returns Real ;
84     ---C++: inline
85     
86     FirstVParameter(me) returns Real ;
87     ---C++: inline
88
89     LastVParameter(me) returns Real ;
90     ---C++: inline
91     
92     UContinuity(me) returns Shape from GeomAbs ;
93     ---C++: inline
94     
95     VContinuity(me) returns Shape from GeomAbs ;
96     ---C++: inline
97     
98     NbUIntervals(me ; S : Shape from GeomAbs) returns Integer ; 
99     ---C++: inline
100     
101     NbVIntervals(me ; S : Shape from GeomAbs) returns Integer ; 
102     ---C++: inline
103     
104     UIntervals(me ;T : in out Array1OfReal from TColStd; 
105                 S : Shape from GeomAbs ) ;
106     ---C++: inline
107
108     VIntervals(me ; T : in out Array1OfReal from TColStd; 
109                 S : Shape from GeomAbs ) ;
110     ---C++: inline
111     --      
112     UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ;
113      ---C++: inline
114      --      
115     VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ;
116      ---C++: inline
117      --      
118     IsUClosed(me) returns Boolean ;
119     ---C++: inline
120      
121     IsVClosed(me) returns Boolean ;
122     ---C++: inline
123      
124     IsUPeriodic(me) returns Boolean ;
125     ---C++: inline
126     
127     UPeriod(me) returns Real ;
128     ---C++: inline
129      
130     IsVPeriodic(me) returns Boolean ;
131     ---C++: inline
132     
133     VPeriod(me) returns Real ;
134     ---C++: inline
135      
136     Value (me; U, V : Real)  returns Pnt from gp;
137     ---C++: inline
138
139     D0 (me; U, V : Real; P : out Pnt from gp) ;
140     ---C++: inline
141
142     D1 (me; U, V : Real; P : out Pnt from gp;
143             D1U, D1V : out Vec from gp) ;
144     ---C++: inline
145
146     D2 (me; U, V : Real; P : out Pnt from gp;
147             D1U, D1V, D2U, D2V, D2UV : out Vec from gp)  ; 
148     ---C++: inline
149
150
151     D3 (me; U, V : Real; P : out Pnt from gp; 
152             D1U, D1V, D2U, D2V, D2UV, 
153             D3U, D3V, D3UUV, D3UVV : out Vec from gp)  ; 
154     ---C++: inline
155
156     DN (me; U, V : Real; Nu, Nv : Integer)   returns Vec from gp  ; 
157     ---C++: inline
158     
159     UResolution(me; R3d : Real ) returns Real ;
160     ---C++: inline
161   
162     VResolution(me; R3d : Real ) returns Real ;
163     ---C++: inline
164   
165     GetType(me) returns SurfaceType from GeomAbs ;
166     ---C++: inline
167
168     Plane(me) returns Pln from gp ;
169     ---C++: inline
170
171     Cylinder(me) returns Cylinder from gp ;
172     ---C++: inline
173
174     Cone(me) returns Cone from gp ;
175     ---C++: inline
176
177     Sphere(me) returns Sphere from gp ;
178     ---C++: inline
179
180     Torus(me) returns Torus from gp ;
181     ---C++: inline
182
183     UDegree(me) returns Integer ;
184     ---C++: inline
185
186
187     NbUPoles(me) returns Integer ;
188         ---C++: inline
189
190     VDegree(me) returns Integer ;
191         ---C++: inline
192
193
194     NbVPoles(me) returns Integer ;
195         ---C++: inline
196
197
198     
199     NbUKnots(me) returns Integer ;
200         ---C++: inline
201
202     
203     NbVKnots(me) returns Integer ;
204         ---C++: inline
205
206     
207     IsURational(me) returns Boolean ;
208         ---C++: inline
209
210     
211     IsVRational(me) returns Boolean ;
212         ---C++: inline
213
214
215     Bezier(me) returns BezierSurface from Geom ;
216     ---C++: inline
217
218     BSpline(me) returns BSplineSurface from Geom ;
219     ---C++: inline
220
221    AxeOfRevolution(me) returns Ax1 from gp ;
222    ---C++: inline
223
224    Direction(me) returns Dir from gp ;
225    ---C++: inline
226
227    BasisCurve(me) returns HCurve from Adaptor3d ;
228     ---C++: inline
229    
230    BasisSurface(me) returns HSurface from Adaptor3d;
231     ---C++: inline
232
233    OffsetValue(me) returns Real from Standard;
234     ---C++: inline
235
236 end HSurface;
237
238
239
240