From e2aced7872b20f696e2e4c38a14f977ef88e20c3 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 30 Jun 2004 07:51:07 +0000
Subject: [PATCH] added "Optimize 3D" button in the GUI

---
 Fltk/Callbacks.cpp | 16 +++++++++++++++-
 Fltk/Callbacks.h   |  1 +
 Fltk/GUI.cpp       |  5 ++++-
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 67acefa990..1cd05cd267 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.250 2004-06-22 17:39:11 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.251 2004-06-30 07:51:07 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -2488,6 +2488,20 @@ void mesh_degree_cb(CALLBACK_ARGS)
   Msg(STATUS3N, "Ready");
 }
 
+void mesh_optimize_cb(CALLBACK_ARGS)
+{
+  List_T *list = Tree2List(THEM->Volumes);
+  for(int i = 0; i < List_Nbr(list); i++){
+    Volume *v;
+    List_Read(list, i, &v);
+    Optimize_Netgen(v);
+  }
+  List_Delete(list);
+  CTX.mesh.changed = 1;
+  Draw();
+  Msg(STATUS3N, "Ready");
+}
+
 void mesh_define_length_cb(CALLBACK_ARGS)
 {
   Vertex *v;
diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h
index a635d0eecd..aeb2891a51 100644
--- a/Fltk/Callbacks.h
+++ b/Fltk/Callbacks.h
@@ -250,6 +250,7 @@ void mesh_1d_cb(CALLBACK_ARGS) ;
 void mesh_2d_cb(CALLBACK_ARGS) ; 
 void mesh_3d_cb(CALLBACK_ARGS) ; 
 void mesh_degree_cb(CALLBACK_ARGS) ; 
+void mesh_optimize_cb(CALLBACK_ARGS) ; 
 void mesh_define_length_cb (CALLBACK_ARGS) ;
 void mesh_define_recombine_cb (CALLBACK_ARGS) ;
 void mesh_define_transfinite_cb (CALLBACK_ARGS) ; 
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index ba444ae58a..8d21799c98 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.318 2004-06-22 17:39:11 geuzaine Exp $
+// $Id: GUI.cpp,v 1.319 2004-06-30 07:51:07 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -287,6 +287,9 @@ Context_Item menu_mesh[] = {
   { "3D",     (Fl_Callback *)mesh_3d_cb } , 
   { "First order",  (Fl_Callback *)mesh_degree_cb, (void*)1 } , 
   { "Second order", (Fl_Callback *)mesh_degree_cb, (void*)2 } , 
+#if defined(HAVE_NETGEN)
+  { "Optimize 3D", (Fl_Callback *)mesh_optimize_cb } , 
+#endif
   { "Save",   (Fl_Callback *)mesh_save_cb } ,
   { NULL } 
 };  
-- 
GitLab