0024166: Unable to create file with "Save" menu of voxeldemo Qt sample
[occt.git] / src / ChFi3d / ChFi3d_Builder_0.hxx
CommitLineData
b311480e 1// Created on: 1994-03-24
2// Created by: Isabelle GRIGNON
3// Copyright (c) 1994-1999 Matra Datavision
4// Copyright (c) 1999-2012 OPEN CASCADE SAS
5//
6// The content of this file is subject to the Open CASCADE Technology Public
7// License Version 6.5 (the "License"). You may not use the content of this file
8// except in compliance with the License. Please obtain a copy of the License
9// at http://www.opencascade.org and read it completely before using this file.
10//
11// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13//
14// The Original Code and all software distributed under the License is
15// distributed on an "AS IS" basis, without warranty of any kind, and the
16// Initial Developer hereby disclaims all such warranties, including without
17// limitation, any warranties of merchantability, fitness for a particular
18// purpose or non-infringement. Please see the License for the specific terms
19// and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23#ifndef ChFi3d_Builder_0_HeaderFile
24#define ChFi3d_Builder_0_HeaderFile
25
26#include <TopOpeBRepDS_SurfaceCurveInterference.hxx>
27#include <TopOpeBRepDS_CurvePointInterference.hxx>
28#include <TopOpeBRepDS_DataStructure.hxx>
29#include <TopOpeBRepDS_Curve.hxx>
30#include <TopOpeBRepDS_Surface.hxx>
31#include <BRepBlend_Extremity.hxx>
32#include <ChFiDS_Stripe.hxx>
33#include <ChFiDS_SurfData.hxx>
34#include <ChFiDS_Spine.hxx>
35#include <ChFiDS_HElSpine.hxx>
36#include <ChFiDS_CommonPoint.hxx>
37#include <ChFiDS_Regularities.hxx>
38#include <ChFiDS_FaceInterference.hxx>
39#include <ChFiDS_Map.hxx>
40#include <TopoDS_Face.hxx>
41#include <TopoDS_Vertex.hxx>
42#include <TopoDS.hxx>
43#include <TopAbs_Orientation.hxx>
44#include <TopTools_ListOfShape.hxx>
45#include <TopTools_ListIteratorOfListOfShape.hxx>
46#include <IntSurf_LineOn2S.hxx>
47#include <IntSurf_TypeTrans.hxx>
48#include <GeomFill_Boundary.hxx>
49#include <GeomFill_BoundWithSurf.hxx>
50#include <GeomFill_SimpleBound.hxx>
51#include <GeomFill_ConstrainedFilling.hxx>
52#include <Geom2d_Curve.hxx>
53#include <Geom_Curve.hxx>
54#include <Geom_TrimmedCurve.hxx>
55#include <Geom_Surface.hxx>
56#include <Geom_BezierCurve.hxx>
57#include <Geom_Circle.hxx>
58#include <GeomAdaptor_Curve.hxx>
59#include <GeomAdaptor_Surface.hxx>
60#include <GeomAdaptor_HSurface.hxx>
61#include <BRepAdaptor_Surface.hxx>
62#include <BRepAdaptor_HSurface.hxx>
63#include <Adaptor3d_HCurve.hxx>
64#include <Adaptor3d_HCurveOnSurface.hxx>
65#include <Adaptor3d_HSurface.hxx>
66#include <Extrema_LocateExtCC.hxx>
67#include <Extrema_POnCurv.hxx>
68#include <Bnd_Box.hxx>
69#include <GeomAbs_Shape.hxx>
70#include <gp_Pnt.hxx>
71#include <gp_Vec.hxx>
72#include <gp_Pnt2d.hxx>
73#include <gp_Vec2d.hxx>
74#include <gp_Dir2d.hxx>
75#include <TColgp_Array1OfPnt.hxx>
76#include <TColgp_Array1OfVec.hxx>
77#include <TColStd_Array1OfReal.hxx>
78#include <TColStd_Array1OfInteger.hxx>
79#include <TopTools_Array1OfShape.hxx>
80#ifdef DEB
81#include <OSD_Chronometer.hxx>
82extern OSD_Chronometer simul,elspine,chemine;
83#endif
84
85Standard_Real ChFi3d_InPeriod(const Standard_Real U,
86 const Standard_Real UFirst,
87 const Standard_Real ULast,
88 const Standard_Real Eps);
89
90void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
91 Standard_Real& mu,Standard_Real& Mu,
92 Standard_Real& mv,Standard_Real& Mv);
93
94void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
95 const gp_Pnt2d& p3,const gp_Pnt2d& p4,
96 Standard_Real& Du,Standard_Real& Dv,
97 Standard_Real& mu,Standard_Real& Mu,
98 Standard_Real& mv,Standard_Real& Mv);
99
100void ChFi3d_SetPointTolerance(TopOpeBRepDS_DataStructure& DStr,
101 const Bnd_Box& box,
102 const Standard_Integer IP);
103
104void ChFi3d_EnlargeBox(const Handle(Geom_Curve)& C,
105 const Standard_Real wd,
106 const Standard_Real wf,
107 Bnd_Box& box1,
108 Bnd_Box& box2);
109
110void ChFi3d_EnlargeBox(const Handle(Adaptor3d_HSurface)& S,
111 const Handle(Geom2d_Curve)& PC,
112 const Standard_Real wd,
113 const Standard_Real wf,
114 Bnd_Box& box1,
115 Bnd_Box& box2);
116
117void ChFi3d_EnlargeBox(const TopoDS_Edge& E,
118 const TopTools_ListOfShape& LF,
119 const Standard_Real w,
120 Bnd_Box& box);
121
122void ChFi3d_EnlargeBox(TopOpeBRepDS_DataStructure& DStr,
123 const Handle(ChFiDS_Stripe)& st,
124 const Handle(ChFiDS_SurfData)& sd,
125 Bnd_Box& b1,
126 Bnd_Box& b2,
127 const Standard_Boolean isfirst);
128
129GeomAbs_Shape ChFi3d_evalconti(const TopoDS_Edge& E,
130 const TopoDS_Face& F1,
131 const TopoDS_Face& F2);
132
133void ChFi3d_conexfaces(const TopoDS_Edge& E,
134 TopoDS_Face& F1,
135 TopoDS_Face& F2,
136 const ChFiDS_Map& EFMap);
137
138ChFiDS_State ChFi3d_EdgeState(TopoDS_Edge* E,
139 const ChFiDS_Map& EFMap);
140
141Standard_Boolean ChFi3d_KParticular
142(const Handle(ChFiDS_Spine)& Spine,
143 const Standard_Integer IE,
144 const BRepAdaptor_Surface& S1,
145 const BRepAdaptor_Surface& S2);
146
147void ChFi3d_BoundFac(BRepAdaptor_Surface& S,
148 const Standard_Real umin,
149 const Standard_Real umax,
150 const Standard_Real vmin,
151 const Standard_Real vmax,
152 const Standard_Boolean checknaturalbounds = Standard_True);
153
154void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
155 const Standard_Real umin,
156 const Standard_Real umax,
157 const Standard_Real vmin,
158 const Standard_Real vmax,
159 const Standard_Boolean checknaturalbounds = Standard_True);
160
161Standard_Boolean ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
162 Handle(Adaptor3d_HCurve)& C,
163 Standard_Real& W,
164 const Standard_Boolean Sens,
165 const Standard_Real tolc);
166
167void ChFi3d_ExtrSpineCarac(const TopOpeBRepDS_DataStructure& DStr,
168 const Handle(ChFiDS_Stripe)& cd,
169 const Standard_Integer i,
170 const Standard_Real p,
171 const Standard_Integer jf,
172 const Standard_Integer sens,
173 gp_Pnt& P,
174 gp_Vec& V,
175 Standard_Real& R);
176
177Handle(Geom_Circle) ChFi3d_CircularSpine(Standard_Real& WFirst,
178 Standard_Real& WLast,
179 const gp_Pnt& Pdeb,
180 const gp_Vec& Vdeb,
181 const gp_Pnt& Pfin,
182 const gp_Vec& Vfin,
183 const Standard_Real rad);
184
185Handle(Geom_BezierCurve) ChFi3d_Spine(const gp_Pnt& pd,
186 gp_Vec& vd,
187 const gp_Pnt& pf,
188 gp_Vec& vf,
189 const Standard_Real R);
190
191Handle(GeomFill_Boundary) ChFi3d_mkbound
192(const Handle(Adaptor3d_HSurface)& Fac,
193 Handle(Geom2d_Curve)& curv,
194 const Standard_Integer sens1,
195 const gp_Pnt2d& pfac1,
196 const gp_Vec2d& vfac1,
197 const Standard_Integer sens2,
198 const gp_Pnt2d& pfac2,
199 const gp_Vec2d& vfac2,
200 const Standard_Real t3d,
201 const Standard_Real ta);
202
203Handle(GeomFill_Boundary) ChFi3d_mkbound
204(const Handle(Adaptor3d_HSurface)& Surf,
205 Handle(Geom2d_Curve)& curv,
206 const Standard_Integer sens1,
207 const gp_Pnt2d& p1,
208 gp_Vec& v1,
209 const Standard_Integer sens2,
210 const gp_Pnt2d& p2,
211 gp_Vec& v2,
212 const Standard_Real t3d,
213 const Standard_Real ta);
214
215Handle(GeomFill_Boundary) ChFi3d_mkbound
216(const Handle(Geom_Surface)& s,
217 const gp_Pnt2d& p1,
218 const gp_Pnt2d& p2,
219 const Standard_Real t3d,
220 const Standard_Real ta,
221 const Standard_Boolean isfreeboundary = Standard_False);
222
223Handle(GeomFill_Boundary) ChFi3d_mkbound
224(const Handle(Adaptor3d_HSurface)& HS,
225 const gp_Pnt2d& p1,
226 const gp_Pnt2d& p2,
227 const Standard_Real t3d,
228 const Standard_Real ta,
229 const Standard_Boolean isfreeboundary = Standard_False);
230
231Handle(GeomFill_Boundary) ChFi3d_mkbound
232(const Handle(Adaptor3d_HSurface)& HS,
233 const Handle(Geom2d_Curve)& curv,
234 const Standard_Real t3d,
235 const Standard_Real ta,
236 const Standard_Boolean isfreeboundary = Standard_False);
237
238Handle(GeomFill_Boundary) ChFi3d_mkbound
239(const Handle(Adaptor3d_HSurface)& Fac,
240 Handle(Geom2d_Curve)& curv,
241 const gp_Pnt2d& p1,
242 const gp_Pnt2d& p2,
243 const Standard_Real t3d,
244 const Standard_Real ta,
245 const Standard_Boolean isfreeboundary = Standard_False);
246
247void ChFi3d_Coefficient(const gp_Vec& V3d,
248 const gp_Vec& D1u,
249 const gp_Vec& D1v,
250 Standard_Real& DU,
251 Standard_Real& DV);
252
253Handle(Geom2d_Curve) ChFi3d_BuildPCurve
254(const gp_Pnt2d& p1,
255 gp_Dir2d& d1,
256 const gp_Pnt2d& p2,
257 gp_Dir2d& d2,
258 const Standard_Boolean redresse = Standard_True);
259
260Handle(Geom2d_Curve) ChFi3d_BuildPCurve
261(const Handle(Adaptor3d_HSurface)& Surf,
262 const gp_Pnt2d& p1,
263 const gp_Vec& v1,
264 const gp_Pnt2d& p2,
265 const gp_Vec& v2,
266 const Standard_Boolean redresse = Standard_False);
267
268Handle(Geom2d_Curve) ChFi3d_BuildPCurve
269(const Handle(Adaptor3d_HSurface)& Surf,
270 const gp_Pnt2d& p1,
271 const gp_Vec2d& v1,
272 const gp_Pnt2d& p2,
273 const gp_Vec2d& v2,
274 const Standard_Boolean redresse = Standard_False);
275
276Standard_Boolean ChFi3d_CheckSameParameter
277(const Handle(Adaptor3d_HCurve)& C3d,
278 Handle(Geom2d_Curve)& Pcurv,
279 const Handle(Adaptor3d_HSurface)& S,
280 const Standard_Real tol3d,
281 Standard_Real& tolreached);
282
283Standard_Boolean ChFi3d_SameParameter(const Handle(Adaptor3d_HCurve)& C3d,
284 Handle(Geom2d_Curve)& Pcurv,
285 const Handle(Adaptor3d_HSurface)& S,
286 const Standard_Real tol3d,
287 Standard_Real& tolreached);
288
289Standard_Boolean ChFi3d_SameParameter(const Handle(Geom_Curve)& C3d,
290 Handle(Geom2d_Curve)& Pcurv,
291 const Handle(Geom_Surface)& S,
292 const Standard_Real Pardeb,
293 const Standard_Real Parfin,
294 const Standard_Real tol3d,
295 Standard_Real& tolreached);
296
297void ChFi3d_ComputePCurv(const Handle(Geom_Curve)& C3d,
298 const gp_Pnt2d& UV1,
299 const gp_Pnt2d& UV2,
300 Handle(Geom2d_Curve)& Pcurv,
301 const Handle(Geom_Surface)& S,
302 const Standard_Real Pardeb,
303 const Standard_Real Parfin,
304 const Standard_Real tol3d,
305 Standard_Real& tolreached,
306 const Standard_Boolean reverse = Standard_False);
307
308void ChFi3d_ComputePCurv(const Handle(Adaptor3d_HCurve)& C3d,
309 const gp_Pnt2d& UV1,
310 const gp_Pnt2d& UV2,
311 Handle(Geom2d_Curve)& Pcurv,
312 const Handle(Adaptor3d_HSurface)& S,
313 const Standard_Real Pardeb,
314 const Standard_Real Parfin,
315 const Standard_Real tol3d,
316 Standard_Real& tolreached,
317 const Standard_Boolean reverse = Standard_False);
318
319void ChFi3d_ComputePCurv(const gp_Pnt2d& UV1,
320 const gp_Pnt2d& UV2,
321 Handle(Geom2d_Curve)& Pcurv,
322 const Standard_Real Pardeb,
323 const Standard_Real Parfin,
324 const Standard_Boolean reverse = Standard_False);
325
326Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
327 const Standard_Real pref1,
328 Standard_Real& p1,
329 const Standard_Integer jf1,
330 const Standard_Integer sens1,
331 const Handle(ChFiDS_SurfData)& fd2,
332 const Standard_Real pref2,
333 Standard_Real& p2,
334 const Standard_Integer jf2,
335 const Standard_Integer sens2,
336 const gp_Pnt2d& RefP2d,
337 const Standard_Boolean Check2dDistance = Standard_False,
338 const Standard_Boolean enlarge = Standard_False);
339
340Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
341 const Handle(ChFiDS_Stripe)& cd1,
342 const Handle(ChFiDS_Stripe)& cd2,
343 const Standard_Integer i1,
344 const Standard_Integer i2,
345 const Standard_Integer sens1,
346 const Standard_Integer sens2,
347 Standard_Real& p1,
348 Standard_Real& p2,
349 TopoDS_Face& face,
350 Standard_Boolean& sameside,
351 Standard_Integer& jf1,
352 Standard_Integer& jf2,
353 Standard_Boolean& visavis,
354 const TopoDS_Vertex& Vtx,
355 const Standard_Boolean Check2dDistance = Standard_False,
356 const Standard_Boolean enlarge = Standard_False);
357
358void ChFi3d_ProjectPCurv(const Handle(Adaptor3d_HCurve)& HCg,
359 const Handle(Adaptor3d_HSurface)& HSg,
360 Handle(Geom2d_Curve)& Pcurv,
361 const Standard_Real tol3d,
362 Standard_Real& tolreached) ;
363
364void ChFi3d_ReparamPcurv(const Standard_Real Uf,
365 const Standard_Real Ul,
366 Handle(Geom2d_Curve)& Pcurv) ;
367
368void ChFi3d_ComputeArete(const ChFiDS_CommonPoint& P1,
369 const gp_Pnt2d& UV1,
370 const ChFiDS_CommonPoint& P2,
371 const gp_Pnt2d& UV2,
372 const Handle(Geom_Surface)& Surf,
373 Handle(Geom_Curve)& C3d,
374 Handle(Geom2d_Curve)& Pcurv,
375 Standard_Real& Pardeb,
376 Standard_Real& Parfin,
377 const Standard_Real tol3d,
378 const Standard_Real tol2d,
379 Standard_Real& tolreached,
380 const Standard_Integer IFlag);
381
382Handle(TopOpeBRepDS_SurfaceCurveInterference)
383 ChFi3d_FilCurveInDS(const Standard_Integer Icurv,
384 const Standard_Integer Isurf,
385 const Handle(Geom2d_Curve)& Pcurv,
386 const TopAbs_Orientation Et);
387
388TopAbs_Orientation ChFi3d_TrsfTrans(const IntSurf_TypeTrans T1);
389
390Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
391 const IntSurf_TypeTrans TransLine,
392 const Standard_Boolean Start,
393 ChFiDS_CommonPoint& CP,
394 const Standard_Real Tol);
395
396
397Standard_Integer ChFi3d_SolidIndex(const Handle(ChFiDS_Spine)& sp,
398 TopOpeBRepDS_DataStructure& DStr,
399 ChFiDS_Map& MapESo,
400 ChFiDS_Map& MapESh);
401
402Standard_Integer ChFi3d_IndexPointInDS(const ChFiDS_CommonPoint& P1,
403 TopOpeBRepDS_DataStructure& DStr);
404
405Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilPointInDS
406(const TopAbs_Orientation Et,
407 const Standard_Integer Ic,
408 const Standard_Integer Ip,
409 const Standard_Real Par,
410 const Standard_Boolean IsVertex = Standard_False);
411
412Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilVertexInDS
413(const TopAbs_Orientation Et,
414 const Standard_Integer Ic,
415 const Standard_Integer Ip,
416 const Standard_Real Par);
417
418void ChFi3d_FilDS(const Standard_Integer SolidIndex,
419 const Handle(ChFiDS_Stripe)& CorDat,
420 TopOpeBRepDS_DataStructure& DStr,
421 ChFiDS_Regularities& reglist,
422 const Standard_Real tol3d,
423 const Standard_Real tol2d);
424
425
426void ChFi3d_StripeEdgeInter (const Handle(ChFiDS_Stripe)& theStripe1,
427 const Handle(ChFiDS_Stripe)& theStripe2,
428 TopOpeBRepDS_DataStructure& DStr,
429 const Standard_Real tol2d);
430
431Standard_Integer ChFi3d_IndexOfSurfData(const TopoDS_Vertex& V1,
432 const Handle(ChFiDS_Stripe)& CD,
433 Standard_Integer& sens);
434
435TopoDS_Edge ChFi3d_EdgeFromV1(const TopoDS_Vertex& V1,
436 const Handle(ChFiDS_Stripe)& CD,
437 Standard_Integer& sens);
438
439Standard_Real ChFi3d_ConvTol2dToTol3d(const Handle(Adaptor3d_HSurface)& S,
440 const Standard_Real tol2d);
441
442Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)& S1,
443 Handle(Adaptor3d_HSurface)& S2,
444 const TColStd_Array1OfReal& Pardeb,
445 const TColStd_Array1OfReal& Parfin,
446 Handle(Geom_Curve)& C3d,
447 Handle(Geom2d_Curve)& Pc1,
448 Handle(Geom2d_Curve)& Pc2,
449 const Standard_Real tol3d,
450 const Standard_Real tol2d,
451 Standard_Real& tolreached,
452 const Standard_Boolean wholeCurv
453 = Standard_True);
454
455Standard_Boolean ChFi3d_IntCS(Handle(Adaptor3d_HSurface)& S,
456 Handle(Adaptor3d_HCurve)& C,
457 gp_Pnt2d& p2dS,
458 Standard_Real& wc);
459
460void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference& Fi1,
461 const ChFiDS_FaceInterference& Fi2,
462 const Handle(GeomAdaptor_HSurface)& HS1,
463 const Handle(GeomAdaptor_HSurface)& HS2,
464 Standard_Real& UInt1,
465 Standard_Real& UInt2);
466
467void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference& Fi1,
468 const ChFiDS_FaceInterference& Fi2,
469 const Handle(GeomAdaptor_HSurface)& HS1,
470 const Handle(GeomAdaptor_HSurface)& HS2,
471 Standard_Real& UInt1,
472 Standard_Real& UInt2,
473 gp_Pnt& P);
474
475Handle(GeomAdaptor_HSurface) ChFi3d_BoundSurf(TopOpeBRepDS_DataStructure& DStr,
476 const Handle(ChFiDS_SurfData)& Fd1,
477 const Standard_Integer& IFaCo1,
478 const Standard_Integer& IFaArc1);
479
480Standard_Integer ChFi3d_SearchPivot(Standard_Integer* s,
481 Standard_Real u[3][3],
482 const Standard_Real t);
483
484Standard_Boolean ChFi3d_SearchFD(TopOpeBRepDS_DataStructure& DStr,
485 const Handle(ChFiDS_Stripe)& cd1,
486 const Handle(ChFiDS_Stripe)& cd2,
487 const Standard_Integer sens1,
488 const Standard_Integer sens2,
489 Standard_Integer& i1,
490 Standard_Integer& i2,
491 Standard_Real& p1,
492 Standard_Real& p2,
493 const Standard_Integer ind1,
494 const Standard_Integer ind2,
495 TopoDS_Face& face,
496 Standard_Boolean& sameside,
497 Standard_Integer& jf1,
498 Standard_Integer& jf2);
499
500
501void ChFi3d_Parameters(const Handle(Geom_Surface)& S,
502 const gp_Pnt& p3d,
503 Standard_Real& u,
504 Standard_Real& v);
505
506void ChFi3d_TrimCurve(const Handle(Geom_Curve)& gc,
507 const gp_Pnt& FirstP,
508 const gp_Pnt& LastP,
509 Handle(Geom_TrimmedCurve)& gtc);
510
511Standard_EXPORT void ChFi3d_PerformElSpine(Handle(ChFiDS_HElSpine)& HES,
512 Handle(ChFiDS_Spine)& Spine,
513 const GeomAbs_Shape continuity,
514 const Standard_Real tol);
515
516TopoDS_Face ChFi3d_EnlargeFace(const Handle(ChFiDS_Spine)& Spine,
517 const Handle(BRepAdaptor_HSurface)& HS,
518 const Standard_Real Tol );
519
520
521void ChFi3d_cherche_face1 (const TopTools_ListOfShape & map,
522 const TopoDS_Face & F1,
523 TopoDS_Face & F);
524
525void ChFi3d_cherche_element( const TopoDS_Vertex & V,
526 const TopoDS_Edge & E1,
527 const TopoDS_Face & F1,
528 TopoDS_Edge & E ,
529 TopoDS_Vertex & Vtx );
530
531Standard_Real ChFi3d_EvalTolReached(const Handle(Adaptor3d_HSurface)& S1,
532 const Handle(Geom2d_Curve)& pc1,
533 const Handle(Adaptor3d_HSurface)& S2,
534 const Handle(Geom2d_Curve)& pc2,
535 const Handle(Geom_Curve)& C);
536
537void ChFi3d_cherche_edge( const TopoDS_Vertex & V,
538 const TopTools_Array1OfShape & E1,
539 const TopoDS_Face & F1,
540 TopoDS_Edge & E ,
541 TopoDS_Vertex & Vtx );
542
543Standard_Integer ChFi3d_nbface (const TopTools_ListOfShape & mapVF );
544
545void ChFi3d_edge_common_faces (const TopTools_ListOfShape & mapEF,
546 TopoDS_Face & F1,
547 TopoDS_Face & F2);
548
549
550Standard_Real ChFi3d_AngleEdge (const TopoDS_Vertex & Vtx,
551 const TopoDS_Edge& E1,
552 const TopoDS_Edge & E2);
553
554void ChFi3d_ChercheBordsLibres(const ChFiDS_Map & myVEMap,
555 const TopoDS_Vertex & V1,
556 Standard_Boolean & bordlibre,
557 TopoDS_Edge & edgelibre1,
558 TopoDS_Edge & edgelibre2);
559
560Standard_Integer ChFi3d_NbNotDegeneratedEdges (const TopoDS_Vertex& Vtx,
561 const ChFiDS_Map& VEMap);
562Standard_Integer ChFi3d_NumberOfEdges(const TopoDS_Vertex& Vtx,
563 const ChFiDS_Map& VEMap);
564
565void ChFi3d_cherche_vertex (const TopoDS_Edge & E1,
566 const TopoDS_Edge & E2,
567 TopoDS_Vertex & vertex,
568 Standard_Boolean & trouve);
569
570void ChFi3d_Couture( const TopoDS_Face & F,
571 Standard_Boolean & couture,
572 TopoDS_Edge & edgecouture);
573
574void ChFi3d_CoutureOnVertex( const TopoDS_Face & F,
575 const TopoDS_Vertex & V,
576 Standard_Boolean & couture,
577 TopoDS_Edge & edgecouture);
578
579Standard_Boolean ChFi3d_IsPseudoSeam( const TopoDS_Edge& E,
580 const TopoDS_Face& F );
581
582Handle(Geom_BSplineCurve) ChFi3d_ApproxByC2( const Handle(Geom_Curve)& C );
583
584Standard_Boolean ChFi3d_IsSmooth( const Handle(Geom_Curve)& C );
585
586#endif