From 39408dc0508e2c36f6dc8d89b6a42e9f818b4407 Mon Sep 17 00:00:00 2001 From: JGV <> Date: Fri, 2 Dec 2011 14:40:23 +0000 Subject: [PATCH] 0022801: Boolean operations algorithm fails on two customer's shapes --- src/ApproxInt/ApproxInt_MultiLine.gxx | 14 +++++++++++++- src/IntTools/IntTools_Context.cxx | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ApproxInt/ApproxInt_MultiLine.gxx b/src/ApproxInt/ApproxInt_MultiLine.gxx index cf35ed68df..6f268d1752 100755 --- a/src/ApproxInt/ApproxInt_MultiLine.gxx +++ b/src/ApproxInt/ApproxInt_MultiLine.gxx @@ -432,7 +432,7 @@ const { Standard_Real dsmin = ds*0.3; Standard_Real smax = AC(High); - for(i=2,s=ds; (sAdd(myLine->Point(Indice)); HasBeenInserted = Standard_False; Indice++; + if (Indice == High) + break; } + + if (Indice == High) + break; + if(!HasBeenInserted && AC(Indice) <= s) { ResultPntOn2SLine->Add(myLine->Point(Indice)); HasBeenInserted = Standard_True; @@ -485,7 +491,13 @@ const { //-- cout<<" Insertion du point :"<Add(myLine->Point(Indice)); HasBeenInserted = Standard_True; diff --git a/src/IntTools/IntTools_Context.cxx b/src/IntTools/IntTools_Context.cxx index 710c60a1a9..6faa98fb01 100755 --- a/src/IntTools/IntTools_Context.cxx +++ b/src/IntTools/IntTools_Context.cxx @@ -140,7 +140,8 @@ // anAdr=myProjPSMap.FindFromKey1(aF); if (!anAdr) { - Standard_Real Umin, Usup, Vmin, Vsup, anEpsT=1.e-12 ; + Standard_Real Umin, Usup, Vmin, Vsup; + Standard_Real anEpsT = Precision::PConfusion(); //1.e-12; BRepAdaptor_Surface aBAS; // const Handle(Geom_Surface)& aS=BRep_Tool::Surface(aF);