From 6f14994599ac58a4e6e0e1d71a7f20c057bec440 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Thu, 28 Oct 2004 06:11:23 +0000
Subject: [PATCH] proof of concept for unproject (e.g. to add points with the
 mouse)

---
 Common/Makefile    | 27 ++++++++-------
 Fltk/Callbacks.cpp | 44 +++++++++++++-----------
 Fltk/Makefile      | 79 ++++++++++++++++++++++--------------------
 Fltk/Opengl.cpp    | 19 +++++++----
 Geo/Geo.h          |  1 +
 Graphics/Makefile  | 41 ++++++++++++----------
 Mesh/Makefile      |  8 ++---
 Parser/Makefile    | 19 ++++++-----
 Plugin/Makefile    | 85 +++++++++++++++++++++++++---------------------
 9 files changed, 179 insertions(+), 144 deletions(-)

diff --git a/Common/Makefile b/Common/Makefile
index 1437cbd853..ce5904def9 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.62 2004-10-20 14:38:56 remacle Exp $
+# $Id: Makefile,v 1.63 2004-10-28 06:11:22 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -68,22 +68,25 @@ Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
-  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h Context.h \
-  Options.h DefaultOptions.h Trackball.h
+  ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/GmshMatrix.h Context.h Options.h DefaultOptions.h Trackball.h
+AdaptiveViews.o: AdaptiveViews.cpp Views.h ColorTable.h ../DataStr/List.h \
+  VertexArray.h SmoothNormals.h GmshMatrix.h
 Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../Numeric/Numeric.h Views.h ColorTable.h VertexArray.h SmoothNormals.h \
-  Context.h Options.h
+  GmshMatrix.h Context.h Options.h
 Options.o: Options.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Gmsh.h ../DataStr/Malloc.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Tools.h GmshUI.h ../Geo/Geo.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
-  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
-  ../Mesh/Metric.h ../Mesh/Matrix.h ../Graphics/Draw.h Context.h \
-  ../Fltk/Solvers.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
-  ../Fltk/Colorbar_Window.h ../Fltk/File_Picker.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h Gmsh.h \
+  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../DataStr/Tools.h GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h \
+  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
+  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h \
+  ../Mesh/Matrix.h ../Graphics/Draw.h Context.h ../Fltk/Solvers.h \
+  ../Fltk/GUI.h ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
+  ../Fltk/File_Picker.h
 CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   GmshUI.h GmshVersion.h CommandLine.h ../Numeric/Numeric.h Context.h \
@@ -91,7 +94,7 @@ CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Views.h \
-  ColorTable.h ../Parser/OpenFile.h ../Parser/Parser.h
+  ColorTable.h GmshMatrix.h ../Parser/OpenFile.h ../Parser/Parser.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 \
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 6c3150112f..ab449a9483 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.292 2004-10-28 03:44:36 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.293 2004-10-28 06:11:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -45,6 +45,7 @@
 #include "PluginManager.h"
 #include "Visibility.h"
 #include "MinMax.h"
+#include "Numeric.h"
 
 using namespace std;
 
@@ -1667,32 +1668,37 @@ void geometry_elementary_add_new_point_cb(CALLBACK_ARGS)
 {
   WID->create_geometry_context_window(1);
 
-#if 0
-  WID->try_selection = 0;
   while(1) {
     Msg(STATUS3N, "Creating point");
-    Msg(ONSCREEN, "Click or enter coordinates\n"
-	"[Press 'q' to abort]");
-    WID->wait();
-    if(WID->quit_selection) {
-      WID->quit_selection = 0;
-      return;
+    Msg(ONSCREEN, "Click and/or enter coordinates\n"
+	"[Click 'Add' to add point or press 'q' to abort]");
+    Vertex *v;
+    Curve *c;
+    Surface *s;
+    char ib = SelectEntity(ENT_NONE, &v, &c, &s);
+    if(ib == 'q'){
+      break;
     }
-    if(WID->try_selection) {
-      WID->try_selection = 0;
+    else if(ib == 'c') { // mouse click
+      // find line in real space corresponding to current cursor position
       double p[3], d[3];
       unproject(WID->g_opengl_window->xpos, WID->g_opengl_window->ypos, p, d);
-      //printf("click: %d %d  -> p=%g %g %g  d=%g %g %g\n",
-      //	     WID->g_opengl_window->xpos, WID->g_opengl_window->ypos,
-      //	     p[0], p[1], p[2], d[0], d[1], d[2]);
-      // and find e.g. closest point to the cg update fields in dialog
+      // fin closest point to the center of gravity
+      double r[3] = {CTX.cg[0]-p[0], CTX.cg[1]-p[1], CTX.cg[2]-p[2]};
+      double t;
+      prosca(r, d, &t);
+      double sol[3] = {p[0]+t*d[0], p[1]+t*d[1], p[2]+t*d[2]};
       char str[32];
-      sprintf(str, "%g", p[0]); WID->context_geometry_input[2]->value(str);
-      sprintf(str, "%g", p[1]); WID->context_geometry_input[3]->value(str);
-      sprintf(str, "%g", p[2]); WID->context_geometry_input[4]->value(str);
+      sprintf(str, "%g", sol[0]); 
+      WID->context_geometry_input[2]->value(str);
+      sprintf(str, "%g", sol[1]);
+      WID->context_geometry_input[3]->value(str);
+      sprintf(str, "%g", sol[2]);
+      WID->context_geometry_input[4]->value(str);
     }
   }
-#endif
+  Msg(STATUS3N, "Ready");
+  Msg(ONSCREEN, "");
 }
 
 static void _new_multiline(int type)
diff --git a/Fltk/Makefile b/Fltk/Makefile
index 4cd75bf4e5..c67721718c 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.58 2004-10-16 22:15:17 geuzaine Exp $
+# $Id: Makefile,v 1.59 2004-10-28 06:11:22 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -66,32 +66,36 @@ depend:
 Main.o: Main.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/Gmsh.h ../DataStr/Malloc.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  ../Common/GmshUI.h ../Common/GmshVersion.h ../Geo/Geo.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
-  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Context.h \
-  ../Parser/Parser.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  File_Picker.h ../Parser/OpenFile.h ../Common/CommandLine.h \
-  ../Numeric/Numeric.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/Gmsh.h \
+  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../DataStr/Tools.h ../Common/GmshUI.h ../Common/GmshVersion.h \
+  ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Mesh/STL.h ../Mesh/Metric.h ../Mesh/Matrix.h ../Graphics/Draw.h \
+  ../Common/Context.h ../Parser/Parser.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h File_Picker.h ../Parser/OpenFile.h \
+  ../Common/CommandLine.h ../Numeric/Numeric.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/Options.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h File_Picker.h
+  Opengl_Window.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Mesh/STL.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Mesh/Metric.h ../Mesh/Matrix.h Colorbar_Window.h \
+  ../Common/ColorTable.h File_Picker.h
 GUI.o: GUI.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/Gmsh.h ../DataStr/Malloc.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
-  ../Common/GmshUI.h ../Numeric/Numeric.h ../Common/GmshVersion.h \
-  ../Common/Context.h ../Geo/Geo.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
-  ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ../Graphics/Draw.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h File_Picker.h Callbacks.h Bitmaps.h Win32Icon.h \
-  ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/Gmsh.h \
+  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../DataStr/Tools.h ../Common/GmshUI.h ../Numeric/Numeric.h \
+  ../Common/GmshVersion.h ../Common/Context.h ../Geo/Geo.h ../Geo/CAD.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
+  ../Mesh/Metric.h ../Mesh/Matrix.h ../Graphics/Draw.h GUI.h \
+  Opengl_Window.h Colorbar_Window.h File_Picker.h Callbacks.h Bitmaps.h \
+  Win32Icon.h ../Parser/OpenFile.h ../Common/CommandLine.h Solvers.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 \
@@ -100,11 +104,11 @@ Callbacks.o: Callbacks.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/STL.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
   ../Mesh/Metric.h ../Mesh/Matrix.h ../Geo/ExtractContour.h \
   ../Graphics/Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/Timer.h ../Graphics/CreateFile.h ../Parser/OpenFile.h \
-  ../Common/CommandLine.h ../Common/Context.h ../Common/Options.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h File_Picker.h Callbacks.h \
-  ../Plugin/Plugin.h ../Plugin/PluginManager.h ../Common/Visibility.h \
-  ../Geo/MinMax.h Solvers.h
+  ../Common/GmshMatrix.h ../Common/Timer.h ../Graphics/CreateFile.h \
+  ../Parser/OpenFile.h ../Common/CommandLine.h ../Common/Context.h \
+  ../Common/Options.h GUI.h Opengl_Window.h Colorbar_Window.h \
+  File_Picker.h Callbacks.h ../Plugin/Plugin.h ../Plugin/PluginManager.h \
+  ../Common/Visibility.h ../Geo/MinMax.h Solvers.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 \
@@ -113,8 +117,8 @@ Opengl.o: Opengl.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  File_Picker.h ../Graphics/gl2ps.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h File_Picker.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 ../Numeric/Numeric.h \
@@ -123,22 +127,25 @@ Opengl_Window.o: Opengl_Window.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  File_Picker.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h File_Picker.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 ../Numeric/Numeric.h GUI.h Opengl_Window.h \
-  Colorbar_Window.h ../Common/ColorTable.h File_Picker.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
+  ../Mesh/Matrix.h Colorbar_Window.h ../Common/ColorTable.h File_Picker.h \
   ../Common/Context.h
 GmshServer.o: GmshServer.cpp ../Common/Context.h ../DataStr/List.h
 Solvers.o: Solvers.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../utils/solvers/GmshClient.h \
   GmshServer.h ../Parser/OpenFile.h Solvers.h ../Common/GmshUI.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h ../Common/ColorTable.h File_Picker.h \
-  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
-  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
-  ../Common/Context.h
+  Opengl_Window.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
+  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Mesh/STL.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Mesh/Metric.h ../Mesh/Matrix.h Colorbar_Window.h \
+  ../Common/ColorTable.h File_Picker.h ../Graphics/Draw.h \
+  ../Common/Views.h ../Common/GmshMatrix.h ../Common/Context.h
diff --git a/Fltk/Opengl.cpp b/Fltk/Opengl.cpp
index 20bda3753e..e1a9d2f27f 100644
--- a/Fltk/Opengl.cpp
+++ b/Fltk/Opengl.cpp
@@ -1,4 +1,4 @@
-// $Id: Opengl.cpp,v 1.42 2004-05-22 01:29:46 geuzaine Exp $
+// $Id: Opengl.cpp,v 1.43 2004-10-28 06:11:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -166,12 +166,17 @@ char SelectEntity(int type, Vertex ** v, Curve ** c, Surface ** s)
     }
     if(WID->try_selection) {
       WID->try_selection = 0;
-      Process_SelectionBuffer(Fl::event_x(), Fl::event_y(), &hits, ii, jj);
-      Filter_SelectionBuffer(hits, ii, jj, v, c, s, &M);
-      if(check_type(type, *v, *c, *s)) {
-        HighlightEntity(*v, *c, *s, 1);
-        WID->selection = 0;
-        return 'l';
+      if(type == ENT_NONE){ // just report the mouse click
+	return 'c';
+      }
+      else{
+	Process_SelectionBuffer(Fl::event_x(), Fl::event_y(), &hits, ii, jj);
+	Filter_SelectionBuffer(hits, ii, jj, v, c, s, &M);
+	if(check_type(type, *v, *c, *s)) {
+	  HighlightEntity(*v, *c, *s, 1);
+	  WID->selection = 0;
+	  return 'l';
+	}
       }
     }
   }
diff --git a/Geo/Geo.h b/Geo/Geo.h
index dd3c81e04d..a52ba12819 100644
--- a/Geo/Geo.h
+++ b/Geo/Geo.h
@@ -32,6 +32,7 @@
 
 #define NMAX_SPLINE   100
 
+#define ENT_NONE     0
 #define ENT_POINT    1
 #define ENT_LINE     2
 #define ENT_SURFACE  3
diff --git a/Graphics/Makefile b/Graphics/Makefile
index f836d5db95..22b05caa55 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.63 2004-09-25 06:16:13 geuzaine Exp $
+# $Id: Makefile,v 1.64 2004-10-28 06:11:22 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -76,7 +76,8 @@ Draw.o: Draw.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/Context.h ../Geo/MinMax.h ../Numeric/Numeric.h
+  ../Common/GmshMatrix.h ../Common/Context.h ../Geo/MinMax.h \
+  ../Numeric/Numeric.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 ../Geo/CAD.h ../Mesh/Mesh.h \
@@ -84,7 +85,8 @@ Mesh.o: Mesh.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/Context.h ../Geo/MinMax.h gl2ps.h ../Numeric/Numeric.h
+  ../Common/GmshMatrix.h ../Common/Context.h ../Geo/MinMax.h gl2ps.h \
+  ../Numeric/Numeric.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 ../Numeric/Numeric.h ../Geo/Geo.h ../Geo/CAD.h \
@@ -92,9 +94,9 @@ Geom.o: Geom.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Mesh/Utils.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/Context.h ../Mesh/Interpolation.h \
-  ../Plugin/Plugin.h ../Common/Options.h ../Plugin/PluginManager.h \
-  gl2ps.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Mesh/Interpolation.h ../Plugin/Plugin.h ../Common/Options.h \
+  ../Plugin/PluginManager.h gl2ps.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 ../Numeric/Numeric.h ../Geo/Geo.h ../Mesh/Mesh.h \
@@ -102,23 +104,23 @@ Post.o: Post.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/Context.h gl2ps.h
+  ../Common/GmshMatrix.h ../Common/Context.h gl2ps.h
 PostElement.o: PostElement.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \
   ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h Iso.h \
-  ../Common/Context.h ../Numeric/Numeric.h
+  ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
+  ../Common/GmshMatrix.h Iso.h ../Common/Context.h ../Numeric/Numeric.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 \
   ../Common/GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Draw.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h \
-  ../Numeric/Numeric.h
+  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshMatrix.h \
+  ../Common/Context.h ../Numeric/Numeric.h
 Entity.o: Entity.cpp ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
@@ -126,12 +128,12 @@ Entity.o: Entity.cpp ../Mesh/Mesh.h ../DataStr/List.h ../DataStr/Tree.h \
   ../Mesh/Matrix.h ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/Tools.h ../Common/GmshUI.h \
   ../Numeric/Numeric.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/Context.h
 ReadImg.o: ReadImg.cpp ReadImg.h ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.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 \
@@ -139,7 +141,8 @@ Scale.o: Scale.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/STL.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
   ../Mesh/Metric.h ../Mesh/Matrix.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/Context.h gl2ps.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.h ../Common/Context.h \
+  gl2ps.h
 Graph2D.o: Graph2D.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \
@@ -148,14 +151,15 @@ Graph2D.o: Graph2D.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Draw.h ../Common/Views.h ../Common/ColorTable.h \
-  gl2ps.h
+  ../Common/GmshMatrix.h gl2ps.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 ../Numeric/Numeric.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Draw.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h gl2ps.h
+  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshMatrix.h \
+  ../Common/Context.h gl2ps.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 \
@@ -163,8 +167,9 @@ CreateFile.o: CreateFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Parser/OpenFile.h Draw.h ../Common/Views.h \
-  ../Common/ColorTable.h ../Common/Context.h ../Common/Options.h gl2ps.h \
-  gl2gif.h gl2jpeg.h gl2png.h gl2ppm.h gl2yuv.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/Options.h gl2ps.h gl2gif.h gl2jpeg.h gl2png.h gl2ppm.h \
+  gl2yuv.h
 gl2ps.o: gl2ps.cpp gl2ps.h
 gl2gif.o: gl2gif.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 2ab920904a..6d12bd504c 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.71 2004-08-09 10:32:32 geuzaine Exp $
+# $Id: Makefile,v 1.72 2004-10-28 06:11:22 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -225,8 +225,8 @@ depend:
   ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h STL.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h Metric.h Matrix.h 2D_Mesh.h 3D_Mesh.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Numeric/Numeric.h \
-  ../Common/Context.h
+  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshMatrix.h \
+  ../Numeric/Numeric.h ../Common/Context.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 ../Numeric/Numeric.h ../Geo/Geo.h \
@@ -281,7 +281,7 @@ Generator.o: Generator.cpp ../Common/Gmsh.h ../Common/Message.h \
   Vertex.h Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h Metric.h Matrix.h \
   Create.h ../Common/Context.h ../Parser/OpenFile.h ../Common/Views.h \
-  ../Common/ColorTable.h
+  ../Common/ColorTable.h ../Common/GmshMatrix.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 ../Numeric/Numeric.h ../Geo/Geo.h \
diff --git a/Parser/Makefile b/Parser/Makefile
index af544b8c96..d49f1ac87c 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.62 2004-09-25 06:16:14 geuzaine Exp $
+# $Id: Makefile,v 1.63 2004-10-28 06:11:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -69,8 +69,8 @@ Gmsh.yy.o: Gmsh.yy.cpp ../Common/Gmsh.h ../Common/Message.h \
 Gmsh.tab.o: Gmsh.tab.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Parallel/ParUtil.h ../Common/Gmsh.h \
-  ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Parallel/ParUtil.h \
+  ../Common/Gmsh.h ../DataStr/Malloc.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../DataStr/Tools.h ../Numeric/Numeric.h ../Common/Context.h \
   ../Geo/Geo.h ../Geo/GeoUtils.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
@@ -85,10 +85,11 @@ OpenFile.o: OpenFile.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Common/Context.h Parser.h OpenFile.h ../Common/CommandLine.h \
   ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
-  ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
-  ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h ../Mesh/Matrix.h \
-  ../Geo/MinMax.h ../Common/Visibility.h ../Graphics/ReadImg.h \
-  ../Common/GmshUI.h ../Graphics/Draw.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Fltk/File_Picker.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
+  ../Mesh/Metric.h ../Mesh/Matrix.h ../Geo/MinMax.h \
+  ../Common/Visibility.h ../Graphics/ReadImg.h ../Common/GmshUI.h \
+  ../Graphics/Draw.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
+  ../Fltk/Colorbar_Window.h ../Fltk/File_Picker.h
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 69175b0896..e7a15077ab 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.55 2004-09-25 06:16:14 geuzaine Exp $
+# $Id: Makefile,v 1.56 2004-10-28 06:11:23 geuzaine Exp $
 #
 # Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 #
@@ -68,10 +68,11 @@ depend:
 # DO NOT DELETE THIS LINE
 Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h PluginManager.h \
-  CutMap.h Levelset.h CutGrid.h StreamLines.h CutPlane.h CutParametric.h \
-  CutSphere.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h Extract.h \
-  Harmonic2Time.h DecomposeInSimplex.h Smooth.h Transform.h Triangulate.h \
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h PluginManager.h CutMap.h Levelset.h CutGrid.h \
+  StreamLines.h CutPlane.h CutParametric.h CutSphere.h Skin.h \
+  ../DataStr/Tree.h ../DataStr/avl.h Extract.h Harmonic2Time.h \
+  DecomposeInSimplex.h Smooth.h Transform.h Triangulate.h \
   SphericalRaise.h DisplacementRaise.h StructuralSolver.h ../Geo/Geo.h \
   ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
@@ -79,94 +80,100 @@ Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
 Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  DecomposeInSimplex.h ../DataStr/Tools.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../Graphics/Iso.h ../Numeric/Numeric.h \
-  ../Common/Context.h ../DataStr/Malloc.h
+  ../Common/GmshMatrix.h DecomposeInSimplex.h ../DataStr/Tools.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Graphics/Iso.h \
+  ../Numeric/Numeric.h ../Common/Context.h ../DataStr/Malloc.h
 CutPlane.o: CutPlane.cpp CutPlane.h Levelset.h Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/Context.h
 CutSphere.o: CutSphere.cpp CutSphere.h Levelset.h Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/Context.h
 CutMap.o: CutMap.cpp CutMap.h Levelset.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/Context.h
 Smooth.o: Smooth.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Smooth.h \
-  ../Common/Context.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h Smooth.h ../Common/Context.h
 CutParametric.o: CutParametric.cpp OctreePost.h Octree.h \
   OctreeInternals.h CutParametric.h Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  ../Common/Context.h
+  ../Common/GmshMatrix.h ../Common/Context.h
 Octree.o: Octree.cpp Octree.h OctreeInternals.h
 OctreeInternals.o: OctreeInternals.cpp ../Common/Message.h \
   OctreeInternals.h
 OctreePost.o: OctreePost.cpp Octree.h OctreeInternals.h OctreePost.h \
   ../DataStr/List.h ../Common/Views.h ../Common/ColorTable.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Numeric/Numeric.h \
-  ../Common/Message.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Numeric/Numeric.h ../Common/Message.h
 StreamLines.o: StreamLines.cpp OctreePost.h Octree.h OctreeInternals.h \
   StreamLines.h Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h ../Common/Context.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h ../Common/Context.h
 CutGrid.o: CutGrid.cpp OctreePost.h Octree.h OctreeInternals.h CutGrid.h \
   Plugin.h ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h ../Common/Context.h
 Transform.o: Transform.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  Transform.h ../Common/Context.h
+  ../Common/GmshMatrix.h Transform.h ../Common/Context.h
 Triangulate.o: Triangulate.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h Plugin.h ../Common/Options.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Triangulate.h ../Common/Context.h \
-  ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
-  ../Mesh/STL.h ../Mesh/Metric.h ../Mesh/Matrix.h ../Mesh/Utils.h \
-  ../Mesh/Create.h
+  ../Common/SmoothNormals.h ../Common/GmshMatrix.h Triangulate.h \
+  ../Common/Context.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
+  ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
+  ../Geo/ExtrudeParams.h ../Mesh/STL.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  ../Mesh/Utils.h ../Mesh/Create.h
 SphericalRaise.o: SphericalRaise.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  SphericalRaise.h ../Common/Context.h ../Numeric/Numeric.h
+  ../Common/GmshMatrix.h SphericalRaise.h ../Common/Context.h \
+  ../Numeric/Numeric.h
 DisplacementRaise.o: DisplacementRaise.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  DisplacementRaise.h ../Common/Context.h ../Numeric/Numeric.h
+  ../Common/GmshMatrix.h DisplacementRaise.h ../Common/Context.h \
+  ../Numeric/Numeric.h
 StructuralSolver.o: StructuralSolver.cpp StructuralSolver.h ../Geo/Geo.h \
   ../DataStr/List.h ../Mesh/Mesh.h ../DataStr/Tree.h ../DataStr/avl.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h Plugin.h ../Common/Options.h ../Common/Message.h \
-  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshUI.h \
-  ../Common/Context.h ../DataStr/Tools.h ../Graphics/Draw.h \
-  ../Mesh/Utils.h ../Numeric/Numeric.h
+  ../Common/Views.h ../Common/ColorTable.h ../Common/GmshMatrix.h \
+  ../Common/GmshUI.h ../Common/Context.h ../DataStr/Tools.h \
+  ../Graphics/Draw.h ../Mesh/Utils.h ../Numeric/Numeric.h
 Skin.o: Skin.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Skin.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Common/Context.h \
-  ../DataStr/Malloc.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Common/Context.h ../DataStr/Malloc.h
 Extract.o: Extract.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Extract.h \
-  ../Common/Context.h ../DataStr/Malloc.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h Extract.h ../Common/Context.h \
+  ../DataStr/Malloc.h
 DecomposeInSimplex.o: DecomposeInSimplex.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  DecomposeInSimplex.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Common/Context.h ../DataStr/Malloc.h
+  ../Common/GmshMatrix.h DecomposeInSimplex.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Common/Context.h ../DataStr/Malloc.h
 Evaluate.o: Evaluate.cpp Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../DataStr/List.h \
-  ../Common/VertexArray.h ../Common/SmoothNormals.h Evaluate.h \
-  ../Common/Context.h ../Numeric/Numeric.h
+  ../Common/VertexArray.h ../Common/SmoothNormals.h \
+  ../Common/GmshMatrix.h Evaluate.h ../Common/Context.h \
+  ../Numeric/Numeric.h
 Harmonic2Time.o: Harmonic2Time.cpp Plugin.h ../Common/Options.h \
   ../Common/Message.h ../Common/Views.h ../Common/ColorTable.h \
   ../DataStr/List.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  Harmonic2Time.h ../Common/Context.h ../Numeric/Numeric.h
+  ../Common/GmshMatrix.h Harmonic2Time.h ../Common/Context.h \
+  ../Numeric/Numeric.h
-- 
GitLab