0024761: Convertation of the generic classes to the non-generic. Part 5
[occt.git] / src / Extrema / Extrema.cdl
CommitLineData
b311480e 1-- Created on: 1991-02-26
2-- Created by: Isabelle GRIGNON
3-- Copyright (c) 1991-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17package Extrema
18 ---Purpose: This package calculates the distances between
19 -- points, curves and surfaces.
20 -- In general case, the algorithm to find the
21 -- distances is a minimization algorithm of a function
22 -- of variables: F(X). It is stopped when:
23 -- for X1=X+Dx, F(X) and F(X1) are the same.
24 -- The value of Dx can be calculated for all the
25 -- algorithms.
26
27 ---Level : Public.
28 -- All methods of all classes will be public.
29
30
31uses
32 gp,
33 math,
34 TColStd,
35 TColgp,
36 StdFail,
37 Standard,
38 TCollection,
39 GeomAbs,
40 Adaptor3d,
41 Adaptor2d,
42 Geom,
92d1589b
A
43 Geom2d,
44 Bnd
7fd59977 45
46is
47
92d1589b
A
48 enumeration ExtFlag is ExtFlag_MIN, ExtFlag_MAX, ExtFlag_MINMAX;
49
50 enumeration ExtAlgo is ExtAlgo_Grad, ExtAlgo_Tree;
6060dd1f 51
52 enumeration ElementType is Node, UIsoEdge, VIsoEdge, Face;
92d1589b 53
7fd59977 54 class CurveTool;
55 class Curve2dTool;
56
57 generic class Point;
58 class POnSurf;
6060dd1f 59 class POnSurfParams;
7fd59977 60
61 -----------------------------------
62 -- Treatement of elementary curves
63 -- and surfaces extremas:
64 -----------------------------------
65 class ExtPElC;
66 class ExtPElC2d;
67 class ExtPElS;
68 class ExtPExtS;
69 class ExtPRevS;
70 class ExtElC;
71 class ExtElC2d;
72
73 class ExtElCS;
74 class ExtElSS;
75
76 -----------------------------------------------
77 -- generic classes for POINT-CURVE extremas:
78 -----------------------------------------------
79 private generic class FuncExtPC, SeqPC;
80 generic class GenExtPC, PCF;
81 generic class GenLocateExtPC, PCLocF;
82
83 -------------------------------------------------
84 -- classes for POINT-SURFACE extremas:
85 -------------------------------------------------
86 private class FuncExtPS;
87 class GenExtPS;
88 class GenLocateExtPS;
92d1589b 89 imported HUBTreeOfSphere;
7fd59977 90
91 ----------------------------------------------
92 -- generic classes for CURVE-CURVE extremas:
93 ----------------------------------------------
94 private generic class FuncExtCC, SeqPOnC;
95 generic class GenExtCC, CCF;
96 generic class GenLocateExtCC, CCLocF;
97 generic class CurveCache;
98
99
100 ----------------------------------------------
101 -- classes for CURVE-SURFACE extremas:
102 ----------------------------------------------
103 private class FuncExtCS;
104 class GenExtCS;
105 class GenLocateExtCS;
106
107 ----------------------------------------------
108 -- classes for SURFACE-SURFACE extremas:
109 ----------------------------------------------
110 private class FuncExtSS;
111 class GenExtSS;
112 class GenLocateExtSS;
113
114 --------------------------------------------------
115 -- the following classes switches the curve or
116 -- surface types for approximate elementary curves.
117 -- the tools are the tools from Adaptor3d.
118 --------------------------------------------------
119 -- Point-Curve:
120 generic class GExtPC, EPC;
121 generic class GLocateExtPC, ELPC, LocEPC;
122
123 -- Point-Surface:
124 class ExtPS;
125
126 -- Curve-Curve:
127 -- 3d:
0b85f9a6 128 class ExtCC;
129
130 class CCache instantiates CurveCache from Extrema
131 (Curve from Adaptor3d,
132 Pnt from gp,
133 HArray1OfPnt from TColgp);
134
135 class ECC instantiates GenExtCC from Extrema
136 (Curve from Adaptor3d,
137 CurveTool from Extrema,
138 Curve from Adaptor3d,
139 CurveTool from Extrema,
140 CCache from Extrema,
141 HArray1OfPnt from TColgp,
142 POnCurv from Extrema,
143 Pnt from gp,
144 Vec from gp);
145
146 class LocateExtCC;
147
148 class LCCache instantiates CurveCache from Extrema
149 (Curve from Adaptor3d,
150 Pnt from gp,
151 HArray1OfPnt from TColgp);
152
153 class ELCC instantiates GenExtCC from Extrema
154 (Curve from Adaptor3d,
155 CurveTool from Extrema,
156 Curve from Adaptor3d,
157 CurveTool from Extrema,
158 LCCache from Extrema,
159 HArray1OfPnt from TColgp,
160 POnCurv from Extrema,
161 Pnt from gp,
162 Vec from gp);
163
164 class LocECC instantiates GenLocateExtCC from Extrema
165 (Curve from Adaptor3d,
166 CurveTool from Extrema,
167 Curve from Adaptor3d,
168 CurveTool from Extrema,
169 POnCurv from Extrema,
170 Pnt from gp,
171 Vec from gp);
172
7fd59977 173 -- 2d:
0b85f9a6 174 class ExtCC2d;
175
176 class CCache2d instantiates CurveCache from Extrema
177 (Curve2d from Adaptor2d,
178 Pnt2d from gp,
179 HArray1OfPnt2d from TColgp);
180
181 class ECC2d instantiates GenExtCC from Extrema
182 (Curve2d from Adaptor2d,
183 Curve2dTool from Extrema,
184 Curve2d from Adaptor2d,
185 Curve2dTool from Extrema,
186 CCache2d from Extrema,
187 HArray1OfPnt2d from TColgp,
188 POnCurv2d from Extrema,
189 Pnt2d from gp,
190 Vec2d from gp);
191
192 class LocateExtCC2d;
193
194 class LCCache2d instantiates CurveCache from Extrema
195 (Curve2d from Adaptor2d,
196 Pnt2d from gp,
197 HArray1OfPnt2d from TColgp);
198
199 class ELCC2d instantiates GenExtCC from Extrema
200 (Curve2d from Adaptor2d,
201 Curve2dTool from Extrema,
202 Curve2d from Adaptor2d,
203 Curve2dTool from Extrema,
204 LCCache2d from Extrema,
205 HArray1OfPnt2d from TColgp,
206 POnCurv2d from Extrema,
207 Pnt2d from gp,
208 Vec2d from gp);
209
210 class LocECC2d instantiates GenLocateExtCC from Extrema
211 (Curve2d from Adaptor2d,
212 Curve2dTool from Extrema,
213 Curve2d from Adaptor2d,
214 Curve2dTool from Extrema,
215 POnCurv2d from Extrema,
216 Pnt2d from gp,
217 Vec2d from gp);
7fd59977 218
219 -- Curve-Surface:
220 class ExtCS;
221
222 -- Surface-Surface:
223 class ExtSS;
224
225
226 -----------------------------------------------
227 -- the following class is used to locate
228 -- a first evaluation of the possible extremas.
229 -----------------------------------------------
230 generic class CurveLocator;
231
232
233 --------------------------------------
234 --- instantiations of generic classes:
235 --------------------------------------
236 class POnCurv instantiates Point from Extrema(Pnt from gp);
237 class POnCurv2d instantiates Point from Extrema(Pnt2d from gp);
238
239 class Array1OfPOnCurv instantiates
240 Array1 from TCollection(POnCurv);
241
242 class Array2OfPOnCurv instantiates
243 Array2 from TCollection(POnCurv);
244
245 class Array1OfPOnCurv2d instantiates
246 Array1 from TCollection(POnCurv2d);
247
248 class Array2OfPOnCurv2d instantiates
249 Array2 from TCollection(POnCurv2d);
250
251 class Array1OfPOnSurf instantiates
252 Array1 from TCollection(POnSurf);
253
254 class Array2OfPOnSurf instantiates
255 Array2 from TCollection(POnSurf);
256
6060dd1f 257 class Array2OfPOnSurfParams instantiates
258 Array2 from TCollection(POnSurfParams);
259
7fd59977 260
261 class HArray1OfPOnCurv instantiates
262 HArray1 from TCollection(POnCurv, Array1OfPOnCurv);
263
264 class HArray2OfPOnCurv instantiates
265 HArray2 from TCollection(POnCurv, Array2OfPOnCurv);
266
267 class HArray1OfPOnCurv2d instantiates
268 HArray1 from TCollection(POnCurv2d,Array1OfPOnCurv2d);
269
270 class HArray2OfPOnCurv2d instantiates
271 HArray2 from TCollection(POnCurv2d,Array2OfPOnCurv2d);
272
273
274 class HArray1OfPOnSurf instantiates
275 HArray1 from TCollection(POnSurf, Array1OfPOnSurf);
276
277 class HArray2OfPOnSurf instantiates
278 HArray2 from TCollection(POnSurf, Array2OfPOnSurf);
279
6060dd1f 280 class HArray2OfPOnSurfParams instantiates
281 HArray2 from TCollection(POnSurfParams, Array2OfPOnSurfParams);
282
7fd59977 283
284 class SequenceOfPOnCurv instantiates
285 Sequence from TCollection(POnCurv);
286
287 class SequenceOfPOnCurv2d instantiates
288 Sequence from TCollection(POnCurv2d);
289
290 class SequenceOfPOnSurf instantiates
291 Sequence from TCollection(POnSurf);
292
293
294
295 --- 3d instantiations:
296 class ExtPC instantiates GExtPC from Extrema
297 (Curve from Adaptor3d,
298 CurveTool from Extrema,
299 ExtPElC from Extrema,
300 Pnt from gp,
301 Vec from gp,
302 POnCurv from Extrema,
303 SequenceOfPOnCurv from Extrema);
304
305
306 class LocateExtPC instantiates GLocateExtPC from Extrema
307 (Curve from Adaptor3d,
308 CurveTool from Extrema,
309 ExtPElC from Extrema,
310 Pnt from gp,
311 Vec from gp,
312 POnCurv from Extrema,
313 SequenceOfPOnCurv from Extrema);
7fd59977 314
315 --- 2d instantiations:
316 class ExtPC2d instantiates GExtPC from Extrema
317 (Curve2d from Adaptor2d,
318 Curve2dTool from Extrema,
319 ExtPElC2d from Extrema,
320 Pnt2d from gp,
321 Vec2d from gp,
322 POnCurv2d from Extrema,
323 SequenceOfPOnCurv2d from Extrema);
324
325
326 class LocateExtPC2d instantiates GLocateExtPC from Extrema
327 (Curve2d from Adaptor2d,
328 Curve2dTool from Extrema,
329 ExtPElC2d from Extrema,
330 Pnt2d from gp,
331 Vec2d from gp,
332 POnCurv2d from Extrema,
333 SequenceOfPOnCurv2d from Extrema);
7fd59977 334
335
336end Extrema;