1 -- File: BRepBlend_SurfRstLineBuilder.cdl
2 -- Created: Thu Jan 23 16:25:47 1997
3 -- Author: Jacques GOUSSARD
4 -- Author: Laurent BOURESCHE
5 -- <lbo@pomalox.paris1.matra-dtv.fr>
6 ---Copyright: Matra Datavision 1997
8 class SurfRstLineBuilder from BRepBlend
10 ---Purpose: This class processes data resulting from
11 -- Blend_CSWalking taking in consideration the Surface
12 -- supporting the curve to detect the breakpoint.
14 -- The criteria of distribution of points on the line are detailed
15 -- because it is to be used in the calculatuon of values approached
16 -- by an approximation of functions continued basing on
17 -- Blend_SurfRstFunction.
19 -- Thus this pseudo path necessitates 3 criteria of regrouping :
21 -- 1) exit of the domain of the curve
23 -- 2) exit of the domain of the surface
25 -- 3) stall as there is a solution to the problem
26 -- surf/surf within the domain of the surface
27 -- of support of the restriction.
29 uses Point from Blend,
31 SurfRstFunction from Blend,
33 SurfPointFuncInv from Blend,
34 SurfCurvFuncInv from Blend,
42 HArray1OfReal from TColStd,
43 Transition from IntSurf,
44 HVertex from Adaptor3d,
45 HSurface from Adaptor3d,
46 HCurve2d from Adaptor2d,
47 TopolTool from Adaptor3d,
49 Extremity from BRepBlend
53 Create(Surf1 : HSurface from Adaptor3d;
54 Domain1 : TopolTool from Adaptor3d;
55 Surf2 : HSurface from Adaptor3d;
56 Rst : HCurve2d from Adaptor2d;
57 Domain2 : TopolTool from Adaptor3d)
58 returns SurfRstLineBuilder from BRepBlend;
61 Func : in out SurfRstFunction from Blend;
62 Finv : in out FuncInv from Blend;
63 FinvP : in out SurfPointFuncInv from Blend;
64 FinvC : in out SurfCurvFuncInv 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)
75 PerformFirstSection(me : in out;
76 Func : in out SurfRstFunction from Blend;
77 Finv : in out FuncInv from Blend;
78 FinvP : in out SurfPointFuncInv from Blend;
79 FinvC : in out SurfCurvFuncInv from Blend;
80 Pdep : Real from Standard;
81 Pmax : Real from Standard;
82 Soldep : Vector from math;
83 Tolesp : Real from Standard;
84 TolGuide : Real from Standard;
85 RecRst : Boolean from Standard;
86 RecP : Boolean from Standard;
87 RecS : Boolean from Standard;
88 Psol : out Real from Standard;
89 ParSol : out Vector from math)
90 returns Boolean from Standard
94 Func : in out SurfRstFunction from Blend;
95 Finv : in out FuncInv from Blend;
96 FinvP : in out SurfPointFuncInv from Blend;
97 FinvC : in out SurfCurvFuncInv from Blend;
98 Pmin : Real from Standard)
100 returns Boolean from Standard
103 InternalPerform (me : in out;
104 Func : in out SurfRstFunction from Blend;
105 Finv : in out FuncInv from Blend;
106 FinvP : in out SurfPointFuncInv from Blend;
107 FinvC : in out SurfCurvFuncInv from Blend;
108 Bound : Real from Standard)
111 ArcToRecadre(me : in out;
112 Sol : Vector from math;
114 pt2d, lastpt2d : out Pnt2d from gp;
119 FinvC : in out SurfCurvFuncInv from Blend;
120 Solinv : out Vector from math;
121 Arc : out HCurve2d from Adaptor2d;
122 IsVtx : out Boolean from Standard;
123 Vtx : out HVertex from Adaptor3d)
124 returns Boolean from Standard
128 Func : in out SurfRstFunction from Blend;
129 Finv : in out FuncInv from Blend;
130 Solinv : out Vector from math;
131 IsVtx : out Boolean from Standard;
132 Vtx : out HVertex from Adaptor3d)
133 returns Boolean from Standard
137 FinvP : in out SurfPointFuncInv from Blend;
138 Solinv : out Vector from math;
139 IsVtx : out Boolean from Standard;
140 Vtx : out HVertex from Adaptor3d)
141 returns Boolean from Standard
145 returns Boolean from Standard
150 returns Line from BRepBlend
152 ---C++: return const&
156 returns Boolean from Standard
161 returns Boolean from Standard
165 Transition(me : in out;
166 OnFirst : Boolean from Standard;
167 Arc : HCurve2d from Adaptor2d;
168 Param : Real from Standard;
169 TLine,TArc : out Transition from IntSurf)
172 MakeExtremity(me : in out;
173 Extrem : in out Extremity from BRepBlend;
174 OnFirst : Boolean from Standard;
175 Arc : HCurve2d from Adaptor2d;
176 Param : Real from Standard;
177 IsVtx : Boolean from Standard;
178 Vtx : HVertex from Adaptor3d)
181 CheckDeflectionOnSurf(me : in out;
182 CurPoint : Point from Blend)
183 returns Status from Blend
186 CheckDeflectionOnRst(me : in out;
187 CurPoint : Point from Blend)
188 returns Status from Blend
191 TestArret(me : in out;
192 Func : in out SurfRstFunction from Blend;
193 TestDeflection : Boolean from Standard;
194 State : Status from Blend)
195 returns Status from Blend
198 CheckInside(me : in out;
199 Func : in out SurfRstFunction from Blend;
200 SituOnC : out State from TopAbs;
201 SituOnS : out State from TopAbs;
202 Decroch : out Boolean from Standard)
203 returns Boolean from Standard
208 done : Boolean from Standard;
209 line : Line from BRepBlend;
210 sol : Vector from math;
211 surf1 : HSurface from Adaptor3d;
212 domain1 : TopolTool from Adaptor3d;
213 surf2 : HSurface from Adaptor3d;
214 rst : HCurve2d from Adaptor2d;
215 domain2 : TopolTool from Adaptor3d;
217 tolesp : Real from Standard;
218 tolgui : Real from Standard;
219 pasmax : Real from Standard;
220 fleche : Real from Standard;
221 param : Real from Standard;
222 previousP : Point from Blend;
223 rebrou : Boolean from Standard;
224 iscomplete : Boolean from Standard;
225 comptra : Boolean from Standard;
226 sens : Real from Standard;
227 decrochdeb : Boolean from Standard;
228 decrochfin : Boolean from Standard;
230 end SurfRstLineBuilder from BRepBlend;