Salome HOME
0051567: TC6.6.0: Qadrangle_2D fail
[modules/smesh.git] / src / SMESH / SMESH_Gen.cxx
index 99da9f8e4ce877f559ab8dea667f1fb71b46a85a..f70bb64fc0deafaf77ed8c3226edb87822b8f687 100644 (file)
 
 #include "memoire.h"
 
+#ifdef WNT
+  #include <windows.h>
+#endif\r
+
 using namespace std;
 
 //=============================================================================
@@ -375,7 +379,9 @@ bool SMESH_Gen::Compute(SMESH_Mesh &          aMesh,
   {
     SMESH_MesherHelper aHelper( aMesh );
     if ( aHelper.IsQuadraticMesh() != SMESH_MesherHelper::LINEAR )
-      aHelper.FixQuadraticElements();
+    {
+      aHelper.FixQuadraticElements( sm->GetComputeError() );
+    }
   }
   return ret;
 }
@@ -583,6 +589,8 @@ static bool checkConformIgnoredAlgos(SMESH_Mesh&               aMesh,
 
     if ( aLocIgnoAlgo ) // algo is hidden by a local algo of upper dim
     {
+      theErrors.push_back( SMESH_Gen::TAlgoStateError() );
+      theErrors.back().Set( SMESH_Hypothesis::HYP_HIDDEN_ALGO, algo, false );
       INFOS( "Local <" << algo->GetName() << "> is hidden by local <"
             << aLocIgnoAlgo->GetName() << ">");
     }
@@ -595,6 +603,8 @@ static bool checkConformIgnoredAlgos(SMESH_Mesh&               aMesh,
       if ( dim < aMaxGlobIgnoDim )
       {
         // algo is hidden by a global algo
+        theErrors.push_back( SMESH_Gen::TAlgoStateError() );
+        theErrors.back().Set( SMESH_Hypothesis::HYP_HIDDEN_ALGO, algo, true );
         INFOS( ( isGlobal ? "Global" : "Local" )
               << " <" << algo->GetName() << "> is hidden by global <"
               << aGlobIgnoAlgo->GetName() << ">");
@@ -1123,7 +1133,7 @@ SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh &         aMesh,
         if ( SMESH_Algo* algo3D = (SMESH_Algo*) aMesh.GetHypothesis( *solid, filter, true ))
         {
           algos3D.push_back( algo3D );
-          filter.AndNot( filter.Is( algo3D ));
+          filter.AndNot( filter.HasName( algo3D->GetName() ));
         }
       // check compatibility of algos
       if ( algos3D.size() > 1 )