Salome HOME
Fix remeshing using NETGEN of complete_sa_example
authoreap <eap@opencascade.com>
Mon, 20 Nov 2017 12:40:06 +0000 (15:40 +0300)
committereap <eap@opencascade.com>
Mon, 20 Nov 2017 12:40:06 +0000 (15:40 +0300)
src/SMESHUtils/SMESH_FillHole.cxx

index 902cd03633f11d056e8daa4b5a90850cfb1555ce..41705a3244b67ea16cdacfcd6ee08040b4e46f86 100644 (file)
@@ -176,7 +176,10 @@ namespace
 
   void BEdge::ComputeAngle( bool theReverseAngle )
   {
-    myAngleWithPrev = acos( myDir.Dot( myPrev->myDir.Reversed() ));
+    double dot = myDir.Dot( myPrev->myDir.Reversed() );
+    if      ( dot >=  1 ) myAngleWithPrev = 0;
+    else if ( dot <= -1 ) myAngleWithPrev = M_PI;
+    else                  myAngleWithPrev = acos( dot );
 
     bool isObtuse;
     gp_XYZ inFaceDirNew = myDir - myPrev->myDir;