Mantis issue 0020974: Extra edges appear in the result of a partition and can't be removed.

This commit is contained in:
jfa 2010-09-24 08:16:34 +00:00
parent 40622a5d1a
commit 138e896f44
2 changed files with 26 additions and 19 deletions

View File

@ -291,9 +291,15 @@ TopoDS_Shape BlockFix_UnionEdges::Perform(const TopoDS_Shape& Shape,
TopoDS_Shape aResult = myContext->Apply(Shape); TopoDS_Shape aResult = myContext->Apply(Shape);
// processing each solid // processing each solid
TopExp_Explorer exps; TopAbs_ShapeEnum aType = TopAbs_SOLID;
for(exps.Init(Shape, TopAbs_SOLID); exps.More(); exps.Next()) { TopExp_Explorer exps (Shape, aType);
TopoDS_Solid aSolid = TopoDS::Solid(exps.Current()); if (!exps.More()) {
aType = TopAbs_SHELL;
exps.Init(Shape, aType);
}
for (; exps.More(); exps.Next()) {
//TopoDS_Solid aSolid = TopoDS::Solid(exps.Current());
TopoDS_Shape aSolid = exps.Current();
TopTools_IndexedMapOfShape ChangedFaces; TopTools_IndexedMapOfShape ChangedFaces;

View File

@ -252,6 +252,7 @@ void RepairGUI_RemoveExtraEdgesDlg::enterEvent(QEvent* e)
void RepairGUI_RemoveExtraEdgesDlg::activateSelection() void RepairGUI_RemoveExtraEdgesDlg::activateSelection()
{ {
TColStd_MapOfInteger aTypes; TColStd_MapOfInteger aTypes;
aTypes.Add( GEOM_SHELL );
aTypes.Add( GEOM_SOLID ); aTypes.Add( GEOM_SOLID );
aTypes.Add( GEOM_COMPOUND ); aTypes.Add( GEOM_COMPOUND );
globalSelection( aTypes ); globalSelection( aTypes );