diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c8312dfabc47255c0d15d83484808a65939e256..8d932db61e30e5941e967b20945a565d1b6acbcc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,7 +30,6 @@ option(ENABLE_FOURIER_MODEL "Enable Fourier geometrical models" OFF)
 option(ENABLE_GMM "Enable GMM linear algebra solvers" ON)
 option(ENABLE_GRAPHICS "Compile-in OpenGL graphics even if there is no GUI" OFF)
 option(ENABLE_KBIPACK "Enable Kbipack for homology solver" ON)
-option(ENABLE_LUA "Enable the Programming Language Lua (deprecated)" OFF)
 option(ENABLE_MATCH "Enable Minimum cost perfect matching algo" ON)
 option(ENABLE_MATHEX "Enable MathEx expression parser" ON)
 option(ENABLE_MED "Enable MED mesh and post-processing file formats" ON)
@@ -610,18 +609,6 @@ if(ENABLE_TAUCS)
   endif(TAUCS_LIB)
 endif(ENABLE_TAUCS)
 
-if(ENABLE_LUA)
-  find_library(LUA_LIB NAMES lua lua50 lua5.1 PATH_SUFFIXES lib)
-  if(LUA_LIB)
-    find_path(LUA_INC "lua.h" PATH_SUFFIXES src include lua5.1)
-    if(LUA_INC)
-      set_config_option(HAVE_LUA "Lua")
-      list(APPEND EXTERNAL_LIBRARIES ${LUA_LIB})
-      list(APPEND EXTERNAL_INCLUDES ${LUA_INC})
-    endif(LUA_INC)
-  endif(LUA_LIB)
-endif(ENABLE_LUA)
-
 if(ENABLE_PETSC)
   set(ENV_PETSC_DIR $ENV{PETSC_DIR})
   set(ENV_PETSC_ARCH $ENV{PETSC_ARCH})
@@ -764,19 +751,6 @@ if(ENABLE_OSMESA)
   endif(OSMESA_LIB)
 endif(ENABLE_OSMESA)
 
-if(HAVE_LUA AND ENABLE_READLINE)
-  set(READLINE_REQUIRED readline curses)
-  find_all_libraries(READLINE_LIB READLINE_REQUIRED PATH lib)
-  if(READLINE_LIB)
-    find_path(READLINE_INC "readline.h" PATH_SUFFIXES src readline include)
-    if(READLINE_INC)
-      set_config_option(HAVE_READLINE "Readline")
-      list(APPEND EXTERNAL_LIBRARIES ${READLINE_LIB})
-      list(APPEND EXTERNAL_INCLUDES ${READLINE_INC})
-    endif(READLINE_INC)
-  endif(READLINE_LIB)
-endif(HAVE_LUA AND ENABLE_READLINE)
-
 check_function_exists(vsnprintf HAVE_VSNPRINTF)
 if(NOT HAVE_VSNPRINTF)
   set_config_option(HAVE_NO_VSNPRINTF "NoVsnprintf")
@@ -1181,6 +1155,5 @@ message("Run 'ccmake ${CMAKE_CURRENT_SOURCE_DIR}' to fine-tune the configuration
 message("")
 
 mark_as_advanced(BISON FLEX GMP_LIB GMSH_EXTRA_VERSION HDF5_LIB MAKEINFO 
-                 MED_LIB OCC_INC SZ_LIB TAUCS_LIB LUA_LIB ACIS_LIB TEXI2PDF
-                 READLINE_LIB)
+                 MED_LIB OCC_INC SZ_LIB TAUCS_LIB ACIS_LIB TEXI2PDF)
 
diff --git a/Common/Bindings.cpp b/Common/Bindings.cpp
deleted file mode 100644
index 22a25b9ab444d87e355e1e4519fe9eac05d15612..0000000000000000000000000000000000000000
--- a/Common/Bindings.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "Bindings.h"
-
-void methodBinding::setArgNames(const char *arg1, ...)
-{
-  va_list ap;
-  va_start(ap, arg1);
-  const char *name=arg1;
-  while(name != NULL){
-    _argNames.push_back(name);
-    name = va_arg(ap, const char *);
-  }
-  va_end(ap);
-}
diff --git a/Common/Bindings.h b/Common/Bindings.h
deleted file mode 100644
index 3d0fa3306f9bd47a4a9a848b8dd9ca6f130facbb..0000000000000000000000000000000000000000
--- a/Common/Bindings.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-
-#ifndef _BINDINGS_H_
-#define _BINDINGS_H_
-
-#include <string>
-#include <vector>
-#include <typeinfo>
-#include "GmshConfig.h"
-
-class methodBinding{
-  std::string _description;
-  std::vector<std::string> _argNames;
-  public:
-  inline const std::vector<std::string> &getArgNames() const { return _argNames; }
-  void setArgNames(const char * arg1, ...);
-  void setDescription(std::string description){ _description = description; }
-  inline const std::string getDescription() const { return _description; }
-};
-
-#if defined(HAVE_LUA)
-#include "LuaBindings.h"
-#else // no bindings
-#include "DummyBindings.h"
-#endif
-
-#endif
diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt
index 9133094fb1f45136b351e744017fc9942487bcc7..91a8906cb03248edd290409f5bb138596ddbcc2b 100644
--- a/Common/CMakeLists.txt
+++ b/Common/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
@@ -13,7 +13,6 @@ set(SRC
   OS.cpp
   OpenFile.cpp
   CreateFile.cpp
-  LuaBindings.cpp
   VertexArray.cpp
   SmoothData.cpp
   Octree.cpp 
@@ -23,7 +22,6 @@ set(SRC
   TreeUtils.cpp avl.cpp
   MallocUtils.cpp
   ConnectionManager.cpp
-  Bindings.cpp
 )
 
 file(GLOB HDR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h) 
diff --git a/Common/Colors.h b/Common/Colors.h
index f0babb7431399bde89feb400bdf9244f4fa25cbb..bf46fb000dc631f969ea4c5b336a5ac594c92c55 100644
--- a/Common/Colors.h
+++ b/Common/Colors.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index fa00d8454a597c6b0194561459bb2a57c2c30642..416e6bff5966845b035a52e0b09e3263b9d6b4ee 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -80,7 +80,7 @@ void PrintUsage(const char *name)
   Msg::Direct("  -smoothRatio float    Set smoothing ration between mesh sizes at nodes of a same edge (only used in bamg)");
   Msg::Direct("  -clcurv               Automatically compute element sizes from curvatures");
   Msg::Direct("  -epslc1d              Set the accuracy of the evaluation of the LCFIELD for 1D mesh");
-  Msg::Direct("  -swapangle            Set the treshold angle (in degree) between two adjacent faces");
+  Msg::Direct("  -swapangle            Set the threshold angle (in degree) between two adjacent faces");
   Msg::Direct("                          below which a swap is allowed");
   Msg::Direct("  -rand float           Set random perturbation factor");
   Msg::Direct("  -bgm file             Load background mesh from file");
@@ -100,9 +100,6 @@ void PrintUsage(const char *name)
   Msg::Direct("  -                     Parse input files, then exit");
 #if defined(HAVE_FLTK)
   Msg::Direct("  -a, -g, -m, -s, -p    Start in automatic, geometry, mesh, solver or post-processing mode");
-#endif
-#if defined(HAVE_LUA)
-  Msg::Direct("  -lua                  Start an interactive lua session");
 #endif
   Msg::Direct("  -pid                  Print process id on stdout");
   Msg::Direct("  -listen               Always listen to incoming connection requests");
@@ -467,7 +464,7 @@ void GetOptions(int argc, char *argv[])
         if(argv[i]) {
           CTX::instance()->mesh.allowSwapEdgeAngle = atof(argv[i++]);
           if(CTX::instance()->mesh.allowSwapEdgeAngle <= 0.0)
-            Msg::Fatal("Treshold angle for edge swap must be > 0");
+            Msg::Fatal("Threshold angle for edge swap must be > 0");
         }
         else
           Msg::Fatal("Missing number");
@@ -620,7 +617,7 @@ void GetOptions(int argc, char *argv[])
       }
       else if(!strcmp(argv[i] + 1, "help") || !strcmp(argv[i] + 1, "-help")) {
         fprintf(stderr, "Gmsh, a 3D mesh generator with pre- and post-processing facilities\n");
-        fprintf(stderr, "Copyright (C) 1997-2010 Christophe Geuzaine and Jean-Francois Remacle\n");
+        fprintf(stderr, "Copyright (C) 1997-2011 Christophe Geuzaine and Jean-Francois Remacle\n");
         PrintUsage(argv[0]);
         Msg::Exit(0);
       }
@@ -715,12 +712,6 @@ void GetOptions(int argc, char *argv[])
           Msg::Fatal("Missing argument");
       }
 #endif
-#if defined (HAVE_LUA)
-      else if(!strcmp(argv[i] + 1, "lua")) {
-        i++;
-        CTX::instance()->batch = -4;
-      }
-#endif
 #if defined(__APPLE__)
       else if(!strncmp(argv[i] + 1, "psn", 3)) {
         // The Mac Finder launches programs with a special command
diff --git a/Common/CommandLine.h b/Common/CommandLine.h
index b2e08a3a2187fed41785245544bbc8f333f5a29d..ad225c2170d869028469ce8142dab1fc62e59197 100644
--- a/Common/CommandLine.h
+++ b/Common/CommandLine.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ConnectionManager.cpp b/Common/ConnectionManager.cpp
index 1a1e885e49f2133bcee7e3f57224c7aa1916b9fe..6285b9dc84be5682068106a7ca3b1e48946818af 100644
--- a/Common/ConnectionManager.cpp
+++ b/Common/ConnectionManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ConnectionManager.h b/Common/ConnectionManager.h
index 89e8ac10176209f2c0ea9d7f537f08f863beae3f..083a11d1f532700d77ecceeb6c5df9c40ff63863 100644
--- a/Common/ConnectionManager.h
+++ b/Common/ConnectionManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Context.cpp b/Common/Context.cpp
index e013fd487cdeb6bd7f319b906b4e317b22b1a3fe..8cda494708024c63634d9af3428723a2d5ca316b 100644
--- a/Common/Context.cpp
+++ b/Common/Context.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Context.h b/Common/Context.h
index 40f90fe3a42be8c2146caac74c1c5b763696406e..466f44274c56d86067c16e466a5d3e22e56546f1 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -11,8 +11,6 @@
 #include "CGNSOptions.h"
 #include "meshPartitionOptions.h"
 
-class binding;
-
 // The interface-independent context.
 
 struct contextMeshOptions {
diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp
index 33593806546b5a6636f30581adb0d840ab922627..7235f67df2a6ee84db30a4be515b1502d301cab0 100644
--- a/Common/CreateFile.cpp
+++ b/Common/CreateFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CreateFile.h b/Common/CreateFile.h
index e7ee8054f8c9545416a7cae4d1731df2ad4d2418..37304f6be61a79d9e7cbd6ec15cc6dd06a755548 100644
--- a/Common/CreateFile.h
+++ b/Common/CreateFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index b115a8e3cafeab475992f6417a52c8e4268e9321..9acaa546ba9e3b139d212543449900e917fe4b64 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -939,11 +939,11 @@ StringXNumber GeometryOptions_Number[] = {
   { F|O, "OCCConnectFaces" , opt_geometry_occ_connect_faces , 0. , 
     "Cut and connect faces in STEP, IGES and BRep models" },
   { F,   "OffsetX" , opt_geometry_offset0 , 0. , 
-    "Model diplay offset along X-axis (in model coordinates)" },
+    "Model display offset along X-axis (in model coordinates)" },
   { F,   "OffsetY" , opt_geometry_offset1 , 0. , 
-    "Model diplay offset along Y-axis (in model coordinates)" },
+    "Model display offset along Y-axis (in model coordinates)" },
   { F,   "OffsetZ" , opt_geometry_offset2 , 0. , 
-    "Model diplay offset along Z-axis (in model coordinates)" },
+    "Model display offset along Z-axis (in model coordinates)" },
   { F|O, "OldCircle" , opt_geometry_old_circle , 0. , 
     "Use old circle description (compatibility option for old Gmsh geometries)" },
   { F|O, "OldNewReg" , opt_geometry_old_newreg , 1. , 
@@ -1024,7 +1024,7 @@ StringXNumber MeshOptions_Number[] = {
   { F|O, "AnisoMax" , opt_mesh_aniso_max, 1.e33,
     "Maximum anisotropy of the mesh" },
   { F|O, "AllowSwapAngle" , opt_mesh_allow_swap_edge_angle , 10.0 ,
-    "Treshold angle (in degrees) between faces normals under which we allow "
+    "Threshold angle (in degrees) between faces normals under which we allow "
     "an edge swap" }, 
 
   { F|O, "BdfFieldFormat" , opt_mesh_bdf_field_format , 1. , 
diff --git a/Common/DummyBindings.h b/Common/DummyBindings.h
deleted file mode 100644
index d6c005e27c035bc4f48f103a883644e4aef0f55c..0000000000000000000000000000000000000000
--- a/Common/DummyBindings.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-
-#ifndef _DUMMY_BINDINGS_H_
-#define _DUMMY_BINDINGS_H_
-
-class classBinding {
- public:
-  void setDescription(std::string description){}
-  template<typename parentType>
-  void setParentClass(){}
-  template <typename cb>
-  methodBinding *addMethod(std::string n, cb f){ return new methodBinding(); }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4, typename t5>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0>
-  methodBinding *setConstructor(){ return 0; }
-  template<typename tObj>
-  methodBinding *setConstructor(){ return 0; }
-};
-
-class binding {
- public:
-  template<class t>
-  classBinding *addClass(std::string className){ return new classBinding(); }
-};
-
-#endif
diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp
index 9ec3c4faf4d08d5dbc8aca9a3c2d3f0ecf6ee073..b62a807c4645a3e062c389ca65668eb850fb36d2 100644
--- a/Common/Gmsh.cpp
+++ b/Common/Gmsh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -35,10 +35,6 @@
 #include "drawContext.h"
 #endif
 
-#if defined(HAVE_LUA)
-#include "LuaBindings.h"
-#endif
-
 int GmshInitialize(int argc, char **argv)
 {
   // we need at least one model during option parsing
@@ -154,12 +150,6 @@ int GmshBatch()
   }
 #endif
 
-#if defined(HAVE_LUA)
-  if(CTX::instance()->batch == -4){
-    binding::instance()->interactiveSession();
-  }
-  else 
-#endif 
   if(CTX::instance()->batch == -3){
     GmshRemote();
   }
@@ -257,9 +247,6 @@ int GmshFLTK(int argc, char **argv)
       Msg::Error("Invalid background mesh (no view)");
   }
 
-  // draw the scene
-  drawContext::global()->draw();
-
   // listen to external solvers
   if(CTX::instance()->solver.listen){
     ConnectionManager::get(-1)->name = "unknown";
diff --git a/Common/Gmsh.h b/Common/Gmsh.h
index 798dcdbaf976a7d2fc3a54254e7011cf4dcfa160..0a2017449df0b9517f26cadb98ec46724a5d3b0b 100644
--- a/Common/Gmsh.h
+++ b/Common/Gmsh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -24,6 +24,6 @@ int GmshMergeFile(std::string fileName);
 int GmshWriteFile(std::string fileName);
 int GmshFinalize();
 int GmshBatch();
-int GmshFLTK(int argc, char **argv);
+int GmshFLTK(int argc=0, char **argv=0);
 
 #endif
diff --git a/Common/GmshConfig.h.in b/Common/GmshConfig.h.in
index 1823f159857a1d0f1b43d8aa7d481cadd3cc98f4..020e34a45059e94cb1dd728c3fdb4953645938d0 100644
--- a/Common/GmshConfig.h.in
+++ b/Common/GmshConfig.h.in
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -26,7 +26,6 @@
 #cmakedefine HAVE_LIBJPEG
 #cmakedefine HAVE_LIBPNG
 #cmakedefine HAVE_LIBZ
-#cmakedefine HAVE_LUA
 #cmakedefine HAVE_MATCH
 #cmakedefine HAVE_MATHEX
 #cmakedefine HAVE_MED
diff --git a/Common/GmshDefines.h b/Common/GmshDefines.h
index 60ad590ff09f66c0b5d8a78e1f584f86c5a4e802..b5b3c6a6fed0b719e31a31fae7b9d073ce205790 100644
--- a/Common/GmshDefines.h
+++ b/Common/GmshDefines.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index a7c6357060fc7cc4dff2fec3eb4b1339ac13f4fa..a77411e8b8d3d6237cd383c42d3938cd24fa33a6 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -606,21 +606,3 @@ int Msg::GetThreadNum(){ return 0; }
 
 #endif
 
-#include "Bindings.h"
-void Msg::registerBindings (binding *b)
-{
-  classBinding *cb = b->addClass<Msg>("Msg");
-  cb->setDescription("a class to manage messages, intialisations of libraries "
-                     "(like MPI) and mpi rank and size.");
-  methodBinding *mb;
-  mb = cb->setConstructor<Msg>();
-  mb->setDescription("Msg is full static class, instances do not contain anything "
-                     "but they are needed to call the static functions from lua");
-  mb = cb->addMethod("getCommRank", &Msg::GetCommRank);
-  mb->setDescription("return the id of this mpi process");
-  mb = cb->addMethod("getCommSize", &Msg::GetCommSize);
-  mb->setDescription("return the number of mpi processes");
-  mb = cb->addMethod("barrier", &Msg::Barrier);
-  mb->setDescription("an MPI barrier : all processes wait untill they all reach "
-                     "this points");
-}
diff --git a/Common/GmshMessage.h b/Common/GmshMessage.h
index 6a9d8d60b8ef35dda91aa4f6e4273ccbf35cbf58..66c4ae6ca3e1c8450ae39611faec5fce9750a57b 100644
--- a/Common/GmshMessage.h
+++ b/Common/GmshMessage.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GmshMessage{
   virtual ~GmshMessage(){}
   virtual void operator()(std::string level, std::string message){}
 };
-class binding;
 
 // a class to manage messages
 class Msg {
@@ -81,7 +80,6 @@ class Msg {
   static void InitClient(std::string sockname);
   static GmshClient *GetClient(){ return _client; }
   static void FinalizeClient();
-  static void registerBindings (binding *b);
 };
 
 #endif
diff --git a/Common/GmshRemote.cpp b/Common/GmshRemote.cpp
index 8c6156230f950b411ab151f30bcde8790144894a..4dd098fba4e40f5d40f79300f01880e1c16cc4d2 100644
--- a/Common/GmshRemote.cpp
+++ b/Common/GmshRemote.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshRemote.h b/Common/GmshRemote.h
index 73fdf3325b3ee15cb823c6676102fad8416408c3..bc8927091c9fb8641234edb1bc0732215c5f4f26 100644
--- a/Common/GmshRemote.h
+++ b/Common/GmshRemote.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshSocket.h b/Common/GmshSocket.h
index 0021b49889ac5abf98f056fa29f8ad8051ce6a7c..6d46f035a84a09642a38473157b12999f6542811 100644
--- a/Common/GmshSocket.h
+++ b/Common/GmshSocket.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // Permission is hereby granted, free of charge, to any person
 // obtaining a copy of this software and associated documentation
diff --git a/Common/GmshVersion.h.in b/Common/GmshVersion.h.in
index c3be2e2d7da14065b5e357e932b589171f95c6f5..d2985979b0be9f219354367b6e5abeb0f8480a1e 100644
--- a/Common/GmshVersion.h.in
+++ b/Common/GmshVersion.h.in
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Hash.h b/Common/Hash.h
index d7008d73eab96955d139b735eee73fd18f7afadd..bf4ceace1912949a96ba7e0c063e3687f0154759 100644
--- a/Common/Hash.h
+++ b/Common/Hash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/HashMap.h b/Common/HashMap.h
index b5ce1a2576612c0b909ce185aefc3eae365a7798..7862942bdb2c463a3c054cca3c3129cab2a0ad43 100644
--- a/Common/HashMap.h
+++ b/Common/HashMap.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.cpp b/Common/ListUtils.cpp
index 818f3ae569f7456fffea8b095649472434e60f54..101a1791d22df1e3e36183bdb35e4f61c5dec44d 100644
--- a/Common/ListUtils.cpp
+++ b/Common/ListUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.h b/Common/ListUtils.h
index 2480e1c48062e2d57ed6c7fb25d260174daf9a1c..af4f69102d685b95e3051abd56bf40da0216fcbc 100644
--- a/Common/ListUtils.h
+++ b/Common/ListUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/LuaBindings.cpp b/Common/LuaBindings.cpp
deleted file mode 100644
index 6d6c4fe586c5a5f0e5c206093019538f2cb53958..0000000000000000000000000000000000000000
--- a/Common/LuaBindings.cpp
+++ /dev/null
@@ -1,469 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#include "GmshConfig.h"
-
-#if defined(HAVE_LUA)
-#include <iostream>
-#include <string>
-#include "Gmsh.h"
-#include "Context.h"
-#include "MVertex.h"
-#include "MElement.h"
-#include "MTriangle.h"
-#include "MQuadrangle.h"
-#include "MPrism.h"
-#include "MLine.h"
-#include "GFace.h"
-#include "DivideAndConquer.h"
-#include "Bindings.h"
-#include "luaFunction.h"
-#include "function.h"
-#include "GModel.h"
-#include "GPoint.h"
-#include "Bindings.h"
-#include "GmshMessage.h"
-#include "Options.h"
-#include "polynomialBasis.h"
-#include "Gauss.h"
-#include "meshPartitionOptions.h"
-#include "meshGFaceOptimize.h"
-#include "meshGFaceLloyd.h"
-
-#if defined(HAVE_OPENGL)
-#include "drawContext.h"
-#endif
-
-#if defined(HAVE_SOLVER)
-#include "elasticitySolver.h"
-#include "linearSystem.h"
-#include "linearSystemCSR.h"
-#endif
-
-#if defined(HAVE_POST)
-#include "PView.h"
-#include "PViewData.h"
-#include "PViewFactory.h"
-#endif
-
-extern "C" {
-#include "lua.h"
-#include "lualib.h"
-#include "lauxlib.h"
-}
-
-#if defined(HAVE_READLINE)
-#include "readline.h"
-#include "history.h"
-#endif
-
-//trivial class to bind options
-class gmshOptions {
-  public:
-  gmshOptions(){}
-  static void colorSet(std::string category, int index, std::string name, int value)
-  {
-    GmshSetOption(category, name, (unsigned int)(value), index);
-  }
-  static int colorGet(std::string category, int index, std::string name)
-  {
-    unsigned int value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static double numberGet(std::string category, int index, std::string name)
-  {
-    double value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static void numberSet(std::string category, int index, std::string name, double value)
-  {
-    GmshSetOption(category, name, value, index);
-  }
-  static std::string stringGet(std::string category, int index, std::string name)
-  {
-    std::string value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static void stringSet(std::string category, int index, std::string name, double value)
-  {
-    GmshSetOption(category, name, value, index);
-  }
-  static void initOptions(){
-    ReInitOptions(0);
-    InitOptionsGUI(0);
-  }
-
-  static void registerBindings(binding *b)
-  {
-    classBinding *cb = b->addClass<gmshOptions>("gmshOptions");
-    cb->setDescription("access the gmsh option database");
-    methodBinding *mb;
-    mb = cb->addMethod("colorSet", &gmshOptions::colorSet);
-    mb->setDescription("set the value of a color (unsigned int) option. This is "
-                       "equivalent to category[index].name = value");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("colorGet", &gmshOptions::colorGet);
-    mb->setDescription("return the value of a color (unsigned int) option. This "
-                       "is equivalent to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-    mb = cb->addMethod("numberSet", &gmshOptions::numberSet);
-    mb->setDescription("set the value of a number option. This is equivalent "
-                       "to category[index].name = value");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("numberGet", &gmshOptions::numberGet);
-    mb->setDescription("return the value of a number option. This is equivalent "
-                       "to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-    mb = cb->addMethod("srtingSet", &gmshOptions::stringSet);
-    mb->setDescription("set the value of a string option. This is equivalent "
-                       "to category[index].name = \"value\"");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("srtingGet", &gmshOptions::stringGet);
-    mb->setDescription("return the value of a string option. This is equivalent "
-                       "to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-
-    mb = cb->addMethod("initOptions", &gmshOptions::initOptions);
-    mb->setDescription("Re-initialize option file");
-    mb->setArgNames(NULL);
-
-    mb = cb->setConstructor<gmshOptions>();
-    mb->setDescription("an instance of gmshOptions is needed to access the database");
-  }
-};
-
-static void reportErrors(lua_State *L, int status)
-{
-  if ( status!=0 ) {
-    std::cerr << "-- " << lua_tostring(L, -1) << std::endl;
-    lua_pop(L, 1); // remove error message
-    printf("exit now\n");
-    exit(1); //we need this for automatic test
-  }
-}
-
-static const char *colorRed = "\033[1;31m";
-static const char *colorGreen = "\033[1;32m";
-static const char *colorBlue = "\033[1;34m";
-static const char *colorDefault = "\033[0m";
-static const char *colorBold = "\033[1m";
-
-static void printMethod(std::string name, luaMethodBinding *mb, bool isConstructor=false)
-{
-  std::vector<std::string> argTypeNames;
-  mb->getArgTypeNames(argTypeNames);
-  std::cout << "  ";
-  if(!isConstructor && name!="delete")
-    std::cout << colorBold<<argTypeNames[0];
-  std::cout << colorBlue << " " << name << colorDefault << colorBold << " (";
-  int count = 0;
-  for(unsigned int i = 1; i < argTypeNames.size(); i++){
-    if(argTypeNames[i] == "-1")
-      continue;
-    if(count != 0)
-      std::cout << ", ";
-    std::cout << colorBold<<argTypeNames[i] << colorDefault;
-    if((int)mb->getArgNames().size() > count)
-      std::cout << " " << mb->getArgNames()[count];
-    count++;
-  }
-  std::cout << colorBold << ")\n" << colorDefault;
-  const std::string description = mb->getDescription();
-  std::cout << (description.empty() ? "no help available" : description) << "\n";
-}
-
-static void listMethods(classBinding *cb)
-{
-  if(cb->methods.size())
-    std::cout << colorGreen << "Methods from " << cb->getClassName() 
-              << colorDefault<< "\n";
-  for(std::map<std::string, luaMethodBinding *>::iterator it = cb->methods.begin();
-      it != cb->methods.end(); it++){
-    printMethod(it->first, it->second);
-  }
-  if(cb->getParent())
-    listMethods(cb->getParent());
-}
-
-static int luaHelp (lua_State *L)
-{
-  int argc = lua_gettop(L);
-  binding *b = binding::instance();
-  if (argc == 0){
-    std::cout << "this is the gmsh help\n";
-    for(std::map<std::string,classBinding *>::iterator it = b->classes.begin();
-        it != b->classes.end(); it++){
-      if(it->second->getParent())
-        continue;
-      std::cout << colorBlue << "  " << it->first<<colorDefault << " : ";
-      const std::string description = it->second->getDescription();
-      std::cout << (description.empty() ? "no help available" : description) << "\n";
-    }
-  }
-  else{
-    const char *className = luaL_checkstring(L, 1);
-    if(b->classes.find(className) == b->classes.end()){
-      std::cout << "Class " << colorBold << className << colorDefault 
-                << " does not exist.\n";
-      return 0;
-    }
-    classBinding *cb = b->classes[className];
-    std::cout << "\n" << colorRed << className << colorDefault << "\n";
-    const std::string description = cb->getDescription();
-    std::cout << (description.empty() ? "no help available" : description) << "\n";
-    std::cout << "\n";
-    if(cb->getConstructor()){
-      std::cout << colorGreen << "Constructor" << colorDefault << "\n";
-      printMethod(className,cb->getConstructor(), true);
-      std::cout << "\n";
-    }
-    listMethods(cb);
-    std::cout << "\n";
-    if(cb->children.size()){
-      std::cout << colorGreen << "Children of " << cb->getClassName() 
-                << colorDefault << "\n";
-      for(std::set<classBinding *>::iterator it = cb->children.begin(); 
-          it != cb->children.end(); it++){
-        std::cout << "  " << colorBlue << (*it)->getClassName() << colorDefault << " : ";
-        const std::string description = (*it)->getDescription();
-        std::cout << (description.empty() ? "no help available" : description) << "\n";
-      }
-      std::cout << "\n";
-    }
-  }
-  return 0;
-}
-
-static int luaSave (lua_State *L)
-{
-#if defined(HAVE_READLINE)
-  const char *filename = luaL_checkstring(L, 1);
-  write_history(filename);
-#endif
-  return 0;
-}
-
-static int luaClear(lua_State *L)
-{
-#if defined(HAVE_READLINE)
-  clear_history();
-#endif
-  return 0;
-}
-
-static int luaRefresh(lua_State *L)
-{
-#if defined(HAVE_OPENGL)
-  drawContext::global()->draw();
-#endif
-  return 0;
-}
-
-int binding::readFile(const char *filename)
-{
-  int lock = CTX::instance()->lock;
-  CTX::instance()->lock = 0;
-  checkDocCompleteness();
-  int s = luaL_loadfile(L, filename);
-  if (s == 0) {
-    Msg::Info("lua executes %s", filename);
-    s = lua_pcall(L, 0, LUA_MULTRET, 0);
-  }
-  reportErrors(L, s);
-  lua_close(L);
-  CTX::instance()->lock = lock;
-  return (s == 0);
-}
-
-static int countInArguments(const std::vector<std::string> &types)
-{
-  int c = 0;
-  for(unsigned int i = 1; i < types.size(); i++)
-    c += (types[i] != "-1");
-  return c;
-}
-
-void binding::checkDocCompleteness()
-{
-  int nBad = 0;
-  for(std::map<std::string, classBinding *>::iterator cb = classes.begin();
-      cb!=classes.end();cb++) {
-    if(cb->second->getDescription().empty()){
-      Msg::Error("binded class %s has no description.", cb->first.c_str());
-      nBad++;
-    }
-    luaMethodBinding *constructor = cb->second->getConstructor();
-    if(constructor){
-      if(constructor->getDescription().empty()){
-        Msg::Error("binded constructor of class %s has no description.", 
-                   cb->first.c_str());
-        nBad++;
-      }
-      std::vector<std::string> argTypeNames;
-      constructor->getArgTypeNames(argTypeNames);
-      int nTypeArg = countInArguments(argTypeNames);
-      int nDocArg = constructor->getArgNames().size();
-      if(nTypeArg != nDocArg){
-        Msg::Error("binded constructor of class %s takes %i arguments but %i "
-                   "are documented.", cb->first.c_str(), nTypeArg, nDocArg);
-        nBad++;
-      }
-    }
-    for(std::map<std::string,luaMethodBinding*>::iterator mb = cb->second->methods.begin();
-        mb != cb->second->methods.end(); mb++){
-      if(mb->second->getDescription().empty()){
-        Msg::Error("binded method %s.%s has no description.", cb->first.c_str(),
-                   mb->first.c_str());
-        nBad++;
-      }
-      std::vector<std::string> argTypeNames;
-      mb->second->getArgTypeNames(argTypeNames);
-      int nTypeArg = countInArguments(argTypeNames);
-      int nDocArg = mb->second->getArgNames().size();
-      if(nTypeArg != nDocArg){
-        Msg::Error("binded method %s.%s takes %i arguments but %i are documented.",
-          cb->first.c_str(),mb->first.c_str(), nTypeArg, nDocArg);
-        nBad++;
-      }
-    }
-  }
-  if(nBad != 0){
-    Msg::Error("Bindings documentation is not complete (%i error(s)). To enforce "
-               "documentation completeness, I will exit now. Please complete the "
-               "documentation and run Gmsh again ;-)", nBad);
-    Msg::Exit(1);
-  }
-}
-
-void binding::interactiveSession()
-{
-  int lock = CTX::instance()->lock;
-  CTX::instance()->lock = 0;
-  checkDocCompleteness();
-
-  Msg::Info("Starting interactive lua session, press Ctrl-D to exit"); 
-#if defined(HAVE_READLINE)
-  using_history();
-  while (const char *line=readline("lua> ")){
-    char *expansion = NULL;
-    int r=history_expand((char*)line, &expansion);
-    if(r)
-      std::cout << expansion << "\n";
-    if((r == 0 || r == 1) && expansion){
-      add_history(expansion);
-      reportErrors(L, luaL_dostring(L, expansion));
-    }
-    if(expansion)
-      free(expansion);
-  }
-  clear_history();
-#else
-  std::string line;
-  while(std::cout << "lua> ", getline(std::cin, line)){
-    reportErrors(L, luaL_dostring(L, line.c_str()));
-  }
-#endif
-  CTX::instance()->lock = lock;
-}
-
-binding::binding()
-{
-  if(_instance){
-    Msg::Error("Only one instance of lua bindings is allowed");
-  }
-  _instance = this;
-  L = lua_open();
-  /*
-  luaopen_base(L);
-  luaopen_table(L);
-  luaopen_os(L);
-  luaopen_io(L);
-  luaopen_string(L);
-  luaopen_math(L);
-  luaopen_debug(L);
-  */
-  luaL_openlibs(L);
-
-  lua_register(L, "help",luaHelp);
-  lua_register(L, "saveHistory", luaSave);
-  lua_register(L, "clearHistory", luaClear);
-  lua_register(L, "refreshGraphics", luaRefresh);
-
-  //  lua_pushcfunction(L, luaopen_io);
-  //  lua_call(L, 0, 0);
-
-  // Register Lua bindings
-  DocRecord::registerBindings(this);
-  GEntity::registerBindings(this);
-  GVertex::registerBindings(this);
-  GEdge::registerBindings(this);
-  GRegion::registerBindings(this);
-  GPoint::registerBindings(this);
-  MElement::registerBindings(this);
-  MVertex::registerBindings(this);
-  MTriangle::registerBindings(this);
-  MPrism::registerBindings(this);
-  MQuadrangle::registerBindings(this);
-  MLine::registerBindings(this);
-  fullMatrix<double>::registerBindings(this);
-  gmshOptions::registerBindings(this);
-  Msg::registerBindings(this);
-  polynomialBasis::registerBindings(this);
-  gaussIntegration::registerBindings(this);
-  meshPartitionOptions::registerBindings(this);
-  Temporary::registerBindings(this);
-#if defined(HAVE_SOLVER)
-  function::registerBindings(this);
-  linearSystem<double>::registerBindings(this);
-  linearSystemCSRGmm<double>::registerBindings(this);
-#if defined(HAVE_LUA)
-  elasticitySolverRegisterBindings(this); 
-#endif
-#endif
-#if defined(HAVE_POST)
-  PView::registerBindings(this);
-  PViewData::registerBindings(this);
-  PViewFactory::registerBindings(this);
-#endif
-}
-
-binding *binding::_instance=NULL;
-
-binding::~binding()
-{
-  for (std::map<std::string,classBinding *>::iterator it = classes.begin(); 
-       it != classes.end(); it++) {
-    delete it->second;
-  }
-}
-
-void *binding::checkudata_with_inheritance (lua_State *L, int ud, const char *tname)
-{
-  void *p = lua_touserdata(L, ud);
-  if (!p)
-    return NULL;
-  lua_getglobal(L, tname);
-  if (ud<0) ud--;
-  int depth = 1;
-  while (luaL_getmetafield (L, ud, "__index")) {
-    depth ++;
-    if (lua_rawequal(L,-1, -depth) ) {
-      lua_pop(L, depth);
-      return p;
-    }
-    ud = -1;
-  }
-  lua_pop(L, depth);
-  return NULL;
-}
-
-#endif
diff --git a/Common/LuaBindings.h b/Common/LuaBindings.h
deleted file mode 100644
index 931c38b656ee55ef128cd644943c03c16c511fd0..0000000000000000000000000000000000000000
--- a/Common/LuaBindings.h
+++ /dev/null
@@ -1,1468 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#ifndef _LUA_BINDINGS_H_
-#define _LUA_BINDINGS_H_
-
-#include <map>
-#include <vector>
-#include <list>
-#include <set>
-#include "GmshConfig.h"
-#include "GmshMessage.h"
-#include "Bindings.h"
-#include "SVector3.h"
-
-#if defined(HAVE_LUA)
-
-extern "C" {
-#include "lua.h"
-#include "lauxlib.h"
-}
-
-// store a unique static class name for each binded class
-template <typename type>
-class className{
-  static std::string _name;
- public:
-  static void set(std::string name)
-  {
-    if(_name != "") Msg::Error("Class name already set");
-    _name = name;
-  }
-  static const std::string &get()
-  {
-    if(_name == "") Msg::Error("Class unknown to Lua");
-    return _name;
-  }
-};
-
-template<typename type>
-std::string  className<type>::_name;
-
-template <typename t>
-class className<t*>{
- public:
-  static const std::string get(){ return className<t>::get(); }
-};
-
-template <typename t>
-class className<const t &>{
- public:
-  static const std::string get(){ return className<t>::get(); }
-};
-
-class classBinding;
-class binding {
-  static binding *_instance;
-  void checkDocCompleteness();
- public:
-  static void *checkudata_with_inheritance (lua_State *L, int ud, const char *tname);
-  inline static binding *instance(){ return _instance ? _instance : new binding(); }
-  lua_State *L;
-  int readFile(const char *filename);
-  void interactiveSession();
-  binding();
-  ~binding();
-  std::map<std::string,classBinding *> classes;
-  template<class t>
-  classBinding *addClass(std::string className);
-};
-
-template <>
-class className<lua_State>{
- public:
-  static const std::string get(){ return "-1"; }
-};
-
-// lua Stack: templates to get/push value from/on the lua stack
-
-template<class type>
-class luaStack {
-};
-
-template <>
-class luaStack<void>
-{
- public:
-  static std::string getName(){ return "void"; }
-};
-
-template<>
-class luaStack<lua_State *>{
- public:
-  static lua_State *get(lua_State *L, int ia){ return L; }
-  static std::string getName(){ return "-1"; }
-};
-
-template<>
-class luaStack<int>{
- public:
-  static int get(lua_State *L, int ia){ return luaL_checkint(L, ia); }
-  static void push(lua_State *L, int i){ lua_pushinteger(L, i); }
-  static std::string getName(){ return "int"; }
-};
-
-template<>
-class luaStack<bool>{
- public:
-  static int get(lua_State *L, int ia){ return lua_toboolean(L, ia); }
-  static void push(lua_State *L, bool i){ lua_pushboolean(L, i); }
-  static std::string getName(){ return "bool"; }
-};
-template<>
-class luaStack<unsigned int>{
- public:
-  static int get(lua_State *L, unsigned int ia)
-  { 
-    return (unsigned int)luaL_checkint(L, ia);
-  }
-  static void push(lua_State *L, unsigned int i){ lua_pushinteger(L, i); }
-  static std::string getName(){ return "unsigned int"; }
-};
-
-template<class type>
-class luaStack<std::vector<type > >{
- public:
-  static std::vector<type> get(lua_State *L, int ia)
-  {
-    std::vector<type> v;
-    size_t size = lua_objlen(L, ia);
-    v.resize(size);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i] = luaStack<type>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return v;
-  }
-  static void push(lua_State *L, const std::vector<type>& v)
-  {
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<type>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "vector of ";
-    return name + luaStack<type>::getName();
-  }
-};
-template<class lType>
-class luaStack<std::list<lType > >{
- public:
-  static std::list<lType> get(lua_State *L, int ia)
-  {
-    std::list<lType> l;
-    size_t size = lua_objlen(L, ia);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      l.push_back(luaStack<lType>::get(L, -1));
-      lua_pop(L, 1);
-    }
-    return l;
-  }
-  static void push(lua_State *L, const std::list<lType>& l)
-  {
-    std::vector<lType> v(l.begin(), l.end());
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<lType>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "list of ";
-    return name + luaStack<lType>::getName();
-  }
-};
-
-
-template<class type>
-class luaStack<std::vector<type> &>{
- public:
-  static std::vector<type> get(lua_State *L, int ia)
-  {
-    std::vector<type> v;
-    size_t size = lua_objlen(L, ia);
-    v.resize(size);
-    for(size_t i = 0; i< size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i]=luaStack<type>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return v;
-  }
-  static void push(lua_State *L, const std::vector<type>& v)
-  {
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size; i++){
-      luaStack<type>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name="vector of ";
-    return name + luaStack<type>::getName();
-  }
-};
-template<class lType>
-class luaStack<std::list<lType > &>{
- public:
-  static std::list<lType> get(lua_State *L, int ia)
-  {
-    std::list<lType> l;
-    size_t size = lua_objlen(L, ia);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      l.push_back(luaStack<lType>::get(L, -1));
-      lua_pop(L, 1);
-    }
-    return l;
-  }
-  static void push(lua_State *L, const std::list<lType>& l)
-  {
-    std::vector<lType> v(l.begin(), l.end());
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<lType>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "list of ";
-    return name + luaStack<lType>::getName();
-  }
-};
-
-template<>
-class luaStack<double>{
- public:
-  static double get(lua_State *L, int ia){ return luaL_checknumber(L, ia); }
-  static void push(lua_State *L, double v){ lua_pushnumber(L, v); }
-  static std::string getName(){ return "double"; }
-};
-
-template <>
-class luaStack<SVector3>{
- public:
-  static SVector3 get(lua_State *L, int ia)
-  {
-    double v[3];
-    size_t size = lua_objlen(L, ia);
-    if (size!=3)
-      luaL_typerror(L, ia, "SVector3");
-    for(size_t i = 0; i< size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i] = luaStack<double>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return SVector3(v[0],v[1],v[2]);
-  }
-  static void push(lua_State *L, const SVector3& v)
-  {
-    lua_createtable(L, 3, 0);
-    for(size_t i = 0; i < 3; i++){
-      luaStack<double>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    return "3-uple of double";
-  }
-};
-
-template<>
-class luaStack<std::string>{
-  public:
-  static std::string get(lua_State *L, int ia){ return luaL_checkstring(L, ia); }
-  static void push(lua_State *L, std::string s){ lua_pushstring(L, s.c_str()); }
-  static std::string getName(){ return "string"; }
-};
-
-template <typename type>
-class luaStack<type *>{
-  typedef struct { type *pT; } userdataType;
-  public:
-  static type* get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return ud->pT;
-  }
-  static void push(lua_State *L, type *obj)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (lua_newuserdata(L, sizeof(userdataType)));
-    ud->pT=obj;
-    // lookup metatable in Lua registry
-    luaL_getmetatable(L,className<type>::get().c_str());
-    lua_setmetatable(L, -2);
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<const type *>{
-  typedef struct { type *pT; } userdataType;
-  public:
-  static type* get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return ud->pT;
-  }
-  static void push(lua_State *L, const type *obj)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (lua_newuserdata(L, sizeof(userdataType)));
-    ud->pT=(type*)obj;
-    // lookup metatable in Lua registry
-    luaL_getmetatable(L,className<type>::get().c_str());
-    lua_setmetatable(L, -2);
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<type &>{
-  typedef struct { type *pT; } userdataType;
- public:
-  static type& get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return *ud->pT; 
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<const type &>{
-  typedef struct { type *pT; } userdataType;
- public:
-  static type& get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return *ud->pT; 
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-//static
-template <typename cb>
-class argTypeNames;
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-  typename t4, typename t5, typename t6, typename t7, typename t8>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-    names.push_back(luaStack<t7>::getName());
-    names.push_back(luaStack<t8>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5, typename t6, typename t7>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6, t7)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-    names.push_back(luaStack<t7>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5, typename t6>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5>
-class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4>
-class argTypeNames<tr (*)(t0, t1, t2, t3, t4)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3>
-class argTypeNames<tr (*)(t0, t1, t2, t3)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2>
-class argTypeNames<tr (*)(t0, t1, t2)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1>
-class argTypeNames<tr (*)(t0, t1)>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-  }
-};
-
-template <typename tr, typename t0>
-class argTypeNames<tr (*)(t0)>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-  }
-};
-
-template <typename tr>
-class argTypeNames<tr (*)()>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-  }
-};
-
-template <typename cb>
-class argTypeNames;
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6, typename t7, typename t8>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5, typename t6, typename t7>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6, t7)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6, t7)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5, typename t6>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2>
-class argTypeNames<tr (tObj::*)(t0, t1, t2)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1>
-class argTypeNames<tr (tObj::*)(t0, t1)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0>
-class argTypeNames<tr (tObj::*)(t0)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj>
-class argTypeNames<tr (tObj::*)()>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)()>::get(names);
-  }
-};
-
-// const 
-template <typename cb>
-class argTypeNames;
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2>
-class argTypeNames<tr (tObj::*)(t0, t1, t2)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1>
-class argTypeNames<tr (tObj::*)(t0, t1)const>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0>
-class argTypeNames<tr (tObj::*)(t0)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj>
-class argTypeNames<tr (tObj::*)()const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)()>::get(names);
-  }
-};
-
-// template to call c function from the lua stack
-// static, return 
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7, typename t8>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6, t7, t8))
-{
-  if (lua_gettop(L) == 10) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7), luaStack<t7>::get(L, 8),
-				luaStack<t8>::get(L, 9)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6, t7))
-{
-  if (lua_gettop(L) == 9) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7), luaStack<t7>::get(L, 8)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  if (lua_gettop(L) == 8) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5))
-{
-  if (lua_gettop(L) == 7) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3,t4))
-{
-  if (lua_gettop(L) == 6) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3))
-{
-  if (lua_gettop(L) == 5) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2))
-{
-  if (lua_gettop(L) == 4) lua_remove(L,1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1))
-{
-  if (lua_gettop(L) == 3) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2)));
-  return 1;
-};
-
-template < typename tRet, typename t0>
-static int luaCall(lua_State *L, tRet (*_f)(t0))
-{
-  if (lua_gettop(L) == 2) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1)));
-  return 1;
-};
-
-template < typename tRet>
-static int luaCall(lua_State *L, tRet (*_f)())
-{
-  if (lua_gettop(L) == 1) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)());
-  return 1;
-};
-
-//static, no return 
-template < typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  if (lua_gettop(L) == 8) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5),
-	  luaStack<t5>::get(L, 6), luaStack<t6>::get(L, 7));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4, t5))
-{
-  if (lua_gettop(L) == 7) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5),
-	  luaStack<t5>::get(L, 6));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3, typename t4>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4))
-{
-  if (lua_gettop(L) == 6) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3))
-{
-  if (lua_gettop(L) == 5) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4));
-  return 1;
-};
-
-template <typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (*_f)(t0, t1, t2))
-{
-  if (lua_gettop(L) == 4) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),luaStack<t2>::get(L, 3));
-  return 1;
-};
-
-template <typename t0, typename t1>
-static int luaCall(lua_State *L,void (*_f)(t0, t1))
-{
-  if (lua_gettop(L) == 3) lua_remove(L,1);
-  (*(_f))(luaStack<t0>::get(L,1),luaStack<t1>::get(L,2));
-  return 1;
-};
-
-template <typename t0>
-static int luaCall(lua_State *L, void (*_f)(t0))
-{
-  if (lua_gettop(L) == 2) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1));
-  return 1;
-};
-
-template <>
-#if (__GNUC__< 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3))
-static 
-#endif
-int luaCall<void>(lua_State *L,void (*_f)())
-{
-  if (lua_gettop(L) == 1) lua_remove(L,1);
-  (*(_f))();
-  return 1;
-}
-
-//const, return
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6, t7) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7), luaStack<t6>::get(L, 8), luaStack<t7>::get(L, 9)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7), luaStack<t6>::get(L, 8)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2) const)
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2),luaStack<t1>::get(L, 3)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2)));
-  return 1;
-};
-
-template <typename tObj, typename tRet>
-static int luaCall(lua_State *L, tRet (tObj::*_f)() const) {
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L,1)->*(_f))());
-  return 1;
-};
-
-//non const, return
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6, t7))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7), 
-			luaStack<t6>::get(L, 8), luaStack<t7>::get(L, 9)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5, typename t6>
-  static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7), 
-			luaStack<t6>::get(L, 8)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2, 
-          typename t3, typename t4>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2, 
-          typename t3>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3)) {
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2)) {
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2),luaStack<t1>::get(L, 3)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))(luaStack<t0>::get(L, 2)));
-  return 1;
-};
-
-template <typename tObj, typename tRet>
-static int luaCall(lua_State *L,tRet (tObj::*_f)())
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))());
-  return 1;
-};
-
-//const, no return
-template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3) const)
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2) const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1) const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3));
-  return 0;
-};
-
-template <typename tObj, typename t0>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0) const) {
-  (luaStack<tObj*>::get(L, 1)->*(_f))(luaStack<t0>::get(L, 2));
-  return 0;
-};
-
-template <typename tObj>
-static int luaCall(lua_State *L, void (tObj::*_f)() const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))();
-  return 0;
-};
-
-//non const, no return
-template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3, t4, t5))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7));
-  return 1;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-          typename t4>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3, t4))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6));
-  return 1;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3)) 
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3));
-  return 0;
-};
-template <typename tObj, typename t0>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0))
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))(luaStack<t0>::get(L, 2));
-  return 0;
-};
-
-template <typename tObj>
-static int luaCall(lua_State *L,void (tObj::*_f)())
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))();
-  return 0;
-};
-
-// actual bindings classes
-class luaMethodBinding : public methodBinding{
- public:
-  std::string _luaname;
-  virtual int call (lua_State *L) = 0;
-  luaMethodBinding(const std::string luaname){ _luaname = luaname; }
-  luaMethodBinding(){ _luaname = ""; }
-  virtual void getArgTypeNames(std::vector<std::string> &names){}
-};
-
-template <typename cb>
-class methodBindingT :public luaMethodBinding {
- public:
-  cb _f;
-  methodBindingT(const std::string luaname, cb f) : luaMethodBinding(luaname) { _f = f; }
-  int call(lua_State *L){ return luaCall(L, _f); }
-  void getArgTypeNames(std::vector<std::string> &names){ argTypeNames<cb>::get(names); }
-};
-template <typename tObj, typename t0=void, typename t1=void, typename t2=void, 
-          typename t3=void, typename t4=void, typename t5=void>
-class constructorBindingT: public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-                                       luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3, t4, t5)>::get(names);
-  }
-};
-
-
-template <typename tObj>
-class constructorBindingT<tObj, void, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj()));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)()>::get(names);
-  }
-};
-
-template <typename tObj, typename t0>
-class constructorBindingT<tObj, t0, void, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L,1);
-    (luaStack<tObj*>::push(L,new tObj(luaStack<t0>::get(L,1))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names) {
-    argTypeNames<void (tObj::*)(t0)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1>
-class constructorBindingT<tObj, t0, t1, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-class constructorBindingT<tObj, t0, t1, t2, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2,  typename t3>
-class constructorBindingT<tObj, t0, t1, t2, t3, void, void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2,  typename t3, typename t4>
-class constructorBindingT<tObj, t0, t1, t2, t3, t4, void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-                                       luaStack<t4>::get(L, 5))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3,t4)>::get(names);
-  }
-};
-
-template <class t>
-class destructorBindingT : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    t *o = luaStack<t*>::get(L,1);
-    delete o;
-    return 0;
-  }
-};
-
-class classBinding {
-  std::string _className;
-  binding *_b;
-  luaMethodBinding *_constructor;
-  static int callMethod(lua_State *L)
-  {
-    return static_cast<luaMethodBinding*>(lua_touserdata(L, lua_upvalueindex(1)))->call(L); 
-  }
-  // I'd like to remove the "luaMethodBinding" and the "methodBindingT"
-  // classes and use this callback insteak but for some reason I don't
-  // understand, it does not work
-  static int callMethod2(lua_State *L)
-  {
-    int (*f)(lua_State*, void *) = (int (*)(lua_State*, void*))
-      (lua_touserdata(L, lua_upvalueindex(1)));
-    void *ff=lua_touserdata(L, lua_upvalueindex(2));
-    return (*f)(L, ff);
-  }
-  static int tostring(lua_State *L)
-  {
-    typedef struct { void *pt; } userdata;
-    char buff[32];
-    const char *name = luaL_checkstring(L, lua_upvalueindex(1));
-    userdata *ud = static_cast<userdata*>(lua_touserdata(L, 1));
-    sprintf(buff, "%p", ud->pt);
-    lua_pushfstring(L, "%s (%s)", name, buff);
-    return 1;
-  }
-  void setConstructorLuaMethod(luaMethodBinding *constructor)
-  {
-    lua_State *L = _b->L;
-    lua_getglobal(L, _className.c_str());
-    int methods = lua_gettop(L);
-    lua_getmetatable(L, methods);
-    int mt = lua_gettop(L);
-    lua_pushlightuserdata(L, (void*)constructor);
-    lua_pushcclosure(L, callMethod, 1);
-    lua_setfield(L, mt, "__call");
-    lua_pop(L, 2);
-    _constructor = constructor;
-  }
-  //for the doc
-  std::string _description;
-  classBinding *_parent;
- public:
-  std::set<classBinding *> children;
-  inline luaMethodBinding *getConstructor(){ return _constructor; }
-  // get userdata from Lua stack and return pointer to T object
-  classBinding(binding *b, std::string name)
-  {
-    _b = b;
-    lua_State *L = _b->L;
-    _className = name;
-    _constructor = NULL;
-    _parent = NULL;
-
-    // there are 3 tables involved :
-    // methods : the table of the C++ functions we bind (exept constructor)
-    // metatable : the metatable attached to each intance of the
-    //   class, falling back to method (metatable.__index=method)
-    // mt : the metatable of method to store the constructor (__new)
-    //   and possibly falling back to the parent metatable( __index)
-    lua_newtable(L); // methods
-    int methods = lua_gettop(L);
-    lua_pushvalue(L, methods);
-    lua_setglobal(L, _className.c_str()); // global[_className] = methods
-
-    luaL_newmetatable(L, _className.c_str());
-    int metatable = lua_gettop(L);
-
-    lua_pushvalue(L, methods);
-    lua_setfield(L, metatable, "__index"); // metatable.__index=methods
-
-    lua_pushstring(L,name.c_str());
-    lua_pushcclosure(L, tostring,1);
-    lua_setfield(L, metatable, "__tostring");
-
-    lua_newtable(L);
-    //int mt = lua_gettop(L);
-
-    lua_setmetatable(L, methods); // setmetatable(methods, mt)
-    lua_pop(L, 2);  // drop metatable and method table
-  } 
-  void setParentClassName(const std::string parentClassName) {
-    if(_parent)
-      Msg::Error("Multiple inheritance not implemented in lua bindings "
-                 "for class %s", _className.c_str());
-    if(_b->classes.find(parentClassName) == _b->classes.end())
-      Msg::Error("Unknown class %s", parentClassName.c_str());
-    _parent = _b->classes[parentClassName];
-    _parent->children.insert(this);
-    lua_getglobal(_b->L, _className.c_str());
-    lua_getmetatable(_b->L, -1);
-    int mt=lua_gettop(_b->L);
-    lua_getglobal(_b->L, parentClassName.c_str());
-    lua_setfield(_b->L, mt, "__index"); 
-    // mt.__index = global[_parentClassName] // this is the inheritance bit
-    lua_pop(_b->L, 2);
-  }
-  template<typename parentType>
-  void setParentClass()
-  {
-    setParentClassName(className<parentType>::get());
-  }
-  void setDescription(std::string description){ _description = description; }
-  inline const std::string getDescription() const { return _description; }
-  inline classBinding *getParent() const { return _parent; }
-  std::map<std::string, luaMethodBinding *> methods;
-  void addMethodLua (std::string n, luaMethodBinding *mb) {
-    methods[n] = mb;
-    lua_State *L = _b->L;
-    lua_getglobal(L, _className.c_str());
-    int methods = lua_gettop(L);
-    /*int (*lc)(lua_State *,cb)=(int(*)(lua_State*,cb))luaCall;
-    lua_pushlightuserdata(L, (void*)lc);
-    lua_pushlightuserdata(L, (void*)f);
-    lua_pushcclosure(L, callMethod2, 2);*/
-    lua_pushlightuserdata(L, (void*)mb);
-    lua_pushcclosure(L, callMethod, 1);
-    lua_setfield(L,methods, n.c_str()); //className.name = callMethod(mb)
-    lua_pop(L, 1);
-  }
-  template <typename cb>
-  methodBinding *addMethod(std::string n, cb f)
-  {
-    luaMethodBinding *mb = new methodBindingT<cb>(n, f);
-    addMethodLua(n,mb);
-    return mb; 
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4, typename t5>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3,t4,t5>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3,t4>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3 >
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2 >
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template<typename tObj>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  inline const std::string getClassName()const {return _className;}
-  ~classBinding() {
-    if (_constructor)
-      delete _constructor;
-    for (std::map<std::string, luaMethodBinding *>::iterator it = methods.begin(); it!=methods.end(); it++) {
-      delete it->second;
-    }
-  }
-};
-
-template<typename t>
-classBinding *binding::addClass(std::string name)
-{
-  className<t>::set(name);
-  classBinding *cb = new classBinding(this, name);
-  luaMethodBinding *d = new destructorBindingT<t>();
-  d->setDescription("destructor");
-  cb->addMethodLua("delete", d);
-  classes[name] = cb;
-  return cb;
-}
-
-#endif
-#endif
diff --git a/Common/Main.cpp b/Common/Main.cpp
index 2b3f5bfbcd1cd477b81dafca427cf209e05d376b..61f7332ff472e0b06419a4665b128ad774687140 100644
--- a/Common/Main.cpp
+++ b/Common/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.cpp b/Common/MallocUtils.cpp
index f4c09801a502c9a482f6afd55e827e77dba99ea6..39ad2b965e9ca81e6cb122c0b90b4955a424c687 100644
--- a/Common/MallocUtils.cpp
+++ b/Common/MallocUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.h b/Common/MallocUtils.h
index 63300f276fa28ff7dd50958e4be396dc74b1b23a..b75faafef446cd01107e392147c42397affe16ec 100644
--- a/Common/MallocUtils.h
+++ b/Common/MallocUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.cpp b/Common/OS.cpp
index 84933ed80fa9d17148fb56fbf77bdb72d9105635..e099e7f6ae1cf86b2f7c7c2edb1ee8dc566bc77e 100644
--- a/Common/OS.cpp
+++ b/Common/OS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.h b/Common/OS.h
index 83cc5e73f75c1d8ba06100388884d525c86a7511..8922e4832e951b9149b44218db749d0f847edd8e 100644
--- a/Common/OS.h
+++ b/Common/OS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.cpp b/Common/Octree.cpp
index 4bcdc092ef8e7c71938e607d9e25f7b6903cd668..58c5c35133d138fc29459f404a936ec3b99a0db1 100644
--- a/Common/Octree.cpp
+++ b/Common/Octree.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.h b/Common/Octree.h
index d6281725e06c6e97c1d8693984d0e580ff42246a..a831bcb77ce1831c0b29e269a15aa2019fb2ab4f 100644
--- a/Common/Octree.h
+++ b/Common/Octree.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.cpp b/Common/OctreeInternals.cpp
index 2c500d379aca20553666ef6f476a3ad885261d37..d1d83e01e8138401dc48315b7e02e048dd87638b 100644
--- a/Common/OctreeInternals.cpp
+++ b/Common/OctreeInternals.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.h b/Common/OctreeInternals.h
index 8117aba03a75a7e514f033e7253a2165ce33e4cf..c71eda257643c53f35e4abed1a8698110b82937a 100644
--- a/Common/OctreeInternals.h
+++ b/Common/OctreeInternals.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index b1722ed3b2391706c563b66bbecfd932f6a26678..fd4ef3a65109d4b6a74d34fe4fa17ee5a9f5e454 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -18,7 +18,6 @@
 #include "OS.h"
 #include "StringUtils.h"
 #include "GeomMeshMatcher.h"
-#include "LuaBindings.h"
 
 #if defined(HAVE_PARSER)
 #include "Parser.h"
@@ -335,11 +334,6 @@ int MergeFile(std::string fileName, bool warnIfMissing)
     status = read_png(fileName);
   }
 #endif
-#endif
-#if defined(HAVE_LUA)
-  else if(ext == ".lua" || ext == ".LUA") {
-    status = binding::instance()->readFile(fileName.c_str());
-  }
 #endif
   else if(ext == ".ply2" || ext == ".PLY2"){
     status = GModel::current()->readPLY2(fileName);
diff --git a/Common/OpenFile.h b/Common/OpenFile.h
index d6b10c9e6000d8513011e759caf1ae731078df2d..40fae6b73c2db13468c9552969845ab488645070 100644
--- a/Common/OpenFile.h
+++ b/Common/OpenFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 30510cd0ae695de0a1621424e5fa29ac948fc867..341765d31b36e5e3eb732a099fad2e4ad5e80eea 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Options.h b/Common/Options.h
index 39f31fe7a43f3acb37799f08c4ba561c813e2d8b..9db8fcb1defbbabebc79584e87e2840efe369616 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.cpp b/Common/SmoothData.cpp
index 0c11228e014133529b98552c5fdb691f3f3ce1e8..82f57140e6735cb08bc8322e0dcbb3c08355bb2a 100644
--- a/Common/SmoothData.cpp
+++ b/Common/SmoothData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.h b/Common/SmoothData.h
index 741d5d43f64df61f662722ea6ac8ab1e30d685c0..f8615447c4fe5c8190f60864910f9d93387f0f6d 100644
--- a/Common/SmoothData.h
+++ b/Common/SmoothData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.cpp b/Common/StringUtils.cpp
index d7597d40219c7b868f07165317024fc939f46dc3..acd3d8ca54ed5ad02c33db31e426dfbf444431ac 100644
--- a/Common/StringUtils.cpp
+++ b/Common/StringUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.h b/Common/StringUtils.h
index 81061107e267b0daceb035edaa7fc136ee8e4a24..c30a7b261864e2ca7b8d0e5debaf366be20f2701 100644
--- a/Common/StringUtils.h
+++ b/Common/StringUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.cpp b/Common/TreeUtils.cpp
index 22ecd64ada8e4e438a9c1071b4f43c4ad527374a..ca1c8635fc7d610cc3bf9df4601536ba2e772673 100644
--- a/Common/TreeUtils.cpp
+++ b/Common/TreeUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.h b/Common/TreeUtils.h
index ecdb609aa1dd433b50497197171c02fe2bffb8b9..9e949b46e6086487fd9bbef528c9440a8f7d24f5 100644
--- a/Common/TreeUtils.h
+++ b/Common/TreeUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.cpp b/Common/VertexArray.cpp
index beb751af077c2ee06db1b72967bdba175b8bee3b..ad13ffe9eeed705ccc0964e2e406655d9b8cd3d3 100644
--- a/Common/VertexArray.cpp
+++ b/Common/VertexArray.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.h b/Common/VertexArray.h
index 6703837e2d73aad8026fd33b7ce114c9f0048f8c..3454d1a2b7f60e2c63a95525d6e6c903b03d195a 100644
--- a/Common/VertexArray.h
+++ b/Common/VertexArray.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/gmshpy.i b/Common/gmshpy.i
index a2b6afdd6e2d04323a1912603fab6df386f1f6e8..cae9c8adc82d5cb10cd09b2cb3b0ff5dff785d6d 100644
--- a/Common/gmshpy.i
+++ b/Common/gmshpy.i
@@ -4,6 +4,7 @@
 %include std_vector.i
 %include std_list.i
 %{
+  #include "GmshConfig.h"
   #include "GModel.h"
   #include "DefaultOptions.h"
   #include "fullMatrix.h"
@@ -43,16 +44,18 @@
   #include "SPoint3.h"
   #include "SPoint2.h"
   #include "GPoint.h"  
+  #if defined(HAVE_FLTK)
+  #include "FlGui.h"
+  #endif
   class errorHandler: public GmshMessage {
     void operator()(std::string level, std::string message){
-      //const char *color = colorDefault;
+  #if defined(HAVE_FLTK)
+      // don't output anything special if we're running in a gui
+      if(FlGui::available()) return;
+  #endif
       std::cout<<level<<" : "<<message<<std::endl;
-      if (level=="Error" || level == "Fatal") {
-        //color = colorRed;
-        //color confuses ctest/cdash
-        //std::cout<<color<<level<<" : "<<message<<colorDefault<<"\n";
+      if (level == "Fatal") 
         throw;
-      }
     }
   };
 %}
@@ -80,7 +83,6 @@ namespace std {
    %template(GFaceList) list<GFace*, std::allocator<GFace*> >;
 }
 
-
 %include "GmshConfig.h"
 %include "Context.h"
 %include "fullMatrix.h"
@@ -128,3 +130,6 @@ namespace std {
 %include "functionPython.h"
 %include "meshGFaceLloyd.h"
 %include "DefaultOptions.h"
+#if defined(HAVE_FLTK)
+%include "FlGui.h"
+#endif
diff --git a/Fltk/CMakeLists.txt b/Fltk/CMakeLists.txt
index 9a75c0fb0224dd8cc0311a1c683f40aa6268778a..3b6cbe786844d8037853e99603c2f3418f945e18 100644
--- a/Fltk/CMakeLists.txt
+++ b/Fltk/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 00a9afc465c6b7fbfe9a8a66c2f2a9e1a1f0dd43..451a6ec35c65e27974a3c26999080383fc51c089 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -204,6 +204,9 @@ FlGui::FlGui(int argc, char **argv)
   // add callback to respond to Mac Finder
 #if defined(__APPLE__)
   fl_open_callback(OpenProjectMacFinder);
+#if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
+  fl_mac_set_about(help_about_cb, 0);
+#endif
 #endif
 
   // all the windows are contructed (even if some are not displayed)
@@ -247,7 +250,8 @@ FlGui::FlGui(int argc, char **argv)
 
   // graphic window should have the initial focus (so we can
   // e.g. directly loop through time steps with the keyboard)
-  graph[0]->gl[0]->take_focus();
+  //graph[0]->gl[0]->take_focus();
+  Fl::focus(graph[0]->gl[0]);
 
   // create additional graphic windows
   for(int i = 1; i < CTX::instance()->numWindows; i++){
@@ -279,6 +283,8 @@ FlGui::FlGui(int argc, char **argv)
   for(unsigned int i = 0; i < graph.size(); i++)
     for(unsigned int j = 0; j < graph[i]->gl.size(); j++)
       graph[i]->gl[j]->redraw();
+
+  menu->setContext(menu_geometry, 0);
 }
 
 FlGui *FlGui::_instance = 0;
@@ -308,6 +314,19 @@ FlGui *FlGui::instance(int argc, char **argv)
   return _instance;
 }
 
+int FlGui::run()
+{
+  // bounding box computation necessary if we run the gui without
+  // merging any files (e.g. if we build the geometry with python and
+  // create the gui from the python script)
+  SetBoundingBox();
+ 
+  // draw the scene
+  drawContext::global()->draw();
+
+  return Fl::run(); 
+}
+
 int FlGui::testGlobalShortcuts(int event)
 {
   // we only handle shortcuts here
@@ -616,7 +635,8 @@ int FlGui::testGlobalShortcuts(int event)
           (i, GMSH_SET | GMSH_GUI, !opt_view_draw_strings(i, GMSH_GET, 0));
     status = 2;
   }
-  else if(Fl::test_shortcut(FL_ALT + 'e')) {
+  else if(Fl::test_shortcut(FL_ALT + 'e') ||
+          Fl::test_shortcut(FL_ALT + FL_SHIFT + 'e')) {
     for(unsigned int i = 0; i < PView::list.size(); i++)
       if(opt_view_visible(i, GMSH_GET, 0))
         opt_view_show_element
diff --git a/Fltk/FlGui.h b/Fltk/FlGui.h
index 7da10e33a28d88e2d7ac54833b26d432063b122c..bc3b6563544a50be7bf2ae7bb8f08dd0775bad00 100644
--- a/Fltk/FlGui.h
+++ b/Fltk/FlGui.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -73,13 +73,13 @@ class FlGui{
   // check if the GUI is available
   static bool available(){ return (_instance != 0); }
   // run the GUI until there's no window left
-  int run(){ return Fl::run(); }
+  static int run();
   // check (now!) if there are any pending events, and process them
-  void check(){ Fl::check(); }
+  static void check(){ Fl::check(); }
   // wait (possibly indefinitely) for any events, then process them
-  void wait(){ Fl::wait(); }
+  static void wait(){ Fl::wait(); }
   // wait (at most time seconds) for any events, then process them
-  void wait(double time){ Fl::wait(time); }
+  static void wait(double time){ Fl::wait(time); }
   // test application-level keyboard shortcuts
   int testGlobalShortcuts(int event);
   // test the arrow shortcuts (not in the application-level shortcuts)
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 898d614df08aa236d554cc5f596599c85306d274..dd2bb166a6ed7b0ef79170edce3a7c888bf6ba1e 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/aboutWindow.cpp b/Fltk/aboutWindow.cpp
index 91d8c9220fca753c9766af2b7b1a93f7e9591375..4b84500cb64df9d7865f29e9c79f1d06e6b14004 100644
--- a/Fltk/aboutWindow.cpp
+++ b/Fltk/aboutWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/aboutWindow.h b/Fltk/aboutWindow.h
index 5fab0f09d86ccaa13baae55f97cf5abe9474508f..b6dacb96e5ceada84d60b5135c13f85f3095ba39 100644
--- a/Fltk/aboutWindow.h
+++ b/Fltk/aboutWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.cpp b/Fltk/classificationEditor.cpp
index f82e68bd07807ae450c3e455064f81d7034f7e03..7c76c9c5059d574dd61bdd0f86a73c680e8c7447 100644
--- a/Fltk/classificationEditor.cpp
+++ b/Fltk/classificationEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.h b/Fltk/classificationEditor.h
index b226b14d720dccd2ae4f5df27230970e17312e6e..c265da22c89e7121d9d051c3c497ee4b819f66e6 100644
--- a/Fltk/classificationEditor.h
+++ b/Fltk/classificationEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.cpp b/Fltk/clippingWindow.cpp
index 3db4f65befaf16827c0679b72b8f5107d43ddf1a..30a5ce7a6d94346e38b8b9c4fcf06f1b77f0993d 100644
--- a/Fltk/clippingWindow.cpp
+++ b/Fltk/clippingWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.h b/Fltk/clippingWindow.h
index 64d7de85a8870fe84073674f68dd288c7894dea3..42658e533f59574153d0a4df3f3ffbbbebb77dcf 100644
--- a/Fltk/clippingWindow.h
+++ b/Fltk/clippingWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.cpp b/Fltk/colorbarWindow.cpp
index 8ddbac08c426e20973d3c158362e51ba1b910fe4..03a3b144c0d596f0598db18ba275f0de723bdaa2 100644
--- a/Fltk/colorbarWindow.cpp
+++ b/Fltk/colorbarWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.h b/Fltk/colorbarWindow.h
index 23e20795791da71a89cfacc51718fd5bab23cc98..a919c550c374b55c8ae98fb31446fd5c722bf307 100644
--- a/Fltk/colorbarWindow.h
+++ b/Fltk/colorbarWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.cpp b/Fltk/contextWindow.cpp
index 645cbf1a53712abc9856c01a0ab7d2b2590adf8f..0098bf423892d69b8adc5d62df9e4cb19bf7b4e3 100644
--- a/Fltk/contextWindow.cpp
+++ b/Fltk/contextWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.h b/Fltk/contextWindow.h
index bbc8cafb79cfaff44a0ea157336764d95654965c..eace16f1097d6518632ae062477c07530dc4f3c9 100644
--- a/Fltk/contextWindow.h
+++ b/Fltk/contextWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.cpp b/Fltk/extraDialogs.cpp
index a3349127ae298e08df87d74f156fb1d4218387c0..dbbb33162320a306061d17fa2575a0caf4c0c572 100644
--- a/Fltk/extraDialogs.cpp
+++ b/Fltk/extraDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.h b/Fltk/extraDialogs.h
index 4035f390dc31c3f291004a9ea1cb0ff20004e711..656e2da1fa0a33c3df0f1c3d929d72b09e5a6275 100644
--- a/Fltk/extraDialogs.h
+++ b/Fltk/extraDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.cpp b/Fltk/fieldWindow.cpp
index 56a37a9ff35c073572bd55ec11bedb5660028b3f..55a7f4fc7977a4c71b915b921d4e961c58bc65a6 100644
--- a/Fltk/fieldWindow.cpp
+++ b/Fltk/fieldWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.h b/Fltk/fieldWindow.h
index 2e67c023e31aa9894a4ecabde4dcc91b4b2766b1..b14fc7d1a044efb03f2977e6084dd552d83676aa 100644
--- a/Fltk/fieldWindow.h
+++ b/Fltk/fieldWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.cpp b/Fltk/fileDialogs.cpp
index bea2ceba0da492a8bbbe04873c84cc4d75404668..7c55b6a6db2b7f8c552e250564a959e700baf7c9 100644
--- a/Fltk/fileDialogs.cpp
+++ b/Fltk/fileDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.h b/Fltk/fileDialogs.h
index a7f6dab3d0b963facc191d4730ffc226062e8c7e..268ba9514671ea4ab92205a2a87fbb5e34d586cd 100644
--- a/Fltk/fileDialogs.h
+++ b/Fltk/fileDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index ea1676199e54e53e81bef9ce8db1a38d271fda66..51235194cb1f94e2b146b13f860e8b1a87a3685c 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -183,9 +183,9 @@ void status_xyz1p_cb(Fl_Widget *w, void *data)
       // reset translation and scaling, or sync translation and
       // scaling with the first window (alt)
       if (CTX::instance()->camera) {
-	ctx->camera.lookAtCg();}
+	ctx->camera.lookAtCg();
+      }
       else{
-
 	if(Fl::event_state(FL_ALT)){
 	  if(i != 0){
 	    drawContext *ctx0 = gls[0]->getDrawContext();
@@ -202,7 +202,6 @@ void status_xyz1p_cb(Fl_Widget *w, void *data)
       }
     }
     else if(!strcmp(str, "reset")){
- 
       if (CTX::instance()->camera) {
 	ctx->camera.init();}
       else{
@@ -583,7 +582,6 @@ graphicWindow::graphicWindow(bool main, int numTiles)
 
   int mode = FL_RGB | FL_DEPTH | (CTX::instance()->db ? FL_DOUBLE : FL_SINGLE);
   if(CTX::instance()->antialiasing) mode |= FL_MULTISAMPLE;
-  //mode |= FL_STEREO;
   if(CTX::instance()->stereo) { 
     mode |= FL_DOUBLE;
     mode |= FL_STEREO;
@@ -619,37 +617,38 @@ void graphicWindow::split(openglWindow *g, char how)
     // let's be brutal :-)
     int mode = g->mode();
     openglWindow::setLastHandled(0);
-    tile->clear();
+    tile->clear(); // this really deletes the child opengl windows
     gl.clear();
     openglWindow *g2 = new openglWindow(0, 0, tile->w(), tile->h());
+    g2->end();
     g2->mode(mode);
+    gl.push_back(g2);
+    tile->add(g2);
+    g2->show();
+  }
+  else{
+    int x1 = g->x();
+    int y1 = g->y();
+    int w1 = (how == 'h') ? g->w() / 2 : g->w();
+    int h1 = (how == 'h') ? g->h() : g->h() / 2;
+    
+    int x2 = (how == 'h') ? (g->x() + w1) : g->x();
+    int y2 = (how == 'h') ? g->y() : (g->y() + h1);
+    int w2 = (how == 'h') ? (g->w() - w1) : g->w();
+    int h2 = (how == 'h') ? g->h() : (g->h() - h1);
+    
+    openglWindow *g2 = new openglWindow(0, 0, w2, h2);
     g2->end();
+    g2->mode(g->mode());
+    
     gl.push_back(g2);
     tile->add(g2);
     g2->show();
-    return;
+    
+    g->resize(x1, y1, w1, h1);
+    g2->resize(x2, y2, w2, h2);
   }
-
-  int x1 = g->x();
-  int y1 = g->y();
-  int w1 = (how == 'h') ? g->w() / 2 : g->w();
-  int h1 = (how == 'h') ? g->h() : g->h() / 2;
-
-  int x2 = (how == 'h') ? (g->x() + w1) : g->x();
-  int y2 = (how == 'h') ? g->y() : (g->y() + h1);
-  int w2 = (how == 'h') ? (g->w() - w1) : g->w();
-  int h2 = (how == 'h') ? g->h() : (g->h() - h1);
-
-  openglWindow *g2 = new openglWindow(0, 0, w2, h2);
-  g2->mode(g->mode());
-  g2->end();
-
-  gl.push_back(g2);
-  tile->add(g2);
-  g2->show();
-
-  g->resize(x1, y1, w1, h1);
-  g2->resize(x2, y2, w2, h2);
+  drawContext::global()->draw();
 }
 
 void graphicWindow::setAnimButtons(int mode)
diff --git a/Fltk/graphicWindow.h b/Fltk/graphicWindow.h
index d33865caa0f044eb8a02b2ac064304210e9287e9..ab53da0d1c7459f41e9a886d3e6011e2b64aec1b 100644
--- a/Fltk/graphicWindow.h
+++ b/Fltk/graphicWindow.h
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/mainWindow.h b/Fltk/mainWindow.h
index d9aa044642e1410e1c2c40e694c5d853bd68ab6b..9293db77cc0f0a7736cbdaeefc103664e5dfce9c 100644
--- a/Fltk/mainWindow.h
+++ b/Fltk/mainWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.cpp b/Fltk/manipWindow.cpp
index 44fb123ee42d5140cc2f6146d56a5f1a5d37973f..fa19ae24f2fd3d630b8114e1d1afc0feb4a1869f 100644
--- a/Fltk/manipWindow.cpp
+++ b/Fltk/manipWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.h b/Fltk/manipWindow.h
index 1a5a14063282d1a43b052c69e4694ffc860e4d76..b6fccc5a01b84bcff344e61c07927566cd68e5b7 100644
--- a/Fltk/manipWindow.h
+++ b/Fltk/manipWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp
index 650b413c7715d5a344365f63d8f5c518fb24e1ee..20e5394d1112bdc55930c8d66450f4bea3d4644d 100644
--- a/Fltk/menuWindow.cpp
+++ b/Fltk/menuWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -99,9 +99,6 @@ static const char *input_formats =
   "All Files" TT "*" NN
   SEPARATOR_IN
   "Gmsh Geometry" TT "*.geo" NN
-#if defined(HAVE_LUA)
-  "Gmsh LUA Script" TT "*.lua" NN
-#endif
   "Gmsh Mesh" TT "*.msh" NN
   "Gmsh Post-processing View" TT "*.pos" NN
 #if defined(HAVE_ACIS) || defined(HAVE_OCC)
@@ -637,7 +634,7 @@ static void help_online_cb(Fl_Widget *w, void *data)
   SystemCall(ReplaceSubString("%s", "http://geuz.org/gmsh/doc/texinfo/", prog));
 }
 
-static void help_about_cb(Fl_Widget *w, void *data)
+void help_about_cb(Fl_Widget *w, void *data)
 {
   FlGui::instance()->about->win->show();
 }
@@ -2437,8 +2434,12 @@ static Fl_Menu_Item sysbar_table[] = {
     {"Mouse Actions",        0, (Fl_Callback *)help_mouse_cb, 0},
     {"Keyboard Shortcuts",   0, (Fl_Callback *)help_short_cb, 0},
     {"Command Line Options", 0, (Fl_Callback *)help_command_line_cb, 0},
+#if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
+    {"Current Options",      0, (Fl_Callback *)status_options_cb, (void*)"?"},
+#else
     {"Current Options",      0, (Fl_Callback *)status_options_cb, (void*)"?", FL_MENU_DIVIDER},
     {"About Gmsh",           0, (Fl_Callback *)help_about_cb, 0},
+#endif
     {0},
   {0}
 };
diff --git a/Fltk/menuWindow.h b/Fltk/menuWindow.h
index 14b6ab8277219c574109fa717cd47c8013208390..94d982c7f4dfde0f51e81aa3b2c09247105af3de 100644
--- a/Fltk/menuWindow.h
+++ b/Fltk/menuWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -91,5 +91,6 @@ void geometry_reload_cb(Fl_Widget *w, void *data);
 void mesh_1d_cb(Fl_Widget *w, void *data);
 void mesh_2d_cb(Fl_Widget *w, void *data);
 void mesh_3d_cb(Fl_Widget *w, void *data);
+void help_about_cb(Fl_Widget *w, void *data);
 
 #endif
diff --git a/Fltk/messageWindow.cpp b/Fltk/messageWindow.cpp
index ead6327d57a94146d55106e9877774d9da3d1b17..baab79180f16d9f5aed02a5a563fd6709caf6175 100644
--- a/Fltk/messageWindow.cpp
+++ b/Fltk/messageWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/messageWindow.h b/Fltk/messageWindow.h
index a0ded889c7763df89361e8142ea95d7a4145d134..1b20311efb77aa4cea4ea0dd0aa935d62b40ed11 100644
--- a/Fltk/messageWindow.h
+++ b/Fltk/messageWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/openglWindow.cpp b/Fltk/openglWindow.cpp
index a2140903ef8c72177dcc54956d06ced18a980ef1..39096247cd93614ccfad1765005ab9cd68fe9aef 100644
--- a/Fltk/openglWindow.cpp
+++ b/Fltk/openglWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -52,7 +52,7 @@ openglWindow::openglWindow(int x, int y, int w, int h, const char *l)
 
 openglWindow::~openglWindow()
 { 
-  delete _ctx; 
+  delete _ctx;
 }
 
 void openglWindow::_drawScreenMessage()
diff --git a/Fltk/openglWindow.h b/Fltk/openglWindow.h
index 7c6bc0c74bbd8fb7627f4a3b6621a810ef26eaf1..c2860f4be37489f6fa954fb54d1ce5e5460a3b9d 100644
--- a/Fltk/openglWindow.h
+++ b/Fltk/openglWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp
index 59ef8b1152f22a5174828cfee717ecb9b169acc2..22a515beea6ea40987ae449daa9647036ffcb2e9 100644
--- a/Fltk/optionWindow.cpp
+++ b/Fltk/optionWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.h b/Fltk/optionWindow.h
index a321aab0de405f7a5f8800ee7ee7f8d646e02bf5..ddf67bde7e75d3bb799c74c93c7bdf61adeeb5e5 100644
--- a/Fltk/optionWindow.h
+++ b/Fltk/optionWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/paletteWindow.h b/Fltk/paletteWindow.h
index d214a05640540692fca6bf5362a542b0b52b2af9..4493529a9c72aa0e1e26429e5073ced13da07f31 100644
--- a/Fltk/paletteWindow.h
+++ b/Fltk/paletteWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.cpp b/Fltk/partitionDialog.cpp
index 1e2464bea5cb77f45c003552d49fe81cc8b539eb..ee36a40fb6cf292b8a5d06c97c51e510219babb4 100644
--- a/Fltk/partitionDialog.cpp
+++ b/Fltk/partitionDialog.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.h b/Fltk/partitionDialog.h
index 4850606d08215ceb865e52306dded9df4e2e09ad..16df3a7a68fa0c5cc401c81be58a2b5a48c55e5d 100644
--- a/Fltk/partitionDialog.h
+++ b/Fltk/partitionDialog.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.cpp b/Fltk/pluginWindow.cpp
index 8a3e64eb8c39cb952e03cc19a44dd9ed3ab46c7d..9e53915ed149740b7350d04c5fe155f812276edb 100644
--- a/Fltk/pluginWindow.cpp
+++ b/Fltk/pluginWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.h b/Fltk/pluginWindow.h
index 2ef0958b9a51ccbb923cc54ed7da87d1c3827557..81378b0d1c39c4bd0f3c26cc63036ef385a328db 100644
--- a/Fltk/pluginWindow.h
+++ b/Fltk/pluginWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/popupButton.h b/Fltk/popupButton.h
index 5dba70cd10544a1dda6915e79ee207b7f92dee42..d0b642a7a713266fe152f8253e4a4f6874dd581f 100644
--- a/Fltk/popupButton.h
+++ b/Fltk/popupButton.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.cpp b/Fltk/projectionEditor.cpp
index 13550fe04aad5a7e5b4f755f42b0378d9a9392d7..4c9f13e77d79579167b8c768491eb92716d06dcd 100644
--- a/Fltk/projectionEditor.cpp
+++ b/Fltk/projectionEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.h b/Fltk/projectionEditor.h
index 11b6336ba096073c28ee97ab12152574819ef38f..8b97d03e47a312e48178a1562590f334ea3fa076 100644
--- a/Fltk/projectionEditor.h
+++ b/Fltk/projectionEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.cpp b/Fltk/solverWindow.cpp
index 028129c4f3c1e723f6da804593812d7bd1c65955..4d21b22fefbc2ea4afd3ee3fb4ba2fdaf75fa607 100644
--- a/Fltk/solverWindow.cpp
+++ b/Fltk/solverWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.h b/Fltk/solverWindow.h
index 31a3b279c1e6e8b59a43a366ebeb24355d015964..f3c71be01f8f7b5c4b2ba675ed75ce0f1d2b3fd8 100644
--- a/Fltk/solverWindow.h
+++ b/Fltk/solverWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/spherePositionWidget.h b/Fltk/spherePositionWidget.h
index 75a8cbf8f802f41f35eca9f116bd568be336b081..094d40fb2128cb594dc4f89b40b7b49402ba4a9b 100644
--- a/Fltk/spherePositionWidget.h
+++ b/Fltk/spherePositionWidget.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.cpp b/Fltk/statisticsWindow.cpp
index 5a431cc4e047189f1ed86be5686a0a748b021f10..f17285986bb0cf8eae49d343b9ef477cb83facfb 100644
--- a/Fltk/statisticsWindow.cpp
+++ b/Fltk/statisticsWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.h b/Fltk/statisticsWindow.h
index 59696a43baf8c5dbe3ba7ead757c1ce00d34b831..824a0d782da61b92ff00c0b6eb20af5e5fe80d50 100644
--- a/Fltk/statisticsWindow.h
+++ b/Fltk/statisticsWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.cpp b/Fltk/visibilityWindow.cpp
index 8302dcd7fc522e92f1808c8b44ef3aa86e556710..4f86ebac5c8589a2ea18e080b7b14e5d08bd5746 100644
--- a/Fltk/visibilityWindow.cpp
+++ b/Fltk/visibilityWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.h b/Fltk/visibilityWindow.h
index 6ec5a7c6d41e7b2aacbf71866692e4a0da24520a..1b294be9dc4f569c8fe63d27078af9cdec731dd1 100644
--- a/Fltk/visibilityWindow.h
+++ b/Fltk/visibilityWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISEdge.cpp b/Geo/ACISEdge.cpp
index a02792cc963692a1aa3c57aeb0ee938f6a79a97e..f9bf010439d8b545edceaa0a1d4e71914a4b2e14 100644
--- a/Geo/ACISEdge.cpp
+++ b/Geo/ACISEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISEdge.h b/Geo/ACISEdge.h
index ed06a5683a5e8f2690068e83c5b7dbdc55d13113..9a102fd03e012cd873e5dd10aee979f88de09c58 100644
--- a/Geo/ACISEdge.h
+++ b/Geo/ACISEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISFace.cpp b/Geo/ACISFace.cpp
index d5a5b5b67d63d071597abd6cf1d1015037a50890..09d4b6ef817c8592c78e7c9ca414b29b4d560625 100644
--- a/Geo/ACISFace.cpp
+++ b/Geo/ACISFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISFace.h b/Geo/ACISFace.h
index fa834b4106f46f52428b51c1e64fff01d462d88c..a6e59e2ac8fe6e70492d79b40a6f2d4bb0d700cb 100644
--- a/Geo/ACISFace.h
+++ b/Geo/ACISFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISVertex.cpp b/Geo/ACISVertex.cpp
index 3c902d13ca11d5f5d9f10080004180925b8294ed..4d1732745b3f57aa8f626677295aaedce6d23871 100644
--- a/Geo/ACISVertex.cpp
+++ b/Geo/ACISVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISVertex.h b/Geo/ACISVertex.h
index d242883710244cc7c899d51892097b09b7ed0fc9..b0ca6c7e8b5d0210cbe7327c87a7ec8a0ce45a4a 100644
--- a/Geo/ACISVertex.h
+++ b/Geo/ACISVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CGNSOptions.h b/Geo/CGNSOptions.h
index a71a740c6d5dc829dcd4cc17b0b529b31ba62cb3..ee6bf182029dddec88b5c99b5205695d8ccf819d 100644
--- a/Geo/CGNSOptions.h
+++ b/Geo/CGNSOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CMakeLists.txt b/Geo/CMakeLists.txt
index 044b4fd80cc92eff6a259e2d70387d67b70a6204..ac5d5e25af266c28ce9a02d70005f263db56e1ca 100644
--- a/Geo/CMakeLists.txt
+++ b/Geo/CMakeLists.txt
@@ -1,11 +1,11 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
 
 set(SRC
   GEntity.cpp STensor3.cpp
-    GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp GPoint.cpp
+    GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp
     GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp GRegionCompound.cpp
     gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp gmshSurface.cpp
     OCCVertex.cpp OCCEdge.cpp OCCFace.cpp OCCRegion.cpp
diff --git a/Geo/Cell.cpp b/Geo/Cell.cpp
index f9b67aeef00f9e13cb2246b34d102e14d698ac32..012b6ea9a88a227d208f9af3984723360da66aba 100755
--- a/Geo/Cell.cpp
+++ b/Geo/Cell.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Cell.h b/Geo/Cell.h
index 07126932bbe17424128f2fe18e75446a1afff5d9..b4d70205a16214a6de36c95145256936dd3e1632 100644
--- a/Geo/Cell.h
+++ b/Geo/Cell.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CellComplex.cpp b/Geo/CellComplex.cpp
index 9d6cc52047b2eeb643d78c142a159a8fe55a455a..9d34cf5539f095a7eea3836bd24d09254ccc6242 100644
--- a/Geo/CellComplex.cpp
+++ b/Geo/CellComplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CellComplex.h b/Geo/CellComplex.h
index 62340e621075ca1f1220ec247b56dff4e187f7ad..07c9180612bc9c1557119429fc4f3f32a9662b72 100644
--- a/Geo/CellComplex.h
+++ b/Geo/CellComplex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ChainComplex.cpp b/Geo/ChainComplex.cpp
index 7405b11d8657dec1e3c240bcd1f41182ab4fbccc..10f87d86d6bcae6027e2ff63649f8d03ded50b04 100644
--- a/Geo/ChainComplex.cpp
+++ b/Geo/ChainComplex.cpp
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ChainComplex.h b/Geo/ChainComplex.h
index 7092e3b11ff8ecf12ef88c6ecc381efc22924176..40489a540e92256f28a59dd6bf907ac8a249a3e6 100644
--- a/Geo/ChainComplex.h
+++ b/Geo/ChainComplex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CustomContainer.h b/Geo/CustomContainer.h
index 5fd517d4a05c35699fbd5510cb56e56860831a7a..7095e016d6b0ba03447a0aac919eaba959ab284a 100644
--- a/Geo/CustomContainer.h
+++ b/Geo/CustomContainer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp
index 1d1fcc1bbdf0bfe5efb86a3653e0b11c020a8305..42c55d2eef3bfea06e8db4ce49f021e2922c6167 100644
--- a/Geo/ExtrudeParams.cpp
+++ b/Geo/ExtrudeParams.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h
index e442907d5fbaedb74543adca638c374d5b60e32c..3dca383213220177249d6894750e166a1f426a15 100644
--- a/Geo/ExtrudeParams.h
+++ b/Geo/ExtrudeParams.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index e0e88d0b9e524f48d659fe4f95ae35ef49e645f9..adf7d5431cc4e9f473641d139d069b3c27aebe84 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,6 @@
 #include "MLine.h"
 #include "GaussLegendre1D.h"
 #include "Context.h"
-#include "Bindings.h"
 
 GEdge::GEdge(GModel *model, int tag, GVertex *_v0, GVertex *_v1)
   : GEntity(model, tag), _tooSmall(false), v0(_v0), v1(_v1), compound(0)
@@ -92,10 +91,6 @@ void GEdge::addFace(GFace *e)
   l_faces.push_back(e);
 }
 
-void GEdge::addLine (MLine *line){
-  lines.push_back(line);
-}
-
 void GEdge::delFace(GFace *e)
 {
   l_faces.erase(std::find(l_faces.begin(), l_faces.end(), e));
@@ -378,29 +373,3 @@ void GEdge::replaceEndingPoints (GVertex *replOfv0, GVertex *replOfv1)
   }  
 }
 
-void GEdge::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GEdge>("GEdge");
-  cb->setDescription("A GEdge is a geometrical 1D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *mb = cb->addMethod("getBeginVertex", &GEdge::getBeginVertex);
-  mb->setDescription("get the begin-vertex of the edge");
-  mb = cb->addMethod("getEndVertex", &GEdge::getEndVertex);
-  mb->setDescription("get the end-vertex of the edge");
-  mb = cb->addMethod("addLine", &GEdge::addLine);
-  mb->setDescription("insert a line mesh element");
-  mb->setArgNames("line", NULL);
-
-  mb = cb->addMethod("getLowBound", &GEdge::getLowBound);
-  mb->setDescription("get the lower bound of the parametrization of the Edge");
-  mb = cb->addMethod("getHighBound", &GEdge::getHighBound);
-  mb->setDescription("get the lower bound of the parametrization of the Edge");
-
-  mb = cb->addMethod("getMeshElement", &GEdge::getMeshElement);
-  mb->setDescription("get the mesh element with the given index");
-  mb->setArgNames("index", NULL);
-
-  //mb = cb->addMethod("point", &GEdge::point);
-  //mb->setDescription("returns the GPoint for a given double parameter");
-  //mb->setArgNames("double", NULL);
-}
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 613a2fc982d947d755443fae26103cb5e2365553..0175dccefb9ca35116f5fc5d87c891054d299ce1 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -206,9 +206,7 @@ class GEdge : public GEntity {
   
   std::vector<MLine*> lines;
 
-  void addLine(MLine *line);
-
-  static void registerBindings(binding *b);
+  void addLine(MLine *line){ lines.push_back(line); }
 };
 
 #endif
diff --git a/Geo/GEdgeCompound.cpp b/Geo/GEdgeCompound.cpp
index be9bae260380d7db0b523eb01cc59bafae9359fa..c9ae6aebc6090f1805e79dd5dca0a334c528e1ba 100644
--- a/Geo/GEdgeCompound.cpp
+++ b/Geo/GEdgeCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeCompound.h b/Geo/GEdgeCompound.h
index 7c890115337cb5450cfcd671740a3c4e86f99171..2862238896f01278318d4b05325e7a4b98a4805c 100644
--- a/Geo/GEdgeCompound.h
+++ b/Geo/GEdgeCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.cpp b/Geo/GEdgeLoop.cpp
index 096ecef238410b86bfe9ab28ac798f6afa500a82..45ef1471887f6542eb33d4cddb13015531ec55c3 100644
--- a/Geo/GEdgeLoop.cpp
+++ b/Geo/GEdgeLoop.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.h b/Geo/GEdgeLoop.h
index bc287006f83e5b56a9042dd391eacd469bb519e4..591c23c09d38589b39f04e08545fb9f5aa6a4685 100644
--- a/Geo/GEdgeLoop.h
+++ b/Geo/GEdgeLoop.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEntity.cpp b/Geo/GEntity.cpp
index 6a3258f54c2da6e729bfb9e3129e96be6faee8db..991ff4c86f3ae39dc94aaebdf1dc928b411e4c04 100644
--- a/Geo/GEntity.cpp
+++ b/Geo/GEntity.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -9,7 +9,6 @@
 #include "MElement.h"
 #include "VertexArray.h"
 #include "Context.h"
-#include "Bindings.h"
 #include "GVertex.h"
 #include "GEdge.h"
 #include "GFace.h"
@@ -70,45 +69,3 @@ GEdge *GEntity::cast2Edge() { return dynamic_cast<GEdge*>(this); }
 GFace *GEntity::cast2Face() { return dynamic_cast<GFace*>(this); }
 GRegion *GEntity::cast2Region() { return dynamic_cast<GRegion*>(this); }
 
-void GEntity::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GEntity>("GEntity");
-  cb->setDescription("A GEntity is a geometrical entity of the model.");
-  methodBinding *mb;
-  mb = cb->addMethod("getNumMeshElements",
-                     (unsigned int (GEntity::*)())&GEntity::getNumMeshElements);
-  mb->setDescription("return the number of mesh elements in this entity");
-  mb = cb->addMethod("getMeshElement",&GEntity::getMeshElement);
-  mb->setDescription("get the mesh element at the given index");
-  mb->setArgNames("index",NULL);
-  mb = cb->addMethod("getNumMeshVertices",
-                     (unsigned int (GEntity::*)())&GEntity::getNumMeshVertices);
-  mb->setDescription("return the number of mesh vertices in this entity");
-  mb = cb->addMethod("getMeshVertex",&GEntity::getMeshVertex);
-  mb->setDescription("get the mesh vertex at the given index");
-  mb->setArgNames("index",NULL);
-  mb = cb->addMethod("addMeshVertex",&GEntity::addMeshVertex);
-  mb->setDescription("insert a new mesh vertex");
-  mb->setArgNames("vertex",NULL);
-  mb = cb->addMethod("model", &GEntity::model);
-  mb->setDescription("returns the geometric model the entity belongs to.");
-  mb = cb->addMethod("cast2Vertex", &GEntity::cast2Vertex);
-  mb->setDescription("do a dynamic cast of the GEntity to a GVertex (0 if wrong cast).");
-  mb = cb->addMethod("cast2Edge", &GEntity::cast2Edge);
-  mb->setDescription("do a dynamic cast of the GEntity to a GEdge (0 if wrong cast).");
-  mb = cb->addMethod("cast2Face", &GEntity::cast2Face);
-  mb->setDescription("do a dynamic cast of the GEntity to a GFace (0 if wrong cast).");
-  mb = cb->addMethod("cast2Region", &GEntity::cast2Region);
-  mb->setDescription("do a dynamic cast of the GEntity to a GRegion (0 if wrong cast).");
-  mb = cb->addMethod("tag", &GEntity::tag);
-  mb->setDescription("return the tag of this entity.");
-  mb = cb->addMethod("getPhysicalEntities", &GEntity::getPhysicalEntities);
-  mb->setDescription("return a vector of all physical entities that this entity belongs to.");
-  mb = cb->addMethod("addPhysicalEntity", &GEntity::addPhysicalEntity);
-  mb->setArgNames("physicalGroupId",NULL);
-  mb->setDescription("add this element to a physical group.");
-
-}
-
-
-
diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index 668ee76d4d7d7feb0240370443864c0d84a5fe0b..9f30f257bdd3528f8aac0eeb8012be17c6b9d1f0 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -22,7 +22,6 @@ class GRegion;
 class MVertex;
 class MElement;
 class VertexArray;
-class binding;
 
 // A geometric model entity.
 class GEntity {
@@ -296,9 +295,6 @@ class GEntity {
   GEdge   *cast2Edge();
   GFace   *cast2Face();
   GRegion *cast2Region();
-
-  // bindings
-  static void registerBindings(binding *b);
 };
 
 class GEntityLessThan {
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 09905244b9758979b6d4bbf36f33aa91781d94d1..65841628a6c3eac9b63465ac8acdbc81f2b0a0cd 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -18,7 +18,6 @@
 #include "GaussLegendre1D.h"
 #include "Context.h"
 #include "meshGFaceLloyd.h"
-#include "Bindings.h"
 #include "meshGFaceOptimize.h"
 
 #define SQU(a)      ((a)*(a))
@@ -1259,7 +1258,7 @@ void GFace::addLayersOfQuads(int nLayers, GVertex *gv, double hmin, double ratio
 	  double u = p1.x() + n.x() * hmin;
 	  double v = p1.y() + n.y() * hmin;
 	  GPoint gp = point(SPoint2(u,v));
-	  _additional_vertices.push_back(new MFaceVertex(gp.x(),gp.y(),gp.z(),this,u,v));
+	  additionalVertices.push_back(new MFaceVertex(gp.x(),gp.y(),gp.z(),this,u,v));
 	  fprintf(f,"SP(%g, %g, 0){1};\n",gp.x(),gp.y());
 	}
 	hlayer *= ratio;
@@ -1270,31 +1269,3 @@ void GFace::addLayersOfQuads(int nLayers, GVertex *gv, double hmin, double ratio
     }
   }  
 }
-
-
-#include "Bindings.h"
-
-void GFace::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GFace>("GFace");
-  cb->setParentClass<GEntity>();
-  cb->setDescription("A GFace is a geometrical 2D entity");
-  methodBinding *mb;
-  mb = cb->addMethod("lloyd", &GFace::lloyd);
-  mb->setDescription("do N iteration of Lloyd's algorithm using or not the infinite norm");
-  mb->setArgNames("N","infiniteNorm",NULL);
-  mb = cb->addMethod("addTriangle", &GFace::addTriangle);
-  mb->setDescription("insert a triangle mesh element");
-  mb->setArgNames("triangle", NULL);
-  mb = cb->addMethod("addQuadrangle", &GFace::addQuadrangle);
-  mb->setDescription("insert a quadrangle mesh element");
-  mb->setArgNames("quadrangle", NULL);
-  mb = cb->addMethod("edges", &GFace::edges);
-  mb->setDescription("return the list of edges bounding this surface");
-  mb = cb->addMethod("addLayersOfQuads", &GFace::addLayersOfQuads);
-  mb->setDescription("insert layers of quads");
-  mb->setArgNames("nLayers","startingVertex", "hmin", "ratio", NULL);
-/*  mb = cb->addMethod("addPolygon", &GFace::addPolygon);
-  mb->setDescription("insert a polygon mesh element");
-  mb->setArgNames("polygon", NULL);*/
-}
diff --git a/Geo/GFace.h b/Geo/GFace.h
index 5ff9dff192175a1327a69c540b46007b8a72420b..d2e689566241f02859ad6026088e4616518b9f01 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -59,6 +59,16 @@ class GFace : public GEntity
  public: // this will become protected or private
   std::list<GEdgeLoop> edgeLoops;
 
+  // periodic counterparts of edges
+  std::map<int,int> edgeCounterparts;
+
+  // an array with additional vertices that are supposed to exist in
+  // the final mesh of the model face. This can be used for boundary
+  // layer meshes or when using Lloyd-like smoothing algorithms those
+  // vertices are classifed on this GFace, their type is MFaceVertex.
+  // After mesh generation, those are moved to the mesh_vertices array
+  std::vector<MVertex*> additionalVertices;
+
  public:
   GFace(GModel *model, int tag);
   virtual ~GFace();
@@ -250,6 +260,15 @@ class GFace : public GEntity
   // apply Lloyd's algorithm to the mesh
   void lloyd (int nIter, int infNorm = 0); 
 
+  // replace edges (gor gluing)
+  void replaceEdges(std::list<GEdge*> &);
+  
+  // tells if it's a sphere, and if it is, returns parameters
+  virtual bool isSphere (double &radius, SPoint3 &center) const {return false;}
+
+  // add layers of quads
+  void addLayersOfQuads (int nLayers, GVertex *start, double hmin, double factor);
+  
   struct {
     // do we recombine the triangles of the mesh?
     int recombine;
@@ -301,28 +320,6 @@ class GFace : public GEntity
   void addTriangle(MTriangle *t){ triangles.push_back(t); }
   void addQuadrangle(MQuadrangle *q){ quadrangles.push_back(q); }
   void addPolygon(MPolygon *p){ polygons.push_back(p); }
-
-  // an array with additional vertices that are supposed to exist
-  // in the final mesh of the model face. This can be used for 
-  // boundary layer meshes or when using Lloyd-like smoothing algorithms
-  // those vertices are classifed on this GFace, their type is MFaceVertex.
-  // After mesh generation, those are moved to the mesh_vertices array 
-  std::vector<MVertex*> _additional_vertices;
-
-  // replace edges (gor gluing)
-  void replaceEdges(std::list<GEdge*> &);
-  
-  static void registerBindings(binding *b);
-
-  // periodic counterparts of edges
-  std::map<int,int> edgeCounterparts;
-
-  // tells if it's a sphere, and if it is, returns parameters
-  virtual bool isSphere (double &radius, SPoint3 &center) const {return false;}
-
-  // add layers of quads
-  void addLayersOfQuads (int nLayers, GVertex *start, double hmin, double factor);
-  
 };
 
 #endif
diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index a142f33f5934cb5fd542e9ce02fd7b083985eef6..6adeb7e1ef59ed99a414e13526c43e6685d72bcd 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h
index 2613de7a4d31e39768a715208d40585a3218a979..02f4df6a934244f2dfed1092a562edd7f5f623c9 100644
--- a/Geo/GFaceCompound.h
+++ b/Geo/GFaceCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 150f413f5137e9e7e65d032ef5c6c4c7278efb6f..820c2475d88069a745025e1f471c1de2f812f401 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -195,26 +195,6 @@ bool GModel::empty() const
   return vertices.empty() && edges.empty() && faces.empty() && regions.empty();
 }
 
-std::vector<GRegion*> GModel::bindingsGetRegions()
-{
-  return std::vector<GRegion*> (regions.begin(), regions.end());
-}
-
-std::vector<GFace*> GModel::bindingsGetFaces()
-{
-  return std::vector<GFace*> (faces.begin(), faces.end());
-}
-
-std::vector<GEdge*> GModel::bindingsGetEdges()
-{
-  return std::vector<GEdge*> (edges.begin(), edges.end());
-}
-
-std::vector<GVertex*> GModel::bindingsGetVertices()
-{
-  return std::vector<GVertex*> (vertices.begin(), vertices.end());
-}
-
 GRegion *GModel::getRegionByTag(int n) const
 {
   GEntity tmp((GModel*)this, n);
@@ -2161,11 +2141,6 @@ void GModel::glue(double eps)
   }    
 }
 
-void GModel::insertRegion(GRegion *r)
-{
-  regions.insert(r);
-}
-
 GEdge *getNewModelEdge(GFace *gf1, GFace *gf2, 
                        std::map<std::pair<int, int>, GEdge*> &newEdges)
 {
@@ -2499,183 +2474,3 @@ void GModel::createPartitionBoundaries(int createGhostCells)
   CreatePartitionBoundaries(this, createGhostCells);
 #endif
 }
-
-#include "Bindings.h"
-
-void GModel::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GModel>("GModel");
-  cb->setDescription("A GModel contains a geometry and its mesh.");
-
-  methodBinding *cm;
-  cm = cb->addMethod("mesh", &GModel::mesh);
-  cm->setArgNames("dim", NULL);
-  cm->setDescription("Generate a mesh of this model in dimension 'dim'.");
-  cm = cb->addMethod("setOrderN", &GModel::setOrderN);
-  cm->setArgNames("order", "linear", "incomplete", NULL);
-  cm->setDescription(" make the mesh a high order mesh at order N\n linear is 1 if the high order points are not placed on the geometry of the model\n incomplete is 1 if incomplete basis are used.");
-  cm = cb->addMethod("load", &GModel::load);
-  cm->setDescription("Merge the file 'filename' in this model, the file can be "
-                     "in any format (guessed from the extension) known by gmsh.");
-  cm->setArgNames("filename", NULL);
-  cm = cb->addMethod("setFactory", &GModel::setFactory);
-  cm->setDescription("Set the GModel factory: choose between 'Gmsh' or 'OpenCASCADE'.");
-  cm->setArgNames("name", NULL);
-  cm = cb->addMethod("save", &GModel::save);
-  cm->setDescription("Save this model in the file 'filename'. The content of the "
-                     "file depends on the format (guessed from the extension).");
-  cm->setArgNames("filename", NULL);
-  cm = cb->addMethod("getNumMeshElements", (int (GModel::*)())&GModel::getNumMeshElements);
-  cm->setDescription("return the number of mesh elemnts in the model");
-  cm = cb->addMethod("getMeshElementByTag", &GModel::getMeshElementByTag);
-  cm->setArgNames("tag", NULL);
-  cm->setDescription("access a mesh element by tag, using the element cache");
-  cm = cb->addMethod("getNumMeshVertices", &GModel::getNumMeshVertices);
-  cm->setDescription("return the total number of vertices in the mesh");
-  cm = cb->addMethod("getMeshVertexByTag", &GModel::getMeshVertexByTag);
-  cm->setDescription("access a mesh vertex by tag, using the vertex cache");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getNumRegions", &GModel::getNumRegions);
-  cm->setDescription("return the number of regions (3D geometrical entities)");
-  cm = cb->addMethod("getNumFaces", &GModel::getNumFaces);
-  cm->setDescription("return the number of faces (2D geometrical entities)");
-  cm = cb->addMethod("getNumEdges", &GModel::getNumEdges);
-  cm->setDescription("return the number of edges (1D geometrical entities)");
-  cm = cb->addMethod("getNumVertices", &GModel::getNumVertices);
-  cm->setDescription("return the number of vertices (0D geometrical entities)");
-  cm = cb->addMethod("getFaceByTag", &GModel::getFaceByTag);
-  cm->setDescription("access a geometrical face by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getEdgeByTag", &GModel::getEdgeByTag);
-  cm->setDescription("access a geometrical edge by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getVertexByTag", &GModel::getVertexByTag);
-  cm->setDescription("access a geometrical vertex by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getRegionByTag", &GModel::getRegionByTag);
-  cm->setDescription("access a geometrical region by tag");
-  cm->setArgNames("tag", NULL);
-
-  cm = cb->addMethod("insertRegion", &GModel::insertRegion);
-  cm->setDescription("insert an existing region to the model list");
-  cm->setArgNames("region", NULL);
-  cm = cb->addMethod("getRegions", &GModel::bindingsGetRegions);
-  cm->setDescription("return a vector of the regions");
-  cm = cb->addMethod("getFaces", &GModel::bindingsGetFaces);
-  cm->setDescription("return a vector of the faces");
-  cm = cb->addMethod("getEdges", &GModel::bindingsGetEdges);
-  cm->setDescription("return a vector of the edges");
-  cm = cb->addMethod("getVertices", &GModel::bindingsGetVertices);
-  cm->setDescription("return a vector of the vertices");
-
-  cm = cb->addMethod("addVertex", &GModel::addVertex);
-  cm->setDescription("create a new vertex at position (x, y, z), with target "
-                     "mesh size lc");
-  cm->setArgNames("x", "y", "z", "lc", NULL);
-  cm = cb->addMethod("addLine", &GModel::addLine);
-  cm->setDescription("create a straight line going from v1 to v2");
-  cm->setArgNames("v1", "v2", NULL);
-  cm = cb->addMethod("addBezier", &GModel::addBezier);
-  cm->setDescription("create a spline going from v1 to v2 and with some control "
-                     "points listed in a fullMatrix(N,3)");
-  cm->setArgNames("v1", "v2", "controlPoints", NULL);
-  cm = cb->addMethod("addNURBS", &GModel::addNURBS);
-  cm->setDescription("creates a NURBS curve from v1 to v2 with control Points, "
-                     "knots, weights and multiplicities");
-  cm->setArgNames("v1", "v2", "{{poles}}","{knots}","{weights}","{mult}",NULL);
-  cm = cb->addMethod("addFace", &GModel::addFace);
-  cm->setDescription("creates a face that is constraint by edges and points");
-  cm->setArgNames("{list of edges}","{{x,y,z},{x,y,z},...}",NULL);
-  cm = cb->addMethod("addRuledFaces", &GModel::addRuledFaces);
-  cm->setDescription("create ruled faces that contains a list of wires");
-  cm->setArgNames("{{list of edges},{list of edges},...}",NULL);
-  cm = cb->addMethod("addPlanarFace", &GModel::addPlanarFace);
-  cm->setDescription("creates a planar face that contains a list of wires");
-  cm->setArgNames("{{list of edges},{list of edges},...}",NULL);
-  cm = cb->addMethod("addVolume", &GModel::addVolume);
-  cm->setDescription("creates a Volume bounded by a list of faces");
-  cm->setArgNames("{{list of faces},{list of faces},...}",NULL);
-  cm = cb->addMethod("addPipe", &GModel::addPipe);
-  cm->setDescription("creates a pipe with a base and a wire for the direction");
-  cm->setArgNames("ge","{list of edges}",NULL);
-  cm = cb->addMethod("addCircleArcCenter", &GModel::addCircleArcCenter);
-  cm->setDescription("create a circle arc going from v1 to v2 with its center "
-                     "at (x,y,z)");
-  cm->setArgNames("x", "y", "z", "v1", "v2", NULL);
-  cm = cb->addMethod("addCircleArc3Points", &GModel::addCircleArc3Points);
-  cm->setDescription("create a circle arc going from v1 to v2 with an "
-                     "intermediary point Xi(x,y,z)");
-  cm->setArgNames("x", "y", "z", "v1", "v2", NULL);
-  cm = cb->addMethod("revolve", &GModel::revolve);
-  cm->setDescription("revolve an entity of a given angle. Axis is defined by 2 "
-                     "points");
-  cm->setArgNames("entity", "{x1,y1,z1}", "{x2,y2,z2}", "angle", NULL);
-  cm = cb->addMethod("extrude", &GModel::extrude);
-  cm->setDescription("extrudes an entity. Axis is defined by 2 points");
-  cm->setArgNames("entity", "{x1,y1,z1}", "{x2,y2,z2}", NULL);
-  cm = cb->addMethod("addSphere", &GModel::addSphere);
-  cm->setDescription("add a sphere");
-  cm->setArgNames("xc", "yc", "zc", "radius", NULL);
-  cm = cb->addMethod("addBlock", &GModel::addBlock);
-  cm->setDescription("add a block");
-  cm->setArgNames("{x1,y1,z1}", "{x2,y2,z2}", NULL);
-  cm = cb->addMethod("addCone", &GModel::addCone);
-  cm->setDescription("add a cone");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}","R1","R2",NULL);
-  cm = cb->addMethod("addCylinder", &GModel::addCylinder);
-  cm->setDescription("add a cylinder");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}", "R",NULL);
-  cm = cb->addMethod("addTorus", &GModel::addTorus);
-  cm->setDescription("add a torus");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}","R1","R2",NULL);
-  cm = cb->addMethod("computeUnion", &GModel::computeBooleanUnion);
-  cm->setDescription("compute the boolean union of the model with another one "
-                     "(tool). The third parameter tells if a new model has to "
-                     "be created");
-  cm->setArgNames("tool", "createNewGModel",NULL);
-  cm = cb->addMethod("computeIntersection", &GModel::computeBooleanIntersection);
-  cm->setDescription("compute the boolean intersection of the model with another "
-                     "one. The third parameter tells if a new model has to be created");
-  cm->setArgNames("tool","createNewGModel",NULL);
-  cm = cb->addMethod("computeDifference", &GModel::computeBooleanDifference);
-  cm->setDescription("compute the boolean difference of the model with another "
-                     "one (tool). The third parameter tells if a new model has to "
-                     "be created");
-  cm->setArgNames("tool","createNewGModel",NULL);
-  cm = cb->addMethod("glue", &GModel::glue);
-  cm->setDescription("glue the geometric model using geometric tolerance eps");
-  cm->setArgNames("eps",NULL);
-  cm = cb->addMethod("setAsCurrent", &GModel::setAsCurrent);
-  cm->setDescription("set the model as the current (active) one");
-  cm = cb->setConstructor<GModel>();
-  cm->setDescription("Create an empty GModel");
-
-  cm = cb->addMethod("getPhysicalName", &GModel::getPhysicalName);
-  cm->setDescription("get the name of an physical group, identified by its "
-                     "dimension and number. Returns empty string if physical "
-                     "name is not assigned");
-  cm->setArgNames("dim","number",NULL);
-  cm = cb->addMethod("setPhysicalName", &GModel::setPhysicalName);
-  cm->setDescription("set the name of an physical group, identified by its "
-                     "dimension and number. If number=0, the first free number "
-                     "is chosen. Returns the number.");
-  cm->setArgNames("physicalName","dim","number",NULL);
-
-  cm = cb->addMethod("createTopology", &GModel::createTopologyFromMesh);
-  cm->setDescription("build the topology for a given mesh.");
-  cm->setArgNames(NULL);
-
-  cm = cb->addMethod("detectEdges", &GModel::detectEdges);
-  cm->setDescription(" use an angle threshold to tag edges.");
-  cm->setArgNames("angle",NULL);
-
-  cm = cb->addMethod("createPartitionBoundaries", &GModel::createPartitionBoundaries);
-  cm->setDescription("Assigns partition tags to boundary elements. Should be called "
-                     "only after the partitions have been assigned");
-  cm->setArgNames("createGhostCells",NULL);
-
-
-  cm = cb->addMethod("scaleMesh", &GModel::scaleMesh);
-  cm->setDescription("scale the mesh by a factor");
-  cm->setArgNames("factor",NULL);
-}
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 4595ab2ff5a3d4a6db8d5bf4ec7e02e246294bfd..177b92658978b0822c385125569bac01b6547207 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -28,7 +28,6 @@ class CGNSOptions;
 class gLevelset;
 class discreteFace;
 class discreteRegion;
-class binding;
 class MElementOctree;
 class GModelFactory;
 
@@ -118,9 +117,6 @@ class GModel
   std::set<GEdge*, GEntityLessThan> edges;
   std::set<GVertex*, GEntityLessThan> vertices;
 
-  // for bindings
-  void insertRegion(GRegion*);
-
   // map between the pair <dimension, elementary or physical number>
   // and an optional associated name
   std::map<std::pair<int, int>, std::string> physicalNames, elementaryNames;
@@ -209,12 +205,6 @@ class GModel
   GEdge *getEdgeByTag(int n) const;
   GVertex *getVertexByTag(int n) const;
   
-  // for lua bindings, temporary solution while iterator are not binded
-  std::vector<GRegion*> bindingsGetRegions();
-  std::vector<GFace*> bindingsGetFaces();
-  std::vector<GEdge*> bindingsGetEdges();
-  std::vector<GVertex*> bindingsGetVertices();
-
   // add/remove an entity in the model
   void add(GRegion *r) { regions.insert(r); }
   void add(GFace *f) { faces.insert(f); }
@@ -382,8 +372,7 @@ class GModel
   // glue entities in the model (assume a tolerance eps and merge
   // vertices that are too close, then merge edges, faces and
   // regions). Warning: the gluer changes the geometric model, so that
-  // some pointers could become invalid. FIXME: using references to
-  // some tables of pointers for bindings e.g. could be better.
+  // some pointers could become invalid.
   void glue(double eps);
 
   // change the entity creation factory
@@ -420,9 +409,9 @@ class GModel
                    double radius2);
 
   // boolean operators acting on 2 models
-  GModel *computeBooleanUnion(GModel *tool, int createNewModel);
-  GModel *computeBooleanIntersection(GModel *tool, int createNewModel);
-  GModel *computeBooleanDifference(GModel *tool, int createNewModel);
+  GModel *computeBooleanUnion(GModel *tool, int createNewModel=0);
+  GModel *computeBooleanIntersection(GModel *tool, int createNewModel=0);
+  GModel *computeBooleanDifference(GModel *tool, int createNewModel=0);
 
   // build a new GModel by cutting the elements crossed by the levelset ls
   // if cutElem is set to false, split the model without cutting the elements
@@ -457,6 +446,10 @@ class GModel
     _associateEntityWithMeshVertices();
   }
 
+  // "automatic" IO based on Gmsh global functions
+  void load(std::string fileName);
+  void save(std::string fileName);
+
   // Gmsh native CAD format (readGEO is static, since it can create
   // multiple models)
   static int readGEO(const std::string &name);
@@ -566,13 +559,6 @@ class GModel
   
   // CEA triangulation
   int writeMAIL(const std::string &name, bool saveAll, double scalingFactor);
-  
-  int readLUA(const std::string &name);
-
-  void save(std::string fileName);
-  void load(std::string fileName);
-
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Geo/GModelFactory.cpp b/Geo/GModelFactory.cpp
index d7eb3495e84e1e80378d97644192f80bf9fa59c0..ce18e3bb221f256e2c88e72f82ce16470e572d4b 100644
--- a/Geo/GModelFactory.cpp
+++ b/Geo/GModelFactory.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelFactory.h b/Geo/GModelFactory.h
index f79a680f59113acd839dc43058b05c04aa745f87..3688606632634b705b26700dc399ead70b8e1aec 100644
--- a/Geo/GModelFactory.h
+++ b/Geo/GModelFactory.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_ACIS.cpp b/Geo/GModelIO_ACIS.cpp
index 062e0fa9ad3aee1fa8fa2ed19473417cd08c5cb9..cd39c20e4372f73c54e5a437b0e01cf95e666cec 100644
--- a/Geo/GModelIO_ACIS.cpp
+++ b/Geo/GModelIO_ACIS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_CGNS.cpp b/Geo/GModelIO_CGNS.cpp
index 4ed7f00a551ab0e4110c738d1497149885afccbe..c476b4eb8a5c16053ea98af687f0326f90cc77c8 100644
--- a/Geo/GModelIO_CGNS.cpp
+++ b/Geo/GModelIO_CGNS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.cpp b/Geo/GModelIO_Fourier.cpp
index 6f5267db967d12d8b3b0e313329638abfed3a938..2f63b4e1c762ac386a0db9ef2d3e95ee601f198b 100644
--- a/Geo/GModelIO_Fourier.cpp
+++ b/Geo/GModelIO_Fourier.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.h b/Geo/GModelIO_Fourier.h
index b7370da7933ce9f60de7553ce2121f3dbac8adca..664faef5449f7fd86529295d47ad226e22c349c0 100644
--- a/Geo/GModelIO_Fourier.h
+++ b/Geo/GModelIO_Fourier.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index 711371a7bb9a5dd4848383c04bfdb7b66edd9fa2..553fb0df0dcab227396e3910e39e4e67c4d1f463 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp
index 827a7b3df7ec8862f4751f886b8c4d653fe5a4b8..81557aabfc5cccdf8bb6245116956270f264111a 100644
--- a/Geo/GModelIO_MED.cpp
+++ b/Geo/GModelIO_MED.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -76,43 +76,27 @@ int med2mshElementType(med_geometrie_element med)
 int med2mshNodeIndex(med_geometrie_element med, int k)
 {
   switch(med) {
-  case MED_SEG2: return k;
-  case MED_TRIA3: {
-    static const int map[3] = {0, 2, 1}; 
-    return map[k]; 
-  }
-  case MED_QUAD4: { 
-    static const int map[4] = {0, 3, 2, 1};
-    return map[k];
-  }
+  case MED_POINT1: 
+  case MED_SEG2:
+  case MED_SEG3: 
+  case MED_TRIA3:
+  case MED_TRIA6: 
+  case MED_QUAD4:
+  case MED_QUAD8:
+    {
+      // same node numbering as in Gmsh
+      return k;
+    }
   case MED_TETRA4: {
     static const int map[4] = {0, 2, 1, 3};
     return map[k];
   }
-  case MED_HEXA8: {
-    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
-    return map[k];
-  }
-  case MED_PENTA6: {
-    static const int map[6] = {0, 2, 1, 3, 5, 4};
-    return map[k];
-  }
-  case MED_PYRA5: {
-    static const int map[5] = {0, 3, 2, 1, 4};
-    return map[k];
-  }
-  case MED_SEG3: return k;
-  case MED_TRIA6: {
-    static const int map[6] = {0, 2, 1, 5, 4, 3};
-    return map[k];
-  }
   case MED_TETRA10: {
     static const int map[10] = {0, 2, 1, 3, 6, 5, 4, 7, 8, 9};
     return map[k];
   }
-  case MED_POINT1: return k;
-  case MED_QUAD8: {
-    static const int map[8] = {0, 3, 2, 1, 7, 6, 5, 4};
+  case MED_HEXA8: {
+    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
     return map[k];
   }
   case MED_HEXA20: {
@@ -120,10 +104,18 @@ int med2mshNodeIndex(med_geometrie_element med, int k)
                                 10, 19, 9, 18, 17, 15, 12, 14, 13};
     return map[k];
   }
+  case MED_PENTA6: {
+    static const int map[6] = {0, 2, 1, 3, 5, 4};
+    return map[k];
+  }
   case MED_PENTA15: {
     static const int map[15] = {0, 2, 1, 3, 5, 4, 8, 6, 12, 7, 14, 13, 11, 9, 10};
     return map[k];
   }
+  case MED_PYRA5: {
+    static const int map[5] = {0, 3, 2, 1, 4};
+    return map[k];
+  }
   case MED_PYRA13: {
     static const int map[13] = {0, 3, 2, 1, 4, 8, 5, 9, 7, 12, 6, 11, 10};
     return map[k];
@@ -350,9 +342,9 @@ static void fillElementsMED(med_int family, std::vector<T*> &elements,
     return;
   }
   for(unsigned int i = 0; i < elements.size(); i++){
-    //elements[i]->setVolumePositive();
+    elements[i]->setVolumePositive();
     for(int j = 0; j < elements[i]->getNumVertices(); j++)
-      conn.push_back(elements[i]->getVertexMED(j)->getIndex());
+      conn.push_back(elements[i]->getVertex(med2mshNodeIndex(type, j))->getIndex());
     fam.push_back(family);
   }
 }
diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp
index d92d060f43cc6ce52f7fe47f5863fe0785abcc93..da5b4aadcbaf53bcc6a8150034f51cbf5ee5d1fe 100644
--- a/Geo/GModelIO_Mesh.cpp
+++ b/Geo/GModelIO_Mesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -31,7 +31,6 @@
 #include "MVertexPositionSet.h"
 #include "Context.h"
 #include "OS.h"
-#include "Bindings.h"
 
 #if defined(HAVE_POST)
 #include "PView.h"
@@ -3331,15 +3330,7 @@ int GModel::readDIFF(const std::string &name)
   fclose(fp);
   return 1;
 }
-int GModel::readLUA(const std::string &name)
-{
-#if defined(HAVE_LUA)
-	int status = binding::instance()->readFile(name.c_str());
-	return status;
-#else
-	return 0;
-#endif
-}
+
 int GModel::writeDIFF(const std::string &name, bool binary, bool saveAll,
                       double scalingFactor)
 {
diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index c304d918edb07066e61df82d03c7470abc0aae8e..a14f35175b0c02b1107dfb841cfb1e52b50df407 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h
index e81946f09e1cec9f9094a45886f87a3ecb39eaef..487d0a061e5a8b70a4ff7b0402db797d6b1a8d87 100644
--- a/Geo/GModelIO_OCC.h
+++ b/Geo/GModelIO_OCC.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelVertexArrays.cpp b/Geo/GModelVertexArrays.cpp
index e4a9e19a77241453560ec9448cb82568c68a9dbc..4d0b58c98d40d0b99273a92f9b32fb0dc931f4c2 100644
--- a/Geo/GModelVertexArrays.cpp
+++ b/Geo/GModelVertexArrays.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GPoint.cpp b/Geo/GPoint.cpp
index 4fa2165af0a63b0e6f1f520ade3b443452a2119a..b9a927dfba4392faa496e0bc471e90aa59149f29 100644
--- a/Geo/GPoint.cpp
+++ b/Geo/GPoint.cpp
@@ -1,21 +1,5 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
-#include "GPoint.h"
-#include "Bindings.h"
-
-void GPoint::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GPoint>("GPoint");
-  cb->setDescription("A GPoint.");
-  methodBinding *cm;
-  cm = cb->addMethod("x", (double (GPoint::*)() const) &GPoint::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (GPoint::*)() const) &GPoint::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (GPoint::*)() const) &GPoint::z);
-  cm->setDescription("Return the z-coordinate.");
-
-}
diff --git a/Geo/GPoint.h b/Geo/GPoint.h
index eff8f377e6a5b5c255a3855bf0ec3d04d4d95af0..4b3c87c8809106a675b7f39864feb721cccd892a 100644
--- a/Geo/GPoint.h
+++ b/Geo/GPoint.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -9,7 +9,6 @@
 #include <math.h>
 
 class GEntity;
-class binding;
 
 class GPoint
 {
@@ -55,8 +54,6 @@ class GPoint
   }
   bool succeeded() const{ return success; }
   bool setNoSuccess(){ success = false; return success; }
-
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp
index 19a4916cf1ec47f80827d1130ddc46ffa0135d7e..c2b04e704208d12428a5d35f887cea54180026c8 100644
--- a/Geo/GRegion.cpp
+++ b/Geo/GRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,6 @@
 #include "MElementCut.h"
 #include "GmshMessage.h"
 #include "VertexArray.h"
-#include "Bindings.h"
 
 GRegion::GRegion(GModel *model, int tag) : GEntity (model, tag)
 {
@@ -381,26 +380,3 @@ double GRegion::computeSolidProperties (std::vector<double> cg,
   return volume;
 }
 
-void GRegion::addPrism(MPrism *p) 
-{
-  prisms.push_back(p); 
-}
-
-void GRegion::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GRegion>("GRegion");
-  cb->setDescription("A GRegion is a geometrical 3D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *cm = cb->setConstructor<GRegion,GModel*,int>();
-  cm->setDescription("create a new GRegion");
-  cm->setArgNames("model","tag",NULL);
-  cm = cb->addMethod("set",&GRegion::set);
-  cm->setDescription("set the faces that bound this region");
-  cm->setArgNames("faces",NULL);
-  cm = cb->addMethod("addPrism", &GRegion::addPrism);
-  cm->setDescription("insert a prism mesh element");
-  cm->setArgNames("prism", NULL);
-  cm = cb->addMethod("computeSolidProperties", &GRegion::computeSolidProperties);
-  cm->setDescription("returns the volume and computes the center of gravity and tensor of inertia of the volume (requires a surface mesh)");
-  cm->setArgNames("cg","inertia", NULL);
-}
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index d00fe5ddc877a9e3bec56948460ed7dd29c3a593..4a199e85b5bab37f1bfb626aa25acf5a949cf4ba 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class MPrism;
 class MPyramid;
 class MPolyhedron;
 class ExtrudeParams;
-class bindings;
 
 // A model region.
 class GRegion : public GEntity {
@@ -61,6 +60,13 @@ class GRegion : public GEntity {
   // check if the region is connected to another region by an edge
   bool edgeConnected(GRegion *r) const;
 
+  // replace edges (gor gluing)
+  void replaceFaces (std::list<GFace*> &);
+
+  // compute volume, moment of intertia and center of gravity
+  double computeSolidProperties (std::vector<double> cg,
+				 std::vector<double> inertia);
+
   // return a type-specific additional information string
   virtual std::string getAdditionalInfoString();
 
@@ -102,16 +108,11 @@ class GRegion : public GEntity {
   std::vector<MPyramid*> pyramids;
   std::vector<MPolyhedron*> polyhedra;
 
-  void addPrism(MPrism *p);
-
-  // replace edges (gor gluing)
-  void replaceFaces (std::list<GFace*> &);
-
-  // compute volume, moment of intertia and center of gravity
-  double computeSolidProperties (std::vector<double> cg,
-				 std::vector<double> inertia);
-
-  static void registerBindings(binding *b);
+  void addTetrahedron(MTetrahedron *t){ tetrahedra.push_back(t); }
+  void addHexahedron(MHexahedron *h){ hexahedra.push_back(h); }
+  void addPrism(MPrism *p){ prisms.push_back(p); }
+  void addPyramid(MPyramid *p){ pyramids.push_back(p); }
+  void addPolyhedron(MPolyhedron *p){ polyhedra.push_back(p); }
 };
 
 #endif
diff --git a/Geo/GRegionCompound.cpp b/Geo/GRegionCompound.cpp
index 779975b7c6fe7d1585c57c67438eac9e20ae55a9..a89a37a1081b4401333ce69d78acfd857aca0391 100644
--- a/Geo/GRegionCompound.cpp
+++ b/Geo/GRegionCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GRegionCompound.h b/Geo/GRegionCompound.h
index 9dc32ff32bfa833ee49a402a0cc514bfaba328c0..4709b78ac1ba1d6075e4602623228109d37a14c2 100644
--- a/Geo/GRegionCompound.h
+++ b/Geo/GRegionCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GVertex.cpp b/Geo/GVertex.cpp
index 3e6c9b6a2cc2df2aef1fb2a49fdfb786b00126b0..00bf161088fd8f0be07567e3d601fa303259d437 100644
--- a/Geo/GVertex.cpp
+++ b/Geo/GVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -10,7 +10,6 @@
 #include "GFace.h"
 #include "MPoint.h"
 #include "GmshMessage.h"
-#include "Bindings.h"
 
 GVertex::GVertex(GModel *m, int tag, double ms) : GEntity(m, tag), meshSize(ms) 
 {
@@ -93,17 +92,3 @@ bool GVertex::isOnSeam(const GFace *gf) const
   }
   return false;
 }
-
-void GVertex::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GVertex>("GVertex");
-  cb->setDescription("A GVertex is a geometrical 0D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *cm;
-  cm = cb->addMethod("x", (double (GVertex::*)() const) &GVertex::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (GVertex::*)() const) &GVertex::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (GVertex::*)() const) &GVertex::z);
-  cm->setDescription("Return the z-coordinate.");
-}
diff --git a/Geo/GVertex.h b/Geo/GVertex.h
index d179e6fac7f9ff2c83c31b6c53b30f1992bb6de8..f57c96c6c7224441a239973fcfb91ad7ecbcdca8 100644
--- a/Geo/GVertex.h
+++ b/Geo/GVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -81,7 +81,7 @@ class GVertex : public GEntity
 
   std::vector<MPoint*> points;
 
-  static void registerBindings(binding *b);
+  void addPoint(MPoint *p){ points.push_back(p); }
 };
 
 #endif
diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index 901a199ec9d64f9bc1081ae07b954d701c2263d3..cb128536f0464920b3f0b4ea9f154779637b7daf 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Geo.h b/Geo/Geo.h
index af355f3ef4033042051b733cab3a373ccab64efe..9f778d94734d342179d1963e720442bb49b39b42 100644
--- a/Geo/Geo.h
+++ b/Geo/Geo.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.cpp b/Geo/GeoInterpolation.cpp
index b2aeda6599fb73c24e05d591fbe59cccabb0c2d3..5f4b827b5d8464e8bd8b0bc39476a31c290b463a 100644
--- a/Geo/GeoInterpolation.cpp
+++ b/Geo/GeoInterpolation.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.h b/Geo/GeoInterpolation.h
index 87806593fe9c98910a82789dc2091a9bce42234e..fc98a7abb7cd9d25bb64c78cd9d6437f9c30bba1 100644
--- a/Geo/GeoInterpolation.h
+++ b/Geo/GeoInterpolation.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.cpp b/Geo/GeoStringInterface.cpp
index ad30bcb3d71a674ab85770752caded3d45b8cd21..5a9f2f63a37692006ebe171fe349104e5e9cdd68 100644
--- a/Geo/GeoStringInterface.cpp
+++ b/Geo/GeoStringInterface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.h b/Geo/GeoStringInterface.h
index aba6d57346448da94afe22deeb27fdc1ca084cb9..4f1fb4af5b8c7dce6a062bcbfeeb5b9206105577 100644
--- a/Geo/GeoStringInterface.h
+++ b/Geo/GeoStringInterface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeomMeshMatcher.cpp b/Geo/GeomMeshMatcher.cpp
index 03060d8568a1df99d4a05e29d731c41eb35f7d7f..1e8e56857482b05c6a454876937b2babea25683a 100644
--- a/Geo/GeomMeshMatcher.cpp
+++ b/Geo/GeomMeshMatcher.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeomMeshMatcher.h b/Geo/GeomMeshMatcher.h
index 0810ac185c5226ddad7de666f093cdd564c6f4a4..7ec6f51002c0b963c2700dc68bd52819bbfe8869 100644
--- a/Geo/GeomMeshMatcher.h
+++ b/Geo/GeomMeshMatcher.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Homology.cpp b/Geo/Homology.cpp
index a484730d50a6c02a4163866bd7558e7168c7e1f6..6914e37f0ad426f00c85280d167ad252fd40b0d2 100644
--- a/Geo/Homology.cpp
+++ b/Geo/Homology.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Homology.h b/Geo/Homology.h
index 9c75225296750cce8da708684f609f19ede9df59..5f497f8bb70c1a33ce3108a18d204a2031be4f46 100644
--- a/Geo/Homology.h
+++ b/Geo/Homology.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 // 
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdge.h b/Geo/MEdge.h
index ad517128cbe0dcda0c63cfc0f6d460d83355a907..c80a0cbba64e52bf1256da0192ec9efa27587dfa 100644
--- a/Geo/MEdge.h
+++ b/Geo/MEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdgeHash.h b/Geo/MEdgeHash.h
index c0f2118278706c1cc59aaa0f2b65c7b3d688bc29..cd36e23b265648a93100f0b4ad8fb5075d2a2b13 100644
--- a/Geo/MEdgeHash.h
+++ b/Geo/MEdgeHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index 285243f2a953131b4c4f40248d3eef5ea08c6f75..7bd56a56ad14997f4b05f21b99654ba06c16fb89 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -169,6 +169,7 @@ int MElement::getVolumeSign()
 
 bool MElement::setVolumePositive()
 {
+  if(getDim() < 3) return true;
   int s = getVolumeSign();
   if(s < 0) revert();
   if(!s) return false;
@@ -269,12 +270,6 @@ double MElement::getJacobian(double u, double v, double w, double jac[3][3])
   return _computeDeterminantAndRegularize(this, jac);
 }
 
-//binded
-double MElement::getJacobianDeterminant(double u, double v, double w) {
-  double jac[3][3];
-  return getJacobian(u,v,w,jac);
-}
-
 double MElement::getJacobian(const fullMatrix<double> &gsf, double jac[3][3])
 {
   jac[0][0] = jac[0][1] = jac[0][2] = 0.;
@@ -1272,49 +1267,11 @@ const fullMatrix<double> &MElement::getGradShapeFunctionsAtNodes (int functionSp
   return mat;
 }
 
-void MElement::xyzTouvw(fullMatrix<double> *xu){
+void MElement::xyzTouvw(fullMatrix<double> *xu)
+{
   double _xyz[3] = {(*xu)(0,0),(*xu)(0,1),(*xu)(0,2)},_uvw[3] ;
   xyz2uvw(_xyz,_uvw);
   (*xu)(1,0) = _uvw[0];
   (*xu)(1,1) = _uvw[1];
   (*xu)(1,2) = _uvw[2];
 }
-
-
-#include "Bindings.h"
-
-void MElement::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MElement>("MElement");
-  cb->setDescription("A mesh element.");
-  methodBinding *cm;
-  cm = cb->addMethod("getNum",&MElement::getNum);
-  cm->setDescription("return the tag of the element");
-  cm = cb->addMethod("getNumVertices", &MElement::getNumVertices);
-  cm->setDescription("get the number of vertices of this element");
-  cm = cb->addMethod("getVertex", &MElement::getVertex);
-  cm->setDescription("return the i-th vertex of this element");
-  cm->setArgNames("i",NULL);
-  cm = cb->addMethod("getType", &MElement::getType);
-  cm->setDescription("get the type of the element");
-  cm = cb->addMethod("getTypeForMSH", &MElement::getTypeForMSH);
-  cm->setDescription("get the gmsh type of the element");
-  cm = cb->addMethod("getPartition", &MElement::getPartition);
-  cm->setDescription("get the partition to which the element belongs");
-  cm = cb->addMethod("setPartition", &MElement::setPartition);
-  cm->setDescription("set the partition to which the element belongs");
-  cm->setArgNames("iPartition",NULL);
-  cm = cb->addMethod("getPolynomialOrder", &MElement::getPolynomialOrder);
-  cm->setDescription("return the polynomial order the element");
-  cm = cb->addMethod("getDim", &MElement::getDim);
-  cm->setDescription("return the geometrical dimension of the element");
-  cm = cb->addMethod("getJacobianDeterminant", &MElement::getJacobianDeterminant);
-  cm->setDescription("return the jacobian of the determinant of the transformation");
-  cm->setArgNames("u","v","w",NULL);
-  cm = cb->addMethod("xyzTouvw", &MElement::xyzTouvw);
-  cm->setDescription("get uvw from xyz");
-  cm->setArgNames("xyzuvw",NULL);
-  cm = cb->addMethod("getVertex", &MElement::getVertex);
-  cm->setDescription("get the vertex with the given index");
-  cm->setArgNames("index",NULL);
-}
diff --git a/Geo/MElement.h b/Geo/MElement.h
index 0ef83ff58495d2a0ef95507fce82e0bf6adea3a4..aa649f97d17747bd6b9d849febf4ddcd644621e4 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@
 #include "Gauss.h"
 
 class GFace;
-class binding;
 
 // A mesh element.
 class MElement
@@ -101,9 +100,6 @@ class MElement
   // get the vertex using the Nastran BDF ordering
   virtual MVertex *getVertexBDF(int num){ return getVertex(num); }
 
-  // get the vertex using MED ordering
-  virtual MVertex *getVertexMED(int num){ return getVertex(num); }
-
   // get the vertex using DIFF ordering
   virtual MVertex *getVertexDIFF(int num){ return getVertex(num); }
 
@@ -255,7 +251,10 @@ class MElement
   double getJacobian(const fullMatrix<double> &gsf, double jac[3][3]);
   double getJacobian(double u, double v, double w, double jac[3][3]);
   double getPrimaryJacobian(double u, double v, double w, double jac[3][3]);
-  double getJacobianDeterminant(double u, double v, double w);
+  double getJacobianDeterminant(double u, double v, double w)
+  {
+    double jac[3][3]; return getJacobian(u, v, w, jac);
+  }
   virtual int getNumShapeFunctions(){ return getNumVertices(); }
   virtual int getNumPrimaryShapeFunctions(){ return getNumPrimaryVertices(); }
   virtual MVertex *getShapeFunctionNode(int i){ return getVertex(i); }
@@ -338,7 +337,6 @@ class MElement
   static int getInfoMSH(const int typeMSH, const char **const name=0);
   virtual int getNumVerticesForMSH() { return getNumVertices(); }
   virtual int *getVerticesIdForMSH();
-  static void registerBindings(binding *b);
 
   // copy element and parent if any, vertexMap contains the new vertices
   virtual MElement *copy(int &num, std::map<int, MVertex*> &vertexMap,
diff --git a/Geo/MElementCut.cpp b/Geo/MElementCut.cpp
index 749adbd68bf5638fa9f158560cd3200ab610b46e..438c7c0081c5546bd95aadab3302869323c51eb5 100644
--- a/Geo/MElementCut.cpp
+++ b/Geo/MElementCut.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementCut.h b/Geo/MElementCut.h
index 147c5715e911bc30e2dbe573325c6a781308833b..7c0a7c7f5d73dbe244db835268782a4af812508c 100644
--- a/Geo/MElementCut.h
+++ b/Geo/MElementCut.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementOctree.cpp b/Geo/MElementOctree.cpp
index 439bc9d9cc88650dff061e0559fb388d46a8629c..3bdbf8b7e3405b8d73fca34fa00c9ba0f4fc2d93 100644
--- a/Geo/MElementOctree.cpp
+++ b/Geo/MElementOctree.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementOctree.h b/Geo/MElementOctree.h
index 4b8511f52f26460e9893a6272e205c959eacb60a..dc23f530b3dd5af7101236cba73262823b855626 100644
--- a/Geo/MElementOctree.h
+++ b/Geo/MElementOctree.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.cpp b/Geo/MFace.cpp
index 1fae5597098e68d10f0b6a9d0369b56dec48ada3..4a4005ab46d9957ed69883cdc4f1ba2aff7433d6 100644
--- a/Geo/MFace.cpp
+++ b/Geo/MFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.h b/Geo/MFace.h
index 01cbfd46225475d1c4aab32c7296b473ce98281f..a4cb1dc8306ce4159ccca31e6b14dc89d039d258 100644
--- a/Geo/MFace.h
+++ b/Geo/MFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFaceHash.h b/Geo/MFaceHash.h
index 799bbb861c79d11917d1082574d3c2eed8ac5f94..293f9e9d769c3085539f644dcc4902376acdb519 100644
--- a/Geo/MFaceHash.h
+++ b/Geo/MFaceHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MHexahedron.cpp b/Geo/MHexahedron.cpp
index b75c7336b9d69bbe055e7343af89c5839a2b0e71..c008a557db9abf12916c715631831dfc89ffc3bd 100644
--- a/Geo/MHexahedron.cpp
+++ b/Geo/MHexahedron.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MHexahedron.h b/Geo/MHexahedron.h
index 6b6a33f4159b7b0f3af604e91868a6d58fef8b4f..f015c66e3f0cb3b1e0d5d5436a145d2651426bd2 100644
--- a/Geo/MHexahedron.h
+++ b/Geo/MHexahedron.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -58,11 +58,6 @@ class MHexahedron : public MElement {
   virtual int getNumVertices() const { return 8; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
   virtual const polynomialBasis* getFunctionSpace(int o=-1) const;
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[8] = {2, 3, 7, 6, 0, 1, 5, 4};
@@ -275,12 +270,6 @@ class MHexahedron20 : public MHexahedron {
                                 9, 10, 12, 14, 15, 16, 18, 19, 17};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[20] = {0, 3, 2, 1, 4, 7, 6, 5, 9, 13, 11,
-                                8, 17, 19, 18, 16, 10, 15, 14, 12};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[20] = {2, 3, 7, 6, 0, 1, 5, 4, 9, 18, 12,
diff --git a/Geo/MLine.cpp b/Geo/MLine.cpp
index 66e84489c29464304f97e2ddb5acd3518f715669..96184bdce317f3a7b88eabe01003c22cb7de42ab 100644
--- a/Geo/MLine.cpp
+++ b/Geo/MLine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -60,28 +60,3 @@ double MLine::getInnerRadius()
 {
   return _v[0]->distance(_v[1]);
 }
-
-#include "Bindings.h"
-static MLine* MLine_binding(std::vector<MVertex*> v) {
-  if (v.size() == 2)
-    return new MLine(v);
-  if (v.size() == 3)
-    return new MLine3(v);
-  return new MLineN(v);
-}
-
-void MLine::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MLine>("MLine");
-  cb->setDescription("A line mesh element.");
-
-  methodBinding *cm;
-  cm = cb->addMethod("MLine",&MLine_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new line mesh element with the given vertices. "
-                     "First 2 vertices must correspond to the beginning/end of the line.");
-//   cm = cb->setConstructor<MLine,MVertex*,MVertex*>();
-//   cm->setArgNames("v0","v1", NULL);
-//   cm->setDescription("Create a new line mesh element between v0 and v1.");
-  cb->setParentClass<MElement>();
-}
diff --git a/Geo/MLine.h b/Geo/MLine.h
index b8b8b63d44b8b6a7ea1e602bcba5c167414a4c4d..207aaceae6beee3b08ef9c82eff16a523ff61e45 100644
--- a/Geo/MLine.h
+++ b/Geo/MLine.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -88,7 +88,6 @@ class MLine : public MElement {
     }
   }
   virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts);
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -151,7 +150,6 @@ class MLine3 : public MLine {
  *   0---2---...-(N-1)-1
  *
  */
-class binding;
 class MLineN : public MLine {
  protected:
   std::vector<MVertex *> _vs;
diff --git a/Geo/MPoint.h b/Geo/MPoint.h
index c1722087988050ea2aea00a6d67d84bf34e02900..1d0e201f82513066bc6668d8ad0e17b7bd7ecb1c 100644
--- a/Geo/MPoint.h
+++ b/Geo/MPoint.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MPrism.cpp b/Geo/MPrism.cpp
index ea385278fb5ed115ecaee1339f81bf4e3a5c6cad..e87e3948a0a30307a79b2bd3ca872046bc71cd1c 100644
--- a/Geo/MPrism.cpp
+++ b/Geo/MPrism.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -158,33 +158,3 @@ void MPrism::getFaceInfo(const MFace &face, int &ithFace, int &sign, int &rot) c
   }
   Msg::Error("Could not get face information for prism %d", getNum());
 }
-#include "Bindings.h"
-static MPrism18* MPrism18_binding(std::vector<MVertex*> v)
-{
-  return new MPrism18(v);
-}
-
-void MPrism::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MPrism>("MPrism");
-  cb->setDescription("A mesh first-order prism.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MPrism,MVertex*,MVertex*,MVertex*,MVertex*, MVertex*, MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", "v3","v4","v5", NULL);
-  cm->setDescription("Create a new prism with top triangle (v0,v1,v2) and "
-                     "bottom one (v3,v4,v5).");
-  cm = cb->addMethod("getVolumeSign",&MPrism::getVolumeSign);
-  cm->setDescription("computes the sign of the element volume");
-  cm = cb->addMethod("revert",&MPrism::revert);
-  cm->setDescription("reorganises the element vertices so that volume is positive");
-
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MPrism18>("MPrism18");
-  cb->setDescription("A mesh second-order prism.");
-  cm = cb->addMethod("MPrism18",&MPrism18_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new prism with vertices in vectorV (length=18).");
-  cb->setParentClass<MPrism>();
-}
-
diff --git a/Geo/MPrism.h b/Geo/MPrism.h
index 7f1d4a8e8afac3b57bb0774f4350f5a2e9d73c1b..cd3b22c2f21d73965842d33507389c0fb65459c6 100644
--- a/Geo/MPrism.h
+++ b/Geo/MPrism.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -8,7 +8,6 @@
 
 #include "MElement.h"
 
-class binding;
 /*
  * MPrism
  *
@@ -65,11 +64,6 @@ class MPrism : public MElement {
   virtual int getNumVertices() const { return 6; }
   virtual double getInnerRadius();
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[6] = {0, 2, 1, 3, 5, 4};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 9; }
   virtual MEdge getEdge(int num)
   {
@@ -213,8 +207,6 @@ class MPrism : public MElement {
     };
     return f[face][vert];
   }
-  public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -271,11 +263,6 @@ class MPrism15 : public MPrism {
     static const int map[15] = {0, 1, 2, 3, 4, 5, 6, 9, 7, 8, 10, 11, 12, 14, 13};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[15] = {0, 2, 1, 3, 5, 4, 7, 9, 6, 13, 14, 12, 8, 11, 10};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 9; }
   virtual int getNumEdgesRep(){ return 18; }
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
diff --git a/Geo/MPyramid.cpp b/Geo/MPyramid.cpp
index 032ab2f0dafb6266b39a94d9eaf5dba2fc2e482f..9f71c9d710a00156fefd65821c5f30d3d3538f67 100644
--- a/Geo/MPyramid.cpp
+++ b/Geo/MPyramid.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MPyramid.h b/Geo/MPyramid.h
index bd63e67f45b7c9339142f22a761cff19a65984f0..423352f07eb7178d041465c1b1deadb9a668db1a 100644
--- a/Geo/MPyramid.h
+++ b/Geo/MPyramid.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -67,11 +67,6 @@ class MPyramid : public MElement {
   virtual int getDim() const { return 3; }
   virtual int getNumVertices() const { return 5; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[5] = {0, 3, 2, 1, 4};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 8; }
   virtual MEdge getEdge(int num)
   {
@@ -259,11 +254,6 @@ class MPyramid13 : public MPyramid {
   virtual int getPolynomialOrder() const { return 2; }
   virtual int getNumVertices() const { return 13; }
   virtual MVertex *getVertex(int num){ return num < 5 ? _v[num] : _vs[num - 5]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[13] = {0, 3, 2, 1, 4, 6, 10, 8, 5, 7, 12, 11, 9};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 8; }
   virtual int getNumEdgesRep(){ return 16; }
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp
index ff011fea99ac9e23b123df005424a3289d1c2b14..8a41e387bc20987a14c7a3b6e1b08e00a66e02e9 100644
--- a/Geo/MQuadrangle.cpp
+++ b/Geo/MQuadrangle.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -345,28 +345,3 @@ double MQuadrangle::getInnerRadius()
   }
   return R;
 }
-#include "Bindings.h"
-
-static MQuadrangle9* MQuadrangle9_binding(std::vector<MVertex*> v) {
-  return new MQuadrangle9(v);
-}
-
-
-void MQuadrangle::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MQuadrangle>("MQuadrangle");
-  cb->setDescription("A mesh first-order quadrangle.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MQuadrangle,MVertex*,MVertex*,MVertex*,MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", "v3", NULL);
-  cm->setDescription("Create a new quadrangle with vertices (v0,v1,v2,v3).");
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MQuadrangle9>("MQuadrangle9");
-  cb->setDescription("A mesh second-order quadrangle.");
-  cm = cb->addMethod("MQuadrangle9",&MQuadrangle9_binding);
-//   cm = cb->setConstructor<MQuadrangle9_binding,std::vector<MVertex*> >();
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new quadrangle with vertices in vectorV (length=9).");
-  cb->setParentClass<MQuadrangle>();
-}
diff --git a/Geo/MQuadrangle.h b/Geo/MQuadrangle.h
index adb67da138855f6412f0666eb54f98f264373fec..28c2fa5cb1fc3fcaf4e99dc6cbe3d5849fa628d7 100644
--- a/Geo/MQuadrangle.h
+++ b/Geo/MQuadrangle.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -23,7 +23,6 @@
  *   0-----------1
  *
  */
-class binding;
 class MQuadrangle : public MElement {
  protected:
   MVertex *_v[4];
@@ -57,11 +56,6 @@ void projectInMeanPlane(double *xn, double *yn);
   virtual int getNumVertices() const { return 4; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
   virtual void setVertex(int num, MVertex *v){_v[num]=v;}
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[4] = {0, 3, 2, 1};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[4] = {0, 1, 3, 2};
@@ -165,9 +159,6 @@ void projectInMeanPlane(double *xn, double *yn);
     };
     return e[edge][vert];
   }
-
- public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -208,11 +199,6 @@ class MQuadrangle8 : public MQuadrangle {
     static const int map[8] = {0, 4, 1, 5, 2, 6, 3, 7};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[8] = {0, 3, 2, 1, 7, 6, 5, 4};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[8] = {0, 1, 3, 2, 4, 7, 5, 6};
diff --git a/Geo/MTetrahedron.cpp b/Geo/MTetrahedron.cpp
index c25f871522695dee3b4bd3a781ae3ed49e5ae454..9b4efb8d839043883c71f16bb598be35d18f0077 100644
--- a/Geo/MTetrahedron.cpp
+++ b/Geo/MTetrahedron.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MTetrahedron.h b/Geo/MTetrahedron.h
index 599e44163b95a04e89293f3308cdc31cf815ea22..6d4b761bedde063c6d9eab92d45d183c5f1b8af3 100644
--- a/Geo/MTetrahedron.h
+++ b/Geo/MTetrahedron.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -60,11 +60,6 @@ class MTetrahedron : public MElement {
   virtual int getDim() const { return 3; }
   virtual int getNumVertices() const { return 4; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[4] = {0, 2, 1, 3};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 6; }
   virtual MEdge getEdge(int num)
   {
@@ -228,11 +223,6 @@ class MTetrahedron10 : public MTetrahedron {
     static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[10] = {0, 2, 1, 3, 6, 5, 4, 7, 8, 9};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8};
diff --git a/Geo/MTriangle.cpp b/Geo/MTriangle.cpp
index 7555c2b25943b86f018a474273433df1ca0aa273..c1633e3ae6a15997d64e2e721f3d760371a51196 100644
--- a/Geo/MTriangle.cpp
+++ b/Geo/MTriangle.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -320,32 +320,3 @@ void MTriangle::getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
   *npts = getNGQTPts(pOrder);
   *pts = getGQTPts(pOrder);
 }
-#include "Bindings.h"
-static MTriangle6* MTriangle6_binding(std::vector<MVertex*> v) {
-  return new MTriangle6(v);
-}
-
-void MTriangle::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MTriangle>("MTriangle");
-  cb->setDescription("A mesh first-order triangle.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MTriangle,MVertex*,MVertex*,MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", NULL);
-  cm->setDescription("Create a new triangle with vertices (v0,v1,v2).");
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MTriangle6>("MTriangle6");
-  cb->setDescription("A mesh second-order triangle.");
-  cm = cb->addMethod("MTriangle6",&MTriangle6_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new triangle with vertices given in the vector (length = 6).");
-  cb->setParentClass<MTriangle>();
-
-/*  cb->setDescription("A mesh second-order triangle.");
-  cm = cb->setConstructor<MTriangle6_binding,std::vector<MVertex*> >();
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new triangle with vertices given in the vector (length = 6).");
-  cb->setParentClass<MTriangle>();*/
-}
-
diff --git a/Geo/MTriangle.h b/Geo/MTriangle.h
index 4dc273298a2d0444e48950d1b2dbaccb87fa559b..0e64bb3e276fbf2421c403a8e6dc5c6891f2eb6b 100644
--- a/Geo/MTriangle.h
+++ b/Geo/MTriangle.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -58,11 +58,6 @@ class MTriangle : public MElement {
   virtual double angleShapeMeasure();
   virtual int getNumVertices() const { return 3; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[3] = {0, 2, 1};
-    return getVertex(map[num]);
-  }
   virtual void xyz2uvw(double xyz[3], double uvw[3]);
   virtual MVertex *getOtherVertex(MVertex *v1, MVertex *v2)
   {
@@ -159,8 +154,6 @@ class MTriangle : public MElement {
     };
     return e[edge][vert];
   }
-  public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -201,11 +194,6 @@ class MTriangle6 : public MTriangle {
     static const int map[6] = {0, 3, 1, 4, 2, 5};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[6] = {0, 2, 1, 5, 4, 3};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 3; }
   virtual int getNumEdgesRep();
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n);
diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp
index 38727d72aa5ddc1be2050d9d9cd3a6222418b273..303f65f4607f83535a40e9233ea12a69c93801f3 100644
--- a/Geo/MVertex.cpp
+++ b/Geo/MVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -418,34 +418,3 @@ bool reparamMeshVertexOnEdge(const MVertex *v, const GEdge *ge, double &param)
   if(param < 1.e6) return true;
   return false;
 }
-
-#include "Bindings.h"
-
-void MVertex::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MVertex>("MVertex");
-  cb->setDescription("A mesh vertex.");
-  methodBinding *cm;
-  cm = cb->addMethod("getNum",&MVertex::getNum);
-  cm->setDescription("Return the immutable vertex number.");
-  //the cast is epxlicitely given because there are 2 MVertex::x function
-  cm = cb->addMethod("x", (double (MVertex::*)() const) &MVertex::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (MVertex::*)() const) &MVertex::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (MVertex::*)() const) &MVertex::z);
-  cm->setDescription("Return the z-coordinate.");
-  cm = cb->addMethod("setXYZ", &MVertex::setXYZ);
-  cm->setDescription("set the coordinates");
-  cm->setArgNames("x", "y", "z",NULL);
-  cm = cb->setConstructor<MVertex,double,double,double>();
-  cm->setArgNames("x", "y", "z", NULL);
-  cm->setDescription("Create a new mesh vertex at (x,y,z).");
-  cm = cb->addMethod("getNum", &MVertex::getNum);
-  cm->setDescription("return the invariant vertex id");
-  cm = cb->addMethod("getPolynomialOrder", &MVertex::getPolynomialOrder);
-  cm->setDescription("return the polynomial order of vertex");
-  cm = cb->addMethod("setPolynomialOrder", &MVertex::setPolynomialOrder);
-  cm->setDescription("assign the polynomial order of vertex");
-  cm->setArgNames("order",NULL);
-}
diff --git a/Geo/MVertex.h b/Geo/MVertex.h
index 02f9c86c705299a956b9372568d3b6c7d882d6da..6d421d8f5b26be58991bb32a6dcdfa2a53262310 100644
--- a/Geo/MVertex.h
+++ b/Geo/MVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@ class GEntity;
 class GEdge;
 class GFace;
 class MVertex;
-class binding;
 
 class MVertexLessThanLexicographic{
  public:
@@ -72,10 +71,9 @@ class MVertex{
   inline double & x() { return _x; }
   inline double & y() { return _y; }
   inline double & z() { return _z; }
-  // cannot use the reference to set the value in the bindings
-  inline void setXYZ(double x, double y, double z) { _x = x; _y = y; _z = z; }
 
   inline SPoint3 point() const { return SPoint3(_x, _y, _z); }
+  inline void setXYZ(double x, double y, double z) { _x = x; _y = y; _z = z; }
 
   // get/set the parent entity
   inline GEntity* onWhat() const { return _ge; }
@@ -119,7 +117,6 @@ class MVertex{
   void writeMESH(FILE *fp, double scalingFactor=1.0);
   void writeBDF(FILE *fp, int format=0, double scalingFactor=1.0);
   void writeDIFF(FILE *fp, bool binary, double scalingFactor=1.0);
-  static void registerBindings(binding *b);
 };
 
 class MEdgeVertex : public MVertex{
diff --git a/Geo/MVertexPositionSet.h b/Geo/MVertexPositionSet.h
index a0c7c7a25bb6666e0ee7d580b4ea427b4cc6c492..03e1f5eb77b99622f23a4499e65034e219da8db8 100644
--- a/Geo/MVertexPositionSet.h
+++ b/Geo/MVertexPositionSet.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.cpp b/Geo/MZone.cpp
index 39d1800f0d677c37eb50653a868da46aaf6d7abe..568598b74b5c89aef41f6ff82a35d5e6deec36a7 100644
--- a/Geo/MZone.cpp
+++ b/Geo/MZone.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.h b/Geo/MZone.h
index 0b3dffb90622dd05347dc23e266931d1a5093f84..6afd64888d671662433b747a6d4f2ec0e749b1b1 100644
--- a/Geo/MZone.h
+++ b/Geo/MZone.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.cpp b/Geo/MZoneBoundary.cpp
index 0e66c86c95daade8c814bb0134a7c57305698b78..5fe6ab2f85dbc8016bfd519c713b9cc7d563dfba 100644
--- a/Geo/MZoneBoundary.cpp
+++ b/Geo/MZoneBoundary.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.h b/Geo/MZoneBoundary.h
index 04cc2d6ff72cb0e4f026403eae17c4095a28b1a5..792abfc2047d23a74d9565516247708ddbad8560 100644
--- a/Geo/MZoneBoundary.h
+++ b/Geo/MZoneBoundary.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp
index 142413f49f303aa99d1bc9fbfea56c2a4b499631..e249be3b33144db9d1d38ce4fe8411a5fb0610ee 100644
--- a/Geo/OCCEdge.cpp
+++ b/Geo/OCCEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h
index a521b3f2e33253eb9430073886a0a0c96c603dc5..a555434d41928fc81bb2a9e25618f983e3dae668 100644
--- a/Geo/OCCEdge.h
+++ b/Geo/OCCEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index 73320e06b5cd15b958d5124b30fcf3be71c23bb4..858d26d43395226b2fb0aec3f7dcfc1d7e5239cf 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.h b/Geo/OCCFace.h
index 7eed8c4ae299d11c429dd43e6e3ce3e89a8b47d7..9fa9ffbe8f10402d74c9c2f1a1cb5f8235cb7c6b 100644
--- a/Geo/OCCFace.h
+++ b/Geo/OCCFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCIncludes.h b/Geo/OCCIncludes.h
index e6f54ff39834eedbc699ee293e7d6f6a549258bc..8bd84f9984bdb317a1bc3d5768d841752e944ab8 100644
--- a/Geo/OCCIncludes.h
+++ b/Geo/OCCIncludes.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.cpp b/Geo/OCCRegion.cpp
index 5a1dff017d43eabf3d7e445541dc71d7bfbca84d..fb215bba8078105762256186f822bb36a0de6bdc 100644
--- a/Geo/OCCRegion.cpp
+++ b/Geo/OCCRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.h b/Geo/OCCRegion.h
index 60cdac47e9d2f3dc3d027c5c4fdfb94cad8d3a77..8be01f5eef681621f13b3426fce5db899c7f1413 100644
--- a/Geo/OCCRegion.h
+++ b/Geo/OCCRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.cpp b/Geo/OCCVertex.cpp
index 8c85e9e5f2a683a01350d68f6fe4df1ff865288d..ba532f29836cfd2e18bdda9b0b1957fbdb24c88a 100644
--- a/Geo/OCCVertex.cpp
+++ b/Geo/OCCVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.h b/Geo/OCCVertex.h
index 74bb2a6b7fb449b7a2d5cb3982c911c9e3050264..1ff76ef359515e669507e89a4967b7614757b488 100644
--- a/Geo/OCCVertex.h
+++ b/Geo/OCCVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCC_Connect.cpp b/Geo/OCC_Connect.cpp
index fad10a090ba1071524d0e14d9f38bec0202ef396..6e03b9fcdcc5b8f26c55e1ccea92e56a1c6d62c3 100644
--- a/Geo/OCC_Connect.cpp
+++ b/Geo/OCC_Connect.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCC_Connect.h b/Geo/OCC_Connect.h
index b6b4483abdd0d586cba92800f8591b1a6e6a5ea8..1843f20e328d1807281b0b105f17904998bcc85e 100644
--- a/Geo/OCC_Connect.h
+++ b/Geo/OCC_Connect.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Pair.h b/Geo/Pair.h
index 6a56f0d74efa50147d0e2c9f18c2136d7a950c1c..14cad4fd5cc3983a40f48ebfde15cf7b5c751674 100644
--- a/Geo/Pair.h
+++ b/Geo/Pair.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Range.h b/Geo/Range.h
index ea6d6f9454135afd52fa60557a3978a32f93c025..3888a0ed13fc7c7b9338850842b51fa620c144ed 100644
--- a/Geo/Range.h
+++ b/Geo/Range.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SBoundingBox3d.h b/Geo/SBoundingBox3d.h
index fb29fd682b34783e81dcb19c23dfda0b3035d558..3d7a01bd6a33538553704f13fdbd3473b3493467 100644
--- a/Geo/SBoundingBox3d.h
+++ b/Geo/SBoundingBox3d.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SOrientedBoundingBox.cpp b/Geo/SOrientedBoundingBox.cpp
index 73a267f984cf35ea8c47cd8db60cf952a07e0f0c..0dbb755ee3b588cb319b53fd8ab3e856aafa0eaa 100644
--- a/Geo/SOrientedBoundingBox.cpp
+++ b/Geo/SOrientedBoundingBox.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SOrientedBoundingBox.h b/Geo/SOrientedBoundingBox.h
index db69a2fd4595903ba58a48949b9508f768d32f50..7b5f49c027c6041cf6719230d0d5ca03c9c1a97c 100644
--- a/Geo/SOrientedBoundingBox.h
+++ b/Geo/SOrientedBoundingBox.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint2.h b/Geo/SPoint2.h
index d1fcc622ee3add6636391492a7c1c7c075f3b06e..0eeae330682430f8db8d1aaff604c5670916a855 100644
--- a/Geo/SPoint2.h
+++ b/Geo/SPoint2.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint3.h b/Geo/SPoint3.h
index b48c4f417dd10a462fb1488f41ba9fc8f34516d1..3e37e5cedf5de15b137b0c40b5b565c0aa6cc361 100644
--- a/Geo/SPoint3.h
+++ b/Geo/SPoint3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/STensor3.h b/Geo/STensor3.h
index c7ddeab713c710ea04bb58ca8a8959228b7d3f61..b554a7edcb230aae324a38932d4b38587f3e1607 100644
--- a/Geo/STensor3.h
+++ b/Geo/STensor3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SVector3.h b/Geo/SVector3.h
index 16b72faf3fa6c3a435e16c0885dccab16affd67b..1082d1499eeb69dbc7590a82797476a29c14c592 100644
--- a/Geo/SVector3.h
+++ b/Geo/SVector3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.cpp b/Geo/discreteEdge.cpp
index 3a6c1cc85ce0c144084b674f8b5f016f8755095c..d9e5bf8ea7901a98f4e4d766025a4cc47b019011 100644
--- a/Geo/discreteEdge.cpp
+++ b/Geo/discreteEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.h b/Geo/discreteEdge.h
index 29671932c147a48a0a92b289837c01c1a7572529..cbedfeb592efccde51b80d81b4cc0f3e33cc807e 100644
--- a/Geo/discreteEdge.h
+++ b/Geo/discreteEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp
index e96d3f3897feb829ad19e9f62cf6213f5648d67a..adcf923389b554a864d2ed1e9496d80ed53f32ad 100644
--- a/Geo/discreteFace.cpp
+++ b/Geo/discreteFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.h b/Geo/discreteFace.h
index 7fe86e3c128ce8ae002890901915169e9d8f2e64..446bdbfd10eb3798e5e7b8d7eb2e08a51c488605 100644
--- a/Geo/discreteFace.h
+++ b/Geo/discreteFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.cpp b/Geo/discreteRegion.cpp
index 70eea83c51ca34df0f47425c36dc6a25d3bd956d..0e1c80bee0589aac7db9066bd6c2f6dfda7ba109 100644
--- a/Geo/discreteRegion.cpp
+++ b/Geo/discreteRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.h b/Geo/discreteRegion.h
index 250f61154d2b6aa93e31dc1fefd18e986d370341..e6090100808ef27d797b0e8f5900f4655786e992 100644
--- a/Geo/discreteRegion.h
+++ b/Geo/discreteRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteVertex.h b/Geo/discreteVertex.h
index 344c26c4162521c7a393ed65881afb804631bd1c..c87620a931ed37116709ba80dc21bd43dbd3feb1 100644
--- a/Geo/discreteVertex.h
+++ b/Geo/discreteVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.cpp b/Geo/findLinks.cpp
index 549e0efec4b018103ae3c9ac2de489f1ca86bd30..1ecec5b88da1ce700b2f351e026c6674403c8508 100644
--- a/Geo/findLinks.cpp
+++ b/Geo/findLinks.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.h b/Geo/findLinks.h
index bab963cfefdee57e7491ef482b5f833f8a2fc590..28ed0bc4c7644c6f6a71ab9012842f93cd16ab59 100644
--- a/Geo/findLinks.h
+++ b/Geo/findLinks.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.cpp b/Geo/fourierEdge.cpp
index ef6dd27c1561e2b1ecfe6811c7e56feb7840374d..7326f11f1ee59217c1e40c6e5cf4e07d2d2c1abd 100644
--- a/Geo/fourierEdge.cpp
+++ b/Geo/fourierEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.h b/Geo/fourierEdge.h
index e551c5157c848f00523068fa0682e3ed51cc66ec..07866425f733acf88e9cd638ababde86bfb59f6b 100644
--- a/Geo/fourierEdge.h
+++ b/Geo/fourierEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.cpp b/Geo/fourierFace.cpp
index 569f600bcc677790d300daf681fb0c5f577fb091..a9076dedeb07466a0ab2086b4bb10222547a776d 100644
--- a/Geo/fourierFace.cpp
+++ b/Geo/fourierFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.h b/Geo/fourierFace.h
index 06bdd29f23c714c504c8633d6ef8cdd1a49705e5..a7053fa1be83f56bce56bdd439f865df36208215 100644
--- a/Geo/fourierFace.h
+++ b/Geo/fourierFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.cpp b/Geo/fourierProjectionFace.cpp
index 20cdb7c11470f7406ddeea70c2da61477138be10..22730a1b80eedd29676806be8494128ae1a858fa 100644
--- a/Geo/fourierProjectionFace.cpp
+++ b/Geo/fourierProjectionFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.h b/Geo/fourierProjectionFace.h
index 5987a7428bb808169d5c5778b06b2b1dcb35ad20..c0ad5f721ceda8b8cd01e90d68a076c99c248dc9 100644
--- a/Geo/fourierProjectionFace.h
+++ b/Geo/fourierProjectionFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierVertex.h b/Geo/fourierVertex.h
index 567ea964c3622e6f4fc85d33ef863dcc9c60e764..275e34125e5026ac2ffca2f0e489c18af67b86ee 100644
--- a/Geo/fourierVertex.h
+++ b/Geo/fourierVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.cpp b/Geo/gmshEdge.cpp
index 413c820c7c75ded899dd8184bfcac00a76936bb7..8dd2294907a623ef44d3468f1458d2c754e7c04f 100644
--- a/Geo/gmshEdge.cpp
+++ b/Geo/gmshEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.h b/Geo/gmshEdge.h
index 2915188a28265134b0c374063572067800c4f40a..d16d3f03771fe203d7e521e6df99eff52cef28e5 100644
--- a/Geo/gmshEdge.h
+++ b/Geo/gmshEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.cpp b/Geo/gmshFace.cpp
index 1f47b024e2e0ff12abe9a7369d58f071e9f69fe2..caca1f867ef1383a34031c1e7b87e5862229e871 100644
--- a/Geo/gmshFace.cpp
+++ b/Geo/gmshFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.h b/Geo/gmshFace.h
index fa229909c9ac030236d8246cf9247be558e41103..a0d1666c3c6e134e75708540f47bd36b2fd1ad98 100644
--- a/Geo/gmshFace.h
+++ b/Geo/gmshFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshLevelset.h b/Geo/gmshLevelset.h
index 96c71e39b6cf43dc768b02e70e1868b933926bc7..ef551fdd06743da5991941fd2e2a981478b5169a 100644
--- a/Geo/gmshLevelset.h
+++ b/Geo/gmshLevelset.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.cpp b/Geo/gmshRegion.cpp
index 5ff7c218fda169a75bc6b48b43b11f3597a8004c..784ca7be47a39406d61df59c84e4fe077aea3a01 100644
--- a/Geo/gmshRegion.cpp
+++ b/Geo/gmshRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.h b/Geo/gmshRegion.h
index c851ef890d8213ddc1263f675cf8c3a11aacf6bc..1f44f86599ac2264a9cc1ff08aa061caea1655a0 100644
--- a/Geo/gmshRegion.h
+++ b/Geo/gmshRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp
index 489127f60fa72946e5d32ca88c95b0a79c5a0b2f..cab602fa01a12b5bbf8a2eed3aea568a155c55c9 100644
--- a/Geo/gmshSurface.cpp
+++ b/Geo/gmshSurface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.h b/Geo/gmshSurface.h
index 05cefbdc4340aaa9bf06688848a5f6d2ff710a78..5005098ba86d3d9c1a9da321e2711348f3bbcb3d 100644
--- a/Geo/gmshSurface.h
+++ b/Geo/gmshSurface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.cpp b/Geo/gmshVertex.cpp
index 4d724ef422d07ec92b65f2079f63fcaa3b13350d..c37d775fd8cd31b22abe03873b251d46f6c9fcc4 100644
--- a/Geo/gmshVertex.cpp
+++ b/Geo/gmshVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.h b/Geo/gmshVertex.h
index 3a835cbaeedf7a42846a763b93b31330e8b56e42..27697fbf60255dd2bc7cec6a15658c66a3176eaf 100644
--- a/Geo/gmshVertex.h
+++ b/Geo/gmshVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionEdge.h b/Geo/partitionEdge.h
index 8888e6aa0c833716f1e3666c9274a03cf399cfed..e09530810776f4c33e826e7539b514baab80b050 100644
--- a/Geo/partitionEdge.h
+++ b/Geo/partitionEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionFace.h b/Geo/partitionFace.h
index d2971b0a2c340983ae3fd17620ac7efe7485a9d4..5d339848e99d9758a7682d4877ae1243718c8654 100644
--- a/Geo/partitionFace.h
+++ b/Geo/partitionFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionVertex.h b/Geo/partitionVertex.h
index 7336affb2568cec676b725f266791a7e8621c212..1fcb5410d8259378c4d5e6de93544ecd7d38626c 100644
--- a/Geo/partitionVertex.h
+++ b/Geo/partitionVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/CMakeLists.txt b/Graphics/CMakeLists.txt
index ad73469ee614e94c6fae69f34a133252b50764e0..1b143a3ae360bbc102bc8db82cdbe62c8664810c 100644
--- a/Graphics/CMakeLists.txt
+++ b/Graphics/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Camera.cpp b/Graphics/Camera.cpp
index fdd2cb0b2c70f12e3c9e4939555d7b2fff31e130..a7fa57822a0e8bd57c37f5cfe16fb57b1bfabf39 100644
--- a/Graphics/Camera.cpp
+++ b/Graphics/Camera.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Camera.h b/Graphics/Camera.h
index 019c9a82cb34aa2543f5a4f91cf0a1c3327f35c5..090377f0f706670d6cede2ea456cf0df2d266f10 100644
--- a/Graphics/Camera.h
+++ b/Graphics/Camera.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/PixelBuffer.h b/Graphics/PixelBuffer.h
index 14e3d8b1886560916f40fb256d826466492959e2..c07eba7f3d191c4cacdc9ae5bcca0789a1c2f45e 100644
--- a/Graphics/PixelBuffer.h
+++ b/Graphics/PixelBuffer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp
index 8cb747cd5105c8502e104cd84c3e62e6fcfb31d3..b0279485aca43e2ebbc1538026f4cc6cd263e282 100644
--- a/Graphics/ReadImg.cpp
+++ b/Graphics/ReadImg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.h b/Graphics/ReadImg.h
index 016c6253ed89f836bd0ac4f732afdd3ae514a990..e01f1f7896604937a19127c1070c4c613af138d7 100644
--- a/Graphics/ReadImg.h
+++ b/Graphics/ReadImg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawAxes.cpp b/Graphics/drawAxes.cpp
index 9e2ff6d51a920df5adf07a66e5b3ad6b6eef9ae7..21b5e6fa9286fe06b241530a8d3255e32b71ac60 100644
--- a/Graphics/drawAxes.cpp
+++ b/Graphics/drawAxes.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawContext.cpp b/Graphics/drawContext.cpp
index 19fadad621d43ea670c711762034818bcb780862..a4dd4ec4e1e158c641e9231e725281cbcbf46d7a 100644
--- a/Graphics/drawContext.cpp
+++ b/Graphics/drawContext.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -281,7 +281,6 @@ void drawContext::draw3d()
   drawGeom();
   drawMesh();
   drawPost();
-
 }
 
 void drawContext::draw2d()
diff --git a/Graphics/drawContext.h b/Graphics/drawContext.h
index 036d5729d952e892eb99558cf13f35644314a183..ced0b66e4263281ac5766df98003ef0c5ecfc736 100644
--- a/Graphics/drawContext.h
+++ b/Graphics/drawContext.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGeom.cpp b/Graphics/drawGeom.cpp
index c7c23e5e66b73025a4f60c1f76ed6a5e6eb911b4..b6269dad7d2c401bec76344d6e0317d81726370b 100644
--- a/Graphics/drawGeom.cpp
+++ b/Graphics/drawGeom.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGlyph.cpp b/Graphics/drawGlyph.cpp
index 5c49bfc4da32900a2c3dc53453d1f0f60dc000d3..8bbb7048152e8cd3cd26e7bc0831310d1628e51d 100644
--- a/Graphics/drawGlyph.cpp
+++ b/Graphics/drawGlyph.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGraph2d.cpp b/Graphics/drawGraph2d.cpp
index 5a44adc7c7d50ec2e974571a2392b3f0a2459447..b840e52b8000084c02c6b9856bcac8eea798425c 100644
--- a/Graphics/drawGraph2d.cpp
+++ b/Graphics/drawGraph2d.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawMesh.cpp b/Graphics/drawMesh.cpp
index 3221dc7f101e749aff25a4f7c7fc9a81d3072ddb..ed7ba3bf2acaa7f580d2fa65a1d7a8b6d5d2b0e5 100644
--- a/Graphics/drawMesh.cpp
+++ b/Graphics/drawMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawPost.cpp b/Graphics/drawPost.cpp
index 19495155a0542e25fe00f58e298639a9654e8abe..36647df5cac36304ba2088430f401213a7881d80 100644
--- a/Graphics/drawPost.cpp
+++ b/Graphics/drawPost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -398,6 +398,19 @@ class drawPView {
       glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
     else
       glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
+
+    if(opt->axes && opt->type == PViewOptions::Plot3D){
+      glColor4ubv((GLubyte *) & opt->color.axes);
+      glLineWidth((float)CTX::instance()->lineWidth);
+      gl2psLineWidth((float)(CTX::instance()->lineWidth * 
+                             CTX::instance()->print.epsLineWidthFactor));
+      if(!opt->axesAutoPosition)
+        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
+                       opt->axesPosition, opt->axesMikado);
+      else if(!opt->tmpBBox.empty())
+        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
+                       opt->tmpBBox, opt->axesMikado);
+    }
     
     if(!CTX::instance()->clipWholeElements){
       for(int i = 0; i < 6; i++)
@@ -477,20 +490,6 @@ class drawPView {
 
     for(int i = 0; i < 6; i++)
       glDisable((GLenum)(GL_CLIP_PLANE0 + i));
-
-    if(opt->axes && opt->type == PViewOptions::Plot3D){
-      glColor4ubv((GLubyte *) & opt->color.axes);
-      glLineWidth((float)CTX::instance()->lineWidth);
-      gl2psLineWidth((float)(CTX::instance()->lineWidth * 
-                             CTX::instance()->print.epsLineWidthFactor));
-      if(!opt->axesAutoPosition)
-        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
-                       opt->axesPosition, opt->axesMikado);
-      else if(!opt->tmpBBox.empty())
-        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
-                       opt->tmpBBox, opt->axesMikado);
-    }
-    
   }
 };
 
diff --git a/Graphics/drawScales.cpp b/Graphics/drawScales.cpp
index a3e70592c93e366d2a64b560ecac26582835c82e..838a26e8261a8eb3766fec2ea2dc5842739eee0d 100644
--- a/Graphics/drawScales.cpp
+++ b/Graphics/drawScales.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.cpp b/Graphics/gl2gif.cpp
index 5ac0711ae47fba06159a30fc465fe831f290bc4e..7b870f64459797d7f8b6a9370af27d473c55cbdd 100644
--- a/Graphics/gl2gif.cpp
+++ b/Graphics/gl2gif.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.h b/Graphics/gl2gif.h
index 8cfc0d87ad356ba564f89fd2bee09cc3ace206fc..923991dbc618b0c102a2a0de3f0a90c418479672 100644
--- a/Graphics/gl2gif.h
+++ b/Graphics/gl2gif.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.cpp b/Graphics/gl2jpeg.cpp
index 59af5e09fed854e0e4d2c6bc3b9413a031e8a12e..aabe4c661d68008240b74e2eec5b12afd9292d8e 100644
--- a/Graphics/gl2jpeg.cpp
+++ b/Graphics/gl2jpeg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.h b/Graphics/gl2jpeg.h
index 67988928e786ff21538a2082eacb8dea30d96dd1..b25a7a050f0121e92eafed36f33fde4b4271a3e2 100644
--- a/Graphics/gl2jpeg.h
+++ b/Graphics/gl2jpeg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2png.cpp b/Graphics/gl2png.cpp
index b53424be9e98ad740f6656021380eeab2fff6a23..86dde122d23156135baf4a2c4da5a739b8f02f3c 100644
--- a/Graphics/gl2png.cpp
+++ b/Graphics/gl2png.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -56,8 +56,7 @@ void create_png(FILE *file, PixelBuffer *buffer, int quality)
   int width = buffer->getWidth();
   int numcomp = buffer->getNumComp();
 
-  // Z_DEFAULT_COMPRESSION, Z_BEST_SPEED, Z_BEST_COMPRESSION, Z_NO_COMPRESSION
-  png_set_compression_level(png_ptr, Z_DEFAULT_COMPRESSION);
+  //png_set_compression_level(png_ptr, 5);
   png_set_IHDR(png_ptr, info_ptr, width, height, 8, 
                (numcomp == 3) ? PNG_COLOR_TYPE_RGB : PNG_COLOR_TYPE_RGBA,
                PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
diff --git a/Graphics/gl2png.h b/Graphics/gl2png.h
index c3de6531dce70fa0283a279010e6c1069a1ee759..1fb7c89010b64183bba7ca418e5f949d9becd606 100644
--- a/Graphics/gl2png.h
+++ b/Graphics/gl2png.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.cpp b/Graphics/gl2ppm.cpp
index 472cbaf675dee9a487a231561268736111732a8d..aba19592c00e0e299a3717429233abd27b9ce325 100644
--- a/Graphics/gl2ppm.cpp
+++ b/Graphics/gl2ppm.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.h b/Graphics/gl2ppm.h
index b63c34e757325fa719b60533449f22bb44ff1524..3d30c986cbdc92cdc14111c8e3fe1a3838de8d4b 100644
--- a/Graphics/gl2ppm.h
+++ b/Graphics/gl2ppm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.cpp b/Graphics/gl2yuv.cpp
index 7c64699cad4519f788eeb1b6f90a564599e00488..568937800c2d3eea5e6db5af0b60cd5dbca85e04 100644
--- a/Graphics/gl2yuv.cpp
+++ b/Graphics/gl2yuv.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.h b/Graphics/gl2yuv.h
index 07d22f810458b1697fcac4ccb6b0e6da8a95f8d0..07fe09510c5b88126c0261ae12490c6508dfd71e 100644
--- a/Graphics/gl2yuv.h
+++ b/Graphics/gl2yuv.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index d25cb34423590784e43fd87a4bf2e5d27c4cbb29..11cf3c3718b19bc431f22bbbef2c579660a7e6dd 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.h b/Mesh/BDS.h
index 4542f69c1f93e2e63208b8de50414d6c418a293d..d6b479c4015ef1c012c62e391c09f9eb816e053c 100644
--- a/Mesh/BDS.h
+++ b/Mesh/BDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index e05c8bcdc2c5ab8fb90cac09bfc17a06287b3b07..eb2544dfdb600ea971c808b73b7b24f89cd2f9cf 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.h b/Mesh/BackgroundMesh.h
index 91f155181a7911a5bc37855bb6ab94e54af18e5b..8477fbaf31ae9a264a8af2cadb408cd7cbbbd1df 100644
--- a/Mesh/BackgroundMesh.h
+++ b/Mesh/BackgroundMesh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.cpp b/Mesh/BoundaryLayers.cpp
index 05b58eeb662a99f1321ae9915bd9b21a7db1ec7e..3c5e6dfdf9be3d3a62204a9328b4ebeddb4942c6 100644
--- a/Mesh/BoundaryLayers.cpp
+++ b/Mesh/BoundaryLayers.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.h b/Mesh/BoundaryLayers.h
index 8cbb592734d535d0beacc6a3e7c144eea0575e11..521c0355a491eeea962c0f97183b62595b4b4b99 100644
--- a/Mesh/BoundaryLayers.h
+++ b/Mesh/BoundaryLayers.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/CMakeLists.txt b/Mesh/CMakeLists.txt
index 9c1fe2771b542247df6ce7ce788ce1ac13ccd00b..07ef9fcd35a9e9367cfc153455637b2019fb2d1e 100644
--- a/Mesh/CMakeLists.txt
+++ b/Mesh/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 6888cc6a3f875d869ca8fc5c725946615642afa6..56e0dc49d9b882066312ccf8d54d267cfe60b762 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.h b/Mesh/Field.h
index 6b11213e77dc3b028c86bd088ca1fb5f6cf5a7da..fdb070d201ff3e5122d30700810b72f1de6ca91b 100644
--- a/Mesh/Field.h
+++ b/Mesh/Field.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 634023b92a6ad144f554dad1fc2f8474ca912e40..293861cb3ff911adffbcaff9fd5328d87c7e6e82 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -93,17 +93,17 @@ static void buildASetOfEquivalentMeshVertices(GFace *gf,
   }
 }
 
-struct geomTresholdVertexEquivalence 
+struct geomThresholdVertexEquivalence 
 {
   // Initial MVertex associated to one given MVertex
   std::map<GVertex*, MVertex*> backward_map;
   // initiate the forward and backward maps
-  geomTresholdVertexEquivalence(GModel *g);  
+  geomThresholdVertexEquivalence(GModel *g);  
   // restores the initial state
-  ~geomTresholdVertexEquivalence ();
+  ~geomThresholdVertexEquivalence ();
 };
 
-geomTresholdVertexEquivalence::geomTresholdVertexEquivalence(GModel *g)
+geomThresholdVertexEquivalence::geomThresholdVertexEquivalence(GModel *g)
 {
   std::multimap<MVertex*, MVertex*> equivalenceMap;
   for (GModel::fiter it = g->firstFace(); it != g->lastFace(); ++it)
@@ -147,7 +147,7 @@ geomTresholdVertexEquivalence::geomTresholdVertexEquivalence(GModel *g)
   }
 }
 
-geomTresholdVertexEquivalence::~geomTresholdVertexEquivalence()
+geomThresholdVertexEquivalence::~geomThresholdVertexEquivalence()
 {
   // restore the initial data
   for (std::map<GVertex*, MVertex*>::iterator it = backward_map.begin();
@@ -433,7 +433,7 @@ static void Mesh2D(GModel *m)
     (*it)->meshStatistics.status = GFace::PENDING;
 
   // skip short mesh edges
-  //geomTresholdVertexEquivalence inst(m);
+  //geomThresholdVertexEquivalence inst(m);
 
   // boundary layers are special: their generation (including vertices
   // and curve meshes) is global as it depends on a smooth normal
diff --git a/Mesh/Generator.h b/Mesh/Generator.h
index 40f808322d930aa04768b0bc874e6ad645f99ac3..0f0faceacfc91d21ee8376396bd537c1416c79a8 100644
--- a/Mesh/Generator.h
+++ b/Mesh/Generator.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index 9d75f9192ef74c05e3b02f086824bb091efed775..b34adb5348ee695cbec588e37689faccd60a26a5 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -275,7 +275,7 @@ static void getEdgeVertices(GEdge *ge, MElement *ele, std::vector<MVertex*> &ve,
         MVertex *v;
         if(linear || !reparamOK || uc < u0 || uc > u1){ 
           Msg::Warning("We don't have a valid parameter on curve %d-%d",
-             v0->getNum(), v1->getNum());
+                       v0->getNum(), v1->getNum());
           // we don't have a (valid) parameter on the curve
           SPoint3 pc = edge.interpolate(t);
           v = new MVertex(pc.x(), pc.y(), pc.z(), ge);
diff --git a/Mesh/HighOrder.h b/Mesh/HighOrder.h
index c0d073c95c308b1330604e58aecc1b8bab6f283e..8a65fc06005fc0a2e8e56f979ba7da50e216d468 100644
--- a/Mesh/HighOrder.h
+++ b/Mesh/HighOrder.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/highOrderSmoother.cpp b/Mesh/highOrderSmoother.cpp
index 9af6846951c2f085f75d9e4c7f4a30c322e7179e..6992b2f64b73f0d5db5f85278a2e6cf7d83d426d 100644
--- a/Mesh/highOrderSmoother.cpp
+++ b/Mesh/highOrderSmoother.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/highOrderSmoother.h b/Mesh/highOrderSmoother.h
index 26a684cc08fc396d35d346f85841964fe51b0eef..ef1303ef89ab8776dbb431e62c06fc6e301a5268 100644
--- a/Mesh/highOrderSmoother.h
+++ b/Mesh/highOrderSmoother.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index 0d6f9184202bce1150563264b2e864b624204654..63b1a5156ea1b53310bc7b974b808db105643b01 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.h b/Mesh/meshGEdge.h
index 36082ab4e309a4f52bb08fd11c1a04cbd94bd901..f18f3da04c93ffee72cd7fcde70302635ad99cb5 100644
--- a/Mesh/meshGEdge.h
+++ b/Mesh/meshGEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdgeExtruded.cpp b/Mesh/meshGEdgeExtruded.cpp
index 95a55f7e7ce87f64ea5c62f80b4c6ed0e2608e92..3348c8110d4e90a18fb394ceafe17a725749cfae 100644
--- a/Mesh/meshGEdgeExtruded.cpp
+++ b/Mesh/meshGEdgeExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index f4226d1ab0e354b8b53f5b9875816afc4b07c45c..2fff56356f959c9d82d2d6b1dc4dd1f619eab0fe 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -450,9 +450,9 @@ static bool meshGenerator(GFace *gf, int RECUR_ITER,
     ++itvx;
   }
  
-  // add _additional_vertices 
-  all_vertices.insert(gf->_additional_vertices.begin(),
-                      gf->_additional_vertices.end());
+  // add additional vertices 
+  all_vertices.insert(gf->additionalVertices.begin(),
+                      gf->additionalVertices.end());
 
 
   if(all_vertices.size() < 3){
@@ -918,9 +918,9 @@ static bool meshGenerator(GFace *gf, int RECUR_ITER,
                        gf->meshStatistics.nbGoodQuality);
 
   gf->mesh_vertices.insert(gf->mesh_vertices.end(),
-			      gf->_additional_vertices.begin(),
-			      gf->_additional_vertices.end());
-  gf->_additional_vertices.clear();
+			      gf->additionalVertices.begin(),
+			      gf->additionalVertices.end());
+  gf->additionalVertices.clear();
 
   return true;
 }
diff --git a/Mesh/meshGFace.h b/Mesh/meshGFace.h
index 3ea931e09a526eb3932ad3f9a08d2c9491d4a7b2..e2c870cb331ebaef53010147a0477648cce98f27 100644
--- a/Mesh/meshGFace.h
+++ b/Mesh/meshGFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.cpp b/Mesh/meshGFaceBDS.cpp
index 17b081036fdc9dd10499c0cefe3c515db77a3c3d..7478cde5149ca89521b5ea2fd94588b487fc8674 100644
--- a/Mesh/meshGFaceBDS.cpp
+++ b/Mesh/meshGFaceBDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.h b/Mesh/meshGFaceBDS.h
index ae55a24e6094957e886ff6e117b49ddb0405c478..60cd73f267fdad2586120f7b198e8140412f9d7b 100644
--- a/Mesh/meshGFaceBDS.h
+++ b/Mesh/meshGFaceBDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBamg.cpp b/Mesh/meshGFaceBamg.cpp
index 3aa1366f079b2beb913f1c063e270cef1049f4aa..c2c84d6180f14b9bf95d6043459443a37edd0583 100644
--- a/Mesh/meshGFaceBamg.cpp
+++ b/Mesh/meshGFaceBamg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBamg.h b/Mesh/meshGFaceBamg.h
index 0a90874e980304645d53b1823668001acfd471f0..2bff95afe227bfae357ad22a4f712dbe558186e4 100644
--- a/Mesh/meshGFaceBamg.h
+++ b/Mesh/meshGFaceBamg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index 6c8bec0890cad8fd20ca448eef4533bd3d94d434..eb635f6c31373825cffeb21743042eb6ee35217f 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.h b/Mesh/meshGFaceDelaunayInsertion.h
index 76731921a2c9ac479d2b5551497ae857ef9dcc3e..da5af8926117b4fff2513939d8107ee354cb7d9f 100644
--- a/Mesh/meshGFaceDelaunayInsertion.h
+++ b/Mesh/meshGFaceDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp
index 54c1c419b97e925637586ad281053166731c4aa0..20f303178b2a3d2ffb85e61c526f232d4a345c1f 100644
--- a/Mesh/meshGFaceExtruded.cpp
+++ b/Mesh/meshGFaceExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceLloyd.cpp b/Mesh/meshGFaceLloyd.cpp
index adacce0b5707fa2432bf98aba9f07adcca058aa3..0ac384c687c887000a678fdb6aaf31a610b83dc9 100644
--- a/Mesh/meshGFaceLloyd.cpp
+++ b/Mesh/meshGFaceLloyd.cpp
@@ -218,14 +218,14 @@ void lloydAlgorithm::operator () (GFace *gf)
   deMeshGFace killer;
   killer(gf);
   
-  gf->_additional_vertices = mesh_vertices;
+  gf->additionalVertices = mesh_vertices;
   Msg::Info("Lloyd remeshing of face %d ", gf->tag());
   meshGFace mesher;
   mesher(gf);
   gf->mesh_vertices.insert(gf->mesh_vertices.begin(),
-                           gf->_additional_vertices.begin(),  
-                           gf->_additional_vertices.end());  
-  gf->_additional_vertices.clear();  
+                           gf->additionalVertices.begin(),  
+                           gf->additionalVertices.end());  
+  gf->additionalVertices.clear();  
 }
 
 double lloydAlgorithm::optimize(int max,int flag){
diff --git a/Mesh/meshGFaceLloyd.h b/Mesh/meshGFaceLloyd.h
index b40bc46a9ec5673e5963183f79d9a79d35833c07..cc79af379e81c020269fafaf323651d351e8528f 100644
--- a/Mesh/meshGFaceLloyd.h
+++ b/Mesh/meshGFaceLloyd.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceOptimize.cpp b/Mesh/meshGFaceOptimize.cpp
index abf7b9439fa71239a1218c8ceb40d7ab3f462960..bf064ae5722a4560fe85c834c98084d620a56313 100644
--- a/Mesh/meshGFaceOptimize.cpp
+++ b/Mesh/meshGFaceOptimize.cpp
@@ -1,8 +1,9 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
+#include "GmshConfig.h"
 #include "meshGFaceOptimize.h"
 #include "qualityMeasures.h"
 #include "GFace.h"
@@ -2069,10 +2070,6 @@ void recombineIntoQuadsIterative(GFace *gf)
   }
 }
 
-
-
-#include "Bindings.h"
-
 double Temporary::w1,Temporary::w2,Temporary::w3;
 std::vector<SVector3> Temporary::gradients;
 
@@ -2178,7 +2175,8 @@ double Temporary::compute_alignment(const MEdge&_edge, MElement*element1, MEleme
   return alignment;
 }
 
-void Temporary::read_data(std::string file_name){
+void Temporary::read_data(std::string file_name)
+{
   int i,j,number;
   double x,y,z;
   MElement*element;
@@ -2203,7 +2201,8 @@ void Temporary::read_data(std::string file_name){
   }
 }
 
-void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,double _w3){
+void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,double _w3)
+{
   GFace*face;
   GModel*model = GModel::current();
   GModel::fiter iterator;
@@ -2219,15 +2218,3 @@ void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,doubl
   }
 }
 
-void Temporary::registerBindings(binding *b){
-  classBinding*cb = b->addClass<Temporary>("Temporary");
-  cb->setDescription("This class is used to create quad meshes from a script.");
-  methodBinding*cm;
-  cm = cb->setConstructor<Temporary>();
-  cm->setDescription("This is the constructor.");
-  cm = cb->addMethod("quadrilaterize",&Temporary::quadrilaterize);
-  cm->setDescription("This function creates the quad mesh.");
-  cm->setArgNames("file_name","w1","w2","w3",NULL);
-}
-
-
diff --git a/Mesh/meshGFaceOptimize.h b/Mesh/meshGFaceOptimize.h
index d4f01d47bef774b52369884c158f6a2ec13742e7..98d6b6f17e353fa37dd2bfadeb880bf549bd11ea 100644
--- a/Mesh/meshGFaceOptimize.h
+++ b/Mesh/meshGFaceOptimize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -141,7 +141,6 @@ class Temporary{
 	static double compute_total_cost(double,double);
 	static void select_weights(double,double,double);
 	static double compute_alignment(const MEdge&,MElement*,MElement*);
-	static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Mesh/meshGFaceQuadrilateralize.cpp b/Mesh/meshGFaceQuadrilateralize.cpp
index ce2bd31e7f1ba2c9038aa193c0ad99cad9a85e0e..cc0754cdf25a038fb9538756c0e98e08a46ede06 100644
--- a/Mesh/meshGFaceQuadrilateralize.cpp
+++ b/Mesh/meshGFaceQuadrilateralize.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceQuadrilateralize.h b/Mesh/meshGFaceQuadrilateralize.h
index 99afc2d6fec746b5768a66de717e09489db29da1..c4682222bd9f2459017ec29da14f786e0f93c53b 100644
--- a/Mesh/meshGFaceQuadrilateralize.h
+++ b/Mesh/meshGFaceQuadrilateralize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceTransfinite.cpp b/Mesh/meshGFaceTransfinite.cpp
index ce00a080ec8c72d29d6712e24ff005881467eee5..e46d45701c93c2b7501485318a6e41554b2ad4f3 100644
--- a/Mesh/meshGFaceTransfinite.cpp
+++ b/Mesh/meshGFaceTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp
index 0674c9d137dd8b6047c076e7323d656c25b310b6..0f104fa8f69a338efe4267f0c51793a3666834c1 100644
--- a/Mesh/meshGRegion.cpp
+++ b/Mesh/meshGRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.h b/Mesh/meshGRegion.h
index 034891e50f63ef3370aae3a4a1880af2e1133f1d..25bbddc1169be81bc849fe1cf12ff730f263f204 100644
--- a/Mesh/meshGRegion.h
+++ b/Mesh/meshGRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionCarveHole.cpp b/Mesh/meshGRegionCarveHole.cpp
index ffe26fa69919dc72a24a8ab038fa828eaeb588ff..0219a186af0c7d77818f834ec998a89a93b6b359 100644
--- a/Mesh/meshGRegionCarveHole.cpp
+++ b/Mesh/meshGRegionCarveHole.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp
index 4d63df881415b6a40b942c80dab49fd6ca738130..484c31b5e37b8bbe0299ab40051e71c20e2f7557 100644
--- a/Mesh/meshGRegionDelaunayInsertion.cpp
+++ b/Mesh/meshGRegionDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.h b/Mesh/meshGRegionDelaunayInsertion.h
index 1c23b284ebe9f943ac2894a29e0958fd2210721a..2e20470e75ccf485717993b1729ebc50278278e2 100644
--- a/Mesh/meshGRegionDelaunayInsertion.h
+++ b/Mesh/meshGRegionDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp
index 2bb55f4d3040b4f7ff61cb19452bf91656c4afac..110b0696f3e635f89529628d698ca244c04dc5ea 100644
--- a/Mesh/meshGRegionExtruded.cpp
+++ b/Mesh/meshGRegionExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.cpp b/Mesh/meshGRegionLocalMeshMod.cpp
index 5128bb5923b04232162234d9125735f96620d583..11fa9beb078995e9d51dfd30777aa6c559a68e2e 100644
--- a/Mesh/meshGRegionLocalMeshMod.cpp
+++ b/Mesh/meshGRegionLocalMeshMod.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.h b/Mesh/meshGRegionLocalMeshMod.h
index 3672cf3ba4069b105c3e1f3171c1f17b32f6cb43..9c4cf5af7b94eb281a3e770129e216ce561bc8bc 100644
--- a/Mesh/meshGRegionLocalMeshMod.h
+++ b/Mesh/meshGRegionLocalMeshMod.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionTransfinite.cpp b/Mesh/meshGRegionTransfinite.cpp
index 7bcf689c313686bf604d8e69c1f159dd631e1121..8152dc031cd8d87a7895193973aaa67f02250db1 100644
--- a/Mesh/meshGRegionTransfinite.cpp
+++ b/Mesh/meshGRegionTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartition.cpp b/Mesh/meshPartition.cpp
index f55ee7d5675e902ed1132d230ac9d981f0559e67..53a0c254483816b32f1d2b57a6b50de0e60241ea 100644
--- a/Mesh/meshPartition.cpp
+++ b/Mesh/meshPartition.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartition.h b/Mesh/meshPartition.h
index 928fa8d939f6d20e870590d95162621d2e4d337f..2f6caf2a2d19977f164fb88313a18cb5325fc42b 100644
--- a/Mesh/meshPartition.h
+++ b/Mesh/meshPartition.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartitionObjects.h b/Mesh/meshPartitionObjects.h
index 26e2b731095aca653996222c3952494ae32f3c3b..48988d00cc4bc2fe1e211ae08e518c4e6528b722 100644
--- a/Mesh/meshPartitionObjects.h
+++ b/Mesh/meshPartitionObjects.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartitionOptions.cpp b/Mesh/meshPartitionOptions.cpp
index 101a7ea3e6ff42ad81928c373f5c18c038c50185..c9f4c6dee8f6364f00d1a4692c3302a0ae0385d0 100644
--- a/Mesh/meshPartitionOptions.cpp
+++ b/Mesh/meshPartitionOptions.cpp
@@ -57,26 +57,3 @@ void meshPartitionOptions::setAlgorithm(int algo)
 {
   algorithm=algo;
 }
-
-
-#include "Bindings.h"
-void meshPartitionOptions::registerBindings(binding *b){
-  classBinding *cb = b->addClass<meshPartitionOptions>("meshPartitionOptions");
-  cb->setDescription("Defines the options for mesh partitioning (CHACO/METIS)");
-  methodBinding *cm;
-  cm = cb->setConstructor<meshPartitionOptions>();
-  cm->setDescription("Build an object that contains all the options needed to perform a partitioning, when creating object default options are applied");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("partition", &meshPartitionOptions::partition);
-  cm->setDescription("Partition with the specified option the GModel given as argument");
-  cm->setArgNames("GModel", NULL);
-  cm = cb->addMethod("setNumOfPartitions", &meshPartitionOptions::setNumOfPartitions);
-  cm->setDescription("Define the number of partitions desired");
-  cm->setArgNames("numPart", NULL);
-  cm = cb->addMethod("getNumConstraints", &meshPartitionOptions::getNumConstraints);
-  cm->setDescription("Get the number of different weights on the elements");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("setAlgorithm", &meshPartitionOptions::setAlgorithm);
-  cm->setDescription("Set the partitionning algorithm");
-  cm->setArgNames("algo", NULL);
-}
diff --git a/Mesh/meshPartitionOptions.h b/Mesh/meshPartitionOptions.h
index 549cb0af45bc26efe71e2250e35e8e41c913310c..1620ee2c6f5cb7f57b4bc507af71535506e2368b 100644
--- a/Mesh/meshPartitionOptions.h
+++ b/Mesh/meshPartitionOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -116,7 +116,6 @@ class meshPartitionOptions
     int getNumConstraints(){return ncon;};
     void partition(GModel *model);
     std::map<int,  std::vector<int> >& getWeightMap(){return weightMap;};
-    static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Mesh/meshRefine.cpp b/Mesh/meshRefine.cpp
index 496834387a6ec6b20d33b47c50c5eab5d34fc4eb..2ee8cca87607a0ebde0c3cb2099a7baef77bb009 100644
--- a/Mesh/meshRefine.cpp
+++ b/Mesh/meshRefine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/multiscalePartition.h b/Mesh/multiscalePartition.h
index f1ff46b60461e7d1203a75142dc1911abf2254d5..ad5a24af2111b5fc632c7635521d1ccadd644439 100644
--- a/Mesh/multiscalePartition.h
+++ b/Mesh/multiscalePartition.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/qualityMeasures.cpp b/Mesh/qualityMeasures.cpp
index 2b2e4dc88f984cfd2e972dc151998154b4c365aa..bfa67191cac02d6198905d4a3d1ff955014d13ce 100644
--- a/Mesh/qualityMeasures.cpp
+++ b/Mesh/qualityMeasures.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/qualityMeasures.h b/Mesh/qualityMeasures.h
index 54dba3ff3b2409cce61a10dcf133b5a30aca233c..22ed37b2d9a81f029c87f556f08f0fbab7bd14be 100644
--- a/Mesh/qualityMeasures.h
+++ b/Mesh/qualityMeasures.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/NonLinearSolver/CMakeLists.txt b/NonLinearSolver/CMakeLists.txt
index 98fcf560fa1b991a1d6241025bb34dff30ed81e1..9c40d305ef60c827f4660267ff246facea9f7038 100644
--- a/NonLinearSolver/CMakeLists.txt
+++ b/NonLinearSolver/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/NonLinearSolver/internalPoints/CMakeLists.txt b/NonLinearSolver/internalPoints/CMakeLists.txt
index 2990968ad276f3b417e712b05b36b7bc8dd08a9e..10827f32d42072ba55a55914b720086777cc356d 100644
--- a/NonLinearSolver/internalPoints/CMakeLists.txt
+++ b/NonLinearSolver/internalPoints/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/CMakeLists.txt b/Numeric/CMakeLists.txt
index edf76e892e8372aa30da77598890dfc54995de63..88cd8089b565425a8b8bea09eb559b87637f9a87 100644
--- a/Numeric/CMakeLists.txt
+++ b/Numeric/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/DivideAndConquer.cpp b/Numeric/DivideAndConquer.cpp
index d8715ae9eeafaf22ebf00a20df5623792c020817..b1de08dcf06404c7b754baad3bef56d0b64a5265 100644
--- a/Numeric/DivideAndConquer.cpp
+++ b/Numeric/DivideAndConquer.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -863,14 +863,16 @@ void DocRecord::setPoints(fullMatrix<double> *p)
   }
 } 
 
-void DocRecord::initialize(){
+void DocRecord::initialize()
+{
   int i;
   for(i=0;i<numPoints;i++){
 	points[i].flag = 0;
   }
 }
 
-bool DocRecord::remove_point(int index){
+bool DocRecord::remove_point(int index)
+{
   if(points[index].flag == 0){
     points[index].flag = 1;
     return 1;
@@ -878,7 +880,8 @@ bool DocRecord::remove_point(int index){
   else return 0;
 }
 
-void DocRecord::remove_all(){
+void DocRecord::remove_all()
+{
   int i;
   int index;
   int numPoints2;
@@ -906,7 +909,8 @@ void DocRecord::remove_all(){
   numPoints = numPoints2;
 }
 
-void DocRecord::add_point(double x,double y,GFace*face){
+void DocRecord::add_point(double x,double y,GFace*face)
+{
   PointRecord point;
   point.where.h = x;
   point.where.v = y; 
@@ -915,31 +919,3 @@ void DocRecord::add_point(double x,double y,GFace*face){
   numPoints = numPoints+1;
 }
 
-#include "Bindings.h"
-
-void DocRecord::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<DocRecord>("Triangulator");
-  cb->setDescription("A class that does 2D delaunay triangulation "
-                     "(JF's SANDBOX for the moment)");
-  methodBinding *cm;
-
-  cm = cb->addMethod("setPoints", &DocRecord::setPoints);
-  cm->setDescription("Set the NumPoints points of the triangulation (x,y,fixed)");
-  cm->setArgNames("points",NULL);
-  cm = cb->addMethod("Triangulate", &DocRecord::MakeMeshWithPoints);
-  cm->setDescription("Compute the Delaunay triangulation");
-  cm = cb->addMethod("Voronoi", &DocRecord::Voronoi);
-  cm->setDescription("Compute the Voronoi cells");
-  cm = cb->addMethod("hullSize", &DocRecord::hullSize);
-  cm->setDescription("returns the size of the hull");
-  cm = cb->addMethod("makePosView", &DocRecord::makePosView);
-  cm->setDescription("save a .pos file with the voronoi in GFace");
-  cm->setArgNames("FileName", "GFace", NULL);
-  cm = cb->addMethod("Lloyd", &DocRecord::Lloyd);
-  cm->setDescription("do one iteration of Lloyd's algorithm");
-  cm->setArgNames("Type",NULL);
-  cm = cb->setConstructor<DocRecord,int>();
-  cm->setDescription ("A Triangulator");
-  cm->setArgNames("NumPoints",NULL);
-}
diff --git a/Numeric/DivideAndConquer.h b/Numeric/DivideAndConquer.h
index 84d64d63de32d66240c2b660ee51104d3647b0a0..b1ffec78c7965cc994fcdecbf5679a9b9bf1c21c 100644
--- a/Numeric/DivideAndConquer.h
+++ b/Numeric/DivideAndConquer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@
 #include "simpleFunction.h"
 #include "Octree.h"
 
-class binding;
 class GFace;
 typedef struct _CDLIST DListRecord, *DListPeek;
 typedef int PointNumero;
@@ -109,7 +108,6 @@ class DocRecord{
   void remove_all();
   void add_point(double,double,GFace*);
   PointNumero *ConvertDlistToArray(DListPeek *dlist, int *n);
-  static void registerBindings(binding *b);
 };
 
 void centroidOfOrientedBox(std::vector<SPoint2> &pts,
diff --git a/Numeric/Gauss.cpp b/Numeric/Gauss.cpp
index 50fbb050db8d526b18d436b255943e97fd46341a..ca0c88b2e914f7375f94903212698885ae31dad9 100644
--- a/Numeric/Gauss.cpp
+++ b/Numeric/Gauss.cpp
@@ -1,7 +1,9 @@
 #include "Gauss.h"
 #include "GmshDefines.h"
-#include "Bindings.h"
-static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, fullMatrix<double> &wMatrix) {
+
+static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, 
+                           fullMatrix<double> &wMatrix) 
+{
   pMatrix.resize(npts,3);
   wMatrix.resize(npts,1);
   for (int i=0;i<npts;i++) {
@@ -11,49 +13,39 @@ static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, fu
     wMatrix(i,0) = pts[i].weight;
   }
 }
-void gaussIntegration::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<gaussIntegration>("gaussIntegration");
-  cb->setDescription("Gauss integration rules (points+weights)");
-  methodBinding *mb = cb->addMethod("getTriangle", &gaussIntegration::getTriangle);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a triangle");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getLine", &gaussIntegration::getLine);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a line");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getQuad", &gaussIntegration::getQuad);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a quad");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getTetrahedron", &gaussIntegration::getTetrahedron);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a tetrahedron");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getHexahedron", &gaussIntegration::getHexahedron);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a hexahedron");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getPrism", &gaussIntegration::getPrism);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a prism");
-  mb->setArgNames("order","points","weights",NULL);
-}
 
-void gaussIntegration::getTriangle(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+void gaussIntegration::getTriangle(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQTPts(order),getGQTPts(order),pts,weights);
 }
-void gaussIntegration::getLine(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getLine(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQLPts(order),getGQLPts(order),pts,weights);
 }
-void gaussIntegration::getQuad(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getQuad(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQQPts(order),getGQQPts(order),pts,weights);
 }
-void gaussIntegration::getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQTetPts(order),getGQTetPts(order),pts,weights);
 }
-void gaussIntegration::getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQHPts(order),getGQHPts(order),pts,weights);
 }
-void gaussIntegration::getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQPriPts(order),getGQPriPts(order),pts,weights);
 }
-void gaussIntegration::get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   switch (elementType) {
     case TYPE_TRI : pts2fullMatrix(getNGQTPts(order), getGQTPts(order), pts, weights); break;
     case TYPE_LIN : pts2fullMatrix(getNGQLPts(order), getGQLPts(order), pts, weights); break;
diff --git a/Numeric/Gauss.h b/Numeric/Gauss.h
index 789f801080cb3e750ea8aa87b604b302a7df47b7..bc2b35595933ed6c4a3ca193f0d58ba6dc778fdd 100644
--- a/Numeric/Gauss.h
+++ b/Numeric/Gauss.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -34,9 +34,6 @@ IntPt *getGQPriPts(int order);
 int getNGQHPts(int order);
 IntPt *getGQHPts(int order);
 
-//For now this class is only for bindings but maybe the interface is
-//cleaner (it does not add new types) and it can replace the other
-//interface
 class gaussIntegration {
   public:
   static void get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
@@ -46,7 +43,6 @@ class gaussIntegration {
   static void getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
   static void getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
   static void getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Numeric/GaussLegendre1D.h b/Numeric/GaussLegendre1D.h
index 482c0c25cf0879a0c69cabeedd57ab231c620de8..91c4bdc3ae5007ff0b0a18e56c069bfe9f2f0d6b 100644
--- a/Numeric/GaussLegendre1D.h
+++ b/Numeric/GaussLegendre1D.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussLegendreSimplex.cpp b/Numeric/GaussLegendreSimplex.cpp
index 30bcc7bb6664b86428fbba3d6a9d25491f46e8a8..aeed112f422f93a09bb3aa5699901c95f5478911 100644
--- a/Numeric/GaussLegendreSimplex.cpp
+++ b/Numeric/GaussLegendreSimplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureHex.cpp b/Numeric/GaussQuadratureHex.cpp
index 5d2c4fee1a9b96e45af8654f87e956acd623dbd6..808aae08b0949af58d6b9ba576e57af901f05410 100644
--- a/Numeric/GaussQuadratureHex.cpp
+++ b/Numeric/GaussQuadratureHex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureLin.cpp b/Numeric/GaussQuadratureLin.cpp
index 13c056136fba0c7777a244dab0dc70e529ff1e8c..3562a03b0b99516a4de2bbe83d3d108e3676df71 100644
--- a/Numeric/GaussQuadratureLin.cpp
+++ b/Numeric/GaussQuadratureLin.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadraturePri.cpp b/Numeric/GaussQuadraturePri.cpp
index edcd7a06df718b8a43224d28f0b49924ce94f74b..1a328b750c181ef4c4ae9f86d1b2009fcc4655ff 100644
--- a/Numeric/GaussQuadraturePri.cpp
+++ b/Numeric/GaussQuadraturePri.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureQuad.cpp b/Numeric/GaussQuadratureQuad.cpp
index 20b0b5aee34380bbfd4c6ba74635a217a5f5dae4..ddfde8c4f7854640869148d59c5772ac0d571519 100644
--- a/Numeric/GaussQuadratureQuad.cpp
+++ b/Numeric/GaussQuadratureQuad.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTet.cpp b/Numeric/GaussQuadratureTet.cpp
index ae6d728529ae950b0af58b690a4ebd66dfed94a7..c30f455cfd8bfe32ffed8b802775ede50776a897 100644
--- a/Numeric/GaussQuadratureTet.cpp
+++ b/Numeric/GaussQuadratureTet.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTri.cpp b/Numeric/GaussQuadratureTri.cpp
index 123ea365b25cfbb83e7699b7460cabe097ab15ec..7409586c3f36a4e8d270b0abf39faa6c60c01260 100644
--- a/Numeric/GaussQuadratureTri.cpp
+++ b/Numeric/GaussQuadratureTri.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Iso.cpp b/Numeric/Iso.cpp
index 719bcee9fd250d340bc02422a40ae45a799e6309..ade9ad19915ce5823e3ddd846b440afaee471bd1 100644
--- a/Numeric/Iso.cpp
+++ b/Numeric/Iso.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Iso.h b/Numeric/Iso.h
index 11560e6a4f0c105f87026e406c6cb62c9369aac1..be1044e7328d69edd27aeb42b2911bbe34e71c02 100644
--- a/Numeric/Iso.h
+++ b/Numeric/Iso.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/JacobianBasis.cpp b/Numeric/JacobianBasis.cpp
index 2863cbceac9f345d49375f8b63426953e857a522..48c164af035a93f0f7bee070ba6b3843b7f7eb6e 100644
--- a/Numeric/JacobianBasis.cpp
+++ b/Numeric/JacobianBasis.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/JacobianBasis.h b/Numeric/JacobianBasis.h
index 97924d136c6b0e1008a9e6e56309a3c5789ee60c..645c512c7583567b54383b4dfeee9b740360be02 100644
--- a/Numeric/JacobianBasis.h
+++ b/Numeric/JacobianBasis.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp
index 25ae05b37053ddfaae5ce583f40d4d766d93b2c5..b90a654082cd5370004bf22f6baa16cfb761ba60 100644
--- a/Numeric/Numeric.cpp
+++ b/Numeric/Numeric.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h
index 7aa6d64fbb5228cf9ee30c9dd102e74f899ab3ad..b921e327546c630d2623bb7451d6e40b1c8e1bf8 100644
--- a/Numeric/Numeric.h
+++ b/Numeric/Numeric.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/cartesian.h b/Numeric/cartesian.h
index b90a934919ecae3fe1743b020856f8db0b331bd4..0698f7276c2d422275d63ded1648d7a0ed15eb38 100644
--- a/Numeric/cartesian.h
+++ b/Numeric/cartesian.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/fullMatrix.cpp b/Numeric/fullMatrix.cpp
index 342183ce78ad2b83a3529fa8039a3dd55883a133..cd289f5f681821bb3559c15d93d47bd6d1b057dc 100644
--- a/Numeric/fullMatrix.cpp
+++ b/Numeric/fullMatrix.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -379,43 +379,3 @@ bool fullMatrix<double>::svd(fullMatrix<double> &V, fullVector<double> &S)
 }
 
 #endif
-
-#include "Bindings.h"
-
-template<>
-void fullMatrix<double>::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<fullMatrix<double> >("fullMatrix");
-  cb->setDescription("A full matrix of double-precision floating point numbers. "
-                     "The memory is allocated in one continuous block and stored "
-                     "in column major order (like in fortran).");
-  methodBinding *cm;
-  cm = cb->setConstructor<fullMatrix<double>,int,int>();
-  cm->setDescription ("A new matrix of size 'nRows' x 'nColumns'");
-  cm->setArgNames("nRows","nColumns",NULL);
-  cm = cb->addMethod("size1", &fullMatrix<double>::size1);
-  cm->setDescription("Returns the number of rows in the matrix");
-  cm = cb->addMethod("size2", &fullMatrix<double>::size2);
-  cm->setDescription("Returns the number of columns in the matrix");
-  cm = cb->addMethod("get", &fullMatrix<double>::get);
-  cm->setArgNames("i","j",NULL);
-  cm->setDescription("Returns the (i,j) entry of the matrix");
-  cm = cb->addMethod("set", &fullMatrix<double>::set);
-  cm->setArgNames("i","j","v",NULL);
-  cm->setDescription("Sets the (i,j) entry of the matrix to v");
-  cm = cb->addMethod("resize", &fullMatrix<double>::resize);
-  cm->setArgNames("nRows","nColumns","reset",NULL);
-  cm->setDescription("Change the size of the fullMatrix (and re-alloc if needed), "
-                     "values are set to zero if reset is true");
-  cm = cb->addMethod("gemm", &fullMatrix<double>::gemm);
-  cm->setArgNames("A","B","alpha","beta",NULL);
-  cm->setDescription("this = beta*this + alpha * (A.B)");
-  cm = cb->addMethod("gemm_naive", &fullMatrix<double>::gemm_naive);
-  cm->setArgNames("A","B","alpha","beta",NULL);
-  cm->setDescription("this = beta*this + alpha * (A.B)");
-  cm = cb->addMethod("print", &fullMatrix<double>::print);
-  cm->setArgNames("name","format",NULL);
-  cm->setDescription("print the matrix");
-  cm = cb->addMethod("invertInPlace", &fullMatrix<double>::invertInPlace);
-  cm->setDescription("invert the matrix and return the determinant");
-}
diff --git a/Numeric/fullMatrix.h b/Numeric/fullMatrix.h
index 2c9e7a61222c35d50ef5c29dd62f6518af28a9b5..10c9955fe8da8f1eb4acca279f7107f41ee0546a 100644
--- a/Numeric/fullMatrix.h
+++ b/Numeric/fullMatrix.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -11,7 +11,6 @@
 #include "GmshConfig.h"
 #include "GmshMessage.h"
 
-class binding;
 template <class scalar> class fullMatrix;
 
 // An abstract interface for vectors of scalar
@@ -561,6 +560,5 @@ class fullMatrix
 #endif
   ;
 
-  static void registerBindings(binding *b);
 };
 #endif
diff --git a/Numeric/mathEvaluator.cpp b/Numeric/mathEvaluator.cpp
index 1b22d4aae5357507df28ceaf0d6eaec847216da4..56f14b905228d79e46191cc76dd4fb5bd32e7871 100644
--- a/Numeric/mathEvaluator.cpp
+++ b/Numeric/mathEvaluator.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/mathEvaluator.h b/Numeric/mathEvaluator.h
index ee636bca89cbdfc833b9295f5adf324033e640df..adf54d71f9cede1dadac26364f6943d6ca37e4a2 100644
--- a/Numeric/mathEvaluator.h
+++ b/Numeric/mathEvaluator.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp
index 59b59416dfe2634417f6dfae31a3aa7b26767e4e..5659d11090cf029bd0af9d310fc241dac25a0ea3 100644
--- a/Numeric/polynomialBasis.cpp
+++ b/Numeric/polynomialBasis.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,9 @@
 #include "Gauss.h"
 
 #include "stdlib.h"
-static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int> &closureRef, polynomialBasis::clCont &closures) {
+static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int> &closureRef,
+                         polynomialBasis::clCont &closures)
+{
   for (int i = 0; i <closures.size(); i++) {
     printf("%3i  (%2i): ", i, closureRef[i]);
     if(closureRef[i]==-1){
@@ -35,7 +37,8 @@ static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int>
   }
 }
 
-static int getTriangleType (int order) {
+static int getTriangleType (int order)
+{
   switch(order) {
     case 0 : return MSH_TRI_1;
     case 1 : return MSH_TRI_3;
@@ -51,7 +54,9 @@ static int getTriangleType (int order) {
     default : Msg::Error("triangle order %i unknown", order);
   }
 }
-static int getQuadType (int order) {
+
+static int getQuadType (int order)
+{
   switch(order) {
     case 0 : return MSH_QUA_1;
     case 1 : return MSH_QUA_4;
@@ -67,7 +72,9 @@ static int getQuadType (int order) {
     default : Msg::Error("quad order %i unknown", order);
   }
 }
-static int getLineType (int order) {
+
+static int getLineType (int order)
+{
   switch(order) {
     case 0 : return MSH_LIN_1;
     case 1 : return MSH_LIN_2;
@@ -84,7 +91,6 @@ static int getLineType (int order) {
   }
 }
 
-
 static fullMatrix<double> generate1DMonomials(int order)
 {
   fullMatrix<double> monomials(order + 1, 1);
@@ -149,7 +155,9 @@ static fullMatrix<double> generatePascalSerendipityTriangle(int order)
   return monomials;
 }
 
-const fullMatrix<double> &polynomialBasis::getGradientAtFaceIntegrationPoints(int integrationOrder, int closureId) const{
+const fullMatrix<double> &polynomialBasis::getGradientAtFaceIntegrationPoints(int integrationOrder, 
+                                                                              int closureId) const
+{
   std::vector<fullMatrix<double> > &dfAtFace = _dfAtFace[integrationOrder];
   if (dfAtFace.empty()) {
     dfAtFace.resize(closures.size());
@@ -1010,7 +1018,8 @@ static void generate1dVertexClosure(polynomialBasis::clCont &closure)
   closure[1].type = MSH_PNT;
 }
 
-static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef, int order)
+static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef,
+                                        int order)
 {
   closure.clear();
   closure.resize(2);
@@ -1028,7 +1037,7 @@ static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::v
 }
 
 static void getFaceClosureTet(int iFace, int iSign, int iRotate, polynomialBasis::closure &closure,
-                           int order)
+                              int order)
 {
 
   closure.clear();
@@ -1093,7 +1102,8 @@ static void getFaceClosureTet(int iFace, int iSign, int iRotate, polynomialBasis
     break;
   }
 }
-static void generate2dEdgeClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef, int order, int nNod, bool serendip)
+static void generate2dEdgeClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef,
+                                      int order, int nNod, bool serendip)
 {
   closure.clear();
   closure.resize(2*nNod);
@@ -1171,7 +1181,8 @@ static void generateFaceClosureTet(polynomialBasis::clCont &closure, int order)
   }
 }
 
-static void generateFaceClosureTetFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef, int order, bool serendip)
+static void generateFaceClosureTetFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef,
+                                       int order, bool serendip)
 {
   closureFull.clear();
   //input :
@@ -1297,7 +1308,8 @@ static void generateFaceClosurePrism(polynomialBasis::clCont &closure, int order
   }
 }
 
-static void generateFaceClosurePrismFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef, int order) 
+static void generateFaceClosurePrismFull(polynomialBasis::clCont &closureFull, 
+                                         std::vector<int> &closureRef, int order) 
 {
   polynomialBasis::clCont closure;
   closureFull.clear();
@@ -2172,17 +2184,3 @@ const fullMatrix<double> &polynomialBases::findInjector(int tag1, int tag2)
   return injector[key];
 }
 
-#include "Bindings.h"
-void polynomialBasis::registerBindings(binding *b) 
-{
-  classBinding *cb = b->addClass<polynomialBasis>("polynomialBasis");
-  cb->setDescription("polynomial shape functions for elements");
-  methodBinding *mb = cb->addMethod
-    ("f", (void (polynomialBasis::*)(fullMatrix<double>&, fullMatrix<double>&))
-     &polynomialBasis::f);
-  mb->setDescription("evaluate the shape functions");
-  mb->setArgNames("nodes","values",NULL);
-  mb = cb->addMethod("find",&polynomialBases::find);
-  mb->setDescription("return the polynomial basis corresponding to an element type");
-  mb->setArgNames("elementType",NULL);
-}
diff --git a/Numeric/polynomialBasis.h b/Numeric/polynomialBasis.h
index 0170b2c63306bbf605aa6905d73bf9d5eb21af56..3e212b5406ae61e53be92b06fc7f57a8dd55c316 100644
--- a/Numeric/polynomialBasis.h
+++ b/Numeric/polynomialBasis.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -65,34 +65,34 @@ inline double pow_int(const double &a, const int &n)
   }
 }
 
-class binding;
-
-// presently those function spaces are only for simplices and quads;
-// should be extended to other elements like hexes
 class polynomialBasis
 {
   mutable std::map<int,std::vector<fullMatrix<double> > > _dfAtFace; //integrationOrder, closureId => df/dXi
  public:
-  //for now the only implemented polynomial basis are nodal poly basis, we use the type of the corresponding gmsh element as type
+  //for now the only implemented polynomial basis are nodal poly
+  //basis, we use the type of the corresponding gmsh element as type
   int type, parentType;
   class closure : public std::vector<int> {
     public: 
     int type;
   };
   typedef std::vector<closure> clCont;
-  // closures is the list of the nodes of each face, in the order of the polynomialBasis of the face
-  // fullClosures is  mapping of the nodes of the element that rotates the element so that the considered face becomes the first one
-  // in the right orientation
-  // For element, like prisms that have different kind of faces, fullCLosure[i] rotates the element so that the considered face
-  // becomes the closureRef[i]-th face (the first tringle or the first quad face)
-   clCont closures, fullClosures;
+  // closures is the list of the nodes of each face, in the order of
+  // the polynomialBasis of the face; fullClosures is mapping of the
+  // nodes of the element that rotates the element so that the
+  // considered face becomes the first one in the right orientation;
+  // For element, like prisms that have different kind of faces,
+  // fullCLosure[i] rotates the element so that the considered face
+  // becomes the closureRef[i]-th face (the first tringle or the first
+  // quad face)
+  clCont closures, fullClosures;
   std::vector<int> closureRef;
   fullMatrix<double> points;
   fullMatrix<double> monomials;
   fullMatrix<double> coefficients;
   int numFaces;
-  // for a given face/edge, with both a sign and a rotation,
-  // give an ordered list of nodes on this face/edge
+  // for a given face/edge, with both a sign and a rotation, give an
+  // ordered list of nodes on this face/edge
   inline const std::vector<int> &getClosure(int id) const
   {
     return closures[id];
@@ -278,7 +278,6 @@ class polynomialBasis
     }
   }
   const fullMatrix<double> &getGradientAtFaceIntegrationPoints(int integrationOrder, int closureId) const;
-  static void registerBindings(binding *b);
 };
 
 class polynomialBases
diff --git a/Numeric/robustPredicates.h b/Numeric/robustPredicates.h
index 688fac25fb7cfa3a673f7296da2721fbff47fcf5..11f731715a38fa9e29fc3df728c6eb7dd3f528d8 100644
--- a/Numeric/robustPredicates.h
+++ b/Numeric/robustPredicates.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/simpleFunction.h b/Numeric/simpleFunction.h
index 883f71760322a846ff8487a46ba5fecab8a7fbad..a4566ea5cc112042375b18568a648392ce7ecfea 100644
--- a/Numeric/simpleFunction.h
+++ b/Numeric/simpleFunction.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -26,32 +26,6 @@ class simpleFunction {
   { dfdx = dfdy = dfdz = 0.0; }*/
 };
 
-#include "GmshConfig.h"
-#ifdef HAVE_LUA
-#include "LuaBindings.h"
-template <class scalar>
-class simpleFunctionLua : public simpleFunction<scalar> {
-  lua_State *_L;
-  std::string _luaFunctionName;
- public:
-  scalar operator () (double x, double y, double z) const
-  {
-    lua_getfield(_L, LUA_GLOBALSINDEX, _luaFunctionName.c_str());
-    luaStack<double>::push(_L, x);
-    luaStack<double>::push(_L, y);
-    luaStack<double>::push(_L, z);
-    lua_call(_L, 3, 1);
-    return luaStack<scalar>::get(_L,-1);
-  }
-  simpleFunctionLua (lua_State *L, const std::string luaFunctionName, scalar s)
-    : simpleFunction<scalar>(s)
-  {
-    _L = L;
-    _luaFunctionName = luaFunctionName;
-  }
-};
-#endif
-
 template <class scalar>
 class simpleFunctionOnElement : public simpleFunction<scalar>
 {
diff --git a/Parser/CMakeLists.txt b/Parser/CMakeLists.txt
index 2a1bb4d92b3444bfd7a5fd55953a0a745a183639..a3f9d8a19f5c17eb233bb43ad9076851c3d969fe 100644
--- a/Parser/CMakeLists.txt
+++ b/Parser/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.cpp b/Parser/FunctionManager.cpp
index 2db58d9acb65fc7ff3b91ad0a3d9a0a67a5d4e2e..94e6b64aae172d99d03838b3ad7717f5c1add15b 100644
--- a/Parser/FunctionManager.cpp
+++ b/Parser/FunctionManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.h b/Parser/FunctionManager.h
index bad265d8e85fbd3efe307f8b05147f66f48e2b02..601db541760449ba5f5d956822d3a612e1164d7d 100644
--- a/Parser/FunctionManager.h
+++ b/Parser/FunctionManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l
index a3bbc2c81aaee17b00d39f610be7775ed7c74c77..aef8d50c918dd286c8f9fdab4ddcdc7f01571278 100644
--- a/Parser/Gmsh.l
+++ b/Parser/Gmsh.l
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 921c8ad454553c2f8c2124c64e7336324a8559c4..c00d254eb9243bdae6b5bc31920b4624ad06be71 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -344,7 +344,7 @@
 /* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 125353f9c4de6d9784cf19f8e31919be71a1d444..9ccbacdc0e8725491f790244465b185b2221586a 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index c3a05213f45e925a001e0cd1e266f16167f20dc3..2c0d82dbc9ac8d981523c57bf4b06e75d4f01c0f 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -872,7 +872,7 @@ int gmsh_yy_flex_debug = 0;
 char *gmsh_yytext;
 #line 1 "Gmsh.l"
 #line 2 "Gmsh.l"
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Parser.h b/Parser/Parser.h
index 0cea95fbd3fa067138875f17c1d014c4eb05d12b..57b59f9760979299a68ab233a70be46bb33369d5 100644
--- a/Parser/Parser.h
+++ b/Parser/Parser.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index 6ce300e42185e43caf036b842117a83f9335780f..90d14984e843a208f1e4a435586b6c546434138a 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -98,8 +98,8 @@ PViewData *GMSH_PostPlugin::getPossiblyAdaptiveData(PView *view)
   PViewData *data = view->getData();
   if(data->isAdaptive() && data->getNumTimeSteps() > 1)
     Msg::Warning("Using adapted data from view '%s': only the current time step (%d/%d) "
-                 "is available to the plugin", view->getOptions()->timeStep, 
-                 data->getNumTimeSteps(), view->getData()->getName().c_str());
+                 "is available to the plugin", view->getData()->getName().c_str(),
+                 view->getOptions()->timeStep, data->getNumTimeSteps());
   return view->getData(true);
 }
 
diff --git a/Post/CMakeLists.txt b/Post/CMakeLists.txt
index cad2a94397a999262f178a52dd53495dfd380a39..58f2a2e18824429ce2927477d7348d47220c32ea 100644
--- a/Post/CMakeLists.txt
+++ b/Post/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.cpp b/Post/ColorTable.cpp
index 04d1dd86f546563b5f7aad843bb0a204f12cf0ff..be7ae05e5be128a84b60d4954df126ee58e0d2ea 100644
--- a/Post/ColorTable.cpp
+++ b/Post/ColorTable.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.h b/Post/ColorTable.h
index 30376cdf60e5006baa98b313be95acb5d2c44975..23c9ebd6bb4d65beaf6bec2cdbd9ff8e342ab565 100644
--- a/Post/ColorTable.h
+++ b/Post/ColorTable.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.cpp b/Post/OctreePost.cpp
index 338d3a0b15f65563765b25e46247c3cb25f2ab4a..b53184f6d5ad2706f7e1d410a0954d6f6576d40f 100644
--- a/Post/OctreePost.cpp
+++ b/Post/OctreePost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.h b/Post/OctreePost.h
index 792b76ffdaa0c705de66bf63e9cfc65369f83d5b..51f6b28a6d498b94b6b8050e032061e8cfc59b6e 100644
--- a/Post/OctreePost.h
+++ b/Post/OctreePost.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PView.cpp b/Post/PView.cpp
index a757940c09ad763f41ea772310b25811baad333a..8b42271458390fcab909a75e0c62cbbe6612b487 100644
--- a/Post/PView.cpp
+++ b/Post/PView.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -312,19 +312,3 @@ PView *PView::getViewByNum(int num, int timeStep, int partition)
   return 0;
 }
 
-#include "Bindings.h"
-void PView::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<PView>("PView");
-  cb->setDescription("A post-processing view");
-  methodBinding *cm;
-  cm = cb->addMethod("write",&PView::write);
-  cm->setArgNames("fileName","format","append",NULL);
-  cm->setDescription("write data to a file. Format can be: 0 for ascii pos file, "
-                     "1 for binary pos file, 2 for parsed pos file, 3 for STL, "
-                     "4 for TXT, 5 for MSH, 6 for MED files, or 10 for automatic. "
-                     "'append' option is only supported for pos format.");
-  cm = cb->addMethod("getData",&PView::getData);
-  cm->setArgNames("useAdaptiveIfAvailable",NULL);
-  cm->setDescription("return the structure containing the data of this view.");
-}
diff --git a/Post/PView.h b/Post/PView.h
index 6db1291f718f9c03fcaee986fe09705dc05e167d..f37d8a744349d02fea49de006ca6ffcb8934cede 100644
--- a/Post/PView.h
+++ b/Post/PView.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GModel;
 class GMSH_PostPlugin;
 class ConnectionManager;
 
-class binding;
 // A post-processing view.
 class PView{
  private:
@@ -125,7 +124,6 @@ class PView{
 
   // smoothed normals
   smooth_normals *normals;
-  static void registerBindings(binding *b);
 };
 
 // this is the maximum number of nodes of elements we actually *draw*
diff --git a/Post/PViewData.cpp b/Post/PViewData.cpp
index 6d095d4ff44f6a4d3ead65fa191530ce32e9f33f..0848bb142634e0c2b02058a92bc63d8e14a2203e 100644
--- a/Post/PViewData.cpp
+++ b/Post/PViewData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -132,82 +132,3 @@ bool PViewData::combineSpace(nameData &nd)
   Msg::Error("Combine space is not implemented for this type of data");
   return false; 
 }
-
-double PViewData::getValueBinding(int step, int ent, int ele, int nod, int comp)
-{
-  double val;
-  getValue(step,ent,ele,nod,comp,val);
-  return val;
-}
-
-void PViewData::getAllValuesForElementBinding(int step, int ent, int ele, 
-                                              fullMatrix<double> &m)
-{
-  for (int i = 0; i < m.size1(); i++)
-    for (int j = 0; j < m.size2(); j++)
-      getValue(step, ent, ele, i, j, m(i, j));
-}
-
-void PViewData::getAllNodesForElementBinding(int step, int ent, int ele,
-                                             fullMatrix<double> &m)
-{
-  for (int i = 0; i < m.size1(); i++)
-    getNode(step, ent, ele, i, m(i, 0), m(i, 1), m(i, 2));
-}
-
-#include "Bindings.h"
-void PViewData::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<PViewData>("PViewData");
-  cb->setDescription("The data of a post-processing view");
-  methodBinding *cm;
-  cm = cb->addMethod("getNumEntities",&PViewData::getNumEntities);
-  cm->setArgNames("step",NULL);
-  cm->setDescription("return the number of entities for a given time step "
-                     "(-1 for default)");
-  cm = cb->addMethod("getNumElements",&PViewData::getNumElements);
-  cm->setArgNames("step","entity",NULL);
-  cm->setDescription("return the number of entities for a given time step "
-                     "(-1 for default) for a given entity (-1 for all)");
-  cm = cb->addMethod("getNumTriangles",&PViewData::getNumTriangles);
-  cm->setArgNames("step",NULL);
-  cm->setDescription("return the number of triangles for a given time step "
-                     "(-1 for default)");
-
-  cm = cb->addMethod("getNumNodes",&PViewData::getNumNodes);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of nodes of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getElement",&PViewData::getElement);
-  cm->setArgNames("step","entity","i",NULL);
-  cm->setDescription("return the i-th element of the given entity");
-
-  cm = cb->addMethod("getNumValues",&PViewData::getNumValues);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of values of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getNumComponents",&PViewData::getNumComponents);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of components of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getValue",&PViewData::getValueBinding);
-  cm->setArgNames("step","entity","element","node","component",NULL);
-  cm->setDescription("return one of the values");
-
-  cm = cb->addMethod("getAllValuesForElement",&PViewData::getAllValuesForElementBinding);
-  cm->setArgNames("step","entity","element","values",NULL);
-  cm->setDescription("resize and fill a fullMatrix with all values from the element.");
-
-  cm = cb->addMethod("getAllNodesForElement",&PViewData::getAllNodesForElementBinding);
-  cm->setArgNames("step","entity","element","coordinates",NULL);
-  cm->setDescription("resize fill a fullMatrix with all coordinates of the nodes "
-                     "of the element");
-
-  cm = cb->addMethod("getDimension",&PViewData::getDimension);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the geometrical dimension of the element-th element "
-                     "in the enttity-th entity");
-}
diff --git a/Post/PViewData.h b/Post/PViewData.h
index 9157122f149ed2c59917c2e292964d307581ef15..957e228c3893a50ed532e58d813899daff13cdeb 100644
--- a/Post/PViewData.h
+++ b/Post/PViewData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GModel;
 class GEntity;
 class MElement;
 class nameData;
-class binding;
 
 // The abstract interface to post-processing view data.
 class PViewData {
@@ -134,10 +133,6 @@ class PViewData {
   virtual void getValue(int step, int ent, int ele, int nod, int comp, double &val){}
   virtual void setValue(int step, int ent, int ele, int nod, int comp, double val);
 
-  double getValueBinding(int step, int ent, int ele, int nod, int comp);
-  void getAllValuesForElementBinding(int step, int ent, int ele, fullMatrix<double> &m);
-  void getAllNodesForElementBinding(int step, int ent, int ele, fullMatrix<double> &m);
-
   // return a scalar value (same as value for scalars, norm for
   // vectors, etc.) associated with the node-th node from the ele-th
   // element in the ent-th entity
@@ -223,8 +218,6 @@ class PViewData {
                         bool append=false);
   virtual bool writeMSH(std::string fileName, bool binary=false, bool savemesh=true);
   virtual bool writeMED(std::string fileName);
-
-  static void registerBindings(binding *b);
 };
 
 class nameData{
diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index eb92ff67c32a623bca2af42868afc01bcb2b7ce2..26ef74a7b6fb3a4637570665360e75276c76053d 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataGModel.h b/Post/PViewDataGModel.h
index 7cf4c36fadd70f8f2c448e19f4deb76d8c8e8487..0dcfd566147ef4248ac4d8aae5e7156980e1c1a3 100644
--- a/Post/PViewDataGModel.h
+++ b/Post/PViewDataGModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataGModelIO.cpp b/Post/PViewDataGModelIO.cpp
index 7010f499e5cd13c91b3b67675e97d5694907f39b..4d572d70b41738cace4f8517b314775d547f0ed7 100644
--- a/Post/PViewDataGModelIO.cpp
+++ b/Post/PViewDataGModelIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataIO.cpp b/Post/PViewDataIO.cpp
index c7ad930b3f339ad45c0cb5ea9f061d7d138a3378..20cc1eba771915a5f0fec76a399f784df56d301a 100644
--- a/Post/PViewDataIO.cpp
+++ b/Post/PViewDataIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.cpp b/Post/PViewDataList.cpp
index fbc6526f5132bdb94230ea44688086b63fe5a888..9635e7091645443dd359ca60ab2973e69ac7c5b1 100644
--- a/Post/PViewDataList.cpp
+++ b/Post/PViewDataList.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.h b/Post/PViewDataList.h
index 1bb7207d0aabb62fbdd3e01fb9df4d211edefba2..8b72653d9392321c6e966063925cb94df917a6b8 100644
--- a/Post/PViewDataList.h
+++ b/Post/PViewDataList.h
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataListIO.cpp b/Post/PViewDataListIO.cpp
index 942c90852f52ed3c82530bef9304a8c0ba5eceda..b428507496145eb253b9a3e29cbd73a7afa84367 100644
--- a/Post/PViewDataListIO.cpp
+++ b/Post/PViewDataListIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataRemote.h b/Post/PViewDataRemote.h
index ade6645e030a86ab40743d2bdb26e3bf4fd2bdf1..b4b9287b87ac8ecdd5752917b50be8d9c0c32f82 100644
--- a/Post/PViewDataRemote.h
+++ b/Post/PViewDataRemote.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewFactory.cpp b/Post/PViewFactory.cpp
index 1da58147b2555cff70ce3b47b7bdc9a3bab36c3b..c83ae20c6f2b2b3296ae1a3eacc225146f985940 100644
--- a/Post/PViewFactory.cpp
+++ b/Post/PViewFactory.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -8,7 +8,6 @@
 #include "fullMatrix.h"
 #include "PView.h"
 #include <vector>
-#include "Bindings.h"
 
 PViewFactory::PViewFactory (std::string name, std::string type, GModel *model,
                             int timeStep, int dim)
@@ -33,16 +32,3 @@ PView *PViewFactory::createView ()
   return new PView(_name,_type,_model,_values,_timeStep,_dim);
 }
 
-void PViewFactory::registerBindings (class binding *b)
-{
-  classBinding *cb = b->addClass<PViewFactory>("PViewFactory");
-  cb->setDescription("A class to format the input data of post-procession views");
-  methodBinding *mb = cb->addMethod("setEntry", &PViewFactory::setEntry);
-  mb->setDescription("attach  data (values) on the ith nodes or elemnent");
-  mb->setArgNames("i", "values", NULL);
-  mb = cb->setConstructor<PViewFactory, std::string, std::string, GModel*,int,int>();
-  mb->setDescription("create a new factory for post-processing view based on a GModel. The type can be 'NodeData', 'ElementData' or 'ElementNodeData'");
-  mb->setArgNames("name", "type", "model","timeStep", "dimension", NULL);
-  mb = cb->addMethod("createView",&PViewFactory::createView);
-  mb->setDescription("create a post-processing view with the current data");
-}
diff --git a/Post/PViewFactory.h b/Post/PViewFactory.h
index 000b26cff1286ea42f7309aff1f8350591a5c189..35ce359d09c32d9e7b22eb88c90084dd0550a020 100644
--- a/Post/PViewFactory.h
+++ b/Post/PViewFactory.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,9 +15,7 @@
 
 class GModel;
 class PView;
-template <class t>
-class fullMatrix;
-class binding;
+template <class t> class fullMatrix;
 
 class PViewFactory {
   std::map<int,std::vector<double> > _values;
@@ -25,10 +23,9 @@ class PViewFactory {
   int _dim,_timeStep;
   GModel *_model;
   public:
-  PViewFactory(std::string name, std::string type, GModel *model, int timeStep, int dim);
+  PViewFactory(std::string name, std::string type, GModel *model, int timeStep, int dim=3);
   void setEntry(int id, const fullMatrix<double> &val);
   PView *createView();
-  static void registerBindings(binding *);
 };
 
 #endif
diff --git a/Post/PViewIO.cpp b/Post/PViewIO.cpp
index 58211a8c5fb771ec55b8883d1502729ef828e739..bbf502ff86af2a82af11ff79933339e01766df6b 100644
--- a/Post/PViewIO.cpp
+++ b/Post/PViewIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.cpp b/Post/PViewOptions.cpp
index a19fafab52f330d6a70cfda25a3b5a6a7cbc2be2..c4db65e5149ce0b8ca9aeb04a4676294f8d9ad3c 100644
--- a/Post/PViewOptions.cpp
+++ b/Post/PViewOptions.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.h b/Post/PViewOptions.h
index c391ad511749fa8b0c1dcbde1c3c854b6ee9e5e5..0e33e2a59ca5e7f8a6db045db7f8ccba3f989be6 100644
--- a/Post/PViewOptions.h
+++ b/Post/PViewOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewVertexArrays.cpp b/Post/PViewVertexArrays.cpp
index f6e06bfc1f8e9406f6ded43b5cb3b89c29e6fb6f..0ac996ad4b0e65d6c8033c3cbaaa08e89e689d0a 100644
--- a/Post/PViewVertexArrays.cpp
+++ b/Post/PViewVertexArrays.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -1170,9 +1170,9 @@ static void addElementsInArrays(PView *p, bool preprocessNormalsOnly)
         else {
           if(numNodesError != numNodes){
             numNodesError = numNodes;
-            Msg::Error("You should never draw views with > %d nodes per element: use",
+            Msg::Error("You should never draw views with > %d nodes per element: use"
+                       "'Adapt visualization grid' to view high-order datasets!",
                        PVIEW_NMAX);
-            Msg::Error("'Adapt visualization grid' to view high-order datasets!");
           }
           continue;
         }
@@ -1180,8 +1180,8 @@ static void addElementsInArrays(PView *p, bool preprocessNormalsOnly)
       if((numComp > 9 && !opt->forceNumComponents) || opt->forceNumComponents > 9){
         if(numCompError != numComp) {
           numCompError = numComp;
-          Msg::Error("You should never draw views with > 9 values per node: use");
-          Msg::Error("'Adapt visualization grid' to view high-order datasets!");
+          Msg::Error("You should never draw views with > 9 values per node: use"
+                     "'Adapt visualization grid' to view high-order datasets!");
         }
         continue;
       }
diff --git a/Post/adaptiveData.cpp b/Post/adaptiveData.cpp
index cb106d23570c92e404fc7645898370fd4c8d00c9..029fd57484ba81072bd2b8f3268b8a18673e665d 100644
--- a/Post/adaptiveData.cpp
+++ b/Post/adaptiveData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/adaptiveData.h b/Post/adaptiveData.h
index 30681650c1639fe2051552eb75eb15200b0009ff..ccc9a410095bb2335d5610858cd7346d21f2a3a1 100644
--- a/Post/adaptiveData.h
+++ b/Post/adaptiveData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/shapeFunctions.cpp b/Post/shapeFunctions.cpp
index b2eaf9d446545e915d7a3cd12bc60d701218c301..1649454df3a44d8f793feb6b89e275ed49dcf4a4 100644
--- a/Post/shapeFunctions.cpp
+++ b/Post/shapeFunctions.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/shapeFunctions.h b/Post/shapeFunctions.h
index 2f8b6ebd368214832ab539244fd22662de2e825e..94de178f37bc75240677e3e1ed639c5fae81956c 100644
--- a/Post/shapeFunctions.h
+++ b/Post/shapeFunctions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/CMakeLists.txt b/Qt/CMakeLists.txt
index 8be7adfeb99d4d66380efde9007dd1cbc68d5c33..95496efb4daf3f721ab87c5baec4b7b2709ad2e6 100644
--- a/Qt/CMakeLists.txt
+++ b/Qt/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/Main.cpp b/Qt/Main.cpp
index ff0e246d281954658e1bb560d3ae6dada0481263..bdddf170370e11e498904249c16e7555882382b0 100644
--- a/Qt/Main.cpp
+++ b/Qt/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/QGui.cpp b/Qt/QGui.cpp
index 5118a963cc892675b986229aa9f1c7c3831496cb..48ab8daeaeffeb0c0bf6568683f535c8751160d8 100644
--- a/Qt/QGui.cpp
+++ b/Qt/QGui.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/QGui.h b/Qt/QGui.h
index 532d40f9705e693babc1274df44e1fe474544296..76b1129c1d33cf9e45bea4c65d833f5af5e46c24 100644
--- a/Qt/QGui.h
+++ b/Qt/QGui.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/README.txt b/README.txt
index dd44633b6f59ebe88c17bf6d98995479e1a1d544..466de3cd4e8d81b2a4aa2dc0f9242266ddb2bd9c 100644
--- a/README.txt
+++ b/README.txt
@@ -2,8 +2,8 @@ This is Gmsh, an automatic three-dimensional finite element mesh
 generator with built-in pre- and post-processing facilities.
 
 Gmsh is distributed under the terms of the GNU General Public License,
-with an exception to allow for easier linking with external
-libraries. See doc/LICENSE.txt and doc/CREDITS.txt for more
+Version 2 or later, with an exception to allow for easier linking with
+external libraries. See doc/LICENSE.txt and doc/CREDITS.txt for more
 information.
 
 See the doc/ and tutorial/ directories for documentation. The
diff --git a/Solver/CMakeLists.txt b/Solver/CMakeLists.txt
index 467bfbb270a2866a0014bf08b96ee3757a098291..1a003c374908290247b99c584a98f4251cb2ea78 100644
--- a/Solver/CMakeLists.txt
+++ b/Solver/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@ set(SRC
   multiscaleLaplace.cpp
   function.cpp
   functionDerivator.cpp
-  luaFunction.cpp
   functionSpace.cpp
   filters.cpp
   sparsityPattern.cpp
diff --git a/Solver/SElement.h b/Solver/SElement.h
index 1416307902e0f5155e75e8fdc511bf75593e68f3..f3ccfe29b558f3c5699f3380d2d3c346ee251159 100644
--- a/Solver/SElement.h
+++ b/Solver/SElement.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/crossConfTerm.h b/Solver/crossConfTerm.h
index 2f4dab63b0ffdf99082158af49d49da45e61b8d4..8c2cf42d995585b1c2a7d4d68dbab9fe312b465a 100644
--- a/Solver/crossConfTerm.h
+++ b/Solver/crossConfTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/distanceTerm.h b/Solver/distanceTerm.h
index b8f523e3f5c2701bf98b3056e26ce4e978d30650..244d9c96dc5f09d501a171c361d3acca1325bb9b 100644
--- a/Solver/distanceTerm.h
+++ b/Solver/distanceTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/dofManager.h b/Solver/dofManager.h
index 4d1530e07c1c8a8fd3ef0a6b1b247020653d49aa..1057917135ae8417cdbc6ceafe6b23fe4f6bd817 100644
--- a/Solver/dofManager.h
+++ b/Solver/dofManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/eigenSolver.cpp b/Solver/eigenSolver.cpp
index dd791febce182e2903c683f34860e89447917ed5..4204fd25a8d026c0816b7c18d701c6e8f6ebddfc 100644
--- a/Solver/eigenSolver.cpp
+++ b/Solver/eigenSolver.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/eigenSolver.h b/Solver/eigenSolver.h
index 1224f39ceda5b2ca610b31511871ab73bd40aa3f..7465fb1e19d3d8c6bed21a507cd9a15c51de209f 100644
--- a/Solver/eigenSolver.h
+++ b/Solver/eigenSolver.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/elasticitySolver.cpp b/Solver/elasticitySolver.cpp
index 1fdd6715bd3d0bdb4e7673acecac62737a246e80..5e610e4982a0e6ad38eef03ec1f8d9934063def7 100644
--- a/Solver/elasticitySolver.cpp
+++ b/Solver/elasticitySolver.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -264,39 +264,6 @@ void elasticitySolver::readInputFile(const std::string &fn)
 }
 
 
-#if defined (HAVE_LUA)
-
-void elasticitySolver::addDirichletBCLua (int dim, int entityId, int component, std::string luaFunctionName, lua_State *L) {
-  dirichletBC diri;
-  diri.g = new groupOfElements (dim, entityId);
-  diri._f= new simpleFunctionLua<double>(L, luaFunctionName,0.);
-  diri._comp=component;
-  diri._tag=entityId;
-  switch (dim) {
-    case 0 : diri.onWhat=BoundaryCondition::ON_VERTEX; break;
-    case 1 : diri.onWhat=BoundaryCondition::ON_EDGE; break;
-    case 2 : diri.onWhat=BoundaryCondition::ON_FACE; break;
-    default : return;
-  }
-  allDirichlet.push_back(diri);
-}
-
-void elasticitySolver::addNeumannBCLua (int dim, int entityId, std::string luaFunctionName, lua_State *L) {
-  neumannBC neu;
-  neu.g = new groupOfElements (dim, entityId);
-  neu._f= new simpleFunctionLua<SVector3>(L, luaFunctionName, SVector3(0,0,0));
-  neu._tag=entityId;
-  switch (dim) {
-    case 0 : neu.onWhat=BoundaryCondition::ON_VERTEX; break;
-    case 1 : neu.onWhat=BoundaryCondition::ON_EDGE; break;
-    case 2 : neu.onWhat=BoundaryCondition::ON_FACE; break;
-    default : return;
-  }
-  allNeumann.push_back(neu);
-}
-
-#endif
-
 void elasticitySolver::addDirichletBC (int dim, int entityId, int component, double value) {
   dirichletBC diri;
   diri.g = new groupOfElements (dim, entityId);
@@ -721,80 +688,3 @@ PView* elasticitySolver::buildStressesView (const std::string postFileName)
   return 0;
 }
 #endif
-
-
-
-#include "Bindings.h"
-void elasticitySolverRegisterBindings(binding *b)
-{
-#if defined (HAVE_LUA)
-  classBinding *cb;
-  cb = b->addClass<elasticitySolver> ("elasticitySolver");
-  cb->setDescription("A class that enables to solve elasticity problems");
-
-  methodBinding *cm;
-  cm = cb->addMethod("read", &elasticitySolver::read);
-  cm->setDescription ("reads an input file");
-  cm->setArgNames("fileName",NULL);
-
-  cm = cb->addMethod("postSolve", &elasticitySolver::postSolve);
-  cm->setDescription (" ");
-
-  cm = cb->addMethod("assemble", &elasticitySolver::assemble);
-  cm->setDescription ("assembles the problem");
-  cm->setArgNames ("linearSystem",NULL);
-
-  cm = cb->addMethod("solve", &elasticitySolver::solve);
-  cm->setDescription ("solve the problem");
-  cm->setArgNames (NULL);
-
-  cm = cb->addMethod("addDirichletBC", &elasticitySolver::addDirichletBC);
-  cm->setDescription ("add a Dirichlet (displacement) boundary condition on a given entity");
-  cm->setArgNames ("dim", "entityId", "component", "value", NULL);
-
-  cm = cb->addMethod("addDirichletBCLua", &elasticitySolver::addDirichletBCLua);
-  cm->setDescription ("add a Dirichlet (displacement) boundary condition on a given entity. The lua function takes x,y,z as arguments and return the displacement value.");
-  cm->setArgNames ("dim", "entityId", "component", "luaFunctionName", NULL);
-
-  cm = cb->addMethod("addNeumannBC", &elasticitySolver::addNeumannBC);
-  cm->setDescription ("add a Neumann (force) boundary condition on a given entity. Size of value has to be 3.");
-  cm->setArgNames ("dim", "entityId", "value", NULL);
-
-  cm = cb->addMethod("addNeumannBCLua", &elasticitySolver::addNeumannBCLua);
-  cm->setDescription ("add a Neumann (force) boundary condition on a given entity. The lua function takes x,y,z as arguments and return a vector with the 3 components of the force.");
-  cm->setArgNames ("dim", "entityId", "luaFunctionName", NULL);
-
-  cm = cb->addMethod("addElasticDomain", &elasticitySolver::addElasticDomain);
-  cm->setDescription ("add an elastic region with parameters E and nu");
-  cm->setArgNames ("tag", "E", "nu", NULL);
-
-#if defined HAVE_POST
-
-  cm = cb->addMethod ("buildVonMisesView", &elasticitySolver::buildVonMisesView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildDisplacementView", &elasticitySolver::buildDisplacementView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildStressesView", &elasticitySolver::buildStressesView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildLagrangeMultiplierView", &elasticitySolver::buildLagrangeMultiplierView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildElasticEnergyView", &elasticitySolver::buildElasticEnergyView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-#endif
-
-  cm = cb->setConstructor<elasticitySolver,GModel*,int>();
-  cm->setDescription ("A new elasticitySolver. The parameter is the unknowns tag");
-  cm->setArgNames("model","tag",NULL);
-#endif
-}
-
diff --git a/Solver/elasticitySolver.h b/Solver/elasticitySolver.h
index 0866a5c05b853ecb791622b9818194d6f9d8171e..2155966b5a8e707fbb486dae13502e5d7883740e 100644
--- a/Solver/elasticitySolver.h
+++ b/Solver/elasticitySolver.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -82,13 +82,6 @@ class elasticitySolver
   void addNeumannBC (int dim, int entityId, const std::vector<double> value);
   void addElasticDomain (int tag, double e, double nu);
 
-#if defined (HAVE_LUA)
-
-  void addDirichletBCLua (int dim, int entityId, int component, std::string luaFunctionName, lua_State *L);
-  void addNeumannBCLua (int dim, int entityId, std::string luaFunctionName, lua_State *L);
-
-#endif
-
   virtual ~elasticitySolver()
   {
     if (LagSpace) delete LagSpace;
@@ -113,6 +106,4 @@ class elasticitySolver
   //   (const std::string &errorFileName, const elasticityData &ref, double, int);
 };
 
-class binding;
-void elasticitySolverRegisterBindings(binding *b);
 #endif
diff --git a/Solver/elasticityTerm.cpp b/Solver/elasticityTerm.cpp
index f03ec416ac293709a08b6b263f74b75889e27b73..945c7c5f80d70f148c01dac17d2df89160aaf567 100644
--- a/Solver/elasticityTerm.cpp
+++ b/Solver/elasticityTerm.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/elasticityTerm.h b/Solver/elasticityTerm.h
index e167fd4a61a65f0261b939741548f1651a1e4952..a3ded65def4166fa4ee6772649333c5055313c89 100644
--- a/Solver/elasticityTerm.h
+++ b/Solver/elasticityTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/femTerm.h b/Solver/femTerm.h
index 15798e0ac51799fb684f1cb9260d7f479d22d51c..49d6a70a6eed3bca659094db3e4a5180350b78d8 100644
--- a/Solver/femTerm.h
+++ b/Solver/femTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/function.cpp b/Solver/function.cpp
index 20dd036fae24d7eb77cd346fc136f8f6805105f6..1b9c32bd843349f4976c98bbdb3391217a970dee 100644
--- a/Solver/function.cpp
+++ b/Solver/function.cpp
@@ -6,13 +6,11 @@
 #include "MElement.h"
 #include "GModel.h"
 #include "OS.h"
-#include "Bindings.h"
 
 #if defined(HAVE_DLOPEN)
 #include <dlfcn.h>
 #endif
 
-
 // function
 
 void function::addFunctionReplace(functionReplace &fr) 
@@ -703,33 +701,6 @@ class functionStructuredGridFile : public function {
   }
 };
 
-// functionLua
-
-#ifdef HAVE_LUA
-class functionLua : public function {
-  lua_State *_L;
-  std::string _luaFunctionName;
-  std::vector<fullMatrix<double> > args;
- public:
-  void call (dataCacheMap *m, fullMatrix<double> &res) 
-  {
-    lua_getfield(_L, LUA_GLOBALSINDEX, _luaFunctionName.c_str());
-    for (int i = 0; i < arguments.size(); i++)
-      luaStack<const fullMatrix<double>*>::push(_L, &args[i]);
-    luaStack<const fullMatrix<double>*>::push(_L, &res);
-    lua_call(_L, arguments.size()+1, 0);
-  }
-  functionLua (int nbCol, std::string luaFunctionName, 
-               std::vector<const function*> dependencies, lua_State *L)
-    : function(nbCol), _luaFunctionName(luaFunctionName), _L(L)
-  {
-    args.resize(dependencies.size());
-    for (int i = 0; i < dependencies.size(); i++)
-      setArgument(args[i], dependencies[i]);
-  }
-};
-#endif
-
 // functionC
 void functionC::buildLibraryFromFile(const std::string cfilename, const std::string libfilename) {
   FILE *tmpMake = fopen("_tmpMake", "w");
@@ -813,120 +784,3 @@ functionC::functionC (std::string file, std::string symbol, int nbCol,
   Msg::Error("Cannot construct functionC without dlopen");
 #endif
 }
-
-
-void function::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<function>("Function");
-  cb->setDescription("A generic function that can be evaluated on a set of points. "
-                     "Functions can call other functions and their values are cached "
-                     "so that if two different functions call the same function f, "
-                     "f is only evaluated once.");
-  methodBinding *mb;
-
-  mb = cb->addMethod("getTime", &function::getTime);
-  mb->setDescription("Return function constant in space which contains the time value");
-
-  cb = b->addClass<functionConstant>("functionConstant");
-  cb->setDescription("A constant (scalar or vector) function");
-  mb = cb->setConstructor<functionConstant, std::vector <double> >();
-  mb->setArgNames("v", NULL);
-  mb->setDescription("A new constant function wich values 'v' everywhere. v can be a row-vector.");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSum>("functionSum");
-  cb->setDescription("A sum of two functions 'a + b'. The arguments a, b must have same dimension.");
-  mb = cb->setConstructor<functionSum, const function*, const function*>();
-  mb->setArgNames("a", "b", NULL);
-  mb->setDescription("Creates a new functionSum instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionProd>("functionProd");
-  cb->setDescription("A pointwise product of two functions 'a(i,j)*b(i,j)'. The arguments a, b must have same dimension.");
-  mb = cb->setConstructor<functionProd, const function*, const function*>();
-  mb->setArgNames("a", "b", NULL);
-  mb->setDescription("Creates a new functionProd instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionExtractComp>("functionExtractComp");
-  cb->setDescription("Extracts a given component of the vector valued function.");
-  mb = cb->setConstructor<functionExtractComp, const function*, int>();
-  mb->setArgNames("function","component", NULL);
-  mb->setDescription("Creates a new functionExtractComp instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionCatComp>("functionCatComp");
-  cb->setDescription("Creates a vector valued function by concatenating the given scalar functions. Uses only the first component of each function.");
-  mb = cb->setConstructor<functionCatComp, std::vector <const function*> >();
-  mb->setArgNames("functionArray", NULL);
-  mb->setDescription("Creates a new functionCatComp instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionScale>("functionScale");
-  cb->setDescription("Scales a function by a given scalar.");
-  mb = cb->setConstructor<functionScale, const function*, double>();
-  mb->setArgNames("function","scalar", NULL);
-  mb->setDescription("Creates a new functionScale instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionCoordinates>("functionCoordinates");
-  cb->setDescription("A function to access the coordinates (xyz). This is a "
-                     "single-instance class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionCoordinates::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSolution>("functionSolution");
-  cb->setDescription("A function to access the solution. This is a single-instance "
-                     "class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionSolution::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionNormals>("functionNormals");
-  cb->setDescription("A function to access the face normals. This is a single-instance "
-                     "class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionNormals::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSolutionGradient>("functionSolutionGradient");
-  cb->setDescription("A function to access the gradient of the solution. This is "
-                     "a single-instance class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionCoordinates::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionStructuredGridFile>("functionStructuredGridFile");
-  cb->setParentClass<function>();
-  cb->setDescription("A function to interpolate through data given on a structured grid");
-  mb = cb->setConstructor<functionStructuredGridFile, std::string, const function*>();
-  mb->setArgNames("fileName","coordinateFunction",NULL);
-  mb->setDescription("Tri-linearly interpolate through data in file 'fileName' at "
-                     "coordinate given by 'coordinateFunction'.\nThe file format "
-                     "is :\nx0 y0 z0\ndx dy dz\nnx ny nz\nv(0,0,0) v(0,0,1) v(0 0 2) ...");
-
-#if defined(HAVE_DLOPEN)
-  cb = b->addClass<functionC>("functionC");
-  cb->setDescription("A function that compile a C code");
-  mb = cb->setConstructor<functionC, std::string, std::string, int, std::vector<const function*> >();
-  mb->setArgNames("file", "symbol", "nbCol", "arguments", NULL);
-  mb->setDescription("  ");
-  mb = cb->addMethod("buildLibrary", &functionC::buildLibrary);
-  mb->setArgNames("code", "libraryFileName", NULL);
-  mb->setDescription("build a dynamic library from the given code");
-  cb->setParentClass<function>();
-#endif
-
-#if defined (HAVE_LUA)
-  cb= b->addClass<functionLua>("functionLua");
-  cb->setDescription("A function (see the 'function' documentation entry) defined in LUA.");
-  mb = cb->setConstructor<functionLua, int, std::string, std::vector<const function*>, lua_State*>();
-  mb->setArgNames("d", "f", "dep", NULL);
-  mb->setDescription("A new functionLua which evaluates a vector of dimension 'd' "
-                     "using the lua function 'f'. This function can take other functions "
-                     "as arguments listed by the 'dep' vector.");
-  cb->setParentClass<function>();
-#endif
-}
-
diff --git a/Solver/function.h b/Solver/function.h
index 407de16ea224fac08cf6ebb3e2e4360dd49539a6..dbf053734379fdad3de7b16d5ca4591603266abc 100644
--- a/Solver/function.h
+++ b/Solver/function.h
@@ -16,7 +16,6 @@ class functionConstant;
 class functionReplace;
 class functionReplaceCache;
 class MElement;
-class binding;
 
 // An abstract interface to functions
 class function {
@@ -82,9 +81,6 @@ class function {
          it != dependencies.end(); it++)
       printf("%i %p\n", it->iMap, it->f);
   }
-
-  // bindings
-  static void registerBindings(binding *b);
 };
 
 
diff --git a/Solver/helmholtzTerm.h b/Solver/helmholtzTerm.h
index da781d22f594e9eb6601cdc3656a4a106bdf9998..ae03f491d401334d85e947404be575961b0be502 100644
--- a/Solver/helmholtzTerm.h
+++ b/Solver/helmholtzTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/laplaceTerm.h b/Solver/laplaceTerm.h
index c1124a851ef345f89e668fb9e398a5ea7b17a507..3f38d65853cde333c7640908069e0c3db5d0bab2 100644
--- a/Solver/laplaceTerm.h
+++ b/Solver/laplaceTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystem.cpp b/Solver/linearSystem.cpp
index 7c271733adf338e427f7431f8cbf096c17ceeb0e..de4e29dad0b69fbd42313adc27165809b043d692 100644
--- a/Solver/linearSystem.cpp
+++ b/Solver/linearSystem.cpp
@@ -1,53 +1,14 @@
-#include "GmshConfig.h"
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
+//
+// See the LICENSE.txt file for license information. Please report all
+// bugs and problems to <gmsh@geuz.org>.
+
 #include "linearSystemFull.h"
 #include "linearSystemCSR.h"
 #include "linearSystemGMM.h"
 
-#include "Bindings.h"
-
-void linearSystemBase::registerBindings(binding *b){
-  methodBinding *cm;
-  classBinding *cb = b->addClass<linearSystemBase>("linearSystemBase");
-  cb->setDescription("Base class for linear systems");
-  cm = cb->addMethod("setParameter", &linearSystemBase::setParameter);
-  cm->setDescription("set linearSystem parameters");
-  cm->setArgNames("key","value",NULL);
-  
-  cb = b->addClass<linearSystem<double> >("linearSystemDouble");
-  cb->setDescription("An abstraction of a linear system Ax = b.");
-  cm = cb->addMethod("systemSolve", &linearSystem<double>::systemSolve);
-  cm->setDescription("compute x = A^{-1}b");
-  cb->setParentClass<linearSystemBase>();
-  
-#ifdef HAVE_TAUCS
-  cb = b->addClass<linearSystemCSRTaucs<double> >("linearSystemCSRTaucs");
-  cb->setDescription("A linear system solver, based on TAUCS, and that is ok for SDP sparse matrices.");
-  cm = cb->setConstructor<linearSystemCSRTaucs<double> >();
-  cm->setDescription ("A new TAUCS<double> solver");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("getNNZ", &linearSystemCSRTaucs<double>::getNNZ);
-  cm->setDescription("get the number of non zero entries");
-  cm = cb->addMethod("getNbUnk", &linearSystemCSRTaucs<double>::getNbUnk);
-  cm->setDescription("get the number of unknowns");
-
-  cb->setParentClass<linearSystem<double> >();
-#endif
-
-  cb = b->addClass<linearSystemFull<double> >("linearSystemFull");
-  cb->setDescription("A linear system solver, based on LAPACK (full matrices)");
-  cm = cb->setConstructor<linearSystemFull<double> >();
-  cm->setDescription ("A new Lapack based <double> solver");
-  cm->setArgNames(NULL);
-  cb->setParentClass<linearSystem<double> >();
-  // block
-  cb = b->addClass<linearSystem<fullMatrix<double> > >("linearSystemFullMatrixDouble");
-  cb->setDescription("An abstraction of a linear system Ax = b.");
-  cm = cb->addMethod("systemSolve", &linearSystem<fullMatrix<double> >::systemSolve);
-  cm->setDescription("compute x = A^{-1}b");
-  cb->setParentClass<linearSystemBase>();
-}
-
-void linearSystemBase::setParameter (std::string key, std::string value) {
+void linearSystemBase::setParameter (std::string key, std::string value) 
+{
   if (isAllocated())
     Msg::Error("this system is already allocated, parameters cannot be set");
   _parameters[key] = value;
diff --git a/Solver/linearSystem.h b/Solver/linearSystem.h
index e5fc07f87678a2890aa59c4da2cfa6b9b0b1e2a4..80767984ef780e8a7af985a85c57b649689893b1 100644
--- a/Solver/linearSystem.h
+++ b/Solver/linearSystem.h
@@ -1,16 +1,16 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
 #ifndef _LINEAR_SYSTEM_H_
 #define _LINEAR_SYSTEM_H_
+
 #include <map>
 #include <string>
 
 // A class that encapsulates a linear system solver interface :
 // building a sparse matrix, solving a linear system
-class binding;
 class linearSystemBase {
   protected:
   std::map<std::string, std::string> _parameters;
@@ -23,7 +23,6 @@ class linearSystemBase {
   virtual int systemSolve() = 0;
   void setParameter (std::string key, std::string value);
   virtual void insertInSparsityPattern(int _row, int _col){};
-  static void registerBindings (binding*);
 };
 
 template <class scalar>
diff --git a/Solver/linearSystemCSR.cpp b/Solver/linearSystemCSR.cpp
index 8a06325f7d74e0561f2bc4fcfc9b11824ad333d3..5d9a2ee1b383c7e5882c2fafc0cd497dc97b94e5 100644
--- a/Solver/linearSystemCSR.cpp
+++ b/Solver/linearSystemCSR.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -339,19 +339,6 @@ void linearSystemCSR<double>::getMatrix(INDEX_TYPE*& jptr,INDEX_TYPE*& ai,double
   sorted = true;
 }
 
-#include "Bindings.h"
-
-template<>
-  void linearSystemCSRGmm<double>::registerBindings(binding *b)
-  {
-    classBinding *cb = b->addClass< linearSystemCSRGmm<double> >("linearSystemCSRGmmdouble");
-    cb->setParentClass<linearSystem<double> >();
-    cb->setDescription("Sparse matrix representation.");
-    methodBinding *cm;
-    cm = cb->setConstructor<linearSystemCSRGmm<double> >();
-    cm->setDescription("Build an empty container");
-  }
-
 #if defined(HAVE_GMM)
 
 #include "gmm.h"
diff --git a/Solver/linearSystemCSR.h b/Solver/linearSystemCSR.h
index 661afc0b6ccaa8b13941cfdec19b9f74c2bea27c..5c40b1e1a176edb792008fd61aec00e8dbd9261f 100644
--- a/Solver/linearSystemCSR.h
+++ b/Solver/linearSystemCSR.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -12,8 +12,6 @@
 #include "linearSystem.h"
 #include "sparsityPattern.h"
 
-class binding;
-
 typedef int INDEX_TYPE ;
 typedef struct {
   int nmax;
@@ -179,7 +177,6 @@ class linearSystemCSRGmm : public linearSystemCSR<scalar> {
   }
 #endif
   ;
-  static void registerBindings(binding *b);
 };
 
 template <class scalar>
diff --git a/Solver/linearSystemFull.h b/Solver/linearSystemFull.h
index 01deac224ff1205a4087b4933b886a6b993a7c63..0d6f4052ffb5fdeb5045e79f4d748282353f3195 100644
--- a/Solver/linearSystemFull.h
+++ b/Solver/linearSystemFull.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystemGMM.h b/Solver/linearSystemGMM.h
index a1f1ca6f29fa22ad669d80b8af69315afc646d69..0b8da4a2e3f4c24fe502864120bcaf41fb45705f 100644
--- a/Solver/linearSystemGMM.h
+++ b/Solver/linearSystemGMM.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystemPETSc.h b/Solver/linearSystemPETSc.h
index 9d2a528d0a1c1e9f728054f89e94eee44e975f27..378548804b4ba2db40eb2b700188810a698d8ed9 100644
--- a/Solver/linearSystemPETSc.h
+++ b/Solver/linearSystemPETSc.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/luaFunction.cpp b/Solver/luaFunction.cpp
deleted file mode 100644
index afaa3f410087a74d4a7cfcb2926d47e223ec5128..0000000000000000000000000000000000000000
--- a/Solver/luaFunction.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#define _FUNCTION_LUA_H
-#include "luaFunction.h"
-#if defined(HAVE_LUA)
-#include <sstream>
-#include <string>
-#include <vector>
-#include "function.h"
-#include "Bindings.h"
-// function that is defined in Lua
-#endif // HAVE LUA
diff --git a/Solver/luaFunction.h b/Solver/luaFunction.h
deleted file mode 100644
index 6d4c68e591a639d12dc5ba516ec394ee9e7c0ad6..0000000000000000000000000000000000000000
--- a/Solver/luaFunction.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "GmshConfig.h"
-#ifndef _LUA_FUNCTION_H_
-#define _LUA_FUNCTION_H_
-#if defined(HAVE_LUA)
-class binding;
-void functionLuaRegisterBindings(binding *b);
-#endif // HAVE LUA
-#endif // _LUA_FUNCTION_H_
diff --git a/Solver/orthogonalTerm.h b/Solver/orthogonalTerm.h
index 00c4cec5305acc6df375cd2748e88c59faa9dce0..37f003d2dde4116fb55a042be05929a0bf08cd9a 100644
--- a/Solver/orthogonalTerm.h
+++ b/Solver/orthogonalTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/sparsityPattern.cpp b/Solver/sparsityPattern.cpp
index a879201be323c97f928372072ffe441457f6819c..6a12dd4e02b5a712b4f08b0fb86dce83d197a227 100644
--- a/Solver/sparsityPattern.cpp
+++ b/Solver/sparsityPattern.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/sparsityPattern.h b/Solver/sparsityPattern.h
index 4f826208db92be898eef6db7a744cdc8d8c0b0f9..4fe0a7807cf24b3690e3c02dd0608cd83aa8e015 100644
--- a/Solver/sparsityPattern.h
+++ b/Solver/sparsityPattern.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/benchmarks/boolean/wikipedia.py b/benchmarks/boolean/wikipedia.py
index 3705487dee77b3249caad4f06a36f26e463c2499..50a436c5ee0cf684807054827b899508ba641a20 100644
--- a/benchmarks/boolean/wikipedia.py
+++ b/benchmarks/boolean/wikipedia.py
@@ -31,6 +31,7 @@ myModel.computeBooleanDifference(myModel2);
 myModel.setAsCurrent();
 
 myModel.mesh(3);
+myModel.save("wikipedia.msh");
 
 #FlGui.instance();
 #FlGui.run();
diff --git a/benchmarks/extrude/u_shape_boundary_layer.geo b/benchmarks/extrude/u_shape_boundary_layer.geo
index 6b66c16d38f84d78ef171d42519badc7332c2ba1..c256c0f452b7a172813d5ce3a38a96f756bf460a 100644
--- a/benchmarks/extrude/u_shape_boundary_layer.geo
+++ b/benchmarks/extrude/u_shape_boundary_layer.geo
@@ -27,4 +27,4 @@ Line(22) = {34, 31};
 Line(23) = {31, 32};
 Line Loop(24) = {22, 23, 20, 21};
 Line Loop(25) = {4, 12, 16, -18, 9, 8};
-//Plane Surface(26) = {24, 25};
+Plane Surface(26) = {24, 25};
diff --git a/contrib/ANN/CMakeLists.txt b/contrib/ANN/CMakeLists.txt
index ee78b5e7ae714eb7c9830a3677f283ca17e83496..af622f632e6c6cd454e34b40455d4d175adb9dbd 100644
--- a/contrib/ANN/CMakeLists.txt
+++ b/contrib/ANN/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Chaco/CMakeLists.txt b/contrib/Chaco/CMakeLists.txt
index 61fbf58ddfcd473d3a1ab96c3360286512f15ccc..5742fa91dfd2f8dc7c94054ad8aa11d996cdebd1 100644
--- a/contrib/Chaco/CMakeLists.txt
+++ b/contrib/Chaco/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/DiscreteIntegration/CMakeLists.txt b/contrib/DiscreteIntegration/CMakeLists.txt
index a26faa2c7aa45194a43fc5084348cc45e93d94ad..d1af4a09f53d90f4044f2dc58319c9aa6f63ab4c 100644
--- a/contrib/DiscreteIntegration/CMakeLists.txt
+++ b/contrib/DiscreteIntegration/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Fl_Tree/CMakeLists.txt b/contrib/Fl_Tree/CMakeLists.txt
index a4d3c147864aece4ab18aa76cfa17faba3602e5b..7c4ed9fcb8a96cb913ff4ea58f8c4b338dbba0fa 100644
--- a/contrib/Fl_Tree/CMakeLists.txt
+++ b/contrib/Fl_Tree/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/MathEx/CMakeLists.txt b/contrib/MathEx/CMakeLists.txt
index f77f774b4bf1b9dd9813b98476e512f73a051388..d2e024fcc557838d76bd1e687be25022b7d0f18a 100644
--- a/contrib/MathEx/CMakeLists.txt
+++ b/contrib/MathEx/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Metis/CMakeLists.txt b/contrib/Metis/CMakeLists.txt
index 99e165bc0cb3f1275984e2b3caf5725cb314d613..55b048ffc7586813482855a30e539b05dd919c9b 100644
--- a/contrib/Metis/CMakeLists.txt
+++ b/contrib/Metis/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/NativeFileChooser/CMakeLists.txt b/contrib/NativeFileChooser/CMakeLists.txt
index 86a1d6e07a62128f8ca64e249e2b3fb3106621ec..077d9713931fcaf8d84129d89296dd3528757788 100644
--- a/contrib/NativeFileChooser/CMakeLists.txt
+++ b/contrib/NativeFileChooser/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Netgen/CMakeLists.txt b/contrib/Netgen/CMakeLists.txt
index 966eff799ee966bba14a78ff27a94399e7a5b541..c8e06366b824a1a575197db568e127f6b26815ee 100644
--- a/contrib/Netgen/CMakeLists.txt
+++ b/contrib/Netgen/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Tetgen/CMakeLists.txt b/contrib/Tetgen/CMakeLists.txt
index 52a24fba3f20b57598aea262866b901747e944ba..9e8ba362a5fec453339acad9142c36d2322890e0 100644
--- a/contrib/Tetgen/CMakeLists.txt
+++ b/contrib/Tetgen/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/TetgenNew/CMakeLists.txt b/contrib/TetgenNew/CMakeLists.txt
index 1293041291b4d2af1cf502c0357ef8ca0f362d71..71002df51ad4469b4498eaa5eea0476d79d7d319 100644
--- a/contrib/TetgenNew/CMakeLists.txt
+++ b/contrib/TetgenNew/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/bamg/CMakeLists.txt b/contrib/bamg/CMakeLists.txt
index b17d30a49ba455c8262a53eae4ac8615999f6aab..1f5397c1b1dce7eb9ac53f2ed64ac9f352bfcaa0 100644
--- a/contrib/bamg/CMakeLists.txt
+++ b/contrib/bamg/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/bamg/bamglib/MeshRead.cpp b/contrib/bamg/bamglib/MeshRead.cpp
index ade1afb6c17a5781d981c2e72f76561164f55b9b..6c880f12a511fdc97133555dd7eb29c00c0dfe26 100644
--- a/contrib/bamg/bamglib/MeshRead.cpp
+++ b/contrib/bamg/bamglib/MeshRead.cpp
@@ -896,7 +896,7 @@ Triangles::Triangles(const char * filename,Real8 cutoffradian)
     else if (ftq) Read_ftq(f_in);
     else 
       { 
-	cerr << " Unkown type mesh " << filename << endl;
+	cerr << " Unknown type mesh " << filename << endl;
 	MeshError(2);
       }
       ConsGeometry(cutoffradian);
diff --git a/contrib/bamg/bamglib/MeshWrite.cpp b/contrib/bamg/bamglib/MeshWrite.cpp
index 8547dea25bad60743c37601d00663bbdee2e55a2..475a2876c5e20c5d334fc6aad6253f98420b51a1 100644
--- a/contrib/bamg/bamglib/MeshWrite.cpp
+++ b/contrib/bamg/bamglib/MeshWrite.cpp
@@ -74,7 +74,7 @@ void Triangles::Write(const char * filename,const TypeFileMesh typein )
        case mshMesh    :  cout << " msh "      ; break;
 	default: 
 	  cerr << endl 
-	       <<  " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
+	       <<  " Unknown type mesh file " << (int) type << " for Writing " << filename <<endl;
 	  MeshError(1);
        }     
      Int4 NbOfTria =  nbt-2*NbOfQuad-NbOutT ;
@@ -114,7 +114,7 @@ void Triangles::Write(const char * filename,const TypeFileMesh typein )
        case ftqMesh    :  Write_ftq(f)   ; break;
        case mshMesh    :  Write_msh(f)   ; break;
 	default: 
-	  cerr << " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
+	  cerr << " Unknown type mesh file " << (int) type << " for Writing " << filename <<endl;
 	  MeshError(1);
        }
    else
diff --git a/contrib/bamg/bamglib/Meshio.cpp b/contrib/bamg/bamglib/Meshio.cpp
index 6e7ac404e044541b8d68a630fec1543f6eb63dd8..b75196eacc4c30d1ebbb763d89701be835164330 100644
--- a/contrib/bamg/bamglib/Meshio.cpp
+++ b/contrib/bamg/bamglib/Meshio.cpp
@@ -30,7 +30,7 @@
 #include "Meshio.h"
 namespace bamg {
 
-const char *OFortranUnFormattedFile::unkown("unkown file name");
+const char *OFortranUnFormattedFile::unkown("unknown file name");
 void (*MeshIstreamErrorHandler)(ios & ) =0;
 ///////////////////////////////////////////////////////////
  void WriteStr(ostream & out,char * str)
@@ -335,7 +335,7 @@ void OFortranUnFormattedFile::Error(int err)
   else if (err==3)
     cerr<< "-- Erreur  write record info " ;
   else 
-    cerr << " unkown err " << err ;
+    cerr << " unknown err " << err ;
 
   cerr << " Record number = "    << nb_rec << endl
        << " read position  in file " << j << " < " << n 
@@ -358,7 +358,7 @@ void IFortranUnFormattedFile::Error(int err)
   else if (err==3)
     cerr<< " Erreur  read record info " ;
   else 
-    cerr << " unkown err " << err ;
+    cerr << " unknown err " << err ;
 
   cerr << " Record number = "    << nb_rec << endl
        << " read position  in file " << j << " < " << n 
diff --git a/contrib/kbipack/CMakeLists.txt b/contrib/kbipack/CMakeLists.txt
index 523dc33ff702381a887f12ebb95599973916fc52..80b07193ef54336b0c9d2d837ce7a5d49bb4fe42 100644
--- a/contrib/kbipack/CMakeLists.txt
+++ b/contrib/kbipack/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/mpeg_encode/CMakeLists.txt b/contrib/mpeg_encode/CMakeLists.txt
index 608772a679a13e7fe238a3637f2df15ae2032ed4..9cda5448f7d4c5ef94adfdce7c9d39d0204e38df 100644
--- a/contrib/mpeg_encode/CMakeLists.txt
+++ b/contrib/mpeg_encode/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/mpeg_encode/bsearch.cpp b/contrib/mpeg_encode/bsearch.cpp
index ecae2927cfa8095d969ed9d80e0d6d6092538a13..da8c8c6c8c51cb35da5a299f6856e96d81c76029 100644
--- a/contrib/mpeg_encode/bsearch.cpp
+++ b/contrib/mpeg_encode/bsearch.cpp
@@ -153,7 +153,7 @@ SetBSearchAlg(char *alg)
     } else if ( strcmp(alg, "EXHAUSTIVE") == 0 ) {
 	bsearchAlg = BSEARCH_EXHAUSTIVE;
     } else {
-	throw "Illegal bsearch algoritm";
+	throw "Illegal bsearch algorithm";
     }
 }
 
diff --git a/doc/gmsh.1 b/doc/gmsh.1
index 484384ddc002d80930d7991958e13f7c181e04da..11be90d5243e041d1d6e4e081209a684b35a7d1b 100644
--- a/doc/gmsh.1
+++ b/doc/gmsh.1
@@ -124,9 +124,6 @@ parse input files, then exit.
 .B \-a, \-g, \-m, \-s, \-p
 start in automatic, geometry, mesh, solver or post-processing mode.
 .TP 4
-.B \-lua
-start an interactive lua session.
-.TP 4
 .B \-pid
 print pid on stdout.
 .TP 4
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index 77a37b3546ab96c043cb4f9f7ad9f6fe93e8bc07..5d2857305642b5eff1ea0cc960350b1528ff9993 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex @c -*-texinfo-*-
-@c Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+@c Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 @c
 @c See the LICENSE.txt file for license information. Please report all
 @c bugs and problems to <gmsh@geuz.org>.
@@ -920,8 +920,6 @@ Specify display
 Parse input files, then exit
 @item -a, -g, -m, -s, -p
 Start in automatic, geometry, mesh, solver or post-processing mode
-@item -lua
-Start an interactive lua session
 @item -pid
 Print pid on stdout
 @item -listen