Added test case bugs/modalg_5/bug24360
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 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
Standard_Real PasCv; // step of advancement current by V
Standard_Real PasSav; // save first step of advancement
Standard_Boolean Arrive;// show if line ends
-// 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
- 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());
}
else {
Standard_Real d2dx = Abs(sp.Direction2d().X());
--- /dev/null
+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
+