7fd59977 |
1 | -- File: Blend_Walking.cdl |
2 | -- Created: Thu Dec 2 11:33:03 1993 |
3 | -- Author: Jacques GOUSSARD |
4 | -- <jag@topsn2> |
5 | ---Copyright: Matra Datavision 1993 |
6 | |
7 | |
8 | |
9 | generic class Walking from Blend |
10 | (TheVertex as any; |
11 | TheArc as any; |
12 | TheSurface as any; |
13 | TheCurve as any; |
14 | TheVertexTool as any; |
15 | TheArcTool as any; |
16 | TheSurfaceTool as any; |
17 | TheCurveTool as any; |
18 | TheTopolTool as Transient; |
19 | TheBlendTool as any; |
20 | ThePointOnRst as any; -- as PointOnRst from Blend(TheArc) |
21 | TheSeqPointOnRst as any; -- as Iterator from Blend(ThePointOnRst) |
22 | TheExtremity as any; -- as Extremity from Blend(TheVertex,TheArc, |
23 | -- ThePointOnRst,TheSeqPointOnRst) |
24 | TheLine as Transient) -- as Line from Blend(TheVertex,TheArc, |
25 | -- ThePointOnRst,TheSeqPointOnRst, |
26 | -- TheExtremity) |
27 | |
28 | |
29 | |
30 | ---Purpose: |
31 | |
32 | uses Point from Blend, |
33 | SequenceOfPoint from Blend, |
34 | Status from Blend, |
35 | Vector from math, |
36 | Matrix from math, |
37 | Pnt from gp, |
38 | Pnt2d from gp, |
39 | Vec from gp, |
40 | Vec2d from gp, |
41 | Transition from IntSurf, |
42 | Function from Blend, |
43 | FuncInv from Blend, |
44 | State from TopAbs |
45 | |
46 | |
47 | raises NotDone from StdFail |
48 | |
49 | |
50 | is |
51 | |
52 | Create(Surf1,Surf2: TheSurface; Domain1,Domain2: TheTopolTool) |
53 | |
54 | returns Walking from Blend; |
55 | |
56 | |
57 | SetDomainsToRecadre(me : in out; RecDomain1, RecDomain2: TheTopolTool); |
58 | ---Purpose: To define different domains for control and clipping. |
59 | |
60 | AddSingularPoint(me : in out; P : Point from Blend); |
61 | ---Purpose: To define singular points computed before walking. |
62 | |
63 | Perform(me: in out; F : in out Function from Blend; |
64 | FInv : in out FuncInv from Blend; |
65 | Pdep : Real from Standard; |
66 | Pmax : Real from Standard; |
67 | MaxStep : Real from Standard; |
68 | TolGuide: Real from Standard; |
69 | Soldep : Vector from math; |
70 | Tolesp : Real from Standard; |
71 | Fleche : Real from Standard; |
72 | Appro : Boolean from Standard = Standard_False) |
73 | |
74 | |
75 | is static; |
76 | |
77 | |
78 | PerformFirstSection(me : in out; |
79 | F : in out Function from Blend; |
80 | Pdep : Real from Standard; |
81 | ParDep : in out Vector from math; |
82 | Tolesp : Real from Standard; |
83 | TolGuide : Real from Standard; |
84 | Pos1, Pos2 : out State from TopAbs) |
85 | returns Boolean from Standard |
86 | is static; |
87 | |
88 | |
89 | PerformFirstSection(me: in out; |
90 | F : in out Function from Blend; |
91 | FInv : in out FuncInv from Blend; |
92 | Pdep : Real from Standard; |
93 | Pmax : Real from Standard; |
94 | ParDep : Vector from math; |
95 | Tolesp : Real from Standard; |
96 | TolGuide : Real from Standard; |
97 | RecOnS1 : Boolean from Standard; |
98 | RecOnS2 : Boolean from Standard; |
99 | Psol : out Real from Standard; |
100 | ParSol : out Vector from math) |
101 | |
102 | returns Boolean from Standard |
103 | is static; |
104 | |
105 | |
106 | Continu(me: in out;F : in out Function from Blend; |
107 | FInv : in out FuncInv from Blend; |
108 | P : Real from Standard) |
109 | |
110 | returns Boolean from Standard |
111 | raises NotDone from StdFail |
112 | is static; |
113 | |
114 | |
115 | Continu(me: in out;F : in out Function from Blend; |
116 | FInv : in out FuncInv from Blend; |
117 | P : Real from Standard; |
118 | OnS1 : Boolean from Standard) |
119 | |
120 | returns Boolean from Standard |
121 | raises NotDone from StdFail |
122 | is static; |
123 | |
124 | |
125 | Complete(me: in out;F : in out Function from Blend; |
126 | FInv : in out FuncInv from Blend; |
127 | Pmin : Real from Standard) |
128 | |
129 | returns Boolean from Standard |
130 | raises NotDone from StdFail |
131 | is static; |
132 | |
133 | |
134 | ClassificationOnS1(me : in out; |
135 | C : Boolean from Standard) |
136 | is static; |
137 | |
138 | |
139 | ClassificationOnS2(me : in out; |
140 | C : Boolean from Standard) |
141 | is static; |
142 | |
143 | |
144 | Check2d(me : in out; |
145 | C : Boolean from Standard) |
146 | is static; |
147 | |
148 | |
149 | Check(me : in out; |
150 | C : Boolean from Standard) |
151 | is static; |
152 | |
153 | TwistOnS1(me) returns Boolean from Standard |
154 | ---C++: inline |
155 | is static; |
156 | |
157 | TwistOnS2(me) returns Boolean from Standard |
158 | ---C++: inline |
159 | is static; |
160 | |
161 | InternalPerform (me: in out;F : in out Function from Blend; |
162 | FInv : in out FuncInv from Blend; |
163 | Bound : Real from Standard) |
164 | |
165 | is static private; |
166 | |
167 | |
168 | IsDone(me) |
169 | |
170 | returns Boolean from Standard |
171 | ---C++: inline |
172 | |
173 | is static; |
174 | |
175 | |
176 | |
177 | |
178 | Line(me) |
179 | |
180 | returns TheLine |
181 | ---C++: inline |
182 | ---C++: return const& |
183 | |
184 | raises NotDone from StdFail |
185 | |
186 | is static; |
187 | |
188 | ArcToRecadre(me: in out; |
189 | OnFirst: Boolean from Standard; |
190 | Sol: Vector from math; |
191 | PrevIndex : Integer; |
192 | lpt2d : out Pnt2d from gp; |
193 | pt2d : out Pnt2d from gp; |
194 | ponarc : out Real) |
195 | returns Integer from Standard |
196 | is static private; |
197 | |
198 | |
199 | Recadre(me: in out; FInv : in out FuncInv from Blend; |
200 | OnFirst: Boolean from Standard; |
201 | Sol: Vector from math; |
202 | Solrst : out Vector from math; |
203 | Indexsol: out Integer from Standard; |
204 | IsVtx: out Boolean from Standard; |
205 | Vtx: out TheVertex; |
206 | Extrap : Real = 0.0) |
207 | returns Boolean from Standard |
208 | is static private; |
209 | |
210 | |
211 | Transition(me:in out; OnFirst: Boolean from Standard; |
212 | A: TheArc; Param: Real from Standard; |
213 | TLine,TArc: out Transition from IntSurf) |
214 | |
215 | is static private; |
216 | |
217 | |
218 | MakeExtremity(me:in out; Extrem : in out TheExtremity; |
219 | OnFirst: Boolean from Standard; |
220 | Index : Integer from Standard; |
221 | Param : Real from Standard; |
222 | IsVtx : Boolean from Standard; |
223 | Vtx : TheVertex) |
224 | |
225 | is static private; |
226 | |
227 | MakeSingularExtremity(me:in out; |
228 | Extrem : in out TheExtremity; |
229 | OnFirst: Boolean from Standard; |
230 | Vtx : TheVertex) |
231 | |
232 | is static private; |
233 | |
234 | |
235 | CheckDeflection(me: in out; OnFirst : Boolean from Standard; |
236 | CurPoint : Point from Blend) |
237 | returns Status from Blend |
238 | is static private; |
239 | |
240 | |
241 | TestArret(me: in out; F : in out Function from Blend; |
242 | State: Status from Blend; |
243 | TestDeflection : Boolean = Standard_True; |
244 | TestSolution : Boolean = Standard_True; |
245 | TestLengthStep : Boolean = Standard_False) |
246 | returns Status from Blend |
247 | is static private; |
248 | |
249 | |
250 | |
251 | fields |
252 | previousP : Point from Blend; |
253 | line : TheLine; |
254 | sol : Vector from math; |
255 | jalons : SequenceOfPoint from Blend; |
256 | surf1 : TheSurface; |
257 | surf2 : TheSurface; |
258 | domain1 : TheTopolTool; |
259 | domain2 : TheTopolTool; |
260 | recdomain1 : TheTopolTool; |
261 | recdomain2 : TheTopolTool; |
262 | |
263 | tolesp : Real from Standard; |
264 | tolgui : Real from Standard; |
265 | pasmax : Real from Standard; |
266 | fleche : Real from Standard; |
267 | param : Real from Standard; |
268 | sens : Real from Standard; |
269 | |
270 | done : Boolean from Standard; |
271 | rebrou : Boolean from Standard; |
272 | iscomplete : Boolean from Standard; |
273 | comptra : Boolean from Standard; |
274 | clasonS1 : Boolean from Standard; |
275 | clasonS2 : Boolean from Standard; |
276 | check2d : Boolean from Standard; |
277 | check : Boolean from Standard; |
278 | twistflag1 : Boolean from Standard; |
279 | twistflag2 : Boolean from Standard; |
280 | end Walking; |