Salome HOME
INT PAL: 0052225: Failed mesh - number of isolines does not correspond to settings
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_ComputeDlg.cxx
index 7cc8229b2f07d46e03c0415aa6da3c40e1fe2265..e99cf69b592378bf87049289742b059f487b82cf 100644 (file)
@@ -198,6 +198,7 @@ namespace SMESH
     void Show( int subShapeID, GEOM::GEOM_Object_var aMainShape, bool only = false)
     {
       SVTK_ViewWindow* aViewWindow  = SMESH::GetViewWindow( SMESHGUI::GetSMESHGUI() );
     void Show( int subShapeID, GEOM::GEOM_Object_var aMainShape, bool only = false)
     {
       SVTK_ViewWindow* aViewWindow  = SMESH::GetViewWindow( SMESHGUI::GetSMESHGUI() );
+      SUIT_ResourceMgr* resMgr = SMESH::GetResourceMgr( SMESHGUI::GetSMESHGUI() );
       std::string mainEntry;
       if ( !aMainShape->_is_nil() )
         mainEntry = aMainShape->GetStudyEntry();
       std::string mainEntry;
       if ( !aMainShape->_is_nil() )
         mainEntry = aMainShape->GetStudyEntry();
@@ -226,8 +227,13 @@ namespace SMESH
         TopAbs_ShapeEnum type( aShape.ShapeType() >= TopAbs_WIRE ? TopAbs_EDGE : TopAbs_FACE );
         for ( TopExp_Explorer exp( aShape, type ); exp.More(); exp.Next() ) {
           //checkTriangulation( exp.Current() );
         TopAbs_ShapeEnum type( aShape.ShapeType() >= TopAbs_WIRE ? TopAbs_EDGE : TopAbs_FACE );
         for ( TopExp_Explorer exp( aShape, type ); exp.More(); exp.Next() ) {
           //checkTriangulation( exp.Current() );
-          if ( GEOM_Actor* anActor = getActor( exp.Current() ))
+          if ( GEOM_Actor* anActor = getActor( exp.Current() ) ) {
+            int UNbIsos = resMgr->integerValue( "Geometry", "iso_number_u", 1);
+            int VNbIsos = resMgr->integerValue( "Geometry", "iso_number_v", 1);
+            int aNbIsos[2] = { UNbIsos ? UNbIsos : 1, VNbIsos ? VNbIsos : 1 };
+            anActor->SetNbIsos( aNbIsos );
             myShownActors.push_back( anActor );
             myShownActors.push_back( anActor );
+          }
         }
         if ( type == TopAbs_FACE ) {
           for ( TopExp_Explorer exp( aShape, TopAbs_EDGE ); exp.More(); exp.Next() ) {
         }
         if ( type == TopAbs_FACE ) {
           for ( TopExp_Explorer exp( aShape, TopAbs_EDGE ); exp.More(); exp.Next() ) {
@@ -343,6 +349,7 @@ namespace SMESH
       CASE2TEXT( COMPERR_BAD_SHAPE        );
       CASE2TEXT( COMPERR_CANCELED         );
       CASE2TEXT( COMPERR_NO_MESH_ON_SHAPE );
       CASE2TEXT( COMPERR_BAD_SHAPE        );
       CASE2TEXT( COMPERR_CANCELED         );
       CASE2TEXT( COMPERR_NO_MESH_ON_SHAPE );
+      CASE2TEXT( COMPERR_BAD_PARMETERS    );
     case SMESH::COMPERR_ALGO_FAILED:
       if ( strlen(comment) == 0 )
         text = QObject::tr("COMPERR_ALGO_FAILED");
     case SMESH::COMPERR_ALGO_FAILED:
       if ( strlen(comment) == 0 )
         text = QObject::tr("COMPERR_ALGO_FAILED");
@@ -1313,6 +1320,7 @@ void SMESHGUI_BaseComputeOp::currentCellChanged()
   myCompDlg->myPublishBtn->setEnabled( publishEnable );
   myCompDlg->myShowBtn   ->setEnabled( showEnable );
   myCompDlg->myBadMeshBtn->setEnabled( hasBadMesh && ( nbSelected == 1 ));
   myCompDlg->myPublishBtn->setEnabled( publishEnable );
   myCompDlg->myShowBtn   ->setEnabled( showEnable );
   myCompDlg->myBadMeshBtn->setEnabled( hasBadMesh && ( nbSelected == 1 ));
+  myCompDlg->myBadMeshToGroupBtn->setEnabled( hasBadMesh && ( nbSelected == 1 ));
 }
 
 //================================================================================
 }
 
 //================================================================================
@@ -2209,10 +2217,15 @@ void SMESHGUI_BaseComputeOp::showEvaluateResult(const SMESH::long_array& theRes,
       tbl->setWordWrap( true );
 
       if ( hasBadMesh )
       tbl->setWordWrap( true );
 
       if ( hasBadMesh )
+      {
         aCompDlg->myBadMeshBtn->show();
         aCompDlg->myBadMeshBtn->show();
+        aCompDlg->myBadMeshToGroupBtn->show();
+      }
       else
       else
+      {
         aCompDlg->myBadMeshBtn->hide();
         aCompDlg->myBadMeshBtn->hide();
-
+        aCompDlg->myBadMeshToGroupBtn->hide();
+      }
       tbl->setCurrentCell(0,0);
       currentCellChanged(); // to update buttons
     }
       tbl->setCurrentCell(0,0);
       currentCellChanged(); // to update buttons
     }