mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0024360: Hang up trying to intersect two faces
Added test case bugs/modalg_5/bug24360
This commit is contained in:
parent
e5b32824c4
commit
de09d2a2a0
@ -51,8 +51,8 @@ void IntWalk_IWalking::ComputeCloseLine(const TColStd_SequenceOfReal& Umult,
|
|||||||
Standard_Real aBornInf[2], aBornSup[2], aUVap[2];
|
Standard_Real aBornInf[2], aBornSup[2], aUVap[2];
|
||||||
math_Vector BornInf(aBornInf,1,2), BornSup(aBornSup,1,2);
|
math_Vector BornInf(aBornInf,1,2), BornSup(aBornSup,1,2);
|
||||||
math_Vector Uvap(aUVap,1,2);// parameters of current approach
|
math_Vector Uvap(aUVap,1,2);// parameters of current approach
|
||||||
Standard_Real PasC; // rate of advancement on the tangent
|
Standard_Real PasC; // step of advancement on the tangent
|
||||||
Standard_Real PasCu; // rate of advancement current by U
|
Standard_Real PasCu; // step of advancement current by U
|
||||||
Standard_Real PasCv; // step of advancement current by V
|
Standard_Real PasCv; // step of advancement current by V
|
||||||
Standard_Real PasSav; // save first step of advancement
|
Standard_Real PasSav; // save first step of advancement
|
||||||
Standard_Boolean Arrive;// show if line ends
|
Standard_Boolean Arrive;// show if line ends
|
||||||
|
@ -255,10 +255,15 @@ IntWalk_StatusDeflection IntWalk_IWalking::TestDeflection
|
|||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// if (FlecheCourante > fleche) { // not too great
|
// if (FlecheCourante > fleche) { // step too great
|
||||||
if (FlecheCourante > fleche*fleche) { // not too great
|
if (FlecheCourante > fleche*fleche) { // step too great
|
||||||
Step = Step /2.;
|
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 {
|
else {
|
||||||
Standard_Real d2dx = Abs(sp.Direction2d().X());
|
Standard_Real d2dx = Abs(sp.Direction2d().X());
|
||||||
|
17
tests/bugs/modalg_5/bug24360
Normal file
17
tests/bugs/modalg_5/bug24360
Normal 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
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user