Salome HOME
Merge branch 'master' into gni/adaptation
authorGérald NICOLAS <gerald.nicolas@edf.fr>
Wed, 27 May 2020 08:40:52 +0000 (10:40 +0200)
committerGérald NICOLAS <gerald.nicolas@edf.fr>
Wed, 27 May 2020 08:40:52 +0000 (10:40 +0200)
1  2 
src/SMESHGUI/SMESHGUI.cxx

index 0473734925f6a99631d12c35ca877bb01efccb9b,f638d0391b8722e5ca7be3470c7fdd2a7d138a2b..ecae8b802e235abed320a3715832b598a10f653e
@@@ -30,7 -30,6 +30,7 @@@
  
  //  SMESH includes
  #include "SMESHGUI.h"
 +#include "SMESHGUI_AdaptDlg.h"
  #include "SMESHGUI_Add0DElemsOnAllNodesDlg.h"
  #include "SMESHGUI_AddMeshElementDlg.h"
  #include "SMESHGUI_AddQuadraticElementDlg.h"
@@@ -3034,24 -3033,6 +3034,24 @@@ bool SMESHGUI::OnGUIEvent( int theComma
        }
        break;
      }
 +
 +  // Adaptation - begin
 +  case SMESHOp::OpUniformRefinement:
 +  case SMESHOp::OpHONewCase:
 +  case SMESHOp::OpHOCaseFollow:
 +  case SMESHOp::OpHONewIter:
 +  case SMESHOp::OpHOIterCompute:
 +  case SMESHOp::OpHOIterComputePublish:
 +  case SMESHOp::OpHOEdit:
 +  case SMESHOp::OpHODelete:
 +  case SMESHOp::OpMGAdapt:
 +    {
 +      SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
 +      SMESHGUI_AdaptDlg *aDlg = new SMESHGUI_AdaptDlg( this, theCommandID, aMesh);
 +      aDlg->show();
 +    }
 +  // Adaptation - end
 +
    case SMESHOp::OpSplitBiQuadratic:
    case SMESHOp::OpConvertMeshToQuadratic:
    case SMESHOp::OpCreateBoundaryElements: // create 2D mesh from 3D
@@@ -4289,17 -4270,6 +4289,17 @@@ void SMESHGUI::initialize( CAM_Applicat
    createSMESHAction( SMESHOp::OpAutoColor,        "AUTO_COLOR" );
    createSMESHAction( SMESHOp::OpDisableAutoColor, "DISABLE_AUTO_COLOR" );
  
 +// Mesh adaptation
 +  createSMESHAction( SMESHOp::OpUniformRefinement,    "REF_ALL",                 "ICON_REF_ALL" );
 +  createSMESHAction( SMESHOp::OpHONewCase,            "HOMARD_CREATE_CASE",      "ICON_HOMARD_CREATE_CASE" );
 +  createSMESHAction( SMESHOp::OpHOCaseFollow,         "HOMARD_FOLLOW_ITERATION", "ICON_HOMARD_FOLLOW_ITERATION" );
 +  createSMESHAction( SMESHOp::OpHONewIter,            "HOMARD_NEW_ITERATION",    "ICON_HOMARD_NEW_ITERATION" );
 +  createSMESHAction( SMESHOp::OpHOIterCompute,        "HOMARD_COMPUTE",          "ICON_HOMARD_COMPUTE" );
 +  createSMESHAction( SMESHOp::OpHOIterComputePublish, "HOMARD_COMPUTE_PUBLISH",  "ICON_HOMARD_COMPUTE_PUBLISH" );
 +  createSMESHAction( SMESHOp::OpHOEdit,               "EDIT",                    "ICON_DLG_EDIT_MESH" );
 +  createSMESHAction( SMESHOp::OpHODelete,             "DELETE",                  "ICON_DELETE" );
 +  createSMESHAction( SMESHOp::OpMGAdapt,              "MG_ADAPT",                "ICON_MG_ADAPT" );
 +
    createSMESHAction( SMESHOp::OpMinimumDistance,  "MEASURE_MIN_DIST", "ICON_MEASURE_MIN_DIST" );
    createSMESHAction( SMESHOp::OpBoundingBox,      "MEASURE_BND_BOX",  "ICON_MEASURE_BND_BOX" );
    createSMESHAction( SMESHOp::OpPropertiesLength, "MEASURE_LENGTH",   "ICON_MEASURE_LENGTH" );
        meshId    = createMenu( tr( "MEN_MESH" ),    -1, 70, 10 ),
        ctrlId    = createMenu( tr( "MEN_CTRL" ),    -1, 60, 10 ),
        modifyId  = createMenu( tr( "MEN_MODIFY" ),  -1, 40, 10 ),
 +      adaptId   = createMenu( tr( "MEN_ADAPT" ),   -1, 80, 10 ),
        measureId = createMenu( tr( "MEN_MEASURE" ), -1, 50, 10 ),
        viewId    = createMenu( tr( "MEN_VIEW" ),    -1,  2 );
  
        removeId = createMenu( tr( "MEN_REMOVE" ), modifyId, 403 ),
      //renumId  = createMenu( tr( "MEN_RENUM" ),  modifyId, 404 ),
        transfId = createMenu( tr( "MEN_TRANSF" ), modifyId, 405 ),
 +      refHomardId = createMenu( tr( "MEN_REF_HOMARD" ), adaptId, -1, 10 ),
        basicPropId = createMenu( tr( "MEN_BASIC_PROPERTIES" ), measureId, -1, 10 );
  
    //createMenu( SMESHOp::OpImportDAT, importId, -1 );
    createMenu( SMESHOp::OpSmoothing,              modifyId, -1 );
    createMenu( SMESHOp::OpPatternMapping,         modifyId, -1 );
  
 +  createMenu( SMESHOp::OpUniformRefinement,    adaptId, -1 );
 +  createMenu( SMESHOp::OpHONewCase,            refHomardId, -1 );
 +  createMenu( SMESHOp::OpHOCaseFollow,         refHomardId, -1 );
 +  createMenu( separator(),                     refHomardId, -1 );
 +  createMenu( SMESHOp::OpHONewIter,            refHomardId, -1 );
 +  createMenu( SMESHOp::OpHOIterCompute,        refHomardId, -1 );
 +  createMenu( SMESHOp::OpHOIterComputePublish, refHomardId, -1 );
 +  createMenu( separator(),                     refHomardId, -1 );
 +  createMenu( SMESHOp::OpHOEdit,               refHomardId, -1 );
 +  createMenu( SMESHOp::OpHODelete,             refHomardId, -1 );
 +  createMenu( SMESHOp::OpMGAdapt,              adaptId, -1 );
 +
    createMenu( SMESHOp::OpMinimumDistance,  measureId,   -1 );
    createMenu( SMESHOp::OpBoundingBox,      measureId,   -1 );
    createMenu( SMESHOp::OpAngle,            measureId,   -1 );
      //renumbTb     = createTool( tr( "TB_RENUMBER" ),  QString( "SMESHRenumberingToolbar" ) ),
        transformTb  = createTool( tr( "TB_TRANSFORM" ), QString( "SMESHTransformationToolbar" ) ),
        modifyTb     = createTool( tr( "TB_MODIFY" ),    QString( "SMESHModificationToolbar" ) ),
 +//       adaptTb      = createTool( tr( "TB_ADAPTATION" ),QString( "SMESHAdaptationToolbar" ) ),
        measuremTb   = createTool( tr( "TB_MEASUREM" ),  QString( "SMESHMeasurementsToolbar" ) ),
        dispModeTb   = createTool( tr( "TB_DISP_MODE" ), QString( "SMESHDisplayModeToolbar" ) );
  
    createTool( SMESHOp::OpSmoothing,              modifyTb );
    createTool( SMESHOp::OpPatternMapping,         modifyTb );
  
 +//   createTool( SMESHOp::OpUniformRefinement, adaptTb );
 +//   createTool( SMESHOp::OpHOMARDRefinement,  adaptTb );
 +//   createTool( SMESHOp::OpMGAdapt,           adaptTb );
 +
    createTool( SMESHOp::OpMinimumDistance, measuremTb );
  
    createTool( SMESHOp::OpUpdate, dispModeTb );
    //popupMgr()->insert( separator(), -1, 0 );
  
    //popupMgr()->insert( separator(), -1, 0 );
 +//   createPopupItem( SMESHOp::OpUniformRefinement, OB, mesh );
 +//   createPopupItem( SMESHOp::OpHOMARDRefinement,  OB, mesh );
 +//   createPopupItem( SMESHOp::OpMGAdapt,           OB, mesh );
 +
    QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( dc );
    QString multiple_non_empty = QString( " && %1>0 && numberOfNodes>0" ).arg( dc );
    QString only_one_2D        = only_one_non_empty + " && dim>1";
@@@ -5744,38 -5692,6 +5745,38 @@@ void SMESHGUI::createPreferences(
    setPreferenceProperty( coloringType, "indexes", indices );
    addPreference( tr( "SMESH_DISTRIBUTION_COLOR" ), distributionGr, LightApp_Preferences::Color, "SMESH", "distribution_color" );
  
 +  // Adaptation tab ------------------------------------------------------------------------
 +  int adaptTab = addPreference( tr( "ADAPT_PREF_TAB_GENERAL" ) );
 +  int bloc, pref ;
 +  // Refinement with HOMARD
 +  bloc = addPreference( tr( "ADAPT_PREF_PUBLICATION" ), adaptTab );
 +  setPreferenceProperty( bloc, "columns", 1 );
 +  pref = addPreference( tr( "ADAPT_PREF_PUBLICATION_MAILLAGE_IN" ), bloc, LightApp_Preferences::Bool, "HOMARD", "publish_mesh_in" );
 +  pref = addPreference( tr( "ADAPT_PREF_PUBLICATION_MAILLAGE_OUT" ), bloc, LightApp_Preferences::Bool, "HOMARD", "publish_mesh_out" );
 +
 +  bloc = addPreference( tr( "ADAPT_PREF_YACS_MAX" ), adaptTab );
 +  setPreferenceProperty( bloc, "columns", 1 );
 +  pref = addPreference( tr( "ADAPT_PREF_YACS_MAX_ITER" ), bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_iter" );
 +  setPreferenceProperty( pref, "min",  0 );
 +  setPreferenceProperty( pref, "max",  100000000 );
 +  setPreferenceProperty( pref, "step", 1 );
 +  pref = addPreference( tr( "ADAPT_PREF_YACS_MAX_NODE" ), bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_node" );
 +  setPreferenceProperty( pref, "min",  0 );
 +  setPreferenceProperty( pref, "max",  100000000 );
 +  setPreferenceProperty( pref, "step", 1000 );
 +  pref = addPreference( tr( "ADAPT_PREF_YACS_MAX_ELEM" ), bloc, LightApp_Preferences::IntSpin, "HOMARD", "yacs_max_elem" );
 +  setPreferenceProperty( pref, "min",  0 );
 +  setPreferenceProperty( pref, "max",  100000000 );
 +  setPreferenceProperty( pref, "step", 1000 );
 +  bloc = addPreference( tr( "ADAPT_PREF_YACS_CONVERGENCE" ), adaptTab );
 +  setPreferenceProperty( bloc, "columns", 1 );
 +  pref = addPreference( tr( "ADAPT_PREF_YACS_TYPE_TEST" ), bloc, LightApp_Preferences::Selector, "HOMARD", "yacs_type_test" );
 +  QStringList aListOfTypeTest;
 +  aListOfTypeTest << "None";
 +  aListOfTypeTest << "VTest > VRef";
 +  aListOfTypeTest << "VTest < VRef";
 +  setPreferenceProperty( pref, "strings", aListOfTypeTest );
 +
  }
  
  void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
@@@ -5986,16 -5902,6 +5987,16 @@@ LightApp_Operation* SMESHGUI::createOpe
    case SMESHOp::OpElem0DOnElemNodes: // Create 0D elements on all nodes
      op = new SMESHGUI_Add0DElemsOnAllNodesOp();
      break;
 +  case SMESHOp::OpUniformRefinement:
 +  case SMESHOp::OpHONewCase:
 +  case SMESHOp::OpHOCaseFollow:
 +  case SMESHOp::OpHONewIter:
 +  case SMESHOp::OpHOIterCompute:
 +  case SMESHOp::OpHOIterComputePublish:
 +  case SMESHOp::OpHOEdit:
 +  case SMESHOp::OpHODelete:
 +  case SMESHOp::OpMGAdapt:
 +    break;
    default:
      break;
    }