Salome HOME
Remove useless traces
[modules/smesh.git] / src / SMESH / SMESH_Gen.cxx
index d515351393d12d2ad617c0f2e3be0162697c2e38..c8ba34bc33dc1d07aa213dab65459e05aeb88408 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #include "Utils_ExceptHandlers.hxx"
 
 #include <TopoDS_Iterator.hxx>
+#include <TopoDS.hxx>
 
 #include "memoire.h"
 
-#ifdef WNT
+#ifdef WIN32
   #include <windows.h>
 #endif
 
@@ -65,7 +66,7 @@ SMESH_Gen::SMESH_Gen()
 {
   MESSAGE("SMESH_Gen::SMESH_Gen");
   _localId = 0;
-  _hypId = 0;
+  _hypId   = 0;
   _segmentation = _nbSegments = 10;
   SMDS_Mesh::_meshList.clear();
   MESSAGE(SMDS_Mesh::_meshList.size());
@@ -163,12 +164,13 @@ bool SMESH_Gen::Compute(SMESH_Mesh &          aMesh,
       SMESH_subMesh* smToCompute = smIt->next();
 
       // do not mesh vertices of a pseudo shape
-      const TopAbs_ShapeEnum aShType = smToCompute->GetSubShape().ShapeType();
-      if ( !aMesh.HasShapeToMesh() && aShType == TopAbs_VERTEX )
+      const TopoDS_Shape&        shape = smToCompute->GetSubShape();
+      const TopAbs_ShapeEnum shapeType = shape.ShapeType();
+      if ( !aMesh.HasShapeToMesh() && shapeType == TopAbs_VERTEX )
         continue;
 
       // check for preview dimension limitations
-      if ( aShapesId && GetShapeDim( aShType ) > (int)aDim )
+      if ( aShapesId && GetShapeDim( shapeType ) > (int)aDim )
       {
         // clear compute state not to show previous compute errors
         //  if preview invoked less dimension less than previous
@@ -185,8 +187,9 @@ bool SMESH_Gen::Compute(SMESH_Mesh &          aMesh,
         _sm_current = NULL;
       }
 
-      // we check all the submeshes here and detect if any of them failed to compute
-      if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE)
+      // we check all the sub-meshes here and detect if any of them failed to compute
+      if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE &&
+          ( shapeType != TopAbs_EDGE || !SMESH_Algo::isDegenerated( TopoDS::Edge( shape ))))
         ret = false;
       else if ( aShapesId )
         aShapesId->insert( smToCompute->GetId() );
@@ -346,9 +349,9 @@ bool SMESH_Gen::Compute(SMESH_Mesh &          aMesh,
         sm = *subIt;
         if ( sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE)
         {
-          const TopAbs_ShapeEnum aShType = sm->GetSubShape().ShapeType();
+          const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType();
           // check for preview dimension limitations
-          if ( aShapesId && GetShapeDim( aShType ) > (int)aDim )
+          if ( aShapesId && GetShapeDim( shapeType ) > (int)aDim )
             continue;
 
           if (_compute_canceled)
@@ -389,8 +392,6 @@ bool SMESH_Gen::Compute(SMESH_Mesh &          aMesh,
   return ret;
 }
 
-
-#ifdef WITH_SMESH_CANCEL_COMPUTE
 //=============================================================================
 /*!
  * Prepare Compute a mesh
@@ -416,7 +417,6 @@ void SMESH_Gen::CancelCompute(SMESH_Mesh &          aMesh,
       _sm_current->ComputeStateEngine( SMESH_subMesh::COMPUTE_CANCELED );
     }
 }
-#endif
 
 //=============================================================================
 /*!
@@ -449,12 +449,12 @@ bool SMESH_Gen::Evaluate(SMESH_Mesh &          aMesh,
       SMESH_subMesh* smToCompute = smIt->next();
 
       // do not mesh vertices of a pseudo shape
-      const TopAbs_ShapeEnum aShType = smToCompute->GetSubShape().ShapeType();
-      //if ( !aMesh.HasShapeToMesh() && aShType == TopAbs_VERTEX )
+      const TopAbs_ShapeEnum shapeType = smToCompute->GetSubShape().ShapeType();
+      //if ( !aMesh.HasShapeToMesh() && shapeType == TopAbs_VERTEX )
       //  continue;
       if ( !aMesh.HasShapeToMesh() ) {
-        if( aShType == TopAbs_VERTEX || aShType == TopAbs_WIRE ||
-            aShType == TopAbs_SHELL )
+        if( shapeType == TopAbs_VERTEX || shapeType == TopAbs_WIRE ||
+            shapeType == TopAbs_SHELL )
           continue;
       }
 
@@ -521,8 +521,6 @@ bool SMESH_Gen::Evaluate(SMESH_Mesh &          aMesh,
         const int aShapeDim = GetShapeDim( aSubShape );
         if ( aShapeDim < 1 ) continue;
 
-        //const TopAbs_ShapeEnum aShType = smToCompute->GetSubShape().ShapeType();
-
         SMESH_HypoFilter filter( SMESH_HypoFilter::IsAlgo() );
         filter
           .And( SMESH_HypoFilter::IsApplicableTo( aSubShape ))
@@ -911,7 +909,6 @@ bool SMESH_Gen::GetAlgoState(SMESH_Mesh&               theMesh,
 
   if ( !hasAlgo ) {
     ret = false;
-    INFOS( "None algorithm attached" );
     theErrors.push_back( TAlgoStateError() );
     theErrors.back().Set( SMESH_Hypothesis::HYP_MISSING, 1, true );
   }
@@ -979,7 +976,7 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths()
           sep = rootDir[pos];
           break;
         }
-#ifdef WNT
+#ifdef WIN32
       if (sep.empty() ) sep = "\\";
 #else
       if (sep.empty() ) sep = "/";
@@ -994,7 +991,7 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths()
         xmlPath += tolower( pluginSubDir[pos] );
       xmlPath += sep + plugin + ".xml";
       bool fileOK;
-#ifdef WNT
+#ifdef WIN32
       fileOK = (GetFileAttributes(xmlPath.c_str()) != INVALID_FILE_ATTRIBUTES);
 #else
       fileOK = (access(xmlPath.c_str(), F_OK) == 0);