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 Circ2d3TanIter from Geom2dGcc
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.
28 -- inherits Entity from Standard
33 QualifiedCirc from GccEnt,
34 QualifiedLin from GccEnt,
36 Curve from Geom2dAdaptor,
37 CurveTool from Geom2dGcc,
40 raises NotDone from StdFail
44 Create(Qualified1 : QualifiedCirc from GccEnt ;
45 Qualified2 : QualifiedCirc from GccEnt ;
46 Qualified3 : QCurve from Geom2dGcc;
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.
55 Create(Qualified1 : QualifiedCirc from GccEnt ;
56 Qualified2 : QCurve from Geom2dGcc;
57 Qualified3 : QCurve from Geom2dGcc;
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.
66 Create(Qualified1 : QualifiedCirc from GccEnt ;
67 Qualified2 : QualifiedLin from GccEnt ;
68 Qualified3 : QCurve from Geom2dGcc;
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
78 Create(Qualified1 : QualifiedCirc from GccEnt ;
79 Qualified2 : QCurve from Geom2dGcc;
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
89 Create(Qualified1 : QualifiedLin from GccEnt ;
90 Qualified2 : QualifiedLin from GccEnt ;
91 Qualified3 : QCurve from Geom2dGcc;
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.
100 Create(Qualified1 : QualifiedLin from GccEnt ;
101 Qualified2 : QCurve from Geom2dGcc;
102 Qualified3 : QCurve from Geom2dGcc;
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.
111 Create(Qualified1 : QualifiedLin from GccEnt ;
112 Qualified2 : QCurve from Geom2dGcc;
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
122 Create(Qualified1 : QCurve from Geom2dGcc;
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.
131 Create(Qualified1 : QCurve from Geom2dGcc ;
132 Qualified2 : QCurve from Geom2dGcc ;
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.
141 Create(Qualified1 : QCurve from Geom2dGcc ;
142 Qualified2 : QCurve from Geom2dGcc ;
143 Qualified3 : QCurve from Geom2dGcc ;
148 returns Circ2d3TanIter from Geom2dGcc;
149 ---Purpose: This method implements the algorithms used to
150 -- create 2d circles tangent to 3 curves.
152 -- -- ....................................................................
154 IsDone(me) returns Boolean
156 ---Purpose: This method returns True if the construction
157 -- algorithm succeeded.
159 ThisSolution(me) returns Circ2d
160 ---Purpose: Returns the solution.
161 raises NotDone from StdFail
163 ---Purpose: It raises NotDone if the construction algorithm
167 Qualif1 : out Position from GccEnt;
168 Qualif2 : out Position from GccEnt;
169 Qualif3 : out Position from GccEnt)
170 raises NotDone from StdFail
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).
179 ParSol,ParArg : out Real ;
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
189 ---Purpose: It raises NotDone if the construction algorithm
193 ParSol,ParArg : out Real ;
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
203 ---Purpose: It raises NotDone if the construction algorithm
207 ParSol,ParArg : out Real ;
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
217 ---Purpose: It raises NotDone if the construction algorithm
220 IsTheSame1(me) returns Boolean
221 -- Returns True if the solution is equal to the first argument.
222 raises NotDone from StdFail
224 ---Purpose: It raises NotDone if the construction algorithm
227 IsTheSame2(me) returns Boolean
228 -- Returns True if the solution is equal to the second argument.
229 raises NotDone from StdFail
231 ---Purpose: It raises NotDone if the construction algorithm
234 IsTheSame3(me) returns Boolean
235 -- Returns True if the solution is equal to the third argument.
236 raises NotDone from StdFail
238 ---Purpose: It raises NotDone if the construction algorithm
244 ---Purpose: True if the algorithm succeeded.
247 ---Purpose: The solutions.
249 qualifier1 : Position from GccEnt;
250 -- The qualifiers of the first argument.
252 qualifier2 : Position from GccEnt;
253 -- The qualifiers of the first argument.
255 qualifier3 : Position from GccEnt;
256 -- The qualifiers of the first argument.
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.
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.
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.
280 ---Purpose: The tangency point between the solution and the first
281 -- argument on the solution.
284 ---Purpose: The tangency point between the solution and the second
285 -- argument on the solution.
288 ---Purpose: The tangency point between the solution and the third
289 -- argument on the solution.
292 ---Purpose: The parameter of the tangency point between the solution
293 -- and the first argument on the solution.
296 ---Purpose: The parameter of the tangency point between the solution
297 -- and the second argument on the solution.
300 ---Purpose: The parameter of the tangency point between the solution
301 -- and the third argument on the solution.
304 ---Purpose: The parameter of the tangency point between the solution
305 -- and the first argument on the first argument.
308 ---Purpose: The parameter of the tangency point between the solution
309 -- and the second argument on the second argument.
312 ---Purpose: The parameter of the tangency point between the solution
313 -- and the third argument on the second argument.