0024510: Remove unused local variables
[occt.git] / src / GccAna / GccAna_Lin2d2Tan.cdl
1 -- Created on: 1991-04-03
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
9 -- under the terms of the GNU Lesser General Public 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 Lin2d2Tan
18
19 from GccAna
20
21         ---Purpose: This class implements the algorithms used to 
22         --          create 2d lines tangent to 2 other elements which
23         --          can be circles or points.
24         --          Describes functions for building a 2D line:
25         --          -   tangential to 2 circles, or
26         --          -   tangential to a circle and passing through a point, or
27         --          -   passing through 2 points.
28         --          A Lin2d2Tan object provides a framework for:
29         --          -   defining the construction of 2D line(s),
30         --          -   implementing the construction algorithm, and 
31         --          consulting the result(s).
32         --          Some constructors may check the type of the qualified argument 
33         --          and raise BadQualifier Error in case of incorrect couple (qualifier,
34         --          curv).
35         --          For example: "EnclosedCirc".
36
37 uses Pnt2d         from gp, 
38      Lin2d         from gp,
39      QualifiedCirc from GccEnt,
40      Array1OfLin2d from TColgp,
41      Array1OfPnt2d from TColgp,
42      Array1OfReal  from TColStd,
43      Position         from GccEnt,
44      Array1OfPosition from GccEnt
45      
46
47 raises OutOfRange   from Standard,
48        BadQualifier from GccEnt,
49        NotDone      from StdFail
50
51 is
52
53
54
55 Create (ThePoint1  : Pnt2d         from gp      ;
56         ThePoint2  : Pnt2d         from gp      ;
57         Tolerance  : Real          from Standard) returns Lin2d2Tan;
58         ---Purpose: This methods implements the algorithms used to 
59         --          create 2d lines passing thrue 2 points.
60         --          Tolerance is used because we can't create a line 
61         --          when the distance between the two points is too small.
62
63 Create (Qualified1 : QualifiedCirc from GccEnt  ;
64         ThePoint   : Pnt2d         from gp      ;
65         Tolerance  : Real          from Standard) returns Lin2d2Tan
66 raises BadQualifier;
67         ---Purpose: This methods implements the algorithms used to 
68         --          create 2d lines tangent to one circle and passing
69         --          thrue a point.
70         --          Exception BadQualifier is raised in the case of 
71         --          EnclosedCirc
72         --          Tolerance is used because there is no solution 
73         --          when the point is inside the solution according to 
74         --          the tolerance.
75
76 Create (Qualified1 : QualifiedCirc from GccEnt  ;
77         Qualified2 : QualifiedCirc from GccEnt  ;
78         Tolerance  : Real          from Standard) returns Lin2d2Tan
79 raises BadQualifier;
80         ---Purpose: This methods implements the algorithms used to 
81         --          create 2d lines tangent to 2 circles.
82         --          Exception BadQualifier is raised in the case of 
83         --          EnclosedCirc
84
85 --------------------------------------------------------------------------
86
87 IsDone (me) returns Boolean from Standard
88 is static;
89         ---Purpose: This method returns true when there is a solution 
90         --          and false in the other cases.
91
92 NbSolutions(me) returns Integer from Standard
93         ---Purpose: This method returns the number of solutions.
94         --          Raises NotDone if the construction algorithm didn't succeed. 
95 raises NotDone
96 is static;
97   
98
99 ThisSolution(me                           ; 
100              Index : Integer from Standard) returns Lin2d 
101         ---Purpose : Returns the solution number Index and raises OutOfRange 
102         --           exception if Index is greater than the number of solutions.
103         --           Be carefull: the Index is only a way to get all the 
104         --           solutions, but is not associated to theses outside the 
105         --           context of the algorithm-object. Raises OutOfRange is raised if Index is greater than 
106         --           the number of solutions.
107         --           It raises NotDone if the algorithm failed.
108 raises OutOfRange, NotDone
109 is static;
110   
111
112 WhichQualifier(me                                  ;
113                Index   :     Integer  from Standard;
114                Qualif1 : out Position from GccEnt  ;
115                Qualif2 : out Position from GccEnt  )
116 raises OutOfRange, NotDone
117 is static;
118         ---Purpose: Returns the qualifiers Qualif1 and Qualif2 of the
119         -- tangency arguments for the solution of index Index
120         -- computed by this algorithm.
121         -- The returned qualifiers are:
122         -- -   those specified at the start of construction when the
123         --   solutions are defined as enclosing or outside with
124         --   respect to the arguments, or
125         -- -   those computed during construction (i.e. enclosing or
126         --   outside) when the solutions are defined as unqualified
127         --   with respect to the arguments, or
128         -- -   GccEnt_noqualifier if the tangency argument is a point.
129         --  Exceptions
130         -- Standard_OutOfRange if Index is less than zero or
131         -- greater than the number of solutions computed by this algorithm.
132         -- StdFail_NotDone if the construction fails.
133
134
135 Tangency1(me                                     ;
136           Index         : Integer   from Standard;
137           ParSol,ParArg : out Real  from Standard;
138           PntSol        : out Pnt2d from gp      )
139         ---Purpose : Returns informations about the tangency point between the 
140         --           result number Index and the first argument.
141         --           ParSol is the intrinsic parameter of the point PntSol on
142         --           the solution curv.
143         --           ParArg is the intrinsic parameter of the point PntSol on 
144         --           the argument curv. Raises OutOfRange is raised if Index is greater than 
145         --           the number of solutions.
146         --           It raises NotDone if the algorithm failed.
147 raises OutOfRange, NotDone
148 is static;
149   
150 Tangency2(me                                     ;
151           Index         : Integer   from Standard;
152           ParSol,ParArg : out Real  from Standard;
153           PntSol        : out Pnt2d from gp      )
154         ---Purpose : Returns informations about the tangency point between the 
155         --           result number Index and the second argument.
156         --           ParSol is the intrinsic parameter of the point ParSol on
157         --           the solution curv.
158         --           ParArg is the intrinsic parameter of the point PntSol on 
159         --           the argument curv. Raises OutOfRange is raised if Index is greater than 
160         --          the number of solutions.
161         --          It raises NotDone if the algorithm failed.
162 raises OutOfRange, NotDone
163 is static;
164   
165
166 fields
167
168     WellDone : Boolean from Standard;
169         ---Purpose : True if the algorithm succeeded.
170
171     NbrSol   : Integer from Standard;
172         ---Purpose : The number of possible solutions. We have to decide about the
173         --           status of the multiple solutions...
174
175     linsol   : Array1OfLin2d from TColgp;
176         ---Purpose : Thesolutions.
177
178     qualifier1 : Array1OfPosition from GccEnt;
179         ---Purpose: The qualifiers of the first argument.
180
181     qualifier2 : Array1OfPosition from GccEnt;
182         ---Purpose: The qualifiers of the second argument.
183
184     pnttg1sol   : Array1OfPnt2d from TColgp;
185         ---Purpose: The tangency point between the solution and the first 
186         --          argument on the solution.
187
188     pnttg2sol   : Array1OfPnt2d from TColgp;
189         ---Purpose: The tangency point between the solution and the second 
190         --          argument on the solution.
191
192     par1sol   : Array1OfReal from TColStd;
193         ---Purpose: The parameter of the tangency point between the solution 
194         --          and the first argument on the solution.
195
196     par2sol   : Array1OfReal from TColStd;
197         ---Purpose: The parameter of the tangency point between the solution 
198         --          and the second argument on the solution.
199
200     pararg1   : Array1OfReal from TColStd;
201         ---Purpose: The parameter of the tangency point between the solution 
202         --          and the first argument on the first argument.
203
204     pararg2   : Array1OfReal from TColStd;
205         ---Purpose: The parameter of the tangency point between the solution 
206         --          and the second argument on the second argument.
207
208 end Lin2d2Tan;