Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:03:21

0001 // Created on: 1994-03-24
0002 // Created by: Isabelle GRIGNON
0003 // Copyright (c) 1994-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef ChFi3d_Builder_0_HeaderFile
0018 #define ChFi3d_Builder_0_HeaderFile
0019 
0020 #include <TopOpeBRepDS_SurfaceCurveInterference.hxx>
0021 #include <TopOpeBRepDS_CurvePointInterference.hxx>
0022 #include <TopOpeBRepDS_DataStructure.hxx>
0023 #include <BRepBlend_Extremity.hxx>
0024 #include <ChFiDS_Stripe.hxx>
0025 #include <ChFiDS_SurfData.hxx>
0026 #include <ChFiDS_Spine.hxx>
0027 #include <ChFiDS_ElSpine.hxx>
0028 #include <ChFiDS_CommonPoint.hxx>
0029 #include <ChFiDS_Regularities.hxx>
0030 #include <ChFiDS_FaceInterference.hxx>
0031 #include <ChFiDS_Map.hxx>
0032 #include <TopoDS_Face.hxx>
0033 #include <TopoDS_Vertex.hxx>
0034 #include <TopAbs_Orientation.hxx>
0035 #include <TopTools_ListOfShape.hxx>
0036 #include <IntSurf_TypeTrans.hxx>
0037 #include <GeomFill_BoundWithSurf.hxx>
0038 #include <Geom2d_Curve.hxx>
0039 #include <Geom_Curve.hxx>
0040 #include <Geom_TrimmedCurve.hxx>
0041 #include <Geom_Surface.hxx>
0042 #include <Geom_BezierCurve.hxx>
0043 #include <Geom_Circle.hxx>
0044 #include <GeomAdaptor_Surface.hxx>
0045 #include <BRepAdaptor_Surface.hxx>
0046 #include <Adaptor3d_Curve.hxx>
0047 #include <Adaptor3d_Surface.hxx>
0048 #include <Bnd_Box.hxx>
0049 #include <GeomAbs_Shape.hxx>
0050 #include <gp_Pnt.hxx>
0051 #include <TColStd_Array1OfReal.hxx>
0052 #include <TopTools_Array1OfShape.hxx>
0053 #ifdef OCCT_DEBUG
0054 #include <OSD_Chronometer.hxx>
0055 extern OSD_Chronometer simul,elspine,chemine;
0056 #endif
0057 
0058 Standard_Real ChFi3d_InPeriod(const Standard_Real U, 
0059                   const Standard_Real UFirst, 
0060                   const Standard_Real ULast,
0061                   const Standard_Real Eps);
0062 
0063 void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
0064           Standard_Real& mu,Standard_Real& Mu,
0065           Standard_Real& mv,Standard_Real& Mv);
0066 
0067 void ChFi3d_Boite(const gp_Pnt2d& p1,const gp_Pnt2d& p2,
0068           const gp_Pnt2d& p3,const gp_Pnt2d& p4,
0069           Standard_Real& Du,Standard_Real& Dv,
0070           Standard_Real& mu,Standard_Real& Mu,
0071           Standard_Real& mv,Standard_Real& Mv);
0072 
0073 void ChFi3d_SetPointTolerance(TopOpeBRepDS_DataStructure& DStr,
0074                   const Bnd_Box&              box,
0075                   const Standard_Integer      IP);
0076 
0077 void ChFi3d_EnlargeBox(const Handle(Geom_Curve)& C,
0078                const Standard_Real       wd,
0079                const Standard_Real       wf,
0080                Bnd_Box&                  box1,
0081                Bnd_Box&                  box2);
0082 
0083 void ChFi3d_EnlargeBox(const Handle(Adaptor3d_Surface)& S,
0084                const Handle(Geom2d_Curve)&     PC,
0085                const Standard_Real             wd,
0086                const Standard_Real             wf,
0087                Bnd_Box&                        box1,
0088                Bnd_Box&                        box2);
0089 
0090 void ChFi3d_EnlargeBox(const TopoDS_Edge&           E,
0091                const TopTools_ListOfShape&  LF,
0092                const Standard_Real          w,
0093                Bnd_Box&                     box);
0094 
0095 void ChFi3d_EnlargeBox(TopOpeBRepDS_DataStructure&    DStr,
0096                const Handle(ChFiDS_Stripe)&   st, 
0097                const Handle(ChFiDS_SurfData)& sd,
0098                Bnd_Box&                       b1,
0099                Bnd_Box&                       b2,
0100                const Standard_Boolean         isfirst);
0101 
0102 GeomAbs_Shape ChFi3d_evalconti(const TopoDS_Edge& E,
0103                    const TopoDS_Face& F1,
0104                    const TopoDS_Face& F2);
0105 
0106 void ChFi3d_conexfaces(const TopoDS_Edge& E,
0107                TopoDS_Face&       F1,
0108                TopoDS_Face&       F2,
0109                const ChFiDS_Map&  EFMap);
0110 
0111 ChFiDS_State ChFi3d_EdgeState(TopoDS_Edge* E,
0112                   const ChFiDS_Map&  EFMap);
0113 
0114 Standard_Boolean ChFi3d_KParticular
0115 (const Handle(ChFiDS_Spine)& Spine,
0116  const Standard_Integer      IE,
0117  const BRepAdaptor_Surface&  S1,
0118  const BRepAdaptor_Surface&  S2);
0119  
0120 void ChFi3d_BoundFac(BRepAdaptor_Surface& S,
0121              const Standard_Real  umin,
0122              const Standard_Real  umax,
0123              const Standard_Real  vmin,
0124              const Standard_Real  vmax,
0125              const Standard_Boolean checknaturalbounds = Standard_True);
0126               
0127 void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
0128              const Standard_Real  umin,
0129              const Standard_Real  umax,
0130              const Standard_Real  vmin,
0131              const Standard_Real  vmax,
0132              const Standard_Boolean checknaturalbounds = Standard_True);
0133               
0134 Standard_Boolean  ChFi3d_InterPlaneEdge (const Handle(Adaptor3d_Surface)& Plan,
0135                      const Handle(Adaptor3d_Curve)&   C,
0136                      Standard_Real&            W,
0137                      const Standard_Boolean    Sens,
0138                      const Standard_Real tolc);
0139                      
0140 void ChFi3d_ExtrSpineCarac(const TopOpeBRepDS_DataStructure& DStr,
0141                const Handle(ChFiDS_Stripe)&      cd,
0142                const Standard_Integer            i,
0143                const Standard_Real               p,
0144                const Standard_Integer            jf,
0145                const Standard_Integer            sens,
0146                gp_Pnt&                           P,
0147                gp_Vec&                           V,
0148                Standard_Real&                    R);
0149                
0150 Handle(Geom_Circle) ChFi3d_CircularSpine(Standard_Real&      WFirst,
0151                                          Standard_Real&      WLast,
0152                                          const gp_Pnt&       Pdeb,
0153                                          const gp_Vec&       Vdeb,
0154                                          const gp_Pnt&       Pfin,
0155                                          const gp_Vec&       Vfin,
0156                                          const Standard_Real rad);
0157 
0158 Handle(Geom_BezierCurve) ChFi3d_Spine(const gp_Pnt&       pd,
0159                       gp_Vec&             vd,
0160                       const gp_Pnt&       pf,
0161                       gp_Vec&             vf,
0162                       const Standard_Real R);
0163 
0164 Handle(GeomFill_Boundary) ChFi3d_mkbound
0165 (const Handle(Adaptor3d_Surface)& Fac,
0166  Handle(Geom2d_Curve)& curv, 
0167  const Standard_Integer sens1,
0168  const gp_Pnt2d& pfac1,
0169  const gp_Vec2d& vfac1,
0170  const Standard_Integer sens2,
0171  const gp_Pnt2d& pfac2,
0172  const gp_Vec2d& vfac2,
0173  const Standard_Real t3d,
0174  const Standard_Real ta);
0175 
0176 Handle(GeomFill_Boundary) ChFi3d_mkbound
0177 (const Handle(Adaptor3d_Surface)& Surf,
0178  Handle(Geom2d_Curve)& curv,
0179  const Standard_Integer sens1,
0180  const gp_Pnt2d& p1,
0181  gp_Vec&   v1,
0182  const Standard_Integer sens2,
0183  const gp_Pnt2d& p2,
0184  gp_Vec& v2,
0185  const Standard_Real t3d,
0186  const Standard_Real ta);
0187 
0188 Handle(GeomFill_Boundary) ChFi3d_mkbound
0189 (const Handle(Geom_Surface)& s,
0190  const gp_Pnt2d& p1,
0191  const gp_Pnt2d& p2,
0192  const Standard_Real t3d,
0193  const Standard_Real ta,
0194  const Standard_Boolean isfreeboundary = Standard_False);
0195 
0196 Handle(GeomFill_Boundary) ChFi3d_mkbound
0197 (const Handle(Adaptor3d_Surface)& HS,
0198  const gp_Pnt2d& p1,
0199  const gp_Pnt2d& p2,
0200  const Standard_Real t3d,
0201  const Standard_Real ta,
0202  const Standard_Boolean isfreeboundary = Standard_False);
0203 
0204 Handle(GeomFill_Boundary) ChFi3d_mkbound
0205 (const Handle(Adaptor3d_Surface)& HS,
0206  const Handle(Geom2d_Curve)& curv,
0207  const Standard_Real t3d,
0208  const Standard_Real ta,
0209  const Standard_Boolean isfreeboundary = Standard_False);
0210 
0211 Handle(GeomFill_Boundary) ChFi3d_mkbound
0212 (const Handle(Adaptor3d_Surface)& Fac,
0213  Handle(Geom2d_Curve)& curv, 
0214  const gp_Pnt2d& p1,
0215  const gp_Pnt2d& p2,
0216  const Standard_Real t3d,
0217  const Standard_Real ta,
0218  const Standard_Boolean isfreeboundary = Standard_False);
0219 
0220 void ChFi3d_Coefficient(const gp_Vec& V3d,
0221             const gp_Vec& D1u,
0222             const gp_Vec& D1v,
0223             Standard_Real& DU,
0224             Standard_Real& DV); 
0225 
0226 Handle(Geom2d_Curve) ChFi3d_BuildPCurve
0227 (const gp_Pnt2d&        p1,
0228  gp_Dir2d&              d1,
0229  const gp_Pnt2d&        p2,
0230  gp_Dir2d&              d2,
0231  const Standard_Boolean redresse = Standard_True);
0232 
0233 Handle(Geom2d_Curve) ChFi3d_BuildPCurve
0234 (const Handle(Adaptor3d_Surface)& Surf,
0235  const gp_Pnt2d&                 p1,
0236  const gp_Vec&                   v1,
0237  const gp_Pnt2d&                 p2,
0238  const gp_Vec&                   v2,
0239  const Standard_Boolean redresse = Standard_False);
0240 
0241 Handle(Geom2d_Curve) ChFi3d_BuildPCurve
0242 (const Handle(Adaptor3d_Surface)& Surf,
0243  const gp_Pnt2d&                 p1,
0244  const gp_Vec2d&                 v1,
0245  const gp_Pnt2d&                 p2,
0246  const gp_Vec2d&                 v2,
0247  const Standard_Boolean redresse = Standard_False);
0248 
0249 Standard_Boolean ChFi3d_CheckSameParameter 
0250 (const Handle(Adaptor3d_Curve)&   C3d,
0251  Handle(Geom2d_Curve)&           Pcurv,
0252  const Handle(Adaptor3d_Surface)& S,
0253  const Standard_Real             tol3d,
0254  Standard_Real&                  tolreached);
0255 
0256 Standard_Boolean ChFi3d_SameParameter(const Handle(Adaptor3d_Curve)&   C3d,
0257                       Handle(Geom2d_Curve)&           Pcurv,
0258                       const Handle(Adaptor3d_Surface)& S,
0259                       const Standard_Real             tol3d,
0260                       Standard_Real&                  tolreached);
0261 
0262 Standard_Boolean ChFi3d_SameParameter(const Handle(Geom_Curve)&   C3d,
0263                       Handle(Geom2d_Curve)&       Pcurv,
0264                       const Handle(Geom_Surface)& S,
0265                       const Standard_Real         Pardeb,
0266                       const Standard_Real         Parfin,
0267                       const Standard_Real         tol3d,
0268                       Standard_Real&              tolreached);
0269 
0270 void ChFi3d_ComputePCurv(const Handle(Geom_Curve)&   C3d,
0271              const gp_Pnt2d&             UV1,
0272              const gp_Pnt2d&             UV2,
0273              Handle(Geom2d_Curve)&       Pcurv,
0274              const Handle(Geom_Surface)& S,
0275              const Standard_Real         Pardeb,
0276              const Standard_Real         Parfin,
0277              const Standard_Real         tol3d,
0278              Standard_Real&              tolreached,
0279              const Standard_Boolean      reverse = Standard_False);
0280 
0281 void ChFi3d_ComputePCurv(const Handle(Adaptor3d_Curve)&   C3d,
0282              const gp_Pnt2d&                 UV1,
0283              const gp_Pnt2d&                 UV2,
0284              Handle(Geom2d_Curve)&           Pcurv,
0285              const Handle(Adaptor3d_Surface)& S,
0286              const Standard_Real             Pardeb,
0287              const Standard_Real             Parfin,
0288              const Standard_Real             tol3d,
0289              Standard_Real&                  tolreached,
0290              const Standard_Boolean          reverse = Standard_False);
0291 
0292 void ChFi3d_ComputePCurv(const gp_Pnt2d& UV1,
0293              const gp_Pnt2d& UV2,
0294              Handle(Geom2d_Curve)& Pcurv,
0295              const Standard_Real Pardeb,
0296              const Standard_Real Parfin,
0297              const Standard_Boolean reverse = Standard_False);
0298 
0299 Standard_Boolean ChFi3d_IntTraces(const Handle(ChFiDS_SurfData)& fd1,
0300                   const Standard_Real            pref1,
0301                   Standard_Real&                 p1,
0302                   const Standard_Integer         jf1,
0303                   const Standard_Integer         sens1,
0304                   const Handle(ChFiDS_SurfData)& fd2,
0305                   const Standard_Real            pref2,
0306                   Standard_Real&                 p2,
0307                   const Standard_Integer         jf2,
0308                   const Standard_Integer         sens2,
0309                   const gp_Pnt2d&                RefP2d,
0310                   const Standard_Boolean         Check2dDistance = Standard_False,
0311                   const Standard_Boolean         enlarge = Standard_False);
0312 
0313 Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
0314                   const Handle(ChFiDS_Stripe)& cd1, 
0315                   const Handle(ChFiDS_Stripe)& cd2,
0316                   const Standard_Integer i1,
0317                   const Standard_Integer i2,
0318                   const Standard_Integer sens1,
0319                   const Standard_Integer sens2,
0320                   Standard_Real& p1,
0321                   Standard_Real& p2,
0322                   TopoDS_Face& face,
0323                   Standard_Boolean& sameside,
0324                   Standard_Integer& jf1,
0325                   Standard_Integer& jf2,
0326                   Standard_Boolean& visavis,
0327                   const TopoDS_Vertex& Vtx,
0328                   const Standard_Boolean Check2dDistance = Standard_False,
0329                   const Standard_Boolean enlarge = Standard_False);
0330 
0331 void ChFi3d_ProjectPCurv(const Handle(Adaptor3d_Curve)&   HCg, 
0332              const Handle(Adaptor3d_Surface)& HSg, 
0333              Handle(Geom2d_Curve)&           Pcurv,
0334              const Standard_Real             tol3d,
0335              Standard_Real&                  tolreached) ;
0336 
0337 void ChFi3d_ReparamPcurv(const Standard_Real   Uf, 
0338              const Standard_Real   Ul,
0339              Handle(Geom2d_Curve)& Pcurv) ;
0340 
0341 void  ChFi3d_ComputeArete(const ChFiDS_CommonPoint&   P1,
0342               const gp_Pnt2d&             UV1,
0343               const ChFiDS_CommonPoint&   P2,
0344               const gp_Pnt2d&             UV2,
0345               const Handle(Geom_Surface)& Surf,
0346               Handle(Geom_Curve)&         C3d,
0347               Handle(Geom2d_Curve)&       Pcurv,
0348               Standard_Real&              Pardeb,
0349               Standard_Real&              Parfin,
0350               const Standard_Real         tol3d,
0351               const Standard_Real         tol2d,
0352               Standard_Real&              tolreached,
0353               const Standard_Integer      IFlag);
0354               
0355 Handle(TopOpeBRepDS_SurfaceCurveInterference)  
0356      ChFi3d_FilCurveInDS(const Standard_Integer Icurv,
0357              const Standard_Integer Isurf,
0358              const Handle(Geom2d_Curve)& Pcurv,
0359              const TopAbs_Orientation Et);
0360 
0361 TopAbs_Orientation ChFi3d_TrsfTrans(const IntSurf_TypeTrans T1);
0362 
0363 Standard_EXPORT void ChFi3d_FilCommonPoint(const BRepBlend_Extremity& SP,
0364                        const IntSurf_TypeTrans TransLine,
0365                        const Standard_Boolean Start,
0366                        ChFiDS_CommonPoint& CP,
0367                        const Standard_Real Tol);
0368 
0369              
0370 Standard_Integer ChFi3d_SolidIndex(const Handle(ChFiDS_Spine)&  sp,
0371                    TopOpeBRepDS_DataStructure&  DStr,
0372                    ChFiDS_Map&                  MapESo,
0373                    ChFiDS_Map&                  MapESh);
0374 
0375 Standard_Integer  ChFi3d_IndexPointInDS(const ChFiDS_CommonPoint& P1,
0376                     TopOpeBRepDS_DataStructure& DStr);
0377 
0378 Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilPointInDS
0379 (const TopAbs_Orientation Et,
0380  const Standard_Integer Ic,
0381  const Standard_Integer Ip,
0382  const Standard_Real Par,
0383  const Standard_Boolean IsVertex = Standard_False);
0384 
0385 Handle(TopOpeBRepDS_CurvePointInterference) ChFi3d_FilVertexInDS
0386 (const TopAbs_Orientation Et,
0387  const Standard_Integer Ic,
0388  const Standard_Integer Ip,
0389  const Standard_Real Par);
0390 
0391 void  ChFi3d_FilDS(const Standard_Integer       SolidIndex,
0392            const Handle(ChFiDS_Stripe)& CorDat,
0393            TopOpeBRepDS_DataStructure&  DStr,
0394            ChFiDS_Regularities&         reglist,
0395            const Standard_Real          tol3d,
0396            const Standard_Real          tol2d);
0397            
0398 
0399 void ChFi3d_StripeEdgeInter (const Handle(ChFiDS_Stripe)& theStripe1,
0400                  const Handle(ChFiDS_Stripe)& theStripe2,
0401                  TopOpeBRepDS_DataStructure&  DStr,
0402                  const Standard_Real          tol2d);
0403 
0404 Standard_Integer ChFi3d_IndexOfSurfData(const TopoDS_Vertex& V1,
0405                     const Handle(ChFiDS_Stripe)& CD,
0406                     Standard_Integer& sens);
0407 
0408 TopoDS_Edge ChFi3d_EdgeFromV1(const TopoDS_Vertex& V1,
0409                   const Handle(ChFiDS_Stripe)& CD,
0410                   Standard_Integer& sens);
0411 
0412 Standard_Real ChFi3d_ConvTol2dToTol3d(const Handle(Adaptor3d_Surface)& S,
0413                       const Standard_Real             tol2d);
0414 
0415 Standard_Boolean  ChFi3d_ComputeCurves(const Handle(Adaptor3d_Surface)&   S1,
0416                        const Handle(Adaptor3d_Surface)&   S2,
0417                        const TColStd_Array1OfReal& Pardeb,
0418                        const TColStd_Array1OfReal& Parfin,
0419                        Handle(Geom_Curve)&         C3d,
0420                        Handle(Geom2d_Curve)&       Pc1,
0421                        Handle(Geom2d_Curve)&       Pc2,
0422                        const Standard_Real         tol3d,
0423                        const Standard_Real         tol2d,
0424                        Standard_Real&              tolreached,
0425                        const Standard_Boolean      wholeCurv
0426                         = Standard_True);
0427 
0428 Standard_Boolean ChFi3d_IntCS(const Handle(Adaptor3d_Surface)& S,
0429                   const Handle(Adaptor3d_Curve)& C,
0430                   gp_Pnt2d& p2dS,
0431                   Standard_Real& wc);
0432 
0433 void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
0434                const ChFiDS_FaceInterference&      Fi2,
0435                const Handle(GeomAdaptor_Surface)& HS1,
0436                const Handle(GeomAdaptor_Surface)& HS2,
0437                Standard_Real&                      UInt1, 
0438                Standard_Real&                      UInt2);
0439 
0440 void ChFi3d_ComputesIntPC (const ChFiDS_FaceInterference&      Fi1,
0441                const ChFiDS_FaceInterference&      Fi2,
0442                const Handle(GeomAdaptor_Surface)& HS1,
0443                const Handle(GeomAdaptor_Surface)& HS2,
0444                Standard_Real&                      UInt1, 
0445                Standard_Real&                      UInt2,
0446                gp_Pnt&                             P);
0447 
0448 Handle(GeomAdaptor_Surface) ChFi3d_BoundSurf(TopOpeBRepDS_DataStructure& DStr,
0449                           const Handle(ChFiDS_SurfData)& Fd1,
0450                           const Standard_Integer&        IFaCo1,
0451                           const Standard_Integer&        IFaArc1);
0452 
0453 Standard_Integer ChFi3d_SearchPivot(Standard_Integer* s,
0454                     Standard_Real u[3][3],
0455                     const Standard_Real t);
0456 
0457 Standard_Boolean ChFi3d_SearchFD(TopOpeBRepDS_DataStructure& DStr,
0458                  const Handle(ChFiDS_Stripe)& cd1, 
0459                  const Handle(ChFiDS_Stripe)& cd2,
0460                  const Standard_Integer sens1,
0461                  const Standard_Integer sens2,
0462                  Standard_Integer& i1,
0463                  Standard_Integer& i2,
0464                  Standard_Real& p1,
0465                  Standard_Real& p2,
0466                  const Standard_Integer ind1,
0467                  const Standard_Integer ind2,
0468                  TopoDS_Face& face,
0469                  Standard_Boolean& sameside,
0470                  Standard_Integer& jf1,
0471                  Standard_Integer& jf2);
0472 
0473 
0474 void ChFi3d_Parameters(const Handle(Geom_Surface)& S,
0475                const gp_Pnt& p3d,
0476                Standard_Real& u,
0477                Standard_Real& v);
0478 
0479 void ChFi3d_TrimCurve(const Handle(Geom_Curve)& gc,
0480               const gp_Pnt& FirstP,
0481               const gp_Pnt& LastP,
0482               Handle(Geom_TrimmedCurve)& gtc);
0483 
0484 Standard_EXPORT void ChFi3d_PerformElSpine(Handle(ChFiDS_ElSpine)& HES,
0485                        Handle(ChFiDS_Spine)&    Spine,
0486                        const GeomAbs_Shape      continuity,
0487                        const Standard_Real      tol,
0488                                            const Standard_Boolean   IsOffset = Standard_False);
0489 
0490 TopoDS_Face ChFi3d_EnlargeFace(const Handle(ChFiDS_Spine)& Spine,
0491                    const Handle(BRepAdaptor_Surface)&  HS,
0492                    const Standard_Real         Tol );
0493 
0494 
0495 void ChFi3d_cherche_face1 (const TopTools_ListOfShape & map,
0496                     const TopoDS_Face & F1,
0497                           TopoDS_Face &  F);  
0498 
0499 void ChFi3d_cherche_element( const TopoDS_Vertex & V,
0500                       const TopoDS_Edge & E1,
0501                       const TopoDS_Face & F1,
0502                       TopoDS_Edge & E , 
0503                       TopoDS_Vertex  & Vtx );
0504 
0505 Standard_Real ChFi3d_EvalTolReached(const Handle(Adaptor3d_Surface)& S1,
0506                     const Handle(Geom2d_Curve)&     pc1,
0507                     const Handle(Adaptor3d_Surface)& S2,
0508                     const Handle(Geom2d_Curve)&     pc2,
0509                     const Handle(Geom_Curve)&       C);
0510 
0511 void ChFi3d_cherche_edge( const TopoDS_Vertex & V,
0512                       const  TopTools_Array1OfShape  & E1,
0513                       const TopoDS_Face & F1,
0514                       TopoDS_Edge & E , 
0515                       TopoDS_Vertex  & Vtx );
0516 
0517 Standard_Integer  ChFi3d_nbface (const TopTools_ListOfShape & mapVF );
0518 
0519 void ChFi3d_edge_common_faces (const TopTools_ListOfShape & mapEF,
0520                                TopoDS_Face & F1,
0521                                TopoDS_Face &  F2); 
0522 
0523 
0524 Standard_Real ChFi3d_AngleEdge (const TopoDS_Vertex & Vtx,
0525                                   const TopoDS_Edge&  E1,
0526                                   const TopoDS_Edge &  E2);
0527 
0528 void ChFi3d_ChercheBordsLibres(const  ChFiDS_Map & myVEMap,
0529                                 const TopoDS_Vertex & V1,
0530                                 Standard_Boolean & bordlibre,
0531                                 TopoDS_Edge & edgelibre1,
0532                                 TopoDS_Edge & edgelibre2);
0533 
0534 Standard_Integer ChFi3d_NbNotDegeneratedEdges (const TopoDS_Vertex& Vtx,
0535                       const ChFiDS_Map& VEMap);
0536 Standard_Integer ChFi3d_NumberOfEdges(const TopoDS_Vertex& Vtx,
0537                       const ChFiDS_Map& VEMap);
0538 
0539 Standard_Integer ChFi3d_NumberOfSharpEdges(const TopoDS_Vertex& Vtx,
0540                                            const ChFiDS_Map& VEMap,
0541                                            const ChFiDS_Map& EFmap);
0542 
0543 void ChFi3d_cherche_vertex (const TopoDS_Edge & E1,
0544                 const TopoDS_Edge & E2,
0545                 TopoDS_Vertex & vertex,
0546                 Standard_Boolean & trouve);
0547 
0548 void ChFi3d_Couture( const TopoDS_Face & F,
0549                      Standard_Boolean & couture,
0550                      TopoDS_Edge & edgecouture);
0551 
0552 void ChFi3d_CoutureOnVertex( const TopoDS_Face & F,
0553                  const TopoDS_Vertex & V,
0554                  Standard_Boolean & couture,
0555                  TopoDS_Edge & edgecouture);
0556 
0557 Standard_Boolean ChFi3d_IsPseudoSeam( const TopoDS_Edge& E,
0558                       const TopoDS_Face& F );
0559 
0560 Handle(Geom_BSplineCurve) ChFi3d_ApproxByC2( const Handle(Geom_Curve)& C );
0561 
0562 Standard_Boolean ChFi3d_IsSmooth( const Handle(Geom_Curve)& C );
0563 
0564 #endif