1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00

0026359: Revolution shape of Parabola Curve has no triangles

Adaptor3d_IsoCurve::Circle() - prevent parallel check with NULL-vector

Test case for issue CR26359
This commit is contained in:
kgv 2015-06-25 12:47:26 +03:00 committed by bugmaster
parent f978241fb6
commit 34fbe24917
2 changed files with 42 additions and 5 deletions

View File

@ -766,14 +766,15 @@ gp_Circ Adaptor3d_IsoCurve::Circle() const
case GeomAbs_SurfaceOfRevolution:
{
if (myIso == GeomAbs_IsoV) {
gp_Ax1 Ax1 = mySurface->AxeOfRevolution();
gp_Vec DX(Ax1.Location(), Value(0));
if(DX.IsParallel(Ax1.Direction(),Precision::Angular())) {
return gp_Circ(gp_Ax2(Value(0), Ax1.Direction()),0);
const gp_Pnt aVal0 = Value (0.0);
gp_Ax1 Ax1 = mySurface->AxeOfRevolution();
if (gp_Lin (Ax1).Contains (aVal0, Precision::Confusion())) {
return gp_Circ(gp_Ax2(aVal0, Ax1.Direction()),0);
}
else {
gp_Vec DX(Ax1.Location(), aVal0);
axes = gp_Ax3(Ax1.Location(), Ax1.Direction(), DX);
computeHR(axes,Value(0),h,radius);
computeHR(axes,aVal0,h,radius);
gp_Vec VT = axes.Direction();
axes.Translate(VT * h);
return gp_Circ(axes.Ax2(),radius);

36
tests/bugs/moddata_3/bug26359 Executable file
View File

@ -0,0 +1,36 @@
puts "============"
puts "CR26359"
puts "============"
puts ""
###################################################################################
# Revolution shape of Parabola Curve has no triangles
###################################################################################
vinit View1
vclear
vaxo
vsetdispmode 1
restore [locate_data_file bug26359_parabola.brep] p
vdisplay p
vfit
set trinfo_s [trinfo p]
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"
}
vdump ${imagedir}/${casename}.png