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