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

022695: The algorithm BRepFilletAPI_MakeFillet2d crashes in cases when some original edges of the face degenerate (become punctual)

This commit is contained in:
JGV 2011-08-18 12:45:29 +00:00 committed by bugmaster
parent 1057600a59
commit f10018adfe

View File

@ -1000,7 +1000,10 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
Fillet.Tangency2(numsol,Vv1,Vv2,Ptg2);
// check the validity of parameters
inside = (U2<param1 && U2>param2) || (U2<param2 && U2>param1);
//// modified by jgv, 08.08.2011 for bug 0022695 ////
//inside = (U2<param1 && U2>param2) || (U2<param2 && U2>param1);
inside = (U2 < param1 && U2 >= param2) || (U2 <= param2 && U2 > param1);
/////////////////////////////////////////////////////
if ( (basisC1->DynamicType() == STANDARD_TYPE(Geom2d_Circle))
&& ( (2*PI<param1 && 2*PI>param2) || (2*PI<param2 && 2*PI>param1) ) ) {
// arc of circle containing the circle origin
@ -1014,7 +1017,10 @@ TopoDS_Edge ChFi2d_Builder::BuildFilletEdge(const TopoDS_Vertex& V,
return filletEdge;
}
inside = (Vv2<param3 && Vv2>param4) || (Vv2<param4 && Vv2>param3);
//// modified by jgv, 08.08.2011 for bug 0022695 ////
//inside = (Vv2<param3 && Vv2>param4) || (Vv2<param4 && Vv2>param3);
inside = (Vv2 < param3 && Vv2 >= param4) || (Vv2 <= param4 && Vv2 > param3);
/////////////////////////////////////////////////////
if ( (basisC2->DynamicType() == STANDARD_TYPE(Geom2d_Circle))
&& ( (2*PI<param3 && 2*PI>param4) || (2*PI<param4 && 2*PI>param3) ) ) {
// arc of circle containing the circle origin