1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0024161: boolean operation hanging

The reason of hanging has been eliminated.

Test case for issue CR24161

Small correction of test case for this issue
This commit is contained in:
nbv
2015-04-30 13:57:03 +03:00
committed by bugmaster
parent f47b8d2b37
commit 6b5b88d707
2 changed files with 32 additions and 19 deletions

View File

@@ -1003,28 +1003,18 @@ void IntWalk_PWalking::Perform(const TColStd_Array1OfReal& ParDep,
if(LevelOfIterWithoutAppend > 5)
{
if(pasSav[0]<pasInit[0])
for (Standard_Integer i = 0; i < 4; i++)
{
pasInit[0]-=(pasInit[0]-pasSav[0])*0.25;
if (pasSav[i] > pasInit[i])
continue;
const Standard_Real aDelta = (pasInit[i]-pasSav[i])*0.25;
if(aDelta > Epsilon(pasInit[i]))
{
pasInit[i] -= aDelta;
LevelOfIterWithoutAppend=0;
}
if(pasSav[1]<pasInit[1])
{
pasInit[1]-=(pasInit[1]-pasSav[1])*0.25;
LevelOfIterWithoutAppend=0;
}
if(pasSav[2]<pasInit[2])
{
pasInit[2]-=(pasInit[2]-pasSav[2])*0.25;
LevelOfIterWithoutAppend=0;
}
if(pasSav[3]<pasInit[3])
{
pasInit[3]-=(pasInit[3]-pasSav[3])*0.25;
LevelOfIterWithoutAppend=0;
}
}

View File

@@ -0,0 +1,23 @@
puts "=========="
puts "OCC24161"
puts "=========="
puts ""
###########################################
# boolean operation hanging
###########################################
cpulimit 100
restore [locate_data_file bug24161_MirrorSolids.brep] m
explode m
bop m_1 m_2
bopfuse result
checkshape result
bopargcheck result
smallview
donly result
set only_screen_axo 1