0024385: Shape fix shape does not correct closed flag for shell
authorpdn <pdn@opencascade.com>
Thu, 28 Nov 2013 06:45:18 +0000 (10:45 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 28 Nov 2013 07:08:06 +0000 (11:08 +0400)
Modified test cases de/step_4/C9 and de/step_4/D1 regarding to new reference data

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

index 59b9e02..e8d98bb 100755 (executable)
@@ -871,12 +871,19 @@ Standard_Boolean ShapeFix_Shell::FixFaceOrientation(const TopoDS_Shell& shell,co
   TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces;
   TopExp::MapShapesAndAncestors(myShell,TopAbs_EDGE,TopAbs_FACE,aMapEdgeFaces);
   TopTools_MapOfShape aMapMultiConnectEdges;
-  if(isAccountMultiConex) {
+  Standard_Boolean isFreeBoundaries = Standard_False;
+  for(Standard_Integer k = 1; k <= aMapEdgeFaces.Extent(); k++) {
+    Standard_Integer aFaceCount = aMapEdgeFaces.FindFromIndex(k).Extent();
     //Finds multishared edges
-    for(Standard_Integer k = 1; k <= aMapEdgeFaces.Extent(); k++) {
-      if(aMapEdgeFaces.FindFromIndex(k).Extent() >2)
-        aMapMultiConnectEdges.Add(aMapEdgeFaces.FindKey(k));
-    }
+    if (isAccountMultiConex && aFaceCount > 2)
+      aMapMultiConnectEdges.Add(aMapEdgeFaces.FindKey(k));
+    if (aFaceCount == 1)
+      isFreeBoundaries = Standard_True; 
+  }
+  if (BRep_Tool::IsClosed (myShell) == isFreeBoundaries)
+  {
+    myShell.Closed (!isFreeBoundaries);
+    SendWarning (Message_Msg ("FixAdvShell.FixClosedFlag.MSG0"));//Shell has incorrect flag isClosed
   }
   Standard_Boolean isGetShells = Standard_True;
   //Gets possible shells with taking in account of multiconnexity.
index 3a22d49..2e9f31d 100644 (file)
@@ -1,9 +1,12 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
+puts "TODO CR23096 ALL: TPSTAT : Faulty" 
+
+
 set filename db_exhaust-A.stp
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 6  ( 6 )  Summary  = 6  ( 6 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 7  ( 6 )  Summary  = 7  ( 6 )
 CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
 NBSHAPES    : Solid    = 3  ( 3 )  Shell    = 3  ( 3 )  Face     = 41  ( 41 )   Summary  = 617  ( 612 )
 STATSHAPE   : Solid    = 3  ( 3 )  Shell    = 3  ( 3 )  Face     = 41  ( 41 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 280  ( 275 )
index 1e0c419..e0af3cb 100644 (file)
@@ -1,9 +1,12 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
+puts "TODO CR23096 ALL: TPSTAT : Faulty" 
+
+
 set filename db_exhaust-B.stp
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 6  ( 6 )  Summary  = 6  ( 6 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 7  ( 6 )  Summary  = 7  ( 6 )
 CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
 NBSHAPES    : Solid    = 3  ( 3 )  Shell    = 3  ( 3 )  Face     = 41  ( 41 )   Summary  = 617  ( 612 )
 STATSHAPE   : Solid    = 3  ( 3 )  Shell    = 3  ( 3 )  Face     = 41  ( 41 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 280  ( 275 )