2 -- Created: Tue Feb 26 15:01:07 1991
3 -- Author: Isabelle GRIGNON
5 ---Copyright: Matra Datavision 1991
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
18 -- All methods of all classes will be public.
38 enumeration ExtFlag is ExtFlag_MIN, ExtFlag_MAX, ExtFlag_MINMAX;
40 enumeration ExtAlgo is ExtAlgo_Grad, ExtAlgo_Tree;
48 generic class ExtPSOfRev;
50 -----------------------------------
51 -- Treatement of elementary curves
52 -- and surfaces extremas:
53 -----------------------------------
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;
72 -------------------------------------------------
73 -- classes for POINT-SURFACE extremas:
74 -------------------------------------------------
75 private class FuncExtPS;
78 imported HUBTreeOfSphere;
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;
89 ----------------------------------------------
90 -- classes for CURVE-SURFACE extremas:
91 ----------------------------------------------
92 private class FuncExtCS;
96 ----------------------------------------------
97 -- classes for SURFACE-SURFACE extremas:
98 ----------------------------------------------
99 private class FuncExtSS;
101 class GenLocateExtSS;
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 --------------------------------------------------
109 generic class GExtPC, EPC;
110 generic class GLocateExtPC, ELPC, LocEPC;
117 generic class GExtCC, CCache, ECC;
118 generic class GLocateExtCC, LCCache, ELCC, LocECC;
120 generic class GExtCC2d, CCache2d, ECC2d;
121 generic class GLocateExtCC2d, LCCache2d, ELCC2d, LocECC2d;
130 -----------------------------------------------
131 -- the following class is used to locate
132 -- a first evaluation of the possible extremas.
133 -----------------------------------------------
134 generic class CurveLocator;
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);
143 class Array1OfPOnCurv instantiates
144 Array1 from TCollection(POnCurv);
146 class Array2OfPOnCurv instantiates
147 Array2 from TCollection(POnCurv);
149 class Array1OfPOnCurv2d instantiates
150 Array1 from TCollection(POnCurv2d);
152 class Array2OfPOnCurv2d instantiates
153 Array2 from TCollection(POnCurv2d);
155 class Array1OfPOnSurf instantiates
156 Array1 from TCollection(POnSurf);
158 class Array2OfPOnSurf instantiates
159 Array2 from TCollection(POnSurf);
162 class HArray1OfPOnCurv instantiates
163 HArray1 from TCollection(POnCurv, Array1OfPOnCurv);
165 class HArray2OfPOnCurv instantiates
166 HArray2 from TCollection(POnCurv, Array2OfPOnCurv);
168 class HArray1OfPOnCurv2d instantiates
169 HArray1 from TCollection(POnCurv2d,Array1OfPOnCurv2d);
171 class HArray2OfPOnCurv2d instantiates
172 HArray2 from TCollection(POnCurv2d,Array2OfPOnCurv2d);
175 class HArray1OfPOnSurf instantiates
176 HArray1 from TCollection(POnSurf, Array1OfPOnSurf);
178 class HArray2OfPOnSurf instantiates
179 HArray2 from TCollection(POnSurf, Array2OfPOnSurf);
182 class SequenceOfPOnCurv instantiates
183 Sequence from TCollection(POnCurv);
185 class SequenceOfPOnCurv2d instantiates
186 Sequence from TCollection(POnCurv2d);
188 class SequenceOfPOnSurf instantiates
189 Sequence from TCollection(POnSurf);
193 --- 3d instantiations:
194 class ExtPC instantiates GExtPC from Extrema
195 (Curve from Adaptor3d,
196 CurveTool from Extrema,
197 ExtPElC from Extrema,
200 POnCurv from Extrema,
201 SequenceOfPOnCurv from Extrema);
204 class LocateExtPC instantiates GLocateExtPC from Extrema
205 (Curve from Adaptor3d,
206 CurveTool from Extrema,
207 ExtPElC from Extrema,
210 POnCurv from Extrema,
211 SequenceOfPOnCurv from Extrema);
214 class ExtCC instantiates GExtCC from Extrema
215 (Curve from Adaptor3d,
216 CurveTool from Extrema,
217 Curve from Adaptor3d,
218 CurveTool from Extrema);
220 class LocateExtCC instantiates GLocateExtCC from Extrema
221 (Curve from Adaptor3d,
222 CurveTool from Extrema,
223 Curve from Adaptor3d,
224 CurveTool from Extrema);
227 --- 2d instantiations:
228 class ExtPC2d instantiates GExtPC from Extrema
229 (Curve2d from Adaptor2d,
230 Curve2dTool from Extrema,
231 ExtPElC2d from Extrema,
234 POnCurv2d from Extrema,
235 SequenceOfPOnCurv2d from Extrema);
238 class LocateExtPC2d instantiates GLocateExtPC from Extrema
239 (Curve2d from Adaptor2d,
240 Curve2dTool from Extrema,
241 ExtPElC2d from Extrema,
244 POnCurv2d from Extrema,
245 SequenceOfPOnCurv2d from Extrema);
248 class ExtCC2d instantiates GExtCC2d from Extrema
249 (Curve2d from Adaptor2d,
250 Curve2dTool from Extrema,
251 Curve2d from Adaptor2d,
252 Curve2dTool from Extrema);
254 class LocateExtCC2d instantiates GLocateExtCC2d from Extrema
255 (Curve2d from Adaptor2d,
256 Curve2dTool from Extrema,
257 Curve2d from Adaptor2d,
258 Curve2dTool from Extrema);