X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Region.cxx;h=090171f9e8b09619801de27ad7976baa15c1c306;hb=ad8562bab9992101430a6327aa7ca06c71f6d084;hp=a4f68c331faeb01b7e24a27db665fc1bf4c3165d;hpb=7e825ec456c9331ef0df1cb59865cc55f0d8516a;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Region.cxx b/src/HYDROData/HYDROData_Region.cxx index a4f68c33..090171f9 100644 --- a/src/HYDROData/HYDROData_Region.cxx +++ b/src/HYDROData/HYDROData_Region.cxx @@ -12,10 +12,11 @@ #include #include #include -#include -#include +#include +#include #include #include +#include #include @@ -196,20 +197,16 @@ TopoDS_Shape HYDROData_Region::GetShape() const } } // faces iterator + // Check the result of fuse operation if ( !aFuseShape.IsNull() ) { - ShapeUpgrade_UnifySameDomain aUnify; - aUnify.Initialize( aFuseShape ); - aUnify.UnifyFacesAndEdges(); - aUnify.Build(); - TopoDS_Shape aUnitedShape = aUnify.Shape(); - - TopExp_Explorer anExp( aUnitedShape, TopAbs_FACE ); - if ( anExp.More() ) { - aRegionFace = TopoDS::Face( anExp.Current() ); - anExp.Next(); - if ( anExp.More() ) { - aRegionFace.Nullify(); - } + ShapeUpgrade_UnifySameDomain anUnifier( aFuseShape ); + anUnifier.Build(); + TopoDS_Shape anUnitedShape = anUnifier.Shape(); + + TopTools_IndexedMapOfShape aMapOfFaces; + TopExp::MapShapes( anUnitedShape, TopAbs_FACE, aMapOfFaces ); + if ( aMapOfFaces.Extent() == 1 ) { + aRegionFace = TopoDS::Face( aMapOfFaces(1) ); } } } @@ -231,4 +228,4 @@ TopoDS_Shape HYDROData_Region::GetShape() const } return aResShape; -} \ No newline at end of file +}