]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Mantis issue 0021486: EDF GEOM: Non regression test fails (MakePartition). A fix...
authorjfa <jfa@opencascade.com>
Tue, 28 Feb 2012 05:22:00 +0000 (05:22 +0000)
committerjfa <jfa@opencascade.com>
Tue, 28 Feb 2012 05:22:00 +0000 (05:22 +0000)
src/GEOMAlgo/GEOMAlgo_Builder_2.cxx

index 8b096052af71deca6255919264517b5b22f982ab..54be6ce3ed51353773167f60f2b07f3cb6d7a30f 100755 (executable)
@@ -104,6 +104,11 @@ static
                         const Standard_Integer ,
                         NMTTools_IndexedDataMapOfIndexedMapOfInteger& );
 
+//modified by NIZNHY-PKV Thu Feb 16 12:24:52 2012f
+static
+  Standard_Boolean IsClosed(const TopoDS_Edge& aE,
+                           const TopoDS_Face& aF);
+//modified by NIZNHY-PKV Thu Feb 16 12:24:56 2012t
 
 //=======================================================================
 //function : FillImagesFaces
@@ -314,7 +319,10 @@ void GEOMAlgo_Builder::BuildSplitFaces()
       }
       //
       bIsDegenerated=BRep_Tool::Degenerated(aE);
-      bIsClosed=BRep_Tool::IsClosed(aE, aF);
+      //modified by NIZNHY-PKV Thu Feb 16 12:25:04 2012f
+      bIsClosed=IsClosed(aE, aF);
+      //bIsClosed=BRep_Tool::IsClosed(aE, aF);
+      //modified by NIZNHY-PKV Thu Feb 16 12:25:09 2012t
       //
       const TopTools_ListOfShape& aLIE=myImages.Image(aE);
       aIt.Initialize(aLIE);
@@ -960,6 +968,35 @@ void UpdateCandidates(const Standard_Integer theNF,
   }
 }
 
+//modified by NIZNHY-PKV Thu Feb 16 12:25:16 2012f
+//=======================================================================
+//function : IsClosed
+//purpose  : 
+//=======================================================================
+Standard_Boolean IsClosed(const TopoDS_Edge& aE,
+                         const TopoDS_Face& aF)
+{
+  Standard_Boolean bRet;
+  //
+  bRet=BRep_Tool::IsClosed(aE, aF);
+  if (bRet) {
+    TopTools_MapOfShape aM;
+    TopExp_Explorer aExp(aF, TopAbs_EDGE);
+    for (; aExp.More(); aExp.Next()) {
+      const TopoDS_Shape& aEx=aExp.Current();
+      //
+      if (aM.Add(aEx)) {
+       if (aEx.IsSame(aE)) {
+         break;
+       }
+      }
+    }
+    bRet=!bRet;
+  }
+  return bRet;
+}
+//modified by NIZNHY-PKV Thu Feb 16 12:25:25 2012t
+
 /*
     {
       TopoDS_Compound aCx;