7739714698110dcbb0334e0fdda9312fea1b82dc
[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         Bnd
35
36 is
37
38     enumeration ExtFlag is ExtFlag_MIN, ExtFlag_MAX, ExtFlag_MINMAX;
39
40     enumeration ExtAlgo is ExtAlgo_Grad, ExtAlgo_Tree;
41
42     class CurveTool;
43     class Curve2dTool;
44
45     generic class Point;
46     class POnSurf;
47
48     generic class ExtPSOfRev;
49     
50     -----------------------------------
51     -- Treatement of elementary curves 
52     --  and surfaces extremas:
53     -----------------------------------
54     class ExtPElC;
55     class ExtPElC2d;
56     class ExtPElS;
57     class ExtPExtS;
58     class ExtPRevS;
59     class ExtElC;
60     class ExtElC2d;
61
62     class ExtElCS;
63     class ExtElSS;
64     
65     -----------------------------------------------
66     --  generic classes for  POINT-CURVE  extremas:
67     -----------------------------------------------
68     private generic class FuncExtPC, SeqPC;
69     generic class GenExtPC, PCF;
70     generic class GenLocateExtPC, PCLocF;
71
72     -------------------------------------------------
73     --  classes for  POINT-SURFACE  extremas:
74     -------------------------------------------------
75     private class FuncExtPS;
76     class GenExtPS;
77     class GenLocateExtPS; 
78     imported HUBTreeOfSphere;
79     
80     ----------------------------------------------
81     --  generic classes for  CURVE-CURVE extremas:
82     ----------------------------------------------
83     private generic class FuncExtCC, SeqPOnC;
84     generic class GenExtCC, CCF;
85     generic class GenLocateExtCC, CCLocF;
86     generic class CurveCache;
87     
88     
89     ----------------------------------------------
90     --  classes for  CURVE-SURFACE extremas:
91     ----------------------------------------------
92     private class FuncExtCS;
93     class GenExtCS;    
94     class GenLocateExtCS;
95     
96     ----------------------------------------------
97     --  classes for  SURFACE-SURFACE extremas:
98     ----------------------------------------------
99     private class FuncExtSS;
100     class GenExtSS;
101     class GenLocateExtSS;
102     
103     --------------------------------------------------
104     -- the following classes switches the curve or 
105     -- surface types for approximate elementary curves.
106     -- the tools are the tools from Adaptor3d.
107     --------------------------------------------------
108     --  Point-Curve:                                  
109     generic class GExtPC, EPC;
110     generic class GLocateExtPC, ELPC, LocEPC;
111     
112     --  Point-Surface:                                  
113     class ExtPS;
114     
115     --  Curve-Curve:                                  
116     --  3d:
117     generic class GExtCC, CCache, ECC;
118     generic class GLocateExtCC, LCCache, ELCC, LocECC;
119     -- 2d:
120     generic class GExtCC2d, CCache2d, ECC2d;
121     generic class GLocateExtCC2d, LCCache2d, ELCC2d, LocECC2d;
122     
123     --  Curve-Surface:                                  
124     class ExtCS;
125
126     --  Surface-Surface:                                  
127     class ExtSS;
128
129
130     -----------------------------------------------
131     -- the following class is used to locate
132     -- a first evaluation of the possible extremas. 
133     -----------------------------------------------
134     generic class CurveLocator;
135       
136       
137     --------------------------------------
138     --- instantiations of generic classes:
139     --------------------------------------
140     class POnCurv instantiates Point from Extrema(Pnt from gp);
141     class POnCurv2d instantiates Point from Extrema(Pnt2d from gp);
142     
143     class Array1OfPOnCurv     instantiates 
144         Array1 from TCollection(POnCurv);
145         
146     class Array2OfPOnCurv     instantiates 
147         Array2 from TCollection(POnCurv);
148         
149     class Array1OfPOnCurv2d   instantiates 
150         Array1 from TCollection(POnCurv2d);
151         
152     class Array2OfPOnCurv2d   instantiates 
153         Array2 from TCollection(POnCurv2d);
154         
155     class Array1OfPOnSurf     instantiates 
156         Array1 from TCollection(POnSurf);
157         
158     class Array2OfPOnSurf     instantiates 
159         Array2 from TCollection(POnSurf);
160         
161
162     class HArray1OfPOnCurv    instantiates 
163         HArray1 from TCollection(POnCurv, Array1OfPOnCurv);
164         
165     class HArray2OfPOnCurv    instantiates 
166         HArray2 from TCollection(POnCurv, Array2OfPOnCurv);
167         
168     class HArray1OfPOnCurv2d  instantiates 
169         HArray1 from TCollection(POnCurv2d,Array1OfPOnCurv2d);
170         
171     class HArray2OfPOnCurv2d  instantiates 
172         HArray2 from TCollection(POnCurv2d,Array2OfPOnCurv2d);
173         
174     
175     class HArray1OfPOnSurf    instantiates 
176         HArray1 from TCollection(POnSurf, Array1OfPOnSurf);
177         
178     class HArray2OfPOnSurf    instantiates 
179         HArray2 from TCollection(POnSurf, Array2OfPOnSurf);
180         
181
182     class SequenceOfPOnCurv   instantiates 
183         Sequence from TCollection(POnCurv);
184         
185     class SequenceOfPOnCurv2d instantiates 
186         Sequence from TCollection(POnCurv2d);
187         
188     class SequenceOfPOnSurf   instantiates 
189         Sequence from TCollection(POnSurf);
190         
191
192
193          --- 3d instantiations:
194     class ExtPC instantiates GExtPC from Extrema
195         (Curve             from Adaptor3d,
196          CurveTool         from Extrema,
197          ExtPElC           from Extrema,
198          Pnt               from gp,
199          Vec               from gp,
200          POnCurv           from Extrema,
201          SequenceOfPOnCurv from Extrema);
202          
203              
204     class LocateExtPC instantiates GLocateExtPC from Extrema
205         (Curve             from Adaptor3d,
206          CurveTool         from Extrema,
207          ExtPElC           from Extrema,
208          Pnt               from gp,
209          Vec               from gp,
210          POnCurv           from Extrema,
211          SequenceOfPOnCurv from Extrema);
212   
213
214     class ExtCC instantiates GExtCC from Extrema
215         (Curve             from Adaptor3d, 
216          CurveTool         from Extrema,
217          Curve             from Adaptor3d, 
218          CurveTool         from Extrema);
219
220     class LocateExtCC instantiates GLocateExtCC from Extrema
221         (Curve             from Adaptor3d, 
222          CurveTool         from Extrema,
223          Curve             from Adaptor3d, 
224          CurveTool         from Extrema);
225
226
227          --- 2d instantiations:
228     class ExtPC2d instantiates GExtPC from Extrema
229         (Curve2d             from Adaptor2d,
230          Curve2dTool         from Extrema,
231          ExtPElC2d           from Extrema,
232          Pnt2d               from gp,
233          Vec2d               from gp,
234          POnCurv2d           from Extrema,
235          SequenceOfPOnCurv2d from Extrema);
236          
237          
238     class LocateExtPC2d instantiates GLocateExtPC from Extrema
239         (Curve2d             from Adaptor2d,
240          Curve2dTool         from Extrema,
241          ExtPElC2d           from Extrema,
242          Pnt2d               from gp,
243          Vec2d               from gp,
244          POnCurv2d           from Extrema,
245          SequenceOfPOnCurv2d from Extrema);
246   
247
248     class ExtCC2d instantiates GExtCC2d from Extrema
249         (Curve2d             from Adaptor2d, 
250          Curve2dTool         from Extrema,
251          Curve2d             from Adaptor2d, 
252          Curve2dTool         from Extrema);
253
254     class LocateExtCC2d instantiates GLocateExtCC2d from Extrema
255         (Curve2d             from Adaptor2d, 
256          Curve2dTool         from Extrema,
257          Curve2d             from Adaptor2d, 
258          Curve2dTool         from Extrema);
259
260
261
262
263 end Extrema;