From ba2d8b10ab7efbbe38e5fab741258033ea663aa6 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sun, 22 Apr 2001 18:13:03 +0000
Subject: [PATCH] PostSimplex clean-up + make depend

---
 Adapt/Makefile           |   7 +-
 Common/DefaultOptions.h  |   3 +
 Common/Makefile          |  54 ++--
 Common/Options.cpp       |  38 ++-
 Common/Options.h         |   3 +
 Common/Views.cpp         |  39 ++-
 Common/Views.h           |   1 +
 Fltk/Callbacks.cpp       |   7 +-
 Fltk/GUI.cpp             |  29 +-
 Fltk/Makefile            | 137 ++++----
 Fltk/Message.cpp         |   5 +-
 Geo/Makefile             |  85 +++--
 Graphics/Makefile        | 190 +++++++-----
 Graphics/Mesh.cpp        |   8 +-
 Graphics/Post.cpp        |  66 +++-
 Graphics/PostSimplex.cpp | 656 +++++++++++++++++++++------------------
 Graphics/Scale.cpp       |  27 +-
 Mesh/Makefile            | 330 ++++++++++----------
 Motif/Makefile           | 229 ++++++++------
 Parser/Makefile          |  44 +--
 Parser/OpenFile.cpp      |  13 +-
 Plugin/Makefile          |  14 +-
 doc/VERSIONS             |   4 +-
 jpeg/Makefile            |  53 ++--
 24 files changed, 1143 insertions(+), 899 deletions(-)

diff --git a/Adapt/Makefile b/Adapt/Makefile
index 202dd45fe6..047e08aa61 100644
--- a/Adapt/Makefile
+++ b/Adapt/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.13 2001-03-05 23:14:57 remacle Exp $
+# $Id: Makefile,v 1.14 2001-04-22 18:13:02 geuzaine Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -59,9 +59,8 @@ depend:
 
 # DO NOT DELETE THIS LINE
 Adapt.o: Adapt.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h Adapt.h nrutil.h \
- ../Common/Const.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Adapt.h nrutil.h ../Common/Const.h
 mnbrak.o: mnbrak.cpp nrutil.h ../Common/Const.h
 brent.o: brent.cpp nrutil.h ../Common/Const.h
 nrutil.o: nrutil.cpp
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 0435792db5..236c21d02e 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -249,6 +249,9 @@ StringXNumber ViewOptions_Number[] = {
   { F|O, "DrawLines" , opt_view_draw_lines , 1. }, 
   { F|O, "DrawTriangles" , opt_view_draw_triangles , 1. }, 
   { F|O, "DrawTetrahedra" , opt_view_draw_tetrahedra , 1. }, 
+  { F|O, "DrawScalars" , opt_view_draw_scalars , 1. }, 
+  { F|O, "DrawVectors" , opt_view_draw_vectors , 1. }, 
+  { F|O, "DrawTensors" , opt_view_draw_tensors , 1. }, 
   { F|O, "TransparentScale" , opt_view_transparent_scale , 1. }, 
   { F|O, "ScaleType" , opt_view_scale_type , DRAW_POST_LINEAR }, 
   { F|O, "RangeType" , opt_view_range_type , DRAW_POST_DEFAULT }, 
diff --git a/Common/Makefile b/Common/Makefile
index b366438b2a..cf3d15c166 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.16 2001-03-05 23:14:57 remacle Exp $
+# $Id: Makefile,v 1.17 2001-04-22 18:13:02 geuzaine Exp $
 #
 # Makefile for "libCommon.a"
 #
@@ -60,30 +60,36 @@ depend:
 
 # DO NOT DELETE THIS LINE
 Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
- ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h Const.h ../Geo/Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Context.h \
- Options.h DefaultOptions.h trackball.c trackball.h
-Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
- ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h Views.h Const.h ColorTable.h Context.h Options.h
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  Const.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
+  ../Common/ColorTable.h Context.h Options.h DefaultOptions.h trackball.c \
+  trackball.h
+Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h Views.h Const.h \
+  ColorTable.h Context.h Options.h
 Options.o: Options.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
- ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Context.h \
- Const.h Options.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
- ../Fltk/Colorbar_Window.h
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Context.h \
+  Const.h Options.h ../Fltk/GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H ../Fltk/Opengl_Window.h \
+  ../Fltk/Colorbar_Window.h
 GetOptions.o: GetOptions.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
- ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h GmshUI.h GmshVersion.h Const.h Context.h Options.h \
- ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Views.h \
- ColorTable.h ../Parser/OpenFile.h ../Common/Const.h
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h GmshVersion.h \
+  Const.h Context.h Options.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Views.h ColorTable.h \
+  ../Parser/OpenFile.h ../Common/Const.h
 Timer.o: Timer.cpp
 ColorTable.o: ColorTable.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
- ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
- ../DataStr/Tools.h ColorTable.h Context.h Const.h
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ColorTable.h Context.h Const.h
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 7bedf43a56..46d8d86d20 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.11 2001-04-14 06:55:15 geuzaine Exp $
+// $Id: Options.cpp,v 1.12 2001-04-22 18:13:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -1721,6 +1721,42 @@ double opt_view_draw_tetrahedra(OPT_ARGS_NUM){
 #endif
   return v->DrawTetrahedra;
 }
+double opt_view_draw_scalars(OPT_ARGS_NUM){
+  GET_VIEW(0.) ;
+  if(action & GMSH_SET){
+    v->DrawScalars = (int)val;
+    v->Changed = 1;
+  }
+#ifdef _FLTK
+  if(WID && (action & GMSH_GUI) && (num == WID->view_number))
+    WID->view_butt[22]->value(v->DrawScalars);
+#endif
+  return v->DrawScalars;
+}
+double opt_view_draw_vectors(OPT_ARGS_NUM){
+  GET_VIEW(0.) ;
+  if(action & GMSH_SET){
+    v->DrawVectors = (int)val;
+    v->Changed = 1;
+  }
+#ifdef _FLTK
+  if(WID && (action & GMSH_GUI) && (num == WID->view_number))
+    WID->view_butt[23]->value(v->DrawVectors);
+#endif
+  return v->DrawVectors;
+}
+double opt_view_draw_tensors(OPT_ARGS_NUM){
+  GET_VIEW(0.) ;
+  if(action & GMSH_SET){
+    v->DrawTensors = (int)val;
+    v->Changed = 1;
+  }
+#ifdef _FLTK
+  if(WID && (action & GMSH_GUI) && (num == WID->view_number))
+    WID->view_butt[24]->value(v->DrawTensors);
+#endif
+  return v->DrawTensors;
+}
 double opt_view_transparent_scale(OPT_ARGS_NUM){
   GET_VIEW(0.) ;
   if(action & GMSH_SET){
diff --git a/Common/Options.h b/Common/Options.h
index dcfd7d880b..d984dcb4ef 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -210,6 +210,9 @@ double opt_view_draw_points(OPT_ARGS_NUM);
 double opt_view_draw_lines(OPT_ARGS_NUM);
 double opt_view_draw_triangles(OPT_ARGS_NUM);
 double opt_view_draw_tetrahedra(OPT_ARGS_NUM);
+double opt_view_draw_scalars(OPT_ARGS_NUM);
+double opt_view_draw_vectors(OPT_ARGS_NUM);
+double opt_view_draw_tensors(OPT_ARGS_NUM);
 double opt_view_transparent_scale(OPT_ARGS_NUM);
 double opt_view_scale_type(OPT_ARGS_NUM);
 double opt_view_range_type(OPT_ARGS_NUM);
diff --git a/Common/Views.cpp b/Common/Views.cpp
index ab19c31d46..b98a73c4b7 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.35 2001-04-17 06:55:47 geuzaine Exp $
+// $Id: Views.cpp,v 1.36 2001-04-22 18:13:02 geuzaine Exp $
 
 #include <set>
 #include "Gmsh.h"
@@ -8,7 +8,7 @@
 #include "ColorTable.h"
 
 // this static stuff should be removed
-int         Post_ViewForceNumber = 0, Post_ViewComputeBBox = 0;
+int         Post_ViewForceNumber = 0;
 List_T     *Post_ViewList = NULL;
 Post_View  *Post_ViewReference = NULL, *ActualView;
 
@@ -121,15 +121,13 @@ void Stat_ScalarSimplex(int nbnod, int N, double *X, double *Y, double *Z, doubl
     if(V[i] > ActualView->Max) ActualView->Max = V[i] ;
   }
 
-  if(Post_ViewComputeBBox){
-    for(i=0 ; i<nbnod ; i++){
-      if(X[i] < ActualView->BBox[0]) ActualView->BBox[0] = X[i] ;
-      if(X[i] > ActualView->BBox[1]) ActualView->BBox[1] = X[i] ;
-      if(Y[i] < ActualView->BBox[2]) ActualView->BBox[2] = Y[i] ;
-      if(Y[i] > ActualView->BBox[3]) ActualView->BBox[3] = Y[i] ;
-      if(Z[i] < ActualView->BBox[4]) ActualView->BBox[4] = Z[i] ;
-      if(Z[i] > ActualView->BBox[5]) ActualView->BBox[5] = Z[i] ;
-    }
+  for(i=0 ; i<nbnod ; i++){
+    if(X[i] < ActualView->BBox[0]) ActualView->BBox[0] = X[i] ;
+    if(X[i] > ActualView->BBox[1]) ActualView->BBox[1] = X[i] ;
+    if(Y[i] < ActualView->BBox[2]) ActualView->BBox[2] = Y[i] ;
+    if(Y[i] > ActualView->BBox[3]) ActualView->BBox[3] = Y[i] ;
+    if(Z[i] < ActualView->BBox[4]) ActualView->BBox[4] = Z[i] ;
+    if(Z[i] > ActualView->BBox[5]) ActualView->BBox[5] = Z[i] ;
   }
 
   switch(nbnod){
@@ -159,15 +157,13 @@ void Stat_VectorSimplex(int nbnod, int N, double *X, double *Y, double *Z, doubl
     if(l0 > ActualView->Max) ActualView->Max = l0 ;
   }
 
-  if(Post_ViewComputeBBox){
-    for(i=0 ; i<nbnod ; i++){
-      if(X[i] < ActualView->BBox[0]) ActualView->BBox[0] = X[i] ;
-      if(X[i] > ActualView->BBox[1]) ActualView->BBox[1] = X[i] ;
-      if(Y[i] < ActualView->BBox[2]) ActualView->BBox[2] = Y[i] ;
-      if(Y[i] > ActualView->BBox[3]) ActualView->BBox[3] = Y[i] ;
-      if(Z[i] < ActualView->BBox[4]) ActualView->BBox[4] = Z[i] ;
-      if(Z[i] > ActualView->BBox[5]) ActualView->BBox[5] = Z[i] ;
-    }
+  for(i=0 ; i<nbnod ; i++){
+    if(X[i] < ActualView->BBox[0]) ActualView->BBox[0] = X[i] ;
+    if(X[i] > ActualView->BBox[1]) ActualView->BBox[1] = X[i] ;
+    if(Y[i] < ActualView->BBox[2]) ActualView->BBox[2] = Y[i] ;
+    if(Y[i] > ActualView->BBox[3]) ActualView->BBox[3] = Y[i] ;
+    if(Z[i] < ActualView->BBox[4]) ActualView->BBox[4] = Z[i] ;
+    if(Z[i] > ActualView->BBox[5]) ActualView->BBox[5] = Z[i] ;
   }
 
   ActualView->ScalarOnly = 0;
@@ -418,6 +414,9 @@ void CopyViewOptions(Post_View *src, Post_View *dest){
   dest->DrawLines = src->DrawLines;
   dest->DrawTriangles = src->DrawTriangles;
   dest->DrawTetrahedra = src->DrawTetrahedra;
+  dest->DrawScalars = src->DrawScalars;
+  dest->DrawVectors = src->DrawVectors;
+  dest->DrawTensors = src->DrawTensors;
   dest->TransparentScale = src->TransparentScale;
   dest->ScaleType = src->ScaleType;
   dest->RangeType = src->RangeType;
diff --git a/Common/Views.h b/Common/Views.h
index 78c21a865e..00c1433e7f 100644
--- a/Common/Views.h
+++ b/Common/Views.h
@@ -36,6 +36,7 @@ class Post_View{
   int ArrowType, ArrowLocation;
   int TimeStep;
   int DrawPoints, DrawLines, DrawTriangles, DrawTetrahedra;
+  int DrawScalars, DrawVectors, DrawTensors;
   ColorTable CT;
 
   // dynamic
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 5f160cefaa..2e9ff28cda 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.43 2001-04-17 06:55:47 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.44 2001-04-22 18:13:02 geuzaine Exp $
 
 #include <map>
 #include "Gmsh.h"
@@ -163,7 +163,7 @@ void status_cancel_cb(CALLBACK_ARGS){
 void file_open_cb(CALLBACK_ARGS) {
   char *newfile;
   int n = List_Nbr(Post_ViewList);
-  newfile = fl_file_chooser("Open File", "*.[gG][eE][oO]", NULL);
+  newfile = fl_file_chooser("Open File", "*", NULL);
   if (newfile != NULL) {
     OpenProblem(newfile); 
     Draw(); 
@@ -1541,6 +1541,9 @@ void view_options_ok_cb(CALLBACK_ARGS){
       opt_view_draw_lines(i, GMSH_SET, WID->view_butt[19]->value());
       opt_view_draw_triangles(i, GMSH_SET, WID->view_butt[20]->value());
       opt_view_draw_tetrahedra(i, GMSH_SET, WID->view_butt[21]->value());
+      opt_view_draw_scalars(i, GMSH_SET, WID->view_butt[22]->value());
+      opt_view_draw_vectors(i, GMSH_SET, WID->view_butt[23]->value());
+      opt_view_draw_tensors(i, GMSH_SET, WID->view_butt[24]->value());
       
       opt_view_custom_min(i, GMSH_SET, WID->view_value[0]->value());
       opt_view_custom_max(i, GMSH_SET, WID->view_value[1]->value());
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 3718fac84d..719917c31a 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.61 2001-04-17 11:22:00 geuzaine Exp $
+// $Id: GUI.cpp,v 1.62 2001-04-22 18:13:02 geuzaine Exp $
 
 // To make the interface as visually consistent as possible, please:
 // - use the BH, BW, WB, IW values for button heights/widths, window borders, etc.
@@ -1549,10 +1549,18 @@ void GUI::set_statistics(){
     p[3] += v->NbST + v->NbVT + v->NbTT;
     p[4] += v->NbSS + v->NbVS + v->NbTS;
     if(v->Visible){
-      if(v->DrawPoints) p[5] += v->NbSP + v->NbVP + v->NbTP;
-      if(v->DrawLines) p[6] += v->NbSL + v->NbVL + v->NbTL;
-      if(v->DrawTriangles) p[7] += v->NbST + v->NbVT + v->NbTT;
-      if(v->DrawTetrahedra) p[8] += v->NbSS + v->NbVS + v->NbTS;
+      if(v->DrawPoints)	p[5] += v->DrawScalars ? v->NbSP : 0 + 
+			        v->DrawVectors ? v->NbVP : 0 + 
+			        v->DrawTensors ? v->NbTP : 0 ;
+      if(v->DrawLines) p[6] += v->DrawScalars ? v->NbSL : 0 + 
+			       v->DrawVectors ? v->NbVL : 0 + 
+			       v->DrawTensors ? v->NbTL : 0 ;
+      if(v->DrawTriangles) p[7] += v->DrawScalars ? v->NbST : 0 + 
+			           v->DrawVectors ? v->NbVT : 0 + 
+			           v->DrawTensors ? v->NbTT : 0 ;
+      if(v->DrawTetrahedra) p[8] += v->DrawScalars ? v->NbSS : 0 + 
+			            v->DrawVectors ? v->NbVS : 0 + 
+   			            v->DrawTensors ? v->NbTS : 0 ;
     }
   }
   sprintf(label[19], "%g/%g", p[5],p[1]); stat_value[19]->value(label[19]);
@@ -1780,7 +1788,11 @@ void GUI::create_view_options_window(int num){
         view_butt[19] = new Fl_Check_Button(width/2, 2*WB+2*BH, BW, BH, "Draw lines");
         view_butt[20] = new Fl_Check_Button(width/2, 2*WB+3*BH, BW, BH, "Draw triangles");
         view_butt[21] = new Fl_Check_Button(width/2, 2*WB+4*BH, BW, BH, "Draw tetrahedra");
-	for(i=13 ; i<22 ; i++){
+
+        view_butt[22] = new Fl_Check_Button(width/2, 2*WB+5*BH, BW, BH, "Draw scalar values");
+        view_butt[23] = new Fl_Check_Button(width/2, 2*WB+6*BH, BW, BH, "Draw vector values");
+        view_butt[24] = new Fl_Check_Button(width/2, 2*WB+7*BH, BW, BH, "Draw tensor values");
+	for(i=13 ; i<25 ; i++){
 	  view_butt[i]->type(FL_TOGGLE_BUTTON);
 	  view_butt[i]->down_box(FL_DOWN_BOX);
 	  view_butt[i]->labelsize(CTX.fontsize);
@@ -1919,7 +1931,7 @@ void GUI::create_view_options_window(int num){
 	view_value[10]->align(FL_ALIGN_RIGHT);
 	view_value[10]->minimum(0); 
 	view_value[10]->maximum(1000); 
-	view_value[10]->step(1);
+	view_value[10]->step(0.1);
 	view_vector->end();
       }
       // Colors
@@ -1983,6 +1995,9 @@ void GUI::update_view_window(int num){
   opt_view_draw_lines(num, GMSH_GUI, 0);
   opt_view_draw_triangles(num, GMSH_GUI, 0);
   opt_view_draw_tetrahedra(num, GMSH_GUI, 0);
+  opt_view_draw_scalars(num, GMSH_GUI, 0);
+  opt_view_draw_vectors(num, GMSH_GUI, 0);
+  opt_view_draw_tensors(num, GMSH_GUI, 0);
 
   // range
   opt_view_range_type(num, GMSH_GUI, 0);
diff --git a/Fltk/Makefile b/Fltk/Makefile
index 63e15fd8f6..785bb03039 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.14 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.15 2001-04-22 18:13:02 geuzaine Exp $
 #
 # Makefile for "libFltk.a"
 #
@@ -62,59 +62,92 @@ depend:
 
 # DO NOT DELETE THIS LINE
 Main.o: Main.cpp ../Plugin/PluginManager.h ../Common/Gmsh.h \
- ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
- ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
- ../Common/GmshUI.h ../Common/GmshVersion.h ../Geo/Geo.h \
- ../Geo/Verif.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
- ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
- ../Common/ColorTable.h ../Common/Context.h ../Common/Options.h \
- ../Parser/Parser.h ../Common/Static.h GUI.h Opengl_Window.h \
- Colorbar_Window.h ../Parser/OpenFile.h ../Common/GetOptions.h
+  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/GmshVersion.h ../Geo/Geo.h ../Geo/Verif.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
+  ../Common/Context.h ../Common/Options.h ../Parser/Parser.h \
+  ../Common/Static.h GUI.h /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h ../Parser/OpenFile.h ../Common/GetOptions.h
 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 ../Common/GmshUI.h \
- ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h \
- ../Common/Options.h GUI.h Opengl_Window.h Colorbar_Window.h \
- ../Common/ColorTable.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h \
+  ../Common/Options.h GUI.h /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h ../Common/ColorTable.h
 GUI.o: GUI.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
- ../Common/Options.h ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h \
- ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
- ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h GUI.h \
- Opengl_Window.h Colorbar_Window.h Callbacks.h ../Common/Bitmaps.h \
- ../Common/GetOptions.h
+  ../Common/Options.h ../Common/Message.h ../Common/Gmsh.h \
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h \
+  ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h Callbacks.h ../Common/Bitmaps.h \
+  ../Common/GetOptions.h
 Callbacks.o: Callbacks.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Geo/Verif.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
- ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
- ../Common/ColorTable.h ../Common/Timer.h ../Geo/Visibility.h \
- ../Graphics/CreateFile.h ../Parser/OpenFile.h ../Common/GetOptions.h \
- ../Common/Context.h ../Common/Options.h GUI.h Opengl_Window.h \
- Colorbar_Window.h Callbacks.h ../Plugin/Plugin.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Geo/Verif.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
+  ../Common/ColorTable.h ../Common/Timer.h ../Geo/Visibility.h \
+  ../Graphics/CreateFile.h ../Parser/OpenFile.h ../Common/GetOptions.h \
+  ../Common/Context.h ../Common/Options.h GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h Callbacks.h ../Plugin/Plugin.h
 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 ../Common/GmshUI.h \
- ../Common/Context.h ../Common/Const.h ../Geo/Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/ColorTable.h GUI.h Opengl_Window.h \
- Colorbar_Window.h ../Graphics/gl2ps.h
-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 \
- ../Common/GmshUI.h ../Common/Context.h ../Common/Const.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/ColorTable.h GUI.h Opengl_Window.h \
- Colorbar_Window.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/Context.h ../Common/Const.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h ../Graphics/gl2ps.h
+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 ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/Context.h ../Common/Const.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/ColorTable.h GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h
 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 \
- ../Common/GmshUI.h GUI.h Opengl_Window.h Colorbar_Window.h \
- ../Common/ColorTable.h ../Common/Context.h ../Common/Const.h
+  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h GUI.h \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Scrollbar.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Slider.H \
+  /home/geuzaine/SOURCES/fltk/FL/Fl_Valuator.H Opengl_Window.h \
+  Colorbar_Window.h ../Common/ColorTable.h ../Common/Context.h \
+  ../Common/Const.h
diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index 34a11a7af8..a1d63182bc 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.18 2001-04-08 20:36:49 geuzaine Exp $
+// $Id: Message.cpp,v 1.19 2001-04-22 18:13:02 geuzaine Exp $
 
 #include <signal.h>
 #if !defined(WIN32) || defined(__CYGWIN__)
@@ -142,7 +142,10 @@ void Msg(int level, char *fmt, ...){
 /*  Exit                                                                    */
 /* ------------------------------------------------------------------------ */
 
+void Free_DisplayLists(void);
+
 void Exit(int level){
+  //if(CTX.display_lists) Free_DisplayLists(); //bug in XFree86?
   if(WID && !CTX.batch){
     if(CTX.session_save){
       CTX.position[0] = WID->m_window->x();
diff --git a/Geo/Makefile b/Geo/Makefile
index 65271c72c9..d141c6331f 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.15 2001-03-05 23:14:57 remacle Exp $
+# $Id: Makefile,v 1.16 2001-04-22 18:13:02 geuzaine Exp $
 #
 # Makefile for "libGeo.a"
 #
@@ -57,52 +57,49 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
-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 Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h \
- ../Mesh/Interpolation.h ../Mesh/Numeric.h ../Common/Const.h \
- ../Mesh/Create.h CAD.h ../Common/Context.h
+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 \
+  Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h \
+  ../Mesh/Interpolation.h ../Mesh/Numeric.h ../Common/Const.h \
+  ../Mesh/Create.h CAD.h ../Common/Context.h
 DataBase.o: DataBase.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Mesh/Create.h \
- Verif.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Mesh/Create.h Verif.h \
+  ../Common/Context.h
 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 ../Common/Const.h \
- ../Mesh/Vertex.h ../Common/Context.h
-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 Geo.h CAD.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ExtrudeParams.h
-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 ../Common/Const.h Geo.h CAD.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h ../Parser/Parser.h \
- ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Mesh/Vertex.h \
+  ../Common/Context.h
+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 Geo.h CAD.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ExtrudeParams.h
+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 \
+  ../Common/Const.h Geo.h CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Mesh/Metric.h DataBase.h ../Parser/Parser.h ../Common/Context.h
 StepGeomDatabase.o: StepGeomDatabase.cpp ../Common/Gmsh.h \
- ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
- ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
- ../Common/Const.h Geo.h StepGeomDatabase.h DataBase.h \
- ../Common/Context.h
+  ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
+  Geo.h StepGeomDatabase.h DataBase.h ../Common/Context.h
 Verif.o: Verif.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
 Visibility.o: Visibility.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h DataBase.h
 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 Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Common/Context.h \
- ../Common/Const.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h CAD.h ../Common/Context.h \
+  ../Common/Const.h
diff --git a/Graphics/Makefile b/Graphics/Makefile
index a12862b318..261cafa984 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.20 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.21 2001-04-22 18:13:02 geuzaine Exp $
 #
 # Makefile for "libGraphics.a"
 #
@@ -70,97 +70,119 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
-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 ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
- ../Geo/MinMax.h
-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 ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
- ../Geo/MinMax.h gl2ps.h ../Geo/Verif.h ../Mesh/Numeric.h \
- ../Geo/Visibility.h
-Geom.o: Geom.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
- ../Geo/Verif.h ../Mesh/Interpolation.h ../Mesh/Numeric.h \
- ../Geo/Visibility.h
-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 ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h
+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 \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
+  ../Geo/MinMax.h
+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 \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
+  ../Geo/MinMax.h gl2ps.h ../Geo/Verif.h ../Mesh/Numeric.h \
+  ../Geo/Visibility.h
+Geom.o: Geom.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \
+  ../Geo/Verif.h ../Mesh/Interpolation.h ../Mesh/Numeric.h \
+  ../Geo/Visibility.h
+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 \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h
 PostSimplex.o: PostSimplex.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h Iso.h IsoSimplex.h \
- ../Common/Context.h
-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 ../Mesh/Mesh.h ../Mesh/Vertex.h \
- ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
- ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \
- ../Common/ColorTable.h ../Mesh/Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h Iso.h IsoSimplex.h \
+  ../Common/Context.h
+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 \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Mesh/Numeric.h
 IsoSimplex.o: IsoSimplex.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h Iso.h ../Common/Context.h \
- ../Mesh/Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h Iso.h ../Common/Context.h \
+  ../Mesh/Numeric.h
 Entity.o: Entity.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
- ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h
 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 ../Common/GmshUI.h \
- ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h \
- ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h \
- ../Motif/XContext.h
-Axes.o: Axes.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h \
- ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Common/Const.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/Context.h ../Motif/XContext.h
+Axes.o: Axes.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Common/Const.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Common/Context.h
 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 ../Common/GmshUI.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Parser/OpenFile.h \
- ../Common/Const.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
- ../Common/Context.h ../Motif/Widgets.h ../Motif/XContext.h XDump.h \
- gl2ps.h gl2gif.h gl2jpeg.h gl2ppm.h gl2yuv.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Parser/OpenFile.h \
+  ../Common/Const.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/Context.h ../Motif/Widgets.h ../Motif/XContext.h XDump.h \
+  gl2ps.h gl2gif.h gl2jpeg.h gl2ppm.h gl2yuv.h
 XDump.o: XDump.cpp
 gl2ps.o: gl2ps.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h gl2ps.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h gl2ps.h
 gl2gif.o: gl2gif.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h gl2gif.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h gl2gif.h
 gl2jpeg.o: gl2jpeg.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../jpeg/jpeglib.h ../jpeg/jconfig.h ../jpeg/jmorecfg.h \
- ../jpeg/jerror.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../jpeg/jpeglib.h \
+  ../jpeg/jconfig.h ../jpeg/jmorecfg.h ../jpeg/jerror.h
 gl2ppm.o: gl2ppm.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h
 gl2yuv.o: gl2yuv.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h
diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp
index 6a0a496db8..ea43d7af86 100644
--- a/Graphics/Mesh.cpp
+++ b/Graphics/Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Mesh.cpp,v 1.22 2001-04-17 06:55:47 geuzaine Exp $
+// $Id: Mesh.cpp,v 1.23 2001-04-22 18:13:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -114,10 +114,8 @@ void Draw_Mesh (Mesh *M) {
   if(CTX.mesh.hidden) glDisable(GL_POLYGON_OFFSET_FILL);
 
   if(CTX.render_mode != GMSH_SELECT){
-    if(CTX.axes) 
-      Draw_Axes(CTX.lc_middle/4.);
-    if(CTX.post.draw) // les init de shading se font par view
-      Draw_Post();
+    if(CTX.axes) Draw_Axes(CTX.lc_middle/4.);
+    Draw_Post(); // les init de shading se font par view
   }
 }
 
diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index 3446643909..da4040c513 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1,4 +1,4 @@
-// $Id: Post.cpp,v 1.14 2001-03-18 10:40:54 geuzaine Exp $
+// $Id: Post.cpp,v 1.15 2001-04-22 18:13:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -77,12 +77,52 @@ void RaiseFill(int i, double Val, double ValMin, double Raise[3][5]){
     D r a w _ P o s t                                                       
    ------------------------------------------------------------------------ */
 
+void Free_DisplayLists(void){
+  Post_View     *v;
+  for(int iView=0 ; iView<List_Nbr(Post_ViewList) ; iView++){
+    v = (Post_View*)List_Pointer(Post_ViewList,iView);
+    if(glIsList(v->Num)) glDeleteLists(v->Num,1);
+  }
+}
+
 void Draw_Post (void) {
   int            iView,i,j,k,nb;
   double         ValMin,ValMax,AbsMax;
   Post_View     *v;
 
   if(!Post_ViewList) return;
+
+  if(!CTX.post.draw){ // draw only the bbox of the visible views
+    for(iView=0 ; iView<List_Nbr(Post_ViewList) ; iView++){
+      v = (Post_View*)List_Pointer(Post_ViewList,iView);
+      if(v->Visible){ 
+	glColor4ubv((GLubyte*)&CTX.color.fg);
+	glBegin(GL_LINE_LOOP);
+	glVertex3d(v->BBox[0], v->BBox[2], v->BBox[4]);
+	glVertex3d(v->BBox[1], v->BBox[2], v->BBox[4]);
+	glVertex3d(v->BBox[1], v->BBox[3], v->BBox[4]);
+	glVertex3d(v->BBox[0], v->BBox[3], v->BBox[4]);
+	glEnd();    
+	glBegin(GL_LINE_LOOP);
+	glVertex3d(v->BBox[0], v->BBox[2], v->BBox[5]);
+	glVertex3d(v->BBox[1], v->BBox[2], v->BBox[5]);
+	glVertex3d(v->BBox[1], v->BBox[3], v->BBox[5]);
+	glVertex3d(v->BBox[0], v->BBox[3], v->BBox[5]);
+	glEnd();    
+	glBegin(GL_LINES);
+	glVertex3d(v->BBox[0], v->BBox[2], v->BBox[4]);
+	glVertex3d(v->BBox[0], v->BBox[2], v->BBox[5]);
+	glVertex3d(v->BBox[1], v->BBox[2], v->BBox[4]);
+	glVertex3d(v->BBox[1], v->BBox[2], v->BBox[5]);
+	glVertex3d(v->BBox[1], v->BBox[3], v->BBox[4]);
+	glVertex3d(v->BBox[1], v->BBox[3], v->BBox[5]);
+	glVertex3d(v->BBox[0], v->BBox[3], v->BBox[4]);
+	glVertex3d(v->BBox[0], v->BBox[3], v->BBox[5]);
+	glEnd();    
+      }
+    }    
+    return;
+  }
   
   for(iView=0 ; iView<List_Nbr(Post_ViewList) ; iView++){
 
@@ -148,7 +188,7 @@ void Draw_Post (void) {
 
 	// Points
 
-	if(v->NbSP && v->DrawPoints){
+	if(v->NbSP && v->DrawPoints && v->DrawScalars){
 	  nb = List_Nbr(v->SP) / v->NbSP ;
 	  for(i = 0 ; i < List_Nbr(v->SP) ; i+=nb)
 	    Draw_ScalarPoint(v, ValMin, ValMax, Raise,
@@ -157,7 +197,7 @@ void Draw_Post (void) {
 			     (double*)List_Pointer_Fast(v->SP,i+2),
 			     (double*)List_Pointer_Fast(v->SP,i+3));
 	}
-	if(v->NbVP && v->DrawPoints){
+	if(v->NbVP && v->DrawPoints && v->DrawVectors){
 	  nb = List_Nbr(v->VP) / v->NbVP ;
 	  for(i = 0 ; i < List_Nbr(v->VP) ; i+=nb)
 	    Draw_VectorPoint(v, ValMin, ValMax, Raise,
@@ -166,7 +206,7 @@ void Draw_Post (void) {
 			     (double*)List_Pointer_Fast(v->VP,i+2),
 			     (double*)List_Pointer_Fast(v->VP,i+3));
 	}
-	if(v->NbTP && v->DrawPoints){
+	if(v->NbTP && v->DrawPoints && v->DrawTensors){
 	  nb = List_Nbr(v->TP) / v->NbTP ;
 	  for(i = 0 ; i < List_Nbr(v->TP) ; i+=nb)
 	    Draw_TensorPoint(v, ValMin, ValMax, Raise,
@@ -178,7 +218,7 @@ void Draw_Post (void) {
 
 	// Lines
 	
-	if(v->NbSL && v->DrawLines){
+	if(v->NbSL && v->DrawLines && v->DrawScalars){
 	  nb = List_Nbr(v->SL) / v->NbSL ;
 	  for(i = 0 ; i < List_Nbr(v->SL) ; i+=nb)
 	    Draw_ScalarLine(v, ValMin, ValMax, Raise,
@@ -187,7 +227,7 @@ void Draw_Post (void) {
 			    (double*)List_Pointer_Fast(v->SL,i+4),
 			    (double*)List_Pointer_Fast(v->SL,i+6));
 	}
-	if(v->NbVL && v->DrawLines){
+	if(v->NbVL && v->DrawLines && v->DrawVectors){
 	  nb = List_Nbr(v->VL) / v->NbVL ;
 	  for(i = 0 ; i < List_Nbr(v->VL) ; i+=nb)
 	    Draw_VectorLine(v, ValMin, ValMax, Raise,
@@ -196,7 +236,7 @@ void Draw_Post (void) {
 			    (double*)List_Pointer_Fast(v->VL,i+4),
 			    (double*)List_Pointer_Fast(v->VL,i+6));
 	}
-	if(v->NbTL && v->DrawLines){
+	if(v->NbTL && v->DrawLines && v->DrawTensors){
 	  nb = List_Nbr(v->TL) / v->NbTL ;
 	  for(i = 0 ; i < List_Nbr(v->TL) ; i+=nb)
 	    Draw_VectorLine(v, ValMin, ValMax, Raise,
@@ -208,7 +248,7 @@ void Draw_Post (void) {
 	
 	// Triangles
 	
-	if(v->NbST && v->DrawTriangles){
+	if(v->NbST && v->DrawTriangles && v->DrawScalars){
 	  nb = List_Nbr(v->ST) / v->NbST ;
 	  for(i = 0 ; i < List_Nbr(v->ST) ; i+=nb)
 	    Draw_ScalarTriangle(v, ValMin, ValMax, Raise,
@@ -217,7 +257,7 @@ void Draw_Post (void) {
 				(double*)List_Pointer_Fast(v->ST,i+6),
 				(double*)List_Pointer_Fast(v->ST,i+9));
 	}
-	if(v->NbVT && v->DrawTriangles){
+	if(v->NbVT && v->DrawTriangles && v->DrawVectors){
 	  nb = List_Nbr(v->VT) / v->NbVT ;
 	  for(i = 0 ; i < List_Nbr(v->VT) ; i+=nb)
 	    Draw_VectorTriangle(v, ValMin, ValMax, Raise,
@@ -226,7 +266,7 @@ void Draw_Post (void) {
 				(double*)List_Pointer_Fast(v->VT,i+6),
 				(double*)List_Pointer_Fast(v->VT,i+9));
 	}
-	if(v->NbTT && v->DrawTriangles){
+	if(v->NbTT && v->DrawTriangles && v->DrawTensors){
 	  nb = List_Nbr(v->TT) / v->NbTT ;
 	  for(i = 0 ; i < List_Nbr(v->TT) ; i+=nb)
 	    Draw_TensorTriangle(v, ValMin, ValMax, Raise,
@@ -247,7 +287,7 @@ void Draw_Post (void) {
 	     the number of iso-surfaces is changed.
 	 */
 	
-	if(v->NbSS && v->DrawTetrahedra){
+	if(v->NbSS && v->DrawTetrahedra && v->DrawScalars){
 	  nb = List_Nbr(v->SS) / v->NbSS ;
 	  for(i = 0 ; i < List_Nbr(v->SS) ; i+=nb)
 	    Draw_ScalarTetrahedron(v, 1, ValMin, ValMax, Raise,
@@ -262,7 +302,7 @@ void Draw_Post (void) {
 				   (double*)List_Pointer_Fast(v->SS,i+8),
 				   (double*)List_Pointer_Fast(v->SS,i+12));
 	}
-	if(v->NbVS && v->DrawTetrahedra){
+	if(v->NbVS && v->DrawTetrahedra && v->DrawVectors){
 	  nb = List_Nbr(v->VS) / v->NbVS ;
 	  for(i = 0 ; i < List_Nbr(v->VS) ; i+=nb)
 	    Draw_VectorTetrahedron(v, ValMin, ValMax, Raise,
@@ -271,7 +311,7 @@ void Draw_Post (void) {
 				   (double*)List_Pointer_Fast(v->VS,i+8),
 				   (double*)List_Pointer_Fast(v->VS,i+12));
 	}
-	if(v->NbTS && v->DrawTetrahedra){
+	if(v->NbTS && v->DrawTetrahedra && v->DrawTensors){
 	  nb = List_Nbr(v->TS) / v->NbTS ;
 	  for(i = 0 ; i < List_Nbr(v->TS) ; i+=nb)
 	    Draw_TensorTetrahedron(v, ValMin, ValMax, Raise,
diff --git a/Graphics/PostSimplex.cpp b/Graphics/PostSimplex.cpp
index 4b411261d5..fdb1c10947 100644
--- a/Graphics/PostSimplex.cpp
+++ b/Graphics/PostSimplex.cpp
@@ -1,4 +1,4 @@
-// $Id: PostSimplex.cpp,v 1.15 2001-04-07 07:20:22 geuzaine Exp $
+// $Id: PostSimplex.cpp,v 1.16 2001-04-22 18:13:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -12,7 +12,7 @@
 extern Context_T   CTX;
 
 /* ------------------------------------------------------------------------ */
-/*  P o i n t s                                                             */
+/*  Scalar Simplices                                                        */
 /* ------------------------------------------------------------------------ */
 
 void Draw_ScalarPoint(Post_View *View, 
@@ -22,11 +22,19 @@ void Draw_ScalarPoint(Post_View *View,
   char Num[100];
 
   d = V[View->TimeStep];  
+  RaiseFill(0, d, ValMin, Raise);
+
+  if(View->ShowElement){
+    glColor4ubv((GLubyte*)&CTX.color.fg);
+    Draw_Point(X,Y,Z,View->Offset,Raise);
+  }
+
   if(d>=ValMin && d<=ValMax){      
-    RaiseFill(0, d, ValMin, Raise);
     Palette2(View,ValMin,ValMax,d);
     if(View->IntervalsType == DRAW_POST_NUMERIC){
-      glRasterPos3d(X[0],Y[0],Z[0]);
+      glRasterPos3d(X[0]+Raise[0][0]+View->Offset[0],
+		    Y[0]+Raise[1][0]+View->Offset[1],
+		    Z[0]+Raise[2][0]+View->Offset[2]);
       sprintf(Num, View->Format, d);
       Draw_String(Num);
     }
@@ -35,64 +43,6 @@ void Draw_ScalarPoint(Post_View *View,
   }
 }
 
-void Draw_VectorPoint(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][5],
-		      double *X, double *Y, double *Z, double *V){
-  int      i;
-  double   d,dx,dy,dz,fact;
-          
-  if(View->ArrowType == DRAW_POST_DISPLACEMENT){
-    fact = View->ArrowScale/50. ;
-    glColor4ubv((GLubyte*)&CTX.color.fg);
-    glBegin(GL_POINTS);
-    glVertex3d(fact*V[3*View->TimeStep],
-	       fact*V[3*View->TimeStep+1],
-	       fact*V[3*View->TimeStep+2]);
-    glEnd();
-    if(View->TimeStep){
-      glBegin(GL_LINE_STRIP);
-      for(i=0 ; i<View->TimeStep+1 ; i++)
-	glVertex3d(fact*V[3*(View->TimeStep-i)],
-		   fact*V[3*(View->TimeStep-i)+1],
-		   fact*V[3*(View->TimeStep-i)+2]);
-      glEnd();
-    }
-
-  }
-  else{
-
-    dx = V[3*View->TimeStep];  
-    dy = V[3*View->TimeStep+1];
-    dz = V[3*View->TimeStep+2];
-    d = sqrt(dx*dx+dy*dy+dz*dz);
-    
-    if(d!=0.0 && d>=ValMin && d<=ValMax){
-      Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-      if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-        dx /= d ; dy /= d ; dz /= d ;
-        d = log10(d/ValMin) ; 
-        dx *= d ; dy *= d ; dz *= d ;
-      }
-      RaiseFill(0, d, ValMin, Raise);
-      Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO, 
-                  X[0], Y[0], Z[0],
-                  fact*d, fact*dx, fact*dy, fact*dz,
-                  View->Offset, Raise);
-    }
-
-  }
-}
-
-void Draw_TensorPoint(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][5],
-		      double *X, double *Y, double *Z, double *V){
-}
-
-/* ------------------------------------------------------------------------ */
-/*  L i n e s                                                               */
-/* ------------------------------------------------------------------------ */
-
 void Draw_ScalarLine(Post_View *View, 
 		     double ValMin, double ValMax, double Raise[3][5],
 		     double *X, double *Y, double *Z, double *V){
@@ -102,35 +52,49 @@ void Draw_ScalarLine(Post_View *View,
   double  Xp[5],Yp[5],Zp[5],value[5],thev;
   char    Num[100] ;
 
+  for(k=0 ; k<2 ; k++)
+    RaiseFill(k, V[2*View->TimeStep+k], ValMin, Raise);
+
+  if(View->ShowElement){
+    glColor4ubv((GLubyte*)&CTX.color.fg);
+    Draw_Line(X,Y,Z,View->Offset,Raise);
+  }
+
   if(View->IntervalsType == DRAW_POST_NUMERIC){
 
     d = (V[2*View->TimeStep]+V[2*View->TimeStep+1]) / 2.;
+
     if(d >= ValMin && d <= ValMax){
-      RaiseFill(0, d, ValMin, Raise);
       Palette2(View,ValMin,ValMax,d);
       sprintf(Num, View->Format, d);
-      glRasterPos3d((X[0] + X[1])/2.,
-		    (Y[0] + Y[1])/2.,
-		    (Z[0] + Z[1])/2.);
+      glRasterPos3d((X[0]+Raise[0][0] + X[1]+Raise[0][1])/2. + View->Offset[0],
+		    (Y[0]+Raise[1][0] + Y[1]+Raise[1][1])/2. + View->Offset[1],
+		    (Z[0]+Raise[2][0] + Z[1]+Raise[2][1])/2. + View->Offset[2]);
       Draw_String(Num);
     }
 
   }
   else{
 
-    for(k=0 ; k<2 ; k++) RaiseFill(k, V[2*View->TimeStep+k], ValMin, Raise);
-    
     if(View->IntervalsType==DRAW_POST_CONTINUOUS){
-      glBegin(GL_LINES);
-      Palette2(View,ValMin,ValMax,V[2*View->TimeStep]);
-      glVertex3d(X[0]+View->Offset[0]+Raise[0][0],
-		 Y[0]+View->Offset[1]+Raise[1][0],
-		 Z[0]+View->Offset[2]+Raise[2][0]);
-      Palette2(View,ValMin,ValMax,V[2*View->TimeStep+1]);
-      glVertex3d(X[1]+View->Offset[0]+Raise[0][1],
-		 Y[1]+View->Offset[1]+Raise[1][1],
-		 Z[1]+View->Offset[2]+Raise[2][1]);
-      glEnd();
+
+      if(V[2*View->TimeStep]  >=ValMin && V[2*View->TimeStep]  <=ValMax &&
+         V[2*View->TimeStep+1]>=ValMin && V[2*View->TimeStep+1]<=ValMax){
+	glBegin(GL_LINES);
+	Palette2(View,ValMin,ValMax,V[2*View->TimeStep]);
+	glVertex3d(X[0]+View->Offset[0]+Raise[0][0],
+		   Y[0]+View->Offset[1]+Raise[1][0],
+		   Z[0]+View->Offset[2]+Raise[2][0]);
+	Palette2(View,ValMin,ValMax,V[2*View->TimeStep+1]);
+	glVertex3d(X[1]+View->Offset[0]+Raise[0][1],
+		   Y[1]+View->Offset[1]+Raise[1][1],
+		   Z[1]+View->Offset[2]+Raise[2][1]);
+	glEnd();
+      }
+      else{
+	//todo
+      }
+
     }
     else{
       for(k=0 ; k<View->NbIso ; k++){
@@ -161,70 +125,6 @@ void Draw_ScalarLine(Post_View *View,
 
 }
 
-void Draw_VectorLine(Post_View *View, 
-		     double ValMin, double ValMax, double Raise[3][5],
-		     double *X, double *Y, double *Z, double *V){
-
-  int     k;
-  double  d,dx,dy,dz,fact;
-
-  if(View->ArrowLocation == DRAW_POST_LOCATE_COG){
-    dx = 0.5 * (V[6*View->TimeStep]  +V[6*View->TimeStep+3]);
-    dy = 0.5 * (V[6*View->TimeStep+1]+V[6*View->TimeStep+4]);
-    dz = 0.5 * (V[6*View->TimeStep+2]+V[6*View->TimeStep+5]);
-    d = sqrt(dx*dx+dy*dy+dz*dz);          
-    if(d!=0.0 && d>=ValMin && d<=ValMax){           
-      Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));            
-      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-      if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-	dx /= d ; dy /= d ; dz /= d ;
-	d = log10(d/ValMin) ; 
-	dx *= d ; dy *= d ; dz *= d ;
-      }
-      RaiseFill(0, d, ValMin, Raise);         
-      Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
-		  0.5 * (X[0] + X[1]),
-		  0.5 * (Y[0] + Y[1]),
-		  0.5 * (Z[0] + Z[1]),
-		  fact*d, fact*dx, fact*dy, fact*dz,
-		  View->Offset, Raise);
-    }
-  }
-  else{
-    for(k=0 ; k<2 ; k++){
-      dx = V[6*View->TimeStep  +3*k] ;
-      dy = V[6*View->TimeStep+1+3*k] ;
-      dz = V[6*View->TimeStep+2+3*k] ;              
-      d = sqrt(dx*dx+dy*dy+dz*dz);            
-      if(d!=0.0 && d>=ValMin && d<=ValMax){           
-	Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-	if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-	  dx /= d ; dy /= d ; dz /= d ;
-	  d = log10(d/ValMin) ; 
-	  dx *= d ; dy *= d ; dz *= d ;
-	}
-	RaiseFill(0, d, ValMin, Raise);               
-	Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
-		    X[k], Y[k], Z[k],
-		    fact*d, fact*dx, fact*dy, fact*dz,
-		    View->Offset, Raise);
-      }               
-    }       
-  }
-
-}
-
-void Draw_TensorLine(Post_View *View, 
-		     double ValMin, double ValMax, double Raise[3][5],
-		     double *X, double *Y, double *Z, double *V){
-}
-
-
-/* ------------------------------------------------------------------------ */
-/*  T r i a n g l e s                                                       */
-/* ------------------------------------------------------------------------ */
-
 void Draw_ScalarTriangle(Post_View *View, 
 			 double ValMin, double ValMax, double Raise[3][5],
 			 double *X, double *Y, double *Z, double *V){
@@ -235,50 +135,50 @@ void Draw_ScalarTriangle(Post_View *View,
   double  Xp[5],Yp[5],Zp[5],value[5],thev;
   char    Num[100] ;
 
+  for(k=0 ; k<3 ; k++)
+    RaiseFill(k, V[3*View->TimeStep+k], ValMin, Raise);
+
+  if(View->Light){
+    x1x0 = (X[1]+Raise[0][1]) - (X[0]+Raise[0][0]); 
+    y1y0 = (Y[1]+Raise[1][1]) - (Y[0]+Raise[1][0]);
+    z1z0 = (Z[1]+Raise[2][1]) - (Z[0]+Raise[2][0]); 
+    x2x0 = (X[2]+Raise[0][2]) - (X[0]+Raise[0][0]);
+    y2y0 = (Y[2]+Raise[1][2]) - (Y[0]+Raise[1][0]); 
+    z2z0 = (Z[2]+Raise[2][2]) - (Z[0]+Raise[2][0]);
+    nn[0]  = y1y0 * z2z0 - z1z0 * y2y0 ;
+    nn[1]  = z1z0 * x2x0 - x1x0 * z2z0 ;
+    nn[2]  = x1x0 * y2y0 - y1y0 * x2x0 ;
+    glNormal3dv(nn);
+  }
+
+  if(View->ShowElement){
+    glColor4ubv((GLubyte*)&CTX.color.fg);
+    glBegin(GL_LINE_LOOP);
+    for(i=0 ; i<3 ; i++) 
+      glVertex3d(X[i]+View->Offset[0]+Raise[0][i],
+		 Y[i]+View->Offset[1]+Raise[1][i],
+		 Z[i]+View->Offset[2]+Raise[2][i]);
+    glEnd();
+  }
 
   if(View->IntervalsType == DRAW_POST_NUMERIC){
 
     d = (V[3*View->TimeStep]+V[3*View->TimeStep+1]+V[3*View->TimeStep+2]) / 3.;
     if(d >= ValMin && d <= ValMax){
-      RaiseFill(0, d, ValMin, Raise);
       Palette2(View,ValMin,ValMax,d);
       sprintf(Num, View->Format, d);
-      glRasterPos3d((X[0] + X[1] + X[2])/3.+Raise[0][0],
-		    (Y[0] + Y[1] + Y[2])/3.+Raise[1][0],
-		    (Z[0] + Z[1] + Z[2])/3.+Raise[2][0]);
+      glRasterPos3d( (X[0]+Raise[0][0] + X[1]+Raise[0][1] + X[2]+Raise[0][2])/3. + 
+		     View->Offset[0],
+		     (Y[0]+Raise[1][0] + Y[1]+Raise[1][1] + Y[2]+Raise[1][2])/3. +
+		     View->Offset[1],
+		     (Z[0]+Raise[2][0] + Z[1]+Raise[2][1] + Z[2]+Raise[2][2])/3. + 
+		     View->Offset[2] );
       Draw_String(Num);
     }
 
   }
   else{
-
-    if(View->ShowElement || View->Light ||
-       View->IntervalsType == DRAW_POST_CONTINUOUS)
-      for(i = 0 ; i<3 ; i++) RaiseFill(i, V[3*View->TimeStep+i], ValMin, Raise);
     
-    if(View->ShowElement){
-      glColor4ubv((GLubyte*)&CTX.color.fg);
-      glBegin(GL_LINE_LOOP);
-      for(i=0 ; i<3 ; i++) 
-	glVertex3d(X[i]+View->Offset[0]+Raise[0][i],
-		   Y[i]+View->Offset[1]+Raise[1][i],
-		   Z[i]+View->Offset[2]+Raise[2][i]);
-      glEnd();
-    }
-
-    if(View->Light){
-      x1x0 = (X[1]+Raise[0][1]) - (X[0]+Raise[0][0]); 
-      y1y0 = (Y[1]+Raise[1][1]) - (Y[0]+Raise[1][0]);
-      z1z0 = (Z[1]+Raise[2][1]) - (Z[0]+Raise[2][0]); 
-      x2x0 = (X[2]+Raise[0][2]) - (X[0]+Raise[0][0]);
-      y2y0 = (Y[2]+Raise[1][2]) - (Y[0]+Raise[1][0]); 
-      z2z0 = (Z[2]+Raise[2][2]) - (Z[0]+Raise[2][0]);
-      nn[0]  = y1y0 * z2z0 - z1z0 * y2y0 ;
-      nn[1]  = z1z0 * x2x0 - x1x0 * z2z0 ;
-      nn[2]  = x1x0 * y2y0 - y1y0 * x2x0 ;
-      glNormal3dv(nn);
-    }
-
     if(View->IntervalsType == DRAW_POST_CONTINUOUS){
       if(V[3*View->TimeStep]  >=ValMin && V[3*View->TimeStep]  <=ValMax &&
          V[3*View->TimeStep+1]>=ValMin && V[3*View->TimeStep+1]<=ValMax &&
@@ -346,94 +246,6 @@ void Draw_ScalarTriangle(Post_View *View,
     
 }
 
-void Draw_VectorTriangle(Post_View *View, 
-			 double ValMin, double ValMax, double Raise[3][5],
-			 double *X, double *Y, double *Z, double *V){
-
-  int     k, m;
-  double  d,dx,dy,dz,fact;
-  double  xx[3],yy[3],zz[3];
-
-  if(View->ArrowType == DRAW_POST_DISPLACEMENT){
-
-    fact = View->ArrowScale/50. ;
-    for(m=0 ; m<3 ; m++){
-      xx[m] = X[m] + fact * V[9*View->TimeStep + 3 * m ];
-      yy[m] = Y[m] + fact * V[9*View->TimeStep + 3 * m + 1];
-      zz[m] = Z[m] + fact * V[9*View->TimeStep + 3 * m + 2];
-    }
-    glColor4ubv((GLubyte*)&CTX.color.bg);
-    if(View->IntervalsType!=DRAW_POST_ISO)
-      Draw_Polygon (3, xx, yy, zz, View->Offset, Raise);
-    glColor4ubv((GLubyte*)&CTX.color.fg);
-    glBegin(GL_LINE_LOOP);
-    for(m=0 ; m<3 ; m++) glVertex3d(xx[m], yy[m], zz[m]);
-    glEnd();
-
-  }
-  else{
-    
-    if(View->ArrowLocation == DRAW_POST_LOCATE_COG){
-      dx = (V[9*View->TimeStep]  +V[9*View->TimeStep+3]+V[9*View->TimeStep+6])/3.;
-      dy = (V[9*View->TimeStep+1]+V[9*View->TimeStep+4]+V[9*View->TimeStep+7])/3.;
-      dz = (V[9*View->TimeStep+2]+V[9*View->TimeStep+5]+V[9*View->TimeStep+8])/3.;
-      d = sqrt(dx*dx+dy*dy+dz*dz);
-      if(d!=0.0 && d>=ValMin && d<=ValMax){             
-        Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));            
-	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-        if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-          dx /= d ; dy /= d ; dz /= d ;
-          d = log10(d/ValMin) ; 
-          dx *= d ; dy *= d ; dz *= d ;
-        }
-        RaiseFill(0, d, ValMin, Raise);         
-        Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
-                    (X[0] + X[1] + X[2])/3.,
-                    (Y[0] + Y[1] + Y[2])/3.,
-                    (Z[0] + Z[1] + Z[2])/3.,
-                    fact*d, fact*dx, fact*dy, fact*dz,
-                    View->Offset, Raise);
-      }
-    }
-    else{
-      for(k=0 ; k<3 ; k++){
-        dx = V[9*View->TimeStep  +3*k] ;
-        dy = V[9*View->TimeStep+1+3*k] ;
-        dz = V[9*View->TimeStep+2+3*k] ;              
-        d = sqrt(dx*dx+dy*dy+dz*dz);
-        
-        if(d!=0.0 && d>=ValMin && d<=ValMax){           
-          Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-	  fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-          if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-            dx /= d ; dy /= d ; dz /= d ;
-            d = log10(d/ValMin) ; 
-            dx *= d ; dy *= d ; dz *= d ;
-          }
-          RaiseFill(0, d, ValMin, Raise);                                 
-          Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
-                      X[k], Y[k], Z[k],
-                      fact*d, fact*dx, fact*dy, fact*dz,
-                      View->Offset, Raise);
-          
-        }               
-      }       
-    }
-
-  }
-
-}
-
-void Draw_TensorTriangle(Post_View *View, 
-			 double ValMin, double ValMax, double Raise[3][5],
-			 double *X, double *Y, double *Z, double *V){
-}
-
-
-/* ------------------------------------------------------------------------ */
-/*  T e t r a h e d r a                                                     */
-/* ------------------------------------------------------------------------ */
-
 void Draw_ScalarTetrahedron(Post_View *View,
 			    int preproNormals,
 			    double ValMin, 
@@ -445,20 +257,42 @@ void Draw_ScalarTetrahedron(Post_View *View,
 			    double *V){
 
   int     k;
-  double  d;
+  double  d, xx[4], yy[4], zz[4];
   char Num[100];
 
-  if(!preproNormals && View->IntervalsType == DRAW_POST_NUMERIC){
+  for(k=0 ; k<4 ; k++)
+    RaiseFill(k, V[4*View->TimeStep+k], ValMin, Raise);
+
+  if(View->ShowElement){
+    glColor4ubv((GLubyte*)&CTX.color.fg);
+    for(k=0 ; k<4 ; k++){
+      xx[k] = X[k]+View->Offset[0]+Raise[0][k] ;
+      yy[k] = Y[k]+View->Offset[1]+Raise[1][k] ;
+      zz[k] = Z[k]+View->Offset[2]+Raise[2][k] ;
+    }
+    glBegin(GL_LINES);
+    glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[1], yy[1], zz[1]);
+    glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[2], yy[2], zz[2]);
+    glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[3], yy[3], zz[3]);
+    glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[2], yy[2], zz[2]);
+    glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[3], yy[3], zz[3]);
+    glVertex3d(xx[2], yy[2], zz[2]); glVertex3d(xx[3], yy[3], zz[3]);
+    glEnd();
+  }
+
+  if(View->IntervalsType == DRAW_POST_NUMERIC && !preproNormals){
 
-    d = (V[4*View->TimeStep]  +V[4*View->TimeStep+1]+
-	 V[4*View->TimeStep+2]+V[4*View->TimeStep+4]) / 4.;
+    d = 0.25 * (V[4*View->TimeStep]  +V[4*View->TimeStep+1]+
+		V[4*View->TimeStep+2]+V[4*View->TimeStep+3]);
     if(d >= ValMin && d <= ValMax){
-      RaiseFill(0, d, ValMin, Raise);
       Palette2(View,ValMin,ValMax,d);
       sprintf(Num, View->Format, d);
-      glRasterPos3d((X[0] + X[1] + X[2] + X[3])/4.+Raise[0][0],
-		    (Y[0] + Y[1] + Y[2] + Y[3])/4.+Raise[1][0],
-		    (Z[0] + Z[1] + Z[2] + Z[3])/4.+Raise[2][0]);
+      glRasterPos3d(0.25 * (X[0]+Raise[0][0] + X[1]+Raise[0][1] + 
+			    X[2]+Raise[0][2] + X[3]+Raise[0][3]) + View->Offset[0],
+		    0.25 * (Y[0]+Raise[1][0] + Y[1]+Raise[1][1] + 
+			    Y[2]+Raise[1][2] + Y[3]+Raise[1][3]) + View->Offset[1],
+		    0.25 * (Z[0]+Raise[2][0] + Z[1]+Raise[2][1] + 
+			    Z[2]+Raise[2][2] + Z[3]+Raise[2][3]) + View->Offset[2]);
       Draw_String(Num);
     }
 
@@ -477,48 +311,201 @@ void Draw_ScalarTetrahedron(Post_View *View,
 
 }
 
+/* ------------------------------------------------------------------------ */
+/*  Vector Simplices                                                        */
+/* ------------------------------------------------------------------------ */
 
-void Draw_VectorTetrahedron(Post_View *View, 
-			    double ValMin, double ValMax, double Raise[3][5],
-			    double *X, double *Y, double *Z, double *V){
+void Draw_VectorSimplex(int nbnod, Post_View *View, 
+			double ValMin, double ValMax, double Raise[3][5],
+			double *X, double *Y, double *Z, double *V){
+  int    j, k ;
+  double d, dx, dy, dz, fact, xx[4], yy[4], zz[4], xc=0., yc=0., zc=0. ;
+  char   Num[100];
+
+  for(k=0 ; k<nbnod ; k++){
+    dx = V[3*nbnod*View->TimeStep  +3*k] ;
+    dy = V[3*nbnod*View->TimeStep+1+3*k] ;
+    dz = V[3*nbnod*View->TimeStep+2+3*k] ;              
+    d = sqrt(dx*dx+dy*dy+dz*dz);            
+    RaiseFill(k, d, ValMin, Raise);
+  }
 
-  int     k;
-  double  d,dx,dy,dz,fact;
-
-  if(View->ArrowLocation == DRAW_POST_LOCATE_COG){
-    dx = 0.25 * (V[12*View->TimeStep]  +V[12*View->TimeStep+3]+
-		 V[12*View->TimeStep+6]+V[12*View->TimeStep+9] );
-    dy = 0.25 * (V[12*View->TimeStep+1]+V[12*View->TimeStep+4]+
-		 V[12*View->TimeStep+7]+V[12*View->TimeStep+10] );
-    dz = 0.25 * (V[12*View->TimeStep+2]+V[12*View->TimeStep+5]+
-		 V[12*View->TimeStep+8]+V[12*View->TimeStep+11] );
+  if(View->ArrowType == DRAW_POST_DISPLACEMENT){
+
+    fact = View->ArrowScale/50. ;
+    for(k=0 ; k<nbnod ; k++){
+      xx[k] = X[k] + fact * V[3*nbnod*View->TimeStep  +3*k] + 
+	Raise[0][k] + View->Offset[0];
+      yy[k] = Y[k] + fact * V[3*nbnod*View->TimeStep+1+3*k] + 
+	Raise[1][k] + View->Offset[1];
+      zz[k] = Z[k] + fact * V[3*nbnod*View->TimeStep+2+3*k] + 
+	Raise[2][k] + View->Offset[2];
+    }
+
+    switch(nbnod){
+    case 1 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      glBegin(GL_POINTS);
+      glVertex3d(xx[0],yy[0],zz[0]);
+      glEnd();
+      if(View->TimeStep){
+	glBegin(GL_LINE_STRIP);
+	for(j=0 ; j<View->TimeStep+1 ; j++)
+	  glVertex3d(X[0] + fact*V[3*(View->TimeStep-j)]  + Raise[0][0] + View->Offset[0],
+		     Y[0] + fact*V[3*(View->TimeStep-j)+1]+ Raise[1][0] + View->Offset[1],
+		     Z[0] + fact*V[3*(View->TimeStep-j)+2]+ Raise[2][0] + View->Offset[2]);
+	glEnd();
+      }
+      break;
+    case 2 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      glBegin(GL_LINES);
+      glVertex3d(xx[0], yy[0], zz[0]);
+      glVertex3d(xx[1], yy[1], zz[1]);
+      glEnd();
+      break;
+    case 3 :
+      if(View->IntervalsType!=DRAW_POST_ISO){
+	glColor4ubv((GLubyte*)&CTX.color.bg);
+	glBegin(GL_TRIANGLES);
+	glVertex3d(xx[0],yy[0],zz[0]);
+	glVertex3d(xx[1],yy[1],zz[1]);
+	glVertex3d(xx[2],yy[2],zz[2]);
+	glEnd();
+      }
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      glBegin(GL_LINE_LOOP);
+      for(k=0 ; k<3 ; k++) glVertex3d(xx[k], yy[k], zz[k]);
+      glEnd();
+      break;
+    case 4 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      glBegin(GL_LINES);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[1], yy[1], zz[1]);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[2], yy[2], zz[2]);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[3], yy[3], zz[3]);
+      glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[2], yy[2], zz[2]);
+      glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[3], yy[3], zz[3]);
+      glVertex3d(xx[2], yy[2], zz[2]); glVertex3d(xx[3], yy[3], zz[3]);
+      glEnd();
+      break;
+    }
+
+    return;
+  }
+
+  if(View->ShowElement){
+    switch(nbnod){
+    case 1 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      Draw_Point(X,Y,Z,View->Offset,Raise);
+      break;
+    case 2 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      Draw_Line(X,Y,Z,View->Offset,Raise);
+      break;
+    case 3 :
+      glColor4ubv((GLubyte*)&CTX.color.bg);
+      if(View->IntervalsType!=DRAW_POST_ISO)
+	Draw_Polygon (3, X, Y, Z, View->Offset, Raise);
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      glBegin(GL_LINE_LOOP);
+      for(k=0 ; k<3 ; k++) 
+	glVertex3d(X[k]+View->Offset[0]+Raise[0][k],
+		   Y[k]+View->Offset[1]+Raise[1][k],
+		   Z[k]+View->Offset[2]+Raise[2][k]);
+      glEnd();
+      break;
+    case 4 :
+      glColor4ubv((GLubyte*)&CTX.color.fg);
+      for(k=0 ; k<4 ; k++){
+	xx[k] = X[k]+View->Offset[0]+Raise[0][k] ;
+	yy[k] = Y[k]+View->Offset[1]+Raise[1][k] ;
+	zz[k] = Z[k]+View->Offset[2]+Raise[2][k] ;
+      }
+      glBegin(GL_LINES);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[1], yy[1], zz[1]);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[2], yy[2], zz[2]);
+      glVertex3d(xx[0], yy[0], zz[0]); glVertex3d(xx[3], yy[3], zz[3]);
+      glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[2], yy[2], zz[2]);
+      glVertex3d(xx[1], yy[1], zz[1]); glVertex3d(xx[3], yy[3], zz[3]);
+      glVertex3d(xx[2], yy[2], zz[2]); glVertex3d(xx[3], yy[3], zz[3]);
+      glEnd();
+    }
+  }
+
+  if(View->ArrowLocation == DRAW_POST_LOCATE_COG ||
+     View->IntervalsType == DRAW_POST_NUMERIC){
+    switch(nbnod){
+    case 1:
+      dx = V[3*View->TimeStep];
+      dy = V[3*View->TimeStep+1];
+      dz = V[3*View->TimeStep+2];
+      break;
+    case 2:
+      dx = 0.5 * (V[6*View->TimeStep]  +V[6*View->TimeStep+3]);
+      dy = 0.5 * (V[6*View->TimeStep+1]+V[6*View->TimeStep+4]);
+      dz = 0.5 * (V[6*View->TimeStep+2]+V[6*View->TimeStep+5]);
+      break;
+    case 3 :
+      dx = (V[9*View->TimeStep]  +V[9*View->TimeStep+3]+V[9*View->TimeStep+6])/3.;
+      dy = (V[9*View->TimeStep+1]+V[9*View->TimeStep+4]+V[9*View->TimeStep+7])/3.;
+      dz = (V[9*View->TimeStep+2]+V[9*View->TimeStep+5]+V[9*View->TimeStep+8])/3.;
+      break;
+    case 4 :
+      dx = 0.25 * (V[12*View->TimeStep]  +V[12*View->TimeStep+3]+
+		   V[12*View->TimeStep+6]+V[12*View->TimeStep+9] );
+      dy = 0.25 * (V[12*View->TimeStep+1]+V[12*View->TimeStep+4]+
+		   V[12*View->TimeStep+7]+V[12*View->TimeStep+10] );
+      dz = 0.25 * (V[12*View->TimeStep+2]+V[12*View->TimeStep+5]+
+		   V[12*View->TimeStep+8]+V[12*View->TimeStep+11] );
+      break;
+    }
     d = sqrt(dx*dx+dy*dy+dz*dz);
-    
     if(d!=0.0 && d>=ValMin && d<=ValMax){             
-      Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
-      fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
-      if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
-	dx /= d ; dy /= d ; dz /= d ;
-	d = log10(d/ValMin) ; 
-	dx *= d ; dy *= d ; dz *= d ;
+      Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));            
+      if(View->IntervalsType == DRAW_POST_NUMERIC){
+	for(k = 0 ; k<nbnod ; k++){
+	  xc += X[k] + Raise[0][k] ; 
+	  yc += Y[k] + Raise[1][k]; 
+	  zc += Z[k] + Raise[2][k]; 
+	}
+	glRasterPos3d(xc/(double)nbnod + View->Offset[0],
+		      yc/(double)nbnod + View->Offset[1],
+		      zc/(double)nbnod + View->Offset[2]);
+	sprintf(Num, View->Format, d);
+	Draw_String(Num);
+      }
+      else{
+	for(k = 0 ; k<nbnod ; k++){
+	  xc += X[k] ; 
+	  yc += Y[k] ; 
+	  zc += Z[k] ; 
+	}
+	xc /= (double)nbnod;
+	yc /= (double)nbnod;
+	zc /= (double)nbnod;
+	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
+	if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
+	  dx /= d ; dy /= d ; dz /= d ;
+	  d = log10(d/ValMin) ; 
+	  dx *= d ; dy *= d ; dz *= d ;
+	}
+	RaiseFill(0, d, ValMin, Raise);         
+	Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
+		    xc, yc, zc,
+		    fact*d, fact*dx, fact*dy, fact*dz,
+		    View->Offset, Raise);
       }
-      RaiseFill(0, d, ValMin, Raise);         
-      Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
-		  0.25 * (X[0] + X[1] + X[2] + X[3]),
-		  0.25 * (Y[0] + Y[1] + Y[2] + Y[3]),
-		  0.25 * (Z[0] + Z[1] + Z[2] + Z[3]),
-		  fact*d, fact*dx, fact*dy, fact*dz,
-		  View->Offset, Raise);
     }
   }
   else{
-    for(k=0 ; k<4 ; k++){
-      dx = V[12*View->TimeStep  +3*k] ;
-      dy = V[12*View->TimeStep+1+3*k] ;
-      dz = V[12*View->TimeStep+2+3*k] ;             
+    for(k=0 ; k<nbnod ; k++){
+      dx = V[3*nbnod*View->TimeStep  +3*k] ;
+      dy = V[3*nbnod*View->TimeStep+1+3*k] ;
+      dz = V[3*nbnod*View->TimeStep+2+3*k] ;              
       d = sqrt(dx*dx+dy*dy+dz*dz);
-      
-      if(d!=0.0 && d>=ValMin && d<=ValMax){     
+      if(d!=0.0 && d>=ValMin && d<=ValMax){           
 	Palette(View,View->NbIso,View->GIFV(ValMin,ValMax,View->NbIso,d));
 	fact = CTX.pixel_equiv_x/CTX.s[0] * View->ArrowScale/ValMax ;
 	if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin>0){
@@ -526,7 +513,7 @@ void Draw_VectorTetrahedron(Post_View *View,
 	  d = log10(d/ValMin) ; 
 	  dx *= d ; dy *= d ; dz *= d ;
 	}
-	RaiseFill(0, d, ValMin, Raise);               
+	RaiseFill(0, d, ValMin, Raise);         
 	Draw_Vector(View->ArrowType, View->IntervalsType!=DRAW_POST_ISO,
 		    X[k], Y[k], Z[k],
 		    fact*d, fact*dx, fact*dy, fact*dz,
@@ -537,7 +524,70 @@ void Draw_VectorTetrahedron(Post_View *View,
 
 }
 
+void Draw_VectorPoint(Post_View *View, 
+		      double ValMin, double ValMax, double Raise[3][5],
+		      double *X, double *Y, double *Z, double *V){
+  Draw_VectorSimplex(1, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+void Draw_VectorLine(Post_View *View, 
+		     double ValMin, double ValMax, double Raise[3][5],
+		     double *X, double *Y, double *Z, double *V){
+  Draw_VectorSimplex(2, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+void Draw_VectorTriangle(Post_View *View, 
+			 double ValMin, double ValMax, double Raise[3][5],
+			 double *X, double *Y, double *Z, double *V){
+  Draw_VectorSimplex(3, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+void Draw_VectorTetrahedron(Post_View *View, 
+			    double ValMin, double ValMax, double Raise[3][5],
+			    double *X, double *Y, double *Z, double *V){
+  Draw_VectorSimplex(4, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+
+/* ------------------------------------------------------------------------ */
+/*  Tensor Simplices                                                        */
+/* ------------------------------------------------------------------------ */
+
+static int TensorError = 0 ;
+
+void Draw_TensorSimplex(int nbnod, Post_View *View, 
+			double ValMin, double ValMax, double Raise[3][5],
+			double *X, double *Y, double *Z, double *V){
+  if(!TensorError){
+    TensorError = 1;
+    Msg(GERROR, "Tensor field visualization is not implemented");
+    Msg(GERROR, "We *need* some ideas on how to implement this!");
+    Msg(GERROR, "Send your ideas to <gmsh@geuz.org>!");
+  }
+}
+
+
+void Draw_TensorPoint(Post_View *View, 
+		      double ValMin, double ValMax, double Raise[3][5],
+		      double *X, double *Y, double *Z, double *V){
+  Draw_TensorSimplex(1, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+void Draw_TensorLine(Post_View *View, 
+		     double ValMin, double ValMax, double Raise[3][5],
+		     double *X, double *Y, double *Z, double *V){
+  Draw_TensorSimplex(2, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
+void Draw_TensorTriangle(Post_View *View, 
+			 double ValMin, double ValMax, double Raise[3][5],
+			 double *X, double *Y, double *Z, double *V){
+  Draw_TensorSimplex(3, View, ValMin, ValMax, Raise, X, Y, Z, V);
+}
+
 void Draw_TensorTetrahedron(Post_View *View, 
 			    double ValMin, double ValMax, double Raise[3][5],
 			    double *X, double *Y, double *Z, double *V){
+  Draw_TensorSimplex(4, View, ValMin, ValMax, Raise, X, Y, Z, V);
 }
+
diff --git a/Graphics/Scale.cpp b/Graphics/Scale.cpp
index ce559c28e1..e31d2abf9a 100644
--- a/Graphics/Scale.cpp
+++ b/Graphics/Scale.cpp
@@ -1,4 +1,4 @@
-// $Id: Scale.cpp,v 1.17 2001-02-03 13:10:26 geuzaine Exp $
+// $Id: Scale.cpp,v 1.18 2001-04-22 18:13:02 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -67,17 +67,16 @@ void draw_scale(Post_View *v, double xmin, double ymin, double *width, double he
   cv_bh   = 0.0 ;                     /* valuescale box height: to be computed */
 
 
-  switch(v->IntervalsType){
-  case DRAW_POST_CONTINUOUS : 
-    glShadeModel(GL_SMOOTH); break;
-  case DRAW_POST_ISO : 
-  case DRAW_POST_DISCRETE : 
-    glShadeModel(GL_FLAT); break;
-  }
+  if(v->IntervalsType == DRAW_POST_CONTINUOUS)
+    glShadeModel(GL_SMOOTH);
+  else
+    glShadeModel(GL_FLAT);
   
-  switch(v->RangeType){
-  case DRAW_POST_DEFAULT : ValMin = v->Min ; ValMax = v->Max ; break;
-  case DRAW_POST_CUSTOM  : ValMin = v->CustomMin ; ValMax = v->CustomMax ; break;
+  if(v->RangeType == DRAW_POST_CUSTOM){
+    ValMin = v->CustomMin ; ValMax = v->CustomMax ;
+  }
+  else{
+    ValMin = v->Min ; ValMax = v->Max ;
   }
   
   switch(v->ScaleType){
@@ -148,7 +147,8 @@ void draw_scale(Post_View *v, double xmin, double ymin, double *width, double he
 
   /* only min and max if not enough room */
   if(nbv<0){
-    if(v->IntervalsType!=DRAW_POST_ISO){
+    if(v->IntervalsType == DRAW_POST_DISCRETE ||
+       v->IntervalsType == DRAW_POST_CONTINUOUS){
       sprintf(label, v->Format, ValMin);
       glRasterPos2d(cv_xmin,cv_ymin-font_a/3.);
       Draw_String(label); CHECK_W;
@@ -170,7 +170,8 @@ void draw_scale(Post_View *v, double xmin, double ymin, double *width, double he
 
   /* all the values if enough space */
   else {
-    if(v->IntervalsType!=DRAW_POST_ISO){
+    if(v->IntervalsType == DRAW_POST_DISCRETE ||
+       v->IntervalsType == DRAW_POST_CONTINUOUS){
       for(i=0 ; i<nbv+1 ; i++){
         Val = v->GVFI(ValMin,ValMax,nbv+1,i); 
         sprintf(label, v->Format, Val);
diff --git a/Mesh/Makefile b/Mesh/Makefile
index e7d98b164c..ac3a87788b 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.17 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.18 2001-04-22 18:13:03 geuzaine Exp $
 #
 # Makefile for "libMesh.a"
 #
@@ -90,202 +90,196 @@ depend:
 
 # DO NOT DELETE THIS LINE
 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 ../Common/Const.h ../Geo/Geo.h \
- Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
- ../Common/Context.h Interpolation.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
+  ../Common/Context.h Interpolation.h Numeric.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- Create.h 2D_Mesh.h Numeric.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Create.h \
+  2D_Mesh.h Numeric.h ../Common/Context.h
 2D_SMesh.o: 2D_SMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Numeric.h \
- Interpolation.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Numeric.h \
+  Interpolation.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h Create.h \
- Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h Create.h \
+  Numeric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h Numeric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
-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 \
- ../Common/Const.h Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+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 ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
 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 Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
-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 \
- ../Common/Const.h Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h ../Common/Context.h Numeric.h
-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 \
- ../Common/Const.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Interpolation.h Mesh.h \
- 2D_Mesh.h Create.h ../Common/Context.h Numeric.h
-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 \
- ../Common/Const.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Interpolation.h \
- Create.h ../Common/Context.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h
+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 ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h ../Common/Context.h \
+  Numeric.h
+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 ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Interpolation.h \
+  Mesh.h 2D_Mesh.h Create.h ../Common/Context.h Numeric.h
+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 ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
+  Interpolation.h Create.h ../Common/Context.h Numeric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 3D_Mesh.h Create.h \
- Numeric.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h 3D_Mesh.h Create.h \
+  Numeric.h ../Common/Context.h
 3D_SMesh.o: 3D_SMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h Interpolation.h Create.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h Interpolation.h Create.h
 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 Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h 3D_Mesh.h ../Adapt/Adapt.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h 2D_Mesh.h 3D_Mesh.h ../Adapt/Adapt.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Numeric.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- ../Common/Context.h Create.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
+  ../Common/Context.h Create.h
 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 ../Common/Const.h ../Geo/Geo.h \
- Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
- 3D_Mesh.h Create.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
+  3D_Mesh.h Create.h Numeric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
 3D_Bricks.o: 3D_Bricks.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Numeric.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- Numeric.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Numeric.h \
+  ../Common/Context.h
 Generator.o: Generator.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Create.h \
- ../Common/Context.h ../Parser/OpenFile.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Create.h \
+  ../Common/Context.h ../Parser/OpenFile.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- Create.h ../Common/Context.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Create.h \
+  ../Common/Context.h
 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 ../Geo/Geo.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Create.h \
- ../Geo/MinMax.h
-STL.o: STL.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h
-SMS.o: SMS.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Create.h \
- ../Geo/MinMax.h ../Geo/CAD.h ../Mesh/Mesh.h ../Common/Context.h \
- ../Common/Const.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Create.h \
+  ../Geo/MinMax.h
+STL.o: STL.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
+SMS.o: SMS.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Geo/Geo.h Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h \
+  Metric.h Create.h ../Geo/MinMax.h ../Geo/CAD.h ../Mesh/Mesh.h \
+  ../Common/Context.h ../Common/Const.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h SwapPatterns.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h SwapPatterns.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- Numeric.h Interpolation.h ../Adapt/nrutil.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Numeric.h \
+  Interpolation.h ../Adapt/nrutil.h
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h \
- Matrix.h Interpolation.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Matrix.h \
+  Interpolation.h
 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 Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h
-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 \
- ../Common/Const.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Numeric.h \
- Interpolation.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h
+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 ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Mesh.h Numeric.h \
+  Interpolation.h
 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 ../Geo/Geo.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Interpolation.h \
- Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h Interpolation.h \
+  Numeric.h
 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 ../Common/Const.h Mesh.h Vertex.h \
- Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h Mesh.h Vertex.h \
+  Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h
 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 Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Simplex.h Edge.h \
+  ../Geo/ExtrudeParams.h Metric.h
 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 Vertex.h ../Common/Context.h \
- ../Common/Const.h
-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 Mesh.h Vertex.h Simplex.h Edge.h \
- ../Geo/ExtrudeParams.h Metric.h ../Common/Const.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h Vertex.h ../Common/Context.h \
+  ../Common/Const.h
+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 \
+  Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
+  ../Common/Const.h
 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 ../Common/Const.h ../Geo/Geo.h \
- Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
- Numeric.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  Mesh.h Vertex.h Simplex.h Edge.h ../Geo/ExtrudeParams.h Metric.h \
+  Numeric.h
diff --git a/Motif/Makefile b/Motif/Makefile
index e538429e2b..8a09965b9f 100644
--- a/Motif/Makefile
+++ b/Motif/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.11 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.12 2001-04-22 18:13:03 geuzaine Exp $
 #
 # Makefile for "libMotif.a"
 #
@@ -71,117 +71,148 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
-Main.o: Main.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/GmshVersion.h ../Geo/Geo.h ../Geo/Verif.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
- ../Common/Context.h ../Common/Options.h ../Parser/Parser.h Widgets.h \
- Pixmaps.h XColors.h XContext.h XRessources.h CbContext.h CbGeom.h \
- Register.h Geometry.h ../Parser/OpenFile.h ../Common/GetOptions.h \
- ../Common/Static.h XStatic.h
+Main.o: Main.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/GmshVersion.h ../Geo/Geo.h ../Geo/Verif.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
+  ../Common/Context.h ../Common/Options.h ../Parser/Parser.h Widgets.h \
+  Pixmaps.h XColors.h XContext.h XRessources.h CbContext.h CbGeom.h \
+  Register.h Geometry.h ../Parser/OpenFile.h ../Common/GetOptions.h \
+  ../Common/Static.h XStatic.h
 Widgets.o: Widgets.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Common/Context.h \
- ../Common/Const.h XContext.h Info.h Widgets.h Help.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Common/Context.h \
+  ../Common/Const.h XContext.h Info.h Widgets.h Help.h
 Geometry.o: Geometry.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/Context.h ../Common/Const.h XContext.h Widgets.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/Context.h ../Common/Const.h XContext.h Widgets.h
 Register.o: Register.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/Context.h ../Common/Const.h XContext.h Widgets.h Register.h \
- CbOptions.h CbContext.h CbFile.h CbGeom.h CbMesh.h CbPost.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/Context.h ../Common/Const.h XContext.h Widgets.h Register.h \
+  CbOptions.h CbContext.h CbFile.h CbGeom.h CbMesh.h CbPost.h
 Pixmaps.o: Pixmaps.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h Widgets.h \
- ../Common/Context.h ../Common/Const.h Pixmaps.h ../Common/Bitmaps.h \
- XColors.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h Widgets.h \
+  ../Common/Context.h ../Common/Const.h Pixmaps.h ../Common/Bitmaps.h \
+  XColors.h
 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 ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
- ../Common/Context.h ../Geo/MinMax.h Widgets.h XContext.h \
- ../Graphics/gl2ps.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
+  ../Common/Context.h ../Geo/MinMax.h Widgets.h XContext.h \
+  ../Graphics/gl2ps.h
 XColors.o: XColors.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h XContext.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h XContext.h
 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 ../Common/GmshUI.h \
- ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h \
- Widgets.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Common/GmshVersion.h ../Common/Context.h ../Common/Const.h Widgets.h
 CbContext.o: CbContext.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
- ../Common/Context.h XContext.h CbContext.h CbGeom.h CbMesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
+  ../Common/Context.h XContext.h CbContext.h CbGeom.h CbMesh.h
 CbPost.o: CbPost.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
- ../Common/Context.h XContext.h ../Parser/OpenFile.h CbPost.h CbGeom.h \
- CbMesh.h CbColorbar.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
+  ../Common/Context.h XContext.h ../Parser/OpenFile.h CbPost.h CbGeom.h \
+  CbMesh.h CbColorbar.h
 CbColorbar.o: CbColorbar.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Common/Const.h XColors.h Widgets.h Register.h ../Common/Context.h \
- XContext.h ../Common/ColorTable.h CbColorbar.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Common/Const.h \
+  XColors.h Widgets.h Register.h ../Common/Context.h XContext.h \
+  ../Common/ColorTable.h CbColorbar.h
 CbGeom.o: CbGeom.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
- ../Common/Context.h ../Geo/Verif.h ../Parser/OpenFile.h CbGeom.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
+  ../Common/Context.h ../Geo/Verif.h ../Parser/OpenFile.h CbGeom.h
 CbMesh.o: CbMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h CbMesh.h \
- ../Common/Context.h Widgets.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h CbMesh.h \
+  ../Common/Context.h Widgets.h
 CbOptions.o: CbOptions.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
- ../Geo/Verif.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
- ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
- ../Common/ColorTable.h Widgets.h Pixmaps.h ../Common/Context.h \
- ../Common/Options.h XContext.h Register.h ../Common/Timer.h \
- ../Geo/Visibility.h CbOptions.h CbGeom.h CbMesh.h CbPost.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Geo/Geo.h \
+  ../Geo/Verif.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h \
+  ../Graphics/Draw.h ../Common/Views.h ../Common/Const.h \
+  ../Common/ColorTable.h Widgets.h Pixmaps.h ../Common/Context.h \
+  ../Common/Options.h XContext.h Register.h ../Common/Timer.h \
+  ../Geo/Visibility.h CbOptions.h CbGeom.h CbMesh.h CbPost.h
 CbFile.o: CbFile.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
- ../Parser/OpenFile.h ../Common/Const.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/ColorTable.h Widgets.h \
- ../Common/Context.h ../Common/Options.h ../Graphics/CreateFile.h \
- CbFile.h CbColorbar.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h \
+  ../Parser/OpenFile.h ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
+  ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Mesh/Metric.h ../Graphics/Draw.h ../Common/Views.h \
+  ../Common/ColorTable.h Widgets.h ../Common/Context.h \
+  ../Common/Options.h ../Graphics/CreateFile.h CbFile.h CbColorbar.h
 CbInput.o: CbInput.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
- ../Common/Context.h ../Common/Options.h XContext.h Register.h \
- CbContext.h CbGeom.h CbPost.h CbMesh.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h Widgets.h \
+  ../Common/Context.h ../Common/Options.h XContext.h Register.h \
+  CbContext.h CbGeom.h CbPost.h CbMesh.h
 CbGeneral.o: CbGeneral.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
- ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
- ../Common/Context.h XContext.h Widgets.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
+  ../Common/Context.h XContext.h Widgets.h
diff --git a/Parser/Makefile b/Parser/Makefile
index e3603cbd5e..d36e8b0e5a 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.18 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.19 2001-04-22 18:13:03 geuzaine Exp $
 #
 # Makefile for "libParser.a"
 #
@@ -64,26 +64,28 @@ depend:
 
 # DO NOT DELETE THIS LINE
 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 ../Common/Const.h ../Geo/Geo.h \
- ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
- ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Gmsh.tab.cpp.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h ../Geo/Geo.h \
+  ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Gmsh.tab.cpp.h
 Gmsh.tab.o: Gmsh.tab.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
- ../Common/Context.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Geo/DataBase.h \
- ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
- ../Mesh/Create.h ../Geo/StepGeomDatabase.h ../Common/Options.h \
- ../Common/Colors.h Parser.h OpenFile.h FunctionManager.h \
- ../Common/Timer.h ../Graphics/CreateFile.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
+  ../Common/Context.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Geo/DataBase.h \
+  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Mesh/Create.h ../Geo/StepGeomDatabase.h ../Common/Options.h \
+  ../Common/Colors.h Parser.h OpenFile.h FunctionManager.h \
+  ../Common/Timer.h ../Graphics/CreateFile.h
 OpenFile.o: OpenFile.cpp ../Common/Gmsh.h ../Common/Message.h \
- ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
- ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
- ../Common/Context.h Parser.h OpenFile.h ../Geo/Geo.h ../Mesh/Mesh.h \
- ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
- ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Common/Views.h \
- ../Common/ColorTable.h ../Geo/MinMax.h ../Geo/Visibility.h \
- ../Common/GmshUI.h ../Graphics/Draw.h ../Motif/Widgets.h
+  ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h ../Common/Const.h \
+  ../Common/Context.h Parser.h OpenFile.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Common/Views.h \
+  ../Common/ColorTable.h ../Geo/MinMax.h ../Geo/Visibility.h \
+  ../Common/GmshUI.h /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa.h \
+  /home/geuzaine/SOURCES/Mesa-3.1/include/GL/xmesa_x.h ../Graphics/Draw.h \
+  ../Motif/Widgets.h
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index d70d457715..85596a5e21 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.11 2001-04-17 06:55:48 geuzaine Exp $
+// $Id: OpenFile.cpp,v 1.12 2001-04-22 18:13:03 geuzaine Exp $
 #include "Gmsh.h"
 #include "Const.h"
 #include "Context.h"
@@ -101,11 +101,9 @@ void OpenProblem(char *name){
   strncpy(CTX.basefilename,name,NAME_STR_L);
 
   strcpy(ext,name+(strlen(name)-4));
-  if(!strcmp(ext,".GEO") || 
-     !strcmp(ext,".geo") || 
-     !strcmp(ext,".msh") || 
-     !strcmp(ext,".pos")
-     ){
+  if(!strcmp(ext,".geo") || !strcmp(ext,".GEO") ||
+     !strcmp(ext,".msh") || !strcmp(ext,".MSH") ||
+     !strcmp(ext,".pos") || !strcmp(ext,".POS")){
     CTX.basefilename[strlen(name)-4] = '\0';
   }
   else{
@@ -125,13 +123,10 @@ void OpenProblem(char *name){
 #endif
   }
 
-  Post_ViewComputeBBox = 1;
   int nb = List_Nbr(Post_ViewList);
 
   status = ParseFile(CTX.filename);  
 
-  Post_ViewComputeBBox = 0;
-
   ApplyLcFactor(THEM);
 
   if(!status) mai3d(THEM,0);  
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 1ee00ce503..9e7f23209b 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.6 2001-03-13 22:51:23 remacle Exp $
+# $Id: Makefile,v 1.7 2001-04-22 18:13:03 geuzaine Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -48,3 +48,15 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
+Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
+  PluginManager.h CutPlane.h LevelsetPlugin.h CutSphere.h CutMap.h
+CutPlane.o: CutPlane.cpp CutPlane.h LevelsetPlugin.h Plugin.h \
+  ../Common/Options.h ../Common/Message.h
+CutSphere.o: CutSphere.cpp CutSphere.h LevelsetPlugin.h Plugin.h \
+  ../Common/Options.h ../Common/Message.h
+LevelsetPlugin.o: LevelsetPlugin.cpp LevelsetPlugin.h Plugin.h \
+  ../Common/Options.h ../Common/Message.h ../DataStr/List.h \
+  ../Common/Views.h ../Common/Const.h ../Common/ColorTable.h \
+  ../Graphics/Iso.h
+CutMap.o: CutMap.cpp CutMap.h LevelsetPlugin.h Plugin.h \
+  ../Common/Options.h ../Common/Message.h
diff --git a/doc/VERSIONS b/doc/VERSIONS
index 92687a0c97..3c647779ff 100644
--- a/doc/VERSIONS
+++ b/doc/VERSIONS
@@ -1,4 +1,6 @@
-$Id: VERSIONS,v 1.7 2001-04-17 06:55:48 geuzaine Exp $
+$Id: VERSIONS,v 1.8 2001-04-22 18:13:03 geuzaine Exp $
+
+New in 1.18: More coherence throughout post-processing;
 
 New in 1.17: Corrected physical points saving; fixed parsing of DOS
 files (carriage return problems); easier geometrical selections
diff --git a/jpeg/Makefile b/jpeg/Makefile
index 6b8cd89417..a07e9fbaef 100644
--- a/jpeg/Makefile
+++ b/jpeg/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.11 2001-03-10 19:55:07 remacle Exp $
+# $Id: Makefile,v 1.12 2001-04-22 18:13:03 geuzaine Exp $
 #
 # Makefile for "libJpeg.a"
 #
@@ -51,43 +51,42 @@ depend:
 	$(RM) $(RMFLAGS) Makefile.new
 
 # DO NOT DELETE THIS LINE
-jcomapi.o: jcomapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+jcomapi.o: jcomapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
+  jerror.h
 jutils.o: jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
- jerror.h
-jerror.o: jerror.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jversion.h jerror.h
-jmemmgr.o: jmemmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jmemsys.h
+  jerror.h
+jerror.o: jerror.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jversion.h \
+  jerror.h
+jmemmgr.o: jmemmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
+  jerror.h jmemsys.h
 jmemnobs.o: jmemnobs.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jmemsys.h
+  jpegint.h jerror.h jmemsys.h
 jcapi.o: jcapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
- jerror.h
-jcparam.o: jcparam.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
-jdatadst.o: jdatadst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jerror.h
+  jerror.h
+jcparam.o: jcparam.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
+  jerror.h
+jdatadst.o: jdatadst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h
 jcmaster.o: jcmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
 jcmarker.o: jcmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
 jcmainct.o: jcmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
 jcprepct.o: jcprepct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
 jccoefct.o: jccoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
-jccolor.o: jccolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
+jccolor.o: jccolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
+  jerror.h
 jcsample.o: jcsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h
+  jpegint.h jerror.h
 jchuff.o: jchuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h \
- jerror.h
+  jerror.h
 jcdctmgr.o: jcdctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jdct.h
+  jpegint.h jerror.h jdct.h
 jfdctfst.o: jfdctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jdct.h
+  jpegint.h jerror.h jdct.h
 jfdctflt.o: jfdctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jdct.h
+  jpegint.h jerror.h jdct.h
 jfdctint.o: jfdctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h \
- jpegint.h jerror.h jdct.h
+  jpegint.h jerror.h jdct.h
-- 
GitLab