0024778: Convertation of the generic classes to the non-generic. Part 9
[occt.git] / src / Geom2dGcc / Geom2dGcc_Circ2d2TanOnIter.cdl
1 -- Created on: 1991-03-29
2 -- Created by: Remi GILET
3 -- Copyright (c) 1991-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 Circ2d2TanOnIter from Geom2dGcc
18
19         ---Purpose: This class implements the algorithms used to 
20         --          create 2d circles TANgent to 2 entities and 
21         --          having the center ON a curv.
22         --          The order of the tangency argument is always
23         --          QualifiedCirc, QualifiedLin, QualifiedCurv, Pnt2d. 
24         --          the arguments are :
25         --            - The two tangency arguments.
26         --            - The center line.
27         --            - The parameter for each tangency argument which 
28         --            is a curve.
29         --            - The tolerance.
30
31 -- inherits Entity from Standard
32
33 uses Pnt2d            from gp,
34      Lin2d            from gp,
35      Circ2d           from gp,  
36      QualifiedCirc    from GccEnt,
37      QualifiedLin     from GccEnt,
38      Position         from GccEnt,
39      Curve            from Geom2dAdaptor,
40      CurveTool        from Geom2dGcc,
41      QCurve           from Geom2dGcc
42      
43 raises NotDone    from StdFail
44
45 is
46
47 -- On a 2d line ..........................................................
48
49 Create(Qualified1 : QualifiedCirc     ;
50        Qualified2 : QCurve from Geom2dGcc;
51        OnLine     : Lin2d             ;
52        Param1     : Real              ;
53        Param2     : Real              ;
54        Param3     : Real              ;
55        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
56     ---Purpose: This method implements the algorithms used to 
57     --          create 2d circles TANgent to a 2d circle and a curve and 
58     --          having the center ON a 2d line.
59     --          Param2 is the initial guess on the curve QualifiedCurv.
60     --          Tolerance is used for the limit cases.
61
62 Create(Qualified1 : QualifiedLin      ;
63        Qualified2 : QCurve from Geom2dGcc;
64        OnLine     : Lin2d             ;
65        Param1     : Real              ;
66        Param2     : Real              ;
67        Param3     : Real              ;
68        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
69     ---Purpose: This method implements the algorithms used to 
70     --          create 2d circles TANgent to a 2d line and a curve and 
71     --          having the center ON a 2d line.
72     --          Param2 is the initial guess on the curve QualifiedCurv.
73     --          Tolerance is used for the limit cases.
74
75 Create(Qualified1 : QCurve from Geom2dGcc;
76        Qualified2 : QCurve from Geom2dGcc;
77        OnLine     : Lin2d             ;
78        Param1     : Real              ;
79        Param2     : Real              ;
80        Param3     : Real              ;
81        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
82     ---Purpose: This method implements the algorithms used to 
83     --          create 2d circles TANgent to two curves and 
84     --          having the center ON a 2d line.
85     --          Param1 is the initial guess on the first QualifiedCurv.
86     --          Param2 is the initial guess on the first QualifiedCurv.
87     --          Tolerance is used for the limit cases.
88
89 Create(Qualified1 : QCurve from Geom2dGcc;
90        Point2     : Pnt2d             ;
91        OnLine     : Lin2d             ;
92        Param1     : Real              ;
93        Param2     : Real              ;
94        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
95     ---Purpose: This method implements the algorithms used to 
96     --          create 2d circles TANgent to a 2d point and a curve and 
97     --          having the center ON a 2d line.
98     --          Param2 is the initial guess on the curve QualifiedCurv.
99     --          Tolerance is used for the limit cases.
100
101
102 -- -- On a 2d Circle .....................................................
103
104 Create(Qualified1 : QualifiedCirc     ;
105        Qualified2 : QCurve from Geom2dGcc;
106        OnCirc     : Circ2d            ;
107        Param1     : Real              ;
108        Param2     : Real              ;
109        Param3     : Real              ;
110        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
111     ---Purpose: This method implements the algorithms used to 
112     --          create 2d circles TANgent to a 2d circle and a curve and 
113     --          having the center ON a 2d circle.
114     --          Param2 is the initial guess on the curve QualifiedCurv.
115     --          Tolerance is used for the limit cases.
116
117 Create(Qualified1 : QualifiedLin      ;
118        Qualified2 : QCurve from Geom2dGcc;
119        OnCirc     : Circ2d            ;
120        Param1     : Real              ;
121        Param2     : Real              ;
122        Param3     : Real              ;
123        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
124     ---Purpose: This method implements the algorithms used to 
125     --          create 2d circles TANgent to a 2d line and a curve and 
126     --          having the center ON a 2d circle.
127     --          Param2 is the initial guess on the curve QualifiedCurv.
128     --          Tolerance is used for the limit cases.
129
130 Create(Qualified1 : QCurve from Geom2dGcc;
131        Qualified2 : QCurve from Geom2dGcc;
132        OnCirc     : Circ2d            ;
133        Param1     : Real              ;
134        Param2     : Real              ;
135        Param3     : Real              ;
136        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
137     ---Purpose: This method implements the algorithms used to 
138     --          create 2d circles TANgent to two curves and 
139     --          having the center ON a 2d circle.
140     --          Param1 is the initial guess on the first QualifiedCurv.
141     --          Param2 is the initial guess on the first QualifiedCurv.
142     --          Tolerance is used for the limit cases.
143
144 Create(Qualified1 : QCurve from Geom2dGcc;
145        Point2     : Pnt2d             ;
146        OnCirc     : Circ2d            ;
147        Param1     : Real              ;
148        Param2     : Real              ;
149        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
150     ---Purpose: This method implements the algorithms used to 
151     --          create 2d circles TANgent to a 2d point and a curve and 
152     --          having the center ON a 2d circle.
153     --          Param2 is the initial guess on the curve QualifiedCurv.
154     --          Tolerance is used for the limit cases.
155
156 -- -- On a curve .....................................................
157
158 Create(Qualified1 : QualifiedCirc     ;
159        Qualified2 : QCurve from Geom2dGcc;
160        OnCurv     : Curve from Geom2dAdaptor;
161        Param1     : Real              ;
162        Param2     : Real              ;
163        ParamOn    : Real              ;
164        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
165     ---Purpose: This method implements the algorithms used to 
166     --          create 2d circles TANgent to a 2d circle and a curve and 
167     --          having the center ON a 2d curve.
168     --          Param2 is the initial guess on the curve QualifiedCurv.
169     --          ParamOn is the initial guess on the center curve OnCurv.
170     --          Tolerance is used for the limit cases.
171
172 Create(Qualified1 : QualifiedLin      ;
173        Qualified2 : QCurve from Geom2dGcc;
174        OnCurve    : Curve from Geom2dAdaptor;
175        Param1     : Real              ;
176        Param2     : Real              ;
177        ParamOn    : Real              ;
178        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
179     ---Purpose: This method implements the algorithms used to 
180     --          create 2d circles TANgent to a 2d line and a curve and 
181     --          having the center ON a 2d curve.
182     --          Param2 is the initial guess on the curve QualifiedCurv.
183     --          ParamOn is the initial guess on the center curve OnCurv.
184     --          Tolerance is used for the limit cases.
185
186 Create(Qualified1 : QCurve from Geom2dGcc;
187        Point2     : Pnt2d             ;
188        OnCurve    : Curve from Geom2dAdaptor;
189        Param1     : Real              ;
190        ParamOn    : Real              ;
191        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
192     ---Purpose: This method implements the algorithms used to 
193     --          create 2d circles TANgent to a 2d Point and a curve and 
194     --          having the center ON a 2d curve.
195     --          Param1 is the initial guess on the curve QualifiedCurv.
196     --          ParamOn is the initial guess on the center curve OnCurv.
197     --          Tolerance is used for the limit cases.
198
199 Create(Qualified1 : QCurve from Geom2dGcc;
200        Qualified2 : QCurve from Geom2dGcc;
201        OnCurve    : Curve from Geom2dAdaptor;
202        Param1     : Real              ;
203        Param2     : Real              ;
204        ParamOn    : Real              ;
205        Tolerance  : Real              ) returns Circ2d2TanOnIter from Geom2dGcc ;
206     ---Purpose: This method implements the algorithms used to 
207     --          create 2d circles TANgent to two curves and 
208     --          having the center ON a 2d curve.
209     --          Param1 is the initial guess on the first curve QualifiedCurv.
210     --          Param1 is the initial guess on the second curve QualifiedCurv.
211     --          ParamOn is the initial guess on the center curve OnCurv.
212     --          Tolerance is used for the limit cases.
213
214 -- -- ....................................................................
215
216 IsDone(me) returns Boolean
217 is static;
218     ---Purpose: This method returns True if the construction 
219     --          algorithm succeeded.
220
221 ThisSolution(me) returns Circ2d 
222     ---Purpose: Returns the solution.
223 raises NotDone from StdFail
224 is static;
225     ---Purpose: It raises NotDone if the construction algorithm 
226     --          didn't succeed.
227
228 WhichQualifier(me                                 ; 
229                Qualif1  : out Position from GccEnt;
230                Qualif2  : out Position from GccEnt)
231 raises NotDone from StdFail
232 is static;
233     -- It returns the informations about the qualifiers of the tangency 
234     -- arguments concerning the solution number Index.
235     -- It returns the real qualifiers (the qualifiers given to the 
236     -- constructor method in case of enclosed, enclosing and outside 
237     -- and the qualifiers computedin case of unqualified).
238
239 Tangency1(me                       ;
240           ParSol,ParArg : out Real ;
241           PntSol        : out Pnt2d)
242     ---Purpose: Returns information about the tangency point between 
243     --          the result and the first argument.
244     --          ParSol is the intrinsic parameter of the point PntSol 
245     --          on the solution curv.
246     --          ParArg is the intrinsic parameter of the point PntSol 
247     --          on the argument curv.
248 raises NotDone from StdFail
249 is static;
250     ---Purpose: It raises NotDone if the construction algorithm 
251     --          didn't succeed.
252
253 Tangency2(me                       ;
254           ParSol,ParArg : out Real ;
255           PntSol        : out Pnt2d)
256     ---Purpose: Returns information about the tangency point between 
257     --          the result and the second argument.
258     --          ParSol is the intrinsic parameter of the point PntSol 
259     --          on the solution curv.
260     --          ParArg is the intrinsic parameter of the point PntSol 
261     --          on the argument curv.
262 raises NotDone from StdFail
263 is static;
264     ---Purpose: It raises NotDone if the construction algorithm 
265     --          didn't succeed.
266
267 CenterOn3 (me                       ;
268            ParArg        : out Real ;
269            PntSol        : out Pnt2d)
270     ---Purpose: Returns information about the center (on the curv) of the
271     --          result and the third argument.
272 raises NotDone from StdFail
273 is static;
274     ---Purpose: It raises NotDone if the construction algorithm 
275     --          didn't succeed.
276
277 IsTheSame1(me) returns Boolean
278     -- Returns True if the solution is equal to the first argument.
279 raises NotDone from StdFail
280 is static;
281     ---Purpose: It raises NotDone if the construction algorithm 
282     --          didn't succeed.
283
284 IsTheSame2(me) returns Boolean
285     -- Returns True if the solution is equal to the second argument.
286 raises NotDone from StdFail
287 is static;
288     ---Purpose: It raises NotDone if the construction algorithm 
289     --          didn't succeed.
290
291 fields
292
293     WellDone : Boolean;
294     ---Purpose: True if the algorithm succeeded.
295
296     cirsol   : Circ2d from gp;
297     -- The solutions.
298
299     qualifier1 : Position from GccEnt;
300     -- The qualifiers of the first argument.
301
302     qualifier2 : Position from GccEnt;
303     -- The qualifiers of the first argument.
304
305     TheSame1 : Boolean;
306     ---Purpose: True if the solution and the first argument are the 
307     --          same in the tolerance of Tolerance.
308     --          False in the other cases.
309
310     TheSame2 : Boolean;
311     ---Purpose: True if the solution and the second argument are the 
312     --          same in the tolerance of Tolerance.
313     --          False in the other cases.
314
315     pnttg1sol   : Pnt2d;
316     ---Purpose: The tangency point between the solution and the first 
317     --          argument on the solution.
318
319     pnttg2sol   : Pnt2d;
320     ---Purpose: The tangency point between the solution and the second 
321     --          argument on the solution.
322
323     pntcen      : Pnt2d;
324     ---Purpose: The center point of the solution on the third argument.
325
326     par1sol   : Real;
327     ---Purpose: The parameter of the tangency point between the 
328     --          solution and the first argument on the solution.
329
330     par2sol   : Real;
331     ---Purpose: The parameter of the tangency point between the 
332     --          solution and the second argument on the solution.
333
334     pararg1   : Real;
335     ---Purpose: The parameter of the tangency point between the 
336     --          solution and the first argument on the first argument.
337
338     pararg2   : Real;
339     ---Purpose: The parameter of the tangency point between the 
340     --          solution and the second argument on the second argument.
341
342     parcen3   : Real;
343     ---Purpose: The parameter of the center point of the solution 
344     --          on the second argument.
345
346 end Circ2d2TanOnIter;