diff --git a/Common/Makefile b/Common/Makefile
index a6707e0bc3dfba23dbe387deae7472a09759685c..37ee59fe3a3144655c23b00b6b5e4228b4476c2e 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.158 2008-02-23 15:30:06 geuzaine Exp $
+# $Id: Makefile,v 1.159 2008-02-24 19:59:02 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -73,9 +73,9 @@ Options.o: Options.cpp GmshUI.h GmshDefines.h Message.h \
   ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Mesh/Generator.h Context.h ../DataStr/List.h \
-  Options.h ../Post/ColorTable.h ../Mesh/BackgroundMesh.h \
-  ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \
-  ../Common/Message.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
+  Options.h ../Mesh/BackgroundMesh.h ../Plugin/PluginManager.h \
+  ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
   ../Common/GmshMatrix.h ../Fltk/Solvers.h ../Fltk/GUI.h \
   ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Common/GmshUI.h \
   ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h
@@ -86,19 +86,27 @@ CommandLine.o: CommandLine.cpp GmshUI.h GmshDefines.h GmshVersion.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
   ../Post/ColorTable.h ../Parser/OpenFile.h ../Parser/CreateFile.h \
   ../Parser/Parser.h ../DataStr/Tree.h ../DataStr/avl.h ../Geo/GModel.h \
-  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h OS.h
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h OS.h
 OS.o: OS.cpp Message.h
 Visibility.o: Visibility.cpp Visibility.h GmshDefines.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GModel.h \
-  ../Geo/GFace.h ../Geo/GRegion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Parser/Parser.h ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Parser/Parser.h \
+  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h
 Trackball.o: Trackball.cpp Trackball.h
 VertexArray.o: VertexArray.cpp VertexArray.h ../Geo/SVector3.h \
   ../Geo/SPoint3.h Context.h ../DataStr/List.h ../Numeric/Numeric.h \
diff --git a/Fltk/Makefile b/Fltk/Makefile
index dba21ae265a5dcca34b7b85ee8da6ee8f23a7b98..29f4857e399d043c6c57999498e4e435356bb918 100644
--- a/Fltk/Makefile
+++ b/Fltk/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.170 2008-02-23 15:30:07 geuzaine Exp $
+# $Id: Makefile,v 1.171 2008-02-24 19:59:02 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -79,14 +79,20 @@ Main.o: Main.cpp GUI.h Opengl_Window.h Colorbar_Window.h \
   ../Numeric/NumericEmbedded.h Solvers.h ../Plugin/PluginManager.h \
   ../Plugin/Plugin.h ../Post/PView.h ../Post/PViewData.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../Common/GmshMatrix.h ../Geo/GModel.h \
-  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
-  ../Geo/gmshSurface.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
-  ../Geo/GEdge.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \
+  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
+  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \
+  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
+  ../Mesh/BackgroundMesh.h
 Message.o: Message.cpp ../Common/Message.h ../Common/GmshUI.h \
   ../Common/Context.h ../DataStr/List.h ../Common/Options.h \
   ../Post/ColorTable.h GUI.h Opengl_Window.h Colorbar_Window.h \
@@ -100,8 +106,8 @@ GUI.o: GUI.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \
   ../Common/CommandLine.h ../Mesh/Generator.h Solvers.h \
   ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Post/PView.h \
   ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \
-  Shortcut_Window.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../Common/GmshMatrix.h Shortcut_Window.h
 GUI_Extras.o: GUI_Extras.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \
   ../Parser/CreateFile.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Context.h ../DataStr/List.h ../Graphics/Draw.h \
@@ -110,82 +116,105 @@ GUI_Extras.o: GUI_Extras.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \
   Shortcut_Window.h File_Picker.h
 GUI_Projection.o: GUI_Projection.cpp ../Geo/GModelIO_Fourier.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \
-  ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Options.h \
-  ../Post/ColorTable.h ../Common/Context.h ../DataStr/List.h \
-  ../Parser/OpenFile.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \
-  ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h GUI_Projection.h \
-  ../Common/GmshUI.h ../Geo/GModel.h ../Geo/fourierProjectionFace.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h Popup_Button.h \
-  SpherePosition_Widget.h Shortcut_Window.h GUI_Extras.h \
-  ../Geo/fourierFace.h ../Geo/fourierEdge.h ../Geo/fourierVertex.h \
-  ../Common/Message.h
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Graphics/Draw.h \
+  ../Common/Options.h ../Post/ColorTable.h ../Common/Context.h \
+  ../DataStr/List.h ../Parser/OpenFile.h ../Graphics/SelectBuffer.h \
+  GUI_Projection.h ../Common/GmshUI.h ../Geo/fourierProjectionFace.h \
+  ../Geo/GModel.h ../Geo/Range.h GUI.h Opengl_Window.h Colorbar_Window.h \
+  Popup_Button.h SpherePosition_Widget.h Shortcut_Window.h GUI_Extras.h \
+  ../Geo/fourierFace.h ../Geo/GFace.h ../Geo/GModel.h ../Geo/Range.h \
+  ../Geo/fourierEdge.h ../Geo/GEdge.h ../Geo/GModel.h \
+  ../Geo/fourierVertex.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/MVertex.h ../Common/Message.h
 GUI_Classifier.o: GUI_Classifier.cpp GUI_Classifier.h ../Common/GmshUI.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \
-  ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  GUI.h Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h \
-  Popup_Button.h SpherePosition_Widget.h Shortcut_Window.h \
-  ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Common/Options.h \
-  ../Common/Context.h ../DataStr/List.h ../Graphics/SelectBuffer.h \
-  ../Geo/GVertex.h ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h \
-  GUI_Projection.h ../Geo/fourierProjectionFace.h ../Geo/GModel.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \
+  SpherePosition_Widget.h Shortcut_Window.h ../Graphics/Draw.h \
+  ../Common/Options.h ../Common/Context.h ../DataStr/List.h \
+  ../Graphics/SelectBuffer.h GUI_Projection.h \
+  ../Geo/fourierProjectionFace.h ../Geo/GModel.h ../Geo/Range.h \
   GUI_Extras.h ../Common/Message.h ../Mesh/meshGFaceDelaunayInsertion.h \
-  ../Mesh/meshGFaceOptimize.h ../Geo/MEdge.h \
-  ../Mesh/meshGFaceDelaunayInsertion.h ../Geo/discreteEdge.h ../Geo/Geo.h \
-  ../Geo/gmshSurface.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h ../Geo/discreteFace.h
+  ../Mesh/meshGFaceOptimize.h ../Mesh/meshGFaceDelaunayInsertion.h \
+  ../Geo/discreteEdge.h ../Geo/GModel.h ../Geo/GEdge.h ../Geo/Geo.h \
+  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Geo/discreteFace.h ../Geo/GModel.h \
+  ../Geo/GFace.h ../Geo/Geo.h
 Callbacks.o: Callbacks.cpp ../Common/GmshUI.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/Tools.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Geo/GeoStringInterface.h ../DataStr/List.h ../Geo/findLinks.h \
-  ../Mesh/Generator.h ../Mesh/HighOrder.h ../Graphics/Draw.h \
-  ../Geo/SBoundingBox3d.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \
-  ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Post/PView.h \
-  ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Parser/CreateFile.h ../Parser/OpenFile.h ../Common/CommandLine.h \
-  ../Common/Context.h ../Common/Options.h ../Post/ColorTable.h GUI.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/GeoStringInterface.h ../Geo/findLinks.h ../Mesh/Generator.h \
+  ../Mesh/HighOrder.h ../Graphics/Draw.h ../Graphics/SelectBuffer.h \
+  ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \
+  ../Post/ColorTable.h ../Parser/CreateFile.h ../Parser/OpenFile.h \
+  ../Common/CommandLine.h ../Common/Context.h ../Common/Options.h GUI.h \
   Opengl_Window.h Colorbar_Window.h Popup_Button.h \
   SpherePosition_Widget.h GUI_Extras.h Callbacks.h ../Plugin/Plugin.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../Common/GmshMatrix.h \
-  ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Visibility.h \
-  ../Common/GmshDefines.h ../Numeric/Numeric.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../Common/GmshMatrix.h ../Plugin/PluginManager.h ../Plugin/Plugin.h \
+  ../Common/Visibility.h ../Common/GmshDefines.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h Solvers.h ../Common/OS.h ../Mesh/Field.h \
-  ../Geo/Geo.h ../Geo/gmshSurface.h ../DataStr/Tree.h \
-  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h
+  ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h \
+  ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h
 Opengl.o: Opengl.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \
   ../DataStr/List.h ../Graphics/Draw.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \
-  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SVector3.h \
-  ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/Pair.h \
-  ../Geo/GRegion.h GUI.h Opengl_Window.h Colorbar_Window.h \
-  ../Post/ColorTable.h Popup_Button.h SpherePosition_Widget.h \
-  ../Graphics/gl2ps.h
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h GUI.h \
+  Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \
+  SpherePosition_Widget.h ../Graphics/gl2ps.h
 Opengl_Window.o: Opengl_Window.cpp ../Common/GmshUI.h \
   ../Common/GmshDefines.h ../Common/Message.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Common/Context.h ../DataStr/List.h \
   ../Graphics/Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Graphics/SelectBuffer.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \
-  ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h \
-  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/Pair.h ../Geo/GRegion.h GUI.h \
-  Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h GUI.h Opengl_Window.h \
+  Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \
   SpherePosition_Widget.h ../Geo/MElement.h ../Geo/MVertex.h \
-  ../Geo/MEdge.h ../Geo/MFace.h
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h
 Colorbar_Window.o: Colorbar_Window.cpp ../Common/GmshUI.h GUI.h \
   Opengl_Window.h Colorbar_Window.h ../Post/ColorTable.h Popup_Button.h \
   SpherePosition_Widget.h ../Common/Context.h ../DataStr/List.h
diff --git a/Geo/Makefile b/Geo/Makefile
index b972307ef3f0d42b716dd89d90f5660b7ebaa8f5..b2d856f1ae09fcc114c661c8ecc4b2d1e415f3cf 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.189 2008-02-23 15:30:07 geuzaine Exp $
+# $Id: Makefile,v 1.190 2008-02-24 19:59:02 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -75,7 +75,7 @@ depend:
 # DO NOT DELETE THIS LINE
 GEntity.o: GEntity.cpp GEntity.h Range.h SPoint3.h SBoundingBox3d.h \
   ../Common/VertexArray.h ../Geo/SVector3.h ../Geo/SPoint3.h \
-  ../Common/Context.h ../DataStr/List.h ../Common/Context.h
+  ../Common/Context.h ../DataStr/List.h
 GVertex.o: GVertex.cpp GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h GPoint.h SPoint2.h GFace.h GEdgeLoop.h GEdge.h \
   SVector3.h Pair.h MVertex.h ../Common/Message.h
@@ -93,7 +93,7 @@ GFace.o: GFace.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   MVertex.h MEdge.h MFace.h ../Common/Message.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Numeric/GaussLegendre1D.h \
   ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h \
-  ../DataStr/List.h ../Common/Context.h
+  ../DataStr/List.h
 GRegion.o: GRegion.cpp GModel.h GVertex.h GEntity.h Range.h SPoint3.h \
   SBoundingBox3d.h GPoint.h SPoint2.h GEdge.h SVector3.h GFace.h \
   GEdgeLoop.h Pair.h GRegion.h MElement.h ../Common/GmshDefines.h \
@@ -214,10 +214,10 @@ Geo.o: Geo.cpp ../Common/Message.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../DataStr/Malloc.h ../DataStr/Tools.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h Geo.h \
   ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \
-  SPoint3.h SVector3.h SBoundingBox3d.h ../DataStr/List.h \
-  ../DataStr/Tree.h ExtrudeParams.h ../Common/SmoothData.h GModel.h \
-  GVertex.h GEntity.h GPoint.h GEdge.h GFace.h GEdgeLoop.h GRegion.h \
-  GeoInterpolation.h ../Parser/Parser.h ../Common/Context.h
+  SPoint3.h SVector3.h SBoundingBox3d.h ExtrudeParams.h \
+  ../Common/SmoothData.h GModel.h GVertex.h GEntity.h GPoint.h GEdge.h \
+  GFace.h GEdgeLoop.h GRegion.h GeoInterpolation.h ../Parser/Parser.h \
+  ../Common/Context.h
 GeoStringInterface.o: GeoStringInterface.cpp ../Common/Message.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/Malloc.h \
   Geo.h ../Common/GmshDefines.h gmshSurface.h Pair.h Range.h SPoint2.h \
diff --git a/Graphics/Makefile b/Graphics/Makefile
index c8c143345543da42d3726b0b26e2c377569fdd4b..31e7b2a7750ea9d556cad229930745c141b79657 100644
--- a/Graphics/Makefile
+++ b/Graphics/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.141 2008-02-23 15:30:07 geuzaine Exp $
+# $Id: Makefile,v 1.142 2008-02-24 19:59:03 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -74,42 +74,56 @@ Draw.o: Draw.cpp ../Common/GmshUI.h ../Common/GmshDefines.h \
   ../Common/Message.h Draw.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Common/Context.h ../DataStr/List.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Geo/GModel.h ../Geo/GVertex.h \
-  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \
-  ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Post/PView.h \
-  ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h
 Mesh.o: Mesh.cpp ../Common/Message.h ../Common/GmshUI.h ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h Draw.h \
-  ../Geo/SBoundingBox3d.h ../Common/Context.h ../DataStr/List.h \
-  ../Common/OS.h gl2ps.h ../Common/VertexArray.h ../Geo/SVector3.h \
-  ../Common/Context.h ../Common/SmoothData.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h Draw.h \
+  ../Common/Context.h ../DataStr/List.h ../Common/OS.h gl2ps.h \
+  ../Common/VertexArray.h ../Common/Context.h ../Common/SmoothData.h
 Geom.o: Geom.cpp ../Common/GmshUI.h Draw.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Common/Context.h ../DataStr/List.h gl2ps.h \
-  ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h \
-  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h
+  ../Common/VertexArray.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Common/Context.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h \
+  ../Geo/GEntity.h ../Geo/SBoundingBox3d.h
 Post.o: Post.cpp ../Common/Message.h ../Common/GmshUI.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h Draw.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h Iso.h ../Post/PView.h \
   ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Common/VertexArray.h ../Geo/SVector3.h ../Common/Context.h \
-  ../DataStr/List.h ../Common/SmoothData.h ../Common/Context.h gl2ps.h
+  ../Common/VertexArray.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Common/Context.h ../DataStr/List.h ../Common/SmoothData.h gl2ps.h
 SelectBuffer.o: SelectBuffer.cpp ../Common/Message.h ../Common/GmshUI.h \
   ../Common/GmshDefines.h ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Geo/MVertex.h ../Geo/MEdge.h \
-  ../Geo/MFace.h Draw.h ../Geo/SBoundingBox3d.h ../Common/Context.h \
-  ../DataStr/List.h SelectBuffer.h ../Geo/GVertex.h ../Geo/GEdge.h \
-  ../Geo/GFace.h ../Geo/GRegion.h ../Common/VertexArray.h \
-  ../Geo/SVector3.h ../Common/Context.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h \
+  ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h Draw.h ../Common/Context.h ../DataStr/List.h \
+  SelectBuffer.h ../Common/VertexArray.h ../Common/Context.h
 Iso.o: Iso.cpp ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 Entity.o: Entity.cpp ../Common/GmshUI.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h Draw.h ../Geo/SBoundingBox3d.h \
@@ -117,8 +131,8 @@ Entity.o: Entity.cpp ../Common/GmshUI.h ../Numeric/Numeric.h \
 ReadImg.o: ReadImg.cpp ReadImg.h ../Common/Message.h ../Common/GmshUI.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h
 Scale.o: Scale.cpp ../Common/GmshUI.h Draw.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PView.h ../Post/PViewData.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Context.h \
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 47eb37edf14fbd4c8d5895abc3e3d0bed009db7e..26ec6b7a3acd3ddeb82be0cdf73e3dcf33dfcf6b 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.205 2008-02-23 15:30:07 geuzaine Exp $
+# $Id: Makefile,v 1.206 2008-02-24 19:59:03 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -89,202 +89,294 @@ Generator.o: Generator.cpp ../Common/Message.h ../Numeric/Numeric.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   ../Common/OS.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \
-  ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \
-  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  meshGEdge.h meshGFace.h meshGFaceBDS.h meshGRegion.h BackgroundMesh.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h meshGEdge.h \
+  meshGFace.h meshGFaceBDS.h meshGRegion.h BackgroundMesh.h \
   BoundaryLayer.h HighOrder.h
 Field.o: Field.cpp ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h \
-  ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MVertex.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
+  ../Geo/SPoint3.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h ../Geo/MVertex.h ../Geo/SPoint3.h \
   ../Common/Message.h Field.h ../Post/PView.h ../Post/PViewData.h \
-  ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Geo/Geo.h ../Common/GmshDefines.h ../Geo/gmshSurface.h \
-  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h ../Geo/GEdge.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h ../Common/Context.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/Geo.h \
+  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h ../Common/Context.h \
   ../Geo/GeoInterpolation.h ../Geo/Geo.h BackgroundMesh.h
 meshGEdge.o: meshGEdge.cpp meshGEdge.h ../Geo/GEdge.h ../Geo/GEntity.h \
   ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h \
-  ../Geo/GVertex.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
-  ../Geo/MEdge.h ../Geo/MFace.h BackgroundMesh.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h ../Common/Message.h ../DataStr/List.h \
-  ../Common/Context.h
+  ../Geo/SPoint3.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/MElement.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  BackgroundMesh.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \
+  ../Common/Message.h ../DataStr/List.h ../Common/Context.h
 meshGEdgeExtruded.o: meshGEdgeExtruded.cpp ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h ../Common/Message.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Common/Message.h
 meshGFace.o: meshGFace.cpp meshGFace.h meshGFaceBDS.h \
   meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h \
-  ../Geo/MFace.h meshGFaceOptimize.h ../Geo/MEdge.h DivideAndConquer.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h meshGFaceOptimize.h DivideAndConquer.h \
   BackgroundMesh.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GVertex.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
-  ../Geo/Pair.h ../Geo/MVertex.h ../Common/Context.h ../DataStr/List.h \
-  ../Geo/GPoint.h ../Common/Message.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h BDS.h ../Post/PView.h ../Post/PViewData.h \
-  ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Common/Context.h ../DataStr/List.h ../Common/Message.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h BDS.h ../Post/PView.h \
+  ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
   qualityMeasures.h Field.h ../Geo/Geo.h ../Geo/gmshSurface.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../Geo/ExtrudeParams.h \
+  ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h \
+  ../Geo/SVector3.h ../Geo/SBoundingBox3d.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
   ../Common/SmoothData.h ../Post/OctreePost.h ../Common/Octree.h \
   ../Common/OctreeInternals.h ../Common/OS.h
 meshGFaceTransfinite.o: meshGFaceTransfinite.cpp meshGFace.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/Pair.h ../Geo/MVertex.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Common/Context.h ../DataStr/List.h ../Common/Message.h \
-  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MElement.h \
+  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h \
+  ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Common/Context.h ../DataStr/List.h \
+  ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
 meshGFaceExtruded.o: meshGFaceExtruded.cpp ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h ../Common/Context.h ../DataStr/List.h \
-  ../Common/Message.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Common/Context.h \
+  ../DataStr/List.h ../Common/Message.h
 meshGFaceBDS.o: meshGFaceBDS.cpp meshGFace.h meshGFaceOptimize.h \
   ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
-  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \
-  ../Geo/MEdge.h meshGFaceDelaunayInsertion.h BackgroundMesh.h \
-  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GVertex.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
-  ../Geo/Pair.h ../Geo/MVertex.h ../Common/Context.h ../DataStr/List.h \
-  ../Geo/GPoint.h ../Geo/GModel.h ../Geo/GFace.h ../Geo/GRegion.h \
-  ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \
-  BDS.h ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  meshGFaceDelaunayInsertion.h BackgroundMesh.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h \
+  ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h ../Common/Context.h \
+  ../DataStr/List.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h \
+  ../Geo/GFace.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h ../Common/Message.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h BDS.h ../Post/PView.h ../Post/PViewData.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h qualityMeasures.h Field.h \
-  ../Geo/Geo.h ../Geo/gmshSurface.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h ../Common/OS.h
+  ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h \
+  ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
+  ../Common/OS.h
 meshGFaceDelaunayInsertion.o: meshGFaceDelaunayInsertion.cpp BDS.h \
   ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
-  ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  BackgroundMesh.h meshGFaceDelaunayInsertion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  meshGFaceOptimize.h ../Geo/MEdge.h meshGFace.h ../Numeric/Numeric.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h BackgroundMesh.h \
+  meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  meshGFaceOptimize.h meshGFace.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Common/Message.h
 meshGFaceOptimize.o: meshGFaceOptimize.cpp meshGFaceOptimize.h \
   ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
-  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \
-  ../Geo/MEdge.h meshGFaceDelaunayInsertion.h qualityMeasures.h \
-  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SBoundingBox3d.h \
-  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GVertex.h \
-  ../Geo/SPoint2.h ../Geo/Pair.h ../Geo/GEdge.h ../Geo/GVertex.h \
-  ../Geo/MVertex.h BackgroundMesh.h
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  meshGFaceDelaunayInsertion.h qualityMeasures.h ../Geo/GFace.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h BackgroundMesh.h
 meshGRegion.o: meshGRegion.cpp meshGRegion.h \
   meshGRegionDelaunayInsertion.h ../Geo/MElement.h \
   ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/SPoint3.h \
-  ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h qualityMeasures.h \
+  ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h qualityMeasures.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h \
-  ../Geo/GRegion.h ../Geo/GFace.h ../Geo/GEdge.h ../Geo/gmshRegion.h \
-  ../Geo/Geo.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/gmshRegion.h ../Geo/Geo.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h BDS.h \
-  ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
-  ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \
-  ../Common/Context.h
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Geo/GRegion.h BDS.h ../Post/PView.h \
+  ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
+  ../Common/Message.h ../Common/Context.h
 meshGRegionDelaunayInsertion.o: meshGRegionDelaunayInsertion.cpp \
   ../Common/OS.h BackgroundMesh.h meshGRegion.h meshGRegionLocalMeshMod.h \
   meshGRegionDelaunayInsertion.h ../Geo/MElement.h \
   ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/SPoint3.h \
-  ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h qualityMeasures.h \
+  ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h qualityMeasures.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h ../Geo/GRegion.h \
-  ../Geo/GRegion.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \
-  ../Common/Message.h
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Message.h
 meshGRegionTransfinite.o: meshGRegionTransfinite.cpp meshGFace.h \
   ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/MVertex.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Common/Context.h ../DataStr/List.h ../Common/Message.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MElement.h \
+  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h \
+  ../Geo/MVertex.h ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Common/Context.h ../DataStr/List.h \
+  ../Common/Message.h
 meshGRegionExtruded.o: meshGRegionExtruded.cpp ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Geo/ExtrudeParams.h \
-  ../Common/SmoothData.h meshGFace.h meshGRegion.h ../Common/Context.h \
-  ../DataStr/List.h ../Common/Message.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/ExtrudeParams.h ../Common/SmoothData.h meshGFace.h meshGRegion.h \
+  ../Common/Context.h ../DataStr/List.h ../Common/Message.h
 meshGRegionCarveHole.o: meshGRegionCarveHole.cpp ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Common/Message.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Common/Message.h
 meshGRegionLocalMeshMod.o: meshGRegionLocalMeshMod.cpp \
   meshGRegionLocalMeshMod.h meshGRegionDelaunayInsertion.h \
   ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
-  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/SVector3.h ../Geo/MFace.h \
-  qualityMeasures.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GRegion.h ../Geo/GEntity.h \
-  ../Common/Message.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  qualityMeasures.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GRegion.h \
+  ../Geo/GEntity.h ../Common/Message.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h
 DivideAndConquer.o: DivideAndConquer.cpp ../Common/Message.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h DivideAndConquer.h \
   ../DataStr/Malloc.h
 BackgroundMesh.o: BackgroundMesh.cpp ../Common/Message.h BackgroundMesh.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \
   ../DataStr/List.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SVector3.h \
-  ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/Pair.h \
-  ../Geo/GModel.h ../Geo/GFace.h ../Geo/GRegion.h Field.h ../Post/PView.h \
-  ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Geo/Geo.h ../Common/GmshDefines.h \
-  ../Geo/gmshSurface.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h \
+  ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEdge.h \
+  ../Geo/GFace.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h Field.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/Geo.h \
+  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h
 qualityMeasures.o: qualityMeasures.cpp qualityMeasures.h BDS.h \
   ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
-  ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Geo/MVertex.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h ../Numeric/Numeric.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MElement.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 BoundaryLayer.o: BoundaryLayer.cpp ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/MElement.h ../Common/GmshDefines.h \
-  ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h BoundaryLayer.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h BoundaryLayer.h \
   ../Geo/ExtrudeParams.h ../Common/SmoothData.h meshGEdge.h meshGFace.h \
   ../Common/Message.h
 BDS.o: BDS.cpp ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h BDS.h \
   ../Geo/GFace.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
-  ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h ../Geo/SVector3.h \
-  ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
-  ../Geo/SBoundingBox3d.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Common/Message.h meshGFaceDelaunayInsertion.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Post/PView.h ../Post/PViewData.h \
+  ../Post/PViewOptions.h ../Post/ColorTable.h ../Common/Message.h \
+  meshGFaceDelaunayInsertion.h ../Geo/MElement.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
   qualityMeasures.h
 HighOrder.o: HighOrder.cpp HighOrder.h ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h meshGFaceOptimize.h ../Geo/MElement.h \
-  ../Common/GmshDefines.h ../Geo/MVertex.h ../Geo/MEdge.h ../Geo/MFace.h \
-  ../Geo/MEdge.h meshGFaceDelaunayInsertion.h ../Common/Message.h \
-  ../Common/OS.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h \
-  ../Common/Context.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Numeric/FunctionSpace.h
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  meshGFaceOptimize.h ../Geo/MElement.h ../Common/GmshDefines.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h \
+  ../Geo/SVector3.h ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  meshGFaceDelaunayInsertion.h ../Common/Message.h ../Common/OS.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/FunctionSpace.h
diff --git a/Parser/Makefile b/Parser/Makefile
index 6425e55ca25e39d98e049709bfeab576c519f41e..d18e3a313939a8e45f6d40b3ef777962fc61572a 100644
--- a/Parser/Makefile
+++ b/Parser/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.141 2008-02-23 15:30:10 geuzaine Exp $
+# $Id: Makefile,v 1.142 2008-02-24 19:59:03 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -73,50 +73,66 @@ Gmsh.tab.o: Gmsh.tab.cpp ../Common/Message.h ../DataStr/Malloc.h \
   ../Plugin/PluginManager.h ../Plugin/Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Parallel/ParUtil.h \
+  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
+  ../Post/AdaptiveViews.h ../Common/GmshMatrix.h ../Parallel/ParUtil.h \
   ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../Common/Context.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/Geo.h ../Common/GmshDefines.h \
-  ../Geo/gmshSurface.h ../DataStr/Tree.h ../Geo/ExtrudeParams.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h ../Geo/Geo.h \
+  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
   ../Common/SmoothData.h ../Geo/GeoInterpolation.h ../Geo/Geo.h \
   ../Mesh/Generator.h ../Graphics/Draw.h ../Common/Colors.h \
   ../Common/Options.h Parser.h OpenFile.h ../Common/CommandLine.h \
-  FunctionManager.h ../Common/OS.h CreateFile.h ../Geo/gmshSurface.h \
-  ../Mesh/Field.h ../Geo/GEdge.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h ../Mesh/BackgroundMesh.h
+  FunctionManager.h ../Common/OS.h CreateFile.h ../Mesh/Field.h \
+  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
+  ../Mesh/BackgroundMesh.h
 Gmsh.yy.o: Gmsh.yy.cpp ../Common/Message.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Geo/Geo.h ../Common/GmshDefines.h \
   ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
-  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SBoundingBox3d.h \
-  ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h \
+  ../Geo/SPoint3.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \
   ../Geo/ExtrudeParams.h ../Common/SmoothData.h Gmsh.tab.hpp
 OpenFile.o: OpenFile.cpp ../Common/Message.h ../Geo/Geo.h \
   ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
   ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
-  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
-  ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
-  ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/GPoint.h \
-  ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/GRegion.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h ../DataStr/List.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../Geo/SPoint2.h \
+  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/GModel.h \
+  ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h \
+  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
   ../Common/Context.h Parser.h OpenFile.h ../Common/CommandLine.h \
-  ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
-  ../Post/PViewOptions.h ../Post/ColorTable.h ../Graphics/ReadImg.h \
-  ../Common/OS.h ../Mesh/HighOrder.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h ../Graphics/SelectBuffer.h ../Geo/GVertex.h \
-  ../Geo/GEdge.h ../Geo/GFace.h ../Geo/GRegion.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Post/ColorTable.h \
-  ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h
+  ../Post/PView.h ../Post/PViewData.h ../Post/PViewOptions.h \
+  ../Post/ColorTable.h ../Graphics/ReadImg.h ../Common/OS.h \
+  ../Mesh/HighOrder.h ../Common/GmshUI.h ../Graphics/Draw.h \
+  ../Graphics/SelectBuffer.h ../Fltk/GUI.h ../Fltk/Opengl_Window.h \
+  ../Fltk/Colorbar_Window.h ../Fltk/Popup_Button.h \
+  ../Fltk/SpherePosition_Widget.h
 CreateFile.o: CreateFile.cpp ../Common/Message.h ../Geo/GModel.h \
   ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Common/GmshDefines.h OpenFile.h ../Common/Context.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Common/GmshDefines.h OpenFile.h ../Common/Context.h \
   ../DataStr/List.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/GmshUI.h ../Graphics/gl2ps.h ../Graphics/gl2gif.h \
   ../Graphics/PixelBuffer.h ../DataStr/Malloc.h ../Graphics/Draw.h \
-  ../Geo/SBoundingBox3d.h ../Graphics/gl2jpeg.h ../Graphics/gl2png.h \
-  ../Graphics/gl2ppm.h ../Graphics/gl2yuv.h
+  ../Graphics/gl2jpeg.h ../Graphics/PixelBuffer.h ../Graphics/gl2png.h \
+  ../Graphics/PixelBuffer.h ../Graphics/gl2ppm.h \
+  ../Graphics/PixelBuffer.h ../Graphics/gl2yuv.h \
+  ../Graphics/PixelBuffer.h
 FunctionManager.o: FunctionManager.cpp FunctionManager.h
diff --git a/Plugin/Makefile b/Plugin/Makefile
index e35482b322aa84289e3665a2a5d00940aec56668..707ecca5c5bf90d802ccad94e096736e89f70a7d 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.151 2008-02-23 15:30:10 geuzaine Exp $
+# $Id: Makefile,v 1.152 2008-02-24 19:59:03 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -76,238 +76,267 @@ depend:
 Plugin.o: Plugin.cpp Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
+  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
 PluginManager.o: PluginManager.cpp Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  PluginManager.h CutMap.h Levelset.h CutGrid.h StreamLines.h CutPlane.h \
-  CutParametric.h CutSphere.h Skin.h ../DataStr/Tree.h ../DataStr/avl.h \
-  Extract.h ExtractElements.h ExtractEdges.h HarmonicToTime.h \
-  ModulusPhase.h Integrate.h Gradient.h Curl.h Divergence.h Annotate.h \
-  Remove.h MakeSimplex.h Smooth.h Transform.h TransformLatLon.h \
-  Triangulate.h Warp.h SphericalRaise.h Eigenvectors.h Eigenvalues.h \
-  Lambda2.h Evaluate.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h Probe.h FieldView.h ../Common/Context.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h PluginManager.h CutMap.h Levelset.h CutGrid.h \
+  StreamLines.h CutPlane.h CutParametric.h CutSphere.h Skin.h \
+  ../DataStr/Tree.h ../DataStr/avl.h Extract.h ExtractElements.h \
+  ExtractEdges.h HarmonicToTime.h ModulusPhase.h Integrate.h Gradient.h \
+  Curl.h Divergence.h Annotate.h Remove.h MakeSimplex.h Smooth.h \
+  Transform.h TransformLatLon.h Triangulate.h Warp.h SphericalRaise.h \
+  Eigenvectors.h Eigenvalues.h Lambda2.h Evaluate.h ../Post/OctreePost.h \
+  ../Common/Octree.h ../Common/OctreeInternals.h Probe.h FieldView.h \
+  ../Common/Context.h
 Levelset.o: Levelset.cpp Levelset.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  MakeSimplex.h ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h MakeSimplex.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h
 CutPlane.o: CutPlane.cpp CutPlane.h Levelset.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h
 CutSphere.o: CutSphere.cpp CutSphere.h Levelset.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h
 CutMap.o: CutMap.cpp CutMap.h Levelset.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/Context.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/Context.h
 Smooth.o: Smooth.cpp Smooth.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h
 CutParametric.o: CutParametric.cpp ../Post/OctreePost.h \
   ../Common/Octree.h ../Common/OctreeInternals.h CutParametric.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
-  ../Graphics/Draw.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/Context.h \
+  ../Common/GmshUI.h ../Graphics/Draw.h
 Lambda2.o: Lambda2.cpp Lambda2.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Eigenvectors.o: Eigenvectors.cpp Eigenvectors.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Numeric/Numeric.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../Numeric/EigSolve.h
 Eigenvalues.o: Eigenvalues.cpp Eigenvalues.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h
 StreamLines.o: StreamLines.cpp StreamLines.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h \
-  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h ../Common/Context.h ../Common/GmshUI.h \
+  ../Graphics/Draw.h
 CutGrid.o: CutGrid.cpp ../Post/OctreePost.h ../Common/Octree.h \
   ../Common/OctreeInternals.h CutGrid.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/Context.h ../Common/GmshUI.h ../Graphics/Draw.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
+  ../Graphics/Draw.h
 Transform.o: Transform.cpp Transform.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h
 TransformLatLon.o: TransformLatLon.cpp TransformLatLon.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h
 Triangulate.o: Triangulate.cpp ../Geo/GModel.h ../Geo/GVertex.h \
   ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
-  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Geo/discreteFace.h ../Geo/GModel.h ../Geo/Geo.h \
-  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Numeric/Numeric.h \
+  ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/discreteFace.h ../Geo/GModel.h ../Geo/GFace.h ../Geo/Geo.h \
+  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../DataStr/List.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
-  ../Mesh/DivideAndConquer.h ../Common/Message.h ../Geo/MVertex.h \
-  Triangulate.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
-  ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
-  ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../Common/GmshMatrix.h ../Common/Context.h
+  ../DataStr/avl.h ../Geo/SPoint2.h ../Geo/ExtrudeParams.h \
+  ../Common/SmoothData.h ../Mesh/DivideAndConquer.h ../Common/Message.h \
+  ../Geo/MVertex.h ../Geo/SPoint3.h Triangulate.h Plugin.h \
+  ../Common/Options.h ../Post/ColorTable.h ../Post/PView.h \
+  ../Post/PViewData.h ../Post/PViewOptions.h ../Post/ColorTable.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../Common/GmshMatrix.h ../Common/Context.h
 Warp.o: Warp.cpp Warp.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/SmoothData.h \
-  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
+  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  ../Common/SmoothData.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h
 SphericalRaise.o: SphericalRaise.cpp SphericalRaise.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Numeric/Numeric.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Skin.o: Skin.cpp Skin.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../DataStr/Tree.h \
-  ../DataStr/avl.h ../DataStr/Malloc.h ../Common/Context.h
+  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
+  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Malloc.h \
+  ../Common/Context.h
 Extract.o: Extract.cpp Extract.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h
 ExtractElements.o: ExtractElements.cpp ExtractElements.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Numeric/Numeric.h \
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 ExtractEdges.o: ExtractEdges.cpp ExtractEdges.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h ../Mesh/BDS.h ../Geo/GFace.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
-  ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/GVertex.h ../Geo/SPoint2.h \
-  ../Geo/SVector3.h ../Geo/Pair.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h ../Mesh/BDS.h ../Geo/GFace.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/SPoint2.h ../Geo/SVector3.h \
+  ../Geo/Pair.h
 MakeSimplex.o: MakeSimplex.cpp MakeSimplex.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h
 Evaluate.o: Evaluate.cpp Evaluate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Post/OctreePost.h ../Common/Octree.h ../Common/OctreeInternals.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h
 FieldView.o: FieldView.cpp FieldView.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Mesh/Field.h ../Geo/Geo.h ../Common/GmshDefines.h \
-  ../Geo/gmshSurface.h ../Geo/Pair.h ../Geo/Range.h ../Geo/SPoint2.h \
-  ../Geo/SVector3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Mesh/Field.h ../Geo/Geo.h \
+  ../Common/GmshDefines.h ../Geo/gmshSurface.h ../Geo/Pair.h \
+  ../Geo/Range.h ../Geo/SPoint2.h ../Geo/SPoint3.h ../Geo/SVector3.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h ../DataStr/Tree.h ../DataStr/avl.h \
-  ../Geo/ExtrudeParams.h ../Common/SmoothData.h ../Geo/GEdge.h \
-  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/GPoint.h ../Post/OctreePost.h \
-  ../Common/Octree.h ../Common/OctreeInternals.h
+  ../Geo/SPoint2.h ../Geo/ExtrudeParams.h ../Common/SmoothData.h \
+  ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
+  ../Geo/SBoundingBox3d.h ../Geo/GVertex.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint2.h ../Post/OctreePost.h ../Common/Octree.h \
+  ../Common/OctreeInternals.h
 Integrate.o: Integrate.cpp Integrate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Gradient.o: Gradient.cpp Gradient.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Curl.o: Curl.cpp Curl.h Plugin.h ../Common/Options.h ../Post/ColorTable.h \
   ../Common/Message.h ../Post/PView.h ../Post/PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Post/PViewOptions.h \
-  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/AdaptiveViews.h \
-  ../DataStr/List.h ../Common/GmshMatrix.h ../Common/ShapeFunctions.h \
-  ../Numeric/Numeric.h ../Numeric/NumericEmbedded.h
+  ../Post/ColorTable.h ../Post/PViewDataList.h ../Post/PViewData.h \
+  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
+  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h
 Divergence.o: Divergence.cpp Divergence.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/ShapeFunctions.h ../Numeric/Numeric.h \
   ../Numeric/NumericEmbedded.h
 Annotate.o: Annotate.cpp Annotate.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/Context.h ../Common/GmshUI.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/Context.h ../Common/GmshUI.h \
+  ../Fltk/GUI.h ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h \
   ../Fltk/Popup_Button.h ../Fltk/SpherePosition_Widget.h \
   ../Graphics/Draw.h
 Remove.o: Remove.cpp Remove.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h
 Probe.o: Probe.cpp Probe.h Plugin.h ../Common/Options.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
-  ../Common/Context.h ../Post/OctreePost.h ../Common/Octree.h \
-  ../Common/OctreeInternals.h ../Common/GmshUI.h ../Graphics/Draw.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Common/Context.h ../Post/OctreePost.h \
+  ../Common/Octree.h ../Common/OctreeInternals.h ../Common/GmshUI.h \
+  ../Graphics/Draw.h
 HarmonicToTime.o: HarmonicToTime.cpp HarmonicToTime.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h
 ModulusPhase.o: ModulusPhase.cpp ModulusPhase.h Plugin.h \
   ../Common/Options.h ../Post/ColorTable.h ../Common/Message.h \
   ../Post/PView.h ../Post/PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h ../Post/PViewOptions.h ../Post/ColorTable.h \
-  ../Post/PViewDataList.h ../Post/AdaptiveViews.h ../DataStr/List.h \
-  ../Common/GmshMatrix.h
+  ../Post/PViewDataList.h ../Post/PViewData.h ../Post/AdaptiveViews.h \
+  ../DataStr/List.h ../Common/GmshMatrix.h
diff --git a/Post/Makefile b/Post/Makefile
index d5d14f179fdc97f9c49d3695eaa4b6c259968ca4..63a667e3577d1e662e47cb6a52f3e9b36ac5e4a3 100644
--- a/Post/Makefile
+++ b/Post/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.30 2008-02-23 15:30:11 geuzaine Exp $
+# $Id: Makefile,v 1.31 2008-02-24 19:59:03 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -31,9 +31,9 @@ INC = ${DASH}I../Common ${DASH}I../DataStr ${DASH}I../Geo ${DASH}I../Mesh\
 CFLAGS =${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE}
 
 SRC = PView.cpp\
-        PViewData.cpp\
+        PViewData.cpp PViewDataIO.cpp\
           PViewDataList.cpp PViewDataListIO.cpp\
-          PViewDataGModel.cpp\
+          PViewDataGModel.cpp PViewDataGModelIO.cpp\
         PViewOptions.cpp\
       AdaptiveViews.cpp\
       OctreePost.cpp\
@@ -66,13 +66,19 @@ PView.o: PView.cpp PView.h PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h PViewOptions.h ColorTable.h PViewDataList.h \
   AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
   PViewDataGModel.h ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h \
-  ../Geo/Range.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h \
-  ../Geo/GEdge.h ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h \
-  ../Geo/Pair.h ../Geo/GRegion.h ../Common/VertexArray.h \
-  ../Geo/SVector3.h ../Common/Context.h ../Common/SmoothData.h \
+  ../Geo/Range.h ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Common/VertexArray.h ../Common/Context.h ../Common/SmoothData.h \
   ../Common/Message.h
 PViewData.o: PViewData.cpp PViewData.h ../Geo/SBoundingBox3d.h \
   ../Geo/SPoint3.h
+PViewDataIO.o: PViewDataIO.cpp ../Common/Message.h ../Numeric/Numeric.h \
+  ../Numeric/NumericEmbedded.h PViewData.h ../Geo/SBoundingBox3d.h \
+  ../Geo/SPoint3.h
 PViewDataList.o: PViewDataList.cpp PViewDataList.h PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h AdaptiveViews.h \
   ../DataStr/List.h ../Common/GmshMatrix.h ../Numeric/Numeric.h \
@@ -86,9 +92,26 @@ PViewDataGModel.o: PViewDataGModel.cpp PViewDataGModel.h PViewData.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h PViewDataList.h \
   AdaptiveViews.h ../DataStr/List.h ../Common/GmshMatrix.h \
   ../Geo/GModel.h ../Geo/GVertex.h ../Geo/GEntity.h ../Geo/Range.h \
+  ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/GPoint.h \
+  ../Geo/SPoint2.h ../Geo/GEdge.h ../Geo/GEntity.h ../Geo/GVertex.h \
+  ../Geo/SVector3.h ../Geo/SPoint3.h ../Geo/SPoint3.h ../Geo/SPoint2.h \
+  ../Geo/GFace.h ../Geo/GEntity.h ../Geo/GPoint.h ../Geo/GEdgeLoop.h \
+  ../Geo/GEdge.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \
+  ../Geo/GRegion.h ../Geo/GEntity.h ../Geo/SBoundingBox3d.h \
+  ../Geo/MElement.h ../Common/GmshDefines.h ../Geo/MVertex.h \
+  ../Geo/SPoint3.h ../Geo/MEdge.h ../Geo/MVertex.h ../Geo/SVector3.h \
+  ../Geo/MFace.h ../Geo/MVertex.h ../Geo/SVector3.h ../Common/Message.h
+PViewDataGModelIO.o: PViewDataGModelIO.cpp ../Common/Message.h \
+  PViewDataGModel.h PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
+  PViewDataList.h AdaptiveViews.h ../DataStr/List.h \
+  ../Common/GmshMatrix.h ../Geo/GModel.h ../Geo/GVertex.h \
+  ../Geo/GEntity.h ../Geo/Range.h ../Geo/SPoint3.h \
   ../Geo/SBoundingBox3d.h ../Geo/GPoint.h ../Geo/SPoint2.h ../Geo/GEdge.h \
-  ../Geo/SVector3.h ../Geo/GFace.h ../Geo/GEdgeLoop.h ../Geo/Pair.h \
-  ../Geo/GRegion.h ../Common/Message.h
+  ../Geo/GEntity.h ../Geo/GVertex.h ../Geo/SVector3.h ../Geo/SPoint3.h \
+  ../Geo/SPoint3.h ../Geo/SPoint2.h ../Geo/GFace.h ../Geo/GEntity.h \
+  ../Geo/GPoint.h ../Geo/GEdgeLoop.h ../Geo/GEdge.h ../Geo/SPoint2.h \
+  ../Geo/SVector3.h ../Geo/Pair.h ../Geo/GRegion.h ../Geo/GEntity.h \
+  ../Geo/SBoundingBox3d.h
 PViewOptions.o: PViewOptions.cpp PViewOptions.h ColorTable.h \
   ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h ../Common/Message.h
 AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \
@@ -96,7 +119,7 @@ AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \
   ../Post/ColorTable.h ../Common/Message.h ../Post/PView.h \
   ../Post/PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \
   ../Post/PViewOptions.h ../Post/ColorTable.h ../Post/PViewDataList.h \
-  ../Post/AdaptiveViews.h
+  ../Post/PViewData.h ../Post/AdaptiveViews.h
 OctreePost.o: OctreePost.cpp ../Common/Octree.h \
   ../Common/OctreeInternals.h OctreePost.h ../DataStr/List.h PView.h \
   PViewData.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h PViewOptions.h \
diff --git a/Post/PViewData.h b/Post/PViewData.h
index c46119c8fc44b751116961a2d9d0b9d64a4215ef..94b8284aa57c2dd9b4f3286a37d4b115ab4a3d1a 100644
--- a/Post/PViewData.h
+++ b/Post/PViewData.h
@@ -104,9 +104,9 @@ class PViewData {
   virtual bool skipElement(int ent, int ele){ return false; }
 
   // I/O routines
+  virtual bool writeSTL(std::string name);
   virtual bool writePOS(std::string name, bool binary=false, bool parsed=true,
 			bool append=false){ return false; }
-  virtual bool writeSTL(std::string name){ return false; }
   virtual bool writeTXT(std::string name){ return false; }
   virtual bool writeMSH(std::string name){ return false; }
 };
diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index 954a24166393892ea3941e1ca5a411d7147c7649..49e2ca9ece16fcc4d0c79d79b3718582b137eafd 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -1,4 +1,4 @@
-// $Id: PViewDataGModel.cpp,v 1.16 2008-02-24 17:23:20 geuzaine Exp $
+// $Id: PViewDataGModel.cpp,v 1.17 2008-02-24 19:59:03 geuzaine Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -28,8 +28,7 @@
 
 PViewDataGModel::PViewDataGModel(GModel *model) : _model(model)
 {
-  // store linear vector of GEntities so we can index in them
-  // efficiently
+  // store vector of GEntities so we can index them efficiently
   for(GModel::eiter it = _model->firstEdge(); it != _model->lastEdge(); ++it)
     _entities.push_back(*it);
   for(GModel::fiter it = _model->firstFace(); it != _model->lastFace(); ++it)
@@ -126,7 +125,7 @@ int PViewDataGModel::getNumComponents(int ent, int ele)
 void PViewDataGModel::getValue(int ent, int ele, int nod, int comp, int step, double &val)
 {
   MVertex *v = _entities[ent]->getMeshElement(ele)->getVertex(nod);
-  val = v->x() * v->y() * v->z();
+  val = v->z();
 }
 
 int PViewDataGModel::getNumEdges(int ent, int ele)
@@ -144,40 +143,3 @@ bool PViewDataGModel::skipElement(int ent, int ele)
   return !_entities[ent]->getMeshElement(ele)->getVisibility();
 }
 
-bool PViewDataGModel::readMSH(FILE *fp)
-{
-  Msg(INFO, "Filling PViewDataGModel...");
-  
-  MVertex *v = _model->getMeshVertexByTag(10);
-  if(v){
-    printf("vertex 10 in mesh is %p\n", v);
-  }
-
-  finalize();
-  return true;
-}
-
-bool PViewDataGModel::writePOS(std::string name, bool binary, bool parsed,
-			       bool append)
-{
-  // model->writePOS()
-  return false;
-}
-
-bool PViewDataGModel::writeSTL(std::string name)
-{
-  // model->writeSTL()
-  return false;
-}
-
-bool PViewDataGModel::writeTXT(std::string name)
-{
-  // model->writeTXT()
-  return false;
-}
-
-bool PViewDataGModel::writeMSH(std::string name)
-{
-  // model->writeMSH()
-  return false;
-}
diff --git a/Post/PViewDataGModel.h b/Post/PViewDataGModel.h
index 79044661d09c73a6b89f8c4239a4e98f5aa95b97..e39d533e8b86751bce681d05f75aef2684a998e0 100644
--- a/Post/PViewDataGModel.h
+++ b/Post/PViewDataGModel.h
@@ -52,11 +52,6 @@ class PViewDataGModel : public PViewData {
 
   // I/O routines
   bool readMSH(FILE *fp);
-  bool writePOS(std::string name, bool binary=false, bool parsed=true,
-		bool append=false);
-  bool writeSTL(std::string name);
-  bool writeTXT(std::string name);
-  bool writeMSH(std::string name);
 };
 
 #endif
diff --git a/Post/PViewDataGModelIO.cpp b/Post/PViewDataGModelIO.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1e8d5e6e7577e366b818e3ec17095db6bef4e3a0
--- /dev/null
+++ b/Post/PViewDataGModelIO.cpp
@@ -0,0 +1,67 @@
+// $Id: PViewDataGModelIO.cpp,v 1.1 2008-02-24 19:59:03 geuzaine Exp $
+//
+// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to <gmsh@geuz.org>.
+//
+// Contributor(s):
+// 
+
+#include <string.h>
+#include "Message.h"
+#include "PViewDataGModel.h"
+
+/*
+      if(!fgets(str, sizeof(str), fp)) return 0;
+      // name = str[1] + remove final "
+      int timeStep, numData, numComponents;
+      double time;
+      if(_vertexVector.empty() && _vertexMap.empty()){
+	Msg(GERROR, "Mesh vertex information missing: impossible to load dataset");
+	return false;
+      }
+
+      if(fscanf(fp, "%d %lf %d %d", &timeStep, &time, &numData, &numComponents) != 4)
+	return 0;
+      Msg(INFO, "%d node data", numData);
+
+      //std::map<int, int> nodeNumber, nodeIndex      
+      PViewDataGModel *p = getPViewDataGModel(name)
+      if(p){ // add data to existing view
+      if(!p.count(timeStep)){
+	// we don't have any data for this time step
+	p[timeStep] = new nodeData(numNodes);
+      }
+      data = p[timeStep];
+      if(num
+      data.scalar.indices.append();
+      data.scalar.values.append();
+*/
+
+bool PViewDataGModel::readMSH(FILE *fp)
+{
+  Msg(INFO, "Filling PViewDataGModel...");
+  
+  MVertex *v = _model->getMeshVertexByTag(10);
+  if(v){
+    printf("vertex 10 in mesh is %p\n", v);
+  }
+
+  finalize();
+  return true;
+}
diff --git a/Post/PViewDataIO.cpp b/Post/PViewDataIO.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5866a046d46382e73f1e19a456f287244f3ef047
--- /dev/null
+++ b/Post/PViewDataIO.cpp
@@ -0,0 +1,84 @@
+// $Id: PViewDataIO.cpp,v 1.1 2008-02-24 19:59:03 geuzaine Exp $
+//
+// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to <gmsh@geuz.org>.
+//
+// Contributor(s):
+// 
+
+#include <string.h>
+#include "Message.h"
+#include "Numeric.h"
+#include "PViewData.h"
+
+bool PViewData::writeSTL(std::string name)
+{
+  FILE *fp = fopen(name.c_str(), "w");
+  if(!fp){
+    Msg(GERROR, "Unable to open file '%s'", name.c_str());
+    return false;
+  }
+
+  if(!getNumTriangles() && !getNumQuadrangles()){
+    Msg(GERROR, "No surface elements to save");
+    return false;
+  }
+
+  fprintf(fp, "solid Created by Gmsh\n");
+  for(int ent = 0; ent < getNumEntities(); ent++){
+    for(int ele = 0; ele < getNumElements(ent); ele++){
+      if(getDimension(ent, ele) != 2) continue;
+      int N = getNumNodes(ent, ele);
+      if(N != 3 && N != 4) continue;
+      double x[4], y[4], z[4], n[3];
+      for(int i = 0; i < N; i++)
+	getNode(ent, ele, i, x[i], y[i], z[i]);
+      normal3points(x[0], y[0], z[0], x[1], y[1], z[1], x[2], y[2], z[2], n);
+      if(N == 3){
+	fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
+	fprintf(fp, "  outer loop\n");
+	fprintf(fp, "    vertex %g %g %g\n", x[0], y[0], z[0]);
+	fprintf(fp, "    vertex %g %g %g\n", x[1], y[1], z[1]); 
+	fprintf(fp, "    vertex %g %g %g\n", x[2], y[2], z[2]);
+	fprintf(fp, "  endloop\n");
+	fprintf(fp, "endfacet\n");
+      }
+      else{
+	fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
+	fprintf(fp, "  outer loop\n");
+	fprintf(fp, "    vertex %g %g %g\n", x[0], y[0], z[0]);
+	fprintf(fp, "    vertex %g %g %g\n", x[1], y[1], z[1]);
+	fprintf(fp, "    vertex %g %g %g\n", x[2], y[2], z[2]);
+	fprintf(fp, "  endloop\n");
+	fprintf(fp, "endfacet\n");
+	fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
+	fprintf(fp, "  outer loop\n");
+	fprintf(fp, "    vertex %g %g %g\n", x[0], y[0], z[0]);
+	fprintf(fp, "    vertex %g %g %g\n", x[2], y[1], z[1]);
+	fprintf(fp, "    vertex %g %g %g\n", x[3], y[3], z[3]);
+	fprintf(fp, "  endloop\n");
+	fprintf(fp, "endfacet\n");
+      }
+    }
+  }
+  fprintf(fp, "endsolid Created by Gmsh\n");
+  
+  fclose(fp);
+  return true;
+}
diff --git a/Post/PViewDataList.h b/Post/PViewDataList.h
index ef4def82bf03277b55f035bbc3d14cdf77f9bd02..ad1c766de12b11a123ef85a080eeb2fd6118229a 100644
--- a/Post/PViewDataList.h
+++ b/Post/PViewDataList.h
@@ -118,7 +118,6 @@ class PViewDataList : public PViewData {
   bool readPOS(FILE *fp, double version, int format, int size);
   bool writePOS(std::string name, bool binary=false, bool parsed=true,
 		bool append=false);
-  bool writeSTL(std::string name);
   bool writeTXT(std::string name);
   bool writeMSH(std::string name);
 };
diff --git a/Post/PViewDataListIO.cpp b/Post/PViewDataListIO.cpp
index fa2d3ca57db0c3a562c6a5a398a90f9219db08c2..b86d1cfabc0de65bd4b221ef183bb1636899e3c7 100644
--- a/Post/PViewDataListIO.cpp
+++ b/Post/PViewDataListIO.cpp
@@ -1,4 +1,4 @@
-// $Id: PViewDataListIO.cpp,v 1.9 2008-02-21 13:44:56 geuzaine Exp $
+// $Id: PViewDataListIO.cpp,v 1.10 2008-02-24 19:59:03 geuzaine Exp $
 //
 // Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 //
@@ -396,70 +396,6 @@ bool PViewDataList::writePOS(std::string name, bool binary, bool parsed, bool ap
   return true;
 }
 
-static void writeElementSTL(FILE *fp, int nbelm, List_T *list, int nbnod)
-{
-  if(!nbelm) return;
-  int nb = List_Nbr(list) / nbelm;
-  for(int i = 0; i < List_Nbr(list); i+=nb){
-    double *x = (double*)List_Pointer(list, i);
-    double n[3];
-    normal3points(x[0], x[3], x[6],
-		  x[1], x[4], x[7],
-		  x[2], x[5], x[8], n);
-    if(nbnod == 3){
-      fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
-      fprintf(fp, "  outer loop\n");
-      fprintf(fp, "    vertex %g %g %g\n", x[0], x[3], x[6]);
-      fprintf(fp, "    vertex %g %g %g\n", x[1], x[4], x[7]);
-      fprintf(fp, "    vertex %g %g %g\n", x[2], x[5], x[8]);
-      fprintf(fp, "  endloop\n");
-      fprintf(fp, "endfacet\n");
-    }
-    else{
-      fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
-      fprintf(fp, "  outer loop\n");
-      fprintf(fp, "    vertex %g %g %g\n", x[0], x[4], x[8]);
-      fprintf(fp, "    vertex %g %g %g\n", x[1], x[5], x[9]);
-      fprintf(fp, "    vertex %g %g %g\n", x[2], x[6], x[10]);
-      fprintf(fp, "  endloop\n");
-      fprintf(fp, "endfacet\n");
-      fprintf(fp, "facet normal %g %g %g\n", n[0], n[1], n[2]);
-      fprintf(fp, "  outer loop\n");
-      fprintf(fp, "    vertex %g %g %g\n", x[0], x[4], x[8]);
-      fprintf(fp, "    vertex %g %g %g\n", x[2], x[6], x[10]);
-      fprintf(fp, "    vertex %g %g %g\n", x[3], x[7], x[11]);
-      fprintf(fp, "  endloop\n");
-      fprintf(fp, "endfacet\n");
-    }
-  }
-}
-
-bool PViewDataList::writeSTL(std::string name)
-{
-  FILE *fp = fopen(name.c_str(), "w");
-  if(!fp){
-    Msg(GERROR, "Unable to open file '%s'", name.c_str());
-    return false;
-  }
-
-  if(!NbST && !NbVT && !NbTT && !NbSQ && !NbVQ && !NbTQ){
-    Msg(GERROR, "No surface elements to save");
-    return false;
-  }
-
-  fprintf(fp, "solid Created by Gmsh\n");
-  writeElementSTL(fp, NbST, ST, 3);
-  writeElementSTL(fp, NbVT, VT, 3);
-  writeElementSTL(fp, NbTT, TT, 3);
-  writeElementSTL(fp, NbSQ, SQ, 4);
-  writeElementSTL(fp, NbVQ, VQ, 4);
-  writeElementSTL(fp, NbTQ, TQ, 4);
-  fprintf(fp, "endsolid Created by Gmsh\n");
-
-  fclose(fp);
-  return true;
-}
-
 static void writeElementTXT(FILE *file, int nbelm, List_T *list,
 			    int nbnod, int nbcomp, int nbtime)
 {
diff --git a/contrib/Netgen/Makefile b/contrib/Netgen/Makefile
index 29870093745a1c5324aed8bd9fdaf36cd27b5dac..62c6c9eee21c1e295373eeb120661d3a4763da51 100644
--- a/contrib/Netgen/Makefile
+++ b/contrib/Netgen/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.31 2008-02-23 15:30:11 geuzaine Exp $
+# $Id: Makefile,v 1.32 2008-02-24 19:59:04 geuzaine Exp $
 #
 # Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
 #
@@ -344,9 +344,10 @@ meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
   libsrc/meshing/specials.hpp libsrc/include/csg.hpp \
-  libsrc/include/../csg/csg.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/../csg/surface.hpp \
-  libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \
+  libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/meshing.hpp libsrc/include/../meshing/meshing.hpp \
+  libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \
+  libsrc/include/../csg/identify.hpp \
   libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \
   libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \
   libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \
@@ -357,7 +358,7 @@ meshtool.o: libsrc/meshing/meshtool.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \
-  libsrc/include/../geom2d/spline2d.hpp \
+  libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
 refine.o: libsrc/meshing/refine.cpp libsrc/include/mystdlib.h \
@@ -485,7 +486,7 @@ improve3.o: libsrc/meshing/improve3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
-  libsrc/meshing/specials.hpp
+  libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
 smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -527,7 +528,7 @@ smoothing3.o: libsrc/meshing/smoothing3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
-  libsrc/meshing/specials.hpp
+  libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
 adfront3.o: libsrc/meshing/adfront3.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -741,7 +742,7 @@ improve2.o: libsrc/meshing/improve2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
-  libsrc/meshing/specials.hpp
+  libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
 smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -783,7 +784,7 @@ smoothing2.o: libsrc/meshing/smoothing2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
-  libsrc/meshing/specials.hpp
+  libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
 adfront2.o: libsrc/meshing/adfront2.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1331,7 +1332,7 @@ improve2gen.o: libsrc/meshing/improve2gen.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/curvedelems.hpp libsrc/meshing/bisect.hpp \
   libsrc/meshing/clusters.hpp libsrc/meshing/meshfunc.hpp \
   libsrc/meshing/hprefinement.hpp libsrc/meshing/boundarylayer.hpp \
-  libsrc/meshing/specials.hpp
+  libsrc/meshing/specials.hpp libsrc/include/../opti/opti.hpp
 delaunay.o: libsrc/meshing/delaunay.cpp libsrc/include/mystdlib.h \
   libsrc/meshing/meshing.hpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mydefs.hpp \
@@ -1753,7 +1754,8 @@ nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -1791,12 +1793,13 @@ nglib.o: libsrc/interface/nglib.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/stlgeom.hpp libsrc/include/../stlgeom/stlgeom.hpp \
+  libsrc/include/../gprim/gprim.hpp \
   libsrc/include/../stlgeom/stltopology.hpp \
   libsrc/include/../stlgeom/stltool.hpp \
   libsrc/include/../stlgeom/stlline.hpp \
   libsrc/include/../stlgeom/meshstlsurface.hpp \
   libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \
-  libsrc/include/../geom2d/spline2d.hpp \
+  libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp libsrc/interface/nglib.h
 geomtest3d.o: libsrc/gprim/geomtest3d.cpp libsrc/include/mystdlib.h \
@@ -2028,7 +2031,8 @@ algprim.o: libsrc/csg/algprim.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2095,7 +2099,8 @@ brick.o: libsrc/csg/brick.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2158,8 +2163,9 @@ manifold.o: libsrc/csg/manifold.cpp libsrc/include/csg.hpp \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -2224,8 +2230,9 @@ bspline2d.o: libsrc/csg/bspline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -2290,8 +2297,9 @@ meshsurf.o: libsrc/csg/meshsurf.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -2359,7 +2367,8 @@ csgeom.o: libsrc/csg/csgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2426,7 +2435,8 @@ polyhedra.o: libsrc/csg/polyhedra.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2489,8 +2499,9 @@ curve2d.o: libsrc/csg/curve2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -2558,7 +2569,8 @@ singularref.o: libsrc/csg/singularref.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2649,8 +2661,9 @@ edgeflw.o: libsrc/csg/edgeflw.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/include/csg.hpp \
-  libsrc/include/../csg/csg.hpp libsrc/include/../csg/surface.hpp \
-  libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \
+  libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \
+  libsrc/include/../csg/identify.hpp \
   libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \
   libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \
   libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \
@@ -2690,7 +2703,8 @@ solid.o: libsrc/csg/solid.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2754,8 +2768,9 @@ explicitcurve2d.o: libsrc/csg/explicitcurve2d.cpp \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -2848,8 +2863,9 @@ specpoin.o: libsrc/csg/specpoin.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/include/csg.hpp \
-  libsrc/include/../csg/csg.hpp libsrc/include/../csg/surface.hpp \
-  libsrc/include/../csg/solid.hpp libsrc/include/../csg/identify.hpp \
+  libsrc/include/../csg/csg.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../csg/surface.hpp libsrc/include/../csg/solid.hpp \
+  libsrc/include/../csg/identify.hpp \
   libsrc/include/../csg/singularref.hpp libsrc/include/../csg/csgeom.hpp \
   libsrc/include/../csg/triapprox.hpp libsrc/include/../csg/algprim.hpp \
   libsrc/include/../csg/brick.hpp libsrc/include/../csg/spline3d.hpp \
@@ -2889,7 +2905,8 @@ gencyl.o: libsrc/csg/gencyl.cpp libsrc/include/linalg.hpp \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -2956,7 +2973,8 @@ revolution.o: libsrc/csg/revolution.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3022,7 +3040,8 @@ genmesh.o: libsrc/csg/genmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3088,7 +3107,8 @@ spline3d.o: libsrc/csg/spline3d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3151,8 +3171,9 @@ surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -3190,7 +3211,8 @@ surface.o: libsrc/csg/surface.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/gencyl.hpp libsrc/include/../csg/polyhedra.hpp \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
-  libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp
+  libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
+  libsrc/include/../linalg/linalg.hpp
 identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3220,7 +3242,8 @@ identify.o: libsrc/csg/identify.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3286,7 +3309,8 @@ triapprox.o: libsrc/csg/triapprox.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3349,8 +3373,9 @@ geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -3390,7 +3415,7 @@ geom2dmesh.o: libsrc/geom2d/geom2dmesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \
-  libsrc/include/../geom2d/spline2d.hpp \
+  libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
 spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \
@@ -3419,8 +3444,9 @@ spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -3459,7 +3485,7 @@ spline2d.o: libsrc/geom2d/spline2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
-  libsrc/geom2d/spline2d.hpp
+  libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp
 splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \
   libsrc/include/mystdlib.h libsrc/include/csg.hpp \
   libsrc/include/../csg/csg.hpp libsrc/include/myadt.hpp \
@@ -3487,8 +3513,9 @@ splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -3527,7 +3554,8 @@ splinegeometry2.o: libsrc/geom2d/splinegeometry2.cpp \
   libsrc/include/../csg/extrusion.hpp \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
-  libsrc/geom2d/spline2d.hpp libsrc/geom2d/splinegeometry2.hpp
+  libsrc/include/../linalg/linalg.hpp libsrc/geom2d/spline2d.hpp \
+  libsrc/geom2d/splinegeometry2.hpp
 genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/csg.hpp libsrc/include/../csg/csg.hpp \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
@@ -3554,8 +3582,9 @@ genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/linalg.hpp \
-  libsrc/include/../linalg/linalg.hpp libsrc/include/../linalg/vector.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/linalg.hpp libsrc/include/../linalg/linalg.hpp \
+  libsrc/include/../linalg/vector.hpp \
   libsrc/include/../linalg/densemat.hpp \
   libsrc/include/../linalg/polynomial.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
@@ -3595,7 +3624,7 @@ genmesh2d.o: libsrc/geom2d/genmesh2d.cpp libsrc/include/mystdlib.h \
   libsrc/include/../csg/revolution.hpp libsrc/include/../csg/specpoin.hpp \
   libsrc/include/../csg/edgeflw.hpp libsrc/include/../csg/meshsurf.hpp \
   libsrc/include/geometry2d.hpp libsrc/include/../geom2d/geometry2d.hpp \
-  libsrc/include/../geom2d/spline2d.hpp \
+  libsrc/include/../gprim/gprim.hpp libsrc/include/../geom2d/spline2d.hpp \
   libsrc/include/../geom2d/splinegeometry2.hpp \
   libsrc/include/../geom2d/geom2dmesh.hpp
 meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \
@@ -3627,7 +3656,8 @@ meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3653,8 +3683,9 @@ meshstlsurface.o: libsrc/stlgeom/meshstlsurface.cpp \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3683,7 +3714,8 @@ stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3709,8 +3741,9 @@ stlline.o: libsrc/stlgeom/stlline.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3739,7 +3772,8 @@ stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3765,8 +3799,9 @@ stltopology.o: libsrc/stlgeom/stltopology.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3795,7 +3830,8 @@ stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3821,8 +3857,9 @@ stltool.o: libsrc/stlgeom/stltool.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3851,7 +3888,8 @@ stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3877,8 +3915,9 @@ stlgeom.o: libsrc/stlgeom/stlgeom.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3907,7 +3946,8 @@ stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3933,8 +3973,9 @@ stlgeomchart.o: libsrc/stlgeom/stlgeomchart.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/myadt.hpp libsrc/include/../general/myadt.hpp \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \
@@ -3963,7 +4004,8 @@ stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../gprim/geomtest3d.hpp \
   libsrc/include/../gprim/transform3d.hpp \
   libsrc/include/../gprim/adtree.hpp libsrc/include/meshing.hpp \
-  libsrc/include/../meshing/meshing.hpp libsrc/include/opti.hpp \
+  libsrc/include/../meshing/meshing.hpp libsrc/include/../gprim/gprim.hpp \
+  libsrc/include/../linalg/linalg.hpp libsrc/include/opti.hpp \
   libsrc/include/../opti/opti.hpp \
   libsrc/include/../meshing/msghandler.hpp \
   libsrc/include/../meshing/meshtype.hpp \
@@ -3989,8 +4031,9 @@ stlgeommesh.o: libsrc/stlgeom/stlgeommesh.cpp libsrc/include/mystdlib.h \
   libsrc/include/../meshing/hprefinement.hpp \
   libsrc/include/../meshing/boundarylayer.hpp \
   libsrc/include/../meshing/specials.hpp libsrc/stlgeom/stlgeom.hpp \
-  libsrc/stlgeom/stltopology.hpp libsrc/stlgeom/stltool.hpp \
-  libsrc/stlgeom/stlline.hpp libsrc/stlgeom/meshstlsurface.hpp
+  libsrc/include/../gprim/gprim.hpp libsrc/stlgeom/stltopology.hpp \
+  libsrc/stlgeom/stltool.hpp libsrc/stlgeom/stlline.hpp \
+  libsrc/stlgeom/meshstlsurface.hpp
 moveablemem.o: libsrc/general/moveablemem.cpp libsrc/include/myadt.hpp \
   libsrc/include/../general/myadt.hpp libsrc/include/mystdlib.h \
   libsrc/include/mydefs.hpp libsrc/include/../general/ngexception.hpp \