63ac5b8651228e65e294959c8ecb821ed34d1148
[occt.git] / src / GccGeo / GccGeo_Circ2dTanCen.cdl
1 -- Created on: 1991-03-28
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 generic class Circ2dTanCen from GccGeo
18     (TheCurve          as any; -- 
19      TheCurveTool      as any; -- as CurveTool(TheCurve) from GccInt
20      TheExtPC          as any; -- as ExtPC(TheCurve,TheCurveTool) from Extrema
21      TheQualifiedCurve as any) -- as QCurve from GccInt
22                                --          (TheCurve)
23
24         ---Purpose: This class implements the algorithms used to 
25         --          create 2d circles tangent to a curve and 
26         --          centered on a point. 
27         --          The arguments of all construction methods are :
28         --             - The qualified element for the tangency constrains 
29         --             (QualifiedCurv).
30         --             -The center point Pcenter.
31         --             - A real Tolerance.
32         --          Tolerance is only used in the limits cases.
33         --          For example : 
34         --          We want to create a circle tangent to an EnclosedCurv C1
35         --          with a tolerance Tolerance.
36         --          If we did not use Tolerance it is impossible to 
37         --          find a solution in the following case : Pcenter is
38         --          outside C1.
39         --          With Tolerance we will give a solution if the distance
40         --          between C1 and Pcenter is lower than or equal Tolerance/2.
41
42 -- inherits Entity from Standard
43
44 uses Pnt2d            from gp,
45      Circ2d           from gp,
46      Array1OfCirc2d   from TColgp,
47      Array1OfPnt2d    from TColgp,
48      Array1OfReal     from TColStd,
49      Array1OfInteger  from TColStd,
50      Position         from GccEnt,
51      Array1OfPosition from GccEnt
52
53 raises OutOfRange   from Standard,
54        BadQualifier from GccEnt,
55        NotDone      from StdFail
56
57 is
58
59 Create( Qualified1 : TheQualifiedCurve              ;
60         Pcenter    : Pnt2d             from gp      ;
61         Tolerance  : Real              from Standard) returns Circ2dTanCen
62     ---Purpose: This method implements the algorithms used to 
63     --          create 2d circles tangent to a circle and 
64     --          centered on a point. 
65 raises BadQualifier;
66
67 -- -- ....................................................................
68
69 IsDone(me) returns Boolean from Standard
70 is static;
71     ---Purpose: This method returns True if the construction 
72     --          algorithm succeeded.
73
74 NbSolutions(me) returns Integer from Standard
75         ---Purpose: Returns the number of solutions and raises NotDone 
76         --          exception if the algorithm didn't succeed.
77 raises NotDone
78 is static;
79         ---Purpose: It raises NotDone if the construction algorithm 
80         --          didn't succeed.
81
82 ThisSolution(me                           ;
83              Index : Integer from Standard) returns Circ2d from gp
84     ---Purpose: Returns the solution number Index and raises OutOfRange 
85     --          exception if Index is greater than the number of solutions.
86     --          Be carefull: the Index is only a way to get all the 
87     --          solutions, but is not associated to theses outside the 
88     --          context of the algorithm-object.
89 raises OutOfRange, NotDone
90 is static;
91     ---Purpose: It raises NotDone if the construction algorithm 
92     --          didn't succeed.
93     --          It raises OutOfRange if Index is greater than the 
94     --          number of solutions or less than zero.
95
96 WhichQualifier(me                                  ;
97                Index   :     Integer  from Standard;
98                Qualif1 : out Position from GccEnt  )
99 raises OutOfRange, NotDone
100 is static;
101     -- It returns the informations about the qualifiers of the tangency 
102     -- arguments concerning the solution number Index.
103     -- It returns the real qualifiers (the qualifiers given to the 
104     -- constructor method in case of enclosed, enclosing and outside 
105     -- and the qualifiers computedin case of unqualified).
106
107 Tangency1(me                                     ;
108           Index         : Integer   from Standard;
109           ParSol,ParArg : out Real  from Standard;
110           PntSol        : out Pnt2d from gp      )
111     ---Purpose: Returns informations about the tangency point between the 
112     --          result number Index and the first argument.
113     --          ParSol is the intrinsic parameter of the point PntSol 
114     --          on the solution curv.
115     --          ParArg is the intrinsic parameter of the point PntArg 
116     --          on the argument curv.
117 raises OutOfRange, NotDone
118 is static;
119     ---Purpose: It raises NotDone if the construction algorithm 
120     --          didn't succeed.
121     --          It raises OutOfRange if Index is greater than the 
122     --          number of solutions or less than zero.
123
124 fields
125
126     WellDone : Boolean from Standard;
127     -- True if the algorithm succeeded.
128
129     NbrSol   : Integer from Standard;
130     -- The number of possible solutions. We have to decide about the
131     -- status of the multiple solutions...
132
133     cirsol   : Array1OfCirc2d from TColgp;
134     ---Purpose : The solutions.
135
136     qualifier1 : Array1OfPosition from GccEnt;
137     -- The qualifiers of the first argument.
138
139     pnttg1sol   : Array1OfPnt2d from TColgp;
140     -- The tangency point between the solution and the first argument on 
141     -- the solution.
142
143     par1sol   : Array1OfReal from TColStd;
144     -- The parameter of the tangency point between the solution and the 
145     -- first argument on the solution.
146
147     pararg1   : Array1OfReal from TColStd;
148     -- The parameter of the tangency point between the solution and the first 
149     -- argument on the first argument.
150
151 end Circ2dTanCen;