Commit | Line | Data |
---|---|---|
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 | ||
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, | |
92d1589b A |
33 | Geom2d, |
34 | Bnd | |
7fd59977 | 35 | |
36 | is | |
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 | ||
263 | end Extrema; |