1 -- File: Circ2d3Tan.cdl
2 -- Created: Fri Mar 29 10:00:31 1991
5 ---Copyright: Matra Datavision 1991
7 generic class Circ2d3Tan from GccIter (
9 TheCurveTool as any; -- as CurveTool from GccInt (TheCurve)
10 TheQualifiedCurve as any) -- as QualifiedCurve from GccEnt
13 ---Purpose: This class implements the algorithms used to
14 -- create 2d circles tangent to 3 points/lines/circles/
15 -- curves with one curve or more.
16 -- The arguments of all construction methods are :
17 -- - The three qualifiied elements for the
18 -- tangency constrains (QualifiedCirc, QualifiedLine,
19 -- Qualifiedcurv, Points).
20 -- - A parameter for each QualifiedCurv.
22 -- inherits Entity from Standard
27 QualifiedCirc from GccEnt,
28 QualifiedLin from GccEnt,
31 raises NotDone from StdFail
33 private class FuncTCuCuCu instantiates FunctionTanCuCuCu from GccIter (
34 TheCurve,TheCurveTool);
37 Create(Qualified1 : QualifiedCirc from GccEnt ;
38 Qualified2 : QualifiedCirc from GccEnt ;
39 Qualified3 : TheQualifiedCurve ;
44 returns Circ2d3Tan from GccIter;
45 ---Purpose: This method implements the algorithms used to
46 -- create 2d circles tangent to 2 circles and a curve.
48 Create(Qualified1 : QualifiedCirc from GccEnt ;
49 Qualified2 : TheQualifiedCurve ;
50 Qualified3 : TheQualifiedCurve ;
55 returns Circ2d3Tan from GccIter;
56 ---Purpose: This method implements the algorithms used to
57 -- create 2d circles tangent to a circle and 2 curves.
59 Create(Qualified1 : QualifiedCirc from GccEnt ;
60 Qualified2 : QualifiedLin from GccEnt ;
61 Qualified3 : TheQualifiedCurve ;
66 returns Circ2d3Tan from GccIter;
67 ---Purpose: This method implements the algorithms used to
68 -- create 2d circles tangent to a circle and a line and
71 Create(Qualified1 : QualifiedCirc from GccEnt ;
72 Qualified2 : TheQualifiedCurve ;
77 returns Circ2d3Tan from GccIter;
78 ---Purpose: This method implements the algorithms used to
79 -- create 2d circles tangent to a circle and a point and
82 Create(Qualified1 : QualifiedLin from GccEnt ;
83 Qualified2 : QualifiedLin from GccEnt ;
84 Qualified3 : TheQualifiedCurve ;
89 returns Circ2d3Tan from GccIter;
90 ---Purpose: This method implements the algorithms used to
91 -- create 2d circles tangent to 2 lines and a curve.
93 Create(Qualified1 : QualifiedLin from GccEnt ;
94 Qualified2 : TheQualifiedCurve ;
95 Qualified3 : TheQualifiedCurve ;
100 returns Circ2d3Tan from GccIter;
101 ---Purpose: This method implements the algorithms used to
102 -- create 2d circles tangent to a line and 2 curves.
104 Create(Qualified1 : QualifiedLin from GccEnt ;
105 Qualified2 : TheQualifiedCurve ;
110 returns Circ2d3Tan from GccIter;
111 ---Purpose: This method implements the algorithms used to
112 -- create 2d circles tangent to a line and a curve
115 Create(Qualified1 : TheQualifiedCurve ;
120 returns Circ2d3Tan from GccIter;
121 ---Purpose: This method implements the algorithms used to
122 -- create 2d circles tangent to a curve and 2 points.
124 Create(Qualified1 : TheQualifiedCurve ;
125 Qualified2 : TheQualifiedCurve ;
130 returns Circ2d3Tan from GccIter;
131 ---Purpose: This method implements the algorithms used to
132 -- create 2d circles tangent to 2 curves and a point.
134 Create(Qualified1 : TheQualifiedCurve ;
135 Qualified2 : TheQualifiedCurve ;
136 Qualified3 : TheQualifiedCurve ;
141 returns Circ2d3Tan from GccIter;
142 ---Purpose: This method implements the algorithms used to
143 -- create 2d circles tangent to 3 curves.
145 -- -- ....................................................................
147 IsDone(me) returns Boolean
149 ---Purpose: This method returns True if the construction
150 -- algorithm succeeded.
152 ThisSolution(me) returns Circ2d
153 ---Purpose: Returns the solution.
154 raises NotDone from StdFail
156 ---Purpose: It raises NotDone if the construction algorithm
160 Qualif1 : out Position from GccEnt;
161 Qualif2 : out Position from GccEnt;
162 Qualif3 : out Position from GccEnt)
163 raises NotDone from StdFail
165 -- It returns the informations about the qualifiers of the tangency
166 -- arguments concerning the solution number Index.
167 -- It returns the real qualifiers (the qualifiers given to the
168 -- constructor method in case of enclosed, enclosing and outside
169 -- and the qualifiers computedin case of unqualified).
172 ParSol,ParArg : out Real ;
174 ---Purpose: Returns informations about the tangency point between
175 -- the result and the first argument.
176 -- ParSol is the intrinsic parameter of the point PntSol
177 -- on the solution curv.
178 -- ParArg is the intrinsic parameter of the point PntSol
179 -- on the argument curv.
180 raises NotDone from StdFail
182 ---Purpose: It raises NotDone if the construction algorithm
186 ParSol,ParArg : out Real ;
188 ---Purpose: Returns informations about the tangency point between
189 -- the result and the second argument.
190 -- ParSol is the intrinsic parameter of the point PntSol
191 -- on the solution curv.
192 -- ParArg is the intrinsic parameter of the point PntSol
193 -- on the argument curv.
194 raises NotDone from StdFail
196 ---Purpose: It raises NotDone if the construction algorithm
200 ParSol,ParArg : out Real ;
202 ---Purpose: Returns informations about the tangency point between
203 -- the result and the third argument.
204 -- ParSol is the intrinsic parameter of the point PntSol
205 -- on the solution curv.
206 -- ParArg is the intrinsic parameter of the point PntSol
207 -- on the argument curv.
208 raises NotDone from StdFail
210 ---Purpose: It raises NotDone if the construction algorithm
213 IsTheSame1(me) returns Boolean
214 -- Returns True if the solution is equal to the first argument.
215 raises NotDone from StdFail
217 ---Purpose: It raises NotDone if the construction algorithm
220 IsTheSame2(me) returns Boolean
221 -- Returns True if the solution is equal to the second argument.
222 raises NotDone from StdFail
224 ---Purpose: It raises NotDone if the construction algorithm
227 IsTheSame3(me) returns Boolean
228 -- Returns True if the solution is equal to the third argument.
229 raises NotDone from StdFail
231 ---Purpose: It raises NotDone if the construction algorithm
237 ---Purpose: True if the algorithm succeeded.
240 ---Purpose: The solutions.
242 qualifier1 : Position from GccEnt;
243 -- The qualifiers of the first argument.
245 qualifier2 : Position from GccEnt;
246 -- The qualifiers of the first argument.
248 qualifier3 : Position from GccEnt;
249 -- The qualifiers of the first argument.
252 ---Purpose: True if the solution and the first argument are identical.
253 -- Two circles are identical if the difference between the
254 -- radius of one and the sum of the radius of the other and
255 -- the distance between the centers is less than Tolerance.
256 -- False in the other cases.
259 ---Purpose: True if the solution and the second 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 third 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: The tangency point between the solution and the first
274 -- argument on the solution.
277 ---Purpose: The tangency point between the solution and the second
278 -- argument on the solution.
281 ---Purpose: The tangency point between the solution and the third
282 -- argument on the solution.
285 ---Purpose: The parameter of the tangency point between the solution
286 -- and the first argument on the solution.
289 ---Purpose: The parameter of the tangency point between the solution
290 -- and the second argument on the solution.
293 ---Purpose: The parameter of the tangency point between the solution
294 -- and the third argument on the solution.
297 ---Purpose: The parameter of the tangency point between the solution
298 -- and the first argument on the first argument.
301 ---Purpose: The parameter of the tangency point between the solution
302 -- and the second argument on the second argument.
305 ---Purpose: The parameter of the tangency point between the solution
306 -- and the third argument on the second argument.