1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

0024360: Hang up trying to intersect two faces

Added test case bugs/modalg_5/bug24360
This commit is contained in:
jgv 2013-11-21 15:11:49 +04:00 committed by bugmaster
parent e5b32824c4
commit de09d2a2a0
3 changed files with 27 additions and 5 deletions

View File

@ -51,8 +51,8 @@ void IntWalk_IWalking::ComputeCloseLine(const TColStd_SequenceOfReal& Umult,
Standard_Real aBornInf[2], aBornSup[2], aUVap[2];
math_Vector BornInf(aBornInf,1,2), BornSup(aBornSup,1,2);
math_Vector Uvap(aUVap,1,2);// parameters of current approach
Standard_Real PasC; // rate of advancement on the tangent
Standard_Real PasCu; // rate of advancement current by U
Standard_Real PasC; // step of advancement on the tangent
Standard_Real PasCu; // step of advancement current by U
Standard_Real PasCv; // step of advancement current by V
Standard_Real PasSav; // save first step of advancement
Standard_Boolean Arrive;// show if line ends

View File

@ -255,10 +255,15 @@ IntWalk_StatusDeflection IntWalk_IWalking::TestDeflection
}
else {
// if (FlecheCourante > fleche) { // not too great
if (FlecheCourante > fleche*fleche) { // not too great
// if (FlecheCourante > fleche) { // step too great
if (FlecheCourante > fleche*fleche) { // step too great
Step = Step /2.;
Status = IntWalk_PasTropGrand;
StepU = Abs(Step*previousd2d.X());
StepV = Abs(Step*previousd2d.Y());
if (StepU < tolerance(1) && StepV < tolerance(2))
Status = IntWalk_ArretSurPointPrecedent;
else
Status = IntWalk_PasTropGrand;
}
else {
Standard_Real d2dx = Abs(sp.Direction2d().X());

View File

@ -0,0 +1,17 @@
puts "============"
puts "OCC24360"
puts "============"
puts ""
######################################################
# Hang up trying to intersect two faces
######################################################
restore [locate_data_file bug24360_Face_1.brep] b1
restore [locate_data_file bug24360_Face_2.brep] b2
bop b1 b2
bopfuse result
set square 92255.4
set 2dviewer 1