0024440: Regressions in products test group sat/doc_1
authorszv <szv@opencascade.com>
Thu, 12 Dec 2013 08:32:51 +0000 (12:32 +0400)
committerabv <abv@opencascade.com>
Thu, 12 Dec 2013 15:42:47 +0000 (19:42 +0400)
Check for closed shell is corrected

src/ShapeFix/ShapeFix_Shell.cxx
tests/de/step_4/C9
tests/de/step_4/D1

index e8d98bb..e6cd54f 100755 (executable)
@@ -873,14 +873,17 @@ Standard_Boolean ShapeFix_Shell::FixFaceOrientation(const TopoDS_Shell& shell,co
   TopTools_MapOfShape aMapMultiConnectEdges;
   Standard_Boolean isFreeBoundaries = Standard_False;
   for(Standard_Integer k = 1; k <= aMapEdgeFaces.Extent(); k++) {
-    Standard_Integer aFaceCount = aMapEdgeFaces.FindFromIndex(k).Extent();
+    const Standard_Integer aFaceCount = aMapEdgeFaces.FindFromIndex(k).Extent();
+    if (!isFreeBoundaries && aFaceCount == 1) {
+      TopoDS_Edge E = TopoDS::Edge(aMapEdgeFaces.FindKey(k));
+      if (!BRep_Tool::Degenerated(E))
+        isFreeBoundaries = Standard_True;
+    }
     //Finds multishared edges
-    if (isAccountMultiConex && aFaceCount > 2)
+    else if (isAccountMultiConex && aFaceCount > 2)
       aMapMultiConnectEdges.Add(aMapEdgeFaces.FindKey(k));
-    if (aFaceCount == 1)
-      isFreeBoundaries = Standard_True; 
   }
-  if (BRep_Tool::IsClosed (myShell) == isFreeBoundaries)
+  if (BRep_Tool::IsClosed(myShell)? isFreeBoundaries : !isFreeBoundaries)
   {
     myShell.Closed (!isFreeBoundaries);
     SendWarning (Message_Msg ("FixAdvShell.FixClosedFlag.MSG0"));//Shell has incorrect flag isClosed
index 2e9f31d..df1b00c 100644 (file)
@@ -1,6 +1,4 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
-puts "TODO CR23096 ALL: TPSTAT : Faulty" 
-
 
 set filename db_exhaust-A.stp
 
index e0af3cb..2a23317 100644 (file)
@@ -1,6 +1,4 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
-puts "TODO CR23096 ALL: TPSTAT : Faulty" 
-
 
 set filename db_exhaust-B.stp