OCC22322 Improvement of Extrema performance
[occt.git] / src / Extrema / Extrema.cdl
CommitLineData
7fd59977 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
7package 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
21uses
22 gp,
23 math,
24 TColStd,
25 TColgp,
26 StdFail,
27 Standard,
28 TCollection,
29 GeomAbs,
30 Adaptor3d,
31 Adaptor2d,
32 Geom,
92d1589b
A
33 Geom2d,
34 Bnd
7fd59977 35
36is
37
92d1589b
A
38 enumeration ExtFlag is ExtFlag_MIN, ExtFlag_MAX, ExtFlag_MINMAX;
39
40 enumeration ExtAlgo is ExtAlgo_Grad, ExtAlgo_Tree;
41
7fd59977 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;
92d1589b 78 imported HUBTreeOfSphere;
7fd59977 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
263end Extrema;