0023024: Update headers of OCCT files
[occt.git] / src / BRepBlend / BRepBlend_RstRstEvolRad.cdl
1 -- Created on: 1997-02-06
2 -- Created by: Laurent BOURESCHE
3 -- Copyright (c) 1997-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22 class RstRstEvolRad from BRepBlend
23 inherits RstRstFunction from Blend
24
25
26 uses Vector               from math,
27      Matrix               from math,
28      Ax1                  from gp,
29      Vec                  from gp,
30      Vec2d                from gp,
31      Pnt                  from gp,
32      Pnt2d                from gp,
33      Circ                 from gp,
34      Array1OfPnt          from TColgp,
35      Array1OfVec          from TColgp,
36      Array1OfPnt2d        from TColgp,
37      Array1OfVec2d        from TColgp,
38      Array1OfReal         from TColStd,
39      Array1OfInteger      from TColStd,
40      Shape                from GeomAbs,
41      Point                from Blend,
42      SectionShape         from BlendFunc,
43      HSurface             from Adaptor3d,
44      HCurve               from Adaptor3d,
45      HCurve2d             from Adaptor2d,
46      CurveOnSurface       from Adaptor3d,
47      ParameterisationType from Convert,
48      DecrochStatus        from Blend,
49      Function             from Law 
50
51 is
52
53     Create(Surf1    : HSurface from Adaptor3d;
54            Rst1     : HCurve2d from Adaptor2d;
55            Surf2    : HSurface from Adaptor3d;
56            Rst2     : HCurve2d from Adaptor2d; 
57            CGuide   : HCurve   from Adaptor3d;
58            Evol     : Function from Law)
59     returns RstRstEvolRad from BRepBlend;
60
61     NbVariables(me)
62     ---Purpose: Returns 2.
63     returns Integer from Standard;
64
65     NbEquations(me)
66     ---Purpose: Returns 2.
67     returns Integer from Standard;
68
69     Value(me: in out; X: Vector; F: out Vector)
70     ---Purpose: computes the values <F> of the Functions for the 
71     --          variable <X>.
72     --          Returns True if the computation was done successfully, 
73     --          False otherwise.
74     returns Boolean from Standard;
75     
76     Derivatives(me: in out; X: Vector; D: out Matrix)
77     ---Purpose: returns the values <D> of the derivatives for the 
78     --          variable <X>.
79     --          Returns True if the computation was done successfully, 
80     --          False otherwise.
81     returns Boolean from Standard;
82     
83     Values(me: in out; X: Vector; F: out Vector; D: out Matrix)
84     ---Purpose: returns the values <F> of the functions and the derivatives
85     --          <D> for the variable <X>.
86     --          Returns True if the computation was done successfully, 
87     --          False otherwise.
88     returns Boolean from Standard;
89
90     Set(me      : in out; 
91         SurfRef1 : HSurface from Adaptor3d;
92         RstRef1  : HCurve2d from Adaptor2d;
93         SurfRef2 : HSurface from Adaptor3d;
94         RstRef2  : HCurve2d from Adaptor2d);
95            
96     Set(me: in out; Param: Real from Standard);
97
98     Set(me: in out; First, Last: Real from Standard);
99     ---Purpose: Sets the bounds of the parametric interval on 
100     --          the guide line.
101     --          This determines the derivatives in these values if the
102     --          function is not Cn.
103
104     GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard);
105
106     GetBounds(me; InfBound,SupBound: out Vector from math);
107
108     IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard)
109     returns Boolean from Standard;
110
111      GetMinimalDistance(me) 
112         ---Purpose: Returns   the    minimal  Distance  beetween   two
113         --          extremitys of calculed sections.          
114         returns  Real  from  Standard 
115         is redefined;
116
117 --- TheFollowing methods are called only when 
118 --  IsSolution returns Standard_True.
119
120     PointOnRst1(me)
121     ---C++: return const&
122     returns Pnt from gp;
123
124     PointOnRst2(me)
125     ---C++: return const&
126     returns Pnt from gp;
127
128     Pnt2dOnRst1(me)
129     ---Purpose: Returns U,V coordinates of the point on the surface.
130     ---C++: return const&
131     returns Pnt2d from gp;
132
133     Pnt2dOnRst2(me)
134     ---Purpose: Returns  U,V coordinates of the point  on the curve on
135     --          surface.
136     ---C++: return const&
137     returns Pnt2d from gp;
138
139     ParameterOnRst1(me)
140     ---Purpose: Returns parameter of the point on the curve.
141     returns Real from Standard;
142
143     ParameterOnRst2(me)
144     ---Purpose: Returns parameter of the point on the curve.
145     returns Real from Standard;
146
147     IsTangencyPoint(me)
148     returns Boolean from Standard;
149
150     TangentOnRst1(me)
151     ---C++: return const&
152     returns Vec from gp;
153
154     Tangent2dOnRst1(me)
155     ---C++: return const&
156     returns Vec2d from gp;
157
158     TangentOnRst2(me)
159     ---C++: return const&
160     returns Vec from gp;
161
162     Tangent2dOnRst2(me)
163     ---C++: return const&
164     returns Vec2d from gp;
165
166     Decroch(me; 
167             Sol    : Vector from math;
168             NRst1, TgRst1 : out Vec from gp;
169             NRst2, TgRst2 : out Vec from gp)
170
171     ---Purpose: Enables  implementation of a criterion  of  decrochage
172     --          specific to the function. 
173      ---Warning: Can be  called without  previous  call  of  issolution
174     --          but  the calculated  values risquent  de ne pas  avoir
175     --          grand  sens.       
176     returns DecrochStatus from Blend
177     is static;
178
179 -- methodes hors template (en plus du create)
180
181     Set(me     : in out; 
182         Choix  : Integer from Standard)
183     is static;
184
185     Set(me: in out; TypeSection: SectionShape from BlendFunc)
186     ---Purpose: Sets  the  type  of   section generation   for the
187     --          approximations. 
188     is static;
189
190     CenterCircleRst1Rst2(me;
191                          PtRst1 : Pnt      from gp;
192                          PtRst2 : Pnt      from gp;
193                          np     : Vec      from gp;
194                          Center : out Pnt  from gp;
195                          VdMed  : out Vec  from gp)                
196     ---Purpose: Gives the center of circle defined   by PtRst1, PtRst2 and
197     --          radius ray.
198     returns Boolean from Standard         
199     is static;             
200                    
201     Section(me        : in out; 
202             Param     : Real from Standard;
203             U,V       : Real from Standard;
204             Pdeb,Pfin : out Real from Standard;
205             C         : out Circ from gp)
206     is static;
207
208 -- Methods for the approximation
209 -- 
210     IsRational(me) returns Boolean
211     ---Purpose: Returns  if the section is rationnal
212     is static;
213
214     GetSectionSize(me) returns Real
215     ---Purpose:  Returns the length of the maximum section
216     is static;
217     
218     GetMinimalWeight(me; Weigths  : out Array1OfReal  from TColStd)
219     ---Purpose: Compute the minimal value of weight for each poles
220     --          of all sections.
221     is static;
222
223     NbIntervals(me; S : Shape from GeomAbs) returns Integer
224     ---Purpose: Returns  the number  of  intervals for  continuity
225     --          <S>. May be one if Continuity(me) >= <S>
226     is static;
227     
228     Intervals(me; T : in out Array1OfReal from TColStd; 
229                   S : Shape from GeomAbs)
230     ---Purpose: Stores in <T> the  parameters bounding the intervals
231     --          of continuity <S>.        
232     --          The array must provide  enough room to  accomodate
233     --          for the parameters. i.e. T.Length() > NbIntervals()
234     is static;
235
236     GetShape(me        : in out;
237              NbPoles   : out Integer from Standard;
238              NbKnots   : out Integer from Standard;
239              Degree    : out Integer from Standard;
240              NbPoles2d : out Integer from Standard)
241     is static;
242
243     GetTolerance(me; 
244                  BoundTol, SurfTol, AngleTol : Real;
245                  Tol3d : out Vector;
246                  Tol1D : out Vector )
247     ---Purpose: Returns the tolerance to reach in approximation
248     --          to respecte
249     --          BoundTol error at the Boundary
250     --          AngleTol tangent error at the Boundary
251     --          SurfTol error inside the surface.
252     is static;
253
254     Knots(me: in out; TKnots: out Array1OfReal from TColStd)
255     is static;
256
257     Mults(me: in out; TMults: out Array1OfInteger from TColStd)
258     is static;
259
260     Section(me       : in out ; 
261             P        : Point from Blend;
262             Poles    : out Array1OfPnt   from TColgp;
263             DPoles   : out Array1OfVec   from TColgp;
264             Poles2d  : out Array1OfPnt2d from TColgp;
265             DPoles2d : out Array1OfVec2d from TColgp;
266             Weigths  : out Array1OfReal  from TColStd;
267             DWeigths : out Array1OfReal  from TColStd)
268     ---Purpose: Used for the first and last section 
269     returns Boolean from Standard
270     is static;
271
272     Section(me       : in out ; 
273             P        : Point from Blend;
274             Poles    : out Array1OfPnt   from TColgp;
275             Poles2d  : out Array1OfPnt2d from TColgp;
276             Weigths  : out Array1OfReal  from TColStd)
277     is static;
278
279
280     Section(me: in out; P: Point from Blend;
281                         Poles     : out Array1OfPnt   from TColgp;
282                         DPoles    : out Array1OfVec   from TColgp;
283                         D2Poles   : out Array1OfVec   from TColgp;
284                         Poles2d   : out Array1OfPnt2d from TColgp;
285                         DPoles2d  : out Array1OfVec2d from TColgp;
286                         D2Poles2d : out Array1OfVec2d from TColgp;
287                         Weigths   : out Array1OfReal  from TColStd;
288                         DWeigths  : out Array1OfReal  from TColStd;
289                         D2Weigths : out Array1OfReal  from TColStd)
290     ---Purpose: Used for the first and last section
291     --          The method returns Standard_True if the derivatives
292     --          are computed, otherwise it returns Standard_False.
293     returns Boolean from Standard
294     is static;
295
296     Resolution(me; 
297                IC2d : Integer from Standard;
298                Tol  : Real from Standard;
299                TolU, TolV : out Real from Standard);
300
301 fields
302
303     surf1    : HSurface             from Adaptor3d;
304     surf2    : HSurface             from Adaptor3d;
305     rst1     : HCurve2d             from Adaptor2d;
306     rst2     : HCurve2d             from Adaptor2d;    
307     cons1    : CurveOnSurface       from Adaptor3d;
308     cons2    : CurveOnSurface       from Adaptor3d;    
309     guide    : HCurve               from Adaptor3d; 
310     tguide   : HCurve               from Adaptor3d; 
311     ptrst1   : Pnt                  from gp;
312     ptrst2   : Pnt                  from gp;
313     pt2drst1 : Pnt2d                from gp;
314     pt2drst2 : Pnt2d                from gp;
315     prmrst1  : Real                 from Standard;
316     prmrst2  : Real                 from Standard;    
317     istangent: Boolean              from Standard;
318     tgrst1   : Vec                  from gp;
319     tg2drst1 : Vec2d                from gp;
320     tgrst2   : Vec                  from gp;
321     tg2drst2 : Vec2d                from gp;
322
323     ray      : Real                 from Standard;
324     dray     : Real                 from Standard;
325     choix    : Integer              from Standard;
326     ptgui    : Pnt                  from gp;
327     d1gui    : Vec                  from gp;
328     d2gui    : Vec                  from gp;
329     nplan    : Vec                  from gp;
330     normtg   : Real                 from Standard;
331     theD     : Real                 from Standard;
332        
333     surfref1 : HSurface             from Adaptor3d;
334     rstref1  : HCurve2d             from Adaptor2d;
335     surfref2 : HSurface             from Adaptor3d;
336     rstref2  : HCurve2d             from Adaptor2d;
337     maxang   : Real                 from Standard;
338     minang   : Real                 from Standard;   
339     distmin  : Real                 from Standard;   
340     mySShape : SectionShape         from BlendFunc;
341     myTConv  : ParameterisationType from Convert;
342     tevol    : Function             from Law ;
343     fevol    : Function             from Law ;    
344
345 end RstRstEvolRad;
346
347
348
349
350
351
352
353
354