1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0030940: BRepFilletAPI_MakeFillet algorithm fails on closed shell

1. Add check of configuration of corner in the end of spine.
2. Correct treatment of "smooth corners".
This commit is contained in:
jgv
2019-09-20 13:52:10 +03:00
committed by apn
parent bf327822d6
commit eff3eff916
33 changed files with 586 additions and 319 deletions

View File

@@ -180,26 +180,6 @@ void BRepOffset_Tool::EdgeVertices (const TopoDS_Edge& E,
}
}
//=======================================================================
//function : OriEdgeInFace
//purpose :
//=======================================================================
TopAbs_Orientation BRepOffset_Tool::OriEdgeInFace (const TopoDS_Edge& E,
const TopoDS_Face& F )
{
TopExp_Explorer Exp;
Exp.Init(F.Oriented(TopAbs_FORWARD),TopAbs_EDGE);
for (; Exp.More() ;Exp.Next()) {
if (Exp.Current().IsSame(E)) {
return Exp.Current().Orientation();
}
}
throw Standard_ConstructionError("BRepOffset_Tool::OriEdgeInFace");
}
//=======================================================================
//function : FindPeriod
//purpose :
@@ -3008,8 +2988,8 @@ void BRepOffset_Tool::CheckBounds(const TopoDS_Face& F,
const BRepOffset_ListOfInterval& L = Analyse.Type(anEdge);
if (!L.IsEmpty() || BRep_Tool::Degenerated(anEdge))
{
BRepOffset_Type OT = L.First().Type();
if (OT == BRepOffset_Tangent || BRep_Tool::Degenerated(anEdge))
ChFiDS_TypeOfConcavity OT = L.First().Type();
if (OT == ChFiDS_Tangential || BRep_Tool::Degenerated(anEdge))
{
Standard_Real fpar, lpar;
Handle(Geom2d_Curve) aCurve = BRep_Tool::CurveOnSurface(anEdge, F, fpar, lpar);