Define minimum number of points for specific types of curves like it was done for circular edges.
myEdgeSqTol = BRep_Tool::Tolerance (myEdge);
myEdgeSqTol *= myEdgeSqTol;
- const Standard_Integer aMinPntNb = Max(myMinPointsNb,
- (myCurve.GetType() == GeomAbs_Circle) ? 4 : 2); //OCC287
+ Standard_Integer aMinPntThreshold = 2;
+ switch (myCurve.GetType())
+ {
+ case GeomAbs_Circle:
+ case GeomAbs_Ellipse:
+ case GeomAbs_Parabola:
+ case GeomAbs_Hyperbola:
+ aMinPntThreshold = 4;
+ break;
+
+ default:
+ break;
+ }
+ const Standard_Integer aMinPntNb = Max (myMinPointsNb, aMinPntThreshold); //OCC287
myDiscretTool.Initialize (myCurve,
myCurve.FirstParameter(), myCurve.LastParameter(),
aPreciseAngDef, aPreciseLinDef, aMinPntNb,
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 3834 -nod 4777 -defl 3.0544822246414993 -tol_abs_defl 1e-6
set log [tricheck result]
if { [llength $log] != 0 } {
vsetdispmode 1
XGetOneShape result Q
-checktrinfo result -tri 9025 -nod 6562
+checktrinfo result -tri 9097 -nod 6634
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
incmesh result 0.00039624 -a 20 -min 0.0001 -parallel
-checktrinfo result -tri 7661 -nod 5810
+checktrinfo result -tri 7733 -nod 5882
checkview -display result -3d -path ${imagedir}/${test_image}.png
--- /dev/null
+puts "========"
+puts "0031865: Mesh - triangulation fails with large deflection values due to unhandled Standard_OutOfRange, BRepMesh_PairOfIndex::Append()"
+puts "========"
+puts ""
+
+restore [locate_data_file bug31865.brep] result
+
+tclean result
+incmesh result 0.2
+
+vinit
+vdefaults -autoTriang 0
+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"
+}
isos result 0
triangles result
-checktrinfo result -tri 18 -nod 20
+checktrinfo result -tri 20 -nod 22
checkprops result -s 19.2399
checkview -display result -3d -path ${imagedir}/${test_image}.png
isos result 0
triangles result
-checktrinfo result -tri 91 -nod 93
+checktrinfo result -tri 103 -nod 105
checkprops result -s 150.283
checkview -display result -3d -path ${imagedir}/${test_image}.png
readstl res $imagedir/${casename}
file delete $imagedir/${casename}
-checktrinfo res -tri 34 -nod 19
+checktrinfo res -tri 36 -nod 20
# Visual check
checkview -display res -2d -path ${imagedir}/${test_image}.png
puts ""
set viewname "vbottom"
-set length 8.40196
+set length 8.40188
restore [locate_data_file bug27341_hlrsave.brep] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 9547.12
+set length 9546.37
testreadstep [locate_data_file bug27341_Assembly_ABS_1_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 5101.26
+set length 5101.97
testreadstep [locate_data_file bug27341_Assembly_GMS_Kurz_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 1704.86
+set length 1705.48
testreadstep [locate_data_file bug27341_Drehkopf_HSK_Gewinde_R_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 826.794
+set length 829.419
testreadstep [locate_data_file bug27341_KMM_Adapter_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 217.803
+set length 239.091
testreadstep [locate_data_file bug27341_MZX_01_1_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 3057.35
+set length 3057.09
testreadstep [locate_data_file bug27341_570-DWLNL-40-08-L_131LANG_16VERSATZ_DIN.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 2832.09
+set length 2832.15
testreadstep [locate_data_file bug27341_ABS_Grundhalter_CAD.stp] a
COMPUTE_HLR $viewname $algotype
set viewname "vright"
-set length 1154.09
+set length 1154.43
testreadstep [locate_data_file bug27341_AWN_Adapter_CAD.stp] a
COMPUTE_HLR $viewname $algotype
puts ""
set viewname "vtop"
-set length 13.0106
+set length 13.0091
restore [locate_data_file bug27979_parsed.brep] a
COMPUTE_HLR $viewname $algotype