From: skv Date: Fri, 1 Nov 2013 12:15:32 +0000 (+0000) Subject: 0022388: [CEA 977] Invalide shape after UnionFaces X-Git-Tag: BR_hydro_v_0_3_1~50 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e79ab5b8099f2cbc343614195b7cab8e9c3ef4c5;p=modules%2Fgeom.git 0022388: [CEA 977] Invalide shape after UnionFaces --- diff --git a/src/BlockFix/BlockFix_UnionFaces.cxx b/src/BlockFix/BlockFix_UnionFaces.cxx index c2d0459f8..292286276 100644 --- a/src/BlockFix/BlockFix_UnionFaces.cxx +++ b/src/BlockFix/BlockFix_UnionFaces.cxx @@ -302,7 +302,7 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) Standard_Integer i; for (i = 1; i <= edges.Length(); i++) { TopoDS_Edge edge = TopoDS::Edge(edges(i)); - if (BRep_Tool::Degenerated(edge)) + if (BRep_Tool::Degenerated(edge) || BRep_Tool::IsClosed(edge, aFace)) continue; const TopTools_ListOfShape& aList = aMapEdgeFaces.FindFromKey(edge); @@ -315,6 +315,11 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) if (aProcessed.Contains(anCheckedFace)) continue; + if (BRep_Tool::IsClosed(edge, anCheckedFace)) { + // Skip seam edge. + continue; + } + // Check if faces belong to same solids. if (!IsFacesOfSameSolids(aFace, anCheckedFace, aMapFaceSolids)) { continue;