diff --git a/src/IntTools/IntTools_FaceFace.cxx b/src/IntTools/IntTools_FaceFace.cxx index 2a660cc19c..b39d5da149 100755 --- a/src/IntTools/IntTools_FaceFace.cxx +++ b/src/IntTools/IntTools_FaceFace.cxx @@ -308,6 +308,19 @@ static const TopoDS_Face& aF2, const Handle(IntTools_Context)& aCtx); // +static + Standard_Real FindMaxSquareDistance (const Standard_Real aA, + const Standard_Real aB, + const Standard_Real aEps, + const Handle(Geom_Curve)& aC3D, + const Handle(Geom2d_Curve)& aC2D1, + const Handle(Geom2d_Curve)& aC2D2, + const Handle(GeomAdaptor_HSurface) myHS1, + const Handle(GeomAdaptor_HSurface) myHS2, + const TopoDS_Face& aF1, + const TopoDS_Face& aF2, + const Handle(IntTools_Context)& aCtx); + //======================================================================= //function : //purpose : @@ -731,6 +744,10 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts) GeomAbs_SurfaceType aType1, aType2; // aNbLin=myIntersector.NbLines(); + if (!aNbLin) { + return; + } + // aType1=myHS1->Surface().GetType(); aType2=myHS2->Surface().GetType(); // @@ -761,13 +778,11 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts) } } //ZZ - - {// Check the distances - Standard_Integer i, j, aNbP; - Standard_Real aT, aT1, aT2, dT, aD2, aD2Max; + if (aNbLin) {// Check the distances + Standard_Integer i, aNbP, j ; + Standard_Real aT, aT1, aT2, dT, aD2, aD2Max, aEps, aT11, aT12; // aD2Max=0.; - aNbP=11; aNbLin=mySeqOfCurve.Length(); // for (i=1; i<=aNbLin; ++i) { @@ -788,22 +803,22 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts) aT1=aBC->FirstParameter(); aT2=aBC->LastParameter(); // - aNbP--; + aEps=0.01*(aT2-aT1); + aNbP=10; dT=(aT2-aT1)/aNbP; - //modified by NIZNHY-PKV Tue Apr 17 14:36:33 2012f for (j=1; jaD2Max) { aD2Max=aD2; } - }//for (j=0; j