Salome HOME
0020993: EDF 1571 BLSURFPLUGIN: BlSurf can't mesh a disk with a disk included in it
authoreap <eap@opencascade.com>
Fri, 17 Sep 2010 05:53:51 +0000 (05:53 +0000)
committereap <eap@opencascade.com>
Fri, 17 Sep 2010 05:53:51 +0000 (05:53 +0000)
+    // make INTERNAL face oriented FORWARD (issue 0020993)
+    if (f.Orientation() != TopAbs_FORWARD && f.Orientation() != TopAbs_REVERSED )
+      f.Orientation(TopAbs_FORWARD);

src/BLSURFPlugin/BLSURFPlugin_BLSURF.cxx

index b4fb881858e533a44e0bad9a4a549e9ffb424daa..7e679fa87de93d985135ae22ac922b4dad26ae3d 100644 (file)
@@ -922,6 +922,10 @@ bool BLSURFPlugin_BLSURF::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape)
   int faceKey = -1;
   for (TopExp_Explorer face_iter(aShape,TopAbs_FACE);face_iter.More();face_iter.Next()) {
     TopoDS_Face f=TopoDS::Face(face_iter.Current());
+
+    // make INTERNAL face oriented FORWARD (issue 0020993)
+    if (f.Orientation() != TopAbs_FORWARD && f.Orientation() != TopAbs_REVERSED )
+      f.Orientation(TopAbs_FORWARD);
     
     if (fmap.FindIndex(f) > 0)
       continue;