0024096: Eliminate compiler warning C4505 in MSVC++ with warning level 4
[occt.git] / src / IntCurveSurface / IntCurveSurface_Inter.gxx
index 150a8b1..ba48975 100755 (executable)
 // purpose or non-infringement. Please see the License for the specific terms
 // and conditions governing the rights and limitations under the License.
 
-#ifndef DEB
-#define No_Standard_RangeError
-#define No_Standard_OutOfRange
-#endif
+//#ifndef DEB
+//#define No_Standard_RangeError
+//#define No_Standard_OutOfRange
+//#endif
 
 
 #define  TOLTANGENCY         0.00000001
-#define  TOLERANCE_ANGULAIRE 0.00000001
+#define  TOLERANCE_ANGULAIRE 1.e-12//0.00000001
 #define  TOLERANCE           0.00000001
 
 #define NBSAMPLESONCIRCLE  32
 #include <Extrema_ExtElC.hxx>
 #include <Extrema_POnCurv.hxx>
 
-#if 0
-//-- jgv patch (from)
-#include <Extrema_ExtPS.hxx>
-//-- jgv patch (to)
-#endif
+
 
 #include <ProjLib_Plane.hxx>
 #include <IntAna2d_AnaIntersection.hxx>
 #include <Adaptor3d_HCurve.hxx>
 #include <Adaptor3d_HSurface.hxx>
 
-#if 0
-//-- jgv patch (from)
-#include <BndLib_Add3dCurve.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <Geom_Line.hxx>
-#include <Geom_Circle.hxx>
-#include <Geom_Ellipse.hxx>
-#include <Geom_Hyperbola.hxx>
-#include <Geom_Parabola.hxx>
-#include <Geom_TrimmedCurve.hxx>
-#include <GeomAdaptor_Surface.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_CylindricalSurface.hxx>
-#include <Geom_ConicalSurface.hxx>
-#include <Geom_ToroidalSurface.hxx>
-#include <Geom_SphericalSurface.hxx>
-#include <Geom_SurfaceOfRevolution.hxx>
-#include <Geom_SurfaceOfLinearExtrusion.hxx>
-#include <Geom_OffsetSurface.hxx>
-#include <Geom_RectangularTrimmedSurface.hxx>
-//-- jgv patch (to)
-#endif
 
 #include <TColgp_Array2OfPnt.hxx>
 #include <TColStd_HArray1OfReal.hxx>
 #include <Adaptor3d_TopolTool.hxx>
 #include <ElCLib.hxx>
 
-//================================================================================
-static void EstLimForInfExtr(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Boolean IsOffSurf,
-                            const Standard_Integer nbsu, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection);
-
-//================================================================================
-static void EstLimForInfRevl(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection);
-
-//================================================================================
-static void EstLimForInfOffs(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Integer nbsu, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection);
-
-//================================================================================
-static void EstLimForInfSurf(Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new);
-
-//================================================================================
-static void SectionPointToParameters(const Intf_SectionPoint& Sp,
-                                    const IntCurveSurface_ThePolyhedron& Surf,
-                                    const IntCurveSurface_ThePolygon&    Curv,
-                                    Standard_Real& u,
-                                    Standard_Real& v,
-                                    Standard_Real& w);
-//================================================================================
-static void IntCurveSurface_ComputeTransitions(const TheCurve& curve,
-                                              const Standard_Real w,
-                                              IntCurveSurface_TransitionOnCurve&   TransOnCurve,
-                                              const TheSurface& surface,
-                                              const Standard_Real u,
-                                              const Standard_Real v);
-//================================================================================
-static void IntCurveSurface_ComputeParamsOnQuadric(const TheSurface& surface,
-                                                  const gp_Pnt& P,
-                                                  Standard_Real& u,
-                                                  Standard_Real& v);
-//================================================================================
-#if 0
-static Handle(Geom_Curve) GetCurve(const Handle(Adaptor3d_HCurve) AdCurve);
-//================================================================================
-static Handle(Geom_Surface) GetSurface(const Handle(Adaptor3d_HSurface) AdSurface);
-#endif
-//================================================================================
-//==
-IntCurveSurface_Inter::IntCurveSurface_Inter() { 
-}
+static 
+  void EstLimForInfExtr(const gp_Lin&   Line,
+                       const TheSurface& surface, 
+                       const Standard_Boolean IsOffSurf,
+                       const Standard_Integer nbsu, 
+                       const Standard_Boolean U1inf, 
+                       const Standard_Boolean U2inf, 
+                       const Standard_Boolean V1inf, 
+                       const Standard_Boolean V2inf, 
+                       Standard_Real& U1new, 
+                       Standard_Real& U2new, 
+                       Standard_Real& V1new, 
+                       Standard_Real& V2new, 
+                       Standard_Boolean& NoIntersection);
+
+static 
+  void EstLimForInfRevl(const gp_Lin&   Line,
+                       const TheSurface& surface, 
+                       const Standard_Boolean U1inf, 
+                       const Standard_Boolean U2inf, 
+                       const Standard_Boolean V1inf, 
+                       const Standard_Boolean V2inf, 
+                       Standard_Real& U1new, 
+                       Standard_Real& U2new, 
+                       Standard_Real& V1new, 
+                       Standard_Real& V2new, 
+                       Standard_Boolean& NoIntersection);
+
+static 
+  void EstLimForInfOffs(const gp_Lin&   Line,
+                       const TheSurface& surface, 
+                       const Standard_Integer nbsu, 
+                       const Standard_Boolean U1inf, 
+                       const Standard_Boolean U2inf, 
+                       const Standard_Boolean V1inf, 
+                       const Standard_Boolean V2inf, 
+                       Standard_Real& U1new, 
+                       Standard_Real& U2new, 
+                       Standard_Real& V1new, 
+                       Standard_Real& V2new, 
+                       Standard_Boolean& NoIntersection);
+
+static
+  void EstLimForInfSurf(Standard_Real& U1new, 
+                       Standard_Real& U2new, 
+                       Standard_Real& V1new, 
+                       Standard_Real& V2new);
+
+static
+  void SectionPointToParameters(const Intf_SectionPoint& Sp,
+                               const IntCurveSurface_ThePolyhedron& Surf,
+                               const IntCurveSurface_ThePolygon&    Curv,
+                               Standard_Real& u,
+                               Standard_Real& v,
+                               Standard_Real& w);
+
+static 
+  void IntCurveSurface_ComputeTransitions(const TheCurve& curve,
+                                         const Standard_Real w,
+                                         IntCurveSurface_TransitionOnCurve&   TransOnCurve,
+                                         const TheSurface& surface,
+                                         const Standard_Real u,
+                                         const Standard_Real v);
+
+static 
+  void IntCurveSurface_ComputeParamsOnQuadric(const TheSurface& surface,
+                                             const gp_Pnt& P,
+                                             Standard_Real& u,
+                                             Standard_Real& v);
+
+static 
+  void ProjectIntersectAndEstLim(const gp_Lin&        theLine,
+                                const gp_Pln&        thePln,
+                                const ProjLib_Plane& theBasCurvProj,
+                                Standard_Real&       theVmin,
+                                Standard_Real&       theVmax,
+                                Standard_Boolean&    theNoIntersection);
 
-static Standard_Boolean DoTrim(const TheCurve& curve,
-                               const TheSurface& surface)
-{
-  Standard_Boolean isAnaCurve = Standard_False, isAnaSurface = Standard_False;
-  GeomAbs_CurveType CurveType = TheCurveTool::GetType(curve);
-  switch (CurveType) {
-  case GeomAbs_Line:
-  case GeomAbs_Circle:
-  case GeomAbs_Ellipse:
-  case GeomAbs_Hyperbola:
-  case GeomAbs_Parabola: isAnaCurve = Standard_True; break;
-  default: break;
-  }
-  GeomAbs_SurfaceType SurfaceType = TheSurfaceTool::GetType(surface);
-  switch (SurfaceType) {
-  case GeomAbs_Plane:
-  case GeomAbs_Cylinder:
-  case GeomAbs_Cone:
-  case GeomAbs_Sphere:
-  case GeomAbs_Torus: isAnaSurface = Standard_True; break;
-  default: break;
-  }
-  Standard_Boolean result = (isAnaCurve && isAnaSurface) ? Standard_False : Standard_True;
-  if(result) {
-    Standard_Boolean isUClosed = (TheSurfaceTool::IsUClosed(surface) || TheSurfaceTool::IsUPeriodic(surface));
-    Standard_Boolean isVClosed = (TheSurfaceTool::IsVClosed(surface) || TheSurfaceTool::IsVPeriodic(surface));
-    if(isUClosed && isVClosed)
-      result = Standard_False;
-  }
-  return result;
+//=======================================================================
+//function : IntCurveSurface_Inter
+//purpose  : 
+//=======================================================================
+IntCurveSurface_Inter::IntCurveSurface_Inter() 
+{ 
 }
-
-// modified by NIZHNY-MKK  Tue Jul 26 14:41:59 2005
-// static void DoSurface(const TheSurface&   surface,
+//=======================================================================
+//function : DoSurface
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::DoSurface(const TheSurface&   surface,
                                      const Standard_Real u0,
                                      const Standard_Real u1,
@@ -261,81 +212,11 @@ void IntCurveSurface_Inter::DoSurface(const TheSurface&   surface,
   gap = Max(Ures,Vres);
 }
 
-static void DoCurve(const TheCurve& curve,
-                    Bnd_Box&        boxCurve)
-{
-  Standard_Real CF = TheCurveTool::FirstParameter(curve);
-  Standard_Real CL = TheCurveTool::LastParameter(curve);
-  Standard_Real C = 0., dC = fabs(CL-CF)/50.;
-  Standard_Integer iC = 0;
-  gp_Pnt aPnt;
-
-  for(iC = 0; iC < 50; iC++) {
-    if(iC == 0)
-      C = CF;
-    else if(iC == 49)
-      C = CL;
-    else
-      C = CF + dC *((Standard_Real)iC);
-      
-    TheCurveTool::D0(curve,C,aPnt);
-    boxCurve.Add(aPnt);
-  }
-}
-static void DoCommon(TColStd_Array1OfReal& Coords,
-                     Standard_Real&        Cmin,
-                     Standard_Real&        Cmax)
-{
-  Standard_Integer i = 0, j = 0;
-  for(i = 1; i <= 4; i++) {
-    for(j = i+1; j <= 4; j++) {
-      if(Coords(j) > Coords(i)) {
-        Standard_Real c = Coords(i);
-        Coords.SetValue(i,Coords(j));
-        Coords.SetValue(j,c);
-      }
-    }
-  }
-  Cmax = Coords(2);
-  Cmin = Coords(3);
-}
-
-static void DoCommonBox(const Bnd_Box&        boxSurface,
-                        const Bnd_Box&        boxCurve,
-                        TColStd_Array1OfReal& X,
-                        TColStd_Array1OfReal& Y,
-                        TColStd_Array1OfReal& Z)
-{
-  Standard_Real SBXmin = 0., SBYmin = 0., SBZmin = 0.;
-  Standard_Real SBXmax = 0., SBYmax = 0., SBZmax = 0.;
-  boxSurface.Get(SBXmin,SBYmin,SBZmin,SBXmax,SBYmax,SBZmax);
-
-  Standard_Real CBXmin = 0., CBYmin = 0., CBZmin = 0.;
-  Standard_Real CBXmax = 0., CBYmax = 0., CBZmax = 0.;
-  boxCurve.Get(CBXmin,CBYmin,CBZmin,CBXmax,CBYmax,CBZmax);
-
-  TColStd_Array1OfReal Coord(1,4);
-
-  Coord(1) = SBXmin; Coord(2) = SBXmax; Coord(3) = CBXmin; Coord(4) = CBXmax;
-  Standard_Real CXmin = SBXmin, CXmax = SBXmax;
-  DoCommon(Coord,CXmin,CXmax);
-  
-  Coord(1) = SBYmin; Coord(2) = SBYmax; Coord(3) = CBYmin; Coord(4) = CBYmax;
-  Standard_Real CYmin = SBYmin, CYmax = SBYmax;
-  DoCommon(Coord,CYmin,CYmax);
-  
-  Coord(1) = SBZmin; Coord(2) = SBZmax; Coord(3) = CBZmin; Coord(4) = CBZmax;
-  Standard_Real CZmin = SBZmin, CZmax = SBZmax;
-  DoCommon(Coord,CZmin,CZmax);
-
-  X.SetValue(1,CXmin); X.SetValue(2,CXmax);
-  Y.SetValue(1,CYmin); Y.SetValue(2,CYmax);
-  Z.SetValue(1,CZmin); Z.SetValue(2,CZmax);
-}
-
-// modified by NIZHNY-MKK  Tue Jul 26 14:41:42 2005
+//=======================================================================
+//function : DoNewBounds
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::DoNewBounds(
-// static void DoNewBounds(
                                        const TheSurface&           surface,
                                        const Standard_Real         u0,
                                        const Standard_Real         u1,
@@ -424,22 +305,17 @@ void IntCurveSurface_Inter::DoNewBounds(
   }
 }
 
-//================================================================================
-//==          P e r f o r m     g e n e r a l   
-//==  
-//==          Decompose la surface si besoin est 
-//================================================================================
+//=======================================================================
+//function : Perform
+//purpose  : Decompose la surface si besoin est 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
                                    const TheSurface& surface) {
   ResetFields();
   done = Standard_True;
   Standard_Integer NbUOnS = TheSurfaceTool::NbUIntervals(surface,GeomAbs_C2);
   Standard_Integer NbVOnS = TheSurfaceTool::NbVIntervals(surface,GeomAbs_C2);
-#ifdef DEB
   Standard_Integer NbOnC  = TheCurveTool::NbIntervals(curve,GeomAbs_C2);
-#else
-  TheCurveTool::NbIntervals(curve,GeomAbs_C2);
-#endif
   Standard_Real U0,U1,V0,V1; 
   
   if(NbUOnS > 1) { 
@@ -481,23 +357,6 @@ void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
     U0 = TheSurfaceTool::FirstUParameter(surface);
     U1 = TheSurfaceTool::LastUParameter(surface); 
 
-    //-- ofv: begin
-    Standard_Boolean doTrim = DoTrim(curve,surface);
-    if(doTrim) {
-      TColgp_Array2OfPnt aPS(1,50,1,50);
-      Bnd_Box SB;
-      Standard_Real g = 1.e-7;
-      DoSurface(surface,U0,U1,V0,V1,aPS,SB,g);
-      Bnd_Box CB;
-      DoCurve(curve,CB);
-      CB.Enlarge(g);
-      TColStd_Array1OfReal X(1,2), Y(1,2), Z(1,2);
-      DoCommonBox(SB,CB,X,Y,Z);
-      TColStd_Array1OfReal B(1,4);
-      DoNewBounds(surface,U0,U1,V0,V1,aPS,X,Y,Z,B);
-      U0 = B(1); U1 = B(2); V0 = B(3); V1 = B(4);
-    }
-    //-- ofv: end
 
 #if 0
     //-- jgv patch (from)
@@ -653,8 +512,10 @@ void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
     Perform(curve,surface,U0,V0,U1,V1);
   }
 }
-//================================================================================
-//================================================================================
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
                                    const TheSurface& surface,
                                    const Standard_Real U1,const Standard_Real V1,
@@ -736,7 +597,10 @@ void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
                                    const IntCurveSurface_ThePolygon& polygon,
                                    const TheSurface& surface) {
@@ -755,7 +619,10 @@ void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
   IntCurveSurface_ThePolyhedron    polyhedron(surface,nbsu,nbsv,u1,v1,u2,v2);
   Perform(curve,polygon,surface,polyhedron);
 }
-//================================================================================
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
                                    const TheSurface& surface,
                                    const IntCurveSurface_ThePolyhedron& polyhedron) {
@@ -766,7 +633,10 @@ void IntCurveSurface_Inter::Perform(const TheCurve&   curve,
   IntCurveSurface_ThePolygon polygon(curve,TheCurveTool::NbSamples(curve,u1,u2));
   Perform(curve,polygon,surface,polyhedron);
 }
-//================================================================================
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&       curve,
                                    const IntCurveSurface_ThePolygon&     polygon,
                                    const TheSurface&     surface,
@@ -781,6 +651,10 @@ void IntCurveSurface_Inter::Perform(const TheCurve&       curve,
   InternalPerform(curve,polygon,surface,polyhedron,u1,v1,u2,v2);
 }
 
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::Perform(const TheCurve&       curve,
                                    const IntCurveSurface_ThePolygon&     polygon,
                                    const TheSurface&     surface,
@@ -795,10 +669,11 @@ void IntCurveSurface_Inter::Perform(const TheCurve&       curve,
   v2 = TheSurfaceTool::LastVParameter(surface);
   InternalPerform(curve,polygon,surface,polyhedron,u1,v1,u2,v2,BndBSB);
 }
-//================================================================================
-//==          C a l c u l   d u   p o i n t   a p p r o c h e                   ==
-//==              p u i s   d u   p o i n t   E x a c t                         ==
-//================================================================================
+//=======================================================================
+//function : InternalPerform
+//purpose  : C a l c u l   d u   p o i n t   a p p r o c h e           
+//==              p u i s   d u   p o i n t   E x a c t  
+//=======================================================================
 void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
                                            const IntCurveSurface_ThePolygon&     polygon,
                                            const TheSurface&     surface,
@@ -940,6 +815,10 @@ void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
   }
 }
 
+//=======================================================================
+//function : InternalPerform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
                                            const IntCurveSurface_ThePolygon&     polygon,
                                            const TheSurface&     surface,
@@ -1079,7 +958,10 @@ void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
     delete [] TabU;
   }
 }
-//================================================================================
+//=======================================================================
+//function : InternalPerformCurveQuadric
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::InternalPerformCurveQuadric(const TheCurve&                 curve,
                                                        const TheSurface&               surface) { 
   IntCurveSurface_TheQuadCurvExactInter QuadCurv(surface,curve);  
@@ -1095,7 +977,10 @@ void IntCurveSurface_Inter::InternalPerformCurveQuadric(const TheCurve&
   }
 }
 
-//================================================================================
+//=======================================================================
+//function : InternalPerform
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
                                            const IntCurveSurface_ThePolygon&  polygon,
                                            const TheSurface&     surface,
@@ -1148,7 +1033,10 @@ void IntCurveSurface_Inter::InternalPerform(const TheCurve&       curve,
     }
   } //-- Fin : la Surface  est une quadrique
 }
-//================================================================================
+//=======================================================================
+//function : PerformConicSurf
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::PerformConicSurf(const gp_Lin&   Line,
                                             const TheCurve&       curve,
                                             const TheSurface&     surface,
@@ -1275,7 +1163,10 @@ void IntCurveSurface_Inter::PerformConicSurf(const gp_Lin&   Line,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : PerformConicSurf
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::PerformConicSurf(const gp_Circ&        Circle,
                                             const TheCurve&       curve,
                                             const TheSurface&     surface,
@@ -1317,7 +1208,10 @@ void IntCurveSurface_Inter::PerformConicSurf(const gp_Circ&        Circle,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : PerformConicSurf
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::PerformConicSurf(const gp_Elips&       Ellipse,
                                             const TheCurve&       curve,
                                             const TheSurface&     surface,
@@ -1359,7 +1253,10 @@ void IntCurveSurface_Inter::PerformConicSurf(const gp_Elips&       Ellipse,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : PerformConicSurf
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::PerformConicSurf(const gp_Parab&       Parab,
                                             const TheCurve&       curve,
                                             const TheSurface&     surface,
@@ -1415,7 +1312,10 @@ void IntCurveSurface_Inter::PerformConicSurf(const gp_Parab&       Parab,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : PerformConicSurf
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::PerformConicSurf(const gp_Hypr&        Hypr,
                                             const TheCurve&       curve,
                                             const TheSurface&     surface,
@@ -1471,7 +1371,10 @@ void IntCurveSurface_Inter::PerformConicSurf(const gp_Hypr&        Hypr,
     }
   }
 }
-//================================================================================
+//=======================================================================
+//function : AppendIntAna
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::AppendIntAna(const TheCurve& curve,
                                         const TheSurface& surface,
                                         const IntAna_IntConicQuad& intana_ConicQuad) {
@@ -1497,7 +1400,10 @@ void IntCurveSurface_Inter::AppendIntAna(const TheCurve& curve,
     //-- cout<<" IntAna Conic Quad Not Done  "<<endl;
   }
 }
-//================================================================================
+//=======================================================================
+//function : AppendPoint
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::AppendPoint(const TheCurve& curve,
                                        const Standard_Real lw,
                                        const TheSurface& surface,
@@ -1547,17 +1453,23 @@ void IntCurveSurface_Inter::AppendPoint(const TheCurve& curve,
   
 }
 
-//================================================================================
+//=======================================================================
+//function : AppendSegment
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_Inter::AppendSegment(const TheCurve& ,
                                          const Standard_Real ,
                                          const Standard_Real ,
                                          const TheSurface& ) { 
-  cout<<" !!! Not Yet Implemented    IntCurveSurface_Inter::Append(const IntCurveSurf ...)"<<endl;
+  //cout<<" !!! Not Yet Implemented 
+  //IntCurveSurface_Inter::Append(const IntCurveSurf ...)"<<endl;
 }
 
-//================================================================================
-//== P o i n t   d   i n t e r f e r e n c e   - - >     U , V       e t   W    ==
-//================================================================================
+//=======================================================================
+//function : SectionPointToParameters
+//purpose  : P o i n t   d   i n t e r f e r e n c e   - - >  
+//    U , V       e t   W 
+//=======================================================================
 void SectionPointToParameters(const Intf_SectionPoint&              Sp,
                              const IntCurveSurface_ThePolyhedron&  Polyhedron,
                              const IntCurveSurface_ThePolygon&     Polygon,
@@ -1633,7 +1545,10 @@ void SectionPointToParameters(const Intf_SectionPoint&              Sp,
   U = u1;
   V = v1;
 }
-//================================================================================
+//=======================================================================
+//function : IntCurveSurface_ComputeTransitions
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_ComputeTransitions(const TheCurve& curve,
                                        const Standard_Real w,
                                        IntCurveSurface_TransitionOnCurve&   TransOnCurve,
@@ -1670,7 +1585,10 @@ void IntCurveSurface_ComputeTransitions(const TheCurve& curve,
     TransOnCurve   = IntCurveSurface_Tangent;
   }
 }
-//================================================================================
+//=======================================================================
+//function : IntCurveSurface_ComputeParamsOnQuadric
+//purpose  : 
+//=======================================================================
 void IntCurveSurface_ComputeParamsOnQuadric(const TheSurface& surface,
                                            const gp_Pnt& P,
                                            Standard_Real& u,
@@ -1702,42 +1620,23 @@ void IntCurveSurface_ComputeParamsOnQuadric(const TheSurface& surface,
 #endif
   }
 }
-//================================================================================
-
-
-
-
-/* 
-
-  Standard_Real u1,v1,u2,v2;
-  u1 = TheSurfaceTool::FirstUParameter(surface);
-  v1 = TheSurfaceTool::FirstVParameter(surface);
-  u2 = TheSurfaceTool::LastUParameter(surface);
-  v2 = TheSurfaceTool::LastVParameter(surface);
-  Standard_Integer nbsu,nbsv;
-  nbsu = TheSurfaceTool::NbSamplesU(surface,u1,u2);
-  nbsv = TheSurfaceTool::NbSamplesV(surface,v1,v2);
-  IntCurveSurface_ThePolyhedron    polyhedron(surface,nbsu,nbsv,u1,v1,u2,v2);
-
-*/
-//====================================================================================
-// Estimation of limits for infinite surfaces
-//====================================================================================
-
-//================================================================================
-static void EstLimForInfExtr(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Boolean IsOffSurf,
-                            const Standard_Integer nbsu, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection)
+//=======================================================================
+//function : EstLimForInfExtr
+//purpose  : Estimation of limits for infinite surfaces
+//=======================================================================
+void EstLimForInfExtr(const gp_Lin&   Line,
+                     const TheSurface& surface, 
+                     const Standard_Boolean IsOffSurf,
+                     const Standard_Integer nbsu, 
+                     const Standard_Boolean U1inf, 
+                     const Standard_Boolean U2inf, 
+                     const Standard_Boolean V1inf, 
+                     const Standard_Boolean V2inf, 
+                     Standard_Real& U1new, 
+                     Standard_Real& U2new, 
+                     Standard_Real& V1new, 
+                     Standard_Real& V2new, 
+                     Standard_Boolean& NoIntersection)
 
 {
 
@@ -1904,8 +1803,6 @@ static void EstLimForInfExtr(const gp_Lin&   Line,
   return;
   
 }
-
-//================================================================================
 //=======================================================================
 //function : ProjectIntersectAndEstLim
 //purpose  : project <theLine> and it's X-axe symmetric line to <thePln> and
@@ -1914,20 +1811,19 @@ static void EstLimForInfExtr(const gp_Lin&   Line,
 //           <theBasCurvProj>.
 //           Is called from EstLimForInfRevl()
 //=======================================================================
-
-static void ProjectIntersectAndEstLim(const gp_Lin&        theLine,
-                                     const gp_Pln&        thePln,
-                                     const ProjLib_Plane& theBasCurvProj,
-                                     Standard_Real&       theVmin,
-                                     Standard_Real&       theVmax,
-                                     Standard_Boolean&    theNoIntersection)
+void ProjectIntersectAndEstLim(const gp_Lin&        theLine,
+                              const gp_Pln&        thePln,
+                              const ProjLib_Plane& theBasCurvProj,
+                              Standard_Real&       theVmin,
+                              Standard_Real&       theVmax,
+                              Standard_Boolean&    theNoIntersection)
 {
   ProjLib_Plane aLineProj( thePln, theLine );
   if (!aLineProj.IsDone()) {
 #ifdef DEB
-    cout
-      << "Info: IntCurveSurface_Inter::ProjectIntersectAndEstLim(), !aLineProj.IsDone()"
-       << endl;
+  cout
+  << "Info: IntCurveSurface_Inter::ProjectIntersectAndEstLim(), !aLineProj.IsDone()"
+  << endl;
 #endif
     return;
   }
@@ -1995,18 +1891,17 @@ static void ProjectIntersectAndEstLim(const gp_Lin&        theLine,
 //           Algo: intersect projections of Line and basis curve on the
 //           plane passing through revolution axe
 //=======================================================================
-
-static void EstLimForInfRevl(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection)
+void EstLimForInfRevl(const gp_Lin&   Line,
+                     const TheSurface& surface, 
+                     const Standard_Boolean U1inf, 
+                     const Standard_Boolean U2inf, 
+                     const Standard_Boolean V1inf, 
+                     const Standard_Boolean V2inf, 
+                     Standard_Real& U1new, 
+                     Standard_Real& U2new, 
+                     Standard_Real& V1new, 
+                     Standard_Real& V2new, 
+                     Standard_Boolean& NoIntersection)
 {
 
   NoIntersection = Standard_False;
@@ -2096,19 +1991,22 @@ static void EstLimForInfRevl(const gp_Lin&   Line,
   return;
 }
 
-//================================================================================
-static void EstLimForInfOffs(const gp_Lin&   Line,
-                            const TheSurface& surface, 
-                            const Standard_Integer nbsu, 
-                            const Standard_Boolean U1inf, 
-                            const Standard_Boolean U2inf, 
-                            const Standard_Boolean V1inf, 
-                            const Standard_Boolean V2inf, 
-                            Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new, 
-                            Standard_Boolean& NoIntersection)
+//=======================================================================
+//function : EstLimForInfOffs
+//purpose  : 
+//=======================================================================
+void EstLimForInfOffs(const gp_Lin&   Line,
+                     const TheSurface& surface, 
+                     const Standard_Integer nbsu, 
+                     const Standard_Boolean U1inf, 
+                     const Standard_Boolean U2inf, 
+                     const Standard_Boolean V1inf, 
+                     const Standard_Boolean V2inf, 
+                     Standard_Real& U1new, 
+                     Standard_Real& U2new, 
+                     Standard_Real& V1new, 
+                     Standard_Real& V2new, 
+                     Standard_Boolean& NoIntersection)
 {
 
   NoIntersection = Standard_False;
@@ -2311,117 +2209,19 @@ static void EstLimForInfOffs(const gp_Lin&   Line,
 
     V1new = Max(V1new, -1.e10);
     V2new = Min(V2new,  1.e10);
-
   }
-
 }
-
-//================================================================================
-static void EstLimForInfSurf(Standard_Real& U1new, 
-                            Standard_Real& U2new, 
-                            Standard_Real& V1new, 
-                            Standard_Real& V2new)
+//=======================================================================
+//function : EstLimForInfSurf
+//purpose  : 
+//=======================================================================
+void EstLimForInfSurf(Standard_Real& U1new, 
+                     Standard_Real& U2new, 
+                     Standard_Real& V1new, 
+                     Standard_Real& V2new)
 {
     U1new = Max(U1new, -1.e10);
     U2new = Min(U2new,  1.e10);
     V1new = Max(V1new, -1.e10);
     V2new = Min(V2new,  1.e10);
 }
-
-#if 0
-//-- jgv patch (from)
-static Handle(Geom_Curve) GetCurve(const Handle(Adaptor3d_HCurve) AdCurve)
-{
-  Handle(Geom_Curve) theCurve;
-  GeomAbs_CurveType CurveType = AdCurve->GetType();
-  switch (CurveType)
-    {
-    case GeomAbs_Line:
-      theCurve = new Geom_Line( AdCurve->Line() );
-      break;
-    case GeomAbs_Circle:
-      theCurve = new Geom_Circle( AdCurve->Circle() );
-      break;
-    case GeomAbs_Ellipse:
-      theCurve = new Geom_Ellipse( AdCurve->Ellipse() );
-      break;
-    case GeomAbs_Hyperbola:
-      theCurve = new Geom_Hyperbola( AdCurve->Hyperbola() );
-      break;
-    case GeomAbs_Parabola:
-      theCurve = new Geom_Parabola( AdCurve->Parabola() );
-      break;
-    case GeomAbs_BezierCurve:
-      theCurve = AdCurve->Bezier();
-      break;
-    case GeomAbs_BSplineCurve:
-      theCurve = AdCurve->BSpline();
-      break;
-    }
-  if (!theCurve.IsNull())
-    {
-      Standard_Real f = AdCurve->FirstParameter();
-      Standard_Real l = AdCurve->LastParameter();
-      theCurve = new Geom_TrimmedCurve( theCurve, f, l );
-    }
-  return theCurve;
-}
-
-static Handle(Geom_Surface) GetSurface(const Handle(Adaptor3d_HSurface) AdSurface)
-{
-  Handle(Geom_Surface) theSurface;
-  GeomAbs_SurfaceType SurfaceType = AdSurface->GetType();
-  switch (SurfaceType)
-    {
-    case GeomAbs_Plane:
-      theSurface = new Geom_Plane( AdSurface->Plane() );
-      break;
-    case GeomAbs_Cylinder:
-      theSurface = new Geom_CylindricalSurface( AdSurface->Cylinder() );
-      break;
-    case GeomAbs_Cone:
-      theSurface = new Geom_ConicalSurface( AdSurface->Cone() );
-      break;
-    case GeomAbs_Torus:
-      theSurface = new Geom_ToroidalSurface( AdSurface->Torus() );
-      break;
-    case GeomAbs_Sphere:
-      theSurface = new Geom_SphericalSurface( AdSurface->Sphere() );
-      break;
-    case GeomAbs_BezierSurface:
-      theSurface = AdSurface->Bezier();
-      break;
-    case GeomAbs_BSplineSurface:
-      theSurface = AdSurface->BSpline();
-      break;
-    case GeomAbs_SurfaceOfRevolution:
-      {
-       gp_Ax1 Axis = AdSurface->AxeOfRevolution();
-       Handle(Adaptor3d_HCurve) AdBC = AdSurface->BasisCurve();
-       Handle(Geom_Curve) BC = GetCurve(AdBC);
-       if (!BC.IsNull())
-         theSurface = new Geom_SurfaceOfRevolution( BC, Axis );
-       break;
-      }
-    case GeomAbs_SurfaceOfExtrusion:
-      {
-       gp_Dir Direction = AdSurface->Direction();
-       Handle(Adaptor3d_HCurve) AdBC = AdSurface->BasisCurve();
-       Handle(Geom_Curve) BC = GetCurve(AdBC);
-       if (!BC.IsNull())
-         theSurface = new Geom_SurfaceOfLinearExtrusion( BC, Direction );
-       break;
-      }
-    }
-  if (!theSurface.IsNull())
-    {
-      Standard_Real uf = AdSurface->FirstUParameter();
-      Standard_Real ul = AdSurface->LastUParameter();
-      Standard_Real vf = AdSurface->FirstVParameter();
-      Standard_Real vl = AdSurface->LastVParameter();
-      theSurface = new Geom_RectangularTrimmedSurface( theSurface, uf, ul, vf, vl );
-    }
-  return theSurface;
-}
-//-- jgv patch (to)
-#endif