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