1. Test case for the issue has been created. The issue is fixed by the patch #26106.
2. Since now, "tricheck" command uses edge tolerance instead of edge deflection to check cross-face-errors (set of nodes of the edge on 1st face must be equal to set of nodes of the same edge on 2nd face).
}
// check distances between corresponding points
- Standard_Real aSqDefle = Max(aT1->Deflection(), aT2->Deflection());
+ Standard_Real aSqDefle = BRep_Tool::Tolerance(aEdge);
aSqDefle *= aSqDefle;
const TColgp_Array1OfPnt& aPoints1 = aT1->Nodes();
const TColgp_Array1OfPnt& aPoints2 = aT2->Nodes();
--- /dev/null
+puts "======="
+puts "0029149: BRepMesh produces invalid mesh on the bound of adjacent faces"
+puts "======="
+puts ""
+
+restore [locate_data_file bug29149.brep] result
+tclean result
+incmesh result 0.1
+
+checktrinfo result -tri 7998 -nod 4931 -defl 1.2277233425620309
+
+# Reduce shape tolerance in order to hard check of mesh quality
+settolerance result 1.0e-7
+
+if { [llength [tricheck result] ] != 0 } {
+ puts "Error : Invalid mesh"
+} else {
+ puts "Mesh is OK"
+}
+
+smallview
+isos result 0
+triangles result
+
+point p1 288.65908971200806 148.1268376105981 -99.370459908186973
+point p2 288.66203942568802 148.1262245331892 -99.373827710063281
+point p3 288.66358529587593 148.129348718649 -99.365721723137995
+don p1 p2 p3
+fit
+
+don result
+checkview -screenshot -2d -path ${imagedir}/${test_image}_zoom.png
+
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}_nozoom.png
+
set TheFileName OCC22145.stp
set bug_freenodes "OCC22687"
+set bug_cross "OCC22687"
+set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {
set TheFileName OCC22145.stp
set bug_freenodes "OCC22687"
+set bug_cross "OCC22687"
+set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {
set TheFileName OCC22302.brep
set bug_freenodes "OCC22687"
set bug_area "OCC22687"
+set bug_cross "OCC22687"
+set nbcross(ALL) 8
if { [string compare $command "shading"] == 0 } {
set nbfreenodes(ALL) 4
} else {
###set bug_withouttri "OCC23106"
###set nbwithouttri(All) 1
set bug_freenodes "OCC23105"
+set bug_cross "OCC23105"
set nbfreenodes(All) 2
+set nbcross(ALL) 1
\ No newline at end of file
set TheFileName shading_068.brep
-###set bug_cross "OCC22687"
-###set nbcross(ALL) 1
+set bug_cross "OCC22687"
+set nbcross(ALL) 2
set TheFileName shading_wrongshape_020.brep
+set bug_cross "OCC22687"
+set nbcross(ALL) 2
set TheFileName shading_wrongshape_022.brep
+set bug_cross "OCC22687"
+set nbcross(All) 2
if { [string compare $command "shading"] != 0 } {
-#set bug_cross "OCC22687"
-#set nbcross(All) 2
}
\ No newline at end of file
###set rel_tol 6
###set bug_withouttri "OCC22687"
###set nbwithouttri(All) 4
+set bug_cross "OCC22687"
+set nbcross(All) 4
if { [string compare $command "shading"] == 0 } {
set rel_tol 0.5456843734442471
} else {