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