Standard_Boolean IntWalk_PWalking::ExtendLineInCommonZone(const IntImp_ConstIsoparametric theChoixIso,
const Standard_Boolean theDirectionFlag)
{
+ // Caro1 and Caro2
+ const Handle(Adaptor3d_HSurface)& Caro1 = myIntersectionOn2S.Function().AuxillarSurface1();
+ const Handle(Adaptor3d_HSurface)& Caro2 = myIntersectionOn2S.Function().AuxillarSurface2();
+ //
+ const Standard_Real UFirst1 = Adaptor3d_HSurfaceTool::FirstUParameter(Caro1);
+ const Standard_Real VFirst1 = Adaptor3d_HSurfaceTool::FirstVParameter(Caro1);
+ const Standard_Real ULast1 = Adaptor3d_HSurfaceTool::LastUParameter(Caro1);
+ const Standard_Real VLast1 = Adaptor3d_HSurfaceTool::LastVParameter(Caro1);
+
+ const Standard_Real UFirst2 = Adaptor3d_HSurfaceTool::FirstUParameter(Caro2);
+ const Standard_Real VFirst2 = Adaptor3d_HSurfaceTool::FirstVParameter(Caro2);
+ const Standard_Real ULast2 = Adaptor3d_HSurfaceTool::LastUParameter(Caro2);
+ const Standard_Real VLast2 = Adaptor3d_HSurfaceTool::LastVParameter(Caro2);
+
Standard_Boolean bOutOfTangentZone = Standard_False;
Standard_Boolean bStop = !myIntersectionOn2S.IsTangent();
Standard_Integer dIncKey = 1;
Standard_Integer uvit = 0;
IntSurf_SequenceOfPntOn2S aSeqOfNewPoint;
+ previousPoint.Parameters(Param(1), Param(2), Param(3), Param(4));
+
+ if (Param(1) - UFirst1 < ResoU1)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(2) - VFirst1 < ResoV1)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(3) - UFirst2 < ResoU2)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(4) - VFirst2 < ResoV2)
+ {
+ return bOutOfTangentZone;
+ }
+
+ if (Param(1) - ULast1 > -ResoU1)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(2) - VLast1 > -ResoV1)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(3) - ULast2 > -ResoU2)
+ {
+ return bOutOfTangentZone;
+ }
+ else if (Param(4) - VLast2 > -ResoV2)
+ {
+ return bOutOfTangentZone;
+ }
+
while (!bStop) {
nbIterWithoutAppend++;
--- /dev/null
+puts "========"
+puts "OCC29093"
+puts "========"
+puts ""
+#################################
+# BOP PaveFiller hungs and constantly consumes memory
+#################################
+
+puts "TODO OCC28989 ALL : Error! Big tolerance value!"
+
+bclearobjects;
+bcleartools;
+
+restore [locate_data_file bug29093_hung.brep] a
+explode a So
+baddobjects a_1
+baddtools a_2 a_3 a_4 a_5 a_6 a_7 a_8 a_9 a_10 a_11 a_12 a_13 a_14
+
+dchrono cr restart
+
+bfillds
+bbop result 4
+
+dchrono cr stop counter bbuild
+
+regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance result] full MaxTol
+
+# Maximal tolerance value must be updated after the fix.
+# Current tolerance value is 803.89403359886296.
+
+if {${MaxTol} > 1.0e-4} {
+ puts "Error! Big tolerance value!"
+}
+
+smallview
+donly result
+fit
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file
--- /dev/null
+puts "========"
+puts "OCC29093"
+puts "========"
+puts ""
+#################################
+# BOP PaveFiller hungs and constantly consumes memory
+#################################
+
+puts "TODO OCC29145 ALL : Faulty shapes in variables faulty_1 to faulty_"
+
+bclearobjects;
+bcleartools;
+
+restore [locate_data_file bug29093_hung2.brep] a
+explode a So
+baddobjects a_1
+baddtools a_2 a_3 a_4 a_5 a_6 a_7 a_8 a_9 a_10 a_11 a_12 a_13 a_14
+
+dchrono cr restart
+
+bfillds
+bbuild result
+
+dchrono cr stop counter bbuild
+
+checkshape result
+
+smallview
+donly result
+fit
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file