From e79ab5b8099f2cbc343614195b7cab8e9c3ef4c5 Mon Sep 17 00:00:00 2001 From: skv Date: Fri, 1 Nov 2013 12:15:32 +0000 Subject: [PATCH] 0022388: [CEA 977] Invalide shape after UnionFaces --- src/BlockFix/BlockFix_UnionFaces.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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;