1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of bisector.

Test cases for issue CR26296

Fix of regressions.

Small correction of test cases for issue CR26296
This commit is contained in:
jgv
2015-07-02 13:39:51 +03:00
committed by bugmaster
parent 1cca3ead84
commit 1867dc32f5
8 changed files with 267 additions and 23 deletions

View File

@@ -1134,7 +1134,8 @@ void BRepFill_OffsetWire::PerformWithBiLo
TV2->UpdateTolerance( 1.5*dist2 );
}
FixHoles();
if (!myIsOpenResult)
FixHoles();
myIsDone = Standard_True;
}
@@ -1399,7 +1400,19 @@ void BRepFill_OffsetWire::MakeWires()
CV = VF = TopoDS::Vertex(MVE.FindKey(i));
CE = TopoDS::Edge(MVE(i).First());
End = Standard_False;
MVE.ChangeFromKey(CV).RemoveFirst();
MVE.ChangeFromKey(CV).RemoveFirst();
if (myIsOpenResult && MVE.FindFromKey(CV).IsEmpty())
{
//MVE.UnBind(CV);
TopoDS_Shape LastShape = MVE.FindKey(MVE.Extent());
TopTools_ListOfShape LastList;
LastList.Append(MVE(MVE.Extent()));
MVE.RemoveLast();
if (MVE.FindIndex(CV) != 0)
MVE.Substitute(MVE.FindIndex(CV), LastShape, LastList);
}
// Modified by Sergey KHROMOV - Thu Mar 14 11:29:59 2002 Begin
Standard_Boolean isClosed = Standard_False;
@@ -1443,6 +1456,9 @@ void BRepFill_OffsetWire::MakeWires()
CE = TopoDS::Edge(MVE.FindFromKey(CV).First());
MVE.ChangeFromKey(CV).RemoveFirst();
}
else if (myIsOpenResult)//CV was a vertex with one edge
End = Standard_True;
if (MVE.FindFromKey(CV).IsEmpty())
{
//MVE.UnBind(CV);