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

0030433: Checkshape: bad solid, created by revolution, is reported as valid.

BRepPrimAPI_MakeRevol.cxx, hxx
Insert checking of self-intersecting of generated surfaces in MakeRevol

BRepTest_SweepCommands.cxx
Adjusting command revol to current behavior of MakeRevol algorithm.
This commit is contained in:
ifv
2019-03-15 16:59:08 +03:00
committed by bugmaster
parent 7dd7c146e8
commit 6f2411378b
5 changed files with 176 additions and 26 deletions

View File

@@ -114,7 +114,7 @@ static Standard_Integer prism(Draw_Interpretor&, Standard_Integer n, const char*
//=======================================================================
// revol
//=======================================================================
static Standard_Integer revol(Draw_Interpretor&,
static Standard_Integer revol(Draw_Interpretor& di,
Standard_Integer n, const char** a)
{
if (n < 10) return 1;
@@ -133,14 +133,21 @@ static Standard_Integer revol(Draw_Interpretor&,
BRepPrimAPI_MakeRevol Revol(base, A, angle, copy);
TopoDS_Shape res = Revol.Shape();
if (Revol.IsDone())
{
TopoDS_Shape res = Revol.Shape();
DBRep::Set(a[1], res);
DBRep::Set(a[1], res);
//History
TopTools_ListOfShape anArgs;
anArgs.Append(base);
BRepTest_Objects::SetHistory(anArgs, Revol);
//History
TopTools_ListOfShape anArgs;
anArgs.Append(base);
BRepTest_Objects::SetHistory(anArgs, Revol);
}
else
{
di << "Revol not done \n";
}
return 0;
}