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

0024886: BRepOffsetAPI_NormalProjection failure

Test case for issue CR24886
This commit is contained in:
ifv 2014-09-11 12:33:38 +04:00 committed by bugmaster
parent 1e2fb24474
commit 6e0fd076ae
3 changed files with 617 additions and 593 deletions

View File

@ -1404,10 +1404,14 @@ gp_Vec2d ProjLib_CompProjectedCurve::DN(const Standard_Real t,
gp_Pnt2d(Tol, myTolV),
gp_Pnt2d(Tl, mySurface->FirstVParameter()),
gp_Pnt2d(Tr, mySurface->LastVParameter()));
//
if(Solver.IsDone())
{
TUdisc.Append(Solver.Solution().X());
}
}
}
}
for(i = 2; i <= TUdisc.Length(); i++)
if(TUdisc(i) - TUdisc(i-1) < Precision::PConfusion())
TUdisc.Remove(i--);
@ -1458,10 +1462,14 @@ gp_Vec2d ProjLib_CompProjectedCurve::DN(const Standard_Real t,
gp_Pnt2d(Tol, myTolV),
gp_Pnt2d(Tl, mySurface->FirstUParameter()),
gp_Pnt2d(Tr, mySurface->LastUParameter()));
//
if(Solver.IsDone())
{
TVdisc.Append(Solver.Solution().X());
}
}
}
}
for(i = 2; i <= TVdisc.Length(); i++)
if(TVdisc(i) - TVdisc(i-1) < Precision::PConfusion())
TVdisc.Remove(i--);

View File

@ -107,16 +107,12 @@ void TopOpeBRepDS_EdgeInterferenceTool::Add
}
// V est un sommet de E ?
#ifdef DEB
Standard_Boolean VofE = Standard_False;
#endif
TopoDS_Iterator it(E,Standard_False);
for ( ; it.More(); it.Next() ) {
const TopoDS_Shape& S = it.Value();
if ( S.IsSame(V) ) {
#ifdef DEB
VofE = Standard_True;
#endif
break;
}
}
@ -126,7 +122,10 @@ void TopOpeBRepDS_EdgeInterferenceTool::Add
cout<<"===================== VofE = False"<<endl;
}
#endif
if(!VofE)
{
return;
}
// V est un sommet de E
const TopoDS_Vertex& VV = TopoDS::Vertex(V);
const TopoDS_Edge& EE = TopoDS::Edge(E);

17
tests/bugs/moddata_3/bug24886 Executable file
View File

@ -0,0 +1,17 @@
puts "============"
puts "CR24886"
puts "============"
puts ""
###################################################################################
# BRepOffsetAPI_NormalProjection failure
###################################################################################
restore [locate_data_file bug24886_comp.brep] c
explode c
if [catch { nproject r c_1 c_2 } ] {
puts "Error : BRepOffsetAPI_NormalProjection failure"
} else {
puts "OK : BRepOffsetAPI_NormalProjection work good"
}