+ patch: improve face union (tanderson69)

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5424 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
wmayer
2012-01-24 16:38:06 +00:00
parent 3933c6b109
commit b57ca9ad64
3 changed files with 34 additions and 35 deletions

View File

@@ -436,19 +436,11 @@ FaceTypedCylinder& ModelRefine::getCylinderObject()
/////////////////////////////////////////////////////////////////////////////////////////////////////////
FaceUniter::FaceUniter(const TopoDS_Shell &shellIn)
FaceUniter::FaceUniter(const TopoDS_Shell &shellIn) : modifiedSignal(false)
{
workShell = shellIn;
}
FaceUniter::FaceUniter(const TopoDS_Solid &solidIn)
{
//get first shell
TopExp_Explorer it;
it.Init(solidIn, TopAbs_SHELL);
workShell = TopoDS::Shell(it.Current());
}
bool FaceUniter::process()
{
if (workShell.IsNull())
@@ -495,6 +487,7 @@ bool FaceUniter::process()
}
if (facesToSew.size() > 0)
{
modifiedSignal = true;
workShell = ModelRefine::removeFaces(workShell, facesToRemove);
TopExp_Explorer xp;
bool emptyShell = true;
@@ -537,11 +530,3 @@ bool FaceUniter::process()
}
return true;
}
bool FaceUniter::getSolid(TopoDS_Solid &outSolid) const
{
BRepBuilderAPI_MakeSolid solidMaker;
solidMaker.Add(workShell);
outSolid = solidMaker.Solid();
return solidMaker.IsDone() ? true : false;
}