42cf5bc1 |
1 | // Created on: 1993-11-09 |
2 | // Created by: Laurent BOURESCHE |
3 | // Copyright (c) 1993-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
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 |
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. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
17 | #ifndef _ChFi3d_Builder_HeaderFile |
18 | #define _ChFi3d_Builder_HeaderFile |
19 | |
c22b52d6 |
20 | #include <BRepAdaptor_Curve2d.hxx> |
21 | #include <BRepAdaptor_Surface.hxx> |
42cf5bc1 |
22 | #include <GeomAbs_Shape.hxx> |
c22b52d6 |
23 | #include <ChFiDS_ErrorStatus.hxx> |
42cf5bc1 |
24 | #include <ChFiDS_ListOfStripe.hxx> |
c22b52d6 |
25 | #include <ChFiDS_Map.hxx> |
42cf5bc1 |
26 | #include <ChFiDS_Regularities.hxx> |
c22b52d6 |
27 | #include <ChFiDS_SequenceOfSurfData.hxx> |
28 | #include <ChFiDS_StripeMap.hxx> |
29 | #include <ChFiDS_ElSpine.hxx> |
30 | #include <math_Vector.hxx> |
31 | #include <TopoDS_Shape.hxx> |
42cf5bc1 |
32 | #include <TopTools_ListOfShape.hxx> |
33 | #include <TopTools_DataMapOfShapeListOfInteger.hxx> |
1d54b807 |
34 | #include <TopTools_DataMapOfShapeShape.hxx> |
42cf5bc1 |
35 | #include <TopAbs_Orientation.hxx> |
42cf5bc1 |
36 | #include <TopAbs_State.hxx> |
1d54b807 |
37 | |
42cf5bc1 |
38 | class TopOpeBRepDS_HDataStructure; |
39 | class TopOpeBRepBuild_HBuilder; |
40 | class Standard_OutOfRange; |
41 | class Standard_NoSuchObject; |
42 | class Standard_ConstructionError; |
42cf5bc1 |
43 | class TopoDS_Edge; |
44 | class ChFiDS_Spine; |
45 | class TopoDS_Vertex; |
46 | class Geom_Surface; |
47 | class ChFiDS_SurfData; |
42cf5bc1 |
48 | class Adaptor3d_TopolTool; |
42cf5bc1 |
49 | class BRepBlend_Line; |
42cf5bc1 |
50 | class Blend_Function; |
51 | class Blend_FuncInv; |
42cf5bc1 |
52 | class Blend_SurfRstFunction; |
53 | class Blend_SurfPointFuncInv; |
54 | class Blend_SurfCurvFuncInv; |
55 | class Blend_RstRstFunction; |
56 | class Blend_CurvPointFuncInv; |
57 | class ChFiDS_Stripe; |
58 | class BRepTopAdaptor_TopolTool; |
59 | class gp_Pnt2d; |
60 | class ChFiDS_CommonPoint; |
61 | class TopoDS_Face; |
62 | class AppBlend_Approx; |
63 | class Geom2d_Curve; |
64 | |
65 | |
66 | //! Root class for calculation of surfaces (fillets, |
67 | //! chamfers) destined to smooth edges of |
68 | //! a gap on a Shape and the reconstruction of the Shape. |
69 | class ChFi3d_Builder |
70 | { |
71 | public: |
72 | |
73 | DEFINE_STANDARD_ALLOC |
74 | |
e6f550da |
75 | Standard_EXPORT virtual ~ChFi3d_Builder(); |
42cf5bc1 |
76 | |
1d54b807 |
77 | Standard_EXPORT void SetParams (const Standard_Real Tang, |
78 | const Standard_Real Tesp, |
79 | const Standard_Real T2d, |
80 | const Standard_Real TApp3d, |
81 | const Standard_Real TolApp2d, |
82 | const Standard_Real Fleche); |
42cf5bc1 |
83 | |
1d54b807 |
84 | Standard_EXPORT void SetContinuity (const GeomAbs_Shape InternalContinuity, |
85 | const Standard_Real AngularTolerance); |
42cf5bc1 |
86 | |
87 | //! extracts from the list the contour containing edge E. |
88 | Standard_EXPORT void Remove (const TopoDS_Edge& E); |
89 | |
90 | //! gives the number of the contour containing E or 0 |
91 | //! if E does not belong to any contour. |
92 | Standard_EXPORT Standard_Integer Contains (const TopoDS_Edge& E) const; |
93 | |
94 | //! gives the number of the contour containing E or 0 |
95 | //! if E does not belong to any contour. |
96 | //! Sets in IndexInSpine the index of E in the contour if it's found |
1d54b807 |
97 | Standard_EXPORT Standard_Integer Contains (const TopoDS_Edge& E, |
98 | Standard_Integer& IndexInSpine) const; |
42cf5bc1 |
99 | |
100 | //! gives the number of disjoint contours on which |
101 | //! the fillets are calculated |
102 | Standard_EXPORT Standard_Integer NbElements() const; |
103 | |
104 | //! gives the n'th set of edges (contour) |
105 | //! if I >NbElements() |
106 | Standard_EXPORT Handle(ChFiDS_Spine) Value (const Standard_Integer I) const; |
107 | |
108 | //! returns the length of the contour of index IC. |
109 | Standard_EXPORT Standard_Real Length (const Standard_Integer IC) const; |
110 | |
111 | //! returns the First vertex V of |
112 | //! the contour of index IC. |
113 | Standard_EXPORT TopoDS_Vertex FirstVertex (const Standard_Integer IC) const; |
114 | |
115 | //! returns the Last vertex V of |
116 | //! the contour of index IC. |
117 | Standard_EXPORT TopoDS_Vertex LastVertex (const Standard_Integer IC) const; |
118 | |
119 | //! returns the abscissa of the vertex V on |
120 | //! the contour of index IC. |
1d54b807 |
121 | Standard_EXPORT Standard_Real Abscissa (const Standard_Integer IC, |
122 | const TopoDS_Vertex& V) const; |
42cf5bc1 |
123 | |
124 | //! returns the relative abscissa([0.,1.]) of the |
125 | //! vertex V on the contour of index IC. |
1d54b807 |
126 | Standard_EXPORT Standard_Real RelativeAbscissa (const Standard_Integer IC, |
127 | const TopoDS_Vertex& V) const; |
42cf5bc1 |
128 | |
129 | //! returns true if the contour of index IC is closed |
130 | //! an tangent. |
131 | Standard_EXPORT Standard_Boolean ClosedAndTangent (const Standard_Integer IC) const; |
132 | |
133 | //! returns true if the contour of index IC is closed |
134 | Standard_EXPORT Standard_Boolean Closed (const Standard_Integer IC) const; |
135 | |
136 | //! general calculation of geometry on all edges, |
137 | //! topologic reconstruction. |
138 | Standard_EXPORT void Compute(); |
139 | |
140 | //! returns True if the computation is success |
141 | Standard_EXPORT Standard_Boolean IsDone() const; |
142 | |
143 | //! if (Isdone()) makes the result. |
144 | //! if (!Isdone()) |
145 | Standard_EXPORT TopoDS_Shape Shape() const; |
146 | |
147 | //! Advanced function for the history |
148 | Standard_EXPORT const TopTools_ListOfShape& Generated (const TopoDS_Shape& EouV); |
149 | |
150 | //! Returns the number of contours on which the calculation |
151 | //! has failed. |
152 | Standard_EXPORT Standard_Integer NbFaultyContours() const; |
153 | |
154 | //! Returns the number of I'th contour on which the calculation |
155 | //! has failed. |
156 | Standard_EXPORT Standard_Integer FaultyContour (const Standard_Integer I) const; |
157 | |
158 | //! Returns the number of surfaces calculated on the contour IC. |
159 | Standard_EXPORT Standard_Integer NbComputedSurfaces (const Standard_Integer IC) const; |
160 | |
161 | //! Returns the IS'th surface calculated on the contour IC. |
1d54b807 |
162 | Standard_EXPORT Handle(Geom_Surface) ComputedSurface (const Standard_Integer IC, |
163 | const Standard_Integer IS) const; |
42cf5bc1 |
164 | |
165 | //! Returns the number of vertices on which the calculation |
166 | //! has failed. |
167 | Standard_EXPORT Standard_Integer NbFaultyVertices() const; |
168 | |
169 | //! Returns the IV'th vertex on which the calculation has failed. |
170 | Standard_EXPORT TopoDS_Vertex FaultyVertex (const Standard_Integer IV) const; |
171 | |
172 | //! returns True if a partial result has been calculated |
173 | Standard_EXPORT Standard_Boolean HasResult() const; |
174 | |
175 | //! if (HasResult()) returns partial result |
176 | //! if (!HasResult()) |
177 | Standard_EXPORT TopoDS_Shape BadShape() const; |
178 | |
179 | //! for the stripe IC ,indication on the cause |
180 | //! of failure WalkingFailure,TwistedSurface,Error, Ok |
181 | Standard_EXPORT ChFiDS_ErrorStatus StripeStatus (const Standard_Integer IC) const; |
182 | |
b81b237f |
183 | //! Reset all results of compute and returns the algorithm |
184 | //! in the state of the last acquisition to enable modification of contours or areas. |
42cf5bc1 |
185 | Standard_EXPORT void Reset(); |
186 | |
187 | //! Returns the Builder of topologic operations. |
188 | Standard_EXPORT Handle(TopOpeBRepBuild_HBuilder) Builder() const; |
189 | |
190 | //! Method, implemented in the inheritants, calculates |
191 | //! the elements of construction of the surface (fillet or |
192 | //! chamfer). |
1d54b807 |
193 | Standard_EXPORT Standard_Boolean SplitKPart (const Handle(ChFiDS_SurfData)& Data, |
194 | ChFiDS_SequenceOfSurfData& SetData, |
195 | const Handle(ChFiDS_Spine)& Spine, |
196 | const Standard_Integer Iedge, |
c22b52d6 |
197 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
198 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
199 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
200 | const Handle(Adaptor3d_TopolTool)& I2, |
201 | Standard_Boolean& Intf, |
202 | Standard_Boolean& Intl); |
42cf5bc1 |
203 | |
dde68833 |
204 | Standard_EXPORT Standard_Boolean PerformTwoCornerbyInter (const Standard_Integer Index); |
42cf5bc1 |
205 | |
206 | |
207 | |
208 | |
209 | protected: |
210 | |
211 | |
212 | Standard_EXPORT ChFi3d_Builder(const TopoDS_Shape& S, const Standard_Real Ta); |
213 | |
214 | Standard_EXPORT virtual void SimulKPart (const Handle(ChFiDS_SurfData)& SD) const = 0; |
215 | |
1d54b807 |
216 | Standard_EXPORT virtual Standard_Boolean SimulSurf (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
217 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
218 | const Handle(ChFiDS_Spine)& Spine, |
219 | const Standard_Integer Choix, |
c22b52d6 |
220 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
221 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
222 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
223 | const Handle(Adaptor3d_TopolTool)& I2, |
224 | const Standard_Real TolGuide, |
225 | Standard_Real& First, |
226 | Standard_Real& Last, |
227 | const Standard_Boolean Inside, |
228 | const Standard_Boolean Appro, |
229 | const Standard_Boolean Forward, |
230 | const Standard_Boolean RecOnS1, |
231 | const Standard_Boolean RecOnS2, |
232 | const math_Vector& Soldep, |
233 | Standard_Integer& Intf, |
234 | Standard_Integer& Intl) = 0; |
235 | |
236 | Standard_EXPORT virtual void SimulSurf (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
237 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
238 | const Handle(ChFiDS_Spine)& Spine, |
239 | const Standard_Integer Choix, |
c22b52d6 |
240 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
241 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
242 | const Handle(BRepAdaptor_Curve2d)& PC1, |
243 | const Handle(BRepAdaptor_Surface)& Sref1, |
244 | const Handle(BRepAdaptor_Curve2d)& PCref1, |
1d54b807 |
245 | Standard_Boolean& Decroch1, |
c22b52d6 |
246 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
247 | const Handle(Adaptor3d_TopolTool)& I2, |
248 | const TopAbs_Orientation Or2, |
249 | const Standard_Real Fleche, |
250 | const Standard_Real TolGuide, |
251 | Standard_Real& First, |
252 | Standard_Real& Last, |
253 | const Standard_Boolean Inside, |
254 | const Standard_Boolean Appro, |
255 | const Standard_Boolean Forward, |
256 | const Standard_Boolean RecP, |
257 | const Standard_Boolean RecS, |
258 | const Standard_Boolean RecRst, |
259 | const math_Vector& Soldep); |
260 | |
261 | Standard_EXPORT virtual void SimulSurf (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
262 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
263 | const Handle(ChFiDS_Spine)& Spine, |
264 | const Standard_Integer Choix, |
c22b52d6 |
265 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
266 | const Handle(Adaptor3d_TopolTool)& I1, |
267 | const TopAbs_Orientation Or1, |
c22b52d6 |
268 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
269 | const Handle(Adaptor3d_TopolTool)& I2, |
c22b52d6 |
270 | const Handle(BRepAdaptor_Curve2d)& PC2, |
271 | const Handle(BRepAdaptor_Surface)& Sref2, |
272 | const Handle(BRepAdaptor_Curve2d)& PCref2, |
1d54b807 |
273 | Standard_Boolean& Decroch2, |
274 | const Standard_Real Fleche, |
275 | const Standard_Real TolGuide, |
276 | Standard_Real& First, |
277 | Standard_Real& Last, |
278 | const Standard_Boolean Inside, |
279 | const Standard_Boolean Appro, |
280 | const Standard_Boolean Forward, |
281 | const Standard_Boolean RecP, |
282 | const Standard_Boolean RecS, |
283 | const Standard_Boolean RecRst, |
284 | const math_Vector& Soldep); |
285 | |
286 | Standard_EXPORT virtual void SimulSurf (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
287 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
288 | const Handle(ChFiDS_Spine)& Spine, |
289 | const Standard_Integer Choix, |
c22b52d6 |
290 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
291 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
292 | const Handle(BRepAdaptor_Curve2d)& PC1, |
293 | const Handle(BRepAdaptor_Surface)& Sref1, |
294 | const Handle(BRepAdaptor_Curve2d)& PCref1, |
1d54b807 |
295 | Standard_Boolean& Decroch1, |
296 | const TopAbs_Orientation Or1, |
c22b52d6 |
297 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
298 | const Handle(Adaptor3d_TopolTool)& I2, |
c22b52d6 |
299 | const Handle(BRepAdaptor_Curve2d)& PC2, |
300 | const Handle(BRepAdaptor_Surface)& Sref2, |
301 | const Handle(BRepAdaptor_Curve2d)& PCref2, |
1d54b807 |
302 | Standard_Boolean& Decroch2, |
303 | const TopAbs_Orientation Or2, |
304 | const Standard_Real Fleche, |
305 | const Standard_Real TolGuide, |
306 | Standard_Real& First, |
307 | Standard_Real& Last, |
308 | const Standard_Boolean Inside, |
309 | const Standard_Boolean Appro, |
310 | const Standard_Boolean Forward, |
311 | const Standard_Boolean RecP1, |
312 | const Standard_Boolean RecRst1, |
313 | const Standard_Boolean RecP2, |
314 | const Standard_Boolean RecRst2, |
315 | const math_Vector& Soldep); |
316 | |
317 | Standard_EXPORT Standard_Boolean SimulData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
318 | const Handle(ChFiDS_ElSpine)& Guide, |
319 | const Handle(ChFiDS_ElSpine)& AdditionalGuide, |
1d54b807 |
320 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
321 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
322 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
323 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
324 | const Handle(Adaptor3d_TopolTool)& I2, |
325 | Blend_Function& Func, |
326 | Blend_FuncInv& FInv, |
327 | const Standard_Real PFirst, |
328 | const Standard_Real MaxStep, |
329 | const Standard_Real Fleche, |
330 | const Standard_Real TolGuide, |
331 | Standard_Real& First, |
332 | Standard_Real& Last, |
333 | const Standard_Boolean Inside, |
334 | const Standard_Boolean Appro, |
335 | const Standard_Boolean Forward, |
336 | const math_Vector& Soldep, |
337 | const Standard_Integer NbSecMin, |
338 | const Standard_Boolean RecOnS1 = Standard_False, |
339 | const Standard_Boolean RecOnS2 = Standard_False); |
340 | |
341 | Standard_EXPORT Standard_Boolean SimulData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
342 | const Handle(ChFiDS_ElSpine)& HGuide, |
1d54b807 |
343 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
344 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
345 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
346 | const Handle(Adaptor3d_Surface)& S2, |
347 | const Handle(Adaptor2d_Curve2d)& PC2, |
1d54b807 |
348 | const Handle(Adaptor3d_TopolTool)& I2, |
349 | Standard_Boolean& Decroch, |
350 | Blend_SurfRstFunction& Func, |
351 | Blend_FuncInv& FInv, |
352 | Blend_SurfPointFuncInv& FInvP, |
353 | Blend_SurfCurvFuncInv& FInvC, |
354 | const Standard_Real PFirst, |
355 | const Standard_Real MaxStep, |
356 | const Standard_Real Fleche, |
357 | const Standard_Real TolGuide, |
358 | Standard_Real& First, |
359 | Standard_Real& Last, |
360 | const math_Vector& Soldep, |
361 | const Standard_Integer NbSecMin, |
362 | const Standard_Boolean Inside, |
363 | const Standard_Boolean Appro, |
364 | const Standard_Boolean Forward, |
365 | const Standard_Boolean RecP, |
366 | const Standard_Boolean RecS, |
367 | const Standard_Boolean RecRst); |
368 | |
369 | Standard_EXPORT Standard_Boolean SimulData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
370 | const Handle(ChFiDS_ElSpine)& HGuide, |
1d54b807 |
371 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
372 | const Handle(Adaptor3d_Surface)& S1, |
373 | const Handle(Adaptor2d_Curve2d)& PC1, |
1d54b807 |
374 | const Handle(Adaptor3d_TopolTool)& I1, |
375 | Standard_Boolean& Decroch1, |
c22b52d6 |
376 | const Handle(Adaptor3d_Surface)& S2, |
377 | const Handle(Adaptor2d_Curve2d)& PC2, |
1d54b807 |
378 | const Handle(Adaptor3d_TopolTool)& I2, |
379 | Standard_Boolean& Decroch2, |
380 | Blend_RstRstFunction& Func, |
381 | Blend_SurfCurvFuncInv& FInv1, |
382 | Blend_CurvPointFuncInv& FInvP1, |
383 | Blend_SurfCurvFuncInv& FInv2, |
384 | Blend_CurvPointFuncInv& FInvP2, |
385 | const Standard_Real PFirst, |
386 | const Standard_Real MaxStep, |
387 | const Standard_Real Fleche, |
388 | const Standard_Real TolGuide, |
389 | Standard_Real& First, |
390 | Standard_Real& Last, |
391 | const math_Vector& Soldep, |
392 | const Standard_Integer NbSecMin, |
393 | const Standard_Boolean Inside, |
394 | const Standard_Boolean Appro, |
395 | const Standard_Boolean Forward, |
396 | const Standard_Boolean RecP1, |
397 | const Standard_Boolean RecRst1, |
398 | const Standard_Boolean RecP2, |
399 | const Standard_Boolean RecRst2); |
42cf5bc1 |
400 | |
401 | Standard_EXPORT virtual void SetRegul() = 0; |
402 | |
1d54b807 |
403 | Standard_EXPORT Standard_Boolean PerformElement (const Handle(ChFiDS_Spine)& CElement, |
404 | const Standard_Real Offset, |
405 | const TopoDS_Face& theFirstFace); |
42cf5bc1 |
406 | |
407 | Standard_EXPORT void PerformExtremity (const Handle(ChFiDS_Spine)& CElement); |
408 | |
1d54b807 |
409 | Standard_EXPORT void PerformSetOfSurf (Handle(ChFiDS_Stripe)& S, |
410 | const Standard_Boolean Simul = Standard_False); |
411 | |
412 | Standard_EXPORT void PerformSetOfKPart (Handle(ChFiDS_Stripe)& S, |
413 | const Standard_Boolean Simul = Standard_False); |
414 | |
415 | Standard_EXPORT void PerformSetOfKGen (Handle(ChFiDS_Stripe)& S, |
416 | const Standard_Boolean Simul = Standard_False); |
417 | |
418 | Standard_EXPORT void Trunc (const Handle(ChFiDS_SurfData)& SD, |
419 | const Handle(ChFiDS_Spine)& Spine, |
c22b52d6 |
420 | const Handle(Adaptor3d_Surface)& S1, |
421 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
422 | const Standard_Integer iedge, |
423 | const Standard_Boolean isfirst, |
424 | const Standard_Integer cntlFiOnS); |
425 | |
426 | Standard_EXPORT void CallPerformSurf (Handle(ChFiDS_Stripe)& Stripe, |
427 | const Standard_Boolean Simul, |
428 | ChFiDS_SequenceOfSurfData& SeqSD, |
429 | Handle(ChFiDS_SurfData)& SD, |
c22b52d6 |
430 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
431 | const Handle(ChFiDS_Spine)& Spine, |
c22b52d6 |
432 | const Handle(BRepAdaptor_Surface)& HS1, |
433 | const Handle(BRepAdaptor_Surface)& HS3, |
1d54b807 |
434 | const gp_Pnt2d& P1, |
435 | const gp_Pnt2d& P3, |
436 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
437 | const Handle(BRepAdaptor_Surface)& HS2, |
438 | const Handle(BRepAdaptor_Surface)& HS4, |
1d54b807 |
439 | const gp_Pnt2d& P2, const gp_Pnt2d& P4, |
440 | const Handle(Adaptor3d_TopolTool)& I2, |
441 | const Standard_Real MaxStep, |
442 | const Standard_Real Fleche, |
443 | const Standard_Real TolGuide, |
444 | Standard_Real& First, |
445 | Standard_Real& Last, |
446 | const Standard_Boolean Inside, |
447 | const Standard_Boolean Appro, |
448 | const Standard_Boolean Forward, |
449 | const Standard_Boolean RecOnS1, |
450 | const Standard_Boolean RecOnS2, |
451 | math_Vector& Soldep, |
452 | Standard_Integer& Intf, |
453 | Standard_Integer& Intl, |
c22b52d6 |
454 | Handle(BRepAdaptor_Surface)& Surf1, |
455 | Handle(BRepAdaptor_Surface)& Surf2); |
42cf5bc1 |
456 | |
457 | //! Method, implemented in the inheritants, calculating |
458 | //! elements of construction of the surface (fillet or |
459 | //! chamfer). |
1d54b807 |
460 | Standard_EXPORT virtual Standard_Boolean PerformSurf (ChFiDS_SequenceOfSurfData& Data, |
c22b52d6 |
461 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
462 | const Handle(ChFiDS_Spine)& Spine, |
463 | const Standard_Integer Choix, |
c22b52d6 |
464 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
465 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
466 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
467 | const Handle(Adaptor3d_TopolTool)& I2, |
468 | const Standard_Real MaxStep, |
469 | const Standard_Real Fleche, |
470 | const Standard_Real TolGuide, |
471 | Standard_Real& First, |
472 | Standard_Real& Last, |
473 | const Standard_Boolean Inside, |
474 | const Standard_Boolean Appro, |
475 | const Standard_Boolean Forward, |
476 | const Standard_Boolean RecOnS1, |
477 | const Standard_Boolean RecOnS2, |
478 | const math_Vector& Soldep, |
479 | Standard_Integer& Intf, |
480 | Standard_Integer& Intl) = 0; |
42cf5bc1 |
481 | |
482 | //! Method, implemented in inheritants, calculates |
483 | //! the elements of construction of the surface (fillet |
484 | //! or chamfer) contact edge/face. |
1d54b807 |
485 | Standard_EXPORT virtual void PerformSurf (ChFiDS_SequenceOfSurfData& Data, |
c22b52d6 |
486 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
487 | const Handle(ChFiDS_Spine)& Spine, |
488 | const Standard_Integer Choix, |
c22b52d6 |
489 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
490 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
491 | const Handle(BRepAdaptor_Curve2d)& PC1, |
492 | const Handle(BRepAdaptor_Surface)& Sref1, |
493 | const Handle(BRepAdaptor_Curve2d)& PCref1, |
1d54b807 |
494 | Standard_Boolean& Decroch1, |
c22b52d6 |
495 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
496 | const Handle(Adaptor3d_TopolTool)& I2, |
497 | const TopAbs_Orientation Or2, |
498 | const Standard_Real MaxStep, |
499 | const Standard_Real Fleche, |
500 | const Standard_Real TolGuide, |
501 | Standard_Real& First, |
502 | Standard_Real& Last, |
503 | const Standard_Boolean Inside, |
504 | const Standard_Boolean Appro, |
505 | const Standard_Boolean Forward, |
506 | const Standard_Boolean RecP, |
507 | const Standard_Boolean RecS, |
508 | const Standard_Boolean RecRst, |
509 | const math_Vector& Soldep); |
42cf5bc1 |
510 | |
511 | //! Method, implemented in inheritants, calculates |
512 | //! the elements of construction of the surface (fillet |
513 | //! or chamfer) contact edge/face. |
1d54b807 |
514 | Standard_EXPORT virtual void PerformSurf (ChFiDS_SequenceOfSurfData& Data, |
c22b52d6 |
515 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
516 | const Handle(ChFiDS_Spine)& Spine, |
517 | const Standard_Integer Choix, |
c22b52d6 |
518 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
519 | const Handle(Adaptor3d_TopolTool)& I1, |
520 | const TopAbs_Orientation Or1, |
c22b52d6 |
521 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
522 | const Handle(Adaptor3d_TopolTool)& I2, |
c22b52d6 |
523 | const Handle(BRepAdaptor_Curve2d)& PC2, |
524 | const Handle(BRepAdaptor_Surface)& Sref2, |
525 | const Handle(BRepAdaptor_Curve2d)& PCref2, |
1d54b807 |
526 | Standard_Boolean& Decroch2, |
527 | const Standard_Real MaxStep, |
528 | const Standard_Real Fleche, |
529 | const Standard_Real TolGuide, |
530 | Standard_Real& First, |
531 | Standard_Real& Last, |
532 | const Standard_Boolean Inside, |
533 | const Standard_Boolean Appro, |
534 | const Standard_Boolean Forward, |
535 | const Standard_Boolean RecP, |
536 | const Standard_Boolean RecS, |
537 | const Standard_Boolean RecRst, |
538 | const math_Vector& Soldep); |
42cf5bc1 |
539 | |
540 | //! Method, implemented in inheritants, calculates |
541 | //! the elements of construction of the surface (fillet |
542 | //! or chamfer) contact edge/edge. |
1d54b807 |
543 | Standard_EXPORT virtual void PerformSurf (ChFiDS_SequenceOfSurfData& Data, |
c22b52d6 |
544 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
545 | const Handle(ChFiDS_Spine)& Spine, |
546 | const Standard_Integer Choix, |
c22b52d6 |
547 | const Handle(BRepAdaptor_Surface)& S1, |
1d54b807 |
548 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
549 | const Handle(BRepAdaptor_Curve2d)& PC1, |
550 | const Handle(BRepAdaptor_Surface)& Sref1, |
551 | const Handle(BRepAdaptor_Curve2d)& PCref1, |
1d54b807 |
552 | Standard_Boolean& Decroch1, |
553 | const TopAbs_Orientation Or1, |
c22b52d6 |
554 | const Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
555 | const Handle(Adaptor3d_TopolTool)& I2, |
c22b52d6 |
556 | const Handle(BRepAdaptor_Curve2d)& PC2, |
557 | const Handle(BRepAdaptor_Surface)& Sref2, |
558 | const Handle(BRepAdaptor_Curve2d)& PCref2, |
1d54b807 |
559 | Standard_Boolean& Decroch2, |
560 | const TopAbs_Orientation Or2, |
561 | const Standard_Real MaxStep, |
562 | const Standard_Real Fleche, |
563 | const Standard_Real TolGuide, |
564 | Standard_Real& First, |
565 | Standard_Real& Last, |
566 | const Standard_Boolean Inside, |
567 | const Standard_Boolean Appro, |
568 | const Standard_Boolean Forward, |
569 | const Standard_Boolean RecP1, |
570 | const Standard_Boolean RecRst1, |
571 | const Standard_Boolean RecP2, |
572 | const Standard_Boolean RecRst2, |
573 | const math_Vector& Soldep); |
42cf5bc1 |
574 | |
575 | Standard_EXPORT virtual void PerformTwoCorner (const Standard_Integer Index) = 0; |
576 | |
577 | Standard_EXPORT virtual void PerformThreeCorner (const Standard_Integer Index) = 0; |
578 | |
1d54b807 |
579 | Standard_EXPORT void PerformMoreThreeCorner (const Standard_Integer Index, |
580 | const Standard_Integer nbcourb); |
42cf5bc1 |
581 | |
1d54b807 |
582 | Standard_EXPORT virtual void ExtentOneCorner (const TopoDS_Vertex& V, |
583 | const Handle(ChFiDS_Stripe)& S) = 0; |
42cf5bc1 |
584 | |
1d54b807 |
585 | Standard_EXPORT virtual void ExtentTwoCorner (const TopoDS_Vertex& V, |
586 | const ChFiDS_ListOfStripe& LS) = 0; |
42cf5bc1 |
587 | |
1d54b807 |
588 | Standard_EXPORT virtual void ExtentThreeCorner (const TopoDS_Vertex& V, |
589 | const ChFiDS_ListOfStripe& LS) = 0; |
42cf5bc1 |
590 | |
1d54b807 |
591 | Standard_EXPORT virtual Standard_Boolean PerformFirstSection (const Handle(ChFiDS_Spine)& S, |
c22b52d6 |
592 | const Handle(ChFiDS_ElSpine)& HGuide, |
1d54b807 |
593 | const Standard_Integer Choix, |
c22b52d6 |
594 | Handle(BRepAdaptor_Surface)& S1, |
595 | Handle(BRepAdaptor_Surface)& S2, |
1d54b807 |
596 | const Handle(Adaptor3d_TopolTool)& I1, |
597 | const Handle(Adaptor3d_TopolTool)& I2, |
598 | const Standard_Real Par, |
599 | math_Vector& SolDep, |
600 | TopAbs_State& Pos1, |
601 | TopAbs_State& Pos2) const = 0; |
42cf5bc1 |
602 | |
1d54b807 |
603 | Standard_EXPORT Standard_Boolean SearchFace (const Handle(ChFiDS_Spine)& Sp, |
604 | const ChFiDS_CommonPoint& Pc, |
605 | const TopoDS_Face& FRef, |
606 | TopoDS_Face& FVoi) const; |
42cf5bc1 |
607 | |
1d54b807 |
608 | Standard_EXPORT Standard_Boolean StripeOrientations (const Handle(ChFiDS_Spine)& Sp, |
609 | TopAbs_Orientation& Or1, |
610 | TopAbs_Orientation& Or2, |
611 | Standard_Integer& ChoixConge) const; |
42cf5bc1 |
612 | |
613 | //! Calculates a Line of contact face/face. |
1d54b807 |
614 | Standard_EXPORT Standard_Boolean ComputeData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
615 | const Handle(ChFiDS_ElSpine)& Guide, |
1d54b807 |
616 | const Handle(ChFiDS_Spine)& Spine, |
617 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
618 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
619 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
620 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
621 | const Handle(Adaptor3d_TopolTool)& I2, |
622 | Blend_Function& Func, |
623 | Blend_FuncInv& FInv, |
624 | const Standard_Real PFirst, |
625 | const Standard_Real MaxStep, |
626 | const Standard_Real Fleche, |
627 | const Standard_Real TolGuide, |
628 | Standard_Real& First, |
629 | Standard_Real& Last, |
630 | const Standard_Boolean Inside, |
631 | const Standard_Boolean Appro, |
632 | const Standard_Boolean Forward, |
633 | const math_Vector& Soldep, |
634 | Standard_Integer& Intf, |
635 | Standard_Integer& Intl, |
636 | Standard_Boolean& Gd1, |
637 | Standard_Boolean& Gd2, |
638 | Standard_Boolean& Gf1, |
639 | Standard_Boolean& Gf2, |
640 | const Standard_Boolean RecOnS1 = Standard_False, |
641 | const Standard_Boolean RecOnS2 = Standard_False); |
42cf5bc1 |
642 | |
643 | //! Calculates a Line of contact edge/face. |
1d54b807 |
644 | Standard_EXPORT Standard_Boolean ComputeData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
645 | const Handle(ChFiDS_ElSpine)& HGuide, |
1d54b807 |
646 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
647 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
648 | const Handle(Adaptor3d_TopolTool)& I1, |
c22b52d6 |
649 | const Handle(Adaptor3d_Surface)& S2, |
650 | const Handle(Adaptor2d_Curve2d)& PC2, |
1d54b807 |
651 | const Handle(Adaptor3d_TopolTool)& I2, |
652 | Standard_Boolean& Decroch, |
653 | Blend_SurfRstFunction& Func, |
654 | Blend_FuncInv& FInv, |
655 | Blend_SurfPointFuncInv& FInvP, |
656 | Blend_SurfCurvFuncInv& FInvC, |
657 | const Standard_Real PFirst, |
658 | const Standard_Real MaxStep, |
659 | const Standard_Real Fleche, |
660 | const Standard_Real TolGuide, |
661 | Standard_Real& First, |
662 | Standard_Real& Last, |
663 | const math_Vector& Soldep, |
664 | const Standard_Boolean Inside, |
665 | const Standard_Boolean Appro, |
666 | const Standard_Boolean Forward, |
667 | const Standard_Boolean RecP, |
668 | const Standard_Boolean RecS, |
669 | const Standard_Boolean RecRst); |
42cf5bc1 |
670 | |
671 | //! Calculates a Line of contact edge/edge. |
1d54b807 |
672 | Standard_EXPORT Standard_Boolean ComputeData (Handle(ChFiDS_SurfData)& Data, |
c22b52d6 |
673 | const Handle(ChFiDS_ElSpine)& HGuide, |
1d54b807 |
674 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
675 | const Handle(Adaptor3d_Surface)& S1, |
676 | const Handle(Adaptor2d_Curve2d)& PC1, |
1d54b807 |
677 | const Handle(Adaptor3d_TopolTool)& I1, |
678 | Standard_Boolean& Decroch1, |
c22b52d6 |
679 | const Handle(Adaptor3d_Surface)& S2, |
680 | const Handle(Adaptor2d_Curve2d)& PC2, |
1d54b807 |
681 | const Handle(Adaptor3d_TopolTool)& I2, |
682 | Standard_Boolean& Decroch2, |
683 | Blend_RstRstFunction& Func, |
684 | Blend_SurfCurvFuncInv& FInv1, |
685 | Blend_CurvPointFuncInv& FInvP1, |
686 | Blend_SurfCurvFuncInv& FInv2, |
687 | Blend_CurvPointFuncInv& FInvP2, |
688 | const Standard_Real PFirst, |
689 | const Standard_Real MaxStep, |
690 | const Standard_Real Fleche, |
691 | const Standard_Real TolGuide, |
692 | Standard_Real& First, |
693 | Standard_Real& Last, |
694 | const math_Vector& Soldep, |
695 | const Standard_Boolean Inside, |
696 | const Standard_Boolean Appro, |
697 | const Standard_Boolean Forward, |
698 | const Standard_Boolean RecP1, |
699 | const Standard_Boolean RecRst1, |
700 | const Standard_Boolean RecP2, |
701 | const Standard_Boolean RecRst2); |
702 | |
703 | Standard_EXPORT Standard_Boolean CompleteData (Handle(ChFiDS_SurfData)& Data, |
704 | Blend_Function& Func, |
705 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
706 | const Handle(Adaptor3d_Surface)& S1, |
707 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
708 | const TopAbs_Orientation Or1, |
709 | const Standard_Boolean Gd1, |
710 | const Standard_Boolean Gd2, |
711 | const Standard_Boolean Gf1, |
712 | const Standard_Boolean Gf2, |
713 | const Standard_Boolean Reversed = Standard_False); |
714 | |
715 | Standard_EXPORT Standard_Boolean CompleteData (Handle(ChFiDS_SurfData)& Data, |
716 | Blend_SurfRstFunction& Func, |
717 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
718 | const Handle(Adaptor3d_Surface)& S1, |
719 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
720 | const TopAbs_Orientation Or, |
721 | const Standard_Boolean Reversed); |
722 | |
723 | Standard_EXPORT Standard_Boolean CompleteData (Handle(ChFiDS_SurfData)& Data, |
724 | Blend_RstRstFunction& Func, |
725 | Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
726 | const Handle(Adaptor3d_Surface)& S1, |
727 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
728 | const TopAbs_Orientation Or); |
729 | |
730 | Standard_EXPORT Standard_Boolean StoreData (Handle(ChFiDS_SurfData)& Data, |
731 | const AppBlend_Approx& Approx, |
732 | const Handle(BRepBlend_Line)& Lin, |
c22b52d6 |
733 | const Handle(Adaptor3d_Surface)& S1, |
734 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
735 | const TopAbs_Orientation Or1, |
736 | const Standard_Boolean Gd1, |
737 | const Standard_Boolean Gd2, |
738 | const Standard_Boolean Gf1, |
739 | const Standard_Boolean Gf2, |
740 | const Standard_Boolean Reversed = Standard_False); |
741 | |
742 | Standard_EXPORT Standard_Boolean CompleteData (Handle(ChFiDS_SurfData)& Data, |
743 | const Handle(Geom_Surface)& Surfcoin, |
c22b52d6 |
744 | const Handle(Adaptor3d_Surface)& S1, |
1d54b807 |
745 | const Handle(Geom2d_Curve)& PC1, |
c22b52d6 |
746 | const Handle(Adaptor3d_Surface)& S2, |
1d54b807 |
747 | const Handle(Geom2d_Curve)& PC2, |
748 | const TopAbs_Orientation Or, |
749 | const Standard_Boolean On1, |
750 | const Standard_Boolean Gd1, |
751 | const Standard_Boolean Gd2, |
752 | const Standard_Boolean Gf1, |
753 | const Standard_Boolean Gf2); |
42cf5bc1 |
754 | |
755 | |
756 | Standard_Real tolappangle; |
757 | Standard_Real tolesp; |
758 | Standard_Real tol2d; |
759 | Standard_Real tolapp3d; |
760 | Standard_Real tolapp2d; |
761 | Standard_Real fleche; |
762 | GeomAbs_Shape myConti; |
763 | ChFiDS_Map myEFMap; |
764 | ChFiDS_Map myESoMap; |
765 | ChFiDS_Map myEShMap; |
766 | ChFiDS_Map myVFMap; |
767 | ChFiDS_Map myVEMap; |
768 | Handle(TopOpeBRepDS_HDataStructure) myDS; |
769 | Handle(TopOpeBRepBuild_HBuilder) myCoup; |
770 | ChFiDS_ListOfStripe myListStripe; |
771 | ChFiDS_StripeMap myVDataMap; |
772 | ChFiDS_Regularities myRegul; |
773 | ChFiDS_ListOfStripe badstripes; |
774 | TopTools_ListOfShape badvertices; |
775 | TopTools_DataMapOfShapeListOfInteger myEVIMap; |
1d54b807 |
776 | TopTools_DataMapOfShapeShape myEdgeFirstFace; |
42cf5bc1 |
777 | Standard_Boolean done; |
778 | Standard_Boolean hasresult; |
779 | |
780 | |
781 | private: |
782 | |
783 | |
1d54b807 |
784 | Standard_EXPORT Standard_Boolean FaceTangency (const TopoDS_Edge& E0, |
785 | const TopoDS_Edge& E1, |
786 | const TopoDS_Vertex& V) const; |
42cf5bc1 |
787 | |
c22b52d6 |
788 | Standard_EXPORT void PerformSetOfSurfOnElSpine (const Handle(ChFiDS_ElSpine)& ES, |
1d54b807 |
789 | Handle(ChFiDS_Stripe)& St, |
790 | Handle(BRepTopAdaptor_TopolTool)& It1, |
791 | Handle(BRepTopAdaptor_TopolTool)& It2, |
792 | const Standard_Boolean Simul = Standard_False); |
42cf5bc1 |
793 | |
794 | Standard_EXPORT void PerformFilletOnVertex (const Standard_Integer Index); |
795 | |
796 | Standard_EXPORT void PerformSingularCorner (const Standard_Integer Index); |
797 | |
1d54b807 |
798 | Standard_EXPORT void PerformOneCorner (const Standard_Integer Index, |
799 | const Standard_Boolean PrepareOnSame = Standard_False); |
42cf5bc1 |
800 | |
801 | Standard_EXPORT void IntersectMoreCorner (const Standard_Integer Index); |
802 | |
803 | Standard_EXPORT void PerformMoreSurfdata (const Standard_Integer Index); |
804 | |
805 | Standard_EXPORT void PerformIntersectionAtEnd (const Standard_Integer Index); |
806 | |
807 | Standard_EXPORT void ExtentAnalyse(); |
808 | |
1d54b807 |
809 | Standard_EXPORT Standard_Boolean FindFace (const TopoDS_Vertex& V, |
810 | const ChFiDS_CommonPoint& P1, |
811 | const ChFiDS_CommonPoint& P2, |
812 | TopoDS_Face& Fv) const; |
42cf5bc1 |
813 | |
1d54b807 |
814 | Standard_EXPORT Standard_Boolean FindFace (const TopoDS_Vertex& V, |
815 | const ChFiDS_CommonPoint& P1, |
816 | const ChFiDS_CommonPoint& P2, |
817 | TopoDS_Face& Fv, |
818 | const TopoDS_Face& Favoid) const; |
42cf5bc1 |
819 | |
820 | Standard_EXPORT Standard_Boolean MoreSurfdata (const Standard_Integer Index) const; |
821 | |
1d54b807 |
822 | Standard_EXPORT Standard_Boolean StartSol (const Handle(ChFiDS_Spine)& Spine, |
c22b52d6 |
823 | Handle(BRepAdaptor_Surface)& HS, |
1d54b807 |
824 | gp_Pnt2d& P, |
c22b52d6 |
825 | Handle(BRepAdaptor_Curve2d)& HC, |
1d54b807 |
826 | Standard_Real& W, |
827 | const Handle(ChFiDS_SurfData)& SD, |
828 | const Standard_Boolean isFirst, |
829 | const Standard_Integer OnS, |
c22b52d6 |
830 | Handle(BRepAdaptor_Surface)& HSref, |
831 | Handle(BRepAdaptor_Curve2d)& HCref, |
1d54b807 |
832 | Standard_Boolean& RecP, |
833 | Standard_Boolean& RecS, |
834 | Standard_Boolean& RecRst, |
835 | Standard_Boolean& C1Obst, |
c22b52d6 |
836 | Handle(BRepAdaptor_Surface)& HSbis, |
1d54b807 |
837 | gp_Pnt2d& Pbis, |
838 | const Standard_Boolean Decroch, |
839 | const TopoDS_Vertex& Vref) const; |
840 | |
841 | Standard_EXPORT void StartSol (const Handle(ChFiDS_Stripe)& S, |
c22b52d6 |
842 | const Handle(ChFiDS_ElSpine)& HGuide, |
843 | Handle(BRepAdaptor_Surface)& HS1, |
844 | Handle(BRepAdaptor_Surface)& HS2, |
1d54b807 |
845 | Handle(BRepTopAdaptor_TopolTool)& I1, |
846 | Handle(BRepTopAdaptor_TopolTool)& I2, |
847 | gp_Pnt2d& P1, |
848 | gp_Pnt2d& P2, |
849 | Standard_Real& First) const; |
850 | |
851 | Standard_EXPORT void ConexFaces (const Handle(ChFiDS_Spine)& Sp, |
852 | const Standard_Integer IEdge, |
c22b52d6 |
853 | Handle(BRepAdaptor_Surface)& HS1, |
854 | Handle(BRepAdaptor_Surface)& HS2) const; |
42cf5bc1 |
855 | |
856 | |
857 | TopoDS_Shape myShape; |
858 | Standard_Real angular; |
859 | TopTools_ListOfShape myGenerated; |
860 | TopoDS_Shape myShapeResult; |
861 | TopoDS_Shape badShape; |
862 | |
863 | |
864 | }; |
865 | |
866 | |
867 | |
868 | |
869 | |
870 | |
871 | |
872 | #endif // _ChFi3d_Builder_HeaderFile |