0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BlendFunc / BlendFunc_ChAsym.cdl
1 -- Created on: 1998-06-02
2 -- Created by: Philippe NOUAILLE
3 -- Copyright (c) 1998-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 ChAsym from BlendFunc
18
19 inherits Function from Blend
20
21             ---Purpose: 
22
23 uses Vector           from math,
24      Matrix           from math,
25      Tensor           from BlendFunc,
26      Vec              from gp,
27      Vec2d            from gp,
28      Pnt              from gp,
29      Lin              from gp,
30      Array1OfPnt      from TColgp,
31      Array1OfVec      from TColgp,
32      Array1OfPnt2d    from TColgp,
33      Array1OfVec2d    from TColgp,
34      Array1OfReal     from TColStd,
35      Array1OfInteger  from TColStd,
36      Point            from Blend,
37      Shape            from GeomAbs,
38      HCurve           from Adaptor3d,
39      HSurface         from Adaptor3d
40 is
41
42     Create(S1, S2 : HSurface from Adaptor3d; C : HCurve from Adaptor3d)
43     returns ChAsym from BlendFunc;
44
45     NbEquations(me)
46     ---Purpose: returns the number of equations of the function.
47     returns Integer from Standard
48     is redefined static;
49
50     Set(me: in out; Param : Real from Standard);
51         
52     Set(me: in out; First, Last : Real from Standard);
53
54     GetTolerance(me; Tolerance : out Vector from math; Tol : Real from Standard);
55
56     GetBounds(me; InfBound,SupBound : out Vector from math);
57
58     IsSolution(me: in out; Sol : Vector from math; Tol : Real from Standard)
59     returns Boolean from Standard;
60
61     GetMinimalDistance(me) 
62     ---Purpose: Returns   the    minimal  Distance  beetween   two
63     --          extremitys of calculed sections.          
64     returns  Real  from  Standard; 
65
66     ComputeValues(me   : in out;
67                   X    : Vector from math;
68                   DegF : Integer from Standard;
69                   DegL : Integer from Standard)
70     ---Purpose: computes the values <F> of the derivatives for the 
71     --          variable <X> between DegF and DegL.
72     --          Returns True if the computation was done successfully, 
73     --          False otherwise.
74     returns Boolean from Standard
75     is static;
76     
77     Value(me: in out; X : Vector; F : out Vector)
78     ---Purpose: computes the values <F> of the Functions for the 
79     --          variable <X>.
80     --          Returns True if the computation was done successfully, 
81     --          False otherwise.
82     returns Boolean from Standard
83     is redefined static;
84     
85     Derivatives(me: in out; X : Vector; D : out Matrix)
86     ---Purpose: returns the values <D> of the derivatives for the 
87     --          variable <X>.
88     --          Returns True if the computation was done successfully, 
89     --          False otherwise.
90     returns Boolean from Standard
91     is redefined static ;
92     
93     Values(me: in out; X : Vector; F : out Vector; D : out Matrix)
94     ---Purpose: returns the values <F> of the functions and the derivatives
95     --          <D> for the variable <X>.
96     --          Returns True if the computation was done successfully, 
97     --          False otherwise.
98     returns Boolean from Standard
99     is redefined static;
100     
101
102     PointOnS1(me) returns Pnt from gp;
103     ---C++: return const&
104
105     PointOnS2(me) returns Pnt from gp;
106     ---C++: return const&
107
108     IsTangencyPoint(me) returns Boolean from Standard;
109
110     TangentOnS1(me) returns Vec from gp;
111     ---C++: return const&
112
113     Tangent2dOnS1(me) returns Vec2d from gp;
114     ---C++: return const&
115
116     TangentOnS2(me) returns Vec from gp;
117     ---C++: return const&
118
119     Tangent2dOnS2(me) returns Vec2d from gp;
120     ---C++: return const&
121
122     TwistOnS1(me) 
123     returns Boolean from Standard
124     is redefined;
125
126     TwistOnS2(me) 
127     returns Boolean from Standard
128     is redefined;
129
130     Tangent(me; U1,V1,U2,V2: Real from Standard;
131                 TgFirst,TgLast,NormFirst,NormLast: out Vec from gp)
132     
133         ---Purpose: Returns the tangent vector at the section,
134         --          at the beginning and the end of the section, and
135         --          returns the normal (of the surfaces) at
136         --          these points.
137
138         ;
139
140
141 -- methodes hors template (en plus du create)
142
143     Section(me: in out; Param: Real from Standard;
144                         U1,V1,U2,V2: Real from Standard;
145                         Pdeb,Pfin: out Real from Standard;
146                         C: out Lin from gp)
147     ---Purpose: Utile pour une visu rapide et approximative de la surface.
148     is static;
149
150 --- Pour les approximations
151
152     IsRational(me) returns Boolean
153     ---Purpose: Returns  if the section is rationnal
154     is static;
155
156     GetSectionSize(me) returns Real
157     ---Purpose:  Returns the length of the maximum section
158     is static;
159     
160     GetMinimalWeight(me; Weigths  : out Array1OfReal  from TColStd)
161     ---Purpose: Compute the minimal value of weight for each poles
162     --          of all sections.
163     is static;
164
165     NbIntervals(me; S : Shape from GeomAbs) returns Integer
166     ---Purpose: Returns  the number  of  intervals for  continuity
167     --          <S>. May be one if Continuity(me) >= <S>
168     is static;
169     
170     Intervals(me; T : in out Array1OfReal from TColStd; 
171                   S : Shape from GeomAbs)
172     ---Purpose: Stores in <T> the  parameters bounding the intervals
173     --          of continuity <S>.
174     --          
175     --          The array must provide  enough room to  accomodate
176     --          for the parameters. i.e. T.Length() > NbIntervals()
177     is static;
178
179     GetShape(me: in out;
180                  NbPoles   : out Integer from Standard;
181                  NbKnots   : out Integer from Standard;
182                  Degree    : out Integer from Standard;
183                  NbPoles2d : out Integer from Standard)
184
185     is static;
186
187     GetTolerance(me; 
188                  BoundTol, SurfTol, AngleTol : Real;
189                  Tol3d : out Vector;
190                  Tol1D : out Vector )
191     ---Purpose: Returns the tolerance to reach in approximation
192     --          to respecte
193     --          BoundTol error at the Boundary
194     --          AngleTol tangent error at the Boundary
195     --          SurfTol error inside the surface.
196     is static;
197
198     Knots(me: in out; TKnots: out Array1OfReal from TColStd)
199     is static;
200
201
202     Mults(me: in out; TMults: out Array1OfInteger from TColStd)
203     is static;
204
205
206     Section(me: in out ; P: Point from Blend;
207                          Poles    : out Array1OfPnt   from TColgp;
208                          Poles2d  : out Array1OfPnt2d from TColgp;
209                          Weigths  : out Array1OfReal  from TColStd)
210     is static;
211
212
213
214     Section(me: in out ; P: Point from Blend;
215                          Poles    : out Array1OfPnt   from TColgp;
216                          DPoles   : out Array1OfVec   from TColgp;
217                          Poles2d  : out Array1OfPnt2d from TColgp;
218                          DPoles2d : out Array1OfVec2d from TColgp;
219                          Weigths  : out Array1OfReal  from TColStd;
220                          DWeigths : out Array1OfReal  from TColStd)
221     ---Purpose: Used for the first and last section 
222     returns Boolean from Standard
223     is redefined;
224
225     Section(me: in out ; P: Point from Blend;
226                          Poles     : out Array1OfPnt   from TColgp;
227                          DPoles    : out Array1OfVec   from TColgp;
228                          D2Poles   : out Array1OfVec   from TColgp;
229                          Poles2d   : out Array1OfPnt2d from TColgp;
230                          DPoles2d  : out Array1OfVec2d from TColgp;
231                          D2Poles2d : out Array1OfVec2d from TColgp;
232                          Weigths   : out Array1OfReal  from TColStd;
233                          DWeigths  : out Array1OfReal  from TColStd;
234                          D2Weigths : out Array1OfReal  from TColStd)
235     ---Purpose: Used for the first and last section 
236     returns Boolean from Standard
237     is redefined;
238
239
240     Resolution(me; 
241                IC2d       :     Integer from Standard;
242                Tol        :     Real    from Standard;
243                TolU, TolV : out Real    from Standard);
244
245     Set(me    : in out;
246         Dist1 : Real    from Standard;
247         Angle : Real    from Standard;
248         Choix : Integer from Standard)
249     ---Purpose: Sets the distances and the angle. 
250     is static;
251
252 fields
253     surf1    : HSurface from Adaptor3d;
254     surf2    : HSurface from Adaptor3d;
255     curv     : HCurve from Adaptor3d;
256     tcurv    : HCurve from Adaptor3d;
257
258     param    : Real    from Standard;    
259     dist1    : Real    from Standard;
260     angle    : Real    from Standard;
261     tgang    : Real    from Standard;
262     
263     nplan    : Vec     from gp;
264     pt1      : Pnt     from gp;
265     tsurf1   : Vec     from gp;
266     pt2      : Pnt     from gp; 
267     FX       : Vector  from math;
268     DX       : Matrix  from math;
269
270     istangent: Boolean from Standard;
271     tg1      : Vec     from gp;
272     tg12d    : Vec2d   from gp;
273     tg2      : Vec     from gp;
274     tg22d    : Vec2d   from gp;
275     
276     choix    : Integer from Standard;   
277     distmin  : Real    from Standard;
278     
279     
280 end ChAsym;