mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0022801: Boolean operations algorithm fails on two customer's shapes
This commit is contained in:
parent
a2eede021c
commit
39408dc050
@ -432,7 +432,7 @@ const {
|
|||||||
Standard_Real dsmin = ds*0.3;
|
Standard_Real dsmin = ds*0.3;
|
||||||
Standard_Real smax = AC(High);
|
Standard_Real smax = AC(High);
|
||||||
|
|
||||||
for(i=2,s=ds; (s<smax) ; i++,s+=ds) {
|
for(i=2,s=ds; (s < smax && Indice <= High-1); i++,s+=ds) {
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
//-- Recherche des indices des points --
|
//-- Recherche des indices des points --
|
||||||
//-- Point : 2 i NbPnts-1 --
|
//-- Point : 2 i NbPnts-1 --
|
||||||
@ -443,7 +443,13 @@ const {
|
|||||||
if(!HasBeenInserted) ResultPntOn2SLine->Add(myLine->Point(Indice));
|
if(!HasBeenInserted) ResultPntOn2SLine->Add(myLine->Point(Indice));
|
||||||
HasBeenInserted = Standard_False;
|
HasBeenInserted = Standard_False;
|
||||||
Indice++;
|
Indice++;
|
||||||
|
if (Indice == High)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Indice == High)
|
||||||
|
break;
|
||||||
|
|
||||||
if(!HasBeenInserted && AC(Indice) <= s) {
|
if(!HasBeenInserted && AC(Indice) <= s) {
|
||||||
ResultPntOn2SLine->Add(myLine->Point(Indice));
|
ResultPntOn2SLine->Add(myLine->Point(Indice));
|
||||||
HasBeenInserted = Standard_True;
|
HasBeenInserted = Standard_True;
|
||||||
@ -485,7 +491,13 @@ const {
|
|||||||
//-- cout<<" Insertion du point :"<<Indice<<endl;
|
//-- cout<<" Insertion du point :"<<Indice<<endl;
|
||||||
HasBeenInserted = Standard_False;
|
HasBeenInserted = Standard_False;
|
||||||
Indice++;
|
Indice++;
|
||||||
|
if (Indice == High)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Indice == High)
|
||||||
|
break;
|
||||||
|
|
||||||
if(!HasBeenInserted && AC(Indice) <= s) {
|
if(!HasBeenInserted && AC(Indice) <= s) {
|
||||||
ResultPntOn2SLine->Add(myLine->Point(Indice));
|
ResultPntOn2SLine->Add(myLine->Point(Indice));
|
||||||
HasBeenInserted = Standard_True;
|
HasBeenInserted = Standard_True;
|
||||||
|
@ -140,7 +140,8 @@
|
|||||||
//
|
//
|
||||||
anAdr=myProjPSMap.FindFromKey1(aF);
|
anAdr=myProjPSMap.FindFromKey1(aF);
|
||||||
if (!anAdr) {
|
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;
|
BRepAdaptor_Surface aBAS;
|
||||||
//
|
//
|
||||||
const Handle(Geom_Surface)& aS=BRep_Tool::Surface(aF);
|
const Handle(Geom_Surface)& aS=BRep_Tool::Surface(aF);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user