0022627: Change OCCT memory management defaults
[occt.git] / src / GeomPlate / GeomPlate_Surface.cdl
CommitLineData
7fd59977 1-- File: GeomPlate_Surface.cdl
2-- Created: Thu Nov 21 13:47:59 1996
3-- Author: Joelle CHAUVET
4-- <jct@sgi38>
5-- Modified: Wed Mar 5 09:45:42 1997
6-- by: Joelle CHAUVET
7-- G1134 : new methods RealBounds and Constraints
8---Copyright: Matra Datavision 1996
9
10class Surface from GeomPlate inherits Surface from Geom
11
12 ---Purpose:
13 -- Describes the characteristics of plate surface objects
14 -- returned by BuildPlateSurface::Surface. These can be
15 -- used to verify the quality of the resulting surface before
16 -- approximating it to a Geom_BSpline surface generated
17 -- by MakeApprox. This proves necessary in cases where
18 -- you want to use the resulting surface as the support for
19 -- a shape. The algorithmically generated surface cannot
20 -- fill this function as is, and as a result must be converted first.
21
22uses Pnt from gp,
23 Vec from gp,
24 Trsf from gp,
25 GTrsf2d from gp,
26 Shape from GeomAbs,
27 Curve from Geom,
28 Surface from Geom,
29 Plate from Plate,
30 Array2OfPnt2d from TColgp,
31 Array2OfPnt from TColgp,
32 SequenceOfXY from TColgp
33
34raises RangeError from Standard,
35 NoSuchObject from Standard,
36 UndefinedDerivative from Geom,
37 UndefinedValue from Geom
38
39is
40
41
42
43 Create ( Surfinit : Surface from Geom; Surfinter : Plate from Plate)
44 returns mutable Surface from GeomPlate ;
45
46 UReverse (me : mutable)
47 ---Purpose :
48 -- Reverses the U direction of parametrization of <me>.
49 -- The bounds of the surface are not modified.
50 ;
51
52
53
54
55 UReversedParameter (me; U : Real) returns Real
56 ---Purpose: Return the parameter on the Ureversed surface for
57 -- the point of parameter U on <me>.
58 --
59 -- me->UReversed()->Value(me->UReversedParameter(U),V)
60 --
61 -- is the same point as
62 --
63 -- me->Value(U,V)
64 ;
65
66 VReverse (me : mutable)
67 ---Purpose :
68 -- Reverses the V direction of parametrization of <me>.
69 -- The bounds of the surface are not modified.
70 ;
71
72
73 VReversedParameter (me; V : Real) returns Real
74 ---Purpose: Return the parameter on the Vreversed surface for
75 -- the point of parameter V on <me>.
76 --
77 -- me->VReversed()->Value(U,me->VReversedParameter(V))
78 --
79 -- is the same point as
80 --
81 -- me->Value(U,V)
82 ;
83
84 TransformParameters(me; U,V : in out Real; T : Trsf from gp)
85 ---Purpose: Computes the parameters on the transformed surface for
86 -- the transform of the point of parameters U,V on <me>.
87 --
88 -- me->Transformed(T)->Value(U',V')
89 --
90 -- is the same point as
91 --
92 -- me->Value(U,V).Transformed(T)
93 --
94 -- Where U',V' are the new values of U,V after calling
95 --
96 -- me->TranformParameters(U,V,T)
97 --
98 -- This methods does not change <U> and <V>
99 --
100 -- It can be redefined. For example on the Plane,
101 -- Cylinder, Cone, Revolved and Extruded surfaces.
102 is redefined;
103
104 ParametricTransformation(me; T : Trsf from gp) returns GTrsf2d from gp
105 ---Purpose: Returns a 2d transformation used to find the new
106 -- parameters of a point on the transformed surface.
107 --
108 -- me->Transformed(T)->Value(U',V')
109 --
110 -- is the same point as
111 --
112 -- me->Value(U,V).Transformed(T)
113 --
114 -- Where U',V' are obtained by transforming U,V with
115 -- th 2d transformation returned by
116 --
117 -- me->ParametricTransformation(T)
118 --
119 -- This methods returns an identity transformation
120 --
121 -- It can be redefined. For example on the Plane,
122 -- Cylinder, Cone, Revolved and Extruded surfaces.
123 --
124 is redefined;
125
126 Bounds(me; U1, U2, V1, V2 : out Real)
127 -- To get the parametric bounds of the surface.
128 -- Returned values can be RealFirst or RealLast if the surface is
129 -- infinite.
130 ;
131
132 IsUClosed (me) returns Boolean
133 ---Purpose :
134 -- Is the surface closed in the parametric direction U ?
135 -- Returns True if for each parameter V the distance
136 -- between the point P (UFirst, V) and P (ULast, V) is
137 -- lower or equal to Resolution from gp. UFirst and ULast
138 -- are the parametric bounds in the U direction.
139 ;
140
141 IsVClosed (me) returns Boolean
142 ---Purpose :
143 -- Is the surface closed in the parametric direction V ?
144 -- Returns True if for each parameter U the distance
145 -- between the point P (U, VFirst) and P (U, VLast) is
146 -- lower or equal to Resolution from gp. VFirst and VLast
147 -- are the parametric bounds in the V direction.
148 ;
149
150 IsUPeriodic (me) returns Boolean
151 ---Purpose :
152 -- Is the parametrization of a surface periodic in the
153 -- direction U ?
154 -- It is possible only if the surface is closed in this
155 -- parametric direction and if the following relation is
156 -- satisfied :
157 -- for each parameter V the distance between the point
158 -- P (U, V) and the point P (U + T, V) is lower or equal
159 -- to Resolution from package gp. T is the parametric period
160 -- and must be a constant.
161 ;
162
163 UPeriod (me) returns Real from Standard
164 ---Purpose: returns the Uperiod.
165 raises
166 NoSuchObject from Standard
167 ---Purpose: raises if the surface is not uperiodic.
168 is redefined;
169
170 IsVPeriodic (me) returns Boolean
171 ---Purpose :
172 -- Is the parametrization of a surface periodic in the
173 -- direction U ?
174 -- It is possible only if the surface is closed in this
175 -- parametric direction and if the following relation is
176 -- satisfied :
177 -- for each parameter V the distance between the point
178 -- P (U, V) and the point P (U + T, V) is lower or equal
179 -- to Resolution from package gp. T is the parametric period
180 -- and must be a constant.
181 ;
182
183 VPeriod (me) returns Real from Standard
184 ---Purpose: returns the Vperiod.
185 raises
186 NoSuchObject from Standard
187 ---Purpose: raises if the surface is not vperiodic.
188 is redefined;
189
190 UIso (me; U : Real) returns mutable Curve
191 ---Purpose : Computes the U isoparametric curve.
192 ;
193
194 VIso (me; V : Real) returns mutable Curve
195 ---Purpose : Computes the V isoparametric curve.
196 ;
197
198 Continuity (me) returns Shape from GeomAbs
199 ---Purpose :
200 -- Global Continuity of the surface in direction U and V :
201 -- C0 : only geometric continuity,
202 -- C1 : continuity of the first derivative all along the surface,
203 -- C2 : continuity of the second derivative all along the surface,
204 -- C3 : continuity of the third derivative all along the surface,
205 -- G1 : tangency continuity all along the surface,
206 -- G2 : curvature continuity all along the surface,
207 -- CN : the order of continuity is infinite.
208 --- Example :
209 -- If the surface is C1 in the V parametric direction and C2
210 -- in the U parametric direction Shape = C1.
211 ;
212
213 IsCNu (me; N : Integer) returns Boolean
214 ---Purpose :
215 --- Returns the order of continuity of the surface in the
216 -- U parametric direction.
217 raises RangeError
218 ---Purpose : Raised if N < 0.
219 ;
220
221 IsCNv (me; N : Integer) returns Boolean
222 ---Purpose :
223 --- Returns the order of continuity of the surface in the
224 -- V parametric direction.
225 raises RangeError
226 ---Purpose : Raised if N < 0.
227 ;
228
229 D0 (me; U, V : Real; P : out Pnt)
230 ---Purpose :
231 -- Computes the point of parameter U,V on the surface.
232 raises UndefinedValue
233 ---Purpose :
234 -- Raised only for an "OffsetSurface" if it is not possible to
235 -- compute the current point.
236 ;
237
238 D1 (me; U, V : Real; P : out Pnt; D1U, D1V : out Vec)
239 ---Purpose :
240 -- Computes the point P and the first derivatives in the
241 -- directions U and V at this point.
242 raises UndefinedDerivative
243 ---Purpose : Raised if the continuity of the surface is not C1.
244 ;
245
246 D2 (me; U, V : Real; P : out Pnt; D1U, D1V, D2U, D2V, D2UV : out Vec)
247 ---Purpose :
248 -- Computes the point P, the first and the second derivatives in
249 -- the directions U and V at this point.
250 raises UndefinedDerivative
251 ---Purpose : Raised if the continuity of the surface is not C2.
252 ;
253
254 D3 (me; U, V : Real; P : out Pnt;
255 D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV :out Vec)
256 ---Purpose :
257 -- Computes the point P, the first,the second and the third
258 -- derivatives in the directions U and V at this point.
259 raises UndefinedDerivative
260 ---Purpose : Raised if the continuity of the surface is not C2.
261 ;
262
263 DN (me; U, V : Real; Nu, Nv : Integer) returns Vec
264 ---Purpose ;
265 -- Computes the derivative of order Nu in the direction U and Nv
266 -- in the direction V at the point P(U, V).
267 raises UndefinedDerivative,
268 ---Purpose :
269 -- Raised if the continuity of the surface is not CNu in the U
270 -- direction or not CNv in the V direction.
271 RangeError
272 ---Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
273 ;
274
275 Copy (me) returns mutable like me;
276
277 Transform (me : mutable; T : Trsf) ;
278 ---Purpose :
279 -- Transformation of a geometric object. This tansformation
280 -- can be a translation, a rotation, a symmetry, a scaling
281 -- or a complex transformation obtained by combination of
282 -- the previous elementaries transformations.
283 -- (see class Transformation of the package Geom).
284
285 CallSurfinit (me) returns Surface from Geom;
286
287 SetBounds (me : mutable ; Umin,Umax,Vmin,Vmax : in Real from Standard );
288
289 RealBounds(me; U1, U2, V1, V2 : out Real);
290 -- To get the real parametric bounds of the surface.
291
292 Constraints(me; Seq : out SequenceOfXY);
293 -- To get the 2d constraints used by Plate
294
295
296fields
297 mySurfinter : Plate from Plate;
298 mySurfinit : Surface from Geom;
299 myUmin,myUmax,myVmin,myVmax : Real from Standard;
300
301end;