0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / Adaptor3d / Adaptor3d_Surface.cdl
CommitLineData
b311480e 1-- Created on: 1993-03-31
2-- Created by: Bruno DUMORTIER
3-- Copyright (c) 1993-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17deferred 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.
35uses
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
53raises
54
55 OutOfRange from Standard,
56 NoSuchObject from Standard,
57 DomainError from Standard
58
59is
60
61 --
62 -- Global methods - Apply to the whole surface.
63 --
64
7fd59977 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;
6da30ff1 315
316 ---C++: alias " Standard_EXPORT virtual ~Adaptor3d_Surface();"
7fd59977 317
318end Surface;
319
320
321
322
323
324
325
326