diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx
index 28862787d..5704acc4d 100644
--- a/src/SMESHGUI/SMESHGUI.cxx
+++ b/src/SMESHGUI/SMESHGUI.cxx
@@ -3018,6 +3018,17 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
break;
}
case SMESHOp::OpSplitBiQuadratic:
+
+ 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:
+
case SMESHOp::OpConvertMeshToQuadratic:
case SMESHOp::OpCreateBoundaryElements: // create 2D mesh from 3D
case SMESHOp::OpReorientFaces:
@@ -4252,6 +4263,17 @@ void SMESHGUI::initialize( CAM_Application* app )
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" );
@@ -4293,6 +4315,7 @@ void SMESHGUI::initialize( CAM_Application* app )
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 );
@@ -4310,6 +4333,7 @@ void SMESHGUI::initialize( CAM_Application* app )
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 );
@@ -4465,6 +4489,18 @@ void SMESHGUI::initialize( CAM_Application* app )
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 );
@@ -4492,6 +4528,7 @@ void SMESHGUI::initialize( CAM_Application* app )
//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" ) );
@@ -4611,6 +4648,10 @@ void SMESHGUI::initialize( CAM_Application* app )
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 );
@@ -4689,6 +4730,9 @@ void SMESHGUI::initialize( CAM_Application* app )
popupMgr()->insert( separator(), -1, 0 );
createPopupItem( SMESHOp::OpClearMesh, OB, mesh );
//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 );
@@ -5834,6 +5878,24 @@ LightApp_Operation* SMESHGUI::createOperation( const int id ) const
case SMESHOp::OpSplitBiQuadratic:
op = new SMESHGUI_SplitBiQuadOp();
break;
+ case SMESHOp::OpUniformRefinement:
+ break;
+ case SMESHOp::OpHONewCase:
+ break;
+ case SMESHOp::OpHOCaseFollow:
+ break;
+ case SMESHOp::OpHONewIter:
+ break;
+ case SMESHOp::OpHOIterCompute:
+ break;
+ case SMESHOp::OpHOIterComputePublish:
+ break;
+ case SMESHOp::OpHOEdit:
+ break;
+ case SMESHOp::OpHODelete:
+ break;
+ case SMESHOp::OpMGAdapt:
+ break;
case SMESHOp::OpConvertMeshToQuadratic:
op = new SMESHGUI_ConvToQuadOp();
break;
diff --git a/src/SMESHGUI/SMESHGUI_Operations.h b/src/SMESHGUI/SMESHGUI_Operations.h
index b81781593..75d22b7ff 100644
--- a/src/SMESHGUI/SMESHGUI_Operations.h
+++ b/src/SMESHGUI/SMESHGUI_Operations.h
@@ -184,6 +184,16 @@ namespace SMESHOp {
OpConvertMeshToQuadratic = 4513, // MENU MODIFICATION - CONVERT TO/FROM QUADRATIC
OpCreateBoundaryElements = 4514, // MENU MODIFICATION - CREATE BOUNDARY ELEMENTS
OpSplitBiQuadratic = 4515, // MENU MODIFICATION - SPLIT BI-QUADRATIC TO LINEAR
+ // Adaptation ---------------------//--------------------------------
+ OpUniformRefinement = 8000, // MENU ADAPTATION - HOMARD - UNIFORM REFINEMENT
+ OpHONewCase = 8011, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - New Case
+ OpHOCaseFollow = 8012, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - New Case Follow
+ OpHONewIter = 8013, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - New Iteration
+ OpHOIterCompute = 8014, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - Compute Iteration
+ OpHOIterComputePublish = 8015, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - Compute Iteration and Publish
+ OpHOEdit = 8016, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - Edit objects
+ OpHODelete = 8017, // MENU ADAPTATION - HOMARD - FREE REFINEMENT - Delete objects
+ OpMGAdapt = 8020, // MENU ADAPTATION - MG-ADAPT
// Measurements -------------------//--------------------------------
OpPropertiesLength = 5000, // MENU MEASUREMENTS - BASIC PROPERTIES - LENGTH
OpPropertiesArea = 5001, // MENU MEASUREMENTS - BASIC PROPERTIES - AREA
diff --git a/src/SMESHGUI/SMESH_images.ts b/src/SMESHGUI/SMESH_images.ts
index 9f0e4a777..44f701e94 100644
--- a/src/SMESHGUI/SMESH_images.ts
+++ b/src/SMESHGUI/SMESH_images.ts
@@ -79,6 +79,34 @@
mesh_groups_from_gemetry.png
+
+
+ adapt_ref_all.png
+
+
+
+ adapt_ref_homard.png
+
+
+
+ adapt_hom_iter_poursuite.png
+
+
+
+ adapt_hom_iter_next
+
+
+
+ mesh_compute.png
+
+
+
+ mesh_compute.png
+
+
+
+ adapt_mg_adapt.png
+
mesh_conv_to_quad.png
diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts
index eba5718ed..da239a33b 100644
--- a/src/SMESHGUI/SMESH_msg_en.ts
+++ b/src/SMESHGUI/SMESH_msg_en.ts
@@ -332,6 +332,38 @@
Construct Group
+
+
+ Uniform refinement
+
+
+
+ Refinement with HOMARD
+
+
+
+ New case
+
+
+
+ Existing case
+
+
+
+ New iteration
+
+
+
+ Compute
+
+
+
+ Compute and publish
+
+
+
+ Remesh with MG_Adapt
+
Convert to/from quadratic
@@ -780,6 +812,10 @@
Modification
+
+
+ Adaptation
+
Measurements
@@ -1494,6 +1530,10 @@ Please enter correct values and try again
Available
+
+
+ Not available
+
Available algorithms
@@ -3104,6 +3144,18 @@ Use Display Entity menu command to show them.
Construct Group
+
+
+ Uniform refinement
+
+
+
+ Refinement with HOMARD
+
+
+
+ Remesh with MG_Adapt
+
Convert to/from quadratic
@@ -3700,6 +3752,10 @@ Use Display Entity menu command to show them.
Volume Controls Toolbar
+
+
+ Adaptation Toolbar
+
Measurements Toolbar
@@ -3804,6 +3860,18 @@ Use Display Entity menu command to show them.
Construct Group
+
+
+ Uniform refinement
+
+
+
+ Refinement with HOMARD
+
+
+
+ Remesh with MG_Adapt
+
Convert to/from quadratic
diff --git a/src/SMESHGUI/SMESH_msg_fr.ts b/src/SMESHGUI/SMESH_msg_fr.ts
index f3ecad3be..4cfbce422 100644
--- a/src/SMESHGUI/SMESH_msg_fr.ts
+++ b/src/SMESHGUI/SMESH_msg_fr.ts
@@ -474,7 +474,7 @@
- Edition
+ Editer
@@ -780,6 +780,10 @@
Modification
+
+
+ Adaptation
+
Outils de mesure
@@ -1108,6 +1112,38 @@
Transformation
+
+
+ Raffinement uniforme
+
+
+
+ Raffinement avec HOMARD
+
+
+
+ Création d'un cas
+
+
+
+ Poursuite d'une itération.
+
+
+
+ Création d'une itération
+
+
+
+ Calculer
+
+
+
+ Calculer et publier
+
+
+
+ Remaillage avec MG_Adapt
+
Transparence
@@ -3079,6 +3115,18 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
Construire un groupe
+
+
+ Raffinement uniforme
+
+
+
+ Raffinement avec HOMARD
+
+
+
+ Remaillage avec MG_Adapt
+
Convertir vers/de quadratique
@@ -3671,6 +3719,10 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
Barre des contrôles des volumes
+
+
+ Barre de l'adaptation
+
Barre des mesures
@@ -3775,6 +3827,18 @@ Utilisez le menu "Visualiser une entité" pour les afficher.
Construire un groupe
+
+
+ Raffinement uniforme
+
+
+
+ Raffinement avec HOMARD
+
+
+
+ Remaillage avec MG_Adapt
+
Convertir vers/de quadratique