0022792: Globally defined symbol PI conflicts with VTK definition (Intel compiler)
[occt.git] / src / ElSLib / ElSLib.cdl
CommitLineData
7fd59977 1-- File: ElSLib.cdl
2-- Created: Mon Sep 9 16:39:42 1991
3-- Author: Michel Chauvat
4---Copyright: Matra Datavision 1991
5
6
7
8
9package ElSLib
10
11 --- Purpose : Provides functions for basic geometric computation on
12 -- elementary surfaces.
13 -- This includes:
14 -- - calculation of a point or derived vector on a surface
15 -- where the surface is provided by the gp package, or
16 -- defined in canonical form (as in the gp package), and
17 -- the point is defined with a parameter,
18 -- - evaluation of the parameters corresponding to a
19 -- point on an elementary surface from gp,
20 -- - calculation of isoparametric curves on an elementary
21 -- surface defined in canonical form (as in the gp package).
22 -- Notes:
23 -- - ElSLib stands for Elementary Surfaces Library.
24 -- - If the surfaces provided by the gp package are not
25 -- explicitly parameterized, they still have an implicit
26 -- parameterization, similar to that which they infer on
27 -- the equivalent Geom surfaces.
28 -- Note: ElSLib stands for Elementary Surfaces Library.
29
30uses gp
31
32is
33
34 Value (U, V : Real; Pl : Pln from gp)
35 returns Pnt from gp;
36 ---Purpose: For elementary surfaces from the gp package (planes,
37 -- cones, cylinders, spheres and tori), computes the point
38 -- of parameters (U, V).
39
40 Value (U, V : Real; C : Cone from gp)
41 returns Pnt from gp;
42 ---C++: inline
43
44 Value (U, V : Real; C : Cylinder from gp)
45 returns Pnt from gp;
46 ---C++: inline
47
48 Value (U, V : Real; S : Sphere from gp)
49 returns Pnt from gp;
50 ---C++: inline
51
52 Value (U,V : Real; T : Torus from gp)
53 returns Pnt from gp;
54 ---C++: inline
55
56 DN (U, V : Real; Pl : Pln from gp; Nu, Nv : Integer)
57 returns Vec from gp;
58 ---Purpose: For elementary surfaces from the gp package (planes,
59 -- cones, cylinders, spheres and tori), computes the
60 -- derivative vector of order Nu and Nv in the u and v
61 -- parametric directions respectively, at the point of
62 -- parameters (U, V).
63
64 DN (U, V : Real; C : Cone from gp; Nu, Nv : Integer)
65 returns Vec from gp;
66 ---C++: inline
67
68 DN (U, V : Real; C : Cylinder from gp; Nu, Nv : Integer)
69 returns Vec from gp;
70 ---C++: inline
71
72 DN (U, V : Real; S : Sphere from gp; Nu, Nv : Integer)
73 returns Vec from gp;
74 ---C++: inline
75
76 DN (U, V : Real; T : Torus from gp; Nu, Nv : Integer)
77 returns Vec from gp;
78 ---C++: inline
79
80 D0 (U, V : Real; Pl : Pln from gp; P : out Pnt from gp);
81 ---Purpose: For elementary surfaces from the gp package (planes,
82 -- cones, cylinders, spheres and tori), computes the point P
83 -- of parameters (U, V).inline
84
85 D0 (U, V : Real; C : Cone from gp; P : out Pnt from gp);
86 ---C++: inline
87
88 D0 (U, V : Real; C : Cylinder from gp; P : out Pnt from gp);
89 ---C++: inline
90
91 D0 (U, V : Real; S : Sphere from gp; P : out Pnt from gp);
92 ---C++: inline
93
94 D0 (U, V : Real; T : Torus from gp; P : out Pnt from gp);
95 ---C++: inline
96
97 D1 (U, V : Real; Pl : Pln from gp; P : out Pnt from gp;
98 Vu, Vv : out Vec from gp);
99 ---Purpose:
100 -- For elementary surfaces from the gp package (planes,
101 -- cones, cylinders, spheres and tori), computes:
102 -- - the point P of parameters (U, V), and
103 -- - the first derivative vectors Vu and Vv at this point in
104 -- the u and v parametric directions respectively.
105
106 D1 (U, V : Real; C : Cone from gp; P : out Pnt from gp;
107 Vu, Vv : out Vec from gp);
108 ---C++: inline
109
110 D1 (U, V : Real; C : Cylinder from gp; P : out Pnt from gp;
111 Vu, Vv : out Vec from gp);
112 ---C++: inline
113
114 D1 (U, V : Real; S : Sphere from gp; P : out Pnt from gp;
115 Vu, Vv : out Vec from gp);
116 ---C++: inline
117
118 D1 (U, V : Real; T : Torus from gp; P : out Pnt from gp;
119 Vu, Vv : out Vec from gp);
120 ---C++: inline
121
122 D2 (U, V : Real; C : Cone from gp; P : out Pnt from gp;
123 Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
124 ---Purpose:
125 -- For elementary surfaces from the gp package (cones,
126 -- cylinders, spheres and tori), computes:
127 -- - the point P of parameters (U, V), and
128 -- - the first derivative vectors Vu and Vv at this point in
129 -- the u and v parametric directions respectively, and
130 -- - the second derivative vectors Vuu, Vvv and Vuv at this point.
131
132 D2 (U, V : Real; C : Cylinder from gp; P : out Pnt from gp;
133 Vu,Vv,Vuu,Vvv,Vuv : out Vec from gp);
134 ---C++: inline
135
136 D2 (U, V : Real; S : Sphere from gp; P : out Pnt from gp;
137 Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
138 ---C++: inline
139
140 D2 (U, V : Real; T : Torus from gp; P : out Pnt from gp;
141 Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
142 ---C++: inline
143
144 D3 (U, V : Real; C : Cone from gp; P : out Pnt from gp;
145 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
146 ---Purpose:
147 -- For elementary surfaces from the gp package (cones,
148 -- cylinders, spheres and tori), computes:
149 -- - the point P of parameters (U,V), and
150 -- - the first derivative vectors Vu and Vv at this point in
151 -- the u and v parametric directions respectively, and
152 -- - the second derivative vectors Vuu, Vvv and Vuv at
153 -- this point, and
154 -- - the third derivative vectors Vuuu, Vvvv, Vuuv and
155 -- Vuvv at this point.
156
157 D3 (U, V : Real; C : Cylinder from gp; P : out Pnt from gp;
158 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
159 ---C++: inline
160
161 D3 (U, V : Real; S : Sphere from gp; P : out Pnt from gp;
162 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
163 ---C++: inline
164
165 D3 (U, V : Real; T : Torus from gp; P : out Pnt from gp;
166 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
167 ---C++: inline
168
169
170
171 --- Purpose : Surface evaluation
172 -- The following functions compute the point and the
173 -- derivatives on elementary surfaces defined with their
174 -- geometric characterisitics.
175 -- You don't need to create the surface to use these functions.
176 -- These functions are called by the previous ones.
177 --- Example :
178 -- A cylinder is defined with its position and its radius.
179
180
181
182 PlaneValue (U, V : Real; Pos : Ax3 from gp)
183 returns Pnt from gp;
184
185 CylinderValue (U, V : Real; Pos : Ax3 from gp; Radius : Real)
186 returns Pnt from gp;
187
188 ConeValue (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real)
189 returns Pnt from gp;
190
191 SphereValue (U, V : Real; Pos : Ax3 from gp; Radius : Real)
192 returns Pnt from gp;
193
194 TorusValue (U, V : Real; Pos : Ax3 from gp; MajorRadius, MinorRadius : Real)
195 returns Pnt from gp;
196
197 PlaneDN (U, V : Real; Pos : Ax3 from gp; Nu, Nv : Integer)
198 returns Vec from gp;
199
200 CylinderDN (U, V : Real; Pos: Ax3 from gp; Radius : Real; Nu, Nv : Integer)
201 returns Vec from gp;
202
203 ConeDN (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real;
204 Nu, Nv : Integer)
205 returns Vec from gp;
206
207 SphereDN (U, V : Real; Pos: Ax3 from gp; Radius : Real; Nu, Nv : Integer)
208 returns Vec from gp;
209
210 TorusDN (U, V : Real; Pos: Ax3 from gp; MajorRadius, MinorRadius : Real;
211 Nu, Nv : Integer)
212 returns Vec from gp;
213
214 PlaneD0 (U, V : Real; Pos : Ax3 from gp; P : out Pnt from gp);
215
216 ConeD0 (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real;
217 P : out Pnt from gp);
218
219 CylinderD0 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
220 P : out Pnt from gp);
221
222 SphereD0 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
223 P : out Pnt from gp);
224
225 TorusD0 (U, V : Real; Pos : Ax3 from gp; MajorRadius, MinorRadius : Real;
226 P : out Pnt from gp);
227
228 PlaneD1 (U, V : Real; Pos : Ax3 from gp; P : out Pnt from gp;
229 Vu, Vv : out Vec from gp);
230
231 ConeD1 (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real;
232 P : out Pnt from gp; Vu, Vv : out Vec from gp);
233
234 CylinderD1 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
235 P : out Pnt from gp; Vu, Vv : out Vec from gp);
236
237 SphereD1 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
238 P : out Pnt from gp; Vu, Vv : out Vec from gp);
239
240 TorusD1 (U, V : Real; Pos : Ax3 from gp; MajorRadius, MinorRadius : Real;
241 P : out Pnt from gp; Vu, Vv : out Vec from gp);
242
243 ConeD2 (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real;
244 P : out Pnt from gp; Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
245
246 CylinderD2 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
247 P : out Pnt from gp; Vu,Vv,Vuu,Vvv,Vuv : out Vec from gp);
248
249 SphereD2 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
250 P : out Pnt from gp; Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
251
252 TorusD2 (U, V : Real; Pos : Ax3 from gp; MajorRadius, MinorRadius : Real;
253 P : out Pnt from gp; Vu, Vv, Vuu, Vvv, Vuv : out Vec from gp);
254
255 ConeD3 (U, V : Real; Pos : Ax3 from gp; Radius, SAngle : Real;
256 P : out Pnt from gp;
257 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
258
259 CylinderD3 (U, V : Real; Pos : Ax3 from gp; Radius : Real;
260 P : out Pnt from gp;
261 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
262
263 SphereD3 (U, V : Real; Pos : Ax3 from gp; Radius : Real; P : out Pnt from gp;
264 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
265
266 TorusD3 (U, V : Real; Pos : Ax3 from gp; MajorRadius, MinorRadius : Real;
267 P : out Pnt from gp;
268 Vu, Vv, Vuu, Vvv, Vuv, Vuuu, Vvvv, Vuuv, Vuvv : out Vec from gp);
269
270
271
272 --- Purpose :
273 -- The following functions compute the parametric values
274 -- corresponding to a given point on a elementary surface.
275 -- The point should be on the surface.
276
277
278 Parameters (Pl : Pln from gp; P : Pnt from gp; U, V : out Real);
279 --- Purpose : parametrization
280 -- P (U, V) =
281 -- Pl.Location() + U * Pl.XDirection() + V * Pl.YDirection()
282 ---C++: inline
283
284
285 Parameters (C : Cylinder from gp; P : Pnt from gp; U, V : out Real);
286 --- Purpose : parametrization
287 -- P (U, V) = Location + V * ZDirection +
288 -- Radius * (Cos(U) * XDirection + Sin (U) * YDirection)
289 ---C++: inline
290
291
292 Parameters (C : Cone from gp; P : Pnt from gp; U, V : out Real);
293 --- Purpose : parametrization
294 -- P (U, V) = Location + V * ZDirection +
295 -- (Radius + V * Tan (SemiAngle)) *
296 -- (Cos(U) * XDirection + Sin(U) * YDirection)
297 ---C++: inline
298
299
300 Parameters (S : Sphere from gp; P : Pnt from gp; U, V : out Real);
301 --- Purpose : parametrization
302 -- P (U, V) = Location +
303 -- Radius * Cos (V) * (Cos (U) * XDirection + Sin (U) * YDirection) +
304 -- Radius * Sin (V) * ZDirection
305 ---C++: inline
306
307
308 Parameters (T : Torus from gp; P : Pnt from gp; U, V : out Real);
309 --- Purpose : parametrization
310 -- P (U, V) = Location +
311 -- (MajorRadius + MinorRadius * Cos(U)) *
312 -- (Cos(V) * XDirection - Sin(V) * YDirection) +
313 -- MinorRadius * Sin(U) * ZDirection
314 ---C++: inline
315
316
317 PlaneParameters (Pos: Ax3 from gp; P: Pnt from gp; U, V: out Real);
318 --- Purpose : parametrization
319 -- P (U, V) =
320 -- Pl.Location() + U * Pl.XDirection() + V * Pl.YDirection()
321
322
323 CylinderParameters (Pos: Ax3 from gp; Radius : Real; P: Pnt from gp;
324 U, V: out Real);
325 --- Purpose : parametrization
326 -- P (U, V) = Location + V * ZDirection +
327 -- Radius * (Cos(U) * XDirection + Sin (U) * YDirection)
328
329
330 ConeParameters (Pos: Ax3 from gp; Radius, SAngle: Real; P: Pnt from gp;
331 U, V: out Real);
332 --- Purpose : parametrization
333 -- P (U, V) = Location + V * ZDirection +
334 -- (Radius + V * Tan (SemiAngle)) *
335 -- (Cos(U) * XDirection + Sin(U) * YDirection)
336
337
338 SphereParameters (Pos: Ax3 from gp; Radius: Real; P: Pnt from gp;
339 U, V: out Real);
340 --- Purpose : parametrization
341 -- P (U, V) = Location +
342 -- Radius * Cos (V) * (Cos (U) * XDirection + Sin (U) * YDirection) +
343 -- Radius * Sin (V) * ZDirection
344
345
346 TorusParameters (Pos: Ax3 from gp; MajorRadius, MinorRadius: Real;
347 P : Pnt from gp; U, V : out Real);
348 --- Purpose : parametrization
349 -- P (U, V) = Location +
350 -- (MajorRadius + MinorRadius * Cos(U)) *
351 -- (Cos(V) * XDirection - Sin(V) * YDirection) +
352 -- MinorRadius * Sin(U) * ZDirection
353
354
355 PlaneUIso (Pos: Ax3 from gp; U : Real)
356 --- Purpose : compute the U Isoparametric gp_Lin of the plane.
357 returns Lin from gp;
358
359
360 CylinderUIso (Pos: Ax3 from gp; Radius, U : Real)
361 --- Purpose : compute the U Isoparametric gp_Lin of the cylinder.
362 returns Lin from gp;
363
364
365 ConeUIso (Pos: Ax3 from gp; Radius, SAngle, U: Real)
366 --- Purpose : compute the U Isoparametric gp_Lin of the cone.
367 returns Lin from gp;
368
369
370 SphereUIso (Pos: Ax3 from gp; Radius, U : Real)
371 --- Purpose : compute the U Isoparametric gp_Circ of the sphere,
372 -- (the meridian is not trimmed).
373 returns Circ from gp;
374
375
376 TorusUIso (Pos: Ax3 from gp; MajorRadius, MinorRadius, U: Real)
377 --- Purpose : compute the U Isoparametric gp_Circ of the torus.
378 returns Circ from gp;
379
380
381 PlaneVIso (Pos: Ax3 from gp; V : Real)
382 --- Purpose : compute the V Isoparametric gp_Lin of the plane.
383 returns Lin from gp;
384
385
386 CylinderVIso (Pos: Ax3 from gp; Radius, V : Real)
387 --- Purpose : compute the V Isoparametric gp_Circ of the cylinder.
388 returns Circ from gp;
389
390
391 ConeVIso (Pos: Ax3 from gp; Radius, SAngle, V : Real)
392 --- Purpose : compute the V Isoparametric gp_Circ of the cone.
393 returns Circ from gp;
394
395
396 SphereVIso (Pos: Ax3 from gp; Radius, V : Real)
397 --- Purpose : compute the V Isoparametric gp_Circ of the sphere,
398 -- (the meridian is not trimmed).
399 returns Circ from gp;
400
401
402 TorusVIso (Pos: Ax3 from gp; MajorRadius, MinorRadius, V : Real)
403 --- Purpose : compute the V Isoparametric gp_Circ of the torus.
404 returns Circ from gp;
405
406
407end ElSLib;
408