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