OCC22318 Regression (since OCCT 6.3.1): bad shading of small cylinder (forum thread...
[occt.git] / src / Extrema / Extrema.cdl
1 -- File:        Extrema.cdl
2 -- Created:     Tue Feb 26 15:01:07 1991
3 -- Author:      Isabelle GRIGNON
4 --              <isg@topsn3>
5 ---Copyright:    Matra Datavision 1991
6
7 package Extrema 
8     ---Purpose: This package calculates the distances between
9     --          points, curves and surfaces.
10     --          In general case, the algorithm to find the 
11     --          distances is a minimization algorithm of a function
12     --          of variables: F(X). It is stopped when:
13     --            for X1=X+Dx, F(X) and F(X1) are the same.
14     --          The value of Dx can be calculated for all the 
15     --          algorithms.
16
17     ---Level : Public. 
18     --  All methods of all  classes will be public.
19
20
21 uses
22     gp,
23     math,
24     TColStd,
25     TColgp,
26     StdFail,
27     Standard,
28     TCollection,
29     GeomAbs,
30     Adaptor3d,
31     Adaptor2d,
32     Geom,
33     Geom2d
34
35 is
36
37     class CurveTool;
38     class Curve2dTool;
39
40     generic class Point;
41     class POnSurf;
42
43     generic class ExtPSOfRev;
44     
45     -----------------------------------
46     -- Treatement of elementary curves 
47     --  and surfaces extremas:
48     -----------------------------------
49     class ExtPElC;
50     class ExtPElC2d;
51     class ExtPElS;
52     class ExtPExtS;
53     class ExtPRevS;
54     class ExtElC;
55     class ExtElC2d;
56
57     class ExtElCS;
58     class ExtElSS;
59     
60     -----------------------------------------------
61     --  generic classes for  POINT-CURVE  extremas:
62     -----------------------------------------------
63     private generic class FuncExtPC, SeqPC;
64     generic class GenExtPC, PCF;
65     generic class GenLocateExtPC, PCLocF;
66
67     -------------------------------------------------
68     --  classes for  POINT-SURFACE  extremas:
69     -------------------------------------------------
70     private class FuncExtPS;
71     class GenExtPS;
72     class GenLocateExtPS; 
73     
74     ----------------------------------------------
75     --  generic classes for  CURVE-CURVE extremas:
76     ----------------------------------------------
77     private generic class FuncExtCC, SeqPOnC;
78     generic class GenExtCC, CCF;
79     generic class GenLocateExtCC, CCLocF;
80     generic class CurveCache;
81     
82     
83     ----------------------------------------------
84     --  classes for  CURVE-SURFACE extremas:
85     ----------------------------------------------
86     private class FuncExtCS;
87     class GenExtCS;    
88     class GenLocateExtCS;
89     
90     ----------------------------------------------
91     --  classes for  SURFACE-SURFACE extremas:
92     ----------------------------------------------
93     private class FuncExtSS;
94     class GenExtSS;
95     class GenLocateExtSS;
96     
97     --------------------------------------------------
98     -- the following classes switches the curve or 
99     -- surface types for approximate elementary curves.
100     -- the tools are the tools from Adaptor3d.
101     --------------------------------------------------
102     --  Point-Curve:                                  
103     generic class GExtPC, EPC;
104     generic class GLocateExtPC, ELPC, LocEPC;
105     
106     --  Point-Surface:                                  
107     class ExtPS;
108     
109     --  Curve-Curve:                                  
110     --  3d:
111     generic class GExtCC, CCache, ECC;
112     generic class GLocateExtCC, LCCache, ELCC, LocECC;
113     -- 2d:
114     generic class GExtCC2d, CCache2d, ECC2d;
115     generic class GLocateExtCC2d, LCCache2d, ELCC2d, LocECC2d;
116     
117     --  Curve-Surface:                                  
118     class ExtCS;
119
120     --  Surface-Surface:                                  
121     class ExtSS;
122
123
124     -----------------------------------------------
125     -- the following class is used to locate
126     -- a first evaluation of the possible extremas. 
127     -----------------------------------------------
128     generic class CurveLocator;
129       
130       
131     --------------------------------------
132     --- instantiations of generic classes:
133     --------------------------------------
134     class POnCurv instantiates Point from Extrema(Pnt from gp);
135     class POnCurv2d instantiates Point from Extrema(Pnt2d from gp);
136     
137     class Array1OfPOnCurv     instantiates 
138         Array1 from TCollection(POnCurv);
139         
140     class Array2OfPOnCurv     instantiates 
141         Array2 from TCollection(POnCurv);
142         
143     class Array1OfPOnCurv2d   instantiates 
144         Array1 from TCollection(POnCurv2d);
145         
146     class Array2OfPOnCurv2d   instantiates 
147         Array2 from TCollection(POnCurv2d);
148         
149     class Array1OfPOnSurf     instantiates 
150         Array1 from TCollection(POnSurf);
151         
152     class Array2OfPOnSurf     instantiates 
153         Array2 from TCollection(POnSurf);
154         
155
156     class HArray1OfPOnCurv    instantiates 
157         HArray1 from TCollection(POnCurv, Array1OfPOnCurv);
158         
159     class HArray2OfPOnCurv    instantiates 
160         HArray2 from TCollection(POnCurv, Array2OfPOnCurv);
161         
162     class HArray1OfPOnCurv2d  instantiates 
163         HArray1 from TCollection(POnCurv2d,Array1OfPOnCurv2d);
164         
165     class HArray2OfPOnCurv2d  instantiates 
166         HArray2 from TCollection(POnCurv2d,Array2OfPOnCurv2d);
167         
168     
169     class HArray1OfPOnSurf    instantiates 
170         HArray1 from TCollection(POnSurf, Array1OfPOnSurf);
171         
172     class HArray2OfPOnSurf    instantiates 
173         HArray2 from TCollection(POnSurf, Array2OfPOnSurf);
174         
175
176     class SequenceOfPOnCurv   instantiates 
177         Sequence from TCollection(POnCurv);
178         
179     class SequenceOfPOnCurv2d instantiates 
180         Sequence from TCollection(POnCurv2d);
181         
182     class SequenceOfPOnSurf   instantiates 
183         Sequence from TCollection(POnSurf);
184         
185
186
187          --- 3d instantiations:
188     class ExtPC instantiates GExtPC from Extrema
189         (Curve             from Adaptor3d,
190          CurveTool         from Extrema,
191          ExtPElC           from Extrema,
192          Pnt               from gp,
193          Vec               from gp,
194          POnCurv           from Extrema,
195          SequenceOfPOnCurv from Extrema);
196          
197              
198     class LocateExtPC instantiates GLocateExtPC from Extrema
199         (Curve             from Adaptor3d,
200          CurveTool         from Extrema,
201          ExtPElC           from Extrema,
202          Pnt               from gp,
203          Vec               from gp,
204          POnCurv           from Extrema,
205          SequenceOfPOnCurv from Extrema);
206   
207
208     class ExtCC instantiates GExtCC from Extrema
209         (Curve             from Adaptor3d, 
210          CurveTool         from Extrema,
211          Curve             from Adaptor3d, 
212          CurveTool         from Extrema);
213
214     class LocateExtCC instantiates GLocateExtCC from Extrema
215         (Curve             from Adaptor3d, 
216          CurveTool         from Extrema,
217          Curve             from Adaptor3d, 
218          CurveTool         from Extrema);
219
220
221          --- 2d instantiations:
222     class ExtPC2d instantiates GExtPC from Extrema
223         (Curve2d             from Adaptor2d,
224          Curve2dTool         from Extrema,
225          ExtPElC2d           from Extrema,
226          Pnt2d               from gp,
227          Vec2d               from gp,
228          POnCurv2d           from Extrema,
229          SequenceOfPOnCurv2d from Extrema);
230          
231          
232     class LocateExtPC2d instantiates GLocateExtPC from Extrema
233         (Curve2d             from Adaptor2d,
234          Curve2dTool         from Extrema,
235          ExtPElC2d           from Extrema,
236          Pnt2d               from gp,
237          Vec2d               from gp,
238          POnCurv2d           from Extrema,
239          SequenceOfPOnCurv2d from Extrema);
240   
241
242     class ExtCC2d instantiates GExtCC2d from Extrema
243         (Curve2d             from Adaptor2d, 
244          Curve2dTool         from Extrema,
245          Curve2d             from Adaptor2d, 
246          Curve2dTool         from Extrema);
247
248     class LocateExtCC2d instantiates GLocateExtCC2d from Extrema
249         (Curve2d             from Adaptor2d, 
250          Curve2dTool         from Extrema,
251          Curve2d             from Adaptor2d, 
252          Curve2dTool         from Extrema);
253
254
255
256
257 end Extrema;