1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +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());