From bc135eb580e04f243f9502bba7f0b8425ae16d24 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 12 Jul 2006 07:24:23 +0000
Subject: [PATCH] *** empty log message ***

---
 Box/Main.cpp                |    8 +-
 Common/CommandLine.cpp      |    4 +-
 Common/Makefile             |  312 ++-------
 DataStr/Makefile            |    8 +-
 Fltk/Callbacks.cpp          |   54 +-
 Fltk/Main.cpp               |   15 +-
 Fltk/Makefile               |  392 +++--------
 Fltk/Opengl.cpp             |    5 +-
 Fltk/Opengl_Window.cpp      |    5 +-
 Geo/GEdge.cpp               |    2 +-
 Geo/GEdge.h                 |    2 +-
 Geo/GEntity.h               |   14 +-
 Geo/GVertex.h               |    3 +
 Geo/Makefile                |  127 ++--
 Geo/Print_Geo.cpp           |   16 +-
 Geo/gmshVertex.h            |    3 +
 Graphics/CreateFile.cpp     |   10 +-
 Graphics/Draw.cpp           |   21 +-
 Graphics/Draw.h             |   11 +-
 Graphics/Geom.cpp           |   84 ++-
 Graphics/Makefile           |  796 ++++-----------------
 Graphics/Mesh.cpp           |   52 +-
 Mesh/2D_Mesh.cpp            |    6 +-
 Mesh/2D_Parametric.cpp      |   20 +-
 Mesh/2D_Recombine.cpp       |   16 +-
 Mesh/3D_BGMesh.cpp          |   16 +-
 Mesh/3D_Extrude_Old.cpp     |   20 +-
 Mesh/3D_Mesh_Netgen.cpp     |   10 +-
 Mesh/DiscreteSurface.cpp    |  211 +++---
 Mesh/Generator.cpp          |  234 ++++---
 Mesh/Makefile               |  485 +++++--------
 Mesh/Mesh.h                 |   37 +-
 Mesh/Print_Mesh.cpp         |  232 +++----
 Mesh/SecondOrder.cpp        |    4 +-
 Mesh/meshGEdge.cpp          |   13 +-
 Numeric/Makefile            |   53 +-
 Parallel/Makefile           |    3 +-
 Parser/Gmsh.tab.cpp         |    4 +-
 Parser/Gmsh.y               |    4 +-
 Parser/Gmsh.yy.cpp          |    4 +-
 Parser/Makefile             |  135 +---
 Parser/OpenFile.cpp         |   16 +-
 Plugin/Makefile             | 1303 ++++-------------------------------
 Plugin/StructuralSolver.cpp |    9 +-
 contrib/ANN/Makefile        |   16 +-
 contrib/MathEval/Makefile   |    8 +-
 contrib/Metis/Makefile      |   54 +-
 contrib/Netgen/Makefile     |  101 ++-
 48 files changed, 1470 insertions(+), 3488 deletions(-)

diff --git a/Box/Main.cpp b/Box/Main.cpp
index ca185ac72c..992ab97b1c 100644
--- a/Box/Main.cpp
+++ b/Box/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.59 2006-03-17 21:04:33 geuzaine Exp $
+// $Id: Main.cpp,v 1.60 2006-07-12 07:24:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -32,9 +32,11 @@
 #include "Options.h"
 #include "OpenFile.h"
 #include "CommandLine.h"
+#include "GModel.h"
 
 Context_T CTX;
-Mesh M, *THEM = NULL;
+Mesh M, *THEM = &M;
+GModel *GMODEL = 0;
 
 // Print some help/info messages
 
@@ -117,7 +119,7 @@ int GMSHBOX(int argc, char *argv[])
       Print_Mesh(THEM, CTX.output_filename, CTX.mesh.format);
     }
     else
-      Print_Geo(THEM, CTX.output_filename);
+      Print_Geo(CTX.output_filename);
     if(CTX.mesh.histogram){
       Mesh_Quality(THEM);
       Print_Histogram(THEM->Histogram[0]);
diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index 9ad03306ae..e1985ef02e 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// $Id: CommandLine.cpp,v 1.70 2006-03-17 21:04:33 geuzaine Exp $
+// $Id: CommandLine.cpp,v 1.71 2006-07-12 07:24:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -297,7 +297,7 @@ void Get_Options(int argc, char *argv[])
 	  if(THEM){
 	    if(Tree_Nbr(THEM->Vertices)){
 	      CTX.mesh.msh_file_version = 2.0;
-	      Print_Mesh(THEM, argv[i + 1], FORMAT_MSH);
+	      Print_Mesh(argv[i + 1], FORMAT_MSH);
 	    }
 	  }
         }
diff --git a/Common/Makefile b/Common/Makefile
index 00bb21602e..a2f309e549 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.91 2006-07-10 12:16:34 remacle Exp $
+# $Id: Makefile,v 1.92 2006-07-12 07:24:12 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -64,6 +64,7 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Context.h \
@@ -72,249 +73,55 @@ Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Views.h ColorTable.h \
-  VertexArray.h SmoothNormals.h GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h AdaptiveViews.h Trackball.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Views.h ColorTable.h VertexArray.h SmoothNormals.h GmshMatrix.h \
+  AdaptiveViews.h Trackball.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \
-  GmshMatrix.h /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Plugin/Plugin.h ../Common/Options.h \
-  ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h OS.h
+  GmshMatrix.h ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h OS.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h ../Numeric/Numeric.h Views.h ColorTable.h \
-  VertexArray.h SmoothNormals.h GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h AdaptiveViews.h Context.h Options.h \
-  ../contrib/MathEval/matheval.h
+  VertexArray.h SmoothNormals.h GmshMatrix.h AdaptiveViews.h Context.h \
+  Options.h ../contrib/MathEval/matheval.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 ViewsIO.o: ViewsIO.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Views.h \
-  ColorTable.h VertexArray.h SmoothNormals.h GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h AdaptiveViews.h Context.h
+  ColorTable.h VertexArray.h SmoothNormals.h GmshMatrix.h AdaptiveViews.h \
+  Context.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Octree.o: Octree.cpp Octree.h OctreeInternals.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 OctreeInternals.o: OctreeInternals.cpp Message.h OctreeInternals.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 OctreePost.o: OctreePost.cpp Octree.h OctreeInternals.h OctreePost.h \
   ../DataStr/List.h Views.h ColorTable.h VertexArray.h SmoothNormals.h \
-  ../Numeric/Numeric.h GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h AdaptiveViews.h Message.h ShapeFunctions.h
+  ../Numeric/Numeric.h GmshMatrix.h AdaptiveViews.h Message.h \
+  ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Options.o: Options.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h Gmsh.h Message.h \
+  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h GmshUI.h \
+  ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Graphics/Draw.h \
   Context.h Options.h ../Fltk/Solvers.h ../Fltk/GUI.h \
   ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Common/GmshUI.h \
   ../Fltk/Popup_Button.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h GmshUI.h GmshVersion.h \
@@ -323,49 +130,18 @@ CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Views.h ColorTable.h \
-  VertexArray.h SmoothNormals.h GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h AdaptiveViews.h ../Parser/OpenFile.h \
-  ../Parser/Parser.h OS.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Views.h ColorTable.h VertexArray.h SmoothNormals.h GmshMatrix.h \
+  AdaptiveViews.h ../Parser/OpenFile.h ../Parser/Parser.h OS.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 OS.o: OS.cpp Message.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 ColorTable.o: ColorTable.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ColorTable.h Context.h \
   ../Numeric/Numeric.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Visibility.o: Visibility.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Geo/Geo.h ../Geo/CAD.h \
@@ -373,18 +149,22 @@ Visibility.o: Visibility.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Geo/ExtrudeParams.h ../Parser/Parser.h Visibility.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h ../Parser/Parser.h Visibility.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 Trackball.o: Trackball.cpp Trackball.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 VertexArray.o: VertexArray.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h VertexArray.h Context.h \
   ../Numeric/Numeric.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 SmoothNormals.o: SmoothNormals.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h \
   SmoothNormals.h
+# 1 "/Users/geuzaine/.gmsh/Common//"
 License.o: License.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h
diff --git a/DataStr/Makefile b/DataStr/Makefile
index 34a321aaed..ba6cd0a40f 100644
--- a/DataStr/Makefile
+++ b/DataStr/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.31 2006-07-10 12:16:34 remacle Exp $
+# $Id: Makefile,v 1.32 2006-07-12 07:24:12 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -55,9 +55,15 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 List.o: List.cpp Malloc.h List.h ../Common/Message.h SafeIO.h
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 Malloc.o: Malloc.cpp Malloc.h ../Common/Message.h
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 SafeIO.o: SafeIO.cpp SafeIO.h ../Common/Message.h
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 Tree.o: Tree.cpp Malloc.h Tree.h avl.h ../Common/Message.h
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 avl.o: avl.cpp avl.h Malloc.h
+# 1 "/Users/geuzaine/.gmsh/DataStr//"
 Tools.o: Tools.cpp Tools.h List.h Tree.h avl.h
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 546601de7a..2c86b4054b 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.417 2006-05-14 02:03:59 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.418 2006-07-12 07:24:12 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -961,7 +961,7 @@ void general_options_rotation_center_select_cb(CALLBACK_ARGS)
     WID->gen_value[9]->value(v[0]->Pos.Y);
     WID->gen_value[10]->value(v[0]->Pos.Z);
   }
-  ZeroHighlight(THEM);
+  ZeroHighlight();
   Draw();
   Msg(STATUS3N, "Ready");
   Msg(ONSCREEN, "");
@@ -1955,7 +1955,7 @@ static void _new_multiline(int type)
           break;
         }
       }
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       n = 0;
     }
@@ -1967,7 +1967,7 @@ static void _new_multiline(int type)
       }
     }
     if(ib == 'q') {
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
@@ -2018,13 +2018,13 @@ void geometry_elementary_add_new_line_cb(CALLBACK_ARGS)
       }
     }
     if(ib == 'q') {
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
     if(n == 2) {
       add_multline(2, p, CTX.filename);
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       n = 0;
     }
@@ -2083,13 +2083,13 @@ void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS)
       }
     }
     if(ib == 'q') {
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
     if(n == 3) {
       add_circ(p[0], p[1], p[2], CTX.filename); // begin, center, end
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       n = 0;
     }
@@ -2141,13 +2141,13 @@ void geometry_elementary_add_new_ellipse_cb(CALLBACK_ARGS)
       }
     }
     if(ib == 'q') {
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
     if(n == 4) {
       add_ell(p[0], p[1], p[2], p[3], CTX.filename);
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       n = 0;
     }
@@ -2206,7 +2206,7 @@ static void _new_surface_volume(int mode)
 
       char ib = SelectEntity(type, &ne, v, c, s);
       if(ib == 'q') {
-        ZeroHighlight(THEM);
+        ZeroHighlight();
         Draw();
         goto stopall;
       }
@@ -2241,12 +2241,12 @@ static void _new_surface_volume(int mode)
 		  "[Press 'e' to end selection, 'u' to undo last selection or 'q' to abort]");
 	    ib = SelectEntity(type, &ne, v, c, s);
 	    if(ib == 'q') {
-	      ZeroHighlight(THEM);
+	      ZeroHighlight();
 	      Draw();
 	      goto stopall;
 	    }
 	    if(ib == 'e') {
-	      ZeroHighlight(THEM);
+	      ZeroHighlight();
 	      Draw();
 	      List_Reset(List1);
 	      break;
@@ -2282,7 +2282,7 @@ static void _new_surface_volume(int mode)
 	    case 1: add_surf(List2, CTX.filename, 0, 1); break;
 	    case 2: add_vol(List2, CTX.filename); break;
 	    }
-	    ZeroHighlight(THEM);
+	    ZeroHighlight();
 	    Draw();
 	    break;
 	  }
@@ -2534,7 +2534,7 @@ static void _action_point_line_surface_volume(int action, int mode, char *what)
 	  break;
 	}
 	List_Reset(List1);
-	ZeroHighlight(THEM);
+	ZeroHighlight();
 	if(action <= 6) SetBoundingBox();
 	Draw();
       }
@@ -2548,7 +2548,7 @@ static void _action_point_line_surface_volume(int action, int mode, char *what)
 	  BDS_To_Mesh(THEM); 
 	}
       }
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
@@ -2855,14 +2855,14 @@ void mesh_save_cb(CALLBACK_ARGS)
   if(CTX.output_filename)
     strcpy(name, CTX.output_filename);
   else
-    GetDefaultMeshFileName(THEM, CTX.mesh.format, name);
+    GetDefaultMeshFileName(CTX.mesh.format, name);
   if(CTX.confirm_overwrite) {
     if(!StatFile(name))
       if(!fl_choice("File '%s' already exists.\n\nDo you want to replace it?",
 		    "Cancel", "Replace", NULL, name))
 	return;
   }
-  Print_Mesh(THEM, name, CTX.mesh.format);
+  Print_Mesh(name, CTX.mesh.format);
 }
 
 void mesh_define_cb(CALLBACK_ARGS)
@@ -2872,21 +2872,21 @@ void mesh_define_cb(CALLBACK_ARGS)
 
 void mesh_1d_cb(CALLBACK_ARGS)
 {
-  mai3d(THEM, 1);
+  mai3d(1);
   Draw();
   Msg(STATUS3N, "Ready");
 }
 
 void mesh_2d_cb(CALLBACK_ARGS)
 {
-  mai3d(THEM, 2);
+  mai3d(2);
   Draw();
   Msg(STATUS3N, "Ready");
 }
 
 void mesh_3d_cb(CALLBACK_ARGS)
 {
-  mai3d(THEM, 3);
+  mai3d(3);
   Draw();
   Msg(STATUS3N, "Ready");
 }
@@ -2919,7 +2919,7 @@ void mesh_optimize_cb(CALLBACK_ARGS)
     return;
   }
   CTX.threads_lock = 1;
-  Optimize_Netgen(THEM);
+  Optimize_Netgen();
   CTX.threads_lock = 0;
 
   CTX.mesh.changed = 1;
@@ -3011,7 +3011,7 @@ static void _add_transfinite_elliptic(int type, int dim)
 		       (char*)WID->context_mesh_input[2]->value(),
 		       (char*)WID->context_mesh_input[1]->value());
       }
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       n = 0;
     }
@@ -3025,7 +3025,7 @@ static void _add_transfinite_elliptic(int type, int dim)
       }
     }
     if(ib == 'q') {
-      ZeroHighlight(THEM);
+      ZeroHighlight();
       Draw();
       break;
     }
@@ -3079,13 +3079,13 @@ static void _add_transfinite_elliptic(int type, int dim)
                 Msg(GERROR, "Wrong number of points for transfinite volume");
               break;
             }
-            ZeroHighlight(THEM);
+            ZeroHighlight();
             Draw();
             n = 0;
             break;
           }
           if(ib == 'q') {
-            ZeroHighlight(THEM);
+            ZeroHighlight();
             Draw();
             goto stopall;
           }
@@ -4339,7 +4339,7 @@ void con_geometry_define_point_cb(CALLBACK_ARGS)
 	    (char*)WID->context_geometry_input[3]->value(),
 	    (char*)WID->context_geometry_input[4]->value(),
 	    (char*)WID->context_geometry_input[5]->value());
-  ZeroHighlight(THEM);
+  ZeroHighlight();
   SetBoundingBox();
   WID->reset_visibility();
   Draw();
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 3838c8a6a2..eb5c319112 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.89 2006-07-11 13:41:22 remacle Exp $
+// $Id: Main.cpp,v 1.90 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -42,11 +42,10 @@
 #include "GModel.h"
 
 Context_T CTX;
-Mesh M, *THEM = NULL;
-GUI *WID = NULL;
+Mesh M, *THEM = &M;
+GUI *WID = 0;
 GModel *GMODEL = 0;
 
-
 int main(int argc, char *argv[])
 {
   char *cmdline, currtime[100];
@@ -75,7 +74,7 @@ int main(int argc, char *argv[])
 
   // Initialize the static Mesh
   
-  Init_Mesh0(&M);
+  Init_Mesh0();
 
   // Gmsh default options
 
@@ -135,11 +134,11 @@ int main(int argc, char *argv[])
           Msg(GERROR, "Invalid background mesh (no view)");
       }
       if(CTX.batch > 0) {
-        mai3d(THEM, CTX.batch);
-        Print_Mesh(THEM, CTX.output_filename, CTX.mesh.format);
+        mai3d(CTX.batch);
+        Print_Mesh(CTX.output_filename, CTX.mesh.format);
       }
       else
-        Print_Geo(THEM, CTX.output_filename);
+        Print_Geo(CTX.output_filename);
       if(CTX.mesh.histogram) {
         Mesh_Quality(THEM);
         Print_Histogram(THEM->Histogram[0]);
diff --git a/Fltk/Makefile b/Fltk/Makefile
index 2c6d1b9e41..dafb49567c 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.88 2006-07-10 12:16:34 remacle Exp $
+# $Id: Makefile,v 1.89 2006-07-12 07:24:13 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -64,58 +64,31 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Main.o: Main.cpp GUI.h Opengl_Window.h ../Mesh/Mesh.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h Colorbar_Window.h ../Common/GmshUI.h \
-  ../Common/ColorTable.h Popup_Button.h ../Plugin/PluginManager.h \
-  ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Geo/Geo.h ../Graphics/Draw.h ../Common/Context.h \
-  ../Parser/Parser.h ../Parser/OpenFile.h ../Common/CommandLine.h \
-  Solvers.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Colorbar_Window.h \
+  ../Common/GmshUI.h ../Common/ColorTable.h Popup_Button.h \
+  ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \
+  ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h ../Geo/Geo.h \
+  ../Graphics/Draw.h ../Common/Context.h ../Parser/Parser.h \
+  ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.h ../Geo/GModel.h \
+  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Message.o: Message.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -125,61 +98,28 @@ Message.o: Message.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h Colorbar_Window.h ../Common/ColorTable.h \
-  Popup_Button.h GUI_Extras.h ../Common/OS.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Colorbar_Window.h \
+  ../Common/ColorTable.h Popup_Button.h GUI_Extras.h ../Common/OS.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 GUI.o: GUI.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Gmsh.h \
+  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Common/GmshUI.h ../Common/Context.h ../Geo/Geo.h ../Geo/CAD.h \
   ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Geo/ExtrudeParams.h ../Graphics/Draw.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h Popup_Button.h Callbacks.h Bitmaps.h Win32Icon.h \
-  ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h ../Graphics/Draw.h GUI.h \
+  Opengl_Window.h Colorbar_Window.h Popup_Button.h Callbacks.h Bitmaps.h \
+  Win32Icon.h ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.h \
   Shortcut_Window.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 GUI_Extras.o: GUI_Extras.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -188,100 +128,33 @@ GUI_Extras.o: GUI_Extras.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h File_Picker.h Shortcut_Window.h \
-  ../Graphics/CreateFile.h ../Common/Options.h ../Common/Context.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h File_Picker.h \
+  Shortcut_Window.h ../Graphics/CreateFile.h ../Common/Options.h \
+  ../Common/Context.h ../Graphics/Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Callbacks.o: Callbacks.cpp ../Mesh/BDS.h ../contrib/ANN/include/ANN/ANN.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Common/GmshUI.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Geo/ExtrudeParams.h ../Geo/ExtractContour.h ../Graphics/Draw.h \
-  ../Graphics/CreateFile.h ../Parser/OpenFile.h ../Common/CommandLine.h \
-  ../Common/Context.h ../Common/Options.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h Popup_Button.h GUI_Extras.h Callbacks.h \
-  ../Plugin/Plugin.h ../Plugin/PluginManager.h ../Plugin/Plugin.h \
-  ../Common/Visibility.h Solvers.h ../Common/OS.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h ../Geo/Geo.h ../Geo/CAD.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h ../Geo/ExtractContour.h \
+  ../Graphics/Draw.h ../Graphics/CreateFile.h ../Parser/OpenFile.h \
+  ../Common/CommandLine.h ../Common/Context.h ../Common/Options.h GUI.h \
+  Opengl_Window.h Colorbar_Window.h Popup_Button.h GUI_Extras.h \
+  Callbacks.h ../Plugin/Plugin.h ../Plugin/PluginManager.h \
+  ../Plugin/Plugin.h ../Common/Visibility.h Solvers.h ../Common/OS.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Opengl.o: Opengl.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -290,47 +163,16 @@ Opengl.o: Opengl.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  Popup_Button.h ../Graphics/gl2ps.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h Popup_Button.h ../Graphics/gl2ps.h \
+  /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Opengl_Window.o: Opengl_Window.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -339,47 +181,14 @@ Opengl_Window.o: Opengl_Window.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  Popup_Button.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h Popup_Button.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Colorbar_Window.o: Colorbar_Window.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
@@ -388,14 +197,16 @@ Colorbar_Window.o: Colorbar_Window.cpp ../Common/Gmsh.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  Colorbar_Window.h ../Common/ColorTable.h Popup_Button.h \
-  ../Common/Context.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h Colorbar_Window.h ../Common/ColorTable.h \
+  Popup_Button.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Popup_Button.o: Popup_Button.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Common/GmshUI.h Popup_Button.h
+# 1 "/Users/geuzaine/.gmsh/Fltk//"
 Solvers.o: Solvers.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -405,44 +216,9 @@ Solvers.o: Solvers.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h Colorbar_Window.h ../Common/ColorTable.h \
-  Popup_Button.h ../Graphics/Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Colorbar_Window.h \
+  ../Common/ColorTable.h Popup_Button.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h
diff --git a/Fltk/Opengl.cpp b/Fltk/Opengl.cpp
index 44c302d8c6..100559335a 100644
--- a/Fltk/Opengl.cpp
+++ b/Fltk/Opengl.cpp
@@ -1,4 +1,4 @@
-// $Id: Opengl.cpp,v 1.58 2006-05-17 01:19:05 geuzaine Exp $
+// $Id: Opengl.cpp,v 1.59 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -30,7 +30,6 @@
 #include "gl2ps.h"
 
 extern GUI *WID;
-extern Mesh M;
 extern Context_T CTX;
 
 // Draw specialization
@@ -241,7 +240,7 @@ char SelectEntity(int type, int *n,
 				     WID->try_selection_xywh[1], 
 				     WID->try_selection_xywh[2],
 				     WID->try_selection_xywh[3], 
-				     v, c, s, &M);
+				     v, c, s);
 	if(*n){
 	  if(add){
 	    for(int i = 0; i < *n; i++)
diff --git a/Fltk/Opengl_Window.cpp b/Fltk/Opengl_Window.cpp
index d373d29218..c487a01287 100644
--- a/Fltk/Opengl_Window.cpp
+++ b/Fltk/Opengl_Window.cpp
@@ -1,4 +1,4 @@
-// $Id: Opengl_Window.cpp,v 1.60 2006-01-18 16:19:10 geuzaine Exp $
+// $Id: Opengl_Window.cpp,v 1.61 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -30,7 +30,6 @@
 #include "Opengl_Window.h"
 
 extern GUI *WID;
-extern Mesh M;
 extern Context_T CTX;
 
 void MousePosition::set()
@@ -357,7 +356,7 @@ int Opengl_Window::handle(int event)
 	v[0] = NULL; c[0] = NULL; s[0] = NULL;
 	Process_SelectionBuffer(WID->selection, 0, 
 				(int)curr.win[0], (int)curr.win[1], 5, 5, 
-				v, c, s, &M);
+				v, c, s);
 	if((WID->selection == ENT_POINT && v[0]) ||
 	   (WID->selection == ENT_LINE && c[0]) || 
 	   (WID->selection == ENT_SURFACE && s[0]))
diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index 1f69045e0f..5b6b5a98eb 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -18,7 +18,7 @@ GEdge::GEdge(GModel *model,
 {
   v0->addEdge (this);
   v1->addEdge (this);
-  meshGEdgeAttributes.Method = LIBRE; 
+  meshAttributes.Method = LIBRE; 
 }
 
 GEdge::~GEdge() 
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 897be18801..7f09fb8185 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -58,7 +58,7 @@ public:
     double coeffTransfinite;
     int    nbPointsTransfinite;
     int    typeTransfinite;
-  } meshGEdgeAttributes ;
+  } meshAttributes ;
 
   virtual int minimumEdgeSegments () const {return 1;}
 
diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index 5fd4ea7ad7..da6dca2ad9 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -5,6 +5,7 @@
 #include "SPoint3.h"
 #include "SBoundingBox3d.h"
 #include "MVertex.h"
+#include "GmshDefines.h"
 #include <list>
 #include <vector>
 
@@ -39,8 +40,12 @@ public:
     ThreeDimVolume
     };
 
-  GEntity(GModel *m, int t) : _model(m),_tag(t){}
-    virtual ~GEntity() {};
+  GEntity(GModel *m, int t) : _model(m),_tag(t){
+    drawAttributes.Visible = VIS_GEOM | VIS_MESH; 
+    drawAttributes.Frozen = false; 
+  }
+
+  virtual ~GEntity() {};
 
   /** Return a renderable representation of the entity.*/
   //  virtual MeshRep * getGeometry() ;
@@ -98,6 +103,11 @@ public:
 
   std::vector<MVertex*> mesh_vertices;
 
+  struct 
+  {
+    char   Visible;
+    bool   Frozen;
+  } drawAttributes ;
 
 };
 
diff --git a/Geo/GVertex.h b/Geo/GVertex.h
index b9ec60ef32..dd837d93e7 100644
--- a/Geo/GVertex.h
+++ b/Geo/GVertex.h
@@ -11,6 +11,9 @@ public:
   GVertex(GModel *m, int tag) : GEntity (m,tag) {}
   virtual ~GVertex() {}
   virtual GPoint point() const = 0;
+  virtual double x() const = 0;
+  virtual double y() const = 0;
+  virtual double z() const = 0;
   void addEdge ( GEdge *e );
   void delEdge ( GEdge *e );
   virtual int dim() const {return 0;}
diff --git a/Geo/Makefile b/Geo/Makefile
index e06116b89d..560782d6a4 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.77 2006-07-10 12:16:34 remacle Exp $
+# $Id: Makefile,v 1.78 2006-07-12 07:24:13 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -75,6 +75,7 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Geo.h \
@@ -82,15 +83,17 @@ CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Mesh/Interpolation.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
   ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h CAD.h ExtrudeParams.h \
   ../Common/Visibility.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 MinMax.o: MinMax.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Mesh/Vertex.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 ExtrudeParams.o: ExtrudeParams.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -99,8 +102,9 @@ ExtrudeParams.o: ExtrudeParams.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h ExtrudeParams.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ExtrudeParams.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Geo.h CAD.h \
@@ -108,9 +112,10 @@ Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ExtrudeParams.h \
-  ../Parser/Parser.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ExtrudeParams.h ../Parser/Parser.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GeoUtils.o: GeoUtils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -119,72 +124,85 @@ GeoUtils.o: GeoUtils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h ExtrudeParams.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ExtrudeParams.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GVertex.o: GVertex.cpp GVertex.h GEntity.h Range.h SPoint3.h \
-  SBoundingBox3d.h GPoint.h
+  SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h GPoint.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GEdge.o: GEdge.cpp GEdge.h GEntity.h Range.h SPoint3.h SBoundingBox3d.h \
-  GVertex.h GPoint.h SVector3.h SPoint2.h
+  MVertex.h ../Common/GmshDefines.h GVertex.h GPoint.h SVector3.h \
+  SPoint2.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GFace.o: GFace.cpp GFace.h GPoint.h GEntity.h Range.h SPoint3.h \
-  SBoundingBox3d.h GEdgeLoop.h SPoint2.h SVector3.h Pair.h GEdge.h \
-  GVertex.h
+  SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h SPoint2.h SVector3.h \
+  Pair.h GEdge.h GVertex.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GRegion.o: GRegion.cpp GRegion.h GEntity.h Range.h SPoint3.h \
-  SBoundingBox3d.h GFace.h GPoint.h GEdgeLoop.h SPoint2.h SVector3.h \
-  Pair.h
+  SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h GFace.h GPoint.h \
+  SPoint2.h SVector3.h Pair.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 GModel.o: GModel.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
-  SBoundingBox3d.h GPoint.h GEdge.h SVector3.h SPoint2.h GFace.h \
-  GEdgeLoop.h Pair.h GRegion.h
+  SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h GPoint.h GEdge.h \
+  SVector3.h SPoint2.h GFace.h Pair.h GRegion.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 gmshModel.o: gmshModel.cpp gmshModel.h GModel.h GVertex.h GEntity.h \
-  Range.h SPoint3.h SBoundingBox3d.h GPoint.h GEdge.h SVector3.h \
-  SPoint2.h GFace.h GEdgeLoop.h Pair.h GRegion.h ../Mesh/Mesh.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  Range.h SPoint3.h SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h \
+  GPoint.h GEdge.h SVector3.h SPoint2.h GFace.h Pair.h GRegion.h \
+  ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Parser/OpenFile.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h ../Common/Message.h gmshVertex.h gmshFace.h \
   gmshEdge.h gmshRegion.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 gmshEdge.o: gmshEdge.cpp gmshModel.h GModel.h GVertex.h GEntity.h Range.h \
-  SPoint3.h SBoundingBox3d.h GPoint.h GEdge.h SVector3.h SPoint2.h \
-  GFace.h GEdgeLoop.h Pair.h GRegion.h gmshEdge.h gmshVertex.h \
-  ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
+  SPoint3.h SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h GPoint.h \
+  GEdge.h SVector3.h SPoint2.h GFace.h Pair.h GRegion.h gmshEdge.h \
+  gmshVertex.h ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Mesh/Interpolation.h ../Mesh/Vertex.h ../Mesh/Mesh.h CAD.h \
-  ExtrudeParams.h Geo.h
+  ExtrudeParams.h Geo.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 gmshFace.o: gmshFace.cpp gmshModel.h GModel.h GVertex.h GEntity.h Range.h \
-  SPoint3.h SBoundingBox3d.h GPoint.h GEdge.h SVector3.h SPoint2.h \
-  GFace.h GEdgeLoop.h Pair.h GRegion.h gmshEdge.h gmshVertex.h \
-  ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
+  SPoint3.h SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h GPoint.h \
+  GEdge.h SVector3.h SPoint2.h GFace.h Pair.h GRegion.h gmshEdge.h \
+  gmshVertex.h ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   gmshFace.h ../Mesh/Interpolation.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
   CAD.h ExtrudeParams.h Geo.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 gmshRegion.o: gmshRegion.cpp gmshModel.h GModel.h GVertex.h GEntity.h \
-  Range.h SPoint3.h SBoundingBox3d.h GPoint.h GEdge.h SVector3.h \
-  SPoint2.h GFace.h GEdgeLoop.h Pair.h GRegion.h gmshEdge.h gmshVertex.h \
-  ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  gmshFace.h gmshRegion.h ../Mesh/Interpolation.h ../Mesh/Vertex.h \
-  ../Mesh/Mesh.h CAD.h ExtrudeParams.h Geo.h
+  Range.h SPoint3.h SBoundingBox3d.h MVertex.h ../Common/GmshDefines.h \
+  GPoint.h GEdge.h SVector3.h SPoint2.h GFace.h Pair.h GRegion.h \
+  gmshEdge.h gmshVertex.h ../Mesh/Mesh.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h gmshFace.h gmshRegion.h ../Mesh/Interpolation.h \
+  ../Mesh/Vertex.h ../Mesh/Mesh.h CAD.h ExtrudeParams.h Geo.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 SVector3.o: SVector3.cpp SVector3.h SPoint3.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 SBoundingBox3d.o: SBoundingBox3d.cpp SBoundingBox3d.h SPoint3.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 ExtractContour.o: ExtractContour.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -193,8 +211,9 @@ ExtractContour.o: ExtractContour.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h CAD.h ExtrudeParams.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h CAD.h ExtrudeParams.h
+# 1 "/Users/geuzaine/.gmsh/Geo//"
 Print_Geo.o: Print_Geo.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -203,5 +222,5 @@ Print_Geo.o: Print_Geo.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h CAD.h ExtrudeParams.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h CAD.h ExtrudeParams.h
diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp
index 87329e1267..893311ec3b 100644
--- a/Geo/Print_Geo.cpp
+++ b/Geo/Print_Geo.cpp
@@ -1,4 +1,4 @@
-// $Id: Print_Geo.cpp,v 1.43 2006-01-10 15:13:25 geuzaine Exp $
+// $Id: Print_Geo.cpp,v 1.44 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -24,6 +24,8 @@
 #include "Mesh.h"
 #include "CAD.h"
 
+extern Mesh *THEM;
+
 FILE *FOUT;
 
 void Print_Point(void *a, void *b)
@@ -243,7 +245,7 @@ void Print_PhysicalGroups(void *a, void *b)
   fprintf(FOUT, "};\n");
 }
 
-void Print_Geo(Mesh *M, char *filename)
+void Print_Geo(char *filename)
 {
   if(filename) {
     FOUT = fopen(filename, "w");
@@ -256,11 +258,11 @@ void Print_Geo(Mesh *M, char *filename)
   else
     FOUT = stdout;
 
-  Tree_Action(M->Points, Print_Point);
-  Tree_Action(M->Curves, Print_Curve);
-  Tree_Action(M->Surfaces, Print_Surface); 
-  Tree_Action(M->Volumes, Print_Volume);
-  List_Action(M->PhysicalGroups, Print_PhysicalGroups);
+  Tree_Action(THEM->Points, Print_Point);
+  Tree_Action(THEM->Curves, Print_Curve);
+  Tree_Action(THEM->Surfaces, Print_Surface); 
+  Tree_Action(THEM->Volumes, Print_Volume);
+  List_Action(THEM->PhysicalGroups, Print_PhysicalGroups);
 
   if(filename) {
     Msg(INFO, "Wrote flattened geometry file '%s'", filename);
diff --git a/Geo/gmshVertex.h b/Geo/gmshVertex.h
index db69b6f32c..8bc9ab0aaf 100644
--- a/Geo/gmshVertex.h
+++ b/Geo/gmshVertex.h
@@ -10,6 +10,9 @@ public:
   gmshVertex(GModel *m, Vertex *_v) : GVertex(m, _v->Num), v(_v){}
   virtual ~gmshVertex() {}
   virtual GPoint point() const{return GPoint ( v->Pos.X,v->Pos.Y,v->Pos.Z,this);}
+  virtual double x() const {return v->Pos.X;}
+  virtual double y() const {return v->Pos.Y;}
+  virtual double z() const {return v->Pos.Z;}
   virtual double tolerance() const {return 1.e-14;}
   void * getNativePtr() const {return v;}
   virtual double prescribedMeshSizeAtVertex () const {return v->lc;}
diff --git a/Graphics/CreateFile.cpp b/Graphics/CreateFile.cpp
index 5721b7b7e9..5967367f0f 100644
--- a/Graphics/CreateFile.cpp
+++ b/Graphics/CreateFile.cpp
@@ -1,4 +1,4 @@
-// $Id: CreateFile.cpp,v 1.80 2006-06-08 11:31:55 geuzaine Exp $
+// $Id: CreateFile.cpp,v 1.81 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -21,7 +21,6 @@
 
 #include "Gmsh.h"
 #include "GmshUI.h"
-#include "Mesh.h"
 #include "OpenFile.h"
 #include "Context.h"
 #include "Options.h"
@@ -34,7 +33,6 @@
 #include "gl2yuv.h"
 
 extern Context_T CTX;
-extern Mesh M;
 
 int GuessFileFormatFromFileName(char *name)
 {
@@ -116,7 +114,7 @@ void CreateOutputFile(char *name, int format)
     break;
     
   case FORMAT_GEO:
-    Print_Geo(&M, name);
+    Print_Geo(name);
     break;
 
   case FORMAT_OPT:
@@ -130,11 +128,11 @@ void CreateOutputFile(char *name, int format)
   case FORMAT_STL:
   case FORMAT_GREF:
   case FORMAT_VRML:
-    Print_Mesh(&M, name, format);
+    Print_Mesh(name, format);
     break;
 
   case FORMAT_LC:
-    ExportMeshStatistics(&M, name);
+    ExportMeshStatistics(name);
     Msg(STATUS2N, "Wrote '%s'", name);
     break;
 
diff --git a/Graphics/Draw.cpp b/Graphics/Draw.cpp
index 3911ba4d63..7d5f25a2ff 100644
--- a/Graphics/Draw.cpp
+++ b/Graphics/Draw.cpp
@@ -1,4 +1,4 @@
-// $Id: Draw.cpp,v 1.95 2006-01-16 17:55:43 geuzaine Exp $
+// $Id: Draw.cpp,v 1.96 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -28,17 +28,17 @@
 #include "Context.h"
 #include "Numeric.h"
 
+extern Mesh *THEM;
 extern Context_T CTX;
-extern Mesh M;
 
 // Global Draw functions
 
 int NeedPolygonOffset()
 {
-  if(M.status == 2 &&
+  if(THEM->status == 2 &&
      (CTX.mesh.surfaces_edges || CTX.geom.lines || CTX.geom.surfaces))
     return 1;
-  if(M.status == 3 && 
+  if(THEM->status == 3 && 
      (CTX.mesh.surfaces_edges || CTX.mesh.volumes_edges))
     return 1;
   for(int i = 0; i < List_Nbr(CTX.post.list); i++){
@@ -78,7 +78,7 @@ void Draw3d(void)
   InitRenderModel();
   InitPosition();
 
-  Draw_Mesh(&M);
+  Draw_Model();
 }
 
 void Draw2d(void)
@@ -361,8 +361,7 @@ int Process_SelectionBuffer(int type, bool multi,
 			    int x, int y, int w, int h,
 			    Vertex *v[SELECTION_MAX_HITS],
 			    Curve *c[SELECTION_MAX_HITS],
-			    Surface *s[SELECTION_MAX_HITS],
-			    Mesh *m)
+			    Surface *s[SELECTION_MAX_HITS])
 {
   hit hits[SELECTION_BUFFER_SIZE];
   GLuint selectBuf[SELECTION_BUFFER_SIZE];
@@ -376,7 +375,7 @@ int Process_SelectionBuffer(int type, bool multi,
   glPushMatrix();
   InitProjection(x, y, w, h);
   InitPosition();
-  Draw_Mesh(&M);
+  Draw_Model();
   glPopMatrix();
 
   GLint numhits = glRenderMode(GL_RENDER);
@@ -433,7 +432,7 @@ int Process_SelectionBuffer(int type, bool multi,
        (type == ENT_SURFACE && hits[i].type == 2)){
       switch (hits[i].type) {
       case 0:
-	if(!(v[j] = FindPoint(hits[i].ient, m))){
+	if(!(v[j] = FindPoint(hits[i].ient, THEM))){
 	  Msg(GERROR, "Problem in point selection processing");
 	  return j;
 	}
@@ -441,7 +440,7 @@ int Process_SelectionBuffer(int type, bool multi,
 	if(!multi) return 1;
 	break;
       case 1:
-	if(!(c[j] = FindCurve(hits[i].ient, m))){
+	if(!(c[j] = FindCurve(hits[i].ient, THEM))){
 	  Msg(GERROR, "Problem in line selection processing");
 	  return j;
 	}
@@ -449,7 +448,7 @@ int Process_SelectionBuffer(int type, bool multi,
 	if(!multi) return 1;
 	break;
       case 2:
-	if(!(s[j] = FindSurface(hits[i].ient, m))){
+	if(!(s[j] = FindSurface(hits[i].ient, THEM))){
 	  Msg(GERROR, "Problem in surface selection processing");
 	  return j;
 	}
diff --git a/Graphics/Draw.h b/Graphics/Draw.h
index f101a6077e..1590fa71dd 100644
--- a/Graphics/Draw.h
+++ b/Graphics/Draw.h
@@ -21,8 +21,8 @@
 // Please report all bugs and problems to <gmsh@geuz.org>.
 
 #include "List.h"
-#include "Mesh.h"
 #include "Views.h"
+#include "Mesh.h"
 
 #define GMSH_RENDER    1
 #define GMSH_SELECT    2
@@ -43,8 +43,7 @@ int Process_SelectionBuffer(int type, bool multi,
 			    int x, int y, int w, int h, 
 			    Vertex *v[SELECTION_MAX_HITS], 
 			    Curve *c[SELECTION_MAX_HITS], 
-			    Surface *s[SELECTION_MAX_HITS], 
-			    Mesh *m);
+			    Surface *s[SELECTION_MAX_HITS]);
 char SelectEntity(int type, int *n,
 		  Vertex *v[SELECTION_MAX_HITS], 
 		  Curve *c[SELECTION_MAX_HITS], 
@@ -62,7 +61,7 @@ void HighlightEntity(Vertex *v,Curve *c, Surface *s, int permanent);
 void HighlightEntityNum(int v, int c, int s, int permanant);
 void ZeroHighlightEntity(Vertex *v,Curve *c, Surface *s);
 void ZeroHighlightEntityNum(int v, int c, int s);
-void ZeroHighlight(Mesh *m);
+void ZeroHighlight();
 
 void Draw3d(void);
 void Draw2d(void);
@@ -73,7 +72,7 @@ void Draw_String(char *s);
 void Draw_String(char *s, double style);
 void Draw_String_Center(char *s);
 void Draw_String_Right(char *s);
-void Draw_Geom(Mesh *m);
+void Draw_Geom(void);
 void Draw_Post(void);
 void Draw_Graph2D(void);
 void Draw_Text2D(void);
@@ -99,7 +98,7 @@ void Draw_SmallAxes(void);
 void Draw_Axes(int mode, int tics[3], char format[3][256], char label[3][256],
 	       double bbox[6]);
 
-void Draw_Mesh(Mesh *M);
+void Draw_Model();
 void Draw_Mesh_Volume(void *a, void *b);
 void Draw_Mesh_Surface(void *a, void *b);
 void Draw_Mesh_Extruded_Surfaces(void *a, void *b);
diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp
index 65e4b7a79b..993c0d8708 100644
--- a/Graphics/Geom.cpp
+++ b/Graphics/Geom.cpp
@@ -1,4 +1,4 @@
-// $Id: Geom.cpp,v 1.97 2006-01-10 03:58:31 geuzaine Exp $
+// $Id: Geom.cpp,v 1.98 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -33,27 +33,28 @@
 #include "Plugin.h"
 #include "PluginManager.h"
 #include "gl2ps.h"
+#include "GModel.h"
+#include "GVertex.h"
 
 extern Context_T CTX;
 extern Mesh *THEM;
+extern GModel *GMODEL;
 
 // Points
 
-void Draw_Geo_Point(void *a, void *b)
+void Draw_Geo_Vertex(GVertex *v)
 {
   char Num[100];
 
-  Vertex *v = *(Vertex **) a;
-
-  if(!(v->Visible & VIS_GEOM))
+  if(!(v->drawAttributes.Visible & VIS_GEOM))
     return;
 
   if(CTX.render_mode == GMSH_SELECT) {
     glPushName(0);
-    glPushName(v->Num);
+    glPushName(v->tag());
   }
-
-  if(v->Frozen) {
+  
+  if(v->drawAttributes.Frozen) {
     glPointSize(CTX.geom.point_sel_size);
     gl2psPointSize(CTX.geom.point_sel_size * CTX.print.eps_point_size_factor);
     glColor4ubv((GLubyte *) & CTX.color.geom.point_sel);
@@ -66,36 +67,37 @@ void Draw_Geo_Point(void *a, void *b)
 
   if(CTX.geom.points) {
     if(CTX.geom.point_type == 1) {
-      if(v->Frozen)
-	Draw_Sphere(CTX.geom.point_sel_size, v->Pos.X, v->Pos.Y, v->Pos.Z, 
+      if(v->drawAttributes.Frozen)
+	Draw_Sphere(CTX.geom.point_sel_size, v->x(), v->y(), v->z(), 
 		    CTX.geom.light);
       else
-	Draw_Sphere(CTX.geom.point_size, v->Pos.X, v->Pos.Y, v->Pos.Z,
+	Draw_Sphere(CTX.geom.point_size, v->x(), v->y(), v->z(),
 		    CTX.geom.light);
     }
     else if(CTX.geom.point_type == 2) {
       GMSH_Solve_Plugin *sp = GMSH_PluginManager::instance()->findSolverPlugin();
       if(sp) {
-	sp-> GL_enhancePoint (v);
+	Msg(FATAL, "code GL_enhancePoint!");
+	//sp-> GL_enhancePoint (v);
       }
       glBegin(GL_POINTS);
-      glVertex3d(v->Pos.X, v->Pos.Y, v->Pos.Z);
+      glVertex3d(v->x(), v->y(), v->z());
       glEnd();
     }
     else {
       glBegin(GL_POINTS);
-      glVertex3d(v->Pos.X, v->Pos.Y, v->Pos.Z);
+      glVertex3d(v->x(), v->y(), v->z());
       glEnd();
     }
 
   }
 
   if(CTX.geom.points_num) {
-    sprintf(Num, "%d", v->Num);
+    sprintf(Num, "%d", v->tag());
     double offset = (0.5 * CTX.geom.point_size + 0.3 * CTX.gl_fontsize) * CTX.pixel_equiv_x;
-    glRasterPos3d(v->Pos.X + offset / CTX.s[0],
-		  v->Pos.Y + offset / CTX.s[1],
-		  v->Pos.Z + offset / CTX.s[2]);
+    glRasterPos3d(v->x() + offset / CTX.s[0],
+		  v->y() + offset / CTX.s[1],
+		  v->z() + offset / CTX.s[2]);
     Draw_String(Num);
   }
 
@@ -107,24 +109,22 @@ void Draw_Geo_Point(void *a, void *b)
 
 // Curves
 
-void Draw_Curve(void *a, void *b)
+void Draw_Geo_Edge(GEdge *c)
 {
   int N;
   double mod, x[2], y[2], z[2];
   char Num[100];
   Vertex v, dv;
 
-  Curve *c = *(Curve **) a;
-
-  if(c->Num < 0 || !(c->Visible & VIS_GEOM))
+  if(c->tag() < 0 || !(c->drawAttributes.Visible & VIS_GEOM))
     return;
 
   if(CTX.render_mode == GMSH_SELECT) {
     glPushName(1);
-    glPushName(c->Num);
+    glPushName(c->tag());
   }
 
-  if(c->ipar[3] > 0) {
+  if(c->drawAttributes.Frozen) {
     glLineWidth(CTX.geom.line_sel_width);
     gl2psLineWidth(CTX.geom.line_sel_width * CTX.print.eps_line_width_factor);
     glColor4ubv((GLubyte *) & CTX.color.geom.line_sel);
@@ -135,6 +135,7 @@ void Draw_Curve(void *a, void *b)
     glColor4ubv((GLubyte *) & CTX.color.geom.line);
   }
 
+  /*
   if(CTX.geom.lines) {
     int n = List_Nbr(c->Control_Points);
     switch (c->Typ) {
@@ -240,6 +241,8 @@ void Draw_Curve(void *a, void *b)
 		v.Pos.X, v.Pos.Y, v.Pos.Z,
 		dv.Pos.X, dv.Pos.Y, dv.Pos.Z, CTX.geom.light);
   }
+  */
+
 
   if(CTX.render_mode == GMSH_SELECT) {
     glPopName();
@@ -655,25 +658,32 @@ void Draw_Surface(void *a, void *b)
 
 // Volumes
 
-void DrawVolumes(Mesh * m)
+void Draw_Volumes()
 {
 }
 
 // Draw geometry
 
-void Draw_Geom(Mesh * m)
+void Draw_Geom()
 {
-  if(m->status == -1)
-    return;
-
+  if(!GMODEL) return;
+  
   if(CTX.geom.points || CTX.geom.points_num)
-    Tree_Action(m->Points, Draw_Geo_Point);
+    for(GModel::viter v = GMODEL->firstVertex(); v != GMODEL->lastVertex(); v++)
+      Draw_Geo_Vertex(*v);
+
+  if(CTX.geom.lines || CTX.geom.lines_num || CTX.geom.tangents)
+    for(GModel::eiter e = GMODEL->firstEdge(); e != GMODEL->lastEdge(); e++)
+      Draw_Geo_Edge(*e);
+
+  /*
   if(CTX.geom.lines || CTX.geom.lines_num || CTX.geom.tangents)
-    Tree_Action(m->Curves, Draw_Curve);
+    Tree_Action(THEM->Curves, Draw_Curve);
   if(CTX.geom.surfaces || CTX.geom.surfaces_num || CTX.geom.normals)
-    Tree_Action(m->Surfaces, Draw_Surface);
+    Tree_Action(THEM->Surfaces, Draw_Surface);
   if(CTX.geom.volumes || CTX.geom.volumes_num)
-    DrawVolumes(m);
+    Draw_Volumes();
+  */
 }
 
 // Highlight routines
@@ -793,11 +803,11 @@ void ZeroHighlightSurface(void *a, void *b)
   s->ipar[4] = -2;
 }
 
-void ZeroHighlight(Mesh * m)
+void ZeroHighlight()
 {
-  Tree_Action(m->Points, ZeroHighlightPoint);
-  Tree_Action(m->Curves, ZeroHighlightCurve);
-  Tree_Action(m->Surfaces, ZeroHighlightSurface);
+  Tree_Action(THEM->Points, ZeroHighlightPoint);
+  Tree_Action(THEM->Curves, ZeroHighlightCurve);
+  Tree_Action(THEM->Surfaces, ZeroHighlightSurface);
 }
 
 void ZeroHighlightEntity(Vertex * v, Curve * c, Surface * s)
diff --git a/Graphics/Makefile b/Graphics/Makefile
index abeb56cba6..e9dee0bd3f 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.81 2006-07-10 12:16:34 remacle Exp $
+# $Id: Makefile,v 1.82 2006-07-12 07:24:13 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -69,6 +69,7 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Draw.o: Draw.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Common/GmshUI.h ../Geo/Geo.h \
@@ -77,46 +78,13 @@ Draw.o: Draw.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Geo/ExtrudeParams.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Mesh.o: Mesh.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Common/GmshUI.h ../Geo/Geo.h \
@@ -125,97 +93,40 @@ Mesh.o: Mesh.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Geo/MinMax.h gl2ps.h
+  ../Common/GmshDefines.h ../Mesh/Metric.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Geo/ExtrudeParams.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Context.h ../Geo/MinMax.h gl2ps.h \
+  /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Geom.o: Geom.cpp ../Mesh/BDS.h ../contrib/ANN/include/ANN/ANN.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Common/GmshUI.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Utils.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
-  Draw.h ../Common/Context.h ../Mesh/Interpolation.h ../Mesh/Vertex.h \
-  ../Mesh/Mesh.h ../Plugin/Plugin.h ../Common/Options.h \
-  ../Plugin/PluginManager.h ../Plugin/Plugin.h gl2ps.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h ../Geo/Geo.h ../Geo/CAD.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h ../Mesh/Utils.h \
+  ../Mesh/Vertex.h ../Mesh/Mesh.h Draw.h ../Common/Context.h \
+  ../Mesh/Interpolation.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
+  ../Plugin/Plugin.h ../Common/Options.h ../Plugin/PluginManager.h \
+  ../Plugin/Plugin.h gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Post.o: Post.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Common/GmshUI.h \
@@ -224,46 +135,14 @@ Post.o: Post.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Draw.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Draw.h ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h gl2ps.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 PostElement.o: PostElement.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -272,46 +151,13 @@ PostElement.o: PostElement.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  Draw.h ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Iso.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Iso.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Iso.o: Iso.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Common/GmshUI.h ../Geo/Geo.h \
@@ -319,134 +165,36 @@ Iso.o: Iso.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  Draw.h ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Entity.o: Entity.cpp ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Common/GmshUI.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h gl2ps.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Common/Gmsh.h ../Common/Message.h \
+  ../DataStr/Malloc.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 ReadImg.o: ReadImg.cpp ReadImg.h ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Common/GmshUI.h ../Common/Views.h ../Common/ColorTable.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Scale.o: Scale.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -455,46 +203,14 @@ Scale.o: Scale.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Draw.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Draw.h ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h gl2ps.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 Graph2D.o: Graph2D.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -503,337 +219,101 @@ Graph2D.o: Graph2D.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h Draw.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  Draw.h ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h gl2ps.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h gl2ps.h \
+  /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 CreateFile.o: CreateFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Common/GmshUI.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
-  ../Mesh/Matrix.h ../Parser/OpenFile.h ../Common/Context.h \
-  ../Common/Options.h gl2ps.h gl2gif.h PixelBuffer.h Draw.h \
+  ../Common/GmshUI.h ../Parser/OpenFile.h ../Common/Context.h \
+  ../Common/Options.h gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h gl2gif.h PixelBuffer.h Draw.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h gl2jpeg.h gl2png.h gl2ppm.h gl2yuv.h
-gl2ps.o: gl2ps.cpp gl2ps.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  gl2jpeg.h gl2png.h gl2ppm.h gl2yuv.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
+gl2ps.o: gl2ps.cpp gl2ps.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 gl2gif.o: gl2gif.cpp gl2gif.h PixelBuffer.h ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 gl2jpeg.o: gl2jpeg.cpp gl2jpeg.h PixelBuffer.h ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h /usr/local/include/FL/images/jpeglib.h \
+  /usr/local/include/FL/images/jpeglib.h \
   /usr/local/include/FL/images/jconfig.h \
   /usr/local/include/FL/images/jmorecfg.h \
   /usr/local/include/FL/images/jerror.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 gl2png.o: gl2png.cpp gl2png.h PixelBuffer.h ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h /usr/local/include/FL/images/png.h \
+  /usr/local/include/FL/images/png.h /usr/local/include/FL/images/zlib.h \
+  /usr/local/include/FL/images/zconf.h \
   /usr/local/include/FL/images/pngconf.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 gl2ppm.o: gl2ppm.cpp gl2ppm.h PixelBuffer.h ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Graphics//"
 gl2yuv.o: gl2yuv.cpp gl2yuv.h PixelBuffer.h ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Mesh/Mesh.h \
+  ../DataStr/Tree.h ../Common/GmshUI.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp
index 1cf1a37091..e6cb21e411 100644
--- a/Graphics/Mesh.cpp
+++ b/Graphics/Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Mesh.cpp,v 1.153 2006-04-05 21:28:08 geuzaine Exp $
+// $Id: Mesh.cpp,v 1.154 2006-07-12 07:24:13 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -137,14 +137,14 @@ int getPartition(int index)
 
 static int preproNormals = 0;
 
-void Draw_Mesh(Mesh * M)
+void Draw_Model()
 {
   for(int i = 0; i < 6; i++)
     glClipPlane((GLenum)(GL_CLIP_PLANE0 + i), CTX.clip_plane[i]);
 
   // draw the geometry
 
-  if(M->status >= 0){
+  if(THEM->status >= 0){
     glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
 
     for(int i = 0; i < 6; i++)
@@ -153,7 +153,7 @@ void Draw_Mesh(Mesh * M)
       else
 	glDisable((GLenum)(GL_CLIP_PLANE0 + i));
 
-    Draw_Geom(M);
+    Draw_Geom();
 
     for(int i = 0; i < 6; i++)
       glDisable((GLenum)(GL_CLIP_PLANE0 + i));
@@ -169,10 +169,10 @@ void Draw_Mesh(Mesh * M)
   // geometry but there is a mesh
   
   int somegeo = 
-    Tree_Nbr(M->Points) || Tree_Nbr(M->Curves) || Tree_Nbr(M->Surfaces);
+    Tree_Nbr(THEM->Points) || Tree_Nbr(THEM->Curves) || Tree_Nbr(THEM->Surfaces);
 
-  if((CTX.draw_bbox && (somegeo || Tree_Nbr(M->Vertices))) ||
-     (!CTX.mesh.draw && !Tree_Nbr(M->Points) && Tree_Nbr(M->Vertices))) {
+  if((CTX.draw_bbox && (somegeo || Tree_Nbr(THEM->Vertices))) ||
+     (!CTX.mesh.draw && !Tree_Nbr(THEM->Points) && Tree_Nbr(THEM->Vertices))) {
     glColor4ubv((GLubyte *) & CTX.color.fg);
     glLineWidth(CTX.line_width);
     gl2psLineWidth(CTX.line_width * CTX.print.eps_line_width_factor);
@@ -236,7 +236,7 @@ void Draw_Mesh(Mesh * M)
       Draw_Axes(CTX.axes, CTX.axes_tics, CTX.axes_format, CTX.axes_label, 
 		CTX.axes_position);
     }
-    else if(somegeo || Tree_Nbr(M->Vertices)){
+    else if(somegeo || Tree_Nbr(THEM->Vertices)){
       double bb[6] = { CTX.min[0], CTX.max[0],
 		       CTX.min[1], CTX.max[1],
 		       CTX.min[2], CTX.max[2] };
@@ -264,46 +264,46 @@ void Draw_Mesh(Mesh * M)
 	glDisable((GLenum)(GL_CLIP_PLANE0 + i));
 
     if(CTX.mesh.changed){
-      if(M->normals) delete M->normals;
-      M->normals = new smooth_normals(CTX.mesh.angle_smooth_normals);
+      if(THEM->normals) delete THEM->normals;
+      THEM->normals = new smooth_normals(CTX.mesh.angle_smooth_normals);
     }
 
     // Dimension 3
 
-    if(M->status >= 3 && (CTX.mesh.volumes_faces || CTX.mesh.volumes_edges ||
-			  CTX.mesh.volumes_num || CTX.mesh.points_per_element ||
-			  (CTX.mesh.use_cut_plane && CTX.mesh.cut_plane_as_surface &&
-			   (CTX.mesh.surfaces_edges || CTX.mesh.surfaces_faces)))) {
-      Tree_Action(M->Volumes, Draw_Mesh_Volume);
+    if(THEM->status >= 3 && (CTX.mesh.volumes_faces || CTX.mesh.volumes_edges ||
+			     CTX.mesh.volumes_num || CTX.mesh.points_per_element ||
+			     (CTX.mesh.use_cut_plane && CTX.mesh.cut_plane_as_surface &&
+			      (CTX.mesh.surfaces_edges || CTX.mesh.surfaces_faces)))) {
+      Tree_Action(THEM->Volumes, Draw_Mesh_Volume);
     }
 
     // Dimension 2
    
-    if(M->status >= 2 && (CTX.mesh.surfaces_faces || CTX.mesh.surfaces_edges ||
-			  CTX.mesh.surfaces_num || CTX.mesh.points_per_element ||
-			  CTX.mesh.normals)) {
+    if(THEM->status >= 2 && (CTX.mesh.surfaces_faces || CTX.mesh.surfaces_edges ||
+			     CTX.mesh.surfaces_num || CTX.mesh.points_per_element ||
+			     CTX.mesh.normals)) {
       if(CTX.mesh.changed && CTX.mesh.smooth_normals){
 	preproNormals = 1;
-	Tree_Action(M->Surfaces, Draw_Mesh_Surface);
+	Tree_Action(THEM->Surfaces, Draw_Mesh_Surface);
 	preproNormals = 0;
       }
-      Tree_Action(M->Surfaces, Draw_Mesh_Surface);
+      Tree_Action(THEM->Surfaces, Draw_Mesh_Surface);
       if(CTX.mesh.oldxtrude)  //old extrusion algo
-	Tree_Action(M->Volumes, Draw_Mesh_Extruded_Surfaces);
+	Tree_Action(THEM->Volumes, Draw_Mesh_Extruded_Surfaces);
     }
     
     // Dimension 1
 
-    if(M->status >= 1 && (CTX.mesh.lines || CTX.mesh.lines_num || 
-			  CTX.mesh.points_per_element || CTX.mesh.tangents)) {
-      Tree_Action(M->Curves, Draw_Mesh_Curve);
+    if(THEM->status >= 1 && (CTX.mesh.lines || CTX.mesh.lines_num || 
+			     CTX.mesh.points_per_element || CTX.mesh.tangents)) {
+      Tree_Action(THEM->Curves, Draw_Mesh_Curve);
     }
 
     // Dimension 0
     
-    if(M->status >= 0 && !CTX.mesh.points_per_element &&
+    if(THEM->status >= 0 && !CTX.mesh.points_per_element &&
        (CTX.mesh.points || CTX.mesh.points_num)) {
-      Tree_Action(M->Vertices, Draw_Mesh_Point);
+      Tree_Action(THEM->Vertices, Draw_Mesh_Point);
     }
 
     // Done!
diff --git a/Mesh/2D_Mesh.cpp b/Mesh/2D_Mesh.cpp
index 85718a142f..6099b3382e 100644
--- a/Mesh/2D_Mesh.cpp
+++ b/Mesh/2D_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Mesh.cpp,v 1.82 2006-04-16 02:42:23 geuzaine Exp $
+// $Id: 2D_Mesh.cpp,v 1.83 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -556,7 +556,7 @@ int mesh_domain(ContourPeek * ListContours, int numcontours,
   return 1;
 }
 
-void Maillage_Automatique_VieuxCode(Surface * pS, Mesh * m, int ori)
+void Maillage_Automatique_VieuxCode(Surface * pS, int ori)
 {
   ContourRecord *cp, **liste;
   List_T *c;
@@ -895,7 +895,7 @@ void Maillage_Surface(void *data, void *dum)
     ori = Calcule_Contours(s);
     
     if(CTX.mesh.algo2d == DELAUNAY_ISO)
-      Maillage_Automatique_VieuxCode(s, THEM, ori);
+      Maillage_Automatique_VieuxCode(s, ori);
     else if(CTX.mesh.algo2d == DELAUNAY_ANISO)
       AlgorithmeMaillage2DAnisotropeModeJF(s);
     else
diff --git a/Mesh/2D_Parametric.cpp b/Mesh/2D_Parametric.cpp
index a1b3d63a6b..107ce02be8 100644
--- a/Mesh/2D_Parametric.cpp
+++ b/Mesh/2D_Parametric.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Parametric.cpp,v 1.16 2006-01-06 00:34:25 geuzaine Exp $
+// $Id: 2D_Parametric.cpp,v 1.17 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -61,7 +61,7 @@ void UVtoXYZ(void *a, void *dum)
   v->Pos.Z = n.Pos.Z;
 }
 
-void printMetric(Mesh * m, Surface * s, char *name)
+void printMetric(Surface * s, char *name)
 {
   int N = 10, M = 10, i, j;
   double u, v;
@@ -75,19 +75,19 @@ void printMetric(Mesh * m, Surface * s, char *name)
     for(j = 0; j < M; j++) {
       v = (s->kv[0]) + (s->kv[s->Nv + s->OrderV] - s->kv[0])
         * (double)j / (double)(M - 1);
-      m->Metric->setMetric(u, v, s);
+      THEM->Metric->setMetric(u, v, s);
       fprintf(f, "VT (%f,%f,0,%f,%f,0,%f,%f,0)"
               "{%g,%g,%g,%g,%g,%g,%g,%g,%g};\n",
               u, v, u, v, u, v,
-              m->Metric->m[0][0], m->Metric->m[0][1], 0.0,
-              m->Metric->m[0][0], m->Metric->m[0][1], 0.0,
-              m->Metric->m[0][0], m->Metric->m[0][1], 0.0);
+              THEM->Metric->m[0][0], THEM->Metric->m[0][1], 0.0,
+              THEM->Metric->m[0][0], THEM->Metric->m[0][1], 0.0,
+              THEM->Metric->m[0][0], THEM->Metric->m[0][1], 0.0);
       fprintf(f, "VT (%f,%f,0,%f,%f,0,%f,%f,0)"
               "{%g,%g,%g,%g,%g,%g,%g,%g,%g};\n",
               u, v, u, v, u, v,
-              m->Metric->m[1][0], m->Metric->m[1][1], 0.0,
-              m->Metric->m[1][0], m->Metric->m[1][1], 0.0,
-              m->Metric->m[1][0], m->Metric->m[1][1], 0.0);
+              THEM->Metric->m[1][0], THEM->Metric->m[1][1], 0.0,
+              THEM->Metric->m[1][0], THEM->Metric->m[1][1], 0.0,
+              THEM->Metric->m[1][0], THEM->Metric->m[1][1], 0.0);
     }
   }
   fprintf(f, "};\n");
@@ -127,7 +127,7 @@ int MeshParametricSurface(Surface * s)
   ori = Calcule_Contours(s);
 
   if(!AlgorithmeMaillage2DAnisotropeModeJF(s))
-    Maillage_Automatique_VieuxCode(s, THEM, ori);
+    Maillage_Automatique_VieuxCode(s, ori);
 
   if(CTX.mesh.nb_smoothing) {
     tnxe = Tree_Create(sizeof(NXE), compareNXE);
diff --git a/Mesh/2D_Recombine.cpp b/Mesh/2D_Recombine.cpp
index 8f07da1254..97a5c88331 100644
--- a/Mesh/2D_Recombine.cpp
+++ b/Mesh/2D_Recombine.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Recombine.cpp,v 1.27 2006-05-13 22:05:03 geuzaine Exp $
+// $Id: 2D_Recombine.cpp,v 1.28 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -181,12 +181,12 @@ int Recombine(Tree_T * Vertices, Tree_T * Simplexes, Tree_T * Quadrangles,
   -) Enhancements are performned on the quad mesh.
  */
 
-int Recombine_All (Mesh *THEM)
+int Recombine_All (Mesh *M)
 {
-  if(!Tree_Nbr(THEM->Surfaces)) 
+  if(!Tree_Nbr(M->Surfaces)) 
     return 0;
 
-  List_T *surfaces = Tree2List(THEM->Surfaces);
+  List_T *surfaces = Tree2List(M->Surfaces);
 
   // check if we need to do something
   int to_do = 0;
@@ -243,7 +243,7 @@ int Recombine_All (Mesh *THEM)
 	List_Read(Triangles, j, &t);
 	Vertex *c;
 	if(s->Typ == MSH_SURF_PLAN || s->Typ == MSH_SURF_DISCRETE){
-	  c = Create_Vertex(++THEM->MaxPointNum, 
+	  c = Create_Vertex(++M->MaxPointNum, 
 			    (t->V[0]->Pos.X+t->V[1]->Pos.X+t->V[2]->Pos.X)/3.,
 			    (t->V[0]->Pos.Y+t->V[1]->Pos.Y+t->V[2]->Pos.Y)/3.,
 			    (t->V[0]->Pos.Z+t->V[1]->Pos.Z+t->V[2]->Pos.Z)/3.,
@@ -258,9 +258,9 @@ int Recombine_All (Mesh *THEM)
 	  double U = (U1 + U2 + U3)/.3;
 	  double V = (V1 + V2 + V3)/3.;
 	  Vertex v = InterpolateSurface(s, U, V, 0, 0);
-	  c = Create_Vertex(++THEM->MaxPointNum, v.Pos.X, v.Pos.Y, v.Pos.Z, v.lc, v.u);
+	  c = Create_Vertex(++M->MaxPointNum, v.Pos.X, v.Pos.Y, v.Pos.Z, v.lc, v.u);
 	}  
-        Tree_Add(THEM->Vertices, &c);
+        Tree_Add(M->Vertices, &c);
         Tree_Insert(s->Vertices, &c);
 	Quadrangle *q1 = Create_Quadrangle(t->V[0], t->VSUP[0], c, t->VSUP[2]);
 	Quadrangle *q2 = Create_Quadrangle(t->V[1], t->VSUP[1], c, t->VSUP[0]);
@@ -303,7 +303,7 @@ int Recombine_All (Mesh *THEM)
 
   List_Delete(surfaces);
 
-  List_T *curves = Tree2List(THEM->Curves);
+  List_T *curves = Tree2List(M->Curves);
   for(int i = 0; i < List_Nbr(curves); i++){
     Curve *c;
     List_Read(curves, i, &c);
diff --git a/Mesh/3D_BGMesh.cpp b/Mesh/3D_BGMesh.cpp
index 7afe99787e..5dbab4739e 100644
--- a/Mesh/3D_BGMesh.cpp
+++ b/Mesh/3D_BGMesh.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_BGMesh.cpp,v 1.45 2006-01-29 22:53:41 geuzaine Exp $
+// $Id: 3D_BGMesh.cpp,v 1.46 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -89,7 +89,7 @@ void ExportStatistics(void *a, void *b)
   if(statfile) ele->ExportStatistics(statfile);
 }
 
-void ExportMeshStatistics(Mesh * M, char *filename, 
+void ExportMeshStatistics(char *filename, 
 			  int volumes, int surfaces, int lines)
 {
   statfile = fopen(filename, "w");
@@ -99,8 +99,8 @@ void ExportMeshStatistics(Mesh * M, char *filename,
     return;
   }
 
-  if(volumes && Tree_Nbr(M->Volumes)){
-    List_T *l = Tree2List(M->Volumes);
+  if(volumes && Tree_Nbr(THEM->Volumes)){
+    List_T *l = Tree2List(THEM->Volumes);
     fprintf(statfile, "View \"Volumes\" {\n");
     fprintf(statfile, "T2(1.e5,30,%d){\"Elementary Entity\", \"Element Number\", "
 	    "\"Characteristic Length\", \"Gamma\", \"Eta\", \"Rho\"};\n", 
@@ -118,8 +118,8 @@ void ExportMeshStatistics(Mesh * M, char *filename,
     fprintf(statfile, "};\n");
   }
   
-  if(surfaces && Tree_Nbr(M->Surfaces)){
-    List_T *l = Tree2List(M->Surfaces);
+  if(surfaces && Tree_Nbr(THEM->Surfaces)){
+    List_T *l = Tree2List(THEM->Surfaces);
     fprintf(statfile, "View \"Surfaces\" {\n");
     fprintf(statfile, "T2(1.e5,30,%d){\"Elementary Entity\", \"Element Number\", "
 	    "\"Characteristic Length\", \"Gamma\", \"Eta\", \"Rho\"};\n", 
@@ -135,8 +135,8 @@ void ExportMeshStatistics(Mesh * M, char *filename,
     fprintf(statfile, "};\n");
   }
 
-  if(lines && Tree_Nbr(M->Curves)){
-    List_T *l = Tree2List(M->Curves);
+  if(lines && Tree_Nbr(THEM->Curves)){
+    List_T *l = Tree2List(THEM->Curves);
     fprintf(statfile, "View \"Lines\" {\n");
     fprintf(statfile, "T2(1.e5,30,%d){\"Elementary Entity\", \"Element Number\", "
 	    "\"Characteristic Length\", \"Gamma\", \"Eta\", \"Rho\"};\n", 
diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp
index 42859559d8..3d15592f90 100644
--- a/Mesh/3D_Extrude_Old.cpp
+++ b/Mesh/3D_Extrude_Old.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude_Old.cpp,v 1.41 2006-01-29 22:53:41 geuzaine Exp $
+// $Id: 3D_Extrude_Old.cpp,v 1.42 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -463,7 +463,7 @@ static void Extrude_Vertex(void *data, void *dum)
       h += a * pow(parLayer[i], j);
 
       Vertex *newv = Create_Vertex(++THEM->MaxPointNum, v->Pos.X, v->Pos.Y, 
-			   v->Pos.Z + h, v->lc, v->u);
+				   v->Pos.Z + h, v->lc, v->u);
       Tree_Add(THEM->Vertices, &newv);
       List_Add(v->Extruded_Points, &newv);
     }
@@ -644,18 +644,16 @@ void FreeEP(void *a, void *b)
   }
 }
 
-void Extrude_Mesh_Old(Mesh * M)
+void Extrude_Mesh_Old()
 {
   InitExtrudeParams();
 
-  THEM = M;
-
   // clean up Extruded_Points stuff (in case another extrusion was
   // performed before)
   Tree_Action(THEM->Vertices, FreeEP);
 
   THEV = Create_Volume(1, MSH_VOLUME);
-  Tree_Add(M->Volumes, &THEV);
+  Tree_Add(THEM->Volumes, &THEV);
 
   TRY_INVERSE = 0;
 
@@ -668,13 +666,13 @@ void Extrude_Mesh_Old(Mesh * M)
   Tree_Ares = Tree_Create(sizeof(nxn), compnxn);
   Tree_Swaps = Tree_Create(sizeof(nxn), compnxn);
 
-  Tree_Action(M->Surfaces, Extrude_Surface1);
+  Tree_Action(THEM->Surfaces, Extrude_Surface1);
 
   if(!CTX.mesh.oldxtrude_recombine) {
     int j = 0;
     do {
       BAD_TETS = 0;
-      Tree_Action(M->Surfaces, Extrude_Surface2);
+      Tree_Action(THEM->Surfaces, Extrude_Surface2);
       Msg(INFO, "%d swaps", BAD_TETS);
       if(BAD_TETS == j && j != 0) {
 	if(!TRY_INVERSE){
@@ -691,9 +689,9 @@ void Extrude_Mesh_Old(Mesh * M)
     } while(BAD_TETS);
   }
   
-  Tree_Action(M->Surfaces, Extrude_Surface3);
-  Tree_Action(M->Curves, Extrude_Curve);
-  Tree_Action(M->Points, Extrude_Point);
+  Tree_Action(THEM->Surfaces, Extrude_Surface3);
+  Tree_Action(THEM->Curves, Extrude_Curve);
+  Tree_Action(THEM->Points, Extrude_Point);
 
   Tree_Delete(Tree_Ares);
   Tree_Delete(Tree_Swaps);
diff --git a/Mesh/3D_Mesh_Netgen.cpp b/Mesh/3D_Mesh_Netgen.cpp
index 7e282724f2..7d9fbdc86f 100644
--- a/Mesh/3D_Mesh_Netgen.cpp
+++ b/Mesh/3D_Mesh_Netgen.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Mesh_Netgen.cpp,v 1.22 2006-02-26 16:26:09 geuzaine Exp $
+// $Id: 3D_Mesh_Netgen.cpp,v 1.23 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -48,7 +48,7 @@ void Optimize_Netgen(Volume * v)
   Msg(GERROR, "Netgen is not compiled in this version of Gmsh");
 }
 
-void Optimize_Netgen(Mesh * m)
+void Optimize_Netgen()
 {
   Msg(GERROR, "Netgen is not compiled in this version of Gmsh");
 }
@@ -308,7 +308,7 @@ void Optimize_Netgen(Volume * v)
   ng.TransferVolumeMesh();
 }
 
-void Optimize_Netgen(Mesh *m)
+void Optimize_Netgen()
 {
   Msg(STATUS2, "Optimize volume mesh...");
   double t1 = Cpu();
@@ -318,9 +318,9 @@ void Optimize_Netgen(Mesh *m)
 
   // make sure we don't have ONFILE (so that when we create simplices
   // we don't try to compute the quality from the bgmesh)
-  m->BackgroundMeshType = WITHPOINTS; 
+  THEM->BackgroundMeshType = WITHPOINTS; 
 
-  List_T *list = Tree2List(m->Volumes);
+  List_T *list = Tree2List(THEM->Volumes);
   for(int i = 0; i < List_Nbr(list); i++){
     Volume *v;
     List_Read(list, i, &v);
diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp
index 14a3ad922a..be03c3a65b 100644
--- a/Mesh/DiscreteSurface.cpp
+++ b/Mesh/DiscreteSurface.cpp
@@ -1,4 +1,4 @@
-// $Id: DiscreteSurface.cpp,v 1.39 2006-04-04 04:32:31 geuzaine Exp $
+// $Id: DiscreteSurface.cpp,v 1.40 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -34,57 +34,57 @@
 extern Mesh *THEM;
 extern Context_T CTX;
 
-void Mesh_To_BDS(Mesh * m)
+void Mesh_To_BDS(Mesh *M)
 {
   Msg(STATUS2, "Moving mesh into new structure");
-  Move_SimplexBaseToSimplex(m, 3);
+  Move_SimplexBaseToSimplex(3);
   // create the structure
-  if(m->bds)
-    delete m->bds;
-  m->bds = new BDS_Mesh;
+  if(M->bds)
+    delete M->bds;
+  M->bds = new BDS_Mesh;
   PhysicalGroup *p;
 
-  m->bds->Min[0] = m->bds->Min[1] = m->bds->Min[2] = 1.e12;
-  m->bds->Max[0] = m->bds->Max[1] = m->bds->Max[2] = -1.e12;
+  M->bds->Min[0] = M->bds->Min[1] = M->bds->Min[2] = 1.e12;
+  M->bds->Max[0] = M->bds->Max[1] = M->bds->Max[2] = -1.e12;
 
   Msg(STATUS2, "Moving nodes");
   // copy the nodes
-  List_T *vertices = Tree2List(m->Vertices);
+  List_T *vertices = Tree2List(M->Vertices);
   for(int i = 0; i < List_Nbr(vertices); ++i) {
     Vertex *v;
     List_Read(vertices, i, &v);
-    if(v->Pos.X < m->bds->Min[0])
-      m->bds->Min[0] = v->Pos.X;
-    if(v->Pos.Y < m->bds->Min[1])
-      m->bds->Min[1] = v->Pos.Y;
-    if(v->Pos.Z < m->bds->Min[2])
-      m->bds->Min[2] = v->Pos.Z;
-    if(v->Pos.X > m->bds->Max[0])
-      m->bds->Max[0] = v->Pos.X;
-    if(v->Pos.Y > m->bds->Max[1])
-      m->bds->Max[1] = v->Pos.Y;
-    if(v->Pos.Z > m->bds->Max[2])
-      m->bds->Max[2] = v->Pos.Z;
-    m->bds->add_point(v->Num, v->Pos.X, v->Pos.Y, v->Pos.Z);
+    if(v->Pos.X < M->bds->Min[0])
+      M->bds->Min[0] = v->Pos.X;
+    if(v->Pos.Y < M->bds->Min[1])
+      M->bds->Min[1] = v->Pos.Y;
+    if(v->Pos.Z < M->bds->Min[2])
+      M->bds->Min[2] = v->Pos.Z;
+    if(v->Pos.X > M->bds->Max[0])
+      M->bds->Max[0] = v->Pos.X;
+    if(v->Pos.Y > M->bds->Max[1])
+      M->bds->Max[1] = v->Pos.Y;
+    if(v->Pos.Z > M->bds->Max[2])
+      M->bds->Max[2] = v->Pos.Z;
+    M->bds->add_point(v->Num, v->Pos.X, v->Pos.Y, v->Pos.Z);
   }
-  m->bds->LC =
-    sqrt((m->bds->Min[0] - m->bds->Max[0]) * (m->bds->Min[0] -
-                                              m->bds->Max[0]) +
-         (m->bds->Min[1] - m->bds->Max[1]) * (m->bds->Min[1] -
-                                              m->bds->Max[1]) +
-         (m->bds->Min[2] - m->bds->Max[2]) * (m->bds->Min[2] -
-                                              m->bds->Max[2]));
+  M->bds->LC =
+    sqrt((M->bds->Min[0] - M->bds->Max[0]) * (M->bds->Min[0] -
+                                              M->bds->Max[0]) +
+         (M->bds->Min[1] - M->bds->Max[1]) * (M->bds->Min[1] -
+                                              M->bds->Max[1]) +
+         (M->bds->Min[2] - M->bds->Max[2]) * (M->bds->Min[2] -
+                                              M->bds->Max[2]));
   List_Delete(vertices);
 
-  for(int i = 0; i < List_Nbr(m->PhysicalGroups); i++) {
-    List_Read(m->PhysicalGroups, i, &p);
+  for(int i = 0; i < List_Nbr(M->PhysicalGroups); i++) {
+    List_Read(M->PhysicalGroups, i, &p);
     if(p->Typ == MSH_PHYSICAL_POINT) {
-      m->bds->add_geom(p->Num, 0);
-      BDS_GeomEntity *g = m->bds->get_geom(p->Num, 0);
+      M->bds->add_geom(p->Num, 0);
+      BDS_GeomEntity *g = M->bds->get_geom(p->Num, 0);
       for(int j = 0; j < List_Nbr(p->Entities); j++) {
         int Num;
         List_Read(p->Entities, j, &Num);
-        BDS_Point *ppp = m->bds->find_point(Num);
+        BDS_Point *ppp = M->bds->find_point(Num);
         ppp->g = g;
         g->p = ppp;
       }
@@ -92,17 +92,17 @@ void Mesh_To_BDS(Mesh * m)
   }
 
   Msg(STATUS2, "Moving curves");
-  List_T *curves = Tree2List(m->Curves);
+  List_T *curves = Tree2List(M->Curves);
   for(int i = 0; i < List_Nbr(curves); ++i) {
     Curve *c;
     List_Read(curves, i, &c);
-    m->bds->add_geom(c->Num, 1);
-    BDS_GeomEntity *g = m->bds->get_geom(c->Num, 1);
+    M->bds->add_geom(c->Num, 1);
+    BDS_GeomEntity *g = M->bds->get_geom(c->Num, 1);
     List_T *simplices = Tree2List(c->Simplexes);
     Simplex *simp;
     for(int j = 0; j < List_Nbr(simplices); ++j) {
       List_Read(simplices, j, &simp);
-      BDS_Edge *edge = m->bds->add_edge(simp->V[0]->Num, simp->V[1]->Num);
+      BDS_Edge *edge = M->bds->add_edge(simp->V[0]->Num, simp->V[1]->Num);
       edge->g = g;
       if(!edge->p1->g)
         edge->p1->g = g;
@@ -114,12 +114,12 @@ void Mesh_To_BDS(Mesh * m)
   List_Delete(curves);
 
   Msg(STATUS2, "Moving surfaces");
-  List_T *surfaces = Tree2List(m->Surfaces);
+  List_T *surfaces = Tree2List(M->Surfaces);
   for(int i = 0; i < List_Nbr(surfaces); ++i) {
     Surface *s;
     List_Read(surfaces, i, &s);
-    m->bds->add_geom(s->Num, 2);
-    BDS_GeomEntity *g = m->bds->get_geom(s->Num, 2);
+    M->bds->add_geom(s->Num, 2);
+    BDS_GeomEntity *g = M->bds->get_geom(s->Num, 2);
 
     Msg(INFO, "Created new surface %d %d", g->classif_tag, g->classif_degree);
 
@@ -128,8 +128,8 @@ void Mesh_To_BDS(Mesh * m)
     for(int j = 0; j < List_Nbr(simplices); ++j) {
       List_Read(simplices, j, &simp);
       BDS_Triangle *t =
-        m->bds->add_triangle(simp->V[0]->Num, simp->V[1]->Num,
-                             simp->V[2]->Num);
+        M->bds->add_triangle(simp->V[0]->Num, simp->V[1]->Num,
+				simp->V[2]->Num);
       t->g = g;
       BDS_Point *n[3];
       t->getNodes(n);
@@ -147,21 +147,21 @@ void Mesh_To_BDS(Mesh * m)
   }
   List_Delete(surfaces);
 
-  Msg(STATUS2, "Moving %d volumes", Tree_Nbr(m->Volumes));
-  List_T *volumes = Tree2List(m->Volumes);
+  Msg(STATUS2, "Moving %d volumes", Tree_Nbr(M->Volumes));
+  List_T *volumes = Tree2List(M->Volumes);
   for(int i = 0; i < List_Nbr(volumes); ++i) {
     Volume *v;
     List_Read(volumes, i, &v);
-    m->bds->add_geom(v->Num, 3);
-    BDS_GeomEntity *g = m->bds->get_geom(v->Num, 3);
+    M->bds->add_geom(v->Num, 3);
+    BDS_GeomEntity *g = M->bds->get_geom(v->Num, 3);
     List_T *simplices = Tree2List(v->Simplexes);
     Simplex *simp;
 
     for(int j = 0; j < List_Nbr(simplices); ++j) {
       List_Read(simplices, j, &simp);
       BDS_Tet *t =
-        m->bds->add_tet(simp->V[0]->Num, simp->V[1]->Num, simp->V[2]->Num,
-                        simp->V[3]->Num);
+        M->bds->add_tet(simp->V[0]->Num, simp->V[1]->Num, simp->V[2]->Num,
+			   simp->V[3]->Num);
       t->g = g;
       BDS_Point *n[4];
       t->getNodes(n);
@@ -208,47 +208,47 @@ void Mesh_To_BDS(Mesh * m)
 
 }
 
-extern int addMeshPartition(int Num, Mesh * M);
+extern int addMeshPartition(int Num, Mesh *M);
 
-void BDS_To_Mesh_2(Mesh * m)
+void BDS_To_Mesh_2(Mesh *M)
 {
   Msg(STATUS2, "Moving surface mesh into old structure");
 
-  Tree_Action(m->Vertices, Free_Vertex);
+  Tree_Action(M->Vertices, Free_Vertex);
 
-  Tree_Delete(m->Vertices);
-  m->Vertices = Tree_Create(sizeof(Vertex *), compareVertex);
+  Tree_Delete(M->Vertices);
+  M->Vertices = Tree_Create(sizeof(Vertex *), compareVertex);
 
   {
     std::set < BDS_Point *, PointLessThan >::iterator it =
-      m->bds_mesh->points.begin();
+      M->bds_mesh->points.begin();
     std::set < BDS_Point *, PointLessThan >::iterator ite =
-      m->bds_mesh->points.end();
+      M->bds_mesh->points.end();
 
 
     while(it != ite) {
-      //      double dx = 1.e-3 * m->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
-      //      double dy = 1.e-3 * m->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
-      //      double dz = 1.e-3 * m->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
+      //      double dx = 1.e-3 * M->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
+      //      double dy = 1.e-3 * M->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
+      //      double dz = 1.e-3 * M->bds_mesh->LC * (double)rand() / (double)RAND_MAX;
       double dx = 0;
       double dy = 0;
       double dz = 0;
       Vertex *vert =
         Create_Vertex((*it)->iD, (*it)->X+dx, (*it)->Y+dy, (*it)->Z+dz, (*it)->min_edge_length(), 0.0);
-      Tree_Add(m->Vertices, &vert);
+      Tree_Add(M->Vertices, &vert);
       ++it;
     }
   }
   {
-    std::list < BDS_Edge * >::iterator it = m->bds_mesh->edges.begin();
-    std::list < BDS_Edge * >::iterator ite = m->bds_mesh->edges.end();
+    std::list < BDS_Edge * >::iterator it = M->bds_mesh->edges.begin();
+    std::list < BDS_Edge * >::iterator ite = M->bds_mesh->edges.end();
     while(it != ite) {
       BDS_GeomEntity *g = (*it)->g;
       if(g && g->classif_degree == 1) {
-        Vertex *v1 = FindVertex((*it)->p1->iD, m);
-        Vertex *v2 = FindVertex((*it)->p2->iD, m);
+        Vertex *v1 = FindVertex((*it)->p1->iD, M);
+        Vertex *v2 = FindVertex((*it)->p2->iD, M);
         Simplex *simp = Create_Simplex(v1, v2, NULL, NULL);
-        Curve *c = FindCurve(g->classif_tag, m);
+        Curve *c = FindCurve(g->classif_tag, M);
         if(c)
           simp->iEnt = g->classif_tag;
         Tree_Insert(c->Simplexes, &simp);
@@ -258,22 +258,22 @@ void BDS_To_Mesh_2(Mesh * m)
   }
   {
     std::list < BDS_Triangle * >::iterator it =
-      m->bds_mesh->triangles.begin();
-    std::list < BDS_Triangle * >::iterator ite = m->bds_mesh->triangles.end();
+      M->bds_mesh->triangles.begin();
+    std::list < BDS_Triangle * >::iterator ite = M->bds_mesh->triangles.end();
     while(it != ite) {
       BDS_GeomEntity *g = (*it)->g;
       if(g && g->classif_degree == 2) {
         BDS_Point *nod[3];
         (*it)->getNodes(nod);
-        Vertex *v1 = FindVertex(nod[0]->iD, m);
-        Vertex *v2 = FindVertex(nod[1]->iD, m);
-        Vertex *v3 = FindVertex(nod[2]->iD, m);
+        Vertex *v1 = FindVertex(nod[0]->iD, M);
+        Vertex *v2 = FindVertex(nod[1]->iD, M);
+        Vertex *v3 = FindVertex(nod[2]->iD, M);
         Simplex *simp = Create_Simplex(v1, v2, v3, NULL);
         BDS_GeomEntity *g = (*it)->g;
-        Surface *s = FindSurface(g->classif_tag, m);
+        Surface *s = FindSurface(g->classif_tag, M);
         if(s) {
           simp->iEnt = g->classif_tag;
-          simp->iPart = addMeshPartition((*it)->partition, m);
+          simp->iPart = addMeshPartition((*it)->partition, M);
         }
         else
           Msg(GERROR, "Impossible to find surface %d", g->classif_tag);
@@ -286,21 +286,21 @@ void BDS_To_Mesh_2(Mesh * m)
     }
   }
   {
-    std::list < BDS_Tet * >::iterator it = m->bds_mesh->tets.begin();
-    std::list < BDS_Tet * >::iterator ite = m->bds_mesh->tets.end();
+    std::list < BDS_Tet * >::iterator it = M->bds_mesh->tets.begin();
+    std::list < BDS_Tet * >::iterator ite = M->bds_mesh->tets.end();
     while(it != ite) {
       BDS_Point *nod[4];
       (*it)->getNodes(nod);
-      Vertex *v1 = FindVertex(nod[0]->iD, m);
-      Vertex *v2 = FindVertex(nod[1]->iD, m);
-      Vertex *v3 = FindVertex(nod[2]->iD, m);
-      Vertex *v4 = FindVertex(nod[3]->iD, m);
+      Vertex *v1 = FindVertex(nod[0]->iD, M);
+      Vertex *v2 = FindVertex(nod[1]->iD, M);
+      Vertex *v3 = FindVertex(nod[2]->iD, M);
+      Vertex *v4 = FindVertex(nod[3]->iD, M);
       Simplex *simp = Create_Simplex(v1, v2, v3, v4);
       BDS_GeomEntity *g = (*it)->g;
-      Volume *v = FindVolume(g->classif_tag, m);
+      Volume *v = FindVolume(g->classif_tag, M);
       if(v) {
         simp->iEnt = g->classif_tag;
-        simp->iPart = addMeshPartition((*it)->partition, m);
+        simp->iPart = addMeshPartition((*it)->partition, M);
       }
       else
         Msg(GERROR, "Error in BDS");
@@ -312,59 +312,59 @@ void BDS_To_Mesh_2(Mesh * m)
   Msg(STATUS3N, "Ready");
 }
 
-void BDS_To_Mesh(Mesh * m)
+void BDS_To_Mesh(Mesh *M)
 {
-  Tree_Action(m->Points, Free_Vertex);
-  Tree_Delete(m->Points);
-  Tree_Action(m->Volumes, Free_Volume);
-  Tree_Action(m->Surfaces, Free_Surface);
-  Tree_Action(m->Curves, Free_Curve);
-  Tree_Delete(m->Surfaces);
-  Tree_Delete(m->Curves);
-  Tree_Delete(m->Volumes);
-  m->Points = Tree_Create(sizeof(Vertex *), compareVertex);
-  m->Curves = Tree_Create(sizeof(Curve *), compareCurve);
-  m->Surfaces = Tree_Create(sizeof(Surface *), compareSurface);
-  m->Volumes = Tree_Create(sizeof(Volume *), compareVolume);
+  Tree_Action(M->Points, Free_Vertex);
+  Tree_Delete(M->Points);
+  Tree_Action(M->Volumes, Free_Volume);
+  Tree_Action(M->Surfaces, Free_Surface);
+  Tree_Action(M->Curves, Free_Curve);
+  Tree_Delete(M->Surfaces);
+  Tree_Delete(M->Curves);
+  Tree_Delete(M->Volumes);
+  M->Points = Tree_Create(sizeof(Vertex *), compareVertex);
+  M->Curves = Tree_Create(sizeof(Curve *), compareCurve);
+  M->Surfaces = Tree_Create(sizeof(Surface *), compareSurface);
+  M->Volumes = Tree_Create(sizeof(Volume *), compareVolume);
 
   std::set < BDS_GeomEntity *, GeomLessThan >::iterator it =
-    m->bds->geom.begin();
+    M->bds->geom.begin();
   std::set < BDS_GeomEntity *, GeomLessThan >::iterator ite =
-    m->bds->geom.end();
+    M->bds->geom.end();
 
   while(it != ite) {
     if((*it)->classif_degree == 3) {
       Volume *_Vol = 0;
-      _Vol = FindVolume((*it)->classif_tag, m);
+      _Vol = FindVolume((*it)->classif_tag, M);
       if(!_Vol)
         _Vol = Create_Volume((*it)->classif_tag, MSH_VOLUME_DISCRETE);
-      Tree_Add(m->Volumes, &_Vol);
+      Tree_Add(M->Volumes, &_Vol);
     }
     else if((*it)->classif_degree == 2) {
       Surface *_Surf = 0;
-      _Surf = FindSurface((*it)->classif_tag, m);
+      _Surf = FindSurface((*it)->classif_tag, M);
       if(!_Surf)
         _Surf = Create_Surface((*it)->classif_tag, MSH_SURF_DISCRETE);
-      //      _Surf->bds = m->bds;
+      //      _Surf->bds = M->bds;
       End_Surface(_Surf);
-      Tree_Add(m->Surfaces, &_Surf);
+      Tree_Add(M->Surfaces, &_Surf);
     }
     else if((*it)->classif_degree == 1) {
       Curve *_c = 0;
-      _c = FindCurve((*it)->classif_tag, m);
+      _c = FindCurve((*it)->classif_tag, M);
       if(!_c)
         _c =
           Create_Curve((*it)->classif_tag, MSH_SEGM_DISCRETE, 1, NULL, NULL,
                        -1, -1, 0., 1.);
-      //      _c->bds = m->bds;
+      //      _c->bds = M->bds;
       End_Curve(_c);
-      Tree_Add(m->Curves, &_c);
+      Tree_Add(M->Curves, &_c);
     }
     else if((*it)->classif_degree == 0) {
       BDS_Point *p = (*it)->p;
       if(p) {
         Vertex *_v = Create_Vertex(p->iD, p->X, p->Y, p->Z, 1, 0);
-        Tree_Add(m->Points, &_v);
+        Tree_Add(M->Points, &_v);
       }
     }
     ++it;
@@ -393,9 +393,8 @@ void  CreateVolumeWithAllSurfaces(Mesh *M)
   Tree_Add(M->Volumes, &vol2);
 }
 
-int ReMesh(Mesh * M)
+int ReMesh(Mesh *M)
 {
-
   if(M->status != 2)
     return 0;
 
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 55e4c4f34a..99784bfcb6 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// $Id: Generator.cpp,v 1.83 2006-07-11 13:41:22 remacle Exp $
+// $Id: Generator.cpp,v 1.84 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -204,16 +204,16 @@ void ApplyLcFactor_Attractor(void *a, void *b)
   v->lc2 *= CTX.mesh.lc_factor;
 }
 
-void ApplyLcFactor(Mesh * M)
+void ApplyLcFactor()
 {
-  Tree_Action(M->Points, ApplyLcFactor_Point);
-  List_Action(M->Metric->Attractors, ApplyLcFactor_Attractor);
+  Tree_Action(THEM->Points, ApplyLcFactor_Point);
+  List_Action(THEM->Metric->Attractors, ApplyLcFactor_Attractor);
 }
 
-void Move_SimplexBaseToSimplex(Mesh * M, int dimension)
+void Move_SimplexBaseToSimplex(int dimension)
 {
   if(dimension >= 1){
-    List_T *Curves = Tree2List(M->Curves);
+    List_T *Curves = Tree2List(THEM->Curves);
     for(int i = 0; i < List_Nbr(Curves); i++) {
       Curve *c;
       List_Read(Curves, i, &c);
@@ -223,7 +223,7 @@ void Move_SimplexBaseToSimplex(Mesh * M, int dimension)
   }
 
   if(dimension >= 2){
-    List_T *Surfaces = Tree2List(M->Surfaces);
+    List_T *Surfaces = Tree2List(THEM->Surfaces);
     for(int i = 0; i < List_Nbr(Surfaces); i++){
       Surface *s;
       List_Read(Surfaces, i, &s);
@@ -233,7 +233,7 @@ void Move_SimplexBaseToSimplex(Mesh * M, int dimension)
   }
   
   if(dimension >= 3){
-    List_T *Volumes = Tree2List(M->Volumes);
+    List_T *Volumes = Tree2List(THEM->Volumes);
     for(int i = 0; i < List_Nbr(Volumes); i++){
       Volume *v;
       List_Read(Volumes, i, &v);
@@ -243,15 +243,15 @@ void Move_SimplexBaseToSimplex(Mesh * M, int dimension)
   }
 }
 
-bool TooManyElements(Mesh *M, int dim){
-  if(CTX.expert_mode || !Tree_Nbr(M->Points)) return false;
+bool TooManyElements(int dim){
+  if(CTX.expert_mode || !Tree_Nbr(THEM->Points)) return false;
 
   // try to detect obvious mistakes in characteristic lenghts (one of
   // the most common cause for erroneous bug reports on the mailing
   // list)
   SumOfAllLc = 0.;
-  Tree_Action(M->Points, GetSumOfAllLc);
-  SumOfAllLc /= (double)Tree_Nbr(M->Points);
+  Tree_Action(THEM->Points, GetSumOfAllLc);
+  SumOfAllLc /= (double)Tree_Nbr(THEM->Points);
   if(pow(CTX.lc / SumOfAllLc, dim) < 1.e7) return false;
   return !GetBinaryAnswer("Your choice of characteristic lengths will likely produce\n"
 			  "a very large mesh. Do you really want to continue?\n\n"
@@ -260,23 +260,23 @@ bool TooManyElements(Mesh *M, int dim){
 			  "Continue", "Cancel");
 }
 
-void Maillage_Dimension_1(Mesh * M)
+void Maillage_Dimension_1()
 {
-  if(TooManyElements(M, 1)) return;
+  if(TooManyElements(1)) return;
 
   double t1 = Cpu();
 
-  Tree_Action(M->Curves, Maillage_Curve);
+  Tree_Action(THEM->Curves, Maillage_Curve);
 
   std::for_each (GMODEL->firstEdge(),GMODEL->lastEdge(), meshGEdge() );
 
   double t2 = Cpu();
-  M->timing[0] = t2 - t1;
+  THEM->timing[0] = t2 - t1;
 }
 
-void Maillage_Dimension_2(Mesh * M)
+void Maillage_Dimension_2()
 {
-  if(TooManyElements(M, 2)) return;
+  if(TooManyElements(2)) return;
 
   double shortest = 1.e300;
 
@@ -284,7 +284,7 @@ void Maillage_Dimension_2(Mesh * M)
 
   // create reverse 1D meshes
 
-  List_T *Curves = Tree2List(M->Curves);
+  List_T *Curves = Tree2List(THEM->Curves);
   for(int i = 0; i < List_Nbr(Curves); i++) {
     Curve *c;
     List_Read(Curves, i, &c);
@@ -294,7 +294,7 @@ void Maillage_Dimension_2(Mesh * M)
       Curve C;
       Curve *neew = &C;
       neew->Num = -c->Num;
-      Tree_Query(M->Curves, &neew);
+      Tree_Query(THEM->Curves, &neew);
       neew->Vertices =
         List_Create(List_Nbr(c->Vertices), 1, sizeof(Vertex *));
       List_Invert(c->Vertices, neew->Vertices);
@@ -306,16 +306,16 @@ void Maillage_Dimension_2(Mesh * M)
 
   // mesh 2D
 
-  Tree_Action(M->Surfaces, Maillage_Surface);
+  Tree_Action(THEM->Surfaces, Maillage_Surface);
 
   // global "all-quad" recombine
 
   if(CTX.mesh.algo_recombine == 2)
-    Recombine_All(M);
+    Recombine_All(THEM);
 
   double t2 = Cpu();
 
-  M->timing[1] = t2 - t1;
+  THEM->timing[1] = t2 - t1;
 }
 
 static Volume *IVOL;
@@ -330,15 +330,15 @@ void TransferData(void *a, void *b)
   }
 }
 
-void Maillage_Dimension_3(Mesh * M)
+void Maillage_Dimension_3()
 {
-  if(TooManyElements(M, 3)) return;
+  if(TooManyElements(3)) return;
 
   double t1 = Cpu();
 
   // merge all the delaunay parts in a single special volume
   Volume *v = Create_Volume(99999, 99999);
-  List_T *list = Tree2List(M->Volumes);
+  List_T *list = Tree2List(THEM->Volumes);
   for(int i = 0; i < List_Nbr(list); i++) {
     Volume *vol;
     List_Read(list, i, &vol);
@@ -350,14 +350,14 @@ void Maillage_Dimension_3(Mesh * M)
       }
     }
   }
-  Tree_Insert(M->Volumes, &v);
+  Tree_Insert(THEM->Volumes, &v);
 
   if(CTX.mesh.oldxtrude) {
-    Extrude_Mesh_Old(M); // old extrusion
+    Extrude_Mesh_Old(); // old extrusion
   }
   else {
-    Extrude_Mesh(M->Volumes); // new extrusion
-    Tree_Action(M->Volumes, Maillage_Volume); // delaunay of remaining parts
+    Extrude_Mesh(THEM->Volumes); // new extrusion
+    Tree_Action(THEM->Volumes, Maillage_Volume); // delaunay of remaining parts
   }
 
   // transfer data back to individual volumes and remove special volume
@@ -365,116 +365,114 @@ void Maillage_Dimension_3(Mesh * M)
     List_Read(list, i, &IVOL);
     Tree_Action(v->Simplexes, TransferData);
   }
-  Tree_Suppress(M->Volumes, &v);
+  Tree_Suppress(THEM->Volumes, &v);
   Free_Volume_But_Not_Elements(&v, NULL);
 
   List_Delete(list);
 
   double t2 = Cpu();
 
-  M->timing[2] = t2 - t1;
+  THEM->timing[2] = t2 - t1;
 }
 
-void Init_Mesh0(Mesh * M)
+void Init_Mesh0()
 {
-  THEM = M;
-  M->bds = 0;
-  M->bds_mesh = 0;
-  M->Vertices = NULL;
-  M->Simplexes = NULL;
-  M->Points = NULL;
-  M->Curves = NULL;
-  M->SurfaceLoops = NULL;
-  M->EdgeLoops = NULL;
-  M->Surfaces = NULL;
-  M->Volumes = NULL;
-  M->PhysicalGroups = NULL;
-  M->Partitions = NULL;
-  M->Metric = NULL;
+  THEM->bds = 0;
+  THEM->bds_mesh = 0;
+  THEM->Vertices = NULL;
+  THEM->Simplexes = NULL;
+  THEM->Points = NULL;
+  THEM->Curves = NULL;
+  THEM->SurfaceLoops = NULL;
+  THEM->EdgeLoops = NULL;
+  THEM->Surfaces = NULL;
+  THEM->Volumes = NULL;
+  THEM->PhysicalGroups = NULL;
+  THEM->Partitions = NULL;
+  THEM->Metric = NULL;
 }
 
-void Init_Mesh(Mesh * M)
+void Init_Mesh()
 {
-  THEM = M;
-  M->MaxPointNum = 0;
-  M->MaxLineNum = 0;
-  M->MaxLineLoopNum = 0;
-  M->MaxSurfaceNum = 0;
-  M->MaxSurfaceLoopNum = 0;
-  M->MaxVolumeNum = 0;
-  M->MaxPhysicalNum = 0;
+  THEM->MaxPointNum = 0;
+  THEM->MaxLineNum = 0;
+  THEM->MaxLineLoopNum = 0;
+  THEM->MaxSurfaceNum = 0;
+  THEM->MaxSurfaceLoopNum = 0;
+  THEM->MaxVolumeNum = 0;
+  THEM->MaxPhysicalNum = 0;
 
   Element::TotalNumber = 0;
 
   ExitExtrude();
 
-  if(M->bds) delete M->bds;
-  M->bds = 0;
+  if(THEM->bds) delete THEM->bds;
+  THEM->bds = 0;
 
-  Tree_Action(M->Vertices, Free_Vertex);  
-  Tree_Delete(M->Vertices);
+  Tree_Action(THEM->Vertices, Free_Vertex);  
+  Tree_Delete(THEM->Vertices);
 
-  Tree_Action(M->Points, Free_Vertex);  
-  Tree_Delete(M->Points);
+  Tree_Action(THEM->Points, Free_Vertex);  
+  Tree_Delete(THEM->Points);
 
   // Note: don't free the simplices here (with Tree_Action
-  // (M->Simplexes, Free_Simplex)): we free them in each curve,
+  // (THEM->Simplexes, Free_Simplex)): we free them in each curve,
   // surface, volume
-  Tree_Delete(M->Simplexes);
+  Tree_Delete(THEM->Simplexes);
 
-  Tree_Action(M->Curves, Free_Curve);
-  Tree_Delete(M->Curves);
+  Tree_Action(THEM->Curves, Free_Curve);
+  Tree_Delete(THEM->Curves);
 
-  Tree_Action(M->SurfaceLoops, Free_SurfaceLoop);
-  Tree_Delete(M->SurfaceLoops);
+  Tree_Action(THEM->SurfaceLoops, Free_SurfaceLoop);
+  Tree_Delete(THEM->SurfaceLoops);
 
-  Tree_Action(M->EdgeLoops, Free_EdgeLoop);
-  Tree_Delete(M->EdgeLoops);
+  Tree_Action(THEM->EdgeLoops, Free_EdgeLoop);
+  Tree_Delete(THEM->EdgeLoops);
 
-  Tree_Action(M->Surfaces, Free_Surface);
-  Tree_Delete(M->Surfaces);
+  Tree_Action(THEM->Surfaces, Free_Surface);
+  Tree_Delete(THEM->Surfaces);
 
-  Tree_Action(M->Volumes, Free_Volume);
-  Tree_Delete(M->Volumes);
+  Tree_Action(THEM->Volumes, Free_Volume);
+  Tree_Delete(THEM->Volumes);
 
-  List_Action(M->PhysicalGroups, Free_PhysicalGroup);
-  List_Delete(M->PhysicalGroups);
+  List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
+  List_Delete(THEM->PhysicalGroups);
 
-  List_Action(M->Partitions, Free_MeshPartition);
-  List_Delete(M->Partitions);
+  List_Action(THEM->Partitions, Free_MeshPartition);
+  List_Delete(THEM->Partitions);
 
-  if(M->Metric)
-    delete M->Metric;
+  if(THEM->Metric)
+    delete THEM->Metric;
 
-  if(M->normals)
-    delete M->normals;
+  if(THEM->normals)
+    delete THEM->normals;
 
-  M->Vertices = Tree_Create(sizeof(Vertex *), compareVertex);
-  M->Simplexes = Tree_Create(sizeof(Simplex *), compareSimplex);
-  M->Points = Tree_Create(sizeof(Vertex *), compareVertex);
-  M->Curves = Tree_Create(sizeof(Curve *), compareCurve);
-  M->SurfaceLoops = Tree_Create(sizeof(SurfaceLoop *), compareSurfaceLoop);
-  M->EdgeLoops = Tree_Create(sizeof(EdgeLoop *), compareEdgeLoop);
-  M->Surfaces = Tree_Create(sizeof(Surface *), compareSurface);
-  M->Volumes = Tree_Create(sizeof(Volume *), compareVolume);
-  M->PhysicalGroups = List_Create(5, 5, sizeof(PhysicalGroup *));
-  M->Partitions = List_Create(5, 5, sizeof(MeshPartition *));
-  M->Metric = new GMSHMetric;
-  M->normals = new smooth_normals(CTX.mesh.angle_smooth_normals);
+  THEM->Vertices = Tree_Create(sizeof(Vertex *), compareVertex);
+  THEM->Simplexes = Tree_Create(sizeof(Simplex *), compareSimplex);
+  THEM->Points = Tree_Create(sizeof(Vertex *), compareVertex);
+  THEM->Curves = Tree_Create(sizeof(Curve *), compareCurve);
+  THEM->SurfaceLoops = Tree_Create(sizeof(SurfaceLoop *), compareSurfaceLoop);
+  THEM->EdgeLoops = Tree_Create(sizeof(EdgeLoop *), compareEdgeLoop);
+  THEM->Surfaces = Tree_Create(sizeof(Surface *), compareSurface);
+  THEM->Volumes = Tree_Create(sizeof(Volume *), compareVolume);
+  THEM->PhysicalGroups = List_Create(5, 5, sizeof(PhysicalGroup *));
+  THEM->Partitions = List_Create(5, 5, sizeof(MeshPartition *));
+  THEM->Metric = new GMSHMetric;
+  THEM->normals = new smooth_normals(CTX.mesh.angle_smooth_normals);
 
-  M->status = 0;
-  M->BackgroundMeshType = WITHPOINTS;
+  THEM->status = 0;
+  THEM->BackgroundMeshType = WITHPOINTS;
 
   for(int i = 0; i < 3; i++){
-    M->timing[i] = 0.0;
-    M->quality_gamma[i] = 0.0;
-    M->quality_eta[i] = 0.0;
-    M->quality_rho[i] = 0.0;
+    THEM->timing[i] = 0.0;
+    THEM->quality_gamma[i] = 0.0;
+    THEM->quality_eta[i] = 0.0;
+    THEM->quality_rho[i] = 0.0;
   }
   CTX.mesh.changed = 1;
 }
 
-void mai3d(Mesh * M, int Asked)
+void mai3d(int Asked)
 {
   double t1, t2;
   int oldstatus;
@@ -484,14 +482,14 @@ void mai3d(Mesh * M, int Asked)
     return;
   }
 
-  oldstatus = M->status;
+  oldstatus = THEM->status;
 
   // Re-read data
 
   if((Asked > oldstatus && Asked >= 0 && oldstatus < 0) ||
      (Asked < oldstatus)) {
     OpenProblem(CTX.filename);
-    M->status = 0;
+    THEM->status = 0;
   }
 
   CTX.threads_lock = 1;
@@ -508,14 +506,14 @@ void mai3d(Mesh * M, int Asked)
     Msg(STATUS2, "Mesh 1D...");
     t1 = Cpu();
 
-    if(M->status > 1) {
+    if(THEM->status > 1) {
       OpenProblem(CTX.filename);
     }
 
-    Maillage_Dimension_1(M);
+    Maillage_Dimension_1();
     t2 = Cpu();
     Msg(STATUS2, "Mesh 1D complete (%g s)", t2 - t1);
-    M->status = 1;
+    THEM->status = 1;
   }
 
   // 2D mesh
@@ -525,15 +523,15 @@ void mai3d(Mesh * M, int Asked)
     Msg(STATUS2, "Mesh 2D...");
     t1 = Cpu();
 
-    if(M->status == 3) {
+    if(THEM->status == 3) {
       OpenProblem(CTX.filename);
-      Maillage_Dimension_1(M);
+      Maillage_Dimension_1();
     }
 
-    Maillage_Dimension_2(M);
+    Maillage_Dimension_2();
     t2 = Cpu();
     Msg(STATUS2, "Mesh 2D complete (%g s)", t2 - t1);
-    M->status = 2;
+    THEM->status = 2;
   }
 
   // 3D mesh
@@ -542,26 +540,26 @@ void mai3d(Mesh * M, int Asked)
      (Asked < oldstatus && Asked > 2)) {
     Msg(STATUS2, "Mesh 3D...");
     t1 = Cpu();
-    Maillage_Dimension_3(M);
+    Maillage_Dimension_3();
     t2 = Cpu();
     Msg(STATUS2, "Mesh 3D complete (%g s)", t2 - t1);
-    M->status = 3;
+    THEM->status = 3;
   }
 
   // Optimize quality
 
-  if(M->status == 3 && CTX.mesh.optimize)
-    Optimize_Netgen(M);
+  if(THEM->status == 3 && CTX.mesh.optimize)
+    Optimize_Netgen();
 
   // Create second order elements
 
-  if(M->status && CTX.mesh.order == 2)
-    Degre2(M->status);
+  if(THEM->status && CTX.mesh.order == 2)
+    Degre2(THEM->status);
 
   // Partition
 
-  if(M->status > 1 && CTX.mesh.nbPartitions != 1)
-    PartitionMesh(M, CTX.mesh.nbPartitions);
+  if(THEM->status > 1 && CTX.mesh.nbPartitions != 1)
+    PartitionMesh(THEM, CTX.mesh.nbPartitions);
 
   CTX.threads_lock = 0;
   CTX.mesh.changed = 1;
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 470ebcbd10..0639909d92 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.109 2006-07-11 13:41:22 remacle Exp $
+# $Id: Makefile,v 1.110 2006-07-12 07:24:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -109,13 +109,15 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 1D_Mesh.o: 1D_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h Utils.h ../Common/Context.h \
-  Interpolation.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  Utils.h ../Common/Context.h Interpolation.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Mesh.o: 2D_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -124,17 +126,19 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Utils.h Vertex.h Create.h 2D_Mesh.h \
   ../Common/Context.h Interpolation.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Transfinite.o: 2D_Transfinite.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  Interpolation.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h Interpolation.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Elliptic.o: 2D_Elliptic.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -143,73 +147,90 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_BGMesh.o: 2D_BGMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Recombine.o: 2D_Recombine.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h Interpolation.h Utils.h \
-  2D_Mesh.h Create.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  Interpolation.h Utils.h 2D_Mesh.h Create.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_InitMesh.o: 2D_InitMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Bowyer.o: 2D_Bowyer.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Bricks.o: 2D_Bricks.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_DivAndConq.o: 2D_DivAndConq.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Util.o: 2D_Util.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h \
-  ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Links.o: 2D_Links.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h \
-  ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  2D_Mesh.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Tree.o: 2D_Tree.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  2D_Mesh.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h 2D_Mesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Cylindrical.o: 2D_Cylindrical.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Parametric.o: 2D_Parametric.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -218,10 +239,11 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Interpolation.h Vertex.h Mesh.h 2D_Mesh.h \
   Create.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Mesh_Aniso.o: 2D_Mesh_Aniso.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -230,76 +252,47 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Interpolation.h Vertex.h Create.h \
   ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 2D_Mesh_Triangle.o: 2D_Mesh_Triangle.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  ../Common/Context.h ../contrib/Triangle/triangle.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h ../Common/Context.h ../contrib/Triangle/triangle.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Mesh.o: 3D_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 3D_Mesh.h Create.h \
-  ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  3D_Mesh.h Create.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Transfinite.o: 3D_Transfinite.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  Interpolation.h Create.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h Interpolation.h Create.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_BGMesh.o: 3D_BGMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Context.h ../Common/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Extrude.o: 3D_Extrude.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -308,9 +301,10 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h ../Common/Context.h Create.h Vertex.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Extrude_Old.o: 3D_Extrude_Old.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -319,83 +313,57 @@ depend:
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h ../Common/Context.h Create.h Vertex.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Coherence.o: 3D_Coherence.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h 3D_Mesh.h Create.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  3D_Mesh.h Create.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Divide.o: 3D_Divide.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Mesh_Netgen.o: 3D_Mesh_Netgen.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  Create.h ../Common/Context.h ../Common/OS.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h Create.h ../Common/Context.h ../Common/OS.h \
   ../contrib/Netgen/libsrc/interface/nglib.h \
   ../contrib/Netgen/nglib_addon.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 3D_Mesh_Tetgen.o: 3D_Mesh_Tetgen.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  Create.h ../Common/Context.h ../contrib/Tetgen/tetgen.h
-BDS.o: BDS.cpp ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h BDS.h ../contrib/ANN/include/ANN/ANN.h \
-  ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
-  ../Common/Message.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h Create.h ../Common/Context.h \
+  ../contrib/Tetgen/tetgen.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
+BDS.o: BDS.cpp ../Numeric/Numeric.h ../Common/GmshMatrix.h BDS.h \
+  ../contrib/ANN/include/ANN/ANN.h ../Common/Views.h \
+  ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Message.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 MeshQuality.o: MeshQuality.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Create.o: Create.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -404,54 +372,28 @@ Create.o: Create.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Utils.h Vertex.h ../Common/Context.h \
   Create.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Generator.o: Generator.cpp BDS.h ../contrib/ANN/include/ANN/ANN.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h Mesh.h Vertex.h \
-  Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
-  Matrix.h Create.h ../Common/Context.h ../Parser/OpenFile.h \
-  PartitionMesh.h ../Common/OS.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  Create.h ../Common/Context.h ../Parser/OpenFile.h PartitionMesh.h \
+  ../Common/OS.h meshGEdge.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
+  ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Print_Mesh.o: Print_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -460,9 +402,10 @@ Print_Mesh.o: Print_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Create.h Vertex.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Read_Mesh.o: Read_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -471,63 +414,33 @@ Read_Mesh.o: Read_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../Geo/ExtrudeParams.h Mesh.h 3D_Mesh.h Create.h Vertex.h \
-  ../Common/Context.h PartitionMesh.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Geo/ExtrudeParams.h Mesh.h 3D_Mesh.h Create.h \
+  Vertex.h ../Common/Context.h PartitionMesh.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 DiscreteSurface.o: DiscreteSurface.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h ../Numeric/Numeric.h Mesh.h Vertex.h Element.h \
   Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Geo/ExtrudeParams.h ../Geo/Geo.h Create.h \
-  Interpolation.h ../Common/Context.h BDS.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Geo/ExtrudeParams.h \
+  ../Geo/Geo.h Create.h Interpolation.h ../Common/Context.h BDS.h \
   ../contrib/ANN/include/ANN/ANN.h ../Common/Views.h \
   ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h PartitionMesh.h ../Common/OS.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h PartitionMesh.h \
+  ../Common/OS.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 SwapEdge.o: SwapEdge.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h SwapPatterns.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  SwapPatterns.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Utils.o: Utils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -536,42 +449,11 @@ Utils.o: Utils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Interpolation.h Vertex.h \
-  ../Common/Context.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Metric.o: Metric.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -580,118 +462,113 @@ Metric.o: Metric.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h Matrix.h Interpolation.h Vertex.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
+meshGEdge.o: meshGEdge.cpp meshGEdge.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
+  ../Geo/SPoint3.h ../Geo/MVertex.h ../Common/GmshDefines.h \
+  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Common/Gmsh.h \
+  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h Utils.h Vertex.h Mesh.h Element.h Simplex.h Face.h \
+  Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Nurbs.o: Nurbs.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Nurbs.h Vertex.h Mesh.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  ../Geo/Geo.h ../Geo/GeoUtils.h ../Mesh/Mesh.h Create.h ../Geo/CAD.h \
-  ../Mesh/Vertex.h ../Geo/ExtrudeParams.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h ../Geo/Geo.h ../Geo/GeoUtils.h ../Mesh/Mesh.h \
+  Create.h ../Geo/CAD.h ../Mesh/Vertex.h ../Geo/ExtrudeParams.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Interpolation.o: Interpolation.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Nurbs.h Vertex.h Mesh.h Element.h \
   Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Geo/ExtrudeParams.h Utils.h Interpolation.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Geo/ExtrudeParams.h \
+  Utils.h Interpolation.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 SecondOrder.o: SecondOrder.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h \
-  Utils.h Interpolation.h ../Common/OS.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h Utils.h Interpolation.h ../Common/OS.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 PartitionMesh.o: PartitionMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Geo/ExtrudeParams.h ../Geo/Geo.h Create.h \
-  Interpolation.h ../Common/Context.h BDS.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Geo/ExtrudeParams.h \
+  ../Geo/Geo.h Create.h Interpolation.h ../Common/Context.h BDS.h \
   ../contrib/ANN/include/ANN/ANN.h ../Common/Views.h \
   ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h PartitionMesh.h ../Parser/OpenFile.h \
-  ../contrib/Metis/metis.h ../contrib/Metis/defs.h \
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h PartitionMesh.h \
+  ../Parser/OpenFile.h ../contrib/Metis/metis.h ../contrib/Metis/defs.h \
   ../contrib/Metis/struct.h ../contrib/Metis/macros.h \
   ../contrib/Metis/rename.h ../contrib/Metis/proto.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Smoothing.o: Smoothing.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 CrossData.o: CrossData.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Vertex.o: Vertex.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h Vertex.h Mesh.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Edge.o: Edge.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Mesh.h \
   Vertex.h Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Metric.h Matrix.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshDefines.h Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Face.o: Face.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../Numeric/Numeric.h Mesh.h \
   Vertex.h Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Metric.h Matrix.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshDefines.h Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Element.o: Element.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h Metric.h Matrix.h
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  Metric.h Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Mesh//"
 Simplex.o: Simplex.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Numeric/Numeric.h ../Geo/Geo.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h Metric.h Matrix.h \
+  ../Common/Context.h
diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h
index 412021f2aa..f5aaa74f19 100644
--- a/Mesh/Mesh.h
+++ b/Mesh/Mesh.h
@@ -358,19 +358,19 @@ struct Map{
 
 // public functions
 
-void mai3d(Mesh *M, int Asked);
+void mai3d(int Asked);
 
-void Init_Mesh0(Mesh *M);
-void Init_Mesh(Mesh *M);
-void Print_Geo(Mesh *M, char *c);
-void Print_Mesh(Mesh *M, char *c, int Type);
+void Init_Mesh0();
+void Init_Mesh();
+void Print_Geo(char *c);
+void Print_Mesh(char *c, int Type);
 void Read_Mesh(Mesh *M, FILE *fp, char *filename, int Type);
 void GetStatistics(double s[50]);
-void GetDefaultMeshFileName(Mesh *M, int Type, char *name);
+void GetDefaultMeshFileName(int Type, char *name);
 
-void Maillage_Dimension_1(Mesh *M);
-void Maillage_Dimension_2(Mesh *M);
-void Maillage_Dimension_3(Mesh *M);
+void Maillage_Dimension_1();
+void Maillage_Dimension_2();
+void Maillage_Dimension_3();
 
 void Maillage_Curve(void *data, void *dummy);
 void Maillage_Surface(void *data, void *dum);
@@ -381,7 +381,7 @@ int Extrude_Mesh(Surface *s);
 int Extrude_Mesh(Volume *v);
 int Extrude_Mesh(Tree_T *Volumes);
 void ExitExtrude();
-void Extrude_Mesh_Old(Mesh *M);
+void Extrude_Mesh_Old();
 
 int MeshTransfiniteSurface(Surface *sur);
 int MeshTransfiniteVolume(Volume *vol);
@@ -390,15 +390,15 @@ int MeshParametricSurface(Surface *s);
 int MeshEllipticSurface(Surface *sur);
 int MeshDiscreteSurface(Surface *sur);
 int MeshDiscreteCurve(Curve *c);
-int ReMesh (Mesh *M);
+int ReMesh(Mesh *M);
 
 int AlgorithmeMaillage2DAnisotropeModeJF(Surface *s);
-void Maillage_Automatique_VieuxCode(Surface *pS, Mesh *m, int ori);
+void Maillage_Automatique_VieuxCode(Surface *pS, int ori);
 int Mesh_Triangle(Surface *s);
 int Mesh_Netgen(Volume *v);
 int Mesh_Tetgen(Volume *v);
 void Optimize_Netgen(Volume *v);
-void Optimize_Netgen(Mesh *m);
+void Optimize_Netgen();
 
 int Calcule_Contours(Surface *s);
 void Link_Simplexes(List_T *Sim, Tree_T *Tim);
@@ -410,7 +410,7 @@ void Freeze_Vertex(void *a, void *b);
 void deFreeze_Vertex(void *a, void *b);
 void ReOrientSurfaceMesh(Surface *s);
 
-void Move_SimplexBaseToSimplex(Mesh * M, int dimension);
+void Move_SimplexBaseToSimplex(int dimension);
 
 double BGMXYZ(double X, double Y, double Z);
 void ActionLiss(void *data, void *dummy);
@@ -418,18 +418,15 @@ void ActionLissSurf(void *data, void *dummy);
 int Recombine(Tree_T *TreeAllVert, Tree_T *TreeAllSimp, Tree_T *TreeAllQuad,
 		double a);
 int Recombine_All(Mesh *M);
-void ApplyLcFactor(Mesh *M);
-void ExportMeshStatistics(Mesh *M, char *filename, int vol=1, int surf=1, int lin=1);
+void ApplyLcFactor();
+void ExportMeshStatistics(char *filename, int vol=1, int surf=1, int lin=1);
 
 void Degre1();
 void Degre2(int dim);
 void Degre2_Curve(void *a, void *b);
 void Degre2_Surface(void *a, void *b);
 
-void Gamma_Maillage(Mesh *m, double *gamma, double *gammamax, double *gammamin);
-void Eta_Maillage(Mesh *m, double *gamma, double *gammamax, double *gammamin);
-void R_Maillage(Mesh *m, double *gamma, double *gammamax, double *gammamin);
-void Mesh_Quality(Mesh *m);
+void Mesh_Quality(Mesh *M);
 void Print_Histogram(int *h);
 
 #endif
diff --git a/Mesh/Print_Mesh.cpp b/Mesh/Print_Mesh.cpp
index 4ad993768f..e566953fca 100644
--- a/Mesh/Print_Mesh.cpp
+++ b/Mesh/Print_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Print_Mesh.cpp,v 1.75 2006-05-14 00:48:20 geuzaine Exp $
+// $Id: Print_Mesh.cpp,v 1.76 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -70,22 +70,22 @@ static void _msh_print_node(void *a, void *b)
           V->Pos.Z * CTX.mesh.scaling_factor);
 }
 
-static void _msh_process_nodes(Mesh *M)
+static void _msh_process_nodes()
 {
   int i, j, Num;
   PhysicalGroup *p;
   Vertex *pv, **ppv, v;
 
-  for(i = 0; i < List_Nbr(M->PhysicalGroups); i++) {
-    List_Read(M->PhysicalGroups, i, &p);
+  for(i = 0; i < List_Nbr(THEM->PhysicalGroups); i++) {
+    List_Read(THEM->PhysicalGroups, i, &p);
     if(p->Typ == MSH_PHYSICAL_POINT) {
       for(j = 0; j < List_Nbr(p->Entities); j++) {
         List_Read(p->Entities, j, &Num);
         pv = &v;
         pv->Num = abs(Num);
-        if(!Tree_Search(M->Vertices, &pv)) {
-          if((ppv = (Vertex **) Tree_PQuery(M->Points, &pv)))
-            Tree_Add(M->Vertices, ppv);
+        if(!Tree_Search(THEM->Vertices, &pv)) {
+          if((ppv = (Vertex **) Tree_PQuery(THEM->Points, &pv)))
+            Tree_Add(THEM->Vertices, ppv);
         }
       }
     }
@@ -95,10 +95,10 @@ static void _msh_process_nodes(Mesh *M)
     fprintf(MSHFILE, "$Nodes\n");
   else
     fprintf(MSHFILE, "$NOD\n");
-  fprintf(MSHFILE, "%d\n", Tree_Nbr(M->Vertices));
+  fprintf(MSHFILE, "%d\n", Tree_Nbr(THEM->Vertices));
 
   MSH_NODE_NUM = 0;
-  Tree_Action(M->Vertices, _msh_print_node);
+  Tree_Action(THEM->Vertices, _msh_print_node);
   if(CTX.mesh.msh_file_version == 2.0)
     fprintf(MSHFILE, "$EndNodes\n");
   else
@@ -445,7 +445,7 @@ static void _msh_print_point(Vertex *V)
 	    MSH_PHYSICAL_NUM ? MSH_PHYSICAL_NUM : V->Num, V->Num, V->Num);
 }
 
-static void _msh_print_elements(Mesh *M)
+static void _msh_print_elements()
 {
   int i, j, k, Num;
 
@@ -455,12 +455,12 @@ static void _msh_print_elements(Mesh *M)
   Curve *pc;
   Vertex *pv, v;
 
-  List_T *ListCurves = Tree2List(M->Curves);
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
-  List_T *ListVolumes = Tree2List(M->Volumes);
+  List_T *ListCurves = Tree2List(THEM->Curves);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
+  List_T *ListVolumes = Tree2List(THEM->Volumes);
 
-  for(i = 0; i < List_Nbr(M->PhysicalGroups); i++) {
-    List_Read(M->PhysicalGroups, i, &p);
+  for(i = 0; i < List_Nbr(THEM->PhysicalGroups); i++) {
+    List_Read(THEM->PhysicalGroups, i, &p);
     MSH_PHYSICAL_NUM = p->Num;
     MSH_VOL_NUM = MSH_SUR_NUM = MSH_LIN_NUM = 0;
 
@@ -472,7 +472,7 @@ static void _msh_print_elements(Mesh *M)
         List_Read(p->Entities, j, &Num);
         pv->Num = abs(Num);
         MSH_PHYSICAL_ORI = sign(Num);
-        if(Tree_Query(M->Vertices, &pv))
+        if(Tree_Query(THEM->Vertices, &pv))
           _msh_print_point(pv);
       }
       break;
@@ -635,7 +635,7 @@ static void _msh_print_all_volumes(void *a, void *b)
   Tree_Action(v->Pyramids, _msh_print_pyramid);
 }
 
-static void _msh_print_all_elements(Mesh *M)
+static void _msh_print_all_elements()
 {
   MSH_PHYSICAL_NUM = 0;
   MSH_PHYSICAL_ORI = 1;
@@ -645,28 +645,28 @@ static void _msh_print_all_elements(Mesh *M)
   _msh_print_all_modelpoints();
 
   if(CTX.mesh.oldxtrude) {
-    Tree_Action(M->Volumes, _msh_print_all_simpsurf);
-    Tree_Action(M->Volumes, _msh_print_all_linsurf);
+    Tree_Action(THEM->Volumes, _msh_print_all_simpsurf);
+    Tree_Action(THEM->Volumes, _msh_print_all_linsurf);
   }
   else {
-    Tree_Action(M->Curves, _msh_print_all_curves);
-    Tree_Action(M->Surfaces, _msh_print_all_surfaces);
+    Tree_Action(THEM->Curves, _msh_print_all_curves);
+    Tree_Action(THEM->Surfaces, _msh_print_all_surfaces);
   }
 
-  Tree_Action(M->Volumes, _msh_print_all_volumes);
+  Tree_Action(THEM->Volumes, _msh_print_all_volumes);
 }
 
-static void _msh_process_elements(Mesh *M)
+static void _msh_process_elements()
 {
   MSH_ADD = 0;
   MSH_ELEMENT_NUM = 1;
 
-  if(!List_Nbr(M->PhysicalGroups) || CTX.mesh.save_all) {
+  if(!List_Nbr(THEM->PhysicalGroups) || CTX.mesh.save_all) {
     Msg(INFO, "Saving all elements (discarding physical groups)");
-    _msh_print_all_elements(M);
+    _msh_print_all_elements();
   }
   else
-    _msh_print_elements(M);
+    _msh_print_elements();
 
   if(CTX.mesh.msh_file_version == 2.0)
     fprintf(MSHFILE, "$Elements\n");
@@ -680,10 +680,10 @@ static void _msh_process_elements(Mesh *M)
 
   MSH_ADD = 1;
   MSH_ELEMENT_NUM = 1;
-  if(!List_Nbr(M->PhysicalGroups) || CTX.mesh.save_all)
-    _msh_print_all_elements(M);
+  if(!List_Nbr(THEM->PhysicalGroups) || CTX.mesh.save_all)
+    _msh_print_all_elements();
   else
-    _msh_print_elements(M);
+    _msh_print_elements();
 
   if(CTX.mesh.msh_file_version == 2.0)
     fprintf(MSHFILE, "$EndElements\n");
@@ -691,7 +691,7 @@ static void _msh_process_elements(Mesh *M)
     fprintf(MSHFILE, "$ENDELM\n");
 }
 
-void Print_Mesh_MSH(Mesh *M, FILE *fp)
+void Print_Mesh_MSH(FILE *fp)
 {
   MSHFILE = fp;
   if(CTX.mesh.msh_file_version == 1.0){
@@ -708,8 +708,8 @@ void Print_Mesh_MSH(Mesh *M, FILE *fp)
 	CTX.mesh.msh_file_version);
     return;
   }
-  _msh_process_nodes(M);
-  _msh_process_elements(M);
+  _msh_process_nodes();
+  _msh_process_elements();
   Msg(INFO, "%d nodes", MSH_NODE_NUM);
   Msg(INFO, "%d elements", MSH_ELEMENT_NUM - 1);
 }
@@ -743,10 +743,10 @@ static Tree_T *tree;
 static int UNV_VOL_NUM;
 static FILE *UNVFILE;
 
-static void _unv_process_nodes(Mesh *M)
+static void _unv_process_nodes()
 {
   Vertex *v;
-  List_T *Nodes = Tree2List(M->Vertices);
+  List_T *Nodes = Tree2List(THEM->Vertices);
 
   fprintf(UNVFILE, "%6d\n", -1);
   fprintf(UNVFILE, "%6d\n", NODES);
@@ -796,9 +796,9 @@ static void _unv_print_record(int num, int fetyp, int geo, int n, int nsup,
     fprintf(UNVFILE, "\n");
 }
 
-static void _unv_process_1D_elements(Mesh *m)
+static void _unv_process_1D_elements()
 {
-  List_T *ListCurves = Tree2List(m->Curves);
+  List_T *ListCurves = Tree2List(THEM->Curves);
   List_T *Elements;
   SimplexBase *sx;
   Curve *c;
@@ -821,9 +821,9 @@ static void _unv_process_1D_elements(Mesh *m)
   List_Delete(ListCurves);
 }
 
-static void _unv_process_2D_elements(Mesh *m)
+static void _unv_process_2D_elements()
 {
-  List_T *ListSurfaces = Tree2List(m->Surfaces);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
   List_T *Elements;
   Surface *s;
   SimplexBase *sx;
@@ -859,9 +859,9 @@ static void _unv_process_2D_elements(Mesh *m)
   List_Delete(ListSurfaces);
 }
 
-static void _unv_process_3D_elements(Mesh *m)
+static void _unv_process_3D_elements()
 {
-  List_T *ListVolumes = Tree2List(m->Volumes);
+  List_T *ListVolumes = Tree2List(THEM->Volumes);
   List_T *Elements;
   SimplexBase *sx;
   Hexahedron *hx;
@@ -971,7 +971,7 @@ static void _unv_add_pyramid_vertices(void *a, void *b)
     _unv_add_vertex(&p->V[i], NULL);
 }
 
-static void _unv_process_groups(Mesh *m)
+static void _unv_process_groups()
 {
   Volume *pV;
   Surface *ps, s;
@@ -980,9 +980,9 @@ static void _unv_process_groups(Mesh *m)
   PhysicalGroup *p;
   List_T *ListVolumes;
 
-  for(int i = 0; i < List_Nbr(m->PhysicalGroups); i++) {
+  for(int i = 0; i < List_Nbr(THEM->PhysicalGroups); i++) {
 
-    List_Read(m->PhysicalGroups, i, &p);
+    List_Read(THEM->PhysicalGroups, i, &p);
 
     fprintf(UNVFILE, "%6d\n", -1);
     fprintf(UNVFILE, "%6d\n", GROUPOFNODES);
@@ -993,7 +993,7 @@ static void _unv_process_groups(Mesh *m)
 
     switch (p->Typ) {
     case MSH_PHYSICAL_VOLUME:
-      ListVolumes = Tree2List(m->Volumes);
+      ListVolumes = Tree2List(THEM->Volumes);
       for(int k = 0; k < List_Nbr(ListVolumes); k++) {
         List_Read(ListVolumes, k, &pV);
         for(int j = 0; j < List_Nbr(p->Entities); j++) {
@@ -1011,7 +1011,7 @@ static void _unv_process_groups(Mesh *m)
       for(int j = 0; j < List_Nbr(p->Entities); j++) {
         ps = &s;
         List_Read(p->Entities, j, &ps->Num);
-        if(Tree_Query(m->Surfaces, &ps))
+        if(Tree_Query(THEM->Surfaces, &ps))
           Tree_Action(ps->Vertices, _unv_add_vertex);
       }
       break;
@@ -1019,7 +1019,7 @@ static void _unv_process_groups(Mesh *m)
       for(int j = 0; j < List_Nbr(p->Entities); j++) {
         pc = &c;
         List_Read(p->Entities, j, &pc->Num);
-        if(Tree_Query(m->Curves, &pc))
+        if(Tree_Query(THEM->Curves, &pc))
           for(int k = 0; k < List_Nbr(pc->Vertices); k++)
             _unv_add_vertex(List_Pointer(pc->Vertices, k), NULL);
       }
@@ -1028,7 +1028,7 @@ static void _unv_process_groups(Mesh *m)
       for(int j = 0; j < List_Nbr(p->Entities); j++) {
         pv = &v;
         List_Read(p->Entities, j, &pv->Num);
-        if(Tree_Query(m->Vertices, &pv))
+        if(Tree_Query(THEM->Vertices, &pv))
           _unv_add_vertex(&pv, NULL);
       }
       break;
@@ -1040,25 +1040,25 @@ static void _unv_process_groups(Mesh *m)
   }
 }
 
-void Print_Mesh_UNV(Mesh *M, FILE *fp)
+void Print_Mesh_UNV(FILE *fp)
 {
   UNVFILE = fp;
-  _unv_process_nodes(M);
+  _unv_process_nodes();
   fprintf(UNVFILE, "%6d\n", -1);
   fprintf(UNVFILE, "%6d\n", ELEMENTS);
   ELEMENT_ID = 1;
-  _unv_process_3D_elements(M);
-  _unv_process_2D_elements(M);
-  _unv_process_1D_elements(M);
+  _unv_process_3D_elements();
+  _unv_process_2D_elements();
+  _unv_process_1D_elements();
   fprintf(UNVFILE, "%6d\n", -1);
-  _unv_process_groups(M);
+  _unv_process_groups();
 }
 
 // Write mesh in Gref format
 
 static FILE *GREFFILE;
 
-static void _gref_consecutive_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
+static void _gref_consecutive_nodes(Tree_T *ConsecutiveNTree,
 				    Tree_T *ConsecutiveETree)
 {
   SimplexBase *sx;
@@ -1068,7 +1068,7 @@ static void _gref_consecutive_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
 
   int newnum = 0;
 
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
   for(int i = 0; i < List_Nbr(ListSurfaces); i++) {
     List_Read(ListSurfaces, i, &s);
     // triangles
@@ -1138,13 +1138,13 @@ static void _gref_consecutive_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
   Msg(INFO, "%d Dofs", nbdof);
 }
 
-static void _gref_end_consecutive_nodes(Mesh *M)
+static void _gref_end_consecutive_nodes()
 {
   SimplexBase *sx;
   Quadrangle *qx;
   Surface *s;
 
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
   for(int i = 0; i < List_Nbr(ListSurfaces); i++) {
     List_Read(ListSurfaces, i, &s);
     // triangles
@@ -1181,7 +1181,7 @@ static int _gref_compare_frozen(const void *a, const void *b)
   return w->Frozen - q->Frozen;
 }
 
-static int _gref_process_nodes(Mesh *M, Tree_T *ConsecutiveNTree, 
+static int _gref_process_nodes(Tree_T *ConsecutiveNTree, 
 			       Tree_T *ConsecutiveETree)
 {
   int i, nbtriqua;
@@ -1189,10 +1189,10 @@ static int _gref_process_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
   Surface *s;
   List_T *Nodes;
 
-  Tree_Action(M->Curves, Degre2_Curve);
-  Tree_Action(M->Surfaces, Degre2_Surface);
+  Tree_Action(THEM->Curves, Degre2_Curve);
+  Tree_Action(THEM->Surfaces, Degre2_Surface);
  
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
   nbtriqua = 0;
   for(i = 0; i < List_Nbr(ListSurfaces); i++) {
     List_Read(ListSurfaces, i, &s);
@@ -1201,7 +1201,7 @@ static int _gref_process_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
   }
   List_Delete(ListSurfaces);
 
-  _gref_consecutive_nodes(M, ConsecutiveNTree, ConsecutiveETree);
+  _gref_consecutive_nodes(ConsecutiveNTree, ConsecutiveETree);
 
   fprintf(GREFFILE, "%d %d %d\n", nbtriqua, Tree_Nbr(ConsecutiveNTree),
           Tree_Nbr(ConsecutiveNTree) + Tree_Nbr(ConsecutiveETree));
@@ -1228,13 +1228,13 @@ static int _gref_process_nodes(Mesh *M, Tree_T *ConsecutiveNTree,
   return i;
 }
 
-static int _gref_find_physical(Vertex *v, Mesh *m)
+static int _gref_find_physical(Vertex *v)
 {
   PhysicalGroup *p;
   Curve *c;
   int i, j;
-  for(i = 0; i < List_Nbr(m->PhysicalGroups); i++) {
-    List_Read(m->PhysicalGroups, i, &p);
+  for(i = 0; i < List_Nbr(THEM->PhysicalGroups); i++) {
+    List_Read(THEM->PhysicalGroups, i, &p);
     if(p->Typ == MSH_PHYSICAL_POINT) {
       if(List_Search(p->Entities, &v->Num, fcmp_absint)) {
         return p->Num;
@@ -1243,8 +1243,8 @@ static int _gref_find_physical(Vertex *v, Mesh *m)
   }
 
   if(v->ListCurves) {
-    for(i = 0; i < List_Nbr(m->PhysicalGroups); i++) {
-      List_Read(m->PhysicalGroups, i, &p);
+    for(i = 0; i < List_Nbr(THEM->PhysicalGroups); i++) {
+      List_Read(THEM->PhysicalGroups, i, &p);
       if(p->Typ == MSH_PHYSICAL_LINE) {
         for(j = 0; j < List_Nbr(v->ListCurves); j++) {
           List_Read(v->ListCurves, j, &c);
@@ -1258,7 +1258,7 @@ static int _gref_find_physical(Vertex *v, Mesh *m)
   return 0;
 }
 
-static void _gref_process_boundary_conditions(Mesh *M, Tree_T *TRN, Tree_T *TRE)
+static void _gref_process_boundary_conditions(Tree_T *TRN, Tree_T *TRE)
 {
   int i, ent;
   Vertex *v;
@@ -1266,7 +1266,7 @@ static void _gref_process_boundary_conditions(Mesh *M, Tree_T *TRN, Tree_T *TRE)
   List_T *Nodes = Tree2List(TRN);
   for(i = 0; i < List_Nbr(Nodes); i++) {
     List_Read(Nodes, i, &v);
-    ent = _gref_find_physical(v, M);
+    ent = _gref_find_physical(v);
     fprintf(GREFFILE, "%d %d ", ent, ent);
     if(i % 3 == 2)
       fprintf(GREFFILE, "\n");
@@ -1278,7 +1278,7 @@ static void _gref_process_boundary_conditions(Mesh *M, Tree_T *TRN, Tree_T *TRE)
   Nodes = Tree2List(TRE);
   for(i = 0; i < List_Nbr(Nodes); i++) {
     List_Read(Nodes, i, &v);
-    ent = _gref_find_physical(v, M);
+    ent = _gref_find_physical(v);
     fprintf(GREFFILE, "%d %d ", ent, ent);
     if(i % 3 == 2)
       fprintf(GREFFILE, "\n");
@@ -1288,13 +1288,13 @@ static void _gref_process_boundary_conditions(Mesh *M, Tree_T *TRN, Tree_T *TRE)
   List_Delete(Nodes);
 }
 
-static void _gref_process_elements(Mesh *M, int nn)
+static void _gref_process_elements(int nn)
 {
   SimplexBase *sx;
   Quadrangle *qx;
   Surface *s;
 
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
 
   for(int i = 0; i < List_Nbr(ListSurfaces); i++) {
     List_Read(ListSurfaces, i, &s);
@@ -1367,17 +1367,17 @@ static void _gref_process_elements(Mesh *M, int nn)
   List_Delete(ListSurfaces);
 }
 
-void Print_Mesh_GREF(Mesh *M, FILE *fp)
+void Print_Mesh_GREF(FILE *fp)
 {
   GREFFILE = fp;
   Tree_T *TRN = Tree_Create(sizeof(Vertex *), _gref_compare_frozen);
   Tree_T *TRE = Tree_Create(sizeof(Vertex *), _gref_compare_frozen);
-  _gref_process_nodes(M, TRN, TRE);
-  _gref_process_elements(M, Tree_Nbr(TRN));
-  _gref_process_boundary_conditions(M, TRN, TRE);
+  _gref_process_nodes(TRN, TRE);
+  _gref_process_elements(Tree_Nbr(TRN));
+  _gref_process_boundary_conditions(TRN, TRE);
   Tree_Delete(TRN);
   Tree_Delete(TRE);
-  _gref_end_consecutive_nodes(M);
+  _gref_end_consecutive_nodes();
 }
 
 // Write mesh in VRML 1 format
@@ -1395,17 +1395,17 @@ static void _wrl_print_node(void *a, void *b)
   List_Add(wrlnodes, &V->Num);
 }
 
-static void _wrl_process_nodes(Mesh *M)
+static void _wrl_process_nodes()
 {
   if(!wrlnodes)
-    wrlnodes = List_Create(Tree_Size(M->Vertices), 100, sizeof(int));
+    wrlnodes = List_Create(Tree_Size(THEM->Vertices), 100, sizeof(int));
   else
     List_Reset(wrlnodes);
   fprintf(WRLFILE, "#VRML V1.0 ascii\n");
   fprintf(WRLFILE, "#created by Gmsh\n");
   fprintf(WRLFILE, "Coordinate3 {\n");
   fprintf(WRLFILE, "  point [\n");
-  Tree_Action(M->Vertices, _wrl_print_node);
+  Tree_Action(THEM->Vertices, _wrl_print_node);
   fprintf(WRLFILE, "  ]\n");
   fprintf(WRLFILE, "}\n");
 }
@@ -1480,21 +1480,21 @@ static void _wrl_print_all_surfaces(void *a, void *b)
   fprintf(WRLFILE, "}\n");
 }
 
-static void _wrl_process_elements(Mesh *M)
+static void _wrl_process_elements()
 {
   if(!wrlnodes)
     Msg(GERROR, "VRML node list does not exist");
   else {
-    Tree_Action(M->Curves, _wrl_print_all_curves);
-    Tree_Action(M->Surfaces, _wrl_print_all_surfaces);
+    Tree_Action(THEM->Curves, _wrl_print_all_curves);
+    Tree_Action(THEM->Surfaces, _wrl_print_all_surfaces);
   }
 }
 
-void Print_Mesh_WRL(Mesh *M, FILE *fp)
+void Print_Mesh_WRL(FILE *fp)
 {
   WRLFILE = fp;
-  _wrl_process_nodes(M);
-  _wrl_process_elements(M);
+  _wrl_process_nodes();
+  _wrl_process_elements();
 }
 
 // Write surface mesh in STL format
@@ -1554,11 +1554,11 @@ static void _stl_print_all_surfaces(void *a, void *b)
   Tree_Action(s->Quadrangles, _stl_print_quadrangle);
 }
 
-void Print_Mesh_STL(Mesh *M, FILE *fp)
+void Print_Mesh_STL(FILE *fp)
 {
   STLFILE = fp;
   fprintf(STLFILE, "solid Created by Gmsh\n");
-  Tree_Action(M->Surfaces, _stl_print_all_surfaces);
+  Tree_Action(THEM->Surfaces, _stl_print_all_surfaces);
   fprintf(STLFILE, "endsolid Created by Gmsh\n");
 }
 
@@ -1575,7 +1575,7 @@ static int _dmg_is_topologic(Vertex *v, List_T *curves)
   return 0;
 }
 
-void Print_Mesh_DMG(Mesh *m, FILE *fp)
+void Print_Mesh_DMG(FILE *fp)
 {
   int i, j;
   List_T *ll, *l;
@@ -1584,8 +1584,8 @@ void Print_Mesh_DMG(Mesh *m, FILE *fp)
   Surface *s;
   int k;
 
-  l = Tree2List(m->Points);
-  ll = Tree2List(m->Curves);
+  l = Tree2List(THEM->Points);
+  ll = Tree2List(THEM->Curves);
 
   k = 0;
   for(i = 0; i < List_Nbr(l); i++) {
@@ -1597,9 +1597,9 @@ void Print_Mesh_DMG(Mesh *m, FILE *fp)
 
   // write first the global infos 
 
-  fprintf(fp, "%d %d %d %d \n", Tree_Nbr(m->Volumes),
-          Tree_Nbr(m->Surfaces),
-          Tree_Nbr(m->Curves) / 2,     // the 2 is for the reverse curves
+  fprintf(fp, "%d %d %d %d \n", Tree_Nbr(THEM->Volumes),
+          Tree_Nbr(THEM->Surfaces),
+          Tree_Nbr(THEM->Curves) / 2,     // the 2 is for the reverse curves
           k);
 
   // then write the bounding box
@@ -1628,7 +1628,7 @@ void Print_Mesh_DMG(Mesh *m, FILE *fp)
     List_Read(l, i, &c);
     if(c->Num > 0) {
       c->ipar[3] = k;
-      Curve *cinv = FindCurve(-c->Num, m);
+      Curve *cinv = FindCurve(-c->Num, THEM);
       cinv->ipar[3] = k++;
       fprintf(fp, "%d %d %d \n", 
 	      c->ipar[3], c->beg->Frozen, c->end->Frozen);
@@ -1638,7 +1638,7 @@ void Print_Mesh_DMG(Mesh *m, FILE *fp)
   List_Delete(l);
 
   // write the surfaces
-  l = Tree2List(m->Surfaces);
+  l = Tree2List(THEM->Surfaces);
 
   for(i = 0; i < List_Nbr(l); i++) {
     List_Read(l, i, &s);
@@ -1783,7 +1783,7 @@ void _p3d_print_hex(List_T *ListHex, int Nu, int Nv, int Nw)
   }
 }
 
-void _p3d_print_all_elements(Mesh *M)
+void _p3d_print_all_elements()
 {
   int i, Nv, Nu, ElemCnt = 0;
   Volume *pV;
@@ -1791,8 +1791,8 @@ void _p3d_print_all_elements(Mesh *M)
   List_T *ListQuads;
   List_T *ListHex;
 
-  List_T *ListSurfaces = Tree2List(M->Surfaces);
-  List_T *ListVolumes = Tree2List(M->Volumes);
+  List_T *ListSurfaces = Tree2List(THEM->Surfaces);
+  List_T *ListVolumes = Tree2List(THEM->Volumes);
 
   List_T *ListStructSurf = List_Create(1,1,sizeof(Surface *));
   List_T *ListStructVol = List_Create(1,1,sizeof(Volume *));
@@ -1867,32 +1867,32 @@ void _p3d_print_all_elements(Mesh *M)
   List_Delete(ListStructVol);
 }
 
-void _p3d_print_elements(Mesh *M)
+void _p3d_print_elements()
 {
   // FIXME: to do
 }
 
-void Print_Mesh_P3D(Mesh *M, FILE *fp)
+void Print_Mesh_P3D(FILE *fp)
 {
   P3DFILE = fp;
 
-  if(!List_Nbr(M->PhysicalGroups) || CTX.mesh.save_all) {
+  if(!List_Nbr(THEM->PhysicalGroups) || CTX.mesh.save_all) {
     Msg(INFO, "Saving all elements (discarding physical groups)");
-    _p3d_print_all_elements(M);
+    _p3d_print_all_elements();
   }
   else{
     Msg(WARNING, "No Plot3d format of physicals yet, saving all elements!");
-    //_p3d_print_elements(M);
-    _p3d_print_all_elements(M);
+    //_p3d_print_elements();
+    _p3d_print_all_elements();
   }
 }
 
 // Public Print_Mesh routine
 
-void GetDefaultMeshFileName(Mesh *M, int Type, char *name)
+void GetDefaultMeshFileName(int Type, char *name)
 {
   char ext[10] = "";
-  strcpy(name, M->name);
+  strcpy(name, THEM->name);
   switch(Type){
   case FORMAT_MSH:  strcpy(ext, ".msh"); break;
   case FORMAT_VRML: strcpy(ext, ".wrl"); break;
@@ -1906,7 +1906,7 @@ void GetDefaultMeshFileName(Mesh *M, int Type, char *name)
   strcat(name, ext);
 }
 
-void Print_Mesh(Mesh *M, char *filename, int Type)
+void Print_Mesh(char *filename, int Type)
 {
   char name[256];
 
@@ -1918,7 +1918,7 @@ void Print_Mesh(Mesh *M, char *filename, int Type)
   CTX.threads_lock = 1;
 
   if(!filename)
-    GetDefaultMeshFileName(M, Type, name);
+    GetDefaultMeshFileName(Type, name);
   else
     strcpy(name, filename);
 
@@ -1932,13 +1932,13 @@ void Print_Mesh(Mesh *M, char *filename, int Type)
   }
 
   switch(Type){
-  case FORMAT_MSH:  Print_Mesh_MSH(M, fp); break;
-  case FORMAT_VRML: Print_Mesh_WRL(M, fp); break;
-  case FORMAT_UNV:  Print_Mesh_UNV(M, fp); break;
-  case FORMAT_GREF: Print_Mesh_GREF(M, fp); break;
-  case FORMAT_DMG:  Print_Mesh_DMG(M, fp); break;
-  case FORMAT_STL:  Print_Mesh_STL(M, fp); break;
-  case FORMAT_P3D:  Print_Mesh_P3D(M, fp); break;
+  case FORMAT_MSH:  Print_Mesh_MSH(fp); break;
+  case FORMAT_VRML: Print_Mesh_WRL(fp); break;
+  case FORMAT_UNV:  Print_Mesh_UNV(fp); break;
+  case FORMAT_GREF: Print_Mesh_GREF(fp); break;
+  case FORMAT_DMG:  Print_Mesh_DMG(fp); break;
+  case FORMAT_STL:  Print_Mesh_STL(fp); break;
+  case FORMAT_P3D:  Print_Mesh_P3D(fp); break;
   default:
     break;
   }
diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp
index 7a557dc7ea..c451adb431 100644
--- a/Mesh/SecondOrder.cpp
+++ b/Mesh/SecondOrder.cpp
@@ -1,4 +1,4 @@
-// $Id: SecondOrder.cpp,v 1.37 2006-02-26 16:26:09 geuzaine Exp $
+// $Id: SecondOrder.cpp,v 1.38 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -446,7 +446,7 @@ void ResetDegre2_Volume(void *a, void *b)
 void Degre1()
 {
   // transform any SimplexBase into "real" simplices
-  Move_SimplexBaseToSimplex(THEM, 3);
+  Move_SimplexBaseToSimplex(3);
 
   // (re-)initialize the global tree of edges/quadfaces
   if(edges)
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index c7cc2cb208..31caa7f2cd 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -40,9 +40,9 @@ double F_Transfini_bis(double t)
   SVector3 der = _myGEdge -> firstDer(t) ;
   double d = norm(der);
 
-  double coef = _myGEdge->meshGEdgeAttributes.coeffTransfinite;
-  int    type = _myGEdge->meshGEdgeAttributes.typeTransfinite;
-  int    nbpt = _myGEdge->meshGEdgeAttributes.nbPointsTransfinite;
+  double coef = _myGEdge->meshAttributes.coeffTransfinite;
+  int    type = _myGEdge->meshAttributes.typeTransfinite;
+  int    nbpt = _myGEdge->meshAttributes.nbPointsTransfinite;
 
   if(coef <= 0.0 || coef == 1.0) {
     // coef < 0 should never happen
@@ -65,6 +65,7 @@ double F_Transfini_bis(double t)
 	
     case 2:    // Bump
       {
+	double a;
 	if(coef > 1.0) {
 	  a = -4. * sqrt(coef - 1.) *
 	    atan2(1., sqrt(coef - 1.)) /
@@ -131,13 +132,13 @@ void meshGEdge :: operator() (GEdge *ge)
   t_begin = _myGEdgeBounds.low();
   t_end   = _myGEdgeBounds.high();
 
-  // Integrate ∫ detJ/lc du 
+  // Integrate detJ/lc du 
   double a;
   int N;
-  if(ge->meshGEdgeAttributes.Method == TRANSFINI) 
+  if(ge->meshAttributes.Method == TRANSFINI) 
     {
       a = Integration(_myGEdgeBounds.low(), _myGEdgeBounds.high(), F_Transfini_bis, Points, 1.e-7);
-      N = ge->meshGEdgeAttributes.nbPointsTransfinite;
+      N = ge->meshAttributes.nbPointsTransfinite;
     }
   else
     {
diff --git a/Numeric/Makefile b/Numeric/Makefile
index 22ca79e437..5284f1b477 100644
--- a/Numeric/Makefile
+++ b/Numeric/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.25 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.26 2006-07-12 07:24:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -53,57 +53,20 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Numeric//"
 Numeric.o: Numeric.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  Numeric.h /sw/include/gsl/gsl_version.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h
+  Numeric.h
+# 1 "/Users/geuzaine/.gmsh/Numeric//"
 EigSolve.o: EigSolve.cpp
+# 1 "/Users/geuzaine/.gmsh/Numeric//"
 gsl_newt.o: gsl_newt.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  Numeric.h /sw/include/gsl/gsl_math.h /sw/include/gsl/gsl_sys.h \
-  /sw/include/gsl/gsl_machine.h /sw/include/gsl/gsl_precision.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_nan.h \
-  /sw/include/gsl/gsl_pow_int.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_multiroots.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h
+  Numeric.h
+# 1 "/Users/geuzaine/.gmsh/Numeric//"
 gsl_brent.o: gsl_brent.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  Numeric.h /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_math.h /sw/include/gsl/gsl_sys.h \
-  /sw/include/gsl/gsl_machine.h /sw/include/gsl/gsl_precision.h \
-  /sw/include/gsl/gsl_nan.h /sw/include/gsl/gsl_pow_int.h \
-  /sw/include/gsl/gsl_min.h
+  Numeric.h
diff --git a/Parallel/Makefile b/Parallel/Makefile
index 834f8f421e..4d7a5130f6 100644
--- a/Parallel/Makefile
+++ b/Parallel/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.28 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.29 2006-07-12 07:24:14 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -50,6 +50,7 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Parallel//"
 ParUtil.o: ParUtil.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 01669f19f2..a3dfec2d58 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -126,7 +126,7 @@
 
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.267 2006-05-17 18:40:36 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.268 2006-07-12 07:24:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -4415,7 +4415,7 @@ case 125:
 #line 1732 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){
-	Init_Mesh(THEM);
+	Init_Mesh();
       }
       else if(!strcmp(yyvsp[-1].c, "Physicals")){
 	List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index f3db35c972..89f2646395 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.229 2006-05-17 18:40:36 geuzaine Exp $
+// $Id: Gmsh.y,v 1.230 2006-07-12 07:24:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -1731,7 +1731,7 @@ Delete :
   | tDelete tSTRING tEND
     {
       if(!strcmp($2, "Meshes") || !strcmp($2, "All")){
-	Init_Mesh(THEM);
+	Init_Mesh();
       }
       else if(!strcmp($2, "Physicals")){
 	List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index a1564df555..b8309fadde 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.266 2006-05-17 18:40:36 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.267 2006-07-12 07:24:23 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -727,7 +727,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.266 2006-05-17 18:40:36 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.267 2006-07-12 07:24:23 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
diff --git a/Parser/Makefile b/Parser/Makefile
index 1b06553704..16bdd0a5eb 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.86 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.87 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -75,59 +75,26 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Parser//"
 Gmsh.tab.o: Gmsh.tab.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Parallel/ParUtil.h ../Common/Gmsh.h \
-  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Common/Context.h ../Geo/Geo.h ../Geo/GeoUtils.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Mesh/Nurbs.h \
-  ../Mesh/Vertex.h ../Mesh/Mesh.h ../Geo/CAD.h ../Geo/ExtrudeParams.h \
-  ../Graphics/Draw.h ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
-  ../Common/Colors.h ../Common/Options.h Parser.h OpenFile.h \
-  ../Common/CommandLine.h FunctionManager.h ../Common/OS.h \
-  ../Graphics/CreateFile.h ../Common/Visibility.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Parallel/ParUtil.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Common/Context.h ../Geo/Geo.h ../Geo/GeoUtils.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../Mesh/Nurbs.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
+  ../Geo/CAD.h ../Geo/ExtrudeParams.h ../Graphics/Draw.h ../Mesh/Create.h \
+  ../Mesh/Vertex.h ../Mesh/Mesh.h ../Common/Colors.h ../Common/Options.h \
+  Parser.h OpenFile.h ../Common/CommandLine.h FunctionManager.h \
+  ../Common/OS.h ../Graphics/CreateFile.h ../Common/Visibility.h
+# 1 "/Users/geuzaine/.gmsh/Parser//"
 Gmsh.yy.o: Gmsh.yy.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
@@ -136,66 +103,34 @@ Gmsh.yy.o: Gmsh.yy.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Common/SmoothNormals.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Gmsh.tab.hpp
+# 1 "/Users/geuzaine/.gmsh/Parser//"
 OpenFile.o: OpenFile.cpp ../Mesh/BDS.h ../contrib/ANN/include/ANN/ANN.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Gmsh.h ../Common/Message.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Geo/gmshModel.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
-  ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Geo/gmshModel.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/MVertex.h \
+  ../Common/GmshDefines.h ../Geo/GPoint.h ../Geo/GEdge.h ../Geo/GEntity.h \
   ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
   ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h \
-  ../Geo/GEdgeLoop.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/GEntity.h ../Common/Context.h Parser.h \
-  OpenFile.h ../Common/CommandLine.h ../Plugin/PluginManager.h \
-  ../Plugin/Plugin.h ../Common/Options.h ../Geo/Geo.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
+  ../Geo/GEntity.h ../Common/Context.h Parser.h OpenFile.h \
+  ../Common/CommandLine.h ../Plugin/PluginManager.h ../Plugin/Plugin.h \
+  ../Common/Options.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Geo/MinMax.h \
   ../Common/Visibility.h ../Graphics/ReadImg.h ../Common/OS.h \
   ../Common/GmshUI.h ../Graphics/Draw.h ../Fltk/GUI.h \
   ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
   ../Fltk/Popup_Button.h
+# 1 "/Users/geuzaine/.gmsh/Parser//"
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index c5ec6b70d4..f212e3563f 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.96 2006-07-11 13:41:22 remacle Exp $
+// $Id: OpenFile.cpp,v 1.97 2006-07-12 07:24:23 geuzaine Exp $
 //
 // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 //
@@ -48,7 +48,7 @@ extern GUI *WID;
 void UpdateViewsInGUI();
 #endif
 
-extern Mesh *THEM, M;
+extern Mesh *THEM;
 extern GModel *GMODEL;
 extern Context_T CTX;
 
@@ -332,14 +332,14 @@ int MergeProblem(char *name, int warn_if_missing)
        !strncmp(tmp, "$ELM", 4) ||
        !strncmp(tmp, "$MeshFormat", 4)) {
       if(THEM->status < 0)
-	mai3d(THEM, 0);
+	mai3d(0);
       Read_Mesh(THEM, fp, name, FORMAT_MSH);
       SetBoundingBox();
       status = THEM->status;
     }
     else if(!strncmp(tmp, "sms", 3)) {
       if(THEM->status < 0)
-	mai3d(THEM, 0);
+	mai3d(0);
       Read_Mesh(THEM, fp, name, FORMAT_SMS);
       SetBoundingBox();
       status = THEM->status;
@@ -369,7 +369,7 @@ void OpenProblem(char *name)
   }
   CTX.threads_lock = 1;
 
-  Init_Mesh(&M);
+  Init_Mesh();
 
   // Initialize pseudo random mesh generator to the same seed
   srand(1);
@@ -378,17 +378,17 @@ void OpenProblem(char *name)
 
   int status = MergeProblem(name);
 
-  ApplyLcFactor(THEM);
+  ApplyLcFactor();
 
   CTX.threads_lock = 0;
 
   if(!status)
-    mai3d(THEM, 0);
+    mai3d(0);
 
 #if defined(HAVE_FLTK)
   if(!CTX.batch)
     WID->reset_visibility();
-  ZeroHighlight(&M);
+  ZeroHighlight();
 #endif
 }
 
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 04bc0b5f2a..f30d1857f6 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.98 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.99 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -70,1329 +70,286 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h PluginManager.h CutMap.h Levelset.h CutGrid.h \
-  StreamLines.h CutPlane.h CutParametric.h CutSphere.h Skin.h \
-  ../DataStr/Tree.h ../DataStr/avl.h Extract.h ExtractElements.h \
-  ExtractEdges.h HarmonicToTime.h ModulusPhase.h Integrate.h Gradient.h \
-  Curl.h Divergence.h Annotate.h Remove.h DecomposeInSimplex.h Smooth.h \
-  Transform.h Triangulate.h Warp.h StructuralSolver.h ../Geo/Geo.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  PluginManager.h CutMap.h Levelset.h CutGrid.h StreamLines.h CutPlane.h \
+  CutParametric.h CutSphere.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h \
+  Extract.h ExtractElements.h ExtractEdges.h HarmonicToTime.h \
+  ModulusPhase.h Integrate.h Gradient.h Curl.h Divergence.h Annotate.h \
+  Remove.h DecomposeInSimplex.h Smooth.h Transform.h Triangulate.h Warp.h \
+  StructuralSolver.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Common/GmshUI.h Eigenvectors.h Eigenvalues.h Lambda2.h Evaluate.h \
   ../Common/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
   Probe.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h DecomposeInSimplex.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../Graphics/Iso.h \
   ../Common/Context.h ../DataStr/Malloc.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 CutPlane.o: CutPlane.cpp CutPlane.h Levelset.h Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 CutSphere.o: CutSphere.cpp CutSphere.h Levelset.h Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 CutMap.o: CutMap.cpp CutMap.h Levelset.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Smooth.o: Smooth.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Smooth.h ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Smooth.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 CutParametric.o: CutParametric.cpp ../Common/OctreePost.h \
   ../Common/Octree.h ../Common/OctreeInternals.h CutParametric.h Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  ../contrib/MathEval/matheval.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h ../contrib/MathEval/matheval.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Lambda2.o: Lambda2.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Lambda2.h ../Common/Context.h \
-  ../Common/ShapeFunctions.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Lambda2.h ../Common/Context.h ../Common/ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Eigenvectors.o: Eigenvectors.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h Eigenvectors.h ../Common/Context.h \
   ../DataStr/Malloc.h ../Numeric/EigSolve.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Eigenvalues.o: Eigenvalues.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h Eigenvalues.h ../Common/Context.h \
   ../DataStr/Malloc.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 StreamLines.o: StreamLines.cpp ../Common/OctreePost.h ../Common/Octree.h \
   ../Common/OctreeInternals.h StreamLines.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
   ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 CutGrid.o: CutGrid.cpp ../Common/OctreePost.h ../Common/Octree.h \
   ../Common/OctreeInternals.h CutGrid.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
   ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Transform.o: Transform.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h Transform.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Triangulate.o: Triangulate.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
   Plugin.h ../Common/Options.h ../Common/Views.h ../Common/ColorTable.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Triangulate.h ../Common/Context.h ../Geo/Geo.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Triangulate.h ../Common/Context.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
   ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Mesh/Utils.h ../Mesh/Vertex.h ../Mesh/Mesh.h ../Mesh/Create.h \
   ../Mesh/Vertex.h ../Mesh/Mesh.h ../contrib/Triangle/triangle.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Warp.o: Warp.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Warp.h ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Warp.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 StructuralSolver.o: StructuralSolver.cpp StructuralSolver.h ../Geo/Geo.h \
   ../DataStr/List.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Geo/ExtrudeParams.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Mesh/Metric.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
-  Plugin.h ../Common/Options.h ../Common/Message.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/VertexArray.h \
+  ../Common/SmoothNormals.h ../Numeric/Numeric.h ../Common/GmshDefines.h \
+  ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
+  ../Mesh/Matrix.h Plugin.h ../Common/Options.h ../Common/Message.h \
+  ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h ../Common/GmshUI.h ../Common/Context.h \
-  ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../Graphics/Draw.h ../Mesh/Utils.h ../Mesh/Vertex.h ../Mesh/Mesh.h \
-  ../Fltk/Shortcut_Window.h
+  ../Common/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/GmshUI.h \
+  ../Common/Context.h ../DataStr/Tools.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../Graphics/Draw.h ../Mesh/Utils.h ../Mesh/Vertex.h \
+  ../Mesh/Mesh.h ../Fltk/Shortcut_Window.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Skin.o: Skin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Common/Context.h ../DataStr/Malloc.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Skin.h ../DataStr/Tree.h ../DataStr/avl.h ../Common/Context.h \
+  ../DataStr/Malloc.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Extract.o: Extract.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Extract.h ../Common/Context.h \
-  ../DataStr/Malloc.h ../contrib/MathEval/matheval.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Extract.h ../Common/Context.h ../DataStr/Malloc.h \
+  ../contrib/MathEval/matheval.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 ExtractElements.o: ExtractElements.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ExtractElements.h ../Common/Context.h \
   ../DataStr/Malloc.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 ExtractEdges.o: ExtractEdges.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ExtractEdges.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../Common/Context.h ../DataStr/Malloc.h ../Mesh/BDS.h \
   ../contrib/ANN/include/ANN/ANN.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 DecomposeInSimplex.o: DecomposeInSimplex.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h DecomposeInSimplex.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../Common/Context.h ../DataStr/Malloc.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Evaluate.o: Evaluate.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Evaluate.h ../Common/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h ../Common/Context.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Evaluate.h ../Common/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h ../Common/Context.h \
   ../contrib/MathEval/matheval.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Integrate.o: Integrate.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h Integrate.h ../Common/Context.h \
   ../Common/ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Gradient.o: Gradient.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Gradient.h ../Common/Context.h \
-  ../Common/ShapeFunctions.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Gradient.h ../Common/Context.h ../Common/ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Curl.o: Curl.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Curl.h ../Common/Context.h \
-  ../Common/ShapeFunctions.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Curl.h ../Common/Context.h ../Common/ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Divergence.o: Divergence.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h Divergence.h ../Common/Context.h \
   ../Common/ShapeFunctions.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Annotate.o: Annotate.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Annotate.h ../Common/Context.h \
-  ../Common/GmshUI.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h ../Mesh/Mesh.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Face.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h \
-  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Geo/ExtrudeParams.h \
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Annotate.h ../Common/Context.h ../Common/GmshUI.h ../Fltk/GUI.h \
+  ../Fltk/Opengl_Window.h ../Mesh/Mesh.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Geo/ExtrudeParams.h ../Common/GmshDefines.h \
   ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \
   ../Mesh/Matrix.h ../Fltk/Colorbar_Window.h ../Fltk/Popup_Button.h \
   ../Graphics/Draw.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Remove.o: Remove.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/GmshMatrix.h /sw/include/gsl/gsl_linalg.h \
-  /sw/include/gsl/gsl_mode.h /sw/include/gsl/gsl_permutation.h \
-  /sw/include/gsl/gsl_types.h /sw/include/gsl/gsl_errno.h \
-  /sw/include/gsl/gsl_check_range.h /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
-  ../Common/GmshMatrix.h Remove.h ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/AdaptiveViews.h ../Common/GmshMatrix.h \
+  Remove.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 Probe.o: Probe.cpp Probe.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
   ../Graphics/Draw.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
-  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Mesh/Vertex.h \
-  ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
+  ../Geo/ExtrudeParams.h ../Common/GmshDefines.h ../Mesh/Metric.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Common/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 HarmonicToTime.o: HarmonicToTime.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h HarmonicToTime.h ../Common/Context.h
+# 1 "/Users/geuzaine/.gmsh/Plugin//"
 ModulusPhase.o: ModulusPhase.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Numeric/Numeric.h ../Common/GmshMatrix.h \
-  /sw/include/gsl/gsl_linalg.h /sw/include/gsl/gsl_mode.h \
-  /sw/include/gsl/gsl_permutation.h /sw/include/gsl/gsl_types.h \
-  /sw/include/gsl/gsl_errno.h /sw/include/gsl/gsl_check_range.h \
-  /sw/include/gsl/gsl_vector.h \
-  /sw/include/gsl/gsl_vector_complex_long_double.h \
-  /sw/include/gsl/gsl_complex.h /sw/include/gsl/gsl_vector_long_double.h \
-  /sw/include/gsl/gsl_block_long_double.h \
-  /sw/include/gsl/gsl_vector_complex.h \
-  /sw/include/gsl/gsl_block_complex_long_double.h \
-  /sw/include/gsl/gsl_vector_complex_double.h \
-  /sw/include/gsl/gsl_vector_double.h /sw/include/gsl/gsl_block_double.h \
-  /sw/include/gsl/gsl_block_complex_double.h \
-  /sw/include/gsl/gsl_vector_complex_float.h \
-  /sw/include/gsl/gsl_vector_float.h /sw/include/gsl/gsl_block_float.h \
-  /sw/include/gsl/gsl_block_complex_float.h \
-  /sw/include/gsl/gsl_vector_ulong.h /sw/include/gsl/gsl_block_ulong.h \
-  /sw/include/gsl/gsl_vector_long.h /sw/include/gsl/gsl_block_long.h \
-  /sw/include/gsl/gsl_vector_uint.h /sw/include/gsl/gsl_block_uint.h \
-  /sw/include/gsl/gsl_vector_int.h /sw/include/gsl/gsl_block_int.h \
-  /sw/include/gsl/gsl_vector_ushort.h /sw/include/gsl/gsl_block_ushort.h \
-  /sw/include/gsl/gsl_vector_short.h /sw/include/gsl/gsl_block_short.h \
-  /sw/include/gsl/gsl_vector_uchar.h /sw/include/gsl/gsl_block_uchar.h \
-  /sw/include/gsl/gsl_vector_char.h /sw/include/gsl/gsl_block_char.h \
-  /sw/include/gsl/gsl_matrix.h \
-  /sw/include/gsl/gsl_matrix_complex_long_double.h \
-  /sw/include/gsl/gsl_matrix_complex_double.h \
-  /sw/include/gsl/gsl_matrix_complex_float.h \
-  /sw/include/gsl/gsl_matrix_long_double.h \
-  /sw/include/gsl/gsl_matrix_double.h /sw/include/gsl/gsl_matrix_float.h \
-  /sw/include/gsl/gsl_matrix_ulong.h /sw/include/gsl/gsl_matrix_long.h \
-  /sw/include/gsl/gsl_matrix_uint.h /sw/include/gsl/gsl_matrix_int.h \
-  /sw/include/gsl/gsl_matrix_ushort.h /sw/include/gsl/gsl_matrix_short.h \
-  /sw/include/gsl/gsl_matrix_uchar.h /sw/include/gsl/gsl_matrix_char.h \
-  /sw/include/gsl/gsl_blas.h /sw/include/gsl/gsl_blas_types.h \
-  /sw/include/gsl/gsl_cblas.h ../Common/AdaptiveViews.h \
+  ../Numeric/Numeric.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
   ../Common/GmshMatrix.h ModulusPhase.h ../Common/Context.h
diff --git a/Plugin/StructuralSolver.cpp b/Plugin/StructuralSolver.cpp
index a6beb2f52a..08fc9492d3 100644
--- a/Plugin/StructuralSolver.cpp
+++ b/Plugin/StructuralSolver.cpp
@@ -23,7 +23,8 @@ extern "C"
 Structural_BeamSection:: ~Structural_BeamSection()
 {
   Mesh *kk = THEM;
-  Init_Mesh(&m);
+  THEM = &m;
+  Init_Mesh();
   THEM=kk;
 }
 
@@ -31,9 +32,9 @@ Structural_BeamSection:: Structural_BeamSection( const char *direct, std::string
 : name (_name)
 {    
   Mesh *kk = THEM;
-
-  Init_Mesh0(&m);
-  Init_Mesh(&m);
+  THEM = &m;
+  Init_Mesh0();
+  Init_Mesh();
   //  THEM=&m;
 
   char temp[256];
diff --git a/contrib/ANN/Makefile b/contrib/ANN/Makefile
index dceabffbf8..63bb514385 100644
--- a/contrib/ANN/Makefile
+++ b/contrib/ANN/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.7 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -63,38 +63,52 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 ANN.o: src/ANN.cpp include/ANN/ANNx.h include/ANN/ANN.h \
   include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 bd_fix_rad_search.o: src/bd_fix_rad_search.cpp src/bd_tree.h \
   include/ANN/ANNx.h include/ANN/ANN.h src/kd_tree.h \
   src/kd_fix_rad_search.h src/kd_util.h src/pr_queue_k.h \
   include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 bd_pr_search.o: src/bd_pr_search.cpp src/bd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/kd_tree.h src/kd_pr_search.h src/kd_util.h \
   src/pr_queue.h include/ANN/ANNperf.h src/pr_queue_k.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 bd_search.o: src/bd_search.cpp src/bd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/kd_tree.h src/kd_search.h src/kd_util.h \
   src/pr_queue_k.h include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 bd_tree.o: src/bd_tree.cpp src/bd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/kd_tree.h src/kd_util.h src/kd_split.h \
   include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 brute.o: src/brute.cpp include/ANN/ANNx.h include/ANN/ANN.h \
   src/pr_queue_k.h include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_dump.o: src/kd_dump.cpp src/kd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/bd_tree.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_fix_rad_search.o: src/kd_fix_rad_search.cpp src/kd_fix_rad_search.h \
   src/kd_tree.h include/ANN/ANNx.h include/ANN/ANN.h src/kd_util.h \
   src/pr_queue_k.h include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_pr_search.o: src/kd_pr_search.cpp src/kd_pr_search.h src/kd_tree.h \
   include/ANN/ANNx.h include/ANN/ANN.h src/kd_util.h src/pr_queue.h \
   include/ANN/ANNperf.h src/pr_queue_k.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_search.o: src/kd_search.cpp src/kd_search.h src/kd_tree.h \
   include/ANN/ANNx.h include/ANN/ANN.h src/kd_util.h src/pr_queue_k.h \
   include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_split.o: src/kd_split.cpp src/kd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/kd_util.h src/kd_split.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_tree.o: src/kd_tree.cpp src/kd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h src/kd_split.h src/kd_util.h include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 kd_util.o: src/kd_util.cpp src/kd_util.h src/kd_tree.h include/ANN/ANNx.h \
   include/ANN/ANN.h include/ANN/ANNperf.h
+# 1 "/Users/geuzaine/.gmsh/contrib/ANN//"
 perf.o: src/perf.cpp include/ANN/ANN.h include/ANN/ANNperf.h
diff --git a/contrib/MathEval/Makefile b/contrib/MathEval/Makefile
index b45f2844fc..3eb3a877ce 100644
--- a/contrib/MathEval/Makefile
+++ b/contrib/MathEval/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.7 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -61,13 +61,19 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 matheval.o: matheval.cpp common.h ../../DataStr/Malloc.h matheval.h \
   node.h symbol_table.h
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 node.o: node.cpp common.h ../../DataStr/Malloc.h node.h symbol_table.h
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 scanner.yy.o: scanner.yy.cpp common.h ../../DataStr/Malloc.h node.h \
   symbol_table.h parser.tab.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 parser.tab.o: parser.tab.cpp common.h ../../DataStr/Malloc.h node.h \
   symbol_table.h
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 symbol_table.o: symbol_table.cpp common.h ../../DataStr/Malloc.h \
   symbol_table.h xmath.h
+# 1 "/Users/geuzaine/.gmsh/contrib/MathEval//"
 xmath.o: xmath.cpp xmath.h
diff --git a/contrib/Metis/Makefile b/contrib/Metis/Makefile
index 114460a19c..987807aa04 100644
--- a/contrib/Metis/Makefile
+++ b/contrib/Metis/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.7 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -101,65 +101,117 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 balance.o: balance.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 fm.o: fm.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kwayfm.o: kwayfm.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mcoarsen.o: mcoarsen.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 minitpart2.o: minitpart2.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mpmetis.o: mpmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 pmetis.o: pmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 subdomains.o: subdomains.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 bucketsort.o: bucketsort.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 fortran.o: fortran.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kwayrefine.o: kwayrefine.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 memory.o: memory.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 minitpart.o: minitpart.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mrefine2.o: mrefine2.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 pqueue.o: pqueue.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 timing.o: timing.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 ccgraph.o: ccgraph.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 frename.o: frename.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kwayvolfm.o: kwayvolfm.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mesh.o: mesh.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mkmetis.o: mkmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mrefine.o: mrefine.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 refine.o: refine.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 util.o: util.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 coarsen.o: coarsen.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 graph.o: graph.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kwayvolrefine.o: kwayvolrefine.c metis.h defs.h struct.h macros.h \
   rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 meshpart.o: meshpart.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mkwayfmh.o: mkwayfmh.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mutil.o: mutil.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 separator.o: separator.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 compress.o: compress.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 initpart.o: initpart.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 match.o: match.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mfm2.o: mfm2.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mkwayrefine.o: mkwayrefine.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 myqsort.o: myqsort.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 sfm.o: sfm.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 debug.o: debug.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kmetis.o: kmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mbalance2.o: mbalance2.c metis.h defs.h struct.h macros.h rename.h \
   proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mfm.o: mfm.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mmatch.o: mmatch.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 ometis.o: ometis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 srefine.o: srefine.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 estmem.o: estmem.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 kvmetis.o: kvmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mbalance.o: mbalance.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mincover.o: mincover.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 mmd.o: mmd.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 parmetis.o: parmetis.c metis.h defs.h struct.h macros.h rename.h proto.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Metis//"
 stat.o: stat.c metis.h defs.h struct.h macros.h rename.h proto.h
diff --git a/contrib/Netgen/Makefile b/contrib/Netgen/Makefile
index 31102a3502..348fa8eda5 100644
--- a/contrib/Netgen/Makefile
+++ b/contrib/Netgen/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.7 2006-07-10 12:16:35 remacle Exp $
+# $Id: Makefile,v 1.8 2006-07-12 07:24:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
 #
@@ -148,6 +148,7 @@ depend:
 	rm -f Makefile.new
 
 # DO NOT DELETE THIS LINE
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 linopt.o: libsrc/opti/linopt.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -168,6 +169,7 @@ linopt.o: libsrc/opti/linopt.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 bfgs.o: libsrc/opti/bfgs.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -188,6 +190,7 @@ bfgs.o: libsrc/opti/bfgs.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 linsearch.o: libsrc/opti/linsearch.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -208,6 +211,7 @@ linsearch.o: libsrc/opti/linsearch.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 global.o: libsrc/meshing/global.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -250,6 +254,7 @@ global.o: libsrc/meshing/global.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 bisect.o: libsrc/meshing/bisect.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -292,6 +297,7 @@ bisect.o: libsrc/meshing/bisect.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -351,6 +357,7 @@ meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 refine.o: libsrc/meshing/refine.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -393,6 +400,7 @@ refine.o: libsrc/meshing/refine.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 ruler3.o: libsrc/meshing/ruler3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -435,6 +443,7 @@ ruler3.o: libsrc/meshing/ruler3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 improve3.o: libsrc/meshing/improve3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -477,6 +486,7 @@ improve3.o: libsrc/meshing/improve3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -519,6 +529,7 @@ smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 adfront3.o: libsrc/meshing/adfront3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -561,10 +572,15 @@ adfront3.o: libsrc/meshing/adfront3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 tetrarls.o: libsrc/meshing/tetrarls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 prism2rls.o: libsrc/meshing/prism2rls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 pyramidrls.o: libsrc/meshing/pyramidrls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 pyramid2rls.o: libsrc/meshing/pyramid2rls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 netrule3.o: libsrc/meshing/netrule3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -607,6 +623,7 @@ netrule3.o: libsrc/meshing/netrule3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 ruler2.o: libsrc/meshing/ruler2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -649,6 +666,7 @@ ruler2.o: libsrc/meshing/ruler2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshclass.o: libsrc/meshing/meshclass.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -691,6 +709,7 @@ meshclass.o: libsrc/meshing/meshclass.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 improve2.o: libsrc/meshing/improve2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -733,6 +752,7 @@ improve2.o: libsrc/meshing/improve2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -775,6 +795,7 @@ smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 adfront2.o: libsrc/meshing/adfront2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -817,6 +838,7 @@ adfront2.o: libsrc/meshing/adfront2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 netrule2.o: libsrc/meshing/netrule2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -859,7 +881,9 @@ netrule2.o: libsrc/meshing/netrule2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 triarls.o: libsrc/meshing/triarls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geomsearch.o: libsrc/meshing/geomsearch.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -902,6 +926,7 @@ geomsearch.o: libsrc/meshing/geomsearch.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 secondorder.o: libsrc/meshing/secondorder.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -944,6 +969,7 @@ secondorder.o: libsrc/meshing/secondorder.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshtype.o: libsrc/meshing/meshtype.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -986,6 +1012,7 @@ meshtype.o: libsrc/meshing/meshtype.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 parser3.o: libsrc/meshing/parser3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1028,6 +1055,7 @@ parser3.o: libsrc/meshing/parser3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshing2.o: libsrc/meshing/meshing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1070,7 +1098,9 @@ meshing2.o: libsrc/meshing/meshing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 quadrls.o: libsrc/meshing/quadrls.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 specials.o: libsrc/meshing/specials.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1113,6 +1143,7 @@ specials.o: libsrc/meshing/specials.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 parser2.o: libsrc/meshing/parser2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1155,6 +1186,7 @@ parser2.o: libsrc/meshing/parser2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshing3.o: libsrc/meshing/meshing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1197,6 +1229,7 @@ meshing3.o: libsrc/meshing/meshing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshfunc.o: libsrc/meshing/meshfunc.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1239,6 +1272,7 @@ meshfunc.o: libsrc/meshing/meshfunc.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 localh.o: libsrc/meshing/localh.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1281,6 +1315,7 @@ localh.o: libsrc/meshing/localh.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 improve2gen.o: libsrc/meshing/improve2gen.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1323,6 +1358,7 @@ improve2gen.o: libsrc/meshing/improve2gen.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 delaunay.o: libsrc/meshing/delaunay.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1365,6 +1401,7 @@ delaunay.o: libsrc/meshing/delaunay.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 boundarylayer.o: libsrc/meshing/boundarylayer.cpp \
   libsrc/include/mystdlib.h libsrc/meshing/meshing.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -1407,6 +1444,7 @@ boundarylayer.o: libsrc/meshing/boundarylayer.cpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 msghandler.o: libsrc/meshing/msghandler.cpp libsrc/include/meshing.hpp \
   libsrc/include/../meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
@@ -1461,6 +1499,7 @@ msghandler.o: libsrc/meshing/msghandler.cpp libsrc/include/meshing.hpp \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshfunc2d.o: libsrc/meshing/meshfunc2d.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1503,6 +1542,7 @@ meshfunc2d.o: libsrc/meshing/meshfunc2d.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 topology.o: libsrc/meshing/topology.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1545,6 +1585,7 @@ topology.o: libsrc/meshing/topology.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 clusters.o: libsrc/meshing/clusters.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1587,6 +1628,7 @@ clusters.o: libsrc/meshing/clusters.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 curvedelems.o: libsrc/meshing/curvedelems.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1629,6 +1671,7 @@ curvedelems.o: libsrc/meshing/curvedelems.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 curvedelems2.o: libsrc/meshing/curvedelems2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1671,6 +1714,7 @@ curvedelems2.o: libsrc/meshing/curvedelems2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 hprefinement.o: libsrc/meshing/hprefinement.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1715,6 +1759,7 @@ hprefinement.o: libsrc/meshing/hprefinement.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/specials.hpp libsrc/meshing/hpref_trig.hpp \
   libsrc/meshing/hpref_quad.hpp libsrc/meshing/hpref_tet.hpp \
   libsrc/meshing/hpref_prism.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1792,6 +1837,7 @@ nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp libsrc/interface/nglib.h
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geomtest3d.o: libsrc/gprim/geomtest3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1820,6 +1866,7 @@ geomtest3d.o: libsrc/gprim/geomtest3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geom2d.o: libsrc/gprim/geom2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1845,6 +1892,7 @@ geom2d.o: libsrc/gprim/geom2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geom3d.o: libsrc/gprim/geom3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1870,6 +1918,7 @@ geom3d.o: libsrc/gprim/geom3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 adtree.o: libsrc/gprim/adtree.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1895,6 +1944,7 @@ adtree.o: libsrc/gprim/adtree.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 transform3d.o: libsrc/gprim/transform3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1923,6 +1973,7 @@ transform3d.o: libsrc/gprim/transform3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geomfuncs.o: libsrc/gprim/geomfuncs.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -1948,6 +1999,7 @@ geomfuncs.o: libsrc/gprim/geomfuncs.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 polynomial.o: libsrc/linalg/polynomial.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -1969,6 +2021,7 @@ polynomial.o: libsrc/linalg/polynomial.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 densemat.o: libsrc/linalg/densemat.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -1990,7 +2043,9 @@ densemat.o: libsrc/linalg/densemat.cpp libsrc/include/mystdlib.h \
   libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 vector.o: libsrc/linalg/vector.cpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 algprim.o: libsrc/csg/algprim.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2059,6 +2114,7 @@ algprim.o: libsrc/csg/algprim.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 brick.o: libsrc/csg/brick.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2127,6 +2183,7 @@ brick.o: libsrc/csg/brick.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 manifold.o: libsrc/csg/manifold.cpp libsrc/include/csg.hpp \
   libsrc/include/../csg/csg.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
@@ -2194,6 +2251,7 @@ manifold.o: libsrc/csg/manifold.cpp libsrc/include/csg.hpp \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 bspline2d.o: libsrc/csg/bspline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2261,6 +2319,7 @@ bspline2d.o: libsrc/csg/bspline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshsurf.o: libsrc/csg/meshsurf.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2328,6 +2387,7 @@ meshsurf.o: libsrc/csg/meshsurf.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 csgeom.o: libsrc/csg/csgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -2395,6 +2455,7 @@ csgeom.o: libsrc/csg/csgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 polyhedra.o: libsrc/csg/polyhedra.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2463,6 +2524,7 @@ polyhedra.o: libsrc/csg/polyhedra.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 curve2d.o: libsrc/csg/curve2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -2530,6 +2592,7 @@ curve2d.o: libsrc/csg/curve2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 singularref.o: libsrc/csg/singularref.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -2597,6 +2660,7 @@ singularref.o: libsrc/csg/singularref.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 edgeflw.o: libsrc/csg/edgeflw.cpp libsrc/include/mystdlib.h \
   libsrc/include/meshing.hpp libsrc/include/../meshing/meshing.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2663,6 +2727,7 @@ edgeflw.o: libsrc/csg/edgeflw.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 solid.o: libsrc/csg/solid.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2731,6 +2796,7 @@ solid.o: libsrc/csg/solid.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 explicitcurve2d.o: libsrc/csg/explicitcurve2d.cpp \
   libsrc/include/mystdlib.h libsrc/include/csg.hpp \
   libsrc/include/../csg/csg.hpp libsrc/include/myadt.hpp \
@@ -2799,6 +2865,7 @@ explicitcurve2d.o: libsrc/csg/explicitcurve2d.cpp \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 specpoin.o: libsrc/csg/specpoin.cpp libsrc/include/mystdlib.h \
   libsrc/include/meshing.hpp libsrc/include/../meshing/meshing.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -2865,6 +2932,7 @@ specpoin.o: libsrc/csg/specpoin.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 gencyl.o: libsrc/csg/gencyl.cpp libsrc/include/linalg.hpp \
   libsrc/include/../linalg/linalg.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
@@ -2933,6 +3001,7 @@ gencyl.o: libsrc/csg/gencyl.cpp libsrc/include/linalg.hpp \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 revolution.o: libsrc/csg/revolution.cpp libsrc/include/mystdlib.h \
   libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -3001,6 +3070,7 @@ revolution.o: libsrc/csg/revolution.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 genmesh.o: libsrc/csg/genmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3068,6 +3138,7 @@ genmesh.o: libsrc/csg/genmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 spline3d.o: libsrc/csg/spline3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3135,6 +3206,7 @@ spline3d.o: libsrc/csg/spline3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3203,6 +3275,7 @@ surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/../linalg/linalg.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3270,6 +3343,7 @@ identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 triapprox.o: libsrc/csg/triapprox.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3337,6 +3411,7 @@ triapprox.o: libsrc/csg/triapprox.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -3408,6 +3483,7 @@ geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -3476,6 +3552,7 @@ spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \
   libsrc/include/mystdlib.h libsrc/include/csg.hpp \
   libsrc/include/../csg/csg.hpp libsrc/include/myadt.hpp \
@@ -3546,6 +3623,7 @@ splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp \
   libsrc/geom2d/splinegeometry2.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -3617,6 +3695,7 @@ genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \
   libsrc/include/mystdlib.h libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -3676,6 +3755,7 @@ meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3734,6 +3814,7 @@ stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3792,6 +3873,7 @@ stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3850,6 +3932,7 @@ stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3908,6 +3991,7 @@ stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3966,6 +4050,7 @@ stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4024,6 +4109,7 @@ stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
   libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
   libsrc/stlgeom/meshstlsurface.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 moveablemem.o: libsrc/general/moveablemem.cpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4041,6 +4127,7 @@ moveablemem.o: libsrc/general/moveablemem.cpp libsrc/include/myadt.hpp \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 ngexception.o: libsrc/general/ngexception.cpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4058,6 +4145,7 @@ ngexception.o: libsrc/general/ngexception.cpp libsrc/include/myadt.hpp \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 table.o: libsrc/general/table.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4075,6 +4163,7 @@ table.o: libsrc/general/table.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 optmem.o: libsrc/general/optmem.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4092,6 +4181,7 @@ optmem.o: libsrc/general/optmem.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 spbita2d.o: libsrc/general/spbita2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4109,6 +4199,7 @@ spbita2d.o: libsrc/general/spbita2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 hashtabl.o: libsrc/general/hashtabl.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4126,6 +4217,7 @@ hashtabl.o: libsrc/general/hashtabl.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 sort.o: libsrc/general/sort.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4143,6 +4235,7 @@ sort.o: libsrc/general/sort.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 flags.o: libsrc/general/flags.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4160,6 +4253,7 @@ flags.o: libsrc/general/flags.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 seti.o: libsrc/general/seti.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4177,6 +4271,7 @@ seti.o: libsrc/general/seti.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 bitarray.o: libsrc/general/bitarray.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4194,6 +4289,7 @@ bitarray.o: libsrc/general/bitarray.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 array.o: libsrc/general/array.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4211,6 +4307,7 @@ array.o: libsrc/general/array.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 symbolta.o: libsrc/general/symbolta.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4228,6 +4325,7 @@ symbolta.o: libsrc/general/symbolta.cpp libsrc/include/mystdlib.h \
   libsrc/include/../general/autoptr.hpp \
   libsrc/include/../general/sort.hpp libsrc/include/../general/stack.hpp \
   libsrc/include/../general/mystring.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 mystring.o: libsrc/general/mystring.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -4256,6 +4354,7 @@ mystring.o: libsrc/general/mystring.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp
+# 1 "/Users/geuzaine/.gmsh/contrib/Netgen//"
 nglib_addon.o: nglib_addon.cpp libsrc/include/meshing.hpp \
   libsrc/include/../meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
-- 
GitLab