0024624: Lost word in license statement in source files
[occt.git] / src / BRepBlend / BRepBlend_SurfRstLineBuilder.cdl
1 -- Created on: 1997-01-23
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 SurfRstLineBuilder from BRepBlend 
18
19       ---Purpose: This  class processes data  resulting  from  
20       --          Blend_CSWalking  taking  in consideration the Surface
21       --          supporting  the curve to detect the breakpoint.
22       --          
23       --          The criteria of  distribution  of  points on  the  line are  detailed 
24       --          because  it  is  to  be  used  in  the  calculatuon of values approached
25       --          by an approximation of functions continued  basing on
26       --          Blend_SurfRstFunction.
27       --          
28       --          Thus this pseudo path necessitates 3 criteria of regrouping :
29       --           
30       --          1) exit of the domain of  the curve 
31       --          
32       --          2) exit of the domain of  the  surface  
33       --          
34       --          3)  stall as there  is a solution to  the problem
35       --          surf/surf  within  the  domain of  the surface
36       --          of  support  of  the   restriction.
37
38 uses Point            from Blend,
39      Status           from Blend,
40      SurfRstFunction  from Blend,
41      FuncInv          from Blend,
42      SurfPointFuncInv from Blend,
43      SurfCurvFuncInv  from Blend,
44      Vector           from math,
45      Matrix           from math,
46      State            from TopAbs,
47      Pnt              from gp,
48      Pnt2d            from gp,
49      Vec              from gp,
50      Vec2d            from gp,
51      HArray1OfReal    from TColStd,
52      Transition       from IntSurf,
53      HVertex          from Adaptor3d,
54      HSurface         from Adaptor3d,
55      HCurve2d         from Adaptor2d,
56      TopolTool        from Adaptor3d,
57      Line             from BRepBlend,
58      Extremity        from BRepBlend
59
60 is
61     
62     Create(Surf1   : HSurface  from Adaptor3d;
63            Domain1 : TopolTool from Adaptor3d;
64            Surf2   : HSurface  from Adaptor3d; 
65            Rst     : HCurve2d  from Adaptor2d;
66            Domain2 : TopolTool from Adaptor3d)
67     returns SurfRstLineBuilder from BRepBlend;
68
69     Perform(me         : in out; 
70             Func       : in out SurfRstFunction from Blend;
71             Finv       : in out FuncInv from Blend;
72             FinvP      : in out SurfPointFuncInv from Blend;
73             FinvC      : in out SurfCurvFuncInv from Blend;
74             Pdep       : Real from Standard;
75             Pmax       : Real from Standard;
76             MaxStep    : Real from Standard;
77             TolGuide   : Real from Standard;
78             Soldep     : Vector from math;
79             Tolesp     : Real from Standard;
80             Fleche     : Real from Standard;
81             Appro      : Boolean from Standard = Standard_False)
82     is static;
83
84     PerformFirstSection(me     : in out; 
85                         Func   : in out SurfRstFunction from Blend;
86                         Finv   : in out FuncInv from Blend;
87                         FinvP  : in out SurfPointFuncInv from Blend;
88                         FinvC  : in out SurfCurvFuncInv from Blend;
89                         Pdep   : Real from Standard;
90                         Pmax   : Real from Standard;
91                         Soldep : Vector from math;
92                         Tolesp : Real from Standard; 
93                         TolGuide  :  Real  from  Standard;
94                         RecRst : Boolean from Standard;
95                         RecP   : Boolean from Standard;
96                         RecS   : Boolean from Standard;
97                         Psol   : out Real from Standard;
98                         ParSol : out Vector from math)
99     returns Boolean from Standard
100     is static;
101
102     Complete(me    : in out;
103              Func  : in out SurfRstFunction from Blend;
104              Finv  : in out FuncInv from Blend;
105              FinvP : in out SurfPointFuncInv from Blend;
106              FinvC : in out SurfCurvFuncInv from Blend;
107              Pmin  : Real from Standard)
108                         
109     returns Boolean from Standard
110     is static;
111
112     InternalPerform (me    : in out;
113                      Func  : in out SurfRstFunction from Blend;
114                      Finv  : in out FuncInv from Blend;
115                      FinvP : in out SurfPointFuncInv from Blend;
116                      FinvC : in out SurfCurvFuncInv from Blend;
117                      Bound : Real from Standard)
118     is static private;
119  
120     ArcToRecadre(me :  in  out; 
121                  Sol  :  Vector  from math; 
122                  PrevIndex  :  Integer; 
123                  pt2d,  lastpt2d  :  out  Pnt2d  from  gp; 
124                  ponarc  :  out  Real) 
125     returns  Integer;     
126                                   
127     Recadre(me       : in out; 
128             FinvC    : in out SurfCurvFuncInv from Blend;
129             Solinv   : out Vector from math;
130             Arc      : out HCurve2d from Adaptor2d;
131             IsVtx    : out Boolean from Standard;
132             Vtx      : out HVertex from Adaptor3d)
133     returns Boolean from Standard
134     is static private;
135
136     Recadre(me       : in out; 
137             Func     : in out SurfRstFunction from Blend;
138             Finv     : in out FuncInv from Blend;
139             Solinv   : out Vector from math;
140             IsVtx    : out Boolean from Standard;
141             Vtx      : out HVertex from Adaptor3d)
142     returns Boolean from Standard
143     is static private;
144
145     Recadre(me       : in out; 
146             FinvP    : in out SurfPointFuncInv from Blend;
147             Solinv   : out Vector from math;
148             IsVtx    : out Boolean from Standard;
149             Vtx      : out HVertex from Adaptor3d)
150     returns Boolean from Standard
151     is static private;
152
153     IsDone(me)
154     returns Boolean from Standard
155     ---C++: inline
156     is static;
157
158     Line(me)
159     returns Line from BRepBlend
160     ---C++: inline
161     ---C++: return const&
162     is static;
163
164     DecrochStart(me)
165     returns Boolean from Standard
166     ---C++: inline
167     is static;
168         
169     DecrochEnd(me)
170     returns Boolean from Standard
171     ---C++: inline
172     is static;
173         
174     Transition(me         : in out; 
175                OnFirst : Boolean from Standard;
176                Arc        : HCurve2d from Adaptor2d; 
177                Param      : Real from Standard;
178                TLine,TArc : out Transition from IntSurf)
179     is static private;
180
181     MakeExtremity(me      : in out; 
182                   Extrem  : in out Extremity from BRepBlend;
183                   OnFirst : Boolean from Standard;
184                   Arc     : HCurve2d from Adaptor2d;
185                   Param   : Real from Standard;
186                   IsVtx   : Boolean from Standard;
187                   Vtx     : HVertex from Adaptor3d)
188     is static private;
189
190     CheckDeflectionOnSurf(me       : in out; 
191                           CurPoint : Point from Blend)
192     returns Status from Blend
193     is static private;
194
195     CheckDeflectionOnRst(me       : in out; 
196                          CurPoint : Point from Blend)
197     returns Status from Blend
198     is static private;
199
200     TestArret(me             : in out; 
201               Func           : in out SurfRstFunction from Blend;
202               TestDeflection : Boolean from Standard;
203               State          : Status from Blend)
204     returns Status from Blend
205     is static private;
206
207     CheckInside(me      : in out; 
208                 Func    : in out SurfRstFunction from Blend;
209                 SituOnC : out State from TopAbs;
210                 SituOnS : out State from TopAbs;
211                 Decroch : out Boolean from Standard)
212     returns Boolean from Standard
213     is static private;
214
215 fields
216
217     done         : Boolean    from Standard;
218     line         : Line       from BRepBlend;
219     sol          : Vector     from math;
220     surf1        : HSurface   from Adaptor3d;
221     domain1      : TopolTool  from Adaptor3d;
222     surf2        : HSurface   from Adaptor3d;
223     rst          : HCurve2d   from Adaptor2d;
224     domain2      : TopolTool  from Adaptor3d;
225                               
226     tolesp       : Real       from Standard;
227     tolgui       : Real       from Standard;
228     pasmax       : Real       from Standard;
229     fleche       : Real       from Standard;
230     param        : Real       from Standard;
231     previousP    : Point      from Blend;
232     rebrou       : Boolean    from Standard;
233     iscomplete   : Boolean    from Standard;
234     comptra      : Boolean    from Standard;
235     sens         : Real       from Standard;
236     decrochdeb   : Boolean    from Standard;
237     decrochfin   : Boolean    from Standard;
238
239 end SurfRstLineBuilder from BRepBlend;