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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user