const Standard_Real aDiffU = myRangeU.second - myRangeU.first;
const Standard_Real aDiffV = myRangeV.second - myRangeV.first;
+ // Slightly increase exact resolution so to cover links with approximate
+ // length equal to resolution itself on sub-resolution differences.
const Standard_Real aTolerance = BRep_Tool::Tolerance (myDFace->GetFace());
const Adaptor3d_Surface& aSurface = GetSurface()->Surface();
- const Standard_Real aResU = aSurface.UResolution (aTolerance);
- const Standard_Real aResV = aSurface.VResolution (aTolerance);
+ const Standard_Real aResU = aSurface.UResolution (aTolerance) * 1.1;
+ const Standard_Real aResV = aSurface.VResolution (aTolerance) * 1.1;
const Standard_Real aDeflectionUV = 1.e-05;
myTolerance.first = Max(Min(aDeflectionUV, aResU), 1e-7 * aDiffU);
--- /dev/null
+puts "========"
+puts "0033060: Mesh - Sub-precisional links provoke f a i l u r e on face"
+puts "========"
+puts ""
+
+restore [locate_data_file bug33060.brep] result
+
+tclean result
+
+checkview -display result -3d -path ${imagedir}/${test_image}.png
+
+set log [tricheck result]
+if { [llength $log] != 0 } {
+ puts "Error : Invalid mesh"
+} else {
+ puts "Mesh is OK"
+}