0025179: BRepMesh cannot build a mesh on specific geometry

Check for zero division in GCPnts_TangentialDeflection

Check that mid point does not coincide with end points

Test case for issue CR25179
This commit is contained in:
oan
2014-09-04 14:24:06 +04:00
committed by bugmaster
parent 189062565f
commit 66190a47bb
2 changed files with 44 additions and 3 deletions
+7 -3
View File
@@ -382,9 +382,13 @@ void GCPnts_TangentialDeflection::PerformCurve (const TheCurve& C)
V1.Subtract (MiddlePoint.XYZ ());
L1 = V1.Modulus ();
L2 = V2.Modulus ();
Standard_Real angg = V1.CrossMagnitude(V2)/(L1*L2);
if (L1 > LTol && L2 > LTol) ACoef = angg/AngleMax;
else ACoef = 0.0;
if (L1 > LTol && L2 > LTol)
{
Standard_Real angg = V1.CrossMagnitude(V2) / (L1 * L2);
ACoef = angg / AngleMax;
}
else
ACoef = 0.0;
if (ACoef >= FCoef) Coef = ACoef; //On retient le plus penalisant
else Coef = FCoef;
+37
View File
@@ -0,0 +1,37 @@
puts "============"
puts "CR25179"
puts "============"
puts ""
###################################################################################
# BRepMesh cannot build a mesh on specific geometry
###################################################################################
restore [locate_data_file bug25179_nurbs-with-partial-seam.brep] result
tclean result
incmesh result 0.1
set trinfo_s [trinfo result]
regexp {([0-9]+) triangles} ${trinfo_s} str nbtri_s
regexp {([0-9]+) nodes} ${trinfo_s} str nbnod_s
regexp {deflection ([0-9.+e-]+)} ${trinfo_s} str defl_s
if { ${nbtri_s} == 0 } {
puts "Error: shape contains 0 triangles"
}
if { ${nbnod_s} == 0 } {
puts "Error: shape contains 0 nodes"
}
if { ${defl_s} == 0 } {
puts "Error: deflection is 0"
}
if [catch { tricheck result } ] {
puts "Error : Problem of build a mesh on specific geometry"
} else {
puts "OK : Building a mesh on specific geometry is good"
}
set 3dviewer 1