]> OCCT Git - occt.git/commitdiff
0021753: Visualization - improve shaded display of conical objects CR21753_2
authordrochalo <diogo.lopes@opencascade.com>
Fri, 5 Apr 2024 16:21:01 +0000 (17:21 +0100)
committerdrochalo <diogo.lopes@opencascade.com>
Fri, 5 Apr 2024 16:21:01 +0000 (17:21 +0100)
Modified cone mesh subdivision parameters.

src/BRepMesh/BRepMesh_ConeRangeSplitter.cxx
tests/bugs/mesh/bug25287
tests/bugs/mesh/bug31449_1
tests/bugs/mesh/bug31449_3
tests/bugs/mesh/bug32053
tests/bugs/mesh/bug32767
tests/bugs/mesh/bug33050
tests/bugs/modalg_2/bug264_7

index cc61eedb9d1a8e72845319c78f1f1812de33359b..d006f77418a3cfae8ae18d0487ffe6fb4ab2cd06 100644 (file)
@@ -36,12 +36,14 @@ std::pair<Standard_Real, Standard_Real> BRepMesh_ConeRangeSplitter::GetSplitStep
                               Abs(aRefR + aRangeV.second * Sin(aSAng)));
 
   Standard_Real Dv, Du = GCPnts_TangentialDeflection::ArcAngularStep(
-    aRadius, GetDFace()->GetDeflection(),
+    aRadius, GetDFace()->GetDeflection() * 0.5,
     theParameters.Angle, theParameters.MinSize);
 
   const Standard_Real aDiffU = aRangeU.second - aRangeU.first;
   const Standard_Real aDiffV = aRangeV.second - aRangeV.first;
-  const Standard_Real aScale = (Du * aRadius);
+  //compute subdivision factor acounting for the parameters minimum size
+  const Standard_Real aSubDivFactor = Max (theParameters.MinSize, 1.0);
+  const Standard_Real aScale = (Du * aRadius / aSubDivFactor);
   const Standard_Real aRatio = Max(1., Log(aDiffV / aScale));
   const Standard_Integer nbU = (Standard_Integer)(aDiffU / Du);
   const Standard_Integer nbV = (Standard_Integer)(aDiffV / aScale / aRatio);
index f03a9626d1cd6a31d966228ed2d309084584ca63..103ce9a5af8b038e06650bff75f697894baef03f 100644 (file)
@@ -11,7 +11,7 @@ renamevar a_1 result
 
 incmesh result 0.0001 -a 30 -force_face_def -parallel
 
-checktrinfo result -tri 14058 -nod 9292 -defl 0.00031502118964205414 -tol_abs_defl 1e-6
+checktrinfo result -tri 14926 -nod 9726 -defl 0.00028360162213471898 -tol_abs_defl 1e-6
 
 vinit
 vsetdispmode 1
index 05032627a6526e628974d9677047703e91e3373c..58f7314357d8bf0bee8f8be01d84de2f0026e1ab 100644 (file)
@@ -15,6 +15,6 @@ vfit
 vsetdispmode 1
 
 XGetOneShape result Q
-checktrinfo result -tri 9097 -nod 6634
+checktrinfo result -tri 9223 -nod 6699
 
 checkview -screenshot -3d -path ${imagedir}/${test_image}.png
index b7dc0cdc229f12edd18570cc8b43bbfd1ac1e9d1..9e0c688dad7d0596131c428ee45ce7f7df9c859c 100644 (file)
@@ -14,6 +14,6 @@ XGetOneShape result Q
 
 incmesh result 0.00039624 -a 20 -min 0.0001 -parallel
 
-checktrinfo result -tri 7733 -nod 5882
+checktrinfo result -tri 7743 -nod 5887
 
 checkview -display result -3d -path ${imagedir}/${test_image}.png
index 304534d13639df9a5b81ce0bb29d33a0dba45b47..209e734226af0b66974b44015257f8197fb8240e 100644 (file)
@@ -9,6 +9,6 @@ scaleshape result a 0.1
 vdisplay result -dispMode 1
 vfit
 
-checktrinfo result -tri 168 -nod 133
+checktrinfo result -tri 204 -nod 151
 
 checkview -screenshot -3d -path ${imagedir}/${test_image}.png
index d336f9c9d5c4de8b97f1366484c5d59437af28d1..605b44474a95b8f435f12baca1f3b5befe830a24 100644 (file)
@@ -6,4 +6,4 @@ puts ""
 restore [locate_data_file bug32767.brep] s
 tclean s
 incmesh s 0.01
-checktrinfo s -tri 1512 -nod 909 -defl 0.035378595363471328 -tol_abs_defl 1e-6
\ No newline at end of file
+checktrinfo s -tri 2714 -nod 1512 -defl 0.022574056183562372 -tol_abs_defl 1e-6
\ No newline at end of file
index 466cfe9a2f32de496c35715047efbf5e4fc85e69..9c558a6e5904377e1b89bcf69ea811d60acbce52 100644 (file)
@@ -9,33 +9,33 @@ restore [locate_data_file bug33050.brep] result
 tclean result
 incmesh result 0.001
 
-checktrinfo result -tri 27652 -nod 28016 -defl 0.0027132671526737435 -tol_abs_defl 1e-6
+checktrinfo result -tri 28676 -nod 28530 -defl 0.0018679881605936205 -tol_abs_defl 1e-6
 
 tclean result
 incmesh result 0.001 -surf_def_all
 
-checktrinfo result -tri 30102 -nod 29241 -defl 0.0010301984083541042 -tol_abs_defl 1e-6
+checktrinfo result -tri 28682 -nod 28533 -defl 0.0010290003062228719 -tol_abs_defl 1e-6
 
 ################## Deflection: 0.0001 #################
 
 tclean result
 incmesh result 0.0001
 
-checktrinfo result -tri 88140 -nod 84304 -defl 0.00073349807253346574 -tol_abs_defl 1e-6
+checktrinfo result -tri 96006 -nod 88241 -defl 0.00043153032084638013 -tol_abs_defl 1e-6
 
 tclean result
 incmesh result 0.0001 -surf_def_all
 
-checktrinfo result -tri 103376 -nod 91922 -defl 0.00012553867394267057 -tol_abs_defl 1e-6
+checktrinfo result -tri 117766 -nod 99121 -defl 0.0002009725495247413 -tol_abs_defl 1e-6
 
 ################## Deflection: 0.00005 ################
 
 tclean result
 incmesh result 0.00005
 
-checktrinfo result -tri 127538 -nod 119773 -defl 0.00043153032084638013 -tol_abs_defl 1e-6
+checktrinfo result -tri 141582 -nod 126799 -defl 0.00030400570138159119 -tol_abs_defl 1e-6
 
 tclean result
 incmesh result 0.00005 -surf_def_all
 
-checktrinfo result -tri 154246 -nod 133127 -defl 5.1157129731636775e-05 -tol_abs_defl 1e-6
\ No newline at end of file
+checktrinfo result -tri 179002 -nod 145509 -defl 5.0570798687477583e-05 -tol_abs_defl 1e-6
\ No newline at end of file
index 1a03acd2e18bd86ca4beb4df7d229e8281d2e13a..88f433864d0eae8c454f372f6ee7fb205d036da9 100755 (executable)
@@ -15,6 +15,6 @@ vclear
 isos result 0
 triangles result
 
-checktrinfo result -tri 103 -nod 105
+checktrinfo result -tri 125 -nod 116
 checkprops result -s 150.283 
 checkview -display result -3d -path ${imagedir}/${test_image}.png