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:
@@ -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;
|
||||
LevelOfIterWithoutAppend=0;
|
||||
}
|
||||
if (pasSav[i] > pasInit[i])
|
||||
continue;
|
||||
|
||||
if(pasSav[1]<pasInit[1])
|
||||
{
|
||||
pasInit[1]-=(pasInit[1]-pasSav[1])*0.25;
|
||||
LevelOfIterWithoutAppend=0;
|
||||
}
|
||||
const Standard_Real aDelta = (pasInit[i]-pasSav[i])*0.25;
|
||||
|
||||
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;
|
||||
if(aDelta > Epsilon(pasInit[i]))
|
||||
{
|
||||
pasInit[i] -= aDelta;
|
||||
LevelOfIterWithoutAppend=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
23
tests/bugs/modalg_6/bug24161
Normal file
23
tests/bugs/modalg_6/bug24161
Normal 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
|
Reference in New Issue
Block a user