if(anExtrema.IsDone()) {
if(anExtrema.SquareDistance() < myCriteria * myCriteria) {
Extrema_POnSurf aPOnSurf = anExtrema.Point();
- aPOnSurf.Parameter(U, V);
+ aPOnSurf.Parameter(U, V);
pointfound = Standard_True;
}
}
break;
}
else {
- aDeltaRestrictor = aDelta;
+ aDeltaRestrictor *= 0.5;
}
// if point found decide to increase aDelta using derivative of distance function
//
- aDelta = (pointfound) ? (aDelta * 2.) : (aDelta * 0.5);
+ aDelta *= (pointfound) ? 2.0 : 0.5;
aDelta = (aDelta < aDeltaRestrictor) ? aDelta : aDeltaRestrictor;
aCurPar = (ToIncreaseParameter) ? (aPrevPar + aDelta) : (aPrevPar - aDelta);
// prevent infinite loop when (aPrevPar +/- aDelta) == aPrevPar == 0.
//
- if( aCurPar == aPrevPar )
+ if (Abs(aCurPar - aPrevPar) < myCurveResolution)
+ {
break;
+ }
BoundaryCondition = (ToIncreaseParameter) ? (aCurPar > aCurrentRange.Last()) : (aCurPar < aCurrentRange.First());
checkshape result
checkprops result -v 1.52043e+7
-checknbshapes result -vertex 234 -edge 354 -wire 122 -face 121 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 834
+checknbshapes result -vertex 235 -edge 355 -wire 122 -face 121 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 836
checkview -display result -2d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "========"
+puts "0029144: Modeling Algorithms - BOP PaveFiller hangs in some case"
+puts "========"
+puts ""
+
+puts "TODO OCC29145 ALL : Faulty shapes in variables faulty_1 to faulty_"
+
+bclearobjects;
+bcleartools;
+
+restore [locate_data_file bug29093_hung3.brep] a
+explode a So
+baddobjects a_7
+baddtools a_11
+
+dchrono cr restart
+
+bfillds
+bbuild result
+
+dchrono cr stop counter bbuild
+
+checkshape result
+checkprops result -s 1313890 -v 46778600
+checknbshapes result -vertex 9 -edge 20 -wire 12 -face 12 -shell 3 -solid 3
+
+checkview -display result -2d -path ${imagedir}/${test_image}.png