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
6 -- This file is part of Open CASCADE Technology software library.
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class Circ2d2TanOnIter from Geom2dGcc
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.
27 -- - The parameter for each tangency argument which
31 -- inherits Entity from Standard
36 QualifiedCirc from GccEnt,
37 QualifiedLin from GccEnt,
39 Curve from Geom2dAdaptor,
40 CurveTool from Geom2dGcc,
43 raises NotDone from StdFail
47 -- On a 2d line ..........................................................
49 Create(Qualified1 : QualifiedCirc ;
50 Qualified2 : QCurve from Geom2dGcc;
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.
62 Create(Qualified1 : QualifiedLin ;
63 Qualified2 : QCurve from Geom2dGcc;
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.
75 Create(Qualified1 : QCurve from Geom2dGcc;
76 Qualified2 : QCurve from Geom2dGcc;
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.
89 Create(Qualified1 : QCurve from Geom2dGcc;
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.
102 -- -- On a 2d Circle .....................................................
104 Create(Qualified1 : QualifiedCirc ;
105 Qualified2 : QCurve from Geom2dGcc;
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.
117 Create(Qualified1 : QualifiedLin ;
118 Qualified2 : QCurve from Geom2dGcc;
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.
130 Create(Qualified1 : QCurve from Geom2dGcc;
131 Qualified2 : QCurve from Geom2dGcc;
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.
144 Create(Qualified1 : QCurve from Geom2dGcc;
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.
156 -- -- On a curve .....................................................
158 Create(Qualified1 : QualifiedCirc ;
159 Qualified2 : QCurve from Geom2dGcc;
160 OnCurv : Curve from Geom2dAdaptor;
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.
172 Create(Qualified1 : QualifiedLin ;
173 Qualified2 : QCurve from Geom2dGcc;
174 OnCurve : Curve from Geom2dAdaptor;
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.
186 Create(Qualified1 : QCurve from Geom2dGcc;
188 OnCurve : Curve from Geom2dAdaptor;
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.
199 Create(Qualified1 : QCurve from Geom2dGcc;
200 Qualified2 : QCurve from Geom2dGcc;
201 OnCurve : Curve from Geom2dAdaptor;
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.
214 -- -- ....................................................................
216 IsDone(me) returns Boolean
218 ---Purpose: This method returns True if the construction
219 -- algorithm succeeded.
221 ThisSolution(me) returns Circ2d
222 ---Purpose: Returns the solution.
223 raises NotDone from StdFail
225 ---Purpose: It raises NotDone if the construction algorithm
229 Qualif1 : out Position from GccEnt;
230 Qualif2 : out Position from GccEnt)
231 raises NotDone from StdFail
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).
240 ParSol,ParArg : out Real ;
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
250 ---Purpose: It raises NotDone if the construction algorithm
254 ParSol,ParArg : out Real ;
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
264 ---Purpose: It raises NotDone if the construction algorithm
270 ---Purpose: Returns information about the center (on the curv) of the
271 -- result and the third argument.
272 raises NotDone from StdFail
274 ---Purpose: It raises NotDone if the construction algorithm
277 IsTheSame1(me) returns Boolean
278 -- Returns True if the solution is equal to the first argument.
279 raises NotDone from StdFail
281 ---Purpose: It raises NotDone if the construction algorithm
284 IsTheSame2(me) returns Boolean
285 -- Returns True if the solution is equal to the second argument.
286 raises NotDone from StdFail
288 ---Purpose: It raises NotDone if the construction algorithm
294 ---Purpose: True if the algorithm succeeded.
296 cirsol : Circ2d from gp;
299 qualifier1 : Position from GccEnt;
300 -- The qualifiers of the first argument.
302 qualifier2 : Position from GccEnt;
303 -- The qualifiers of the first argument.
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.
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.
316 ---Purpose: The tangency point between the solution and the first
317 -- argument on the solution.
320 ---Purpose: The tangency point between the solution and the second
321 -- argument on the solution.
324 ---Purpose: The center point of the solution on the third argument.
327 ---Purpose: The parameter of the tangency point between the
328 -- solution and the first argument on the solution.
331 ---Purpose: The parameter of the tangency point between the
332 -- solution and the second argument on the solution.
335 ---Purpose: The parameter of the tangency point between the
336 -- solution and the first argument on the first argument.
339 ---Purpose: The parameter of the tangency point between the
340 -- solution and the second argument on the second argument.
343 ---Purpose: The parameter of the center point of the solution
344 -- on the second argument.
346 end Circ2d2TanOnIter;