From 70811f8d1cc3fe005ba9f2ad9e5d790073e94c68 Mon Sep 17 00:00:00 2001 From: Bastien Gorissen <bastien.gorissen@cenaero.be> Date: Fri, 23 Oct 2009 08:44:16 +0000 Subject: [PATCH] Add the possibility to set the mesh order from the GUI (from 1 to 5) May need a slight change to better handle options for meshes of order >2 --- Fltk/menuWindow.cpp | 23 ++++++++++++++++++++--- Fltk/menuWindow.h | 3 ++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp index 9b638e2e4f..2fc0566ad5 100644 --- a/Fltk/menuWindow.cpp +++ b/Fltk/menuWindow.cpp @@ -1710,13 +1710,22 @@ static void mesh_inspect_cb(Fl_Widget *w, void *data) Msg::StatusBar(3, false, ""); } +static void mesh_change_order_cb(Fl_Widget *w, void *data) +{ + FlGui::instance()->menu->setContext(menu_mesh_degree, 0); +} + + static void mesh_degree_cb(Fl_Widget *w, void *data) { if((long)data == 2) SetOrderN(GModel::current(), 2, CTX::instance()->mesh.secondOrderLinear, CTX::instance()->mesh.secondOrderIncomplete); - else + else if ((long)data == 1) SetOrder1(GModel::current()); + else // For now, use the same options as for second order meshes + SetOrderN(GModel::current(), (long)data, CTX::instance()->mesh.secondOrderLinear, + CTX::instance()->mesh.secondOrderIncomplete); CTX::instance()->mesh.changed |= (ENT_LINE | ENT_SURFACE | ENT_VOLUME); drawContext::global()->draw(); Msg::StatusBar(2, false, " "); @@ -2461,8 +2470,7 @@ contextItem menu_mesh[] = { {"1D", (Fl_Callback *)mesh_1d_cb} , {"2D", (Fl_Callback *)mesh_2d_cb} , {"3D", (Fl_Callback *)mesh_3d_cb} , - {"First order", (Fl_Callback *)mesh_degree_cb, (void*)1 } , - {"Second order", (Fl_Callback *)mesh_degree_cb, (void*)2 } , + {"Set order", (Fl_Callback *)mesh_change_order_cb} , {"Refine by splitting", (Fl_Callback *)mesh_refine_cb} , {"Optimize", (Fl_Callback *)mesh_optimize_cb} , #if defined(HAVE_NETGEN) @@ -2502,6 +2510,15 @@ contextItem menu_mesh[] = { {"Volumes", (Fl_Callback *)mesh_delete_parts_cb, (void*)"volumes"} , {""} }; + contextItem menu_mesh_degree[] = { + {"1Mesh> Set order"} , + {"1", (Fl_Callback *)mesh_degree_cb, (void*)1}, + {"2", (Fl_Callback *)mesh_degree_cb, (void*)2}, + {"3", (Fl_Callback *)mesh_degree_cb, (void*)3}, + {"4", (Fl_Callback *)mesh_degree_cb, (void*)4}, + {"5", (Fl_Callback *)mesh_degree_cb, (void*)5}, + {""} + }; contextItem menu_solver[] = { {"2Solver"} , diff --git a/Fltk/menuWindow.h b/Fltk/menuWindow.h index ec528ebd7d..c7a7bf056f 100644 --- a/Fltk/menuWindow.h +++ b/Fltk/menuWindow.h @@ -49,7 +49,8 @@ extern contextItem menu_mesh[]; extern contextItem menu_mesh_edit[]; extern contextItem menu_mesh_delete[]; extern contextItem menu_mesh_define[]; -extern contextItem menu_mesh_define_transfinite[]; +extern contextItem menu_mesh_define_transfinite[]; +extern contextItem menu_mesh_degree[]; extern contextItem menu_solver[]; extern contextItem menu_post[]; -- GitLab