X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMImpl%2FGEOMImpl_BooleanDriver.cxx;h=c419cd6d5f93adbc78297384662cad6e3a0c762f;hb=ad812f218cb1f26e39ac8dfbd0eac5f59ad5f396;hp=1449a1112b17800e33de8d6853f9bd3ede9c6adf;hpb=2e77f1c4451dd5a9329677b9b4eb90b9ce9e653d;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx index 1449a1112..c419cd6d5 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx @@ -153,6 +153,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const } if (isCompound) { + /* TopTools_ListOfShape listShapeC; AddSimpleShapes(C, listShapeC); TopTools_ListIteratorOfListOfShape itSubC (listShapeC); @@ -165,6 +166,14 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion()); else aShape = C; + */ + + // As GlueFaces has been improved to keep all kind of shapes + TopExp_Explorer anExp (C, TopAbs_VERTEX); + if (anExp.More()) + aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True); + else + aShape = C; } } @@ -215,6 +224,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const } if (isCompound) { + /* TopTools_ListOfShape listShapeC; AddSimpleShapes(C, listShapeC); TopTools_ListIteratorOfListOfShape itSubC (listShapeC); @@ -227,6 +237,14 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion()); else aShape = C; + */ + + // As GlueFaces has been improved to keep all kind of shapes + TopExp_Explorer anExp (C, TopAbs_VERTEX); + if (anExp.More()) + aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True); + else + aShape = C; } } @@ -369,8 +387,16 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const } } - if (isCompound) - aShape = C; + if (isCompound) { + //aShape = C; + + // As GlueFaces has been improved to keep all kind of shapes + TopExp_Explorer anExp (C, TopAbs_VERTEX); + if (anExp.More()) + aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True); + else + aShape = C; + } } // UNKNOWN operation