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