]> OCCT Git - occt.git/commitdiff
0031853: Mesh - holes in triangulation with large linear deflection IR-2022-09-16
authoroan <oan@opencascade.com>
Fri, 16 Sep 2022 14:28:22 +0000 (17:28 +0300)
committersmoskvin <smoskvin@opencascade.com>
Fri, 16 Sep 2022 15:35:32 +0000 (18:35 +0300)
0030442: Mesh - broken triangulation on pipe shape

Scale down min size parameter for NURBS taking into account its U and V resolution in order to prevent comparison of 2d parameters with 3d value involved in filtering process.

38 files changed:
src/BRepMesh/BRepMesh_NURBSRangeSplitter.cxx
tests/bugs/iges/buc60820_1
tests/bugs/iges/buc60820_2
tests/bugs/iges/buc60823
tests/bugs/mesh/bug27384_2
tests/bugs/mesh/bug27845
tests/bugs/mesh/bug28247
tests/bugs/mesh/bug29685
tests/bugs/mesh/bug29962
tests/bugs/mesh/bug30008_1
tests/bugs/mesh/bug30442 [new file with mode: 0644]
tests/bugs/mesh/bug31251
tests/bugs/mesh/bug31853 [new file with mode: 0644]
tests/bugs/mesh/bug32241
tests/bugs/modalg_2/bug264_0
tests/bugs/modalg_2/bug264_11
tests/bugs/modalg_2/bug292
tests/bugs/moddata_1/bug15519
tests/bugs/moddata_2/bug428
tests/bugs/moddata_2/fra62476_2
tests/de_mesh/shape_write_stl/A4
tests/hlr/poly_hlr/C12
tests/hlr/poly_hlr/C13
tests/hlr/poly_hlr/C14
tests/hlr/poly_hlr/C15
tests/hlr/poly_hlr/C16
tests/hlr/poly_hlr/C17
tests/hlr/poly_hlr/C20
tests/hlr/poly_hlr/C4
tests/hlr/poly_hlr/C5
tests/hlr/poly_hlr/C6
tests/hlr/poly_hlr/C7
tests/hlr/poly_hlr/bug23625_1
tests/hlr/poly_hlr/bug23625_2
tests/hlr/poly_hlr/bug23625_3
tests/hlr/poly_hlr/bug27979_2
tests/mesh/data/standard/W6
tests/mesh/data/standard/X1

index 186eca8059e2b003a0257eb2ad70f1688911a4f1..d0cb22ea67cff8bc30df633099dd5d5acff6c034 100644 (file)
@@ -553,12 +553,17 @@ Handle(IMeshData::SequenceOfReal) BRepMesh_NURBSRangeSplitter::computeGrainAndFi
     aMinDiff /= theDelta;
   }
 
-  aMinDiff = Max(theParameters.MinSize, aMinDiff);
+  const Handle(BRepAdaptor_Surface)& aSurface = GetSurface();
+  const Standard_Real aMinSize2d = Max(
+    aSurface->UResolution(theParameters.MinSize),
+    aSurface->UResolution(theParameters.MinSize));
+
+  aMinDiff = Max(aMinSize2d, aMinDiff);
 
   const Standard_Real aDiffMaxLim = 0.1 * theRangeDiff;
   const Standard_Real aDiffMinLim = Max(0.005 * theRangeDiff,
                                         2. * theTol2d);
-  const Standard_Real aDiff = Max(theParameters.MinSize,
+  const Standard_Real aDiff = Max(aMinSize2d,
                                   Min(aDiffMaxLim, aDiffMinLim));
   return filterParameters(theSourceParams, aMinDiff, aDiff, theAllocator);
 }
index 9abdd7c07c55a55f104648f82fba24d321714009..3253afd1af9438fa4b8629fe07d3bc46a6a8c262 100755 (executable)
@@ -12,5 +12,5 @@ tclean result
 incmesh result 0.1
 triangles result
 
-checktrinfo result -tri 736 -nod 613
+checktrinfo result -tri 748 -nod 619
 checkview -display result -2d -path ${imagedir}/${test_image}.png
index 06cfcf9687407cbeb78550aeab4bfc2d3e812ec1..e030c94fcb2f43366bddcf959e6cb92b31e7ea1c 100755 (executable)
@@ -13,6 +13,6 @@ vdisplay result
 vsetdispmode result 1
 vfit
 
-checktrinfo result -tri 202 -nod 216
+checktrinfo result -tri 278 -nod 254
 
 checkview -display result -2d -path ${imagedir}/${test_image}.png
index 70902ee48c02a59393a7e28d898024a4e617ee81..13dd8fef4f15ce3d187870b266240d55abafc35a 100755 (executable)
@@ -14,6 +14,6 @@ vdisplay result
 vsetdispmode result 1
 vfit
 
-checktrinfo result -tri 3496 -nod 3005
+checktrinfo result -tri 3552 -nod 3033
 
 checkview -display result -2d -path ${imagedir}/${test_image}.png
index e80517c6e09223b614a82ea1c3d6ef89dd7dd69a..640c5ca59a38330745a0c34106d7a4989fdbb65e 100644 (file)
@@ -17,7 +17,7 @@ vdefaults -autoTriang 0
 vdisplay result
 vfit
 
-set rel_tol 0.6928018366802983
+set rel_tol 0.7607262575544315
 set max_rel_tol_diff 0.001
 set area_eps 1
 
index 62877019238bab4171e426918902ef3a5f31748f..5428d732a7e7f3b393d3a124467f7fe5c5eba32d 100644 (file)
@@ -14,7 +14,7 @@ vdisplay result
 vfit 
 checkview -screenshot -3d -path ${imagedir}/${test_image}.png
 
-checktrinfo result -tri 3828 -nod 4771 -defl 3.0544822246414993 -tol_abs_defl 1e-6
+checktrinfo result -tri 3832 -nod 4773 -defl 3.0509255143612428 -tol_abs_defl 1e-6
 
 set log [tricheck result]
 if { [llength $log] != 0 } {
index 408b30c5954e06340c82ba9ee51682c9ef2abe82..aeaf5888b66cf76df4415ab36cf7101f6ba7065d 100644 (file)
@@ -19,7 +19,7 @@ incmesh result 0.59
 vdisplay result -redisplay
 vfit
 
-checktrinfo result -tri 1235 
+checktrinfo result -tri 1863 
 checkview -screenshot -3d -path ${imagedir}/${test_image}-1.png
 
 tclean result
@@ -27,7 +27,7 @@ incmesh result 0.59 -a 11.45
 vdisplay result -redisplay
 vfit
 
-checktrinfo result -tri 6438
+checktrinfo result -tri 6422
 checkview -screenshot -3d -path ${imagedir}/${test_image}-2.png
 
 tclean result
@@ -35,6 +35,6 @@ incmesh result 0.59 -a 11.45 -min 0.035
 vdisplay result -redisplay
 vfit
 
-checktrinfo result -tri 7079
+checktrinfo result -tri 6427
 checkview -screenshot -3d -path ${imagedir}/${test_image}-3.png
 
index a8cfc3e5a3648cf6065dc875960028b05a1a8d63..12c292d498f27d03311eb6df61e4aaad162369a4 100644 (file)
@@ -16,6 +16,6 @@ if { [llength $log] != 0 } {
   puts "Mesh is OK"
 }
 
-checktrinfo result -tri 148 -nod 103 -defl 0.34778084099529977 -tol_abs_defl 1e-6
+checktrinfo result -tri 156 -nod 107 -defl 0.29785837547864635 -tol_abs_defl 1e-6
 
 checkview -screenshot -3d -path ${imagedir}/${test_image}.png
index be507083ddc3761c156a12c53eee63d3ea16317a..8845afb25bfcbabfc5a84993ae6fdc5a68b6f779 100644 (file)
@@ -15,7 +15,7 @@ if { [llength $log1] != 0 } {
   puts "Mesh is OK"
 }
 
-checktrinfo result -tri 2 -nod 4 -defl 5.5579174982152475 -tol_abs_defl 1e-6
+checktrinfo result -tri 344 -nod 175 -defl 48.278808345584679 -tol_abs_defl 1e-6
 
 tclean result
 incmesh result 0.01
index 034531a702fd1af9f77c8b5e16031c5f45f93b05..add7ddfaabbc0a8e5fb7549df9fd694820155fb4 100644 (file)
@@ -12,6 +12,6 @@ vdisplay result
 vviewparams -scale 8.46292 -proj 0.653203 -0.644806 0.396926 -up -0.0109833 0.51609 0.856464 -at 347.559 1026.89 219.262 -eye 2080.75 -684.022 1272.45
 
 tricheck result
-checktrinfo result -tri 6996 -nod 4899 -defl 8.4394056682382157 -tol_abs_defl 1e-6
+checktrinfo result -tri 9470 -nod 6136 -defl 4.7757836297551908 -tol_abs_defl 1e-6
 
 checkview -screenshot -3d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/mesh/bug30442 b/tests/bugs/mesh/bug30442
new file mode 100644 (file)
index 0000000..3744389
--- /dev/null
@@ -0,0 +1,25 @@
+puts "======="
+puts "0030442: Mesh - broken triangulation on pipe shape"
+puts "======="
+puts ""
+
+bsmooth aSmoothCurve 1.0 [locate_data_file bug30442_points.txt]
+
+circle aCircle 0 0 0 1 1 1 20
+
+mkedge aSpineEdge aSmoothCurve
+mkedge aProfileEdge aCircle
+
+wire aSpineWire aSpineEdge
+wire aProfileWire aProfileEdge
+
+pipe result aSpineWire aProfileWire
+
+vinit View1
+vdisplay result
+vsetdispmode 1
+vfit
+
+checktrinfo result -tri 25814 -nod 12955
+
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png
index d1af096e3548c027d6d861a2354554e7db845948..d8693fe8e286fda922321c3ca17640ff25607872 100644 (file)
@@ -15,7 +15,7 @@ vdefaults -autoTriang 0
 
 tclean result
 incmesh result 0.004 -a 14
-checktrinfo result -tri 72522 -nod 40927 -defl 0.24607185555570676 -tol_abs_defl 1e-6
+checktrinfo result -tri 72570 -nod 40951 -defl 0.24607185555570676 -tol_abs_defl 1e-6
 
 vdisplay result -redisplay
 vfit
@@ -23,7 +23,7 @@ checkview -screenshot -3d -path ${imagedir}/${test_image}_default.png
 
 tclean result
 incmesh result 0.004 -a 14 -force_face_def
-checktrinfo result -tri 288022 -nod 148677 -defl 0.16388671063364907 -tol_abs_defl 1e-6
+checktrinfo result -tri 287990 -nod 148661 -defl 0.16388671063364907 -tol_abs_defl 1e-6
 
 vdisplay result -redisplay
 vfit
diff --git a/tests/bugs/mesh/bug31853 b/tests/bugs/mesh/bug31853
new file mode 100644 (file)
index 0000000..a309192
--- /dev/null
@@ -0,0 +1,17 @@
+puts "======="
+puts "0031853: Mesh - holes in triangulation with large linear deflection"
+puts "======="
+puts ""
+
+pload MODELING XDE VISUALIZATION
+
+testreadstep [locate_data_file bug31853_WR16-30.step] result
+
+incmesh result 1 -a 6
+checktrinfo result -tri 142834 -nod 72496
+
+vinit View1
+vdefaults -autoTriang 0
+vdisplay -dispMode 1 result
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png
index 9eab9b1b254556ff3367ba7ed2dbe5b02f743fb1..90b826a019459d0bd70a9a1fc55e806878993e7c 100644 (file)
@@ -3,6 +3,14 @@ puts "0032241: Mesh - wrong shading display of thrusections"
 puts "========"
 puts ""
 
+if { [regexp {Windows} [dversion]] } {
+  set tri_n 2702
+  set nod_n 1399
+} else {
+  set tri_n 2766
+  set nod_n 1431
+}
+
 pload MODELING VISUALIZATION
 
 circle c0 0 0 0 0 0 1 30
@@ -28,4 +36,4 @@ thrusections result issolid w0 w1 w2 w3 w4
 
 checkview -display result -3d -path ${imagedir}/${test_image}.png
 
-checktrinfo result -tri 2744 -nod 1420
+checktrinfo result -tri $tri_n -nod $nod_n
index 8816be638af2cad2e8be2536c1bb73fc44c0aa8e..95078bc7cda45b0a63806a89f75fa394e2488c22 100755 (executable)
@@ -15,6 +15,6 @@ vclear
 isos result 0
 triangles result
 
-checktrinfo result -tri 14 -nod 14
+checktrinfo result -tri 26 -nod 20
 checkprops result -s 1.3135 
 checkview -display result -3d -path ${imagedir}/${test_image}.png
index eda4fb2af34d187874fd6d709c99e8bd49f0a6c8..a733dbcb47a0e3cd5de57cecc8d2e7ee249b6303 100755 (executable)
@@ -18,6 +18,6 @@ vclear
 isos result 0
 triangles result
 
-checktrinfo result -tri 55 -nod 40
+checktrinfo result -tri 31 -nod 28
 checkprops result -s 0 
 checkview -display result -3d -path ${imagedir}/${test_image}.png
index dbb567ff419b8cf1ad5e07b595f34be81d9b4be9..f0f9ad97dc98750853b2b12d1f57fe287bc8bab0 100755 (executable)
@@ -19,6 +19,6 @@ vsetdispmode result 1
 isos result 0
 triangles result
 
-checktrinfo result -tri 14 -nod 14
+checktrinfo result -tri 26 -nod 20
 checkprops result -s 1.3135 
 checkview -display result -3d -path ${imagedir}/${test_image}.png
index d7ade0deef95bb79d7e0b9112dc490cc281bc0e6..639785f18a19868e78b274a74245558a3a24187c 100755 (executable)
@@ -14,5 +14,5 @@ tclean result
 set Deflection 1.
 catch {incmesh result ${Deflection} }
 
-checktrinfo result -tri 59881 -nod 49987 -defl 1.6213275001104823 -tol_rel_defl 0.001 -tol_rel_tri 0.001 -tol_rel_nod 0.001
+checktrinfo result -tri 60069 -nod 50081 -defl 1.6213275001104823 -tol_rel_defl 0.001 -tol_rel_tri 0.001 -tol_rel_nod 0.001
 checkview -display result -2d -path ${imagedir}/${test_image}.png
index db0bba7e45749db8b918d427316f403308d6ae69..d4cce3e9f875128d78b19b9e2d2a88f7df507fdb 100755 (executable)
@@ -19,5 +19,5 @@ isos result 0
 triangles result
 fit
 
-checktrinfo result -tri 7769 -nod 6295
+checktrinfo result -tri 10463 -nod 7643
 checkview -screenshot -2d -path ${imagedir}/${test_image}_axo.png
index feebf5b4a4713d17923713b620aaab6b1d71047d..a9c53d81e01a1bf1dd23ebbb0f034afb93ff92eb 100755 (executable)
@@ -13,5 +13,5 @@ tclean result
 incmesh result .1
 triangles result
 
-checktrinfo result -tri 335 -nod 200
+checktrinfo result -tri 163 -nod 114
 checkview -display result -3d -path ${imagedir}/${test_image}.png
index 706db284cd5712ae2a76e8b81789ae0875602553..f413f878c2d5f6f9c96788e3121c8c346d150cf0 100644 (file)
@@ -9,7 +9,7 @@ writestl m $imagedir/${casename}
 readstl res $imagedir/${casename}
 file delete $imagedir/${casename}
 
-checktrinfo res -tri 110 -nod 57
+checktrinfo res -tri 116 -nod 60
 
 # Visual check
 checkview -display res -2d -path ${imagedir}/${test_image}.png
index 69baa1a86d0b5cb569a841c12a6c9f2c7fe1d23d..fc3d46b17fa7adb792beb0d661ca8e868b2504b8 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 516.649
+set length 516.281
 
 testreadstep [locate_data_file bug27341_Adapter_Zylinder_2_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 3b9c705210fe70b6662ec6f51a86fc99cfa73010..bd4cf9a1cc576260262c138e16f8a505e1d6b3f4 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 9546.99
+set length 9548.13
 
 testreadstep [locate_data_file bug27341_Assembly_ABS_1_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 7d32bbf75730144372757c97663dc77f1e6f0cb7..c49df14909199227140607ec93eaa826b494e950 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 5502.06
+set length 5497.6
 
 testreadstep [locate_data_file bug27341_Assembly_BILZ_WFL2_1_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 526f80eca3e4f76177608a18475e3d0d08dc64cf..804df0c48f7204c08e01bf4450f04c925962ca60 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 5102.18
+set length 5101.26
 
 testreadstep [locate_data_file bug27341_Assembly_GMS_Kurz_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 4c2ecbe5c2727832b9d289bfb1a29f1b0c70620e..21f8c48b6c9ebf209ccd755f21e780ad2b05d3aa 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 1662.85
+set length 1662.87
 
 testreadstep [locate_data_file bug27341_CCS_Adapter_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index bca493e4e6fe8387b115a551f2ca641f429e46a1..f89ae7c2a251a01be9c355f11a5538c47cb8ca1b 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 2239.23
+set length 2239.26
 
 testreadstep [locate_data_file bug27341_CCT_PMK_32_L_o_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index aa685c0767b90e467820a3abd0986469c4850f19..0697995c734890668b925564bfc09e27272c01b8 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 1704.87
+set length 1704.6
 
 testreadstep [locate_data_file bug27341_Drehkopf_HSK_Gewinde_R_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index be7953c784eceba3bd51ad99722a6f93deeed57d..dd6b6c582fc536793573b8635b275d2f30db6dc3 100644 (file)
@@ -1,7 +1,5 @@
-puts "TODO OCC30286 ALL: Error : The length of result shape is 2705.91, expected 2765.47"
-
 set viewname "vright"
-set length 2765.47
+set length 2711.37
 
 testreadstep [locate_data_file bug27341_82-01_Solid_End_Mill_Radius_with_Shrink_Fit_and_extension_HeavyModel.stp] a
 COMPUTE_HLR $viewname $algotype
index 8213d96e566bd195021d29bc60f96b408ab91262..140df6fbfda49844f03641a51a75bddc00770fe8 100644 (file)
@@ -1,7 +1,5 @@
-puts "TODO OCC30286 ALL: Error : The length of result shape is 1723.\\d+, expected 1721.69"
-
 set viewname "vright"
-set length 1721.69
+set length 1718.9
 
 testreadstep [locate_data_file bug27341_ABS_Adapter_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index e149469bd2976a663b6df25fcf5c05ba7cf355e0..b63823c549101ecd9423e65452c3e3e438228146 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 2832.69
+set length 2832.05
 
 testreadstep [locate_data_file bug27341_ABS_Grundhalter_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 471a9cd4eff8f60efa625920009dd4df29df476d..76688f7cad5955ce6b9d434039647021a8358ed3 100644 (file)
@@ -1,5 +1,5 @@
 set viewname "vright"
-set length 2261.22
+set length 2261.81
 
 testreadstep [locate_data_file bug27341_AIF_Grundhalter_GR1_CAD.stp] a
 COMPUTE_HLR $viewname $algotype
index 49d3709ec7bfbd7591ef5076df9e442e6ba41374..598634bec4288610799f2dcff52d91e45d90aa98 100644 (file)
@@ -6,7 +6,7 @@ puts ""
 puts "REQUIRED All: Meshing statuses: SelfIntersectingWire Failure"
 
 set viewname "vfront"
-set length 26881.1
+set length 26411.7
 
 restore [locate_data_file bug23625_a1.brep] a
 
index af647e97e0015dd5d4aa946f98daadedf1daa922..8ae913974571259615147565d8b9ba77694dc2b1 100644 (file)
@@ -4,7 +4,7 @@ puts "============"
 puts ""
 
 set viewname "vfront"
-set length 27461.9
+set length 27126.9
 
 restore [locate_data_file bug23625_a2.brep] a
 COMPUTE_HLR $viewname $algotype
index 904e40f26132b796d8becb114ad5a489ed4410a0..2ea799431cec30a7eb423aa862a252e576d2c58c 100644 (file)
@@ -4,7 +4,7 @@ puts "============"
 puts ""
 
 set viewname "vtop"
-set length 19259.1
+set length 19649
 
 restore [locate_data_file bug23625_a3.brep] a
 COMPUTE_HLR $viewname $algotype
index 295b0b06ac9a63e86dcf72f872132c860e856aee..a5df15c581324948eee563e29d6472bd9124ed7e 100644 (file)
@@ -1,12 +1,10 @@
-puts "TODO OCC30286 ALL: Error : The length of result shape is 12.\\d+, expected 12."
-
 puts "========================================================================"
 puts "OCC27979: Parasolid converted BREP shows weird lines on hidden line Algo"
 puts "========================================================================"
 puts ""
 
 set viewname "vtop"
-set length 12.
+set length 13.0106
 
 restore [locate_data_file bug27979_parsed.brep] a
 COMPUTE_HLR $viewname $algotype
index c74273990ce657592de20f047e57770d9c89f798..8de8ecc13d224d2424f84022ffb57241846c42e3 100755 (executable)
@@ -1,6 +1,6 @@
 set TheFileName shading_wrongshape_026.brep
 if { [string compare $command "shading"] == 0 } {
-  set rel_tol 0.08526389274308782
+  set rel_tol 0.1487107687729918
 } else {
   set rel_tol 0.0020125629706199506
 }
index cca36dd09f316f23200832cfff47fc725f7b7853..d09c119532cac7dc78715d3e302413e186c77135 100755 (executable)
@@ -6,7 +6,7 @@ set TheFileName shading_wrongshape_030.brep
 set bug_cross "OCC22687"
 set nbcross(All) 4
 if { [string compare $command "shading"] == 0 } {
-  set rel_tol 0.5225697108844659
+  set rel_tol 0.48575382373356474
 } else {
   set rel_tol 0.1856053577754922
 }