0024428: Implementation of LGPL license
[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--
973c2be1 8-- This library is free software; you can redistribute it and / or modify it
9-- under the terms of the GNU Lesser General Public 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.
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
65 Delete(me:out) is virtual;
66 ---C++: alias "Standard_EXPORT virtual ~Adaptor3d_Surface(){Delete();}"
67
68 FirstUParameter(me) returns Real
69 is virtual;
70
71 LastUParameter(me) returns Real
72 is virtual;
73
74 FirstVParameter(me) returns Real
75 is virtual;
76
77 LastVParameter(me) returns Real
78 is virtual;
79
80 UContinuity(me) returns Shape from GeomAbs
81 is virtual;
82
83 VContinuity(me) returns Shape from GeomAbs
84 is virtual;
85
86 NbUIntervals(me; S : Shape from GeomAbs) returns Integer
87 ---Purpose: Returns the number of U intervals for continuity
88 -- <S>. May be one if UContinuity(me) >= <S>
89 is virtual;
90
91 NbVIntervals(me; S : Shape from GeomAbs) returns Integer
92 ---Purpose: Returns the number of V intervals for continuity
93 -- <S>. May be one if VContinuity(me) >= <S>
94 is virtual;
95
96 UIntervals(me; T : in out Array1OfReal from TColStd;
97 S : Shape from GeomAbs )
98 ---Purpose: Returns the intervals with the requested continuity
99 -- in the U direction.
100 raises
101 OutOfRange from Standard -- if the Length of the array does
102 -- have enought slots to accomodate
103 -- the result.
104 is virtual;
105
106 VIntervals(me; T : in out Array1OfReal from TColStd;
107 S : Shape from GeomAbs )
108 ---Purpose: Returns the intervals with the requested continuity
109 -- in the V direction.
110 raises
111 OutOfRange from Standard -- if the Length of the array does
112 -- have enought slots to accomodate
113 -- the result.
114 is virtual;
115
116 UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
117 ---Purpose: Returns a surface trimmed in the U direction
118 -- equivalent of <me> between
119 -- parameters <First> and <Last>. <Tol> is used to
120 -- test for 3d points confusion.
121 raises
122 OutOfRange from Standard
123 ---Purpose: If <First> >= <Last>
124 is virtual ;
125
126 VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d
127 ---Purpose: Returns a surface trimmed in the V direction between
128 -- parameters <First> and <Last>. <Tol> is used to
129 -- test for 3d points confusion.
130 raises
131 OutOfRange from Standard
132 ---Purpose: If <First> >= <Last>
133 is virtual ;
134
135 IsUClosed(me) returns Boolean
136 is virtual;
137
138 IsVClosed(me) returns Boolean
139 is virtual;
140
141 IsUPeriodic(me) returns Boolean
142 is virtual;
143
144 UPeriod(me) returns Real
145 raises
146 DomainError from Standard -- if the curve is not periodic
147 is virtual;
148
149 IsVPeriodic(me) returns Boolean
150 is virtual;
151
152 VPeriod(me) returns Real
153 raises
154 DomainError from Standard -- if the curve is not periodic
155 is virtual;
156
157 Value (me; U, V : Real) returns Pnt from gp
158 --- Purpose : Computes the point of parameters U,V on the surface.
159 is virtual;
160
161 D0 (me; U, V : Real; P : out Pnt from gp)
162 --- Purpose : Computes the point of parameters U,V on the surface.
163 is virtual;
164
165 D1 (me; U, V : Real; P : out Pnt from gp; D1U, D1V : out Vec from gp)
166 --- Purpose : Computes the point and the first derivatives on
167 -- the surface.
168 raises DomainError from Standard
169 --- Purpose : Raised if the continuity of the current
170 -- intervals is not C1.
171 is virtual;
172
173 D2 (me; U, V : Real; P : out Pnt from gp; D1U, D1V, D2U, D2V, D2UV : out Vec from gp)
174 --- Purpose : Computes the point, the first and second
175 -- derivatives on the surface.
176 raises DomainError from Standard
177 --- Purpose : Raised if the continuity of the current
178 -- intervals is not C2.
179 is virtual;
180
181 D3 (me; U, V : Real; P : out Pnt from gp;
182 D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp)
183 --- Purpose : Computes the point, the first, second and third
184 -- derivatives on the surface.
185 raises DomainError from Standard
186 --- Purpose : Raised if the continuity of the current
187 -- intervals is not C3.
188 is virtual;
189
190 DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp
191 --- Purpose : Computes the derivative of order Nu in the direction U and Nv
192 -- in the direction V at the point P(U, V).
193 raises DomainError from Standard,
194 --- Purpose : Raised if the current U interval is not not CNu
195 -- and the current V interval is not CNv.
196 OutOfRange from Standard
197 --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
198 is virtual;
199
200 UResolution(me; R3d : Real ) returns Real
201 ---Purpose : Returns the parametric U resolution corresponding
202 -- to the real space resolution <R3d>.
203 is virtual;
204
205 VResolution(me; R3d : Real ) returns Real
206 ---Purpose : Returns the parametric V resolution corresponding
207 -- to the real space resolution <R3d>.
208 is virtual;
209
210 GetType(me) returns SurfaceType from GeomAbs
211 ---Purpose: Returns the type of the surface : Plane, Cylinder,
212 -- Cone, Sphere, Torus, BezierSurface,
213 -- BSplineSurface, SurfaceOfRevolution,
214 -- SurfaceOfExtrusion, OtherSurface
215 is virtual;
216
217 --
218 -- The following methods must be called when GetType returned
219 -- the corresponding type.
220 --
221
222 Plane(me) returns Pln from gp
223 raises NoSuchObject from Standard
224 is virtual;
225
226 Cylinder(me) returns Cylinder from gp
227 raises NoSuchObject from Standard
228 is virtual;
229
230 Cone(me) returns Cone from gp
231 raises NoSuchObject from Standard
232 is virtual;
233
234 Sphere(me) returns Sphere from gp
235 raises NoSuchObject from Standard
236 is virtual;
237
238 Torus(me) returns Torus from gp
239 raises NoSuchObject from Standard
240 is virtual;
241
242
243 UDegree(me) returns Integer
244 raises NoSuchObject from Standard
245 is virtual;
246
247 NbUPoles(me) returns Integer
248 raises NoSuchObject from Standard
249 is virtual;
250
251 VDegree(me) returns Integer
252 raises NoSuchObject from Standard
253 is virtual;
254
255 NbVPoles(me) returns Integer
256 raises NoSuchObject from Standard
257 is virtual;
258
259
260 NbUKnots(me) returns Integer
261 raises
262 NoSuchObject from Standard
263 is virtual;
264
265
266 NbVKnots(me) returns Integer
267 raises
268 NoSuchObject from Standard
269 is virtual;
270
271
272 IsURational(me) returns Boolean
273 raises
274 NoSuchObject from Standard
275 is virtual;
276
277 IsVRational(me) returns Boolean
278 raises
279 NoSuchObject from Standard
280 is virtual;
281
282
283
284 Bezier(me) returns BezierSurface from Geom
285 raises
286 NoSuchObject from Standard
287 is virtual;
288
289 BSpline(me) returns BSplineSurface from Geom
290 raises
291 NoSuchObject from Standard
292 is virtual;
293
294 AxeOfRevolution(me) returns Ax1 from gp
295 raises
296 NoSuchObject from Standard -- only for SurfaceOfRevolution
297 is virtual;
298
299 Direction(me) returns Dir from gp
300 raises
301 NoSuchObject from Standard -- only for SurfaceOfExtrusion
302 is virtual;
303
304 BasisCurve(me) returns HCurve from Adaptor3d
305 raises
306 NoSuchObject from Standard -- only for SurfaceOfExtrusion
307 is virtual;
308
309 BasisSurface(me) returns HSurface from Adaptor3d
310 raises
311 NoSuchObject from Standard -- only for Offset Surface
312 is virtual;
313
314 OffsetValue(me) returns Real from Standard
315 raises
316 NoSuchObject from Standard -- only for Offset Surface
317 is virtual;
318
319end Surface;
320
321
322
323
324
325
326
327